From owner-svn-src-all@freebsd.org Sun Dec 27 00:37:06 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86CAEA53F66; Sun, 27 Dec 2015 00:37:06 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 407981981; Sun, 27 Dec 2015 00:37:06 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBR0b537028991; Sun, 27 Dec 2015 00:37:05 GMT (envelope-from ume@FreeBSD.org) Received: (from ume@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBR0b56i028989; Sun, 27 Dec 2015 00:37:05 GMT (envelope-from ume@FreeBSD.org) Message-Id: <201512270037.tBR0b56i028989@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ume set sender to ume@FreeBSD.org using -f From: Hajimu UMEMOTO Date: Sun, 27 Dec 2015 00:37:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292760 - in stable/10: include lib/libc/net X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 00:37:06 -0000 Author: ume Date: Sun Dec 27 00:37:04 2015 New Revision: 292760 URL: https://svnweb.freebsd.org/changeset/base/292760 Log: MFC r292514: addrinfo.ai_family is an address family, not a protocol family. PR: 162434 Modified: stable/10/include/netdb.h stable/10/lib/libc/net/getaddrinfo.3 Directory Properties: stable/10/ (props changed) Modified: stable/10/include/netdb.h ============================================================================== --- stable/10/include/netdb.h Sat Dec 26 23:01:34 2015 (r292759) +++ stable/10/include/netdb.h Sun Dec 27 00:37:04 2015 (r292760) @@ -122,7 +122,7 @@ struct protoent { struct addrinfo { int ai_flags; /* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */ - int ai_family; /* PF_xxx */ + int ai_family; /* AF_xxx */ int ai_socktype; /* SOCK_xxx */ int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ socklen_t ai_addrlen; /* length of ai_addr */ Modified: stable/10/lib/libc/net/getaddrinfo.3 ============================================================================== --- stable/10/lib/libc/net/getaddrinfo.3 Sat Dec 26 23:01:34 2015 (r292759) +++ stable/10/lib/libc/net/getaddrinfo.3 Sun Dec 27 00:37:04 2015 (r292760) @@ -18,7 +18,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 19, 2015 +.Dd December 21, 2015 .Dt GETADDRINFO 3 .Os .Sh NAME @@ -78,7 +78,7 @@ as defined by .Bd -literal struct addrinfo { int ai_flags; /* input flags */ - int ai_family; /* protocol family for socket */ + int ai_family; /* address family for socket */ int ai_socktype; /* socket type */ int ai_protocol; /* protocol for socket */ socklen_t ai_addrlen; /* length of socket-address */ @@ -94,12 +94,12 @@ The caller can supply the following stru .Fa hints : .Bl -tag -width "ai_socktypeXX" .It Fa ai_family -The protocol family that should be used. +The address family that should be used. When .Fa ai_family is set to -.Dv PF_UNSPEC , -it means the caller will accept any protocol family supported by the +.Dv AF_UNSPEC , +it means the caller will accept any address family supported by the operating system. .It Fa ai_socktype Denotes the type of socket that is wanted: @@ -261,7 +261,7 @@ behaves as if the caller provided a with .Fa ai_family set to -.Dv PF_UNSPEC +.Dv AF_UNSPEC and all other elements set to zero or .Dv NULL . .Pp @@ -373,7 +373,7 @@ int s; const char *cause = NULL; memset(&hints, 0, sizeof(hints)); -hints.ai_family = PF_UNSPEC; +hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; error = getaddrinfo("www.kame.net", "http", &hints, &res0); if (error) { @@ -416,7 +416,7 @@ int nsock; const char *cause = NULL; memset(&hints, 0, sizeof(hints)); -hints.ai_family = PF_UNSPEC; +hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; error = getaddrinfo(NULL, "http", &hints, &res0); From owner-svn-src-all@freebsd.org Sun Dec 27 00:38:59 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 389B5A4C054; Sun, 27 Dec 2015 00:38:59 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EA9F51AE4; Sun, 27 Dec 2015 00:38:58 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBR0cwiL029118; Sun, 27 Dec 2015 00:38:58 GMT (envelope-from ume@FreeBSD.org) Received: (from ume@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBR0cvaM029116; Sun, 27 Dec 2015 00:38:57 GMT (envelope-from ume@FreeBSD.org) Message-Id: <201512270038.tBR0cvaM029116@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ume set sender to ume@FreeBSD.org using -f From: Hajimu UMEMOTO Date: Sun, 27 Dec 2015 00:38:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292761 - in stable/9: include lib/libc/net X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 00:38:59 -0000 Author: ume Date: Sun Dec 27 00:38:57 2015 New Revision: 292761 URL: https://svnweb.freebsd.org/changeset/base/292761 Log: MFC r292514: addrinfo.ai_family is an address family, not a protocol family. PR: 162434 Modified: stable/9/include/netdb.h stable/9/lib/libc/net/getaddrinfo.3 Directory Properties: stable/9/include/ (props changed) stable/9/lib/libc/ (props changed) Modified: stable/9/include/netdb.h ============================================================================== --- stable/9/include/netdb.h Sun Dec 27 00:37:04 2015 (r292760) +++ stable/9/include/netdb.h Sun Dec 27 00:38:57 2015 (r292761) @@ -122,7 +122,7 @@ struct protoent { struct addrinfo { int ai_flags; /* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */ - int ai_family; /* PF_xxx */ + int ai_family; /* AF_xxx */ int ai_socktype; /* SOCK_xxx */ int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ socklen_t ai_addrlen; /* length of ai_addr */ Modified: stable/9/lib/libc/net/getaddrinfo.3 ============================================================================== --- stable/9/lib/libc/net/getaddrinfo.3 Sun Dec 27 00:37:04 2015 (r292760) +++ stable/9/lib/libc/net/getaddrinfo.3 Sun Dec 27 00:38:57 2015 (r292761) @@ -18,7 +18,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 19, 2015 +.Dd December 21, 2015 .Dt GETADDRINFO 3 .Os .Sh NAME @@ -78,7 +78,7 @@ as defined by .Bd -literal struct addrinfo { int ai_flags; /* input flags */ - int ai_family; /* protocol family for socket */ + int ai_family; /* address family for socket */ int ai_socktype; /* socket type */ int ai_protocol; /* protocol for socket */ socklen_t ai_addrlen; /* length of socket-address */ @@ -94,12 +94,12 @@ The caller can supply the following stru .Fa hints : .Bl -tag -width "ai_socktypeXX" .It Fa ai_family -The protocol family that should be used. +The address family that should be used. When .Fa ai_family is set to -.Dv PF_UNSPEC , -it means the caller will accept any protocol family supported by the +.Dv AF_UNSPEC , +it means the caller will accept any address family supported by the operating system. .It Fa ai_socktype Denotes the type of socket that is wanted: @@ -261,7 +261,7 @@ behaves as if the caller provided a with .Fa ai_family set to -.Dv PF_UNSPEC +.Dv AF_UNSPEC and all other elements set to zero or .Dv NULL . .Pp @@ -374,7 +374,7 @@ int s; const char *cause = NULL; memset(&hints, 0, sizeof(hints)); -hints.ai_family = PF_UNSPEC; +hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; error = getaddrinfo("www.kame.net", "http", &hints, &res0); if (error) { @@ -417,7 +417,7 @@ int nsock; const char *cause = NULL; memset(&hints, 0, sizeof(hints)); -hints.ai_family = PF_UNSPEC; +hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; error = getaddrinfo(NULL, "http", &hints, &res0); From owner-svn-src-all@freebsd.org Sun Dec 27 00:42:15 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0CCDDA4C20D; Sun, 27 Dec 2015 00:42:15 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CF8161E60; Sun, 27 Dec 2015 00:42:14 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBR0gD1t031841; Sun, 27 Dec 2015 00:42:13 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBR0gDUg031840; Sun, 27 Dec 2015 00:42:13 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201512270042.tBR0gDUg031840@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sun, 27 Dec 2015 00:42:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292762 - stable/10/lib/libc/gen X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 00:42:15 -0000 Author: kib Date: Sun Dec 27 00:42:13 2015 New Revision: 292762 URL: https://svnweb.freebsd.org/changeset/base/292762 Log: MFC r292510: Fix lockf(3) cancellation behaviour. Modified: stable/10/lib/libc/gen/lockf.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/gen/lockf.c ============================================================================== --- stable/10/lib/libc/gen/lockf.c Sun Dec 27 00:38:57 2015 (r292761) +++ stable/10/lib/libc/gen/lockf.c Sun Dec 27 00:42:13 2015 (r292762) @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include #include "un-namespace.h" +#include "libc_private.h" int lockf(int filedes, int function, off_t size) @@ -62,9 +63,12 @@ lockf(int filedes, int function, off_t s break; case F_TEST: fl.l_type = F_WRLCK; - if (_fcntl(filedes, F_GETLK, &fl) == -1) + if (((int (*)(int, int, ...)) + __libc_interposing[INTERPOS_fcntl])(filedes, F_GETLK, &fl) + == -1) return (-1); - if (fl.l_type == F_UNLCK || (fl.l_sysid == 0 && fl.l_pid == getpid())) + if (fl.l_type == F_UNLCK || (fl.l_sysid == 0 && + fl.l_pid == getpid())) return (0); errno = EAGAIN; return (-1); @@ -75,5 +79,6 @@ lockf(int filedes, int function, off_t s /* NOTREACHED */ } - return (_fcntl(filedes, cmd, &fl)); + return (((int (*)(int, int, ...)) + __libc_interposing[INTERPOS_fcntl])(filedes, cmd, &fl)); } From owner-svn-src-all@freebsd.org Sun Dec 27 01:14:43 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 55726A4CB05; Sun, 27 Dec 2015 01:14:43 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 261A018C2; Sun, 27 Dec 2015 01:14:43 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBR1Egjb040503; Sun, 27 Dec 2015 01:14:42 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBR1EgHc040502; Sun, 27 Dec 2015 01:14:42 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201512270114.tBR1EgHc040502@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sun, 27 Dec 2015 01:14:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292763 - head/lib/libthr/thread X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 01:14:43 -0000 Author: kib Date: Sun Dec 27 01:14:42 2015 New Revision: 292763 URL: https://svnweb.freebsd.org/changeset/base/292763 Log: Typo. Modified: head/lib/libthr/thread/thr_fork.c Modified: head/lib/libthr/thread/thr_fork.c ============================================================================== --- head/lib/libthr/thread/thr_fork.c Sun Dec 27 00:42:13 2015 (r292762) +++ head/lib/libthr/thread/thr_fork.c Sun Dec 27 01:14:42 2015 (r292763) @@ -209,7 +209,7 @@ __thr_fork(void) /* reinitalize library. */ _libpthread_init(curthread); - /* atfork is reinitializeded by _libpthread_init()! */ + /* atfork is reinitialized by _libpthread_init()! */ _thr_rwl_rdlock(&_thr_atfork_lock); if (was_threaded) { From owner-svn-src-all@freebsd.org Sun Dec 27 06:16:03 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 743F4A5203E; Sun, 27 Dec 2015 06:16:03 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3ADBB137B; Sun, 27 Dec 2015 06:16:03 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBR6G2YG029244; Sun, 27 Dec 2015 06:16:02 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBR6G2r1029240; Sun, 27 Dec 2015 06:16:02 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201512270616.tBR6G2r1029240@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sun, 27 Dec 2015 06:16:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292764 - head/sys/dev/isp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 06:16:03 -0000 Author: mav Date: Sun Dec 27 06:16:02 2015 New Revision: 292764 URL: https://svnweb.freebsd.org/changeset/base/292764 Log: Split DMA buffers for request, response and ATIO queues. Modified: head/sys/dev/isp/isp_freebsd.h head/sys/dev/isp/isp_pci.c head/sys/dev/isp/isp_sbus.c Modified: head/sys/dev/isp/isp_freebsd.h ============================================================================== --- head/sys/dev/isp/isp_freebsd.h Sun Dec 27 01:14:42 2015 (r292763) +++ head/sys/dev/isp/isp_freebsd.h Sun Dec 27 06:16:02 2015 (r292764) @@ -289,9 +289,13 @@ struct isposinfo { struct resource * regs; struct resource * regs2; bus_dma_tag_t dmat; - bus_dma_tag_t cdmat; - bus_dmamap_t cdmap; + bus_dma_tag_t reqdmat; + bus_dma_tag_t respdmat; + bus_dma_tag_t atiodmat; bus_dma_tag_t scdmat; + bus_dmamap_t reqmap; + bus_dmamap_t respmap; + bus_dmamap_t atiomap; /* * Command and transaction related related stuff @@ -406,6 +410,14 @@ struct isposinfo { #define MEMORYBARRIER(isp, type, offset, size, chan) \ switch (type) { \ +case SYNC_REQUEST: \ + bus_dmamap_sync(isp->isp_osinfo.reqdmat, \ + isp->isp_osinfo.reqmap, BUS_DMASYNC_PREWRITE); \ + break; \ +case SYNC_RESULT: \ + bus_dmamap_sync(isp->isp_osinfo.respdmat, \ + isp->isp_osinfo.respmap, BUS_DMASYNC_POSTREAD); \ + break; \ case SYNC_SFORDEV: \ { \ struct isp_fc *fc = ISP_FC_PC(isp, chan); \ @@ -413,11 +425,6 @@ case SYNC_SFORDEV: \ BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); \ break; \ } \ -case SYNC_REQUEST: \ - bus_dmamap_sync(isp->isp_osinfo.cdmat, \ - isp->isp_osinfo.cdmap, \ - BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); \ - break; \ case SYNC_SFORCPU: \ { \ struct isp_fc *fc = ISP_FC_PC(isp, chan); \ @@ -425,21 +432,24 @@ case SYNC_SFORCPU: \ BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); \ break; \ } \ -case SYNC_RESULT: \ - bus_dmamap_sync(isp->isp_osinfo.cdmat, \ - isp->isp_osinfo.cdmap, \ - BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); \ - break; \ case SYNC_REG: \ bus_barrier(isp->isp_osinfo.regs, offset, size, \ BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE); \ break; \ +case SYNC_ATIOQ: \ + bus_dmamap_sync(isp->isp_osinfo.atiodmat, \ + isp->isp_osinfo.atiomap, BUS_DMASYNC_POSTREAD); \ + break; \ default: \ break; \ } #define MEMORYBARRIERW(isp, type, offset, size, chan) \ switch (type) { \ +case SYNC_REQUEST: \ + bus_dmamap_sync(isp->isp_osinfo.reqdmat, \ + isp->isp_osinfo.reqmap, BUS_DMASYNC_PREWRITE); \ + break; \ case SYNC_SFORDEV: \ { \ struct isp_fc *fc = ISP_FC_PC(isp, chan); \ @@ -447,10 +457,6 @@ case SYNC_SFORDEV: \ BUS_DMASYNC_PREWRITE); \ break; \ } \ -case SYNC_REQUEST: \ - bus_dmamap_sync(isp->isp_osinfo.cdmat, \ - isp->isp_osinfo.cdmap, BUS_DMASYNC_PREWRITE); \ - break; \ case SYNC_SFORCPU: \ { \ struct isp_fc *fc = ISP_FC_PC(isp, chan); \ @@ -458,10 +464,6 @@ case SYNC_SFORCPU: \ BUS_DMASYNC_POSTWRITE); \ break; \ } \ -case SYNC_RESULT: \ - bus_dmamap_sync(isp->isp_osinfo.cdmat, \ - isp->isp_osinfo.cdmap, BUS_DMASYNC_POSTWRITE); \ - break; \ case SYNC_REG: \ bus_barrier(isp->isp_osinfo.regs, offset, size, \ BUS_SPACE_BARRIER_WRITE); \ Modified: head/sys/dev/isp/isp_pci.c ============================================================================== --- head/sys/dev/isp/isp_pci.c Sun Dec 27 01:14:42 2015 (r292763) +++ head/sys/dev/isp/isp_pci.c Sun Dec 27 06:16:02 2015 (r292764) @@ -1539,75 +1539,17 @@ isp_pci_wr_reg_2600(ispsoftc_t *isp, int struct imush { - ispsoftc_t *isp; - caddr_t vbase; - int chan; + bus_addr_t maddr; int error; }; -static void imc(void *, bus_dma_segment_t *, int, int); -static void imc1(void *, bus_dma_segment_t *, int, int); - static void imc(void *arg, bus_dma_segment_t *segs, int nseg, int error) { struct imush *imushp = (struct imush *) arg; - isp_ecmd_t *ecmd; - - if (error) { - imushp->error = error; - return; - } - if (nseg != 1) { - imushp->error = EINVAL; - return; - } - isp_prt(imushp->isp, ISP_LOGDEBUG0, "request/result area @ 0x%jx/0x%jx", (uintmax_t) segs->ds_addr, (uintmax_t) segs->ds_len); - - imushp->isp->isp_rquest = imushp->vbase; - imushp->isp->isp_rquest_dma = segs->ds_addr; - segs->ds_addr += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(imushp->isp)); - imushp->vbase += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(imushp->isp)); - - imushp->isp->isp_result_dma = segs->ds_addr; - imushp->isp->isp_result = imushp->vbase; - segs->ds_addr += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(imushp->isp)); - imushp->vbase += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(imushp->isp)); - - if (imushp->isp->isp_type >= ISP_HA_FC_2200) { - imushp->isp->isp_osinfo.ecmd_dma = segs->ds_addr; - imushp->isp->isp_osinfo.ecmd_free = (isp_ecmd_t *)imushp->vbase; - imushp->isp->isp_osinfo.ecmd_base = imushp->isp->isp_osinfo.ecmd_free; - for (ecmd = imushp->isp->isp_osinfo.ecmd_free; ecmd < &imushp->isp->isp_osinfo.ecmd_free[N_XCMDS]; ecmd++) { - if (ecmd == &imushp->isp->isp_osinfo.ecmd_free[N_XCMDS - 1]) { - ecmd->next = NULL; - } else { - ecmd->next = ecmd + 1; - } - } - } -#ifdef ISP_TARGET_MODE - segs->ds_addr += (N_XCMDS * XCMD_SIZE); - imushp->vbase += (N_XCMDS * XCMD_SIZE); - if (IS_24XX(imushp->isp)) { - imushp->isp->isp_atioq_dma = segs->ds_addr; - imushp->isp->isp_atioq = imushp->vbase; - } -#endif -} -static void -imc1(void *arg, bus_dma_segment_t *segs, int nseg, int error) -{ - struct imush *imushp = (struct imush *) arg; - if (error) { - imushp->error = error; - return; - } - isp_prt(imushp->isp, ISP_LOGDEBUG0, "scdma @ 0x%jx/0x%jx", - (uintmax_t) segs->ds_addr, (uintmax_t) segs->ds_len); - FCPARAM(imushp->isp, imushp->chan)->isp_scdma = segs->ds_addr; - FCPARAM(imushp->isp, imushp->chan)->isp_scratch = imushp->vbase; + if (!(imushp->error = error)) + imushp->maddr = segs[0].ds_addr; } static int @@ -1620,6 +1562,7 @@ isp_pci_mbxdma(ispsoftc_t *isp) bus_addr_t llim; /* low limit of unavailable dma */ bus_addr_t hlim; /* high limit of unavailable dma */ struct imush im; + isp_ecmd_t *ecmd; /* * Already been here? If so, leave... @@ -1683,53 +1626,106 @@ isp_pci_mbxdma(ispsoftc_t *isp) isp->isp_xffree = isp->isp_xflist; /* - * Allocate and map the request and result queues (and ATIO queue - * if we're a 2400 supporting target mode), and a region for - * external dma addressable command/status structures (23XX and - * later). + * Allocate and map the request queue and a region for external + * DMA addressable command/status structures (22XX and later). */ len = ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)); - len += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); -#ifdef ISP_TARGET_MODE - if (IS_24XX(isp)) { - len += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); + if (isp->isp_type >= ISP_HA_FC_2200) + len += (N_XCMDS * XCMD_SIZE); + if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, slim, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + len, 1, len, 0, &isp->isp_osinfo.reqdmat)) { + isp_prt(isp, ISP_LOGERR, "cannot create request DMA tag"); + goto bad1; + } + if (bus_dmamem_alloc(isp->isp_osinfo.reqdmat, (void **)&base, + BUS_DMA_COHERENT, &isp->isp_osinfo.reqmap) != 0) { + isp_prt(isp, ISP_LOGERR, "cannot allocate request DMA memory"); + bus_dma_tag_destroy(isp->isp_osinfo.reqdmat); + goto bad1; } -#endif + isp->isp_rquest = base; + im.error = 0; + if (bus_dmamap_load(isp->isp_osinfo.reqdmat, isp->isp_osinfo.reqmap, + base, len, imc, &im, 0) || im.error) { + isp_prt(isp, ISP_LOGERR, "error loading request DMA map %d", im.error); + goto bad1; + } + isp_prt(isp, ISP_LOGDEBUG0, "request area @ 0x%jx/0x%jx", + (uintmax_t)im.maddr, (uintmax_t)len); + isp->isp_rquest_dma = im.maddr; + base += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)); + im.maddr += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)); if (isp->isp_type >= ISP_HA_FC_2200) { - len += (N_XCMDS * XCMD_SIZE); + isp->isp_osinfo.ecmd_dma = im.maddr; + isp->isp_osinfo.ecmd_free = (isp_ecmd_t *)base; + isp->isp_osinfo.ecmd_base = isp->isp_osinfo.ecmd_free; + for (ecmd = isp->isp_osinfo.ecmd_free; + ecmd < &isp->isp_osinfo.ecmd_free[N_XCMDS]; ecmd++) { + if (ecmd == &isp->isp_osinfo.ecmd_free[N_XCMDS - 1]) + ecmd->next = NULL; + else + ecmd->next = ecmd + 1; + } } /* - * Create a tag for the control spaces. We don't always need this - * to be 32 bits, but we do this for simplicity and speed's sake. + * Allocate and map the result queue. */ - if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, slim, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, len, 1, slim, 0, &isp->isp_osinfo.cdmat)) { - isp_prt(isp, ISP_LOGERR, "cannot create a dma tag for control spaces"); - free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); - free(isp->isp_xflist, M_DEVBUF); - ISP_LOCK(isp); - return (1); + len = ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); + if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, slim, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + len, 1, len, 0, &isp->isp_osinfo.respdmat)) { + isp_prt(isp, ISP_LOGERR, "cannot create response DMA tag"); + goto bad1; + } + if (bus_dmamem_alloc(isp->isp_osinfo.respdmat, (void **)&base, + BUS_DMA_COHERENT, &isp->isp_osinfo.respmap) != 0) { + isp_prt(isp, ISP_LOGERR, "cannot allocate response DMA memory"); + bus_dma_tag_destroy(isp->isp_osinfo.respdmat); + goto bad1; } - - if (bus_dmamem_alloc(isp->isp_osinfo.cdmat, (void **)&base, BUS_DMA_NOWAIT | BUS_DMA_COHERENT, &isp->isp_osinfo.cdmap) != 0) { - isp_prt(isp, ISP_LOGERR, "cannot allocate %d bytes of CCB memory", len); - bus_dma_tag_destroy(isp->isp_osinfo.cdmat); - free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); - free(isp->isp_xflist, M_DEVBUF); - ISP_LOCK(isp); - return (1); - } - - im.isp = isp; - im.chan = 0; - im.vbase = base; + isp->isp_result = base; im.error = 0; + if (bus_dmamap_load(isp->isp_osinfo.respdmat, isp->isp_osinfo.respmap, + base, len, imc, &im, 0) || im.error) { + isp_prt(isp, ISP_LOGERR, "error loading response DMA map %d", im.error); + goto bad1; + } + isp_prt(isp, ISP_LOGDEBUG0, "response area @ 0x%jx/0x%jx", + (uintmax_t)im.maddr, (uintmax_t)len); + isp->isp_result_dma = im.maddr; - bus_dmamap_load(isp->isp_osinfo.cdmat, isp->isp_osinfo.cdmap, base, len, imc, &im, 0); - if (im.error) { - isp_prt(isp, ISP_LOGERR, "error %d loading dma map for control areas", im.error); - goto bad; +#ifdef ISP_TARGET_MODE + /* + * Allocate and map ATIO queue on 24xx with target mode. + */ + if (IS_24XX(isp)) { + len = ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); + if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, slim, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + len, 1, len, 0, &isp->isp_osinfo.atiodmat)) { + isp_prt(isp, ISP_LOGERR, "cannot create ATIO DMA tag"); + goto bad1; + } + if (bus_dmamem_alloc(isp->isp_osinfo.atiodmat, (void **)&base, + BUS_DMA_COHERENT, &isp->isp_osinfo.atiomap) != 0) { + isp_prt(isp, ISP_LOGERR, "cannot allocate ATIO DMA memory"); + bus_dma_tag_destroy(isp->isp_osinfo.atiodmat); + goto bad1; + } + isp->isp_atioq = base; + im.error = 0; + if (bus_dmamap_load(isp->isp_osinfo.atiodmat, isp->isp_osinfo.atiomap, + base, len, imc, &im, 0) || im.error) { + isp_prt(isp, ISP_LOGERR, "error loading ATIO DMA map %d", im.error); + goto bad; + } + isp_prt(isp, ISP_LOGDEBUG0, "ATIO area @ 0x%jx/0x%jx", + (uintmax_t)im.maddr, (uintmax_t)len); + isp->isp_atioq_dma = im.maddr; } +#endif if (IS_FC(isp)) { if (isp_dma_tag_create(isp->isp_osinfo.dmat, 64, slim, @@ -1740,21 +1736,17 @@ isp_pci_mbxdma(ispsoftc_t *isp) for (cmap = 0; cmap < isp->isp_nchan; cmap++) { struct isp_fc *fc = ISP_FC_PC(isp, cmap); if (bus_dmamem_alloc(isp->isp_osinfo.scdmat, - (void **)&base, BUS_DMA_NOWAIT | BUS_DMA_COHERENT, - &fc->scmap) != 0) { + (void **)&base, BUS_DMA_COHERENT, &fc->scmap) != 0) goto bad; - } - im.isp = isp; - im.chan = cmap; - im.vbase = base; + FCPARAM(isp, cmap)->isp_scratch = base; im.error = 0; - bus_dmamap_load(isp->isp_osinfo.scdmat, fc->scmap, - base, ISP_FC_SCRLEN, imc1, &im, 0); - if (im.error) { + if (bus_dmamap_load(isp->isp_osinfo.scdmat, fc->scmap, + base, ISP_FC_SCRLEN, imc, &im, 0) || im.error) { bus_dmamem_free(isp->isp_osinfo.scdmat, base, fc->scmap); goto bad; } + FCPARAM(isp, cmap)->isp_scdma = im.maddr; if (!IS_2100(isp)) { for (i = 0; i < INITIAL_NEXUS_COUNT; i++) { struct isp_nexus *n = malloc(sizeof (struct isp_nexus), M_DEVBUF, M_NOWAIT | M_ZERO); @@ -1808,10 +1800,38 @@ bad: } bus_dma_tag_destroy(isp->isp_osinfo.scdmat); } - if (isp->isp_rquest_dma != 0) - bus_dmamap_unload(isp->isp_osinfo.cdmat, isp->isp_osinfo.cdmap); - bus_dmamem_free(isp->isp_osinfo.cdmat, base, isp->isp_osinfo.cdmap); - bus_dma_tag_destroy(isp->isp_osinfo.cdmat); +bad1: + if (isp->isp_rquest_dma != 0) { + bus_dmamap_unload(isp->isp_osinfo.reqdmat, + isp->isp_osinfo.reqmap); + } + if (isp->isp_rquest != NULL) { + bus_dmamem_free(isp->isp_osinfo.reqdmat, isp->isp_rquest, + isp->isp_osinfo.reqmap); + bus_dma_tag_destroy(isp->isp_osinfo.reqdmat); + } + if (isp->isp_result_dma != 0) { + bus_dmamap_unload(isp->isp_osinfo.respdmat, + isp->isp_osinfo.respmap); + } + if (isp->isp_result != NULL) { + bus_dmamem_free(isp->isp_osinfo.respdmat, isp->isp_result, + isp->isp_osinfo.respmap); + bus_dma_tag_destroy(isp->isp_osinfo.respdmat); + } +#ifdef ISP_TARGET_MODE + if (IS_24XX(isp)) { + if (isp->isp_atioq_dma != 0) { + bus_dmamap_unload(isp->isp_osinfo.atiodmat, + isp->isp_osinfo.atiomap); + } + if (isp->isp_atioq != NULL) { + bus_dmamem_free(isp->isp_osinfo.reqdmat, isp->isp_atioq, + isp->isp_osinfo.atiomap); + bus_dma_tag_destroy(isp->isp_osinfo.atiodmat); + } + } +#endif free(isp->isp_xflist, M_DEVBUF); free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); isp->isp_rquest = NULL; Modified: head/sys/dev/isp/isp_sbus.c ============================================================================== --- head/sys/dev/isp/isp_sbus.c Sun Dec 27 01:14:42 2015 (r292763) +++ head/sys/dev/isp/isp_sbus.c Sun Dec 27 06:16:02 2015 (r292764) @@ -413,7 +413,7 @@ isp_sbus_wr_reg(ispsoftc_t *isp, int reg } struct imush { - ispsoftc_t *isp; + bus_addr_t maddr; int error; }; @@ -423,16 +423,9 @@ static void imc(void *arg, bus_dma_segment_t *segs, int nseg, int error) { struct imush *imushp = (struct imush *) arg; - if (error) { - imushp->error = error; - } else { - ispsoftc_t *isp =imushp->isp; - bus_addr_t addr = segs->ds_addr; - isp->isp_rquest_dma = addr; - addr += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)); - isp->isp_result_dma = addr; - } + if (!(imushp->error = error)) + imushp->maddr = segs[0].ds_addr; } static int @@ -479,40 +472,62 @@ isp_sbus_mbxdma(ispsoftc_t *isp) BUS_SPACE_MAXADDR_32BIT, NULL, NULL, BUS_SPACE_MAXSIZE_32BIT, ISP_NSEG_MAX, BUS_SPACE_MAXADDR_24BIT, 0, &isp->isp_osinfo.dmat)) { isp_prt(isp, ISP_LOGERR, "could not create master dma tag"); - free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); - free(isp->isp_xflist, M_DEVBUF); - ISP_LOCK(isp); - return(1); + goto bad; } /* - * Allocate and map the request, result queues, plus FC scratch area. + * Allocate and map the request queue. */ len = ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)); - len += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); - - if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, - BUS_SPACE_MAXADDR_24BIT+1, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR_32BIT, NULL, NULL, len, 1, - BUS_SPACE_MAXADDR_24BIT, 0, &isp->isp_osinfo.cdmat)) { - isp_prt(isp, ISP_LOGERR, - "cannot create a dma tag for control spaces"); - free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); - free(isp->isp_xflist, M_DEVBUF); - ISP_LOCK(isp); - return (1); + if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, BUS_SPACE_MAXADDR_24BIT+1, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + len, 1, len, 0, &isp->isp_osinfo.reqdmat)) { + isp_prt(isp, ISP_LOGERR, "cannot create request DMA tag"); + goto bad; + } + if (bus_dmamem_alloc(isp->isp_osinfo.reqdmat, (void **)&base, + BUS_DMA_COHERENT, &isp->isp_osinfo.reqmap) != 0) { + isp_prt(isp, ISP_LOGERR, "cannot allocate request DMA memory"); + bus_dma_tag_destroy(isp->isp_osinfo.reqdmat); + goto bad; + } + im.error = 0; + if (bus_dmamap_load(isp->isp_osinfo.reqdmat, isp->isp_osinfo.reqmap, + base, len, imc, &im, 0) || im.error) { + isp_prt(isp, ISP_LOGERR, "error loading request DMA map %d", im.error); + goto bad; } + isp_prt(isp, ISP_LOGDEBUG0, "request area @ 0x%jx/0x%jx", + (uintmax_t)im.maddr, (uintmax_t)len); + isp->isp_rquest = base; + isp->isp_rquest_dma = im.maddr; - if (bus_dmamem_alloc(isp->isp_osinfo.cdmat, (void **)&base, BUS_DMA_NOWAIT | BUS_DMA_COHERENT, - &isp->isp_osinfo.cdmap) != 0) { - isp_prt(isp, ISP_LOGERR, - "cannot allocate %d bytes of CCB memory", len); - bus_dma_tag_destroy(isp->isp_osinfo.cdmat); - free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); - free(isp->isp_xflist, M_DEVBUF); - ISP_LOCK(isp); - return (1); + /* + * Allocate and map the result queue. + */ + len = ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); + if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, BUS_SPACE_MAXADDR_24BIT+1, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + len, 1, len, 0, &isp->isp_osinfo.respdmat)) { + isp_prt(isp, ISP_LOGERR, "cannot create response DMA tag"); + goto bad; + } + if (bus_dmamem_alloc(isp->isp_osinfo.respdmat, (void **)&base, + BUS_DMA_COHERENT, &isp->isp_osinfo.respmap) != 0) { + isp_prt(isp, ISP_LOGERR, "cannot allocate response DMA memory"); + bus_dma_tag_destroy(isp->isp_osinfo.respdmat); + goto bad; } + im.error = 0; + if (bus_dmamap_load(isp->isp_osinfo.respdmat, isp->isp_osinfo.respmap, + base, len, imc, &im, 0) || im.error) { + isp_prt(isp, ISP_LOGERR, "error loading response DMA map %d", im.error); + goto bad; + } + isp_prt(isp, ISP_LOGDEBUG0, "response area @ 0x%jx/0x%jx", + (uintmax_t)im.maddr, (uintmax_t)len); + isp->isp_result = base; + isp->isp_result_dma = im.maddr; for (i = 0; i < isp->isp_maxcmds; i++) { struct isp_pcmd *pcmd = &isp->isp_osinfo.pcmd_pool[i]; @@ -534,25 +549,28 @@ isp_sbus_mbxdma(ispsoftc_t *isp) } } isp->isp_osinfo.pcmd_free = &isp->isp_osinfo.pcmd_pool[0]; - - im.isp = isp; - im.error = 0; - bus_dmamap_load(isp->isp_osinfo.cdmat, isp->isp_osinfo.cdmap, base, len, imc, &im, 0); - if (im.error) { - isp_prt(isp, ISP_LOGERR, - "error %d loading dma map for control areas", im.error); - goto bad; - } - - isp->isp_rquest = base; - base += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)); - isp->isp_result = base; ISP_LOCK(isp); return (0); bad: - bus_dmamem_free(isp->isp_osinfo.cdmat, base, isp->isp_osinfo.cdmap); - bus_dma_tag_destroy(isp->isp_osinfo.cdmat); + if (isp->isp_rquest_dma != 0) { + bus_dmamap_unload(isp->isp_osinfo.reqdmat, + isp->isp_osinfo.reqmap); + } + if (isp->isp_rquest != NULL) { + bus_dmamem_free(isp->isp_osinfo.reqdmat, isp->isp_rquest, + isp->isp_osinfo.reqmap); + bus_dma_tag_destroy(isp->isp_osinfo.reqdmat); + } + if (isp->isp_result_dma != 0) { + bus_dmamap_unload(isp->isp_osinfo.respdmat, + isp->isp_osinfo.respmap); + } + if (isp->isp_result != NULL) { + bus_dmamem_free(isp->isp_osinfo.respdmat, isp->isp_result, + isp->isp_osinfo.respmap); + bus_dma_tag_destroy(isp->isp_osinfo.respdmat); + } free(isp->isp_xflist, M_DEVBUF); free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); isp->isp_rquest = NULL; From owner-svn-src-all@freebsd.org Sun Dec 27 06:28:32 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ADC11A52439; Sun, 27 Dec 2015 06:28:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 77C5E1A18; Sun, 27 Dec 2015 06:28:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBR6SVH9032252; Sun, 27 Dec 2015 06:28:31 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBR6SVaj032250; Sun, 27 Dec 2015 06:28:31 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201512270628.tBR6SVaj032250@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sun, 27 Dec 2015 06:28:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292765 - head/sys/dev/isp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 06:28:32 -0000 Author: mav Date: Sun Dec 27 06:28:31 2015 New Revision: 292765 URL: https://svnweb.freebsd.org/changeset/base/292765 Log: Allocate separate scratch space for scanner purposes. This space does not require DMA syncing. It reduces lock scope of the DMA scratch space. It allows whole DMA scratch space to be used to I/O, so now we can fetch up to ~1000 ports from SNS. Due to the last fact, increase maximal number of ports from 256 to 1024. Modified: head/sys/dev/isp/isp.c head/sys/dev/isp/ispvar.h Modified: head/sys/dev/isp/isp.c ============================================================================== --- head/sys/dev/isp/isp.c Sun Dec 27 06:16:02 2015 (r292764) +++ head/sys/dev/isp/isp.c Sun Dec 27 06:28:31 2015 (r292765) @@ -111,9 +111,9 @@ static void isp_mark_portdb(ispsoftc_t * static int isp_plogx(ispsoftc_t *, int, uint16_t, uint32_t, int); static int isp_port_login(ispsoftc_t *, uint16_t, uint32_t); static int isp_port_logout(ispsoftc_t *, uint16_t, uint32_t); -static int isp_getpdb(ispsoftc_t *, int, uint16_t, isp_pdb_t *, int); -static int isp_gethandles(ispsoftc_t *, int, uint16_t *, int *, int, int); -static void isp_dump_chip_portdb(ispsoftc_t *, int, int); +static int isp_getpdb(ispsoftc_t *, int, uint16_t, isp_pdb_t *); +static int isp_gethandles(ispsoftc_t *, int, uint16_t *, int *, int); +static void isp_dump_chip_portdb(ispsoftc_t *, int); static uint64_t isp_get_wwn(ispsoftc_t *, int, int, int); static int isp_fclink_test(ispsoftc_t *, int, int); static int isp_pdb_sync(ispsoftc_t *, int); @@ -2762,7 +2762,7 @@ isp_port_logout(ispsoftc_t *isp, uint16_ } static int -isp_getpdb(ispsoftc_t *isp, int chan, uint16_t id, isp_pdb_t *pdb, int dolock) +isp_getpdb(ispsoftc_t *isp, int chan, uint16_t id, isp_pdb_t *pdb) { fcparam *fcp = FCPARAM(isp, chan); mbreg_t mbs; @@ -2786,18 +2786,14 @@ isp_getpdb(ispsoftc_t *isp, int chan, ui mbs.param[3] = DMA_WD0(fcp->isp_scdma); mbs.param[6] = DMA_WD3(fcp->isp_scdma); mbs.param[7] = DMA_WD2(fcp->isp_scdma); - if (dolock) { - if (FC_SCRATCH_ACQUIRE(isp, chan)) { - isp_prt(isp, ISP_LOGERR, sacq); - return (-1); - } + if (FC_SCRATCH_ACQUIRE(isp, chan)) { + isp_prt(isp, ISP_LOGERR, sacq); + return (-1); } MEMORYBARRIER(isp, SYNC_SFORDEV, 0, sizeof (un), chan); isp_mboxcmd(isp, &mbs); if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { - if (dolock) { - FC_SCRATCH_RELEASE(isp, chan); - } + FC_SCRATCH_RELEASE(isp, chan); return (mbs.param[0] | (mbs.param[1] << 16)); } if (IS_24XX(isp)) { @@ -2813,9 +2809,7 @@ isp_getpdb(ispsoftc_t *isp, int chan, ui un.bill.pdb_curstate); if (un.bill.pdb_curstate < PDB2400_STATE_PLOGI_DONE || un.bill.pdb_curstate > PDB2400_STATE_LOGGED_IN) { mbs.param[0] = MBOX_NOT_LOGGED_IN; - if (dolock) { - FC_SCRATCH_RELEASE(isp, chan); - } + FC_SCRATCH_RELEASE(isp, chan); return (mbs.param[0]); } } else { @@ -2828,15 +2822,12 @@ isp_getpdb(ispsoftc_t *isp, int chan, ui isp_prt(isp, ISP_LOGDEBUG1, "Chan %d handle 0x%x Port 0x%06x", chan, id, pdb->portid); } - if (dolock) { - FC_SCRATCH_RELEASE(isp, chan); - } + FC_SCRATCH_RELEASE(isp, chan); return (0); } static int -isp_gethandles(ispsoftc_t *isp, int chan, uint16_t *handles, int *num, - int dolock, int loop) +isp_gethandles(ispsoftc_t *isp, int chan, uint16_t *handles, int *num, int loop) { fcparam *fcp = FCPARAM(isp, chan); mbreg_t mbs; @@ -2862,18 +2853,14 @@ isp_gethandles(ispsoftc_t *isp, int chan mbs.param[3] = DMA_WD3(fcp->isp_scdma); mbs.param[6] = DMA_WD2(fcp->isp_scdma); } - if (dolock) { - if (FC_SCRATCH_ACQUIRE(isp, chan)) { - isp_prt(isp, ISP_LOGERR, sacq); - return (-1); - } + if (FC_SCRATCH_ACQUIRE(isp, chan)) { + isp_prt(isp, ISP_LOGERR, sacq); + return (-1); } MEMORYBARRIER(isp, SYNC_SFORDEV, 0, ISP_FC_SCRLEN, chan); isp_mboxcmd(isp, &mbs); if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { - if (dolock) { - FC_SCRATCH_RELEASE(isp, chan); - } + FC_SCRATCH_RELEASE(isp, chan); return (mbs.param[0] | (mbs.param[1] << 16)); } elp1 = fcp->isp_scratch; @@ -2901,13 +2888,12 @@ isp_gethandles(ispsoftc_t *isp, int chan handles[j++] = h; } *num = j; - if (dolock) - FC_SCRATCH_RELEASE(isp, chan); + FC_SCRATCH_RELEASE(isp, chan); return (0); } static void -isp_dump_chip_portdb(ispsoftc_t *isp, int chan, int dolock) +isp_dump_chip_portdb(ispsoftc_t *isp, int chan) { isp_pdb_t pdb; uint16_t lim, nphdl; @@ -2919,7 +2905,7 @@ isp_dump_chip_portdb(ispsoftc_t *isp, in lim = NPH_MAX; } for (nphdl = 0; nphdl != lim; nphdl++) { - if (isp_getpdb(isp, chan, nphdl, &pdb, dolock)) { + if (isp_getpdb(isp, chan, nphdl, &pdb)) { continue; } isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGINFO, "Chan %d Handle 0x%04x " @@ -3069,7 +3055,7 @@ isp_fclink_test(ispsoftc_t *isp, int cha if (fcp->isp_topo == TOPO_F_PORT || fcp->isp_topo == TOPO_FL_PORT) { nphdl = IS_24XX(isp) ? NPH_FL_ID : FL_ID; - r = isp_getpdb(isp, chan, nphdl, &pdb, 1); + r = isp_getpdb(isp, chan, nphdl, &pdb); if (r != 0 || pdb.portid == 0) { if (IS_2100(isp)) { fcp->isp_topo = TOPO_NL_PORT; @@ -3311,7 +3297,7 @@ isp_fix_portids(ispsoftc_t *isp, int cha if (VALID_PORT(lp->portid)) continue; - r = isp_getpdb(isp, chan, lp->handle, &pdb, 1); + r = isp_getpdb(isp, chan, lp->handle, &pdb); if (fcp->isp_loopstate < LOOP_SCANNING_LOOP) return; if (r != 0) { @@ -3340,7 +3326,7 @@ isp_scan_loop(ispsoftc_t *isp, int chan) fcparam *fcp = FCPARAM(isp, chan); int idx, lim, r; isp_pdb_t pdb; - uint16_t handles[LOCAL_LOOP_LIM]; + uint16_t *handles; uint16_t handle; if (fcp->isp_loopstate < LOOP_LTEST_DONE) @@ -3362,8 +3348,9 @@ isp_scan_loop(ispsoftc_t *isp, int chan) return (0); } - lim = LOCAL_LOOP_LIM; - r = isp_gethandles(isp, chan, handles, &lim, 1, 1); + handles = (uint16_t *)fcp->isp_scanscratch; + lim = ISP_FC_SCRLEN / 2; + r = isp_gethandles(isp, chan, handles, &lim, 1); if (r != 0) { isp_prt(isp, ISP_LOG_SANCFG, "Chan %d Getting list of handles failed with %x", chan, r); @@ -3413,7 +3400,7 @@ abort: /* * Get the port database entity for this index. */ - r = isp_getpdb(isp, chan, handle, &pdb, 1); + r = isp_getpdb(isp, chan, handle, &pdb); if (fcp->isp_loopstate < LOOP_SCANNING_LOOP) goto abort; if (r != 0) { @@ -3442,20 +3429,10 @@ abort: * * For the 24XX card, we have to use CT-Pass through run via the Execute IOCB * mailbox command. - * - * The net result is to leave the list of Port IDs setting untranslated in - * offset IGPOFF of the FC scratch area, whereupon we'll canonicalize it to - * host order at OGPOFF. */ - -/* - * Take half of our scratch area to store Port IDs - */ -#define GIDLEN (ISP_FC_SCRLEN >> 1) +#define GIDLEN (ISP_FC_SCRLEN - (3 * QENTRY_LEN)) #define NGENT ((GIDLEN - 16) >> 2) -#define IGPOFF (0) -#define OGPOFF (ISP_FC_SCRLEN >> 1) #define XTXOFF (ISP_FC_SCRLEN - (3 * QENTRY_LEN)) /* CT request */ #define CTXOFF (ISP_FC_SCRLEN - (2 * QENTRY_LEN)) /* Request IOCB */ #define ZTXOFF (ISP_FC_SCRLEN - (1 * QENTRY_LEN)) /* Response IOCB */ @@ -3472,21 +3449,25 @@ isp_gid_ft_sns(ispsoftc_t *isp, int chan uint8_t *scp = fcp->isp_scratch; mbreg_t mbs; - isp_prt(isp, ISP_LOGDEBUG0, "Chan %d scanning fabric (GID_FT) via SNS", chan); + isp_prt(isp, ISP_LOGDEBUG0, "Chan %d requesting GID_FT via SNS", chan); + if (FC_SCRATCH_ACQUIRE(isp, chan)) { + isp_prt(isp, ISP_LOGERR, sacq); + return (-1); + } ISP_MEMZERO(rq, SNS_GID_FT_REQ_SIZE); rq->snscb_rblen = GIDLEN >> 1; - rq->snscb_addr[RQRSP_ADDR0015] = DMA_WD0(fcp->isp_scdma + IGPOFF); - rq->snscb_addr[RQRSP_ADDR1631] = DMA_WD1(fcp->isp_scdma + IGPOFF); - rq->snscb_addr[RQRSP_ADDR3247] = DMA_WD2(fcp->isp_scdma + IGPOFF); - rq->snscb_addr[RQRSP_ADDR4863] = DMA_WD3(fcp->isp_scdma + IGPOFF); + rq->snscb_addr[RQRSP_ADDR0015] = DMA_WD0(fcp->isp_scdma); + rq->snscb_addr[RQRSP_ADDR1631] = DMA_WD1(fcp->isp_scdma); + rq->snscb_addr[RQRSP_ADDR3247] = DMA_WD2(fcp->isp_scdma); + rq->snscb_addr[RQRSP_ADDR4863] = DMA_WD3(fcp->isp_scdma); rq->snscb_sblen = 6; rq->snscb_cmd = SNS_GID_FT; rq->snscb_mword_div_2 = NGENT; rq->snscb_fc4_type = FC4_SCSI; isp_put_gid_ft_request(isp, rq, (sns_gid_ft_req_t *)&scp[CTXOFF]); - MEMORYBARRIER(isp, SYNC_SFORDEV, 0, SNS_GID_FT_REQ_SIZE, chan); + MEMORYBARRIER(isp, SYNC_SFORDEV, CTXOFF, SNS_GID_FT_REQ_SIZE, chan); MBSINIT(&mbs, MBOX_SEND_SNS, MBLOGALL, 10000000); mbs.param[0] = MBOX_SEND_SNS; @@ -3503,6 +3484,12 @@ isp_gid_ft_sns(ispsoftc_t *isp, int chan return (-1); } } + MEMORYBARRIER(isp, SYNC_SFORCPU, 0, GIDLEN, chan); + if (isp->isp_dblev & ISP_LOGDEBUG1) + isp_print_bytes(isp, "CT response", GIDLEN, scp); + isp_get_gid_ft_response(isp, (sns_gid_ft_rsp_t *)scp, + (sns_gid_ft_rsp_t *)fcp->isp_scanscratch, NGENT); + FC_SCRATCH_RELEASE(isp, chan); return (0); } @@ -3521,7 +3508,11 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, uint32_t *rp; uint8_t *scp = fcp->isp_scratch; - isp_prt(isp, ISP_LOGDEBUG0, "Chan %d scanning fabric (GID_FT) via CT", chan); + isp_prt(isp, ISP_LOGDEBUG0, "Chan %d requesting GID_FT via CT", chan); + if (FC_SCRATCH_ACQUIRE(isp, chan)) { + isp_prt(isp, ISP_LOGERR, sacq); + return (-1); + } /* * Build a Passthrough IOCB in memory. @@ -3541,8 +3532,8 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, pt->ctp_dataseg[0].ds_base = DMA_LO32(fcp->isp_scdma+XTXOFF); pt->ctp_dataseg[0].ds_basehi = DMA_HI32(fcp->isp_scdma+XTXOFF); pt->ctp_dataseg[0].ds_count = sizeof (*ct) + sizeof (uint32_t); - pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma+IGPOFF); - pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma+IGPOFF); + pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma); + pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma); pt->ctp_dataseg[1].ds_count = GIDLEN; if (isp->isp_dblev & ISP_LOGDEBUG1) { isp_print_bytes(isp, "ct IOCB", QENTRY_LEN, pt); @@ -3582,7 +3573,7 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { return (-1); } - MEMORYBARRIER(isp, SYNC_SFORCPU, ZTXOFF, QENTRY_LEN, chan); + MEMORYBARRIER(isp, SYNC_SFORCPU, 0, ISP_FC_SCRLEN, chan); pt = &un.plocal; isp_get_ct_pt(isp, (isp_ct_pt_t *) &scp[ZTXOFF], pt); if (isp->isp_dblev & ISP_LOGDEBUG1) { @@ -3591,14 +3582,15 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, if (pt->ctp_status && pt->ctp_status != RQCS_DATA_UNDERRUN) { isp_prt(isp, ISP_LOGWARN, - "Chan %d ISP GID FT CT Passthrough returned 0x%x", + "Chan %d GID_FT CT Passthrough returned 0x%x", chan, pt->ctp_status); return (-1); } - MEMORYBARRIER(isp, SYNC_SFORCPU, IGPOFF, GIDLEN, chan); - if (isp->isp_dblev & ISP_LOGDEBUG1) { - isp_print_bytes(isp, "CT response", GIDLEN, &scp[IGPOFF]); - } + if (isp->isp_dblev & ISP_LOGDEBUG1) + isp_print_bytes(isp, "CT response", GIDLEN, scp); + isp_get_gid_ft_response(isp, (sns_gid_ft_rsp_t *)scp, + (sns_gid_ft_rsp_t *)fcp->isp_scanscratch, NGENT); + FC_SCRATCH_RELEASE(isp, chan); return (0); } @@ -3611,7 +3603,7 @@ isp_scan_fabric(ispsoftc_t *isp, int cha uint16_t nphdl; isp_pdb_t pdb; int portidx, portlim, r; - sns_gid_ft_rsp_t *rs0, *rs1; + sns_gid_ft_rsp_t *rs; if (fcp->isp_loopstate < LOOP_LSCAN_DONE) return (-1); @@ -3627,13 +3619,6 @@ isp_scan_fabric(ispsoftc_t *isp, int cha return (0); } - if (FC_SCRATCH_ACQUIRE(isp, chan)) { - isp_prt(isp, ISP_LOGERR, sacq); -fail: - isp_prt(isp, ISP_LOG_SANCFG, - "Chan %d FC fabric scan done (bad)", chan); - return (-1); - } if (fcp->isp_loopstate < LOOP_SCANNING_FABRIC) { abort: FC_SCRATCH_RELEASE(isp, chan); @@ -3646,14 +3631,16 @@ abort: * Make sure we still are logged into the fabric controller. */ nphdl = IS_24XX(isp) ? NPH_FL_ID : FL_ID; - r = isp_getpdb(isp, chan, nphdl, &pdb, 0); + r = isp_getpdb(isp, chan, nphdl, &pdb); if ((r & 0xffff) == MBOX_NOT_LOGGED_IN) { - isp_dump_chip_portdb(isp, chan, 0); + isp_dump_chip_portdb(isp, chan); } if (r) { fcp->isp_loopstate = LOOP_LTEST_DONE; - FC_SCRATCH_RELEASE(isp, chan); - goto fail; +fail: + isp_prt(isp, ISP_LOG_SANCFG, + "Chan %d FC fabric scan done (bad)", chan); + return (-1); } /* Get list of port IDs from SNS. */ @@ -3665,42 +3652,36 @@ abort: goto abort; if (r > 0) { fcp->isp_loopstate = LOOP_FSCAN_DONE; - FC_SCRATCH_RELEASE(isp, chan); return (-1); } else if (r < 0) { fcp->isp_loopstate = LOOP_LTEST_DONE; /* try again */ - FC_SCRATCH_RELEASE(isp, chan); return (-1); } - MEMORYBARRIER(isp, SYNC_SFORCPU, IGPOFF, GIDLEN, chan); - rs0 = (sns_gid_ft_rsp_t *) ((uint8_t *)fcp->isp_scratch+IGPOFF); - rs1 = (sns_gid_ft_rsp_t *) ((uint8_t *)fcp->isp_scratch+OGPOFF); - isp_get_gid_ft_response(isp, rs0, rs1, NGENT); + rs = (sns_gid_ft_rsp_t *) fcp->isp_scanscratch; if (fcp->isp_loopstate < LOOP_SCANNING_FABRIC) goto abort; - if (rs1->snscb_cthdr.ct_cmd_resp != LS_ACC) { + if (rs->snscb_cthdr.ct_cmd_resp != LS_ACC) { int level; - if (rs1->snscb_cthdr.ct_reason == 9 && rs1->snscb_cthdr.ct_explanation == 7) { + if (rs->snscb_cthdr.ct_reason == 9 && rs->snscb_cthdr.ct_explanation == 7) { level = ISP_LOG_SANCFG; } else { level = ISP_LOGWARN; } isp_prt(isp, level, "Chan %d Fabric Nameserver rejected GID_FT" " (Reason=0x%x Expl=0x%x)", chan, - rs1->snscb_cthdr.ct_reason, - rs1->snscb_cthdr.ct_explanation); - FC_SCRATCH_RELEASE(isp, chan); + rs->snscb_cthdr.ct_reason, + rs->snscb_cthdr.ct_explanation); fcp->isp_loopstate = LOOP_FSCAN_DONE; return (-1); } /* Check our buffer was big enough to get the full list. */ for (portidx = 0; portidx < NGENT-1; portidx++) { - if (rs1->snscb_ports[portidx].control & 0x80) + if (rs->snscb_ports[portidx].control & 0x80) break; } - if ((rs1->snscb_ports[portidx].control & 0x80) == 0) { + if ((rs->snscb_ports[portidx].control & 0x80) == 0) { isp_prt(isp, ISP_LOGWARN, "fabric too big for scratch area: increase ISP_FC_SCRLEN"); } @@ -3713,24 +3694,24 @@ abort: int npidx; portid = - ((rs1->snscb_ports[portidx].portid[0]) << 16) | - ((rs1->snscb_ports[portidx].portid[1]) << 8) | - ((rs1->snscb_ports[portidx].portid[2])); + ((rs->snscb_ports[portidx].portid[0]) << 16) | + ((rs->snscb_ports[portidx].portid[1]) << 8) | + ((rs->snscb_ports[portidx].portid[2])); for (npidx = portidx + 1; npidx < portlim; npidx++) { uint32_t new_portid = - ((rs1->snscb_ports[npidx].portid[0]) << 16) | - ((rs1->snscb_ports[npidx].portid[1]) << 8) | - ((rs1->snscb_ports[npidx].portid[2])); + ((rs->snscb_ports[npidx].portid[0]) << 16) | + ((rs->snscb_ports[npidx].portid[1]) << 8) | + ((rs->snscb_ports[npidx].portid[2])); if (new_portid == portid) { break; } } if (npidx < portlim) { - rs1->snscb_ports[npidx].portid[0] = 0; - rs1->snscb_ports[npidx].portid[1] = 0; - rs1->snscb_ports[npidx].portid[2] = 0; + rs->snscb_ports[npidx].portid[0] = 0; + rs->snscb_ports[npidx].portid[1] = 0; + rs->snscb_ports[npidx].portid[2] = 0; isp_prt(isp, ISP_LOG_SANCFG, "Chan %d removing duplicate PortID 0x%06x entry from list", chan, portid); } } @@ -3751,9 +3732,9 @@ abort: */ isp_mark_portdb(isp, chan); for (portidx = 0; portidx < portlim; portidx++) { - portid = ((rs1->snscb_ports[portidx].portid[0]) << 16) | - ((rs1->snscb_ports[portidx].portid[1]) << 8) | - ((rs1->snscb_ports[portidx].portid[2])); + portid = ((rs->snscb_ports[portidx].portid[0]) << 16) | + ((rs->snscb_ports[portidx].portid[1]) << 8) | + ((rs->snscb_ports[portidx].portid[2])); isp_prt(isp, ISP_LOG_SANCFG, "Chan %d Checking fabric port 0x%06x", chan, portid); if (portid == 0) { @@ -3775,7 +3756,6 @@ abort: "Chan %d Port 0x%06x@0x%04x [%d] is not probational (0x%x)", chan, lp->portid, lp->handle, FC_PORTDB_TGT(isp, chan, lp), lp->state); - FC_SCRATCH_RELEASE(isp, chan); isp_dump_portdb(isp, chan); goto fail; } @@ -3795,7 +3775,7 @@ abort: * database entry for somebody further along to * decide what to do (policy choice). */ - r = isp_getpdb(isp, chan, lp->handle, &pdb, 0); + r = isp_getpdb(isp, chan, lp->handle, &pdb); if (fcp->isp_loopstate < LOOP_SCANNING_FABRIC) goto abort; if (r != 0) { @@ -3829,7 +3809,6 @@ relogin: if (fcp->isp_loopstate < LOOP_SCANNING_FABRIC) goto abort; - FC_SCRATCH_RELEASE(isp, chan); fcp->isp_loopstate = LOOP_FSCAN_DONE; isp_prt(isp, ISP_LOG_SANCFG, "Chan %d FC fabric scan done", chan); return (0); @@ -3856,7 +3835,7 @@ isp_login_device(ispsoftc_t *isp, int ch return (-1); /* Check if this handle is free. */ - r = isp_getpdb(isp, chan, handle, p, 0); + r = isp_getpdb(isp, chan, handle, p); if (r == 0) { if (p->portid != portid) { /* This handle is busy, try next one. */ @@ -3909,7 +3888,7 @@ isp_login_device(ispsoftc_t *isp, int ch * so we can crosscheck that it is still what we think it * is and that we also have the role it plays */ - r = isp_getpdb(isp, chan, handle, p, 0); + r = isp_getpdb(isp, chan, handle, p); if (r != 0) { isp_prt(isp, ISP_LOGERR, "Chan %d new device 0x%06x@0x%x disappeared", chan, portid, handle); return (-1); @@ -4013,8 +3992,8 @@ isp_register_fc4_type_24xx(ispsoftc_t *i pt->ctp_dataseg[0].ds_base = DMA_LO32(fcp->isp_scdma+XTXOFF); pt->ctp_dataseg[0].ds_basehi = DMA_HI32(fcp->isp_scdma+XTXOFF); pt->ctp_dataseg[0].ds_count = sizeof (rft_id_t); - pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma+IGPOFF); - pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma+IGPOFF); + pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma); + pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma); pt->ctp_dataseg[1].ds_count = sizeof (ct_hdr_t); isp_put_ct_pt(isp, pt, (isp_ct_pt_t *) &scp[CTXOFF]); if (isp->isp_dblev & ISP_LOGDEBUG1) { @@ -4072,7 +4051,7 @@ isp_register_fc4_type_24xx(ispsoftc_t *i return (1); } - isp_get_ct_hdr(isp, (ct_hdr_t *) &scp[IGPOFF], ct); + isp_get_ct_hdr(isp, (ct_hdr_t *) scp, ct); FC_SCRATCH_RELEASE(isp, chan); if (ct->ct_cmd_resp == LS_RJT) { @@ -4125,8 +4104,8 @@ isp_register_fc4_features_24xx(ispsoftc_ pt->ctp_dataseg[0].ds_base = DMA_LO32(fcp->isp_scdma+XTXOFF); pt->ctp_dataseg[0].ds_basehi = DMA_HI32(fcp->isp_scdma+XTXOFF); pt->ctp_dataseg[0].ds_count = sizeof (rff_id_t); - pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma+IGPOFF); - pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma+IGPOFF); + pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma); + pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma); pt->ctp_dataseg[1].ds_count = sizeof (ct_hdr_t); isp_put_ct_pt(isp, pt, (isp_ct_pt_t *) &scp[CTXOFF]); if (isp->isp_dblev & ISP_LOGDEBUG1) { @@ -4189,7 +4168,7 @@ isp_register_fc4_features_24xx(ispsoftc_ return (1); } - isp_get_ct_hdr(isp, (ct_hdr_t *) &scp[IGPOFF], ct); + isp_get_ct_hdr(isp, (ct_hdr_t *) scp, ct); FC_SCRATCH_RELEASE(isp, chan); if (ct->ct_cmd_resp == LS_RJT) { @@ -4877,7 +4856,7 @@ isp_control(ispsoftc_t *isp, ispctl_t ct tgt = va_arg(ap, int); pdb = va_arg(ap, isp_pdb_t *); va_end(ap); - return (isp_getpdb(isp, chan, tgt, pdb, 1)); + return (isp_getpdb(isp, chan, tgt, pdb)); } break; Modified: head/sys/dev/isp/ispvar.h ============================================================================== --- head/sys/dev/isp/ispvar.h Sun Dec 27 06:16:02 2015 (r292764) +++ head/sys/dev/isp/ispvar.h Sun Dec 27 06:28:31 2015 (r292765) @@ -77,7 +77,7 @@ struct ispmdvec { */ #define MAX_TARGETS 16 #ifndef MAX_FC_TARG -#define MAX_FC_TARG 256 +#define MAX_FC_TARG 1024 #endif #define ISP_MAX_TARGETS(isp) (IS_FC(isp)? MAX_FC_TARG : MAX_TARGETS) #define ISP_MAX_LUNS(isp) (isp)->isp_maxluns @@ -472,6 +472,8 @@ typedef struct { */ void * isp_scratch; XS_DMA_ADDR_T isp_scdma; + + uint8_t isp_scanscratch[ISP_FC_SCRLEN]; } fcparam; #define FW_CONFIG_WAIT 0 From owner-svn-src-all@freebsd.org Sun Dec 27 07:39:45 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CF14FA4C862; Sun, 27 Dec 2015 07:39:45 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9D3CD1F98; Sun, 27 Dec 2015 07:39:45 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBR7dioI052343; Sun, 27 Dec 2015 07:39:44 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBR7diMm052342; Sun, 27 Dec 2015 07:39:44 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201512270739.tBR7diMm052342@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sun, 27 Dec 2015 07:39:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292766 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 07:39:45 -0000 Author: adrian Date: Sun Dec 27 07:39:44 2015 New Revision: 292766 URL: https://svnweb.freebsd.org/changeset/base/292766 Log: Fix missing path conversion from the previous commit to shuffle mdio around. It turns out the recent work to cut down the number of atheros kernels built didnt include one with ARGE_MDIO defined.. Modified: head/sys/mips/atheros/if_arge.c Modified: head/sys/mips/atheros/if_arge.c ============================================================================== --- head/sys/mips/atheros/if_arge.c Sun Dec 27 06:28:31 2015 (r292765) +++ head/sys/mips/atheros/if_arge.c Sun Dec 27 07:39:44 2015 (r292766) @@ -78,7 +78,7 @@ __FBSDID("$FreeBSD$"); #include "opt_arge.h" #if defined(ARGE_MDIO) -#include +#include #include #include "mdio_if.h" #endif From owner-svn-src-all@freebsd.org Sun Dec 27 07:50:13 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E4D4CA4CBE4; Sun, 27 Dec 2015 07:50:13 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A8BA113D8; Sun, 27 Dec 2015 07:50:13 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBR7oCea055298; Sun, 27 Dec 2015 07:50:12 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBR7oCrv055290; Sun, 27 Dec 2015 07:50:12 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201512270750.tBR7oCrv055290@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Sun, 27 Dec 2015 07:50:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292767 - in head: include lib/libc/stdlib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 07:50:14 -0000 Author: ed Date: Sun Dec 27 07:50:11 2015 New Revision: 292767 URL: https://svnweb.freebsd.org/changeset/base/292767 Log: Replace implementation of hsearch() by one that scales. Traditionally the hcreate() function creates a hash table that uses chaining, using a fixed user-provided size. The problem with this approach is that this often either wastes memory (table too big) or yields bad performance (table too small). For applications it may not always be easy to estimate the right hash table size. A fixed number only increases performance compared to a linked list by a constant factor. This problem can be solved easily by dynamically resizing the hash table. If the size of the hash table is at least doubled, this has no negative on the running time complexity. If a dynamically sized hash table is used, we can also switch to using open addressing instead of chaining, which has the advantage of just using a single allocation for the entire table, instead of allocating many small objects. Finally, a problem with the existing implementation is that its deterministic algorithm for hashing makes it possible to come up with fixed patterns to trigger an excessive number of collisions. We can easily solve this by using FNV-1a as a hashing algorithm in combination with a randomly generated offset basis. Measurements have shown that this implementation is about 20-25% faster than the existing implementation (even if the existing implementation is given an excessive number of buckets). Though it allocates more memory through malloc() than the old implementation (between 4-8 pointers per used entry instead of 3), process memory use is similar to the old implementation as if the estimated size was underestimated by a factor 10. This is due to the fact that malloc() needs to perform less bookkeeping. Reviewed by: jilles, pfg Obtained from: https://github.com/NuxiNL/cloudlibc Differential Revision: https://reviews.freebsd.org/D4644 Added: head/lib/libc/stdlib/hcreate_r.c (contents, props changed) head/lib/libc/stdlib/hdestroy_r.c (contents, props changed) head/lib/libc/stdlib/hsearch.h (contents, props changed) head/lib/libc/stdlib/hsearch_r.c (contents, props changed) Replaced: head/lib/libc/stdlib/hcreate.c (contents, props changed) Modified: head/include/search.h head/lib/libc/stdlib/Makefile.inc head/lib/libc/stdlib/hcreate.3 Modified: head/include/search.h ============================================================================== --- head/include/search.h Sun Dec 27 07:39:44 2015 (r292766) +++ head/include/search.h Sun Dec 27 07:50:11 2015 (r292767) @@ -47,11 +47,8 @@ struct que_elem { #endif #if __BSD_VISIBLE -struct _ENTRY; struct hsearch_data { - struct _ENTRY *table; - size_t size; - size_t filled; + struct __hsearch *__hsearch; }; #endif Modified: head/lib/libc/stdlib/Makefile.inc ============================================================================== --- head/lib/libc/stdlib/Makefile.inc Sun Dec 27 07:39:44 2015 (r292766) +++ head/lib/libc/stdlib/Makefile.inc Sun Dec 27 07:50:11 2015 (r292767) @@ -6,7 +6,8 @@ MISRCS+=_Exit.c a64l.c abort.c abs.c atexit.c atof.c atoi.c atol.c atoll.c \ bsearch.c div.c exit.c getenv.c getopt.c getopt_long.c \ - getsubopt.c hcreate.c heapsort.c heapsort_b.c imaxabs.c imaxdiv.c \ + getsubopt.c hcreate.c hcreate_r.c hdestroy_r.c heapsort.c heapsort_b.c \ + hsearch_r.c imaxabs.c imaxdiv.c \ insque.c l64a.c labs.c ldiv.c llabs.c lldiv.c lsearch.c \ merge.c mergesort_b.c ptsname.c qsort.c qsort_r.c quick_exit.c \ radixsort.c rand.c \ Modified: head/lib/libc/stdlib/hcreate.3 ============================================================================== --- head/lib/libc/stdlib/hcreate.3 Sun Dec 27 07:39:44 2015 (r292766) +++ head/lib/libc/stdlib/hcreate.3 Sun Dec 27 07:50:11 2015 (r292767) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 21, 2014 +.Dd December 26, 2015 .Dt HCREATE 3 .Os .Sh NAME @@ -76,8 +76,8 @@ The .Fa nel argument is an estimate of the maximum number of entries that the table should contain. -This number may be adjusted upward by the -algorithm in order to obtain certain mathematically favorable circumstances. +As this implementation resizes the hash table dynamically, +this argument is ignored. .Pp The .Fn hdestroy @@ -274,8 +274,6 @@ functions will fail if: .Bl -tag -width Er .It Bq Er ENOMEM Insufficient memory is available. -.It Bq Er EINVAL -A table already exists. .El .Pp The Added: head/lib/libc/stdlib/hcreate.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/stdlib/hcreate.c Sun Dec 27 07:50:11 2015 (r292767) @@ -0,0 +1,73 @@ +/*- + * Copyright (c) 2015 Nuxi, https://nuxi.nl/ + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +/* + * Thread unsafe interface: use a single process-wide hash table and + * forward calls to *_r() functions. + */ + +static struct hsearch_data global_hashtable; +static bool global_hashtable_initialized = false; + +int +hcreate(size_t nel) +{ + + return (1); +} + +void +hdestroy(void) +{ + + /* Destroy global hash table if present. */ + if (global_hashtable_initialized) { + hdestroy_r(&global_hashtable); + global_hashtable_initialized = false; + } +} + +ENTRY * +hsearch(ENTRY item, ACTION action) +{ + ENTRY *retval; + + /* Create global hash table if needed. */ + if (!global_hashtable_initialized) { + if (hcreate_r(0, &global_hashtable) == 0) + return (NULL); + global_hashtable_initialized = true; + } + if (hsearch_r(item, action, &retval, &global_hashtable) == 0) + return (NULL); + return (retval); +} Added: head/lib/libc/stdlib/hcreate_r.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/stdlib/hcreate_r.c Sun Dec 27 07:50:11 2015 (r292767) @@ -0,0 +1,63 @@ +/*- + * Copyright (c) 2015 Nuxi, https://nuxi.nl/ + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#include "hsearch.h" + +int +hcreate_r(size_t nel, struct hsearch_data *htab) +{ + struct __hsearch *hsearch; + + /* + * Allocate a hash table object. Ignore the provided hint and start + * off with a table of sixteen entries. In most cases this hint is + * just a wild guess. Resizing the table dynamically if the use + * increases a threshold does not affect the worst-case running time. + */ + hsearch = malloc(sizeof(*hsearch)); + if (hsearch == NULL) + return 0; + hsearch->entries = calloc(16, sizeof(ENTRY)); + if (hsearch->entries == NULL) { + free(hsearch); + return 0; + } + + /* + * Pick a random initialization for the FNV-1a hashing. This makes it + * hard to come up with a fixed set of keys to force hash collisions. + */ + arc4random_buf(&hsearch->offset_basis, sizeof(hsearch->offset_basis)); + hsearch->index_mask = 0xf; + hsearch->entries_used = 0; + htab->__hsearch = hsearch; + return 1; +} Added: head/lib/libc/stdlib/hdestroy_r.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/stdlib/hdestroy_r.c Sun Dec 27 07:50:11 2015 (r292767) @@ -0,0 +1,43 @@ +/*- + * Copyright (c) 2015 Nuxi, https://nuxi.nl/ + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#include "hsearch.h" + +void +hdestroy_r(struct hsearch_data *htab) +{ + struct __hsearch *hsearch; + + /* Free hash table object and its entries. */ + hsearch = htab->__hsearch; + free(hsearch->entries); + free(hsearch); +} Added: head/lib/libc/stdlib/hsearch.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/stdlib/hsearch.h Sun Dec 27 07:50:11 2015 (r292767) @@ -0,0 +1,40 @@ +/*- + * Copyright (c) 2015 Nuxi, https://nuxi.nl/ + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef HSEARCH_H +#define HSEARCH_H + +#include + +struct __hsearch { + size_t offset_basis; /* Initial value for FNV-1a hashing. */ + size_t index_mask; /* Bitmask for indexing the table. */ + size_t entries_used; /* Number of entries currently used. */ + ENTRY *entries; /* Hash table entries. */ +}; + +#endif Added: head/lib/libc/stdlib/hsearch_r.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/stdlib/hsearch_r.c Sun Dec 27 07:50:11 2015 (r292767) @@ -0,0 +1,150 @@ +/*- + * Copyright (c) 2015 Nuxi, https://nuxi.nl/ + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include + +#include "hsearch.h" + +/* + * Look up an unused entry in the hash table for a given hash. For this + * implementation we use quadratic probing. Quadratic probing has the + * advantage of preventing primary clustering. + */ +static ENTRY * +hsearch_lookup_free(struct __hsearch *hsearch, size_t hash) +{ + size_t index, i; + + for (index = hash, i = 0;; index += ++i) { + ENTRY *entry = &hsearch->entries[index & hsearch->index_mask]; + if (entry->key == NULL) + return (entry); + } +} + +/* + * Computes an FNV-1a hash of the key. Depending on the pointer size, this + * either uses the 32- or 64-bit FNV prime. + */ +static size_t +hsearch_hash(size_t offset_basis, const char *str) +{ + size_t hash; + + hash = offset_basis; + while (*str != '\0') { + hash ^= (uint8_t)*str++; + if (sizeof(size_t) * CHAR_BIT <= 32) + hash *= UINT32_C(16777619); + else + hash *= UINT64_C(1099511628211); + } + return (hash); +} + +int +hsearch_r(ENTRY item, ACTION action, ENTRY **retval, struct hsearch_data *htab) +{ + struct __hsearch *hsearch; + ENTRY *entry, *old_entries, *new_entries; + size_t hash, index, i, old_hash, old_count, new_count; + + hsearch = htab->__hsearch; + hash = hsearch_hash(hsearch->offset_basis, item.key); + + /* + * Search the hash table for an existing entry for this key. + * Stop searching if we run into an unused hash table entry. + */ + for (index = hash, i = 0;; index += ++i) { + entry = &hsearch->entries[index & hsearch->index_mask]; + if (entry->key == NULL) + break; + if (strcmp(entry->key, item.key) == 0) { + *retval = entry; + return (1); + } + } + + /* Only perform the insertion if action is set to ENTER. */ + if (action == FIND) { + errno = ESRCH; + return (0); + } + + if (hsearch->entries_used * 2 >= hsearch->index_mask) { + /* Preserve the old hash table entries. */ + old_count = hsearch->index_mask + 1; + old_entries = hsearch->entries; + + /* + * Allocate and install a new table if insertion would + * yield a hash table that is more than 50% used. By + * using 50% as a threshold, a lookup will only take up + * to two steps on average. + */ + new_count = (hsearch->index_mask + 1) * 2; + new_entries = calloc(new_count, sizeof(ENTRY)); + if (new_entries == NULL) + return (0); + hsearch->entries = new_entries; + hsearch->index_mask = new_count - 1; + + /* Copy over the entries from the old table to the new table. */ + for (i = 0; i < old_count; ++i) { + entry = &old_entries[i]; + if (entry->key != NULL) { + old_hash = hsearch_hash(hsearch->offset_basis, + entry->key); + *hsearch_lookup_free(hsearch, old_hash) = + *entry; + } + } + + /* Destroy the old hash table entries. */ + free(old_entries); + + /* + * Perform a new lookup for a free table entry, so that + * we insert the entry into the new hash table. + */ + hsearch = htab->__hsearch; + entry = hsearch_lookup_free(hsearch, hash); + } + + /* Insert the new entry into the hash table. */ + *entry = item; + ++hsearch->entries_used; + *retval = entry; + return (1); +} From owner-svn-src-all@freebsd.org Sun Dec 27 11:04:13 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E5C0A52738; Sun, 27 Dec 2015 11:04:13 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D8B6B1DAC; Sun, 27 Dec 2015 11:04:12 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRB4Bu2013470; Sun, 27 Dec 2015 11:04:11 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRB4Bc4013469; Sun, 27 Dec 2015 11:04:11 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512271104.tBRB4Bc4013469@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 11:04:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292768 - stable/10/share/mk X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 11:04:13 -0000 Author: ngie Date: Sun Dec 27 11:04:11 2015 New Revision: 292768 URL: https://svnweb.freebsd.org/changeset/base/292768 Log: MFC r292500,r292501,r292504,r292509: r292500: Simplify Kyuafile generation logic with KYUAFILE == auto and related complexity with variables Differential Revision: https://reviews.freebsd.org/D4406 (part of a larger diff) Reviewed by: emaste, Evan Cramer Sponsored by: EMC / Isilon Storage Division r292501: Fix typo in r292500 by adding missing conditional statement Pointyhat to: ngie Differential Revision: https://reviews.freebsd.org/D4406 (part of a larger diff) Sponsored by: EMC / Isilon Storage Division r292504: Deal with another hardcoded reference to Kyuafile in the KYUAFILE == auto case Differential Revision: https://reviews.freebsd.org/D4406 (part of a larger diff) Reviewed by: emaste, Evan Cramer Sponsored by: EMC / Isilon Storage Division r292509: Clean up Kyuafile.tmp, not Kyuafile.auto.tmp Differential Revision: https://reviews.freebsd.org/D4406 (part of a larger diff) Reviewed by: emaste, Evan Cramer Sponsored by: EMC / Isilon Storage Division Modified: stable/10/share/mk/suite.test.mk Directory Properties: stable/10/ (props changed) Modified: stable/10/share/mk/suite.test.mk ============================================================================== --- stable/10/share/mk/suite.test.mk Sun Dec 27 07:50:11 2015 (r292767) +++ stable/10/share/mk/suite.test.mk Sun Dec 27 11:04:11 2015 (r292768) @@ -45,20 +45,17 @@ KYUAFILE?= auto # hierarchy specified by this variable. KYUA_PREFIX?= /usr/local -.if ${KYUAFILE:tl} == "yes" +.if ${KYUAFILE:tl} != "no" FILES+= Kyuafile FILESDIR_Kyuafile= ${TESTSDIR} +.endif -CLEANFILES+= Kyuafile.auto Kyuafile.auto.tmp -.elif ${KYUAFILE:tl} == "auto" -FILES+= Kyuafile.auto -FILESDIR_Kyuafile.auto= ${TESTSDIR} -FILESNAME_Kyuafile.auto= Kyuafile - -CLEANFILES+= Kyuafile.auto Kyuafile.auto.tmp +.if ${KYUAFILE:tl} == "auto" +CLEANFILES+= Kyuafile Kyuafile.tmp +.endif -.NOPATH: Kyuafile.auto -Kyuafile.auto: Makefile +.if ${KYUAFILE:tl} == "auto" +Kyuafile: Makefile @{ \ echo '-- Automatically generated by bsd.test.mk.'; \ echo; \ @@ -66,20 +63,20 @@ Kyuafile.auto: Makefile echo; \ echo 'test_suite("${TESTSUITE}")'; \ echo; \ - } >Kyuafile.auto.tmp + } > ${.TARGET}.tmp .for _T in ${_TESTS} .if defined(.PARSEDIR) @echo '${TEST_INTERFACE.${_T}}_test_program{name="${_T}"${TEST_METADATA.${_T}:C/$/,/:tW:C/^/, /W:C/,$//W}}' \ - >>Kyuafile.auto.tmp + >>${.TARGET}.tmp .else @echo '${TEST_INTERFACE.${_T}}_test_program{name="${_T}"${TEST_METADATA.${_T}:C/^/, /:Q:S/\\ ,/,/g:S,\\,,g}}' \ >>Kyuafile.auto.tmp .endif .endfor .for _T in ${TESTS_SUBDIRS:N.WAIT} - @echo "include(\"${_T}/Kyuafile\")" >>Kyuafile.auto.tmp + @echo "include(\"${_T}/${.TARGET}\")" >>${.TARGET}.tmp .endfor - @mv Kyuafile.auto.tmp Kyuafile.auto + @mv ${.TARGET}.tmp ${.TARGET} .endif KYUA?= ${KYUA_PREFIX}/bin/kyua From owner-svn-src-all@freebsd.org Sun Dec 27 11:12:10 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0AFCA52950; Sun, 27 Dec 2015 11:12:10 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 85B62111D; Sun, 27 Dec 2015 11:12:10 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRBC9in015770; Sun, 27 Dec 2015 11:12:09 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRBC9dp015769; Sun, 27 Dec 2015 11:12:09 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512271112.tBRBC9dp015769@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 11:12:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292769 - stable/10/tools/regression/lib/msun X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 11:12:10 -0000 Author: ngie Date: Sun Dec 27 11:12:09 2015 New Revision: 292769 URL: https://svnweb.freebsd.org/changeset/base/292769 Log: MFC r292493: Don't run test-fma on i386 It completely fails all assertions on i386 on both stable/9 and stable/10 PR: 205448 X-MFC to: stable/10 Sponsored by: EMC / Isilon Storage Division Modified: stable/10/tools/regression/lib/msun/test-fma.c Directory Properties: stable/10/ (props changed) Modified: stable/10/tools/regression/lib/msun/test-fma.c ============================================================================== --- stable/10/tools/regression/lib/msun/test-fma.c Sun Dec 27 11:04:11 2015 (r292768) +++ stable/10/tools/regression/lib/msun/test-fma.c Sun Dec 27 11:12:09 2015 (r292769) @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include "test-utils.h" @@ -475,6 +476,11 @@ main(int argc, char *argv[]) int rmodes[] = { FE_TONEAREST, FE_UPWARD, FE_DOWNWARD, FE_TOWARDZERO }; int i; +#if defined(__i386__) + printf("1..0 # SKIP all testcases fail on i386\n"); + exit(0); +#endif + printf("1..19\n"); for (i = 0; i < 4; i++) { From owner-svn-src-all@freebsd.org Sun Dec 27 13:37:15 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E97B2A4C99F; Sun, 27 Dec 2015 13:37:15 +0000 (UTC) (envelope-from julian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BCD211EF6; Sun, 27 Dec 2015 13:37:15 +0000 (UTC) (envelope-from julian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRDbEwc058357; Sun, 27 Dec 2015 13:37:14 GMT (envelope-from julian@FreeBSD.org) Received: (from julian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRDbEh4058356; Sun, 27 Dec 2015 13:37:14 GMT (envelope-from julian@FreeBSD.org) Message-Id: <201512271337.tBRDbEh4058356@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: julian set sender to julian@FreeBSD.org using -f From: Julian Elischer Date: Sun, 27 Dec 2015 13:37:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292770 - stable/10/sys/netgraph X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 13:37:16 -0000 Author: julian Date: Sun Dec 27 13:37:14 2015 New Revision: 292770 URL: https://svnweb.freebsd.org/changeset/base/292770 Log: MFH: r278640 Revise default limit for maximum of netgraph data items. With modern internet speeds the limit can be reached even on a single L2TP link. Modified: stable/10/sys/netgraph/ng_base.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/netgraph/ng_base.c ============================================================================== --- stable/10/sys/netgraph/ng_base.c Sun Dec 27 11:12:09 2015 (r292769) +++ stable/10/sys/netgraph/ng_base.c Sun Dec 27 13:37:14 2015 (r292770) @@ -2947,7 +2947,7 @@ uma_zone_t ng_qzone; uma_zone_t ng_qdzone; static int numthreads = 0; /* number of queue threads */ static int maxalloc = 4096;/* limit the damage of a leak */ -static int maxdata = 512; /* limit the damage of a DoS */ +static int maxdata = 4096; /* limit the damage of a DoS */ TUNABLE_INT("net.graph.threads", &numthreads); SYSCTL_INT(_net_graph, OID_AUTO, threads, CTLFLAG_RDTUN, &numthreads, From owner-svn-src-all@freebsd.org Sun Dec 27 14:39:49 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 02406A4DFBC; Sun, 27 Dec 2015 14:39:49 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B84EA1E2A; Sun, 27 Dec 2015 14:39:48 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBREdl0P076817; Sun, 27 Dec 2015 14:39:47 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBREdlhl076813; Sun, 27 Dec 2015 14:39:47 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512271439.tBREdlhl076813@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 14:39:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292771 - in stable/10/sys/sparc64: include sparc64 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 14:39:49 -0000 Author: marius Date: Sun Dec 27 14:39:47 2015 New Revision: 292771 URL: https://svnweb.freebsd.org/changeset/base/292771 Log: MFC: r291121 Merge from r290547: Since r289279 bufinit() uses mp_ncpus so adapt to what x86 does and set this variable already in cpu_mp_setmaxid(). While at it, rename cpu_cpuid_prop() to cpu_portid_prop() as well as the MD cpuid variable to portid to avoid confusion with the MI use of "cpuid" and make some variable static/global in order to reduce stack usage. PR: 204685 Modified: stable/10/sys/sparc64/include/md_var.h stable/10/sys/sparc64/sparc64/machdep.c stable/10/sys/sparc64/sparc64/mp_machdep.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/sparc64/include/md_var.h ============================================================================== --- stable/10/sys/sparc64/include/md_var.h Sun Dec 27 13:37:14 2015 (r292770) +++ stable/10/sys/sparc64/include/md_var.h Sun Dec 27 14:39:47 2015 (r292771) @@ -47,9 +47,9 @@ extern vm_paddr_t kstack0_phys; struct pcpu; struct md_utrap; -const char *cpu_cpuid_prop(u_int cpu_impl); uint32_t cpu_get_mid(u_int cpu_impl); void cpu_identify(u_long vers, u_int clock, u_int id); +const char *cpu_portid_prop(u_int cpu_impl); void cpu_setregs(struct pcpu *pc); int is_physical_memory(vm_paddr_t addr); struct md_utrap *utrap_alloc(void); Modified: stable/10/sys/sparc64/sparc64/machdep.c ============================================================================== --- stable/10/sys/sparc64/sparc64/machdep.c Sun Dec 27 13:37:14 2015 (r292770) +++ stable/10/sys/sparc64/sparc64/machdep.c Sun Dec 27 14:39:47 2015 (r292771) @@ -249,7 +249,7 @@ find_bsp(phandle_t node, uint32_t bspid, { char type[sizeof("cpu")]; phandle_t child; - uint32_t cpuid; + uint32_t portid; for (; node != 0; node = OF_peer(node)) { child = OF_child(node); @@ -263,10 +263,10 @@ find_bsp(phandle_t node, uint32_t bspid, continue; if (strcmp(type, "cpu") != 0) continue; - if (OF_getprop(node, cpu_cpuid_prop(cpu_impl), &cpuid, - sizeof(cpuid)) <= 0) + if (OF_getprop(node, cpu_portid_prop(cpu_impl), + &portid, sizeof(portid)) <= 0) continue; - if (cpuid == bspid) + if (portid == bspid) return (node); } } @@ -274,7 +274,7 @@ find_bsp(phandle_t node, uint32_t bspid, } const char * -cpu_cpuid_prop(u_int cpu_impl) +cpu_portid_prop(u_int cpu_impl) { switch (cpu_impl) { Modified: stable/10/sys/sparc64/sparc64/mp_machdep.c ============================================================================== --- stable/10/sys/sparc64/sparc64/mp_machdep.c Sun Dec 27 13:37:14 2015 (r292770) +++ stable/10/sys/sparc64/sparc64/mp_machdep.c Sun Dec 27 14:39:47 2015 (r292771) @@ -119,9 +119,11 @@ struct mtx ipi_mtx; cpu_ipi_selected_t *cpu_ipi_selected; cpu_ipi_single_t *cpu_ipi_single; -static vm_offset_t mp_tramp; static u_int cpuid_to_mid[MAXCPU]; +static u_int cpuids = 1; static volatile cpuset_t shutdown_cpus; +static char ipi_pbuf[CPUSETBUFSIZ]; +static vm_offset_t mp_tramp; static void ap_count(phandle_t node, u_int mid, u_int cpu_impl); static void ap_start(phandle_t node, u_int mid, u_int cpu_impl); @@ -165,13 +167,12 @@ static void foreach_ap(phandle_t node, void (*func)(phandle_t node, u_int mid, u_int cpu_impl)) { - char type[sizeof("cpu")]; + static char type[sizeof("cpu")]; phandle_t child; - u_int cpuid; - uint32_t cpu_impl; + uint32_t cpu_impl, portid; /* There's no need to traverse the whole OFW tree twice. */ - if (mp_maxid > 0 && mp_ncpus >= mp_maxid + 1) + if (mp_maxid > 0 && cpuids > mp_maxid) return; for (; node != 0; node = OF_peer(node)) { @@ -188,13 +189,13 @@ foreach_ap(phandle_t node, void (*func)( sizeof(cpu_impl)) <= 0) panic("%s: couldn't determine CPU " "implementation", __func__); - if (OF_getprop(node, cpu_cpuid_prop(cpu_impl), &cpuid, - sizeof(cpuid)) <= 0) - panic("%s: couldn't determine CPU module ID", + if (OF_getprop(node, cpu_portid_prop(cpu_impl), + &portid, sizeof(portid)) <= 0) + panic("%s: couldn't determine CPU port ID", __func__); - if (cpuid == PCPU_GET(mid)) + if (portid == PCPU_GET(mid)) continue; - (*func)(node, cpuid, cpu_impl); + (*func)(node, portid, cpu_impl); } } } @@ -208,16 +209,17 @@ cpu_mp_setmaxid(void) CPU_SETOF(curcpu, &all_cpus); mp_ncpus = 1; - mp_maxid = 0; foreach_ap(OF_child(OF_peer(0)), ap_count); + mp_ncpus = MIN(mp_ncpus, MAXCPU); + mp_maxid = mp_ncpus - 1; } static void ap_count(phandle_t node __unused, u_int mid __unused, u_int cpu_impl __unused) { - mp_maxid++; + mp_ncpus++; } int @@ -306,7 +308,7 @@ ap_start(phandle_t node, u_int mid, u_in u_int cpuid; uint32_t clock; - if (mp_ncpus > MAXCPU) + if (cpuids > mp_maxid) return; if (OF_getprop(node, "clock-frequency", &clock, sizeof(clock)) <= 0) @@ -334,7 +336,7 @@ ap_start(phandle_t node, u_int mid, u_in csa->csa_tick = csa->csa_stick = 0; intr_restore(s); - cpuid = mp_ncpus++; + cpuid = cpuids++; cpuid_to_mid[cpuid] = mid; cpu_identify(csa->csa_ver, clock, cpuid); @@ -659,7 +661,6 @@ cheetah_ipi_single(u_int cpu, u_long d0, static void cheetah_ipi_selected(cpuset_t cpus, u_long d0, u_long d1, u_long d2) { - char pbuf[CPUSETBUFSIZ]; register_t s; u_long ids; u_int bnp; @@ -675,14 +676,14 @@ cheetah_ipi_selected(cpuset_t cpus, u_lo ("%s: outstanding dispatch", __func__)); ids = 0; - for (i = 0; i < IPI_RETRIES * mp_ncpus; i++) { + for (i = 0; i < IPI_RETRIES * smp_cpus; i++) { s = intr_disable(); stxa(AA_SDB_INTR_D0, ASI_SDB_INTR_W, d0); stxa(AA_SDB_INTR_D1, ASI_SDB_INTR_W, d1); stxa(AA_SDB_INTR_D2, ASI_SDB_INTR_W, d2); membar(Sync); bnp = 0; - for (cpu = 0; cpu < mp_ncpus; cpu++) { + for (cpu = 0; cpu < smp_cpus; cpu++) { if (CPU_ISSET(cpu, &cpus)) { stxa(AA_INTR_SEND | (cpuid_to_mid[cpu] << IDC_ITID_SHIFT) | bnp << IDC_BN_SHIFT, @@ -698,7 +699,7 @@ cheetah_ipi_selected(cpuset_t cpus, u_lo ; intr_restore(s); bnp = 0; - for (cpu = 0; cpu < mp_ncpus; cpu++) { + for (cpu = 0; cpu < smp_cpus; cpu++) { if (CPU_ISSET(cpu, &cpus)) { if ((ids & (IDR_NACK << (2 * bnp))) == 0) CPU_CLR(cpu, &cpus); @@ -710,10 +711,10 @@ cheetah_ipi_selected(cpuset_t cpus, u_lo } if (kdb_active != 0 || panicstr != NULL) printf("%s: couldn't send IPI (cpus=%s ids=0x%lu)\n", - __func__, cpusetobj_strprint(pbuf, &cpus), ids); + __func__, cpusetobj_strprint(ipi_pbuf, &cpus), ids); else panic("%s: couldn't send IPI (cpus=%s ids=0x%lu)", - __func__, cpusetobj_strprint(pbuf, &cpus), ids); + __func__, cpusetobj_strprint(ipi_pbuf, &cpus), ids); } static void @@ -760,7 +761,6 @@ jalapeno_ipi_single(u_int cpu, u_long d0 static void jalapeno_ipi_selected(cpuset_t cpus, u_long d0, u_long d1, u_long d2) { - char pbuf[CPUSETBUFSIZ]; register_t s; u_long ids; u_int cpu; @@ -775,13 +775,13 @@ jalapeno_ipi_selected(cpuset_t cpus, u_l ("%s: outstanding dispatch", __func__)); ids = 0; - for (i = 0; i < IPI_RETRIES * mp_ncpus; i++) { + for (i = 0; i < IPI_RETRIES * smp_cpus; i++) { s = intr_disable(); stxa(AA_SDB_INTR_D0, ASI_SDB_INTR_W, d0); stxa(AA_SDB_INTR_D1, ASI_SDB_INTR_W, d1); stxa(AA_SDB_INTR_D2, ASI_SDB_INTR_W, d2); membar(Sync); - for (cpu = 0; cpu < mp_ncpus; cpu++) { + for (cpu = 0; cpu < smp_cpus; cpu++) { if (CPU_ISSET(cpu, &cpus)) { stxa(AA_INTR_SEND | (cpuid_to_mid[cpu] << IDC_ITID_SHIFT), ASI_SDB_INTR_W, 0); @@ -795,7 +795,7 @@ jalapeno_ipi_selected(cpuset_t cpus, u_l if ((ids & (IDR_CHEETAH_ALL_BUSY | IDR_CHEETAH_ALL_NACK)) == 0) return; - for (cpu = 0; cpu < mp_ncpus; cpu++) + for (cpu = 0; cpu < smp_cpus; cpu++) if (CPU_ISSET(cpu, &cpus)) if ((ids & (IDR_NACK << (2 * cpuid_to_mid[cpu]))) == 0) @@ -803,8 +803,8 @@ jalapeno_ipi_selected(cpuset_t cpus, u_l } if (kdb_active != 0 || panicstr != NULL) printf("%s: couldn't send IPI (cpus=%s ids=0x%lu)\n", - __func__, cpusetobj_strprint(pbuf, &cpus), ids); + __func__, cpusetobj_strprint(ipi_pbuf, &cpus), ids); else panic("%s: couldn't send IPI (cpus=%s ids=0x%lu)", - __func__, cpusetobj_strprint(pbuf, &cpus), ids); + __func__, cpusetobj_strprint(ipi_pbuf, &cpus), ids); } From owner-svn-src-all@freebsd.org Sun Dec 27 14:42:41 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1A224A521CE; Sun, 27 Dec 2015 14:42:41 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D90301322; Sun, 27 Dec 2015 14:42:40 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBREgd6n079656; Sun, 27 Dec 2015 14:42:39 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBREgdRr079655; Sun, 27 Dec 2015 14:42:39 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201512271442.tBREgdRr079655@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sun, 27 Dec 2015 14:42:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292772 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 14:42:41 -0000 Author: kib Date: Sun Dec 27 14:42:39 2015 New Revision: 292772 URL: https://svnweb.freebsd.org/changeset/base/292772 Log: Add missed relpbuf() for a smallfs page-in. Reported by: Shawn Webb Tested by: pho Sponsored by: The FreeBSD Foundation Modified: head/sys/vm/vnode_pager.c Modified: head/sys/vm/vnode_pager.c ============================================================================== --- head/sys/vm/vnode_pager.c Sun Dec 27 14:39:47 2015 (r292771) +++ head/sys/vm/vnode_pager.c Sun Dec 27 14:42:39 2015 (r292772) @@ -806,6 +806,7 @@ vnode_pager_generic_getpages(struct vnod * than a page size, then use special small filesystem code. */ if (pagesperblock == 0) { + relpbuf(bp, freecnt); for (i = 0; i < count; i++) { PCPU_INC(cnt.v_vnodein); PCPU_INC(cnt.v_vnodepgsin); From owner-svn-src-all@freebsd.org Sun Dec 27 15:18:02 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A2A3A52B30; Sun, 27 Dec 2015 15:18:02 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 58230144B; Sun, 27 Dec 2015 15:18:02 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRFI1fi089220; Sun, 27 Dec 2015 15:18:01 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRFI167089219; Sun, 27 Dec 2015 15:18:01 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512271518.tBRFI167089219@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 15:18:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292775 - stable/10/sys/x86/x86 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 15:18:02 -0000 Author: marius Date: Sun Dec 27 15:18:01 2015 New Revision: 292775 URL: https://svnweb.freebsd.org/changeset/base/292775 Log: MFC: r286785, r291088, r291120 - Reformat x86 bounce buffer synchronization code to reduce indentation. No functional change. - Avoid a NULL pointer dereference in bounce_bus_dmamap_sync() when the map has been created via bounce_bus_dmamem_alloc(). Even for coherent DMA - which bus_dmamem_alloc(9) typically is used for -, calling of bus_dmamap_sync(9) isn't optional. [1] - Avoid a NULL pointer dereference in bounce_bus_dmamap_unload() when the map has been created via bounce_bus_dmamem_alloc(). In that case bus_dmamap_unload(9) typically isn't called during normal operation but still should be during detach, cleanup from failed attach etc. [2] PR: 188899 (non-original problem) [1] Submitted by: yongari [2] Modified: stable/10/sys/x86/x86/busdma_bounce.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/x86/x86/busdma_bounce.c ============================================================================== --- stable/10/sys/x86/x86/busdma_bounce.c Sun Dec 27 14:53:31 2015 (r292774) +++ stable/10/sys/x86/x86/busdma_bounce.c Sun Dec 27 15:18:01 2015 (r292775) @@ -751,6 +751,9 @@ bounce_bus_dmamap_unload(bus_dma_tag_t d { struct bounce_page *bpage; + if (map == NULL) + return; + while ((bpage = STAILQ_FIRST(&map->bpages)) != NULL) { STAILQ_REMOVE_HEAD(&map->bpages, links); free_bounce_page(dmat, bpage); @@ -763,47 +766,43 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dma { struct bounce_page *bpage; - if ((bpage = STAILQ_FIRST(&map->bpages)) != NULL) { - /* - * Handle data bouncing. We might also - * want to add support for invalidating - * the caches on broken hardware - */ - CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x op 0x%x " - "performing bounce", __func__, dmat, - dmat->common.flags, op); - - if ((op & BUS_DMASYNC_PREWRITE) != 0) { - while (bpage != NULL) { - if (bpage->datavaddr != 0) { - bcopy((void *)bpage->datavaddr, - (void *)bpage->vaddr, - bpage->datacount); - } else { - physcopyout(bpage->dataaddr, - (void *)bpage->vaddr, - bpage->datacount); - } - bpage = STAILQ_NEXT(bpage, links); + if (map == NULL || (bpage = STAILQ_FIRST(&map->bpages)) == NULL) + return; + + /* + * Handle data bouncing. We might also want to add support for + * invalidating the caches on broken hardware. + */ + CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x op 0x%x " + "performing bounce", __func__, dmat, dmat->common.flags, op); + + if ((op & BUS_DMASYNC_PREWRITE) != 0) { + while (bpage != NULL) { + if (bpage->datavaddr != 0) { + bcopy((void *)bpage->datavaddr, + (void *)bpage->vaddr, bpage->datacount); + } else { + physcopyout(bpage->dataaddr, + (void *)bpage->vaddr, bpage->datacount); } - dmat->bounce_zone->total_bounced++; + bpage = STAILQ_NEXT(bpage, links); } + dmat->bounce_zone->total_bounced++; + } - if ((op & BUS_DMASYNC_POSTREAD) != 0) { - while (bpage != NULL) { - if (bpage->datavaddr != 0) { - bcopy((void *)bpage->vaddr, - (void *)bpage->datavaddr, - bpage->datacount); - } else { - physcopyin((void *)bpage->vaddr, - bpage->dataaddr, - bpage->datacount); - } - bpage = STAILQ_NEXT(bpage, links); + if ((op & BUS_DMASYNC_POSTREAD) != 0) { + while (bpage != NULL) { + if (bpage->datavaddr != 0) { + bcopy((void *)bpage->vaddr, + (void *)bpage->datavaddr, + bpage->datacount); + } else { + physcopyin((void *)bpage->vaddr, + bpage->dataaddr, bpage->datacount); } - dmat->bounce_zone->total_bounced++; + bpage = STAILQ_NEXT(bpage, links); } + dmat->bounce_zone->total_bounced++; } } @@ -822,12 +821,14 @@ SYSINIT(bpages, SI_SUB_LOCK, SI_ORDER_AN static struct sysctl_ctx_list * busdma_sysctl_tree(struct bounce_zone *bz) { + return (&bz->sysctl_tree); } static struct sysctl_oid * busdma_sysctl_tree_top(struct bounce_zone *bz) { + return (bz->sysctl_tree_top); } From owner-svn-src-all@freebsd.org Sun Dec 27 15:30:15 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 45000A52FD5; Sun, 27 Dec 2015 15:30:15 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E9D701B34; Sun, 27 Dec 2015 15:30:14 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRFUDsP092369; Sun, 27 Dec 2015 15:30:13 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRFUDmA092367; Sun, 27 Dec 2015 15:30:13 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201512271530.tBRFUDmA092367@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sun, 27 Dec 2015 15:30:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292776 - stable/10/lib/libc/sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 15:30:15 -0000 Author: jilles Date: Sun Dec 27 15:30:13 2015 New Revision: 292776 URL: https://svnweb.freebsd.org/changeset/base/292776 Log: MFC r292513: clock_gettime(2),gettimeofday(2): Remove [EFAULT] error. Depending on system configuration and parameters, clock_gettime() and gettimeofday() may not be system calls. If so, passing an invalid pointer will cause a signal and not an [EFAULT] error. From a standards perspective, this is OK since passing an invalid pointer is undefined behaviour. Modified: stable/10/lib/libc/sys/clock_gettime.2 stable/10/lib/libc/sys/gettimeofday.2 Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/sys/clock_gettime.2 ============================================================================== --- stable/10/lib/libc/sys/clock_gettime.2 Sun Dec 27 15:18:01 2015 (r292775) +++ stable/10/lib/libc/sys/clock_gettime.2 Sun Dec 27 15:30:13 2015 (r292776) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 29, 2009 +.Dd December 20, 2015 .Dt CLOCK_GETTIME 2 .Os .Sh NAME @@ -136,10 +136,6 @@ The .Fa clock_id argument was not a valid value. -.It Bq Er EFAULT -The -.Fa *tp -argument address referenced invalid memory. .It Bq Er EPERM A user other than the super-user attempted to set the time. .El Modified: stable/10/lib/libc/sys/gettimeofday.2 ============================================================================== --- stable/10/lib/libc/sys/gettimeofday.2 Sun Dec 27 15:18:01 2015 (r292775) +++ stable/10/lib/libc/sys/gettimeofday.2 Sun Dec 27 15:30:13 2015 (r292776) @@ -28,7 +28,7 @@ .\" @(#)gettimeofday.2 8.2 (Berkeley) 5/26/95 .\" $FreeBSD$ .\" -.Dd May 26, 1995 +.Dd December 20, 2015 .Dt GETTIMEOFDAY 2 .Os .Sh NAME @@ -110,8 +110,6 @@ system call even when the system is secu The following error codes may be set in .Va errno : .Bl -tag -width Er -.It Bq Er EFAULT -An argument address referenced invalid memory. .It Bq Er EPERM A user other than the super-user attempted to set the time. .El From owner-svn-src-all@freebsd.org Sun Dec 27 15:37:09 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23AAEA5324C; Sun, 27 Dec 2015 15:37:09 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D94BB10BA; Sun, 27 Dec 2015 15:37:08 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRFb82U095300; Sun, 27 Dec 2015 15:37:08 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRFb7nN095297; Sun, 27 Dec 2015 15:37:07 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201512271537.tBRFb7nN095297@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Sun, 27 Dec 2015 15:37:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292777 - in head: lib/libc/sys sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 15:37:09 -0000 Author: dchagin Date: Sun Dec 27 15:37:07 2015 New Revision: 292777 URL: https://svnweb.freebsd.org/changeset/base/292777 Log: Verify that tv_sec value specified in settimeofday() and clock_settime() (CLOCK_REALTIME case) system calls is non negative. This commit hides a kernel panic in atrtc_settime() as the clock_ts_to_ct() does not properly convert negative tv_sec. ps. in my opinion clock_ts_to_ct() should be rewritten to properly handle negative tv_sec values. Differential Revision: https://reviews.freebsd.org/D4714 Reviewed by: kib MFC after: 1 week Modified: head/lib/libc/sys/clock_gettime.2 head/lib/libc/sys/gettimeofday.2 head/sys/kern/kern_time.c Modified: head/lib/libc/sys/clock_gettime.2 ============================================================================== --- head/lib/libc/sys/clock_gettime.2 Sun Dec 27 15:30:13 2015 (r292776) +++ head/lib/libc/sys/clock_gettime.2 Sun Dec 27 15:37:07 2015 (r292777) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 20, 2015 +.Dd December 27, 2015 .Dt CLOCK_GETTIME 2 .Os .Sh NAME @@ -134,6 +134,8 @@ The following error codes may be set in .It Bq Er EINVAL The .Fa clock_id +or +.Fa timespec argument was not a valid value. .It Bq Er EPERM Modified: head/lib/libc/sys/gettimeofday.2 ============================================================================== --- head/lib/libc/sys/gettimeofday.2 Sun Dec 27 15:30:13 2015 (r292776) +++ head/lib/libc/sys/gettimeofday.2 Sun Dec 27 15:37:07 2015 (r292777) @@ -28,7 +28,7 @@ .\" @(#)gettimeofday.2 8.2 (Berkeley) 5/26/95 .\" $FreeBSD$ .\" -.Dd December 20, 2015 +.Dd December 27, 2015 .Dt GETTIMEOFDAY 2 .Os .Sh NAME @@ -110,6 +110,10 @@ system call even when the system is secu The following error codes may be set in .Va errno : .Bl -tag -width Er +.It Bq Er EINVAL +The supplied +.Fa timeval +value is invalid. .It Bq Er EPERM A user other than the super-user attempted to set the time. .El Modified: head/sys/kern/kern_time.c ============================================================================== --- head/sys/kern/kern_time.c Sun Dec 27 15:30:13 2015 (r292776) +++ head/sys/kern/kern_time.c Sun Dec 27 15:37:07 2015 (r292777) @@ -398,7 +398,8 @@ kern_clock_settime(struct thread *td, cl return (error); if (clock_id != CLOCK_REALTIME) return (EINVAL); - if (ats->tv_nsec < 0 || ats->tv_nsec >= 1000000000) + if (ats->tv_nsec < 0 || ats->tv_nsec >= 1000000000 || + ats->tv_sec < 0) return (EINVAL); /* XXX Don't convert nsec->usec and back */ TIMESPEC_TO_TIMEVAL(&atv, ats); @@ -618,7 +619,8 @@ kern_settimeofday(struct thread *td, str return (error); /* Verify all parameters before changing time. */ if (tv) { - if (tv->tv_usec < 0 || tv->tv_usec >= 1000000) + if (tv->tv_usec < 0 || tv->tv_usec >= 1000000 || + tv->tv_sec < 0) return (EINVAL); error = settime(td, tv); } From owner-svn-src-all@freebsd.org Sun Dec 27 15:55:16 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 822DAA539DA; Sun, 27 Dec 2015 15:55:16 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5F3C31BD2; Sun, 27 Dec 2015 15:55:16 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRFtFPq001752; Sun, 27 Dec 2015 15:55:15 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRFtFu0001751; Sun, 27 Dec 2015 15:55:15 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512271555.tBRFtFu0001751@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 15:55:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292778 - stable/9/sys/x86/x86 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 15:55:16 -0000 Author: marius Date: Sun Dec 27 15:55:15 2015 New Revision: 292778 URL: https://svnweb.freebsd.org/changeset/base/292778 Log: MFC: r286785, r291088, r291120 - Reformat x86 bounce buffer synchronization code to reduce indentation. No functional change. - Avoid a NULL pointer dereference in bounce_bus_dmamap_sync() when the map has been created via bounce_bus_dmamem_alloc(). Even for coherent DMA - which bus_dmamem_alloc(9) typically is used for -, calling of bus_dmamap_sync(9) isn't optional. [1] - Avoid a NULL pointer dereference in bounce_bus_dmamap_unload() when the map has been created via bounce_bus_dmamem_alloc(). In that case bus_dmamap_unload(9) typically isn't called during normal operation but still should be during detach, cleanup from failed attach etc. [2] PR: 188899 (non-original problem) [1] Submitted by: yongari [2] Modified: stable/9/sys/x86/x86/busdma_machdep.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/x86/x86/busdma_machdep.c ============================================================================== --- stable/9/sys/x86/x86/busdma_machdep.c Sun Dec 27 15:37:07 2015 (r292777) +++ stable/9/sys/x86/x86/busdma_machdep.c Sun Dec 27 15:55:15 2015 (r292778) @@ -888,6 +888,9 @@ _bus_dmamap_unload(bus_dma_tag_t dmat, b { struct bounce_page *bpage; + if (map == NULL) + return; + while ((bpage = STAILQ_FIRST(&map->bpages)) != NULL) { STAILQ_REMOVE_HEAD(&map->bpages, links); free_bounce_page(dmat, bpage); @@ -899,44 +902,43 @@ _bus_dmamap_sync(bus_dma_tag_t dmat, bus { struct bounce_page *bpage; - if ((bpage = STAILQ_FIRST(&map->bpages)) != NULL) { - /* - * Handle data bouncing. We might also - * want to add support for invalidating - * the caches on broken hardware - */ - CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x op 0x%x " - "performing bounce", __func__, op, dmat, dmat->flags); + if (map == NULL || (bpage = STAILQ_FIRST(&map->bpages)) == NULL) + return; - if (op & BUS_DMASYNC_PREWRITE) { - while (bpage != NULL) { - if (bpage->datavaddr != 0) - bcopy((void *)bpage->datavaddr, - (void *)bpage->vaddr, - bpage->datacount); - else - physcopyout(bpage->dataaddr, - (void *)bpage->vaddr, - bpage->datacount); - bpage = STAILQ_NEXT(bpage, links); + /* + * Handle data bouncing. We might also want to add support for + * invalidating the caches on broken hardware. + */ + CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x op 0x%x " + "performing bounce", __func__, op, dmat, dmat->flags); + + if ((op & BUS_DMASYNC_PREWRITE) != 0) { + while (bpage != NULL) { + if (bpage->datavaddr != 0) { + bcopy((void *)bpage->datavaddr, + (void *)bpage->vaddr, bpage->datacount); + } else { + physcopyout(bpage->dataaddr, + (void *)bpage->vaddr, bpage->datacount); } - dmat->bounce_zone->total_bounced++; + bpage = STAILQ_NEXT(bpage, links); } + dmat->bounce_zone->total_bounced++; + } - if (op & BUS_DMASYNC_POSTREAD) { - while (bpage != NULL) { - if (bpage->datavaddr != 0) - bcopy((void *)bpage->vaddr, - (void *)bpage->datavaddr, - bpage->datacount); - else - physcopyin((void *)bpage->vaddr, - bpage->dataaddr, - bpage->datacount); - bpage = STAILQ_NEXT(bpage, links); + if ((op & BUS_DMASYNC_POSTREAD) != 0) { + while (bpage != NULL) { + if (bpage->datavaddr != 0) { + bcopy((void *)bpage->vaddr, + (void *)bpage->datavaddr, + bpage->datacount); + } else { + physcopyin((void *)bpage->vaddr, + bpage->dataaddr, bpage->datacount); } - dmat->bounce_zone->total_bounced++; + bpage = STAILQ_NEXT(bpage, links); } + dmat->bounce_zone->total_bounced++; } } @@ -955,12 +957,14 @@ SYSINIT(bpages, SI_SUB_LOCK, SI_ORDER_AN static struct sysctl_ctx_list * busdma_sysctl_tree(struct bounce_zone *bz) { + return (&bz->sysctl_tree); } static struct sysctl_oid * busdma_sysctl_tree_top(struct bounce_zone *bz) { + return (bz->sysctl_tree_top); } From owner-svn-src-all@freebsd.org Sun Dec 27 17:09:24 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D920DA52CA7; Sun, 27 Dec 2015 17:09:24 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A98C717CA; Sun, 27 Dec 2015 17:09:24 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRH9NJR023038; Sun, 27 Dec 2015 17:09:23 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRH9NCt023037; Sun, 27 Dec 2015 17:09:23 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201512271709.tBRH9NCt023037@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Sun, 27 Dec 2015 17:09:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292779 - head/sys/geom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 17:09:24 -0000 Author: allanjude Date: Sun Dec 27 17:09:23 2015 New Revision: 292779 URL: https://svnweb.freebsd.org/changeset/base/292779 Log: Fix incorrect error message in geom map If geom_map fails to find the end of a mapped partition based on a search, it would return the incorrect error message, stating it could not parse the START value Reviewed by: adrian Approved by: bapt (mentor) Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D4187 Modified: head/sys/geom/geom_map.c Modified: head/sys/geom/geom_map.c ============================================================================== --- head/sys/geom/geom_map.c Sun Dec 27 15:55:15 2015 (r292778) +++ head/sys/geom/geom_map.c Sun Dec 27 17:09:23 2015 (r292779) @@ -259,7 +259,7 @@ g_map_parse_part(struct g_class *mp, str } if (find_marker(cp, value, &end) != 0) { if (bootverbose) { - printf("MAP: \"%s\" can't parse/use start value\n", + printf("MAP: \"%s\" can't parse/use end value\n", name); } return (1); From owner-svn-src-all@freebsd.org Sun Dec 27 17:10:45 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E6CE5A52D37 for ; Sun, 27 Dec 2015 17:10:45 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from erouter6.ore.mailhop.org (erouter6.ore.mailhop.org [54.187.213.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CA5B219AC for ; Sun, 27 Dec 2015 17:10:45 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound3.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Sun, 27 Dec 2015 17:10:02 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id tBRHAbVv012229; Sun, 27 Dec 2015 10:10:37 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1451236237.1369.9.camel@freebsd.org> Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern From: Ian Lepore To: Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Sun, 27 Dec 2015 10:10:37 -0700 In-Reply-To: <201512271537.tBRFb7nN095297@repo.freebsd.org> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 17:10:46 -0000 On Sun, 2015-12-27 at 15:37 +0000, Dmitry Chagin wrote: > Author: dchagin > Date: Sun Dec 27 15:37:07 2015 > New Revision: 292777 > URL: https://svnweb.freebsd.org/changeset/base/292777 > > Log: > Verify that tv_sec value specified in settimeofday() and > clock_settime() > (CLOCK_REALTIME case) system calls is non negative. > This commit hides a kernel panic in atrtc_settime() as the > clock_ts_to_ct() > does not properly convert negative tv_sec. > > ps. in my opinion clock_ts_to_ct() should be rewritten to properly > handle > negative tv_sec values. > > Differential Revision: https://reviews.freebsd.org/D4714 > Reviewed by: kib > > MFC after: 1 week IMO, this change is completely unacceptable. If there is a bug in atrtc code, then by all means fix it, but preventing anyone from setting valid time values on the system because one driver's code can't handle it is just wrong. -- Ian From owner-svn-src-all@freebsd.org Sun Dec 27 17:12:56 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2DE42A52EB2; Sun, 27 Dec 2015 17:12:56 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C136C1CE6; Sun, 27 Dec 2015 17:12:55 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRHCtd8025820; Sun, 27 Dec 2015 17:12:55 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRHCsX7025812; Sun, 27 Dec 2015 17:12:54 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512271712.tBRHCsX7025812@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 17:12:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292780 - in stable/10/sys: conf dev/mii dev/re dev/rl modules/rl pci X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 17:12:56 -0000 Author: marius Date: Sun Dec 27 17:12:54 2015 New Revision: 292780 URL: https://svnweb.freebsd.org/changeset/base/292780 Log: MFC: r271864 Move rl(4) to dev/rl. Added: stable/10/sys/dev/rl/ - copied from r271864, head/sys/dev/rl/ Replaced: stable/10/sys/dev/rl/if_rl.c - copied, changed from r292779, stable/10/sys/pci/if_rl.c stable/10/sys/dev/rl/if_rlreg.h - copied unchanged from r292779, stable/10/sys/pci/if_rlreg.h Deleted: stable/10/sys/pci/if_rl.c stable/10/sys/pci/if_rlreg.h Modified: stable/10/sys/conf/files stable/10/sys/dev/mii/rgephy.c stable/10/sys/dev/mii/rlphy.c stable/10/sys/dev/mii/rlswitch.c stable/10/sys/dev/re/if_re.c stable/10/sys/modules/rl/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/conf/files ============================================================================== --- stable/10/sys/conf/files Sun Dec 27 17:09:23 2015 (r292779) +++ stable/10/sys/conf/files Sun Dec 27 17:12:54 2015 (r292780) @@ -2211,6 +2211,7 @@ dev/random/hash.c optional random dev/random/rwfile.c optional random dev/rc/rc.c optional rc dev/re/if_re.c optional re +dev/rl/if_rl.c optional rl pci dev/rndtest/rndtest.c optional rndtest dev/rp/rp.c optional rp dev/rp/rp_isa.c optional rp isa @@ -3995,7 +3996,6 @@ opencrypto/xform.c optional crypto pci/alpm.c optional alpm pci pci/amdpm.c optional amdpm pci | nfpm pci pci/amdsmb.c optional amdsmb pci -pci/if_rl.c optional rl pci pci/intpm.c optional intpm pci pci/ncr.c optional ncr pci \ compile-with "${NORMAL_C} -Wno-unused" Modified: stable/10/sys/dev/mii/rgephy.c ============================================================================== --- stable/10/sys/dev/mii/rgephy.c Sun Dec 27 17:09:23 2015 (r292779) +++ stable/10/sys/dev/mii/rgephy.c Sun Dec 27 17:12:54 2015 (r292780) @@ -57,7 +57,7 @@ __FBSDID("$FreeBSD$"); #include "miibus_if.h" #include -#include +#include static int rgephy_probe(device_t); static int rgephy_attach(device_t); Modified: stable/10/sys/dev/mii/rlphy.c ============================================================================== --- stable/10/sys/dev/mii/rlphy.c Sun Dec 27 17:09:23 2015 (r292779) +++ stable/10/sys/dev/mii/rlphy.c Sun Dec 27 17:12:54 2015 (r292780) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include "miidevs.h" #include -#include +#include #include "miibus_if.h" Modified: stable/10/sys/dev/mii/rlswitch.c ============================================================================== --- stable/10/sys/dev/mii/rlswitch.c Sun Dec 27 17:09:23 2015 (r292779) +++ stable/10/sys/dev/mii/rlswitch.c Sun Dec 27 17:12:54 2015 (r292780) @@ -54,7 +54,7 @@ __FBSDID("$FreeBSD$"); #include "miidevs.h" #include -#include +#include #include "miibus_if.h" Modified: stable/10/sys/dev/re/if_re.c ============================================================================== --- stable/10/sys/dev/re/if_re.c Sun Dec 27 17:09:23 2015 (r292779) +++ stable/10/sys/dev/re/if_re.c Sun Dec 27 17:12:54 2015 (r292780) @@ -147,7 +147,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include MODULE_DEPEND(re, pci, 1, 1, 1); MODULE_DEPEND(re, ether, 1, 1, 1); Copied and modified: stable/10/sys/dev/rl/if_rl.c (from r292779, stable/10/sys/pci/if_rl.c) ============================================================================== --- stable/10/sys/pci/if_rl.c Sun Dec 27 17:09:23 2015 (r292779, copy source) +++ stable/10/sys/dev/rl/if_rl.c Sun Dec 27 17:12:54 2015 (r292780) @@ -126,7 +126,7 @@ MODULE_DEPEND(rl, miibus, 1, 1, 1); /* "device miibus" required. See GENERIC if you get errors here. */ #include "miibus_if.h" -#include +#include /* * Various supported device vendors/types and their names. Copied: stable/10/sys/dev/rl/if_rlreg.h (from r292779, stable/10/sys/pci/if_rlreg.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/dev/rl/if_rlreg.h Sun Dec 27 17:12:54 2015 (r292780, copy of r292779, stable/10/sys/pci/if_rlreg.h) @@ -0,0 +1,1160 @@ +/*- + * Copyright (c) 1997, 1998-2003 + * Bill Paul . All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Bill Paul. + * 4. Neither the name of the author nor the names of any co-contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/* + * RealTek 8129/8139 register offsets + */ +#define RL_IDR0 0x0000 /* ID register 0 (station addr) */ +#define RL_IDR1 0x0001 /* Must use 32-bit accesses (?) */ +#define RL_IDR2 0x0002 +#define RL_IDR3 0x0003 +#define RL_IDR4 0x0004 +#define RL_IDR5 0x0005 + /* 0006-0007 reserved */ +#define RL_MAR0 0x0008 /* Multicast hash table */ +#define RL_MAR1 0x0009 +#define RL_MAR2 0x000A +#define RL_MAR3 0x000B +#define RL_MAR4 0x000C +#define RL_MAR5 0x000D +#define RL_MAR6 0x000E +#define RL_MAR7 0x000F + +#define RL_TXSTAT0 0x0010 /* status of TX descriptor 0 */ +#define RL_TXSTAT1 0x0014 /* status of TX descriptor 1 */ +#define RL_TXSTAT2 0x0018 /* status of TX descriptor 2 */ +#define RL_TXSTAT3 0x001C /* status of TX descriptor 3 */ + +#define RL_TXADDR0 0x0020 /* address of TX descriptor 0 */ +#define RL_TXADDR1 0x0024 /* address of TX descriptor 1 */ +#define RL_TXADDR2 0x0028 /* address of TX descriptor 2 */ +#define RL_TXADDR3 0x002C /* address of TX descriptor 3 */ + +#define RL_RXADDR 0x0030 /* RX ring start address */ +#define RL_RX_EARLY_BYTES 0x0034 /* RX early byte count */ +#define RL_RX_EARLY_STAT 0x0036 /* RX early status */ +#define RL_COMMAND 0x0037 /* command register */ +#define RL_CURRXADDR 0x0038 /* current address of packet read */ +#define RL_CURRXBUF 0x003A /* current RX buffer address */ +#define RL_IMR 0x003C /* interrupt mask register */ +#define RL_ISR 0x003E /* interrupt status register */ +#define RL_TXCFG 0x0040 /* transmit config */ +#define RL_RXCFG 0x0044 /* receive config */ +#define RL_TIMERCNT 0x0048 /* timer count register */ +#define RL_MISSEDPKT 0x004C /* missed packet counter */ +#define RL_EECMD 0x0050 /* EEPROM command register */ + +/* RTL8139/RTL8139C+ only */ +#define RL_8139_CFG0 0x0051 /* config register #0 */ +#define RL_8139_CFG1 0x0052 /* config register #1 */ +#define RL_8139_CFG3 0x0059 /* config register #3 */ +#define RL_8139_CFG4 0x005A /* config register #4 */ +#define RL_8139_CFG5 0x00D8 /* config register #5 */ + +#define RL_CFG0 0x0051 /* config register #0 */ +#define RL_CFG1 0x0052 /* config register #1 */ +#define RL_CFG2 0x0053 /* config register #2 */ +#define RL_CFG3 0x0054 /* config register #3 */ +#define RL_CFG4 0x0055 /* config register #4 */ +#define RL_CFG5 0x0056 /* config register #5 */ + /* 0057 reserved */ +#define RL_MEDIASTAT 0x0058 /* media status register (8139) */ + /* 0059-005A reserved */ +#define RL_MII 0x005A /* 8129 chip only */ +#define RL_HALTCLK 0x005B +#define RL_MULTIINTR 0x005C /* multiple interrupt */ +#define RL_PCIREV 0x005E /* PCI revision value */ + /* 005F reserved */ +#define RL_TXSTAT_ALL 0x0060 /* TX status of all descriptors */ + +/* Direct PHY access registers only available on 8139 */ +#define RL_BMCR 0x0062 /* PHY basic mode control */ +#define RL_BMSR 0x0064 /* PHY basic mode status */ +#define RL_ANAR 0x0066 /* PHY autoneg advert */ +#define RL_LPAR 0x0068 /* PHY link partner ability */ +#define RL_ANER 0x006A /* PHY autoneg expansion */ + +#define RL_DISCCNT 0x006C /* disconnect counter */ +#define RL_FALSECAR 0x006E /* false carrier counter */ +#define RL_NWAYTST 0x0070 /* NWAY test register */ +#define RL_RX_ER 0x0072 /* RX_ER counter */ +#define RL_CSCFG 0x0074 /* CS configuration register */ + +/* + * When operating in special C+ mode, some of the registers in an + * 8139C+ chip have different definitions. These are also used for + * the 8169 gigE chip. + */ +#define RL_DUMPSTATS_LO 0x0010 /* counter dump command register */ +#define RL_DUMPSTATS_HI 0x0014 /* counter dump command register */ +#define RL_TXLIST_ADDR_LO 0x0020 /* 64 bits, 256 byte alignment */ +#define RL_TXLIST_ADDR_HI 0x0024 /* 64 bits, 256 byte alignment */ +#define RL_TXLIST_ADDR_HPRIO_LO 0x0028 /* 64 bits, 256 byte alignment */ +#define RL_TXLIST_ADDR_HPRIO_HI 0x002C /* 64 bits, 256 byte alignment */ +#define RL_CFG2 0x0053 +#define RL_TIMERINT 0x0054 /* interrupt on timer expire */ +#define RL_TXSTART 0x00D9 /* 8 bits */ +#define RL_CPLUS_CMD 0x00E0 /* 16 bits */ +#define RL_RXLIST_ADDR_LO 0x00E4 /* 64 bits, 256 byte alignment */ +#define RL_RXLIST_ADDR_HI 0x00E8 /* 64 bits, 256 byte alignment */ +#define RL_EARLY_TX_THRESH 0x00EC /* 8 bits */ + +/* + * Registers specific to the 8169 gigE chip + */ +#define RL_GTXSTART 0x0038 /* 8 bits */ +#define RL_TIMERINT_8169 0x0058 /* different offset than 8139 */ +#define RL_PHYAR 0x0060 +#define RL_TBICSR 0x0064 +#define RL_TBI_ANAR 0x0068 +#define RL_TBI_LPAR 0x006A +#define RL_GMEDIASTAT 0x006C /* 8 bits */ +#define RL_MACDBG 0x006D /* 8 bits, 8168C SPIN2 only */ +#define RL_GPIO 0x006E /* 8 bits, 8168C SPIN2 only */ +#define RL_PMCH 0x006F /* 8 bits */ +#define RL_MAXRXPKTLEN 0x00DA /* 16 bits, chip multiplies by 8 */ +#define RL_INTRMOD 0x00E2 /* 16 bits */ +#define RL_MISC 0x00F0 + +/* + * TX config register bits + */ +#define RL_TXCFG_CLRABRT 0x00000001 /* retransmit aborted pkt */ +#define RL_TXCFG_MAXDMA 0x00000700 /* max DMA burst size */ +#define RL_TXCFG_QUEUE_EMPTY 0x00000800 /* 8168E-VL or higher */ +#define RL_TXCFG_CRCAPPEND 0x00010000 /* CRC append (0 = yes) */ +#define RL_TXCFG_LOOPBKTST 0x00060000 /* loopback test */ +#define RL_TXCFG_IFG2 0x00080000 /* 8169 only */ +#define RL_TXCFG_IFG 0x03000000 /* interframe gap */ +#define RL_TXCFG_HWREV 0x7CC00000 + +#define RL_LOOPTEST_OFF 0x00000000 +#define RL_LOOPTEST_ON 0x00020000 +#define RL_LOOPTEST_ON_CPLUS 0x00060000 + +/* Known revision codes. */ +#define RL_HWREV_8169 0x00000000 +#define RL_HWREV_8169S 0x00800000 +#define RL_HWREV_8110S 0x04000000 +#define RL_HWREV_8169_8110SB 0x10000000 +#define RL_HWREV_8169_8110SC 0x18000000 +#define RL_HWREV_8401E 0x24000000 +#define RL_HWREV_8102EL 0x24800000 +#define RL_HWREV_8102EL_SPIN1 0x24C00000 +#define RL_HWREV_8168D 0x28000000 +#define RL_HWREV_8168DP 0x28800000 +#define RL_HWREV_8168E 0x2C000000 +#define RL_HWREV_8168E_VL 0x2C800000 +#define RL_HWREV_8168B_SPIN1 0x30000000 +#define RL_HWREV_8100E 0x30800000 +#define RL_HWREV_8101E 0x34000000 +#define RL_HWREV_8102E 0x34800000 +#define RL_HWREV_8103E 0x34C00000 +#define RL_HWREV_8168B_SPIN2 0x38000000 +#define RL_HWREV_8168B_SPIN3 0x38400000 +#define RL_HWREV_8168C 0x3C000000 +#define RL_HWREV_8168C_SPIN2 0x3C400000 +#define RL_HWREV_8168CP 0x3C800000 +#define RL_HWREV_8105E 0x40800000 +#define RL_HWREV_8105E_SPIN1 0x40C00000 +#define RL_HWREV_8402 0x44000000 +#define RL_HWREV_8106E 0x44800000 +#define RL_HWREV_8168F 0x48000000 +#define RL_HWREV_8411 0x48800000 +#define RL_HWREV_8168G 0x4C000000 +#define RL_HWREV_8168EP 0x50000000 +#define RL_HWREV_8168GU 0x50800000 +#define RL_HWREV_8411B 0x5C800000 +#define RL_HWREV_8139 0x60000000 +#define RL_HWREV_8139A 0x70000000 +#define RL_HWREV_8139AG 0x70800000 +#define RL_HWREV_8139B 0x78000000 +#define RL_HWREV_8130 0x7C000000 +#define RL_HWREV_8139C 0x74000000 +#define RL_HWREV_8139D 0x74400000 +#define RL_HWREV_8139CPLUS 0x74800000 +#define RL_HWREV_8101 0x74C00000 +#define RL_HWREV_8100 0x78800000 +#define RL_HWREV_8169_8110SBL 0x7CC00000 +#define RL_HWREV_8169_8110SCE 0x98000000 + +#define RL_TXDMA_16BYTES 0x00000000 +#define RL_TXDMA_32BYTES 0x00000100 +#define RL_TXDMA_64BYTES 0x00000200 +#define RL_TXDMA_128BYTES 0x00000300 +#define RL_TXDMA_256BYTES 0x00000400 +#define RL_TXDMA_512BYTES 0x00000500 +#define RL_TXDMA_1024BYTES 0x00000600 +#define RL_TXDMA_2048BYTES 0x00000700 + +/* + * Transmit descriptor status register bits. + */ +#define RL_TXSTAT_LENMASK 0x00001FFF +#define RL_TXSTAT_OWN 0x00002000 +#define RL_TXSTAT_TX_UNDERRUN 0x00004000 +#define RL_TXSTAT_TX_OK 0x00008000 +#define RL_TXSTAT_EARLY_THRESH 0x003F0000 +#define RL_TXSTAT_COLLCNT 0x0F000000 +#define RL_TXSTAT_CARR_HBEAT 0x10000000 +#define RL_TXSTAT_OUTOFWIN 0x20000000 +#define RL_TXSTAT_TXABRT 0x40000000 +#define RL_TXSTAT_CARRLOSS 0x80000000 + +/* + * Interrupt status register bits. + */ +#define RL_ISR_RX_OK 0x0001 +#define RL_ISR_RX_ERR 0x0002 +#define RL_ISR_TX_OK 0x0004 +#define RL_ISR_TX_ERR 0x0008 +#define RL_ISR_RX_OVERRUN 0x0010 +#define RL_ISR_PKT_UNDERRUN 0x0020 +#define RL_ISR_LINKCHG 0x0020 /* 8169 only */ +#define RL_ISR_FIFO_OFLOW 0x0040 /* 8139 only */ +#define RL_ISR_TX_DESC_UNAVAIL 0x0080 /* C+ only */ +#define RL_ISR_SWI 0x0100 /* C+ only */ +#define RL_ISR_CABLE_LEN_CHGD 0x2000 +#define RL_ISR_PCS_TIMEOUT 0x4000 /* 8129 only */ +#define RL_ISR_TIMEOUT_EXPIRED 0x4000 +#define RL_ISR_SYSTEM_ERR 0x8000 + +#define RL_INTRS \ + (RL_ISR_TX_OK|RL_ISR_RX_OK|RL_ISR_RX_ERR|RL_ISR_TX_ERR| \ + RL_ISR_RX_OVERRUN|RL_ISR_PKT_UNDERRUN|RL_ISR_FIFO_OFLOW| \ + RL_ISR_PCS_TIMEOUT|RL_ISR_SYSTEM_ERR) + +#ifdef RE_TX_MODERATION +#define RL_INTRS_CPLUS \ + (RL_ISR_RX_OK|RL_ISR_RX_ERR|RL_ISR_TX_ERR| \ + RL_ISR_RX_OVERRUN|RL_ISR_PKT_UNDERRUN|RL_ISR_FIFO_OFLOW| \ + RL_ISR_PCS_TIMEOUT|RL_ISR_SYSTEM_ERR|RL_ISR_TIMEOUT_EXPIRED) +#else +#define RL_INTRS_CPLUS \ + (RL_ISR_RX_OK|RL_ISR_RX_ERR|RL_ISR_TX_ERR|RL_ISR_TX_OK| \ + RL_ISR_RX_OVERRUN|RL_ISR_PKT_UNDERRUN|RL_ISR_FIFO_OFLOW| \ + RL_ISR_PCS_TIMEOUT|RL_ISR_SYSTEM_ERR|RL_ISR_TIMEOUT_EXPIRED) +#endif + +/* + * Media status register. (8139 only) + */ +#define RL_MEDIASTAT_RXPAUSE 0x01 +#define RL_MEDIASTAT_TXPAUSE 0x02 +#define RL_MEDIASTAT_LINK 0x04 +#define RL_MEDIASTAT_SPEED10 0x08 +#define RL_MEDIASTAT_RXFLOWCTL 0x40 /* duplex mode */ +#define RL_MEDIASTAT_TXFLOWCTL 0x80 /* duplex mode */ + +/* + * Receive config register. + */ +#define RL_RXCFG_RX_ALLPHYS 0x00000001 /* accept all nodes */ +#define RL_RXCFG_RX_INDIV 0x00000002 /* match filter */ +#define RL_RXCFG_RX_MULTI 0x00000004 /* accept all multicast */ +#define RL_RXCFG_RX_BROAD 0x00000008 /* accept all broadcast */ +#define RL_RXCFG_RX_RUNT 0x00000010 +#define RL_RXCFG_RX_ERRPKT 0x00000020 +#define RL_RXCFG_WRAP 0x00000080 +#define RL_RXCFG_EARLYOFFV2 0x00000800 +#define RL_RXCFG_MAXDMA 0x00000700 +#define RL_RXCFG_BUFSZ 0x00001800 +#define RL_RXCFG_EARLYOFF 0x00003800 +#define RL_RXCFG_FIFOTHRESH 0x0000E000 +#define RL_RXCFG_EARLYTHRESH 0x07000000 + +#define RL_RXDMA_16BYTES 0x00000000 +#define RL_RXDMA_32BYTES 0x00000100 +#define RL_RXDMA_64BYTES 0x00000200 +#define RL_RXDMA_128BYTES 0x00000300 +#define RL_RXDMA_256BYTES 0x00000400 +#define RL_RXDMA_512BYTES 0x00000500 +#define RL_RXDMA_1024BYTES 0x00000600 +#define RL_RXDMA_UNLIMITED 0x00000700 + +#define RL_RXBUF_8 0x00000000 +#define RL_RXBUF_16 0x00000800 +#define RL_RXBUF_32 0x00001000 +#define RL_RXBUF_64 0x00001800 + +#define RL_RXFIFO_16BYTES 0x00000000 +#define RL_RXFIFO_32BYTES 0x00002000 +#define RL_RXFIFO_64BYTES 0x00004000 +#define RL_RXFIFO_128BYTES 0x00006000 +#define RL_RXFIFO_256BYTES 0x00008000 +#define RL_RXFIFO_512BYTES 0x0000A000 +#define RL_RXFIFO_1024BYTES 0x0000C000 +#define RL_RXFIFO_NOTHRESH 0x0000E000 + +/* + * Bits in RX status header (included with RX'ed packet + * in ring buffer). + */ +#define RL_RXSTAT_RXOK 0x00000001 +#define RL_RXSTAT_ALIGNERR 0x00000002 +#define RL_RXSTAT_CRCERR 0x00000004 +#define RL_RXSTAT_GIANT 0x00000008 +#define RL_RXSTAT_RUNT 0x00000010 +#define RL_RXSTAT_BADSYM 0x00000020 +#define RL_RXSTAT_BROAD 0x00002000 +#define RL_RXSTAT_INDIV 0x00004000 +#define RL_RXSTAT_MULTI 0x00008000 +#define RL_RXSTAT_LENMASK 0xFFFF0000 +#define RL_RXSTAT_UNFINISHED 0x0000FFF0 /* DMA still in progress */ + +/* + * Command register. + */ +#define RL_CMD_EMPTY_RXBUF 0x0001 +#define RL_CMD_TX_ENB 0x0004 +#define RL_CMD_RX_ENB 0x0008 +#define RL_CMD_RESET 0x0010 +#define RL_CMD_STOPREQ 0x0080 + +/* + * Twister register values. These are completely undocumented and derived + * from public sources. + */ +#define RL_CSCFG_LINK_OK 0x0400 +#define RL_CSCFG_CHANGE 0x0800 +#define RL_CSCFG_STATUS 0xf000 +#define RL_CSCFG_ROW3 0x7000 +#define RL_CSCFG_ROW2 0x3000 +#define RL_CSCFG_ROW1 0x1000 +#define RL_CSCFG_LINK_DOWN_OFF_CMD 0x03c0 +#define RL_CSCFG_LINK_DOWN_CMD 0xf3c0 + +#define RL_NWAYTST_RESET 0 +#define RL_NWAYTST_CBL_TEST 0x20 + +#define RL_PARA78 0x78 +#define RL_PARA78_DEF 0x78fa8388 +#define RL_PARA7C 0x7C +#define RL_PARA7C_DEF 0xcb38de43 +#define RL_PARA7C_RETUNE 0xfb38de03 + +/* + * EEPROM control register + */ +#define RL_EE_DATAOUT 0x01 /* Data out */ +#define RL_EE_DATAIN 0x02 /* Data in */ +#define RL_EE_CLK 0x04 /* clock */ +#define RL_EE_SEL 0x08 /* chip select */ +#define RL_EE_MODE (0x40|0x80) + +#define RL_EEMODE_OFF 0x00 +#define RL_EEMODE_AUTOLOAD 0x40 +#define RL_EEMODE_PROGRAM 0x80 +#define RL_EEMODE_WRITECFG (0x80|0x40) + +/* 9346 EEPROM commands */ +#define RL_9346_ADDR_LEN 6 /* 93C46 1K: 128x16 */ +#define RL_9356_ADDR_LEN 8 /* 93C56 2K: 256x16 */ + +#define RL_9346_WRITE 0x5 +#define RL_9346_READ 0x6 +#define RL_9346_ERASE 0x7 +#define RL_9346_EWEN 0x4 +#define RL_9346_EWEN_ADDR 0x30 +#define RL_9456_EWDS 0x4 +#define RL_9346_EWDS_ADDR 0x00 + +#define RL_EECMD_WRITE 0x140 +#define RL_EECMD_READ_6BIT 0x180 +#define RL_EECMD_READ_8BIT 0x600 +#define RL_EECMD_ERASE 0x1c0 + +#define RL_EE_ID 0x00 +#define RL_EE_PCI_VID 0x01 +#define RL_EE_PCI_DID 0x02 +/* Location of station address inside EEPROM */ +#define RL_EE_EADDR 0x07 + +/* + * MII register (8129 only) + */ +#define RL_MII_CLK 0x01 +#define RL_MII_DATAIN 0x02 +#define RL_MII_DATAOUT 0x04 +#define RL_MII_DIR 0x80 /* 0 == input, 1 == output */ + +/* + * Config 0 register + */ +#define RL_CFG0_ROM0 0x01 +#define RL_CFG0_ROM1 0x02 +#define RL_CFG0_ROM2 0x04 +#define RL_CFG0_PL0 0x08 +#define RL_CFG0_PL1 0x10 +#define RL_CFG0_10MBPS 0x20 /* 10 Mbps internal mode */ +#define RL_CFG0_PCS 0x40 +#define RL_CFG0_SCR 0x80 + +/* + * Config 1 register + */ +#define RL_CFG1_PWRDWN 0x01 +#define RL_CFG1_PME 0x01 +#define RL_CFG1_SLEEP 0x02 +#define RL_CFG1_VPDEN 0x02 +#define RL_CFG1_IOMAP 0x04 +#define RL_CFG1_MEMMAP 0x08 +#define RL_CFG1_RSVD 0x10 +#define RL_CFG1_LWACT 0x10 +#define RL_CFG1_DRVLOAD 0x20 +#define RL_CFG1_LED0 0x40 +#define RL_CFG1_FULLDUPLEX 0x40 /* 8129 only */ +#define RL_CFG1_LED1 0x80 + +/* + * Config 2 register + */ +#define RL_CFG2_PCI33MHZ 0x00 +#define RL_CFG2_PCI66MHZ 0x01 +#define RL_CFG2_PCI64BIT 0x08 +#define RL_CFG2_AUXPWR 0x10 +#define RL_CFG2_MSI 0x20 + +/* + * Config 3 register + */ +#define RL_CFG3_GRANTSEL 0x80 +#define RL_CFG3_WOL_MAGIC 0x20 +#define RL_CFG3_WOL_LINK 0x10 +#define RL_CFG3_JUMBO_EN0 0x04 /* RTL8168C or later. */ +#define RL_CFG3_FAST_B2B 0x01 + +/* + * Config 4 register + */ +#define RL_CFG4_LWPTN 0x04 +#define RL_CFG4_LWPME 0x10 +#define RL_CFG4_JUMBO_EN1 0x02 /* RTL8168C or later. */ + +/* + * Config 5 register + */ +#define RL_CFG5_WOL_BCAST 0x40 +#define RL_CFG5_WOL_MCAST 0x20 +#define RL_CFG5_WOL_UCAST 0x10 +#define RL_CFG5_WOL_LANWAKE 0x02 +#define RL_CFG5_PME_STS 0x01 + +/* + * 8139C+ register definitions + */ + +/* RL_DUMPSTATS_LO register */ +#define RL_DUMPSTATS_START 0x00000008 + +/* Transmit start register */ +#define RL_TXSTART_SWI 0x01 /* generate TX interrupt */ +#define RL_TXSTART_START 0x40 /* start normal queue transmit */ +#define RL_TXSTART_HPRIO_START 0x80 /* start hi prio queue transmit */ + +/* + * Config 2 register, 8139C+/8169/8169S/8110S only + */ +#define RL_CFG2_BUSFREQ 0x07 +#define RL_CFG2_BUSWIDTH 0x08 +#define RL_CFG2_AUXPWRSTS 0x10 + +#define RL_BUSFREQ_33MHZ 0x00 +#define RL_BUSFREQ_66MHZ 0x01 + +#define RL_BUSWIDTH_32BITS 0x00 +#define RL_BUSWIDTH_64BITS 0x08 + +/* C+ mode command register */ +#define RL_CPLUSCMD_TXENB 0x0001 /* enable C+ transmit mode */ +#define RL_CPLUSCMD_RXENB 0x0002 /* enable C+ receive mode */ +#define RL_CPLUSCMD_PCI_MRW 0x0008 /* enable PCI multi-read/write */ +#define RL_CPLUSCMD_PCI_DAC 0x0010 /* PCI dual-address cycle only */ +#define RL_CPLUSCMD_RXCSUM_ENB 0x0020 /* enable RX checksum offload */ +#define RL_CPLUSCMD_VLANSTRIP 0x0040 /* enable VLAN tag stripping */ +#define RL_CPLUSCMD_MACSTAT_DIS 0x0080 /* 8168B/C/CP */ +#define RL_CPLUSCMD_ASF 0x0100 /* 8168C/CP */ +#define RL_CPLUSCMD_DBG_SEL 0x0200 /* 8168C/CP */ +#define RL_CPLUSCMD_FORCE_TXFC 0x0400 /* 8168C/CP */ +#define RL_CPLUSCMD_FORCE_RXFC 0x0800 /* 8168C/CP */ +#define RL_CPLUSCMD_FORCE_HDPX 0x1000 /* 8168C/CP */ +#define RL_CPLUSCMD_NORMAL_MODE 0x2000 /* 8168C/CP */ +#define RL_CPLUSCMD_DBG_ENB 0x4000 /* 8168C/CP */ +#define RL_CPLUSCMD_BIST_ENB 0x8000 /* 8168C/CP */ + +/* C+ early transmit threshold */ +#define RL_EARLYTXTHRESH_CNT 0x003F /* byte count times 8 */ + +/* Timer interrupt register */ +#define RL_TIMERINT_8169_VAL 0x00001FFF +#define RL_TIMER_MIN 0 +#define RL_TIMER_MAX 65 /* 65.528us */ +#define RL_TIMER_DEFAULT RL_TIMER_MAX +#define RL_TIMER_PCIE_CLK 125 /* 125MHZ */ +#define RL_USECS(x) ((x) * RL_TIMER_PCIE_CLK) + +/* + * Gigabit PHY access register (8169 only) + */ +#define RL_PHYAR_PHYDATA 0x0000FFFF +#define RL_PHYAR_PHYREG 0x001F0000 +#define RL_PHYAR_BUSY 0x80000000 + +/* + * Gigabit media status (8169 only) + */ +#define RL_GMEDIASTAT_FDX 0x01 /* full duplex */ +#define RL_GMEDIASTAT_LINK 0x02 /* link up */ +#define RL_GMEDIASTAT_10MBPS 0x04 /* 10mps link */ +#define RL_GMEDIASTAT_100MBPS 0x08 /* 100mbps link */ +#define RL_GMEDIASTAT_1000MBPS 0x10 /* gigE link */ +#define RL_GMEDIASTAT_RXFLOW 0x20 /* RX flow control on */ +#define RL_GMEDIASTAT_TXFLOW 0x40 /* TX flow control on */ +#define RL_GMEDIASTAT_TBI 0x80 /* TBI enabled */ + +/* + * The RealTek doesn't use a fragment-based descriptor mechanism. + * Instead, there are only four register sets, each or which represents + * one 'descriptor.' Basically, each TX descriptor is just a contiguous + * packet buffer (32-bit aligned!) and we place the buffer addresses in + * the registers so the chip knows where they are. + * + * We can sort of kludge together the same kind of buffer management + * used in previous drivers, but we have to do buffer copies almost all + * the time, so it doesn't really buy us much. + * + * For reception, there's just one large buffer where the chip stores + * all received packets. + */ +#define RL_RX_BUF_SZ RL_RXBUF_64 +#define RL_RXBUFLEN (1 << ((RL_RX_BUF_SZ >> 11) + 13)) +#define RL_TX_LIST_CNT 4 +#define RL_MIN_FRAMELEN 60 +#define RL_TX_8139_BUF_ALIGN 4 +#define RL_RX_8139_BUF_ALIGN 8 +#define RL_RX_8139_BUF_RESERVE sizeof(int64_t) +#define RL_RX_8139_BUF_GUARD_SZ \ + (ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN + RL_RX_8139_BUF_RESERVE) +#define RL_TXTHRESH(x) ((x) << 11) +#define RL_TX_THRESH_INIT 96 +#define RL_RX_FIFOTHRESH RL_RXFIFO_NOTHRESH +#define RL_RX_MAXDMA RL_RXDMA_UNLIMITED +#define RL_TX_MAXDMA RL_TXDMA_2048BYTES + +#define RL_RXCFG_CONFIG (RL_RX_FIFOTHRESH|RL_RX_MAXDMA|RL_RX_BUF_SZ) +#define RL_TXCFG_CONFIG (RL_TXCFG_IFG|RL_TX_MAXDMA) + +#define RL_ETHER_ALIGN 2 + +/* + * re(4) hardware ip4csum-tx could be mangled with 28 bytes or less IP packets. + */ +#define RL_IP4CSUMTX_MINLEN 28 +#define RL_IP4CSUMTX_PADLEN (ETHER_HDR_LEN + RL_IP4CSUMTX_MINLEN) + +struct rl_chain_data { + uint16_t cur_rx; + uint8_t *rl_rx_buf; + uint8_t *rl_rx_buf_ptr; + + struct mbuf *rl_tx_chain[RL_TX_LIST_CNT]; + bus_dmamap_t rl_tx_dmamap[RL_TX_LIST_CNT]; + bus_dma_tag_t rl_tx_tag; + bus_dma_tag_t rl_rx_tag; + bus_dmamap_t rl_rx_dmamap; + bus_addr_t rl_rx_buf_paddr; + uint8_t last_tx; + uint8_t cur_tx; +}; + +#define RL_INC(x) (x = (x + 1) % RL_TX_LIST_CNT) +#define RL_CUR_TXADDR(x) ((x->rl_cdata.cur_tx * 4) + RL_TXADDR0) +#define RL_CUR_TXSTAT(x) ((x->rl_cdata.cur_tx * 4) + RL_TXSTAT0) +#define RL_CUR_TXMBUF(x) (x->rl_cdata.rl_tx_chain[x->rl_cdata.cur_tx]) +#define RL_CUR_DMAMAP(x) (x->rl_cdata.rl_tx_dmamap[x->rl_cdata.cur_tx]) +#define RL_LAST_TXADDR(x) ((x->rl_cdata.last_tx * 4) + RL_TXADDR0) +#define RL_LAST_TXSTAT(x) ((x->rl_cdata.last_tx * 4) + RL_TXSTAT0) +#define RL_LAST_TXMBUF(x) (x->rl_cdata.rl_tx_chain[x->rl_cdata.last_tx]) +#define RL_LAST_DMAMAP(x) (x->rl_cdata.rl_tx_dmamap[x->rl_cdata.last_tx]) + +struct rl_type { + uint16_t rl_vid; + uint16_t rl_did; + int rl_basetype; + const char *rl_name; +}; + +struct rl_hwrev { + uint32_t rl_rev; + int rl_type; + const char *rl_desc; + int rl_max_mtu; +}; + +#define RL_8129 1 +#define RL_8139 2 +#define RL_8139CPLUS 3 +#define RL_8169 4 + +#define RL_ISCPLUS(x) ((x)->rl_type == RL_8139CPLUS || \ + (x)->rl_type == RL_8169) + +/* + * The 8139C+ and 8160 gigE chips support descriptor-based TX + * and RX. In fact, they even support TCP large send. Descriptors + * must be allocated in contiguous blocks that are aligned on a + * 256-byte boundary. The rings can hold a maximum of 64 descriptors. + */ + +/* + * RX/TX descriptor definition. When large send mode is enabled, the + * lower 11 bits of the TX rl_cmdstat word are used to hold the MSS, and + * the checksum offload bits are disabled. The structure layout is + * the same for RX and TX descriptors + */ +struct rl_desc { + uint32_t rl_cmdstat; + uint32_t rl_vlanctl; + uint32_t rl_bufaddr_lo; + uint32_t rl_bufaddr_hi; +}; + +#define RL_TDESC_CMD_FRAGLEN 0x0000FFFF +#define RL_TDESC_CMD_TCPCSUM 0x00010000 /* TCP checksum enable */ +#define RL_TDESC_CMD_UDPCSUM 0x00020000 /* UDP checksum enable */ +#define RL_TDESC_CMD_IPCSUM 0x00040000 /* IP header checksum enable */ +#define RL_TDESC_CMD_MSSVAL 0x07FF0000 /* Large send MSS value */ +#define RL_TDESC_CMD_MSSVAL_SHIFT 16 /* Large send MSS value shift */ +#define RL_TDESC_CMD_LGSEND 0x08000000 /* TCP large send enb */ +#define RL_TDESC_CMD_EOF 0x10000000 /* end of frame marker */ +#define RL_TDESC_CMD_SOF 0x20000000 /* start of frame marker */ +#define RL_TDESC_CMD_EOR 0x40000000 /* end of ring marker */ +#define RL_TDESC_CMD_OWN 0x80000000 /* chip owns descriptor */ + +#define RL_TDESC_VLANCTL_TAG 0x00020000 /* Insert VLAN tag */ +#define RL_TDESC_VLANCTL_DATA 0x0000FFFF /* TAG data */ +/* RTL8168C/RTL8168CP/RTL8111C/RTL8111CP */ +#define RL_TDESC_CMD_UDPCSUMV2 0x80000000 +#define RL_TDESC_CMD_TCPCSUMV2 0x40000000 +#define RL_TDESC_CMD_IPCSUMV2 0x20000000 +#define RL_TDESC_CMD_MSSVALV2 0x1FFC0000 +#define RL_TDESC_CMD_MSSVALV2_SHIFT 18 + +/* + * Error bits are valid only on the last descriptor of a frame + * (i.e. RL_TDESC_CMD_EOF == 1) + */ +#define RL_TDESC_STAT_COLCNT 0x000F0000 /* collision count */ +#define RL_TDESC_STAT_EXCESSCOL 0x00100000 /* excessive collisions */ +#define RL_TDESC_STAT_LINKFAIL 0x00200000 /* link faulure */ +#define RL_TDESC_STAT_OWINCOL 0x00400000 /* out-of-window collision */ +#define RL_TDESC_STAT_TXERRSUM 0x00800000 /* transmit error summary */ +#define RL_TDESC_STAT_UNDERRUN 0x02000000 /* TX underrun occured */ +#define RL_TDESC_STAT_OWN 0x80000000 + +/* + * RX descriptor cmd/vlan definitions + */ +#define RL_RDESC_CMD_EOR 0x40000000 +#define RL_RDESC_CMD_OWN 0x80000000 +#define RL_RDESC_CMD_BUFLEN 0x00001FFF + +#define RL_RDESC_STAT_OWN 0x80000000 +#define RL_RDESC_STAT_EOR 0x40000000 +#define RL_RDESC_STAT_SOF 0x20000000 +#define RL_RDESC_STAT_EOF 0x10000000 +#define RL_RDESC_STAT_FRALIGN 0x08000000 /* frame alignment error */ +#define RL_RDESC_STAT_MCAST 0x04000000 /* multicast pkt received */ +#define RL_RDESC_STAT_UCAST 0x02000000 /* unicast pkt received */ +#define RL_RDESC_STAT_BCAST 0x01000000 /* broadcast pkt received */ +#define RL_RDESC_STAT_BUFOFLOW 0x00800000 /* out of buffer space */ +#define RL_RDESC_STAT_FIFOOFLOW 0x00400000 /* FIFO overrun */ +#define RL_RDESC_STAT_GIANT 0x00200000 /* pkt > 4096 bytes */ +#define RL_RDESC_STAT_RXERRSUM 0x00100000 /* RX error summary */ +#define RL_RDESC_STAT_RUNT 0x00080000 /* runt packet received */ +#define RL_RDESC_STAT_CRCERR 0x00040000 /* CRC error */ +#define RL_RDESC_STAT_PROTOID 0x00030000 /* Protocol type */ +#define RL_RDESC_STAT_UDP 0x00020000 /* UDP, 8168C/CP, 8111C/CP */ +#define RL_RDESC_STAT_TCP 0x00010000 /* TCP, 8168C/CP, 8111C/CP */ +#define RL_RDESC_STAT_IPSUMBAD 0x00008000 /* IP header checksum bad */ +#define RL_RDESC_STAT_UDPSUMBAD 0x00004000 /* UDP checksum bad */ +#define RL_RDESC_STAT_TCPSUMBAD 0x00002000 /* TCP checksum bad */ +#define RL_RDESC_STAT_FRAGLEN 0x00001FFF /* RX'ed frame/frag len */ +#define RL_RDESC_STAT_GFRAGLEN 0x00003FFF /* RX'ed frame/frag len */ +#define RL_RDESC_STAT_ERRS (RL_RDESC_STAT_GIANT|RL_RDESC_STAT_RUNT| \ + RL_RDESC_STAT_CRCERR) + +#define RL_RDESC_VLANCTL_TAG 0x00010000 /* VLAN tag available + (rl_vlandata valid)*/ +#define RL_RDESC_VLANCTL_DATA 0x0000FFFF /* TAG data */ +/* RTL8168C/RTL8168CP/RTL8111C/RTL8111CP */ +#define RL_RDESC_IPV6 0x80000000 +#define RL_RDESC_IPV4 0x40000000 + +#define RL_PROTOID_NONIP 0x00000000 +#define RL_PROTOID_TCPIP 0x00010000 +#define RL_PROTOID_UDPIP 0x00020000 +#define RL_PROTOID_IP 0x00030000 +#define RL_TCPPKT(x) (((x) & RL_RDESC_STAT_PROTOID) == \ + RL_PROTOID_TCPIP) +#define RL_UDPPKT(x) (((x) & RL_RDESC_STAT_PROTOID) == \ + RL_PROTOID_UDPIP) + +/* + * Statistics counter structure (8139C+ and 8169 only) + */ +struct rl_stats { + uint64_t rl_tx_pkts; + uint64_t rl_rx_pkts; + uint64_t rl_tx_errs; + uint32_t rl_rx_errs; + uint16_t rl_missed_pkts; + uint16_t rl_rx_framealign_errs; + uint32_t rl_tx_onecoll; + uint32_t rl_tx_multicolls; + uint64_t rl_rx_ucasts; + uint64_t rl_rx_bcasts; + uint32_t rl_rx_mcasts; + uint16_t rl_tx_aborts; + uint16_t rl_rx_underruns; +}; + +/* + * Rx/Tx descriptor parameters (8139C+ and 8169 only) + * + * 8139C+ + * Number of descriptors supported : up to 64 + * Descriptor alignment : 256 bytes + * Tx buffer : At least 4 bytes in length. + * Rx buffer : At least 8 bytes in length and 8 bytes alignment required. + * + * 8169 + * Number of descriptors supported : up to 1024 + * Descriptor alignment : 256 bytes + * Tx buffer : At least 4 bytes in length. + * Rx buffer : At least 8 bytes in length and 8 bytes alignment required. + */ +#ifndef __NO_STRICT_ALIGNMENT +#define RE_FIXUP_RX 1 +#endif + +#define RL_8169_TX_DESC_CNT 256 +#define RL_8169_RX_DESC_CNT 256 +#define RL_8139_TX_DESC_CNT 64 +#define RL_8139_RX_DESC_CNT 64 +#define RL_TX_DESC_CNT RL_8169_TX_DESC_CNT +#define RL_RX_DESC_CNT RL_8169_RX_DESC_CNT +#define RL_RX_JUMBO_DESC_CNT RL_RX_DESC_CNT +#define RL_NTXSEGS 35 + +#define RL_RING_ALIGN 256 +#define RL_DUMP_ALIGN 64 +#define RL_IFQ_MAXLEN 512 +#define RL_TX_DESC_NXT(sc,x) ((x + 1) & ((sc)->rl_ldata.rl_tx_desc_cnt - 1)) +#define RL_TX_DESC_PRV(sc,x) ((x - 1) & ((sc)->rl_ldata.rl_tx_desc_cnt - 1)) +#define RL_RX_DESC_NXT(sc,x) ((x + 1) & ((sc)->rl_ldata.rl_rx_desc_cnt - 1)) +#define RL_OWN(x) (le32toh((x)->rl_cmdstat) & RL_RDESC_STAT_OWN) +#define RL_RXBYTES(x) (le32toh((x)->rl_cmdstat) & sc->rl_rxlenmask) +#define RL_PKTSZ(x) ((x)/* >> 3*/) +#ifdef RE_FIXUP_RX +#define RE_ETHER_ALIGN sizeof(uint64_t) +#define RE_RX_DESC_BUFLEN (MCLBYTES - RE_ETHER_ALIGN) +#else +#define RE_ETHER_ALIGN 0 +#define RE_RX_DESC_BUFLEN MCLBYTES +#endif + +#define RL_MSI_MESSAGES 1 + +#define RL_ADDR_LO(y) ((uint64_t) (y) & 0xFFFFFFFF) +#define RL_ADDR_HI(y) ((uint64_t) (y) >> 32) + +/* + * The number of bits reserved for MSS in RealTek controllers is + * 11bits. This limits the maximum interface MTU size in TSO case + * as upper stack should not generate TCP segments with MSS greater + * than the limit. + */ +#define RL_TSO_MTU (2047 - ETHER_HDR_LEN - ETHER_CRC_LEN) + +/* see comment in dev/re/if_re.c */ +#define RL_JUMBO_FRAMELEN 7440 +#define RL_JUMBO_MTU \ + (RL_JUMBO_FRAMELEN-ETHER_VLAN_ENCAP_LEN-ETHER_HDR_LEN-ETHER_CRC_LEN) +#define RL_JUMBO_MTU_6K \ + ((6 * 1024) - ETHER_VLAN_ENCAP_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN) +#define RL_JUMBO_MTU_9K \ + ((9 * 1024) - ETHER_VLAN_ENCAP_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN) +#define RL_MTU \ + (ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN) + +struct rl_txdesc { + struct mbuf *tx_m; + bus_dmamap_t tx_dmamap; +}; + +struct rl_rxdesc { + struct mbuf *rx_m; + bus_dmamap_t rx_dmamap; + bus_size_t rx_size; +}; + +struct rl_list_data { + struct rl_txdesc rl_tx_desc[RL_TX_DESC_CNT]; + struct rl_rxdesc rl_rx_desc[RL_RX_DESC_CNT]; + struct rl_rxdesc rl_jrx_desc[RL_RX_JUMBO_DESC_CNT]; + int rl_tx_desc_cnt; + int rl_rx_desc_cnt; + int rl_tx_prodidx; + int rl_rx_prodidx; + int rl_tx_considx; + int rl_tx_free; + bus_dma_tag_t rl_tx_mtag; /* mbuf TX mapping tag */ + bus_dma_tag_t rl_rx_mtag; /* mbuf RX mapping tag */ + bus_dma_tag_t rl_jrx_mtag; /* mbuf RX mapping tag */ + bus_dmamap_t rl_rx_sparemap; + bus_dmamap_t rl_jrx_sparemap; + bus_dma_tag_t rl_stag; /* stats mapping tag */ + bus_dmamap_t rl_smap; /* stats map */ + struct rl_stats *rl_stats; + bus_addr_t rl_stats_addr; + bus_dma_tag_t rl_rx_list_tag; + bus_dmamap_t rl_rx_list_map; + struct rl_desc *rl_rx_list; + bus_addr_t rl_rx_list_addr; + bus_dma_tag_t rl_tx_list_tag; + bus_dmamap_t rl_tx_list_map; + struct rl_desc *rl_tx_list; + bus_addr_t rl_tx_list_addr; +}; + +enum rl_twist { DONE, CHK_LINK, FIND_ROW, SET_PARAM, RECHK_LONG, RETUNE }; + +struct rl_softc { + struct ifnet *rl_ifp; /* interface info */ + bus_space_handle_t rl_bhandle; /* bus space handle */ + bus_space_tag_t rl_btag; /* bus space tag */ + device_t rl_dev; + struct resource *rl_res; + int rl_res_id; + int rl_res_type; + struct resource *rl_res_pba; + struct resource *rl_irq[RL_MSI_MESSAGES]; + void *rl_intrhand[RL_MSI_MESSAGES]; + device_t rl_miibus; + bus_dma_tag_t rl_parent_tag; + uint8_t rl_type; + const struct rl_hwrev *rl_hwrev; + uint32_t rl_macrev; + int rl_eecmd_read; + int rl_eewidth; + int rl_expcap; + int rl_txthresh; + bus_size_t rl_cfg0; + bus_size_t rl_cfg1; + bus_size_t rl_cfg2; + bus_size_t rl_cfg3; + bus_size_t rl_cfg4; + bus_size_t rl_cfg5; + struct rl_chain_data rl_cdata; + struct rl_list_data rl_ldata; + struct callout rl_stat_callout; + int rl_watchdog_timer; + struct mtx rl_mtx; + struct mbuf *rl_head; + struct mbuf *rl_tail; + uint32_t rl_rxlenmask; + int rl_testmode; + int rl_if_flags; + int rl_twister_enable; + enum rl_twist rl_twister; + int rl_twist_row; + int rl_twist_col; + int suspended; /* 0 = normal 1 = suspended */ +#ifdef DEVICE_POLLING + int rxcycles; +#endif + + struct task rl_inttask; + + int rl_txstart; + int rl_int_rx_act; + int rl_int_rx_mod; + uint32_t rl_flags; +#define RL_FLAG_MSI 0x00000001 +#define RL_FLAG_AUTOPAD 0x00000002 +#define RL_FLAG_PHYWAKE_PM 0x00000004 +#define RL_FLAG_PHYWAKE 0x00000008 +#define RL_FLAG_JUMBOV2 0x00000010 +#define RL_FLAG_PAR 0x00000020 +#define RL_FLAG_DESCV2 0x00000040 +#define RL_FLAG_MACSTAT 0x00000080 +#define RL_FLAG_FASTETHER 0x00000100 +#define RL_FLAG_CMDSTOP 0x00000200 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Dec 27 17:19:48 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 628AEA5305B; Sun, 27 Dec 2015 17:19:48 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 049FB1EB0; Sun, 27 Dec 2015 17:19:47 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRHJloE026204; Sun, 27 Dec 2015 17:19:47 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRHJkg2026196; Sun, 27 Dec 2015 17:19:46 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512271719.tBRHJkg2026196@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 17:19:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292781 - in stable/9/sys: conf dev/mii dev/re dev/rl modules/rl pci X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 17:19:48 -0000 Author: marius Date: Sun Dec 27 17:19:46 2015 New Revision: 292781 URL: https://svnweb.freebsd.org/changeset/base/292781 Log: MFC: r271864 Move rl(4) to dev/rl. Added: stable/9/sys/dev/rl/ - copied from r271864, head/sys/dev/rl/ Replaced: stable/9/sys/dev/rl/if_rl.c - copied, changed from r292780, stable/9/sys/pci/if_rl.c stable/9/sys/dev/rl/if_rlreg.h - copied unchanged from r292780, stable/9/sys/pci/if_rlreg.h Deleted: stable/9/sys/pci/if_rl.c stable/9/sys/pci/if_rlreg.h Modified: stable/9/sys/conf/files stable/9/sys/dev/mii/rgephy.c stable/9/sys/dev/mii/rlphy.c stable/9/sys/dev/mii/rlswitch.c stable/9/sys/dev/re/if_re.c stable/9/sys/modules/rl/Makefile Directory Properties: stable/9/sys/ (props changed) stable/9/sys/conf/ (props changed) stable/9/sys/dev/ (props changed) stable/9/sys/modules/ (props changed) Modified: stable/9/sys/conf/files ============================================================================== --- stable/9/sys/conf/files Sun Dec 27 17:12:54 2015 (r292780) +++ stable/9/sys/conf/files Sun Dec 27 17:19:46 2015 (r292781) @@ -1784,6 +1784,7 @@ dev/random/randomdev_soft.c optional ran dev/random/yarrow.c optional random dev/rc/rc.c optional rc dev/re/if_re.c optional re +dev/rl/if_rl.c optional rl pci dev/rndtest/rndtest.c optional rndtest dev/rp/rp.c optional rp dev/rp/rp_isa.c optional rp isa @@ -3411,7 +3412,6 @@ opencrypto/xform.c optional crypto pci/alpm.c optional alpm pci pci/amdpm.c optional amdpm pci | nfpm pci pci/amdsmb.c optional amdsmb pci -pci/if_rl.c optional rl pci pci/intpm.c optional intpm pci pci/ncr.c optional ncr pci \ compile-with "${NORMAL_C} -Wno-unused" Modified: stable/9/sys/dev/mii/rgephy.c ============================================================================== --- stable/9/sys/dev/mii/rgephy.c Sun Dec 27 17:12:54 2015 (r292780) +++ stable/9/sys/dev/mii/rgephy.c Sun Dec 27 17:19:46 2015 (r292781) @@ -57,7 +57,7 @@ __FBSDID("$FreeBSD$"); #include "miibus_if.h" #include -#include +#include static int rgephy_probe(device_t); static int rgephy_attach(device_t); Modified: stable/9/sys/dev/mii/rlphy.c ============================================================================== --- stable/9/sys/dev/mii/rlphy.c Sun Dec 27 17:12:54 2015 (r292780) +++ stable/9/sys/dev/mii/rlphy.c Sun Dec 27 17:19:46 2015 (r292781) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include "miidevs.h" #include -#include +#include #include "miibus_if.h" Modified: stable/9/sys/dev/mii/rlswitch.c ============================================================================== --- stable/9/sys/dev/mii/rlswitch.c Sun Dec 27 17:12:54 2015 (r292780) +++ stable/9/sys/dev/mii/rlswitch.c Sun Dec 27 17:19:46 2015 (r292781) @@ -54,7 +54,7 @@ __FBSDID("$FreeBSD$"); #include "miidevs.h" #include -#include +#include #include "miibus_if.h" Modified: stable/9/sys/dev/re/if_re.c ============================================================================== --- stable/9/sys/dev/re/if_re.c Sun Dec 27 17:12:54 2015 (r292780) +++ stable/9/sys/dev/re/if_re.c Sun Dec 27 17:19:46 2015 (r292781) @@ -147,7 +147,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include MODULE_DEPEND(re, pci, 1, 1, 1); MODULE_DEPEND(re, ether, 1, 1, 1); Copied and modified: stable/9/sys/dev/rl/if_rl.c (from r292780, stable/9/sys/pci/if_rl.c) ============================================================================== --- stable/9/sys/pci/if_rl.c Sun Dec 27 17:12:54 2015 (r292780, copy source) +++ stable/9/sys/dev/rl/if_rl.c Sun Dec 27 17:19:46 2015 (r292781) @@ -126,7 +126,7 @@ MODULE_DEPEND(rl, miibus, 1, 1, 1); /* "device miibus" required. See GENERIC if you get errors here. */ #include "miibus_if.h" -#include +#include /* * Various supported device vendors/types and their names. Copied: stable/9/sys/dev/rl/if_rlreg.h (from r292780, stable/9/sys/pci/if_rlreg.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/9/sys/dev/rl/if_rlreg.h Sun Dec 27 17:19:46 2015 (r292781, copy of r292780, stable/9/sys/pci/if_rlreg.h) @@ -0,0 +1,1160 @@ +/*- + * Copyright (c) 1997, 1998-2003 + * Bill Paul . All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Bill Paul. + * 4. Neither the name of the author nor the names of any co-contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/* + * RealTek 8129/8139 register offsets + */ +#define RL_IDR0 0x0000 /* ID register 0 (station addr) */ +#define RL_IDR1 0x0001 /* Must use 32-bit accesses (?) */ +#define RL_IDR2 0x0002 +#define RL_IDR3 0x0003 +#define RL_IDR4 0x0004 +#define RL_IDR5 0x0005 + /* 0006-0007 reserved */ +#define RL_MAR0 0x0008 /* Multicast hash table */ +#define RL_MAR1 0x0009 +#define RL_MAR2 0x000A +#define RL_MAR3 0x000B +#define RL_MAR4 0x000C +#define RL_MAR5 0x000D +#define RL_MAR6 0x000E +#define RL_MAR7 0x000F + +#define RL_TXSTAT0 0x0010 /* status of TX descriptor 0 */ +#define RL_TXSTAT1 0x0014 /* status of TX descriptor 1 */ +#define RL_TXSTAT2 0x0018 /* status of TX descriptor 2 */ +#define RL_TXSTAT3 0x001C /* status of TX descriptor 3 */ + +#define RL_TXADDR0 0x0020 /* address of TX descriptor 0 */ +#define RL_TXADDR1 0x0024 /* address of TX descriptor 1 */ +#define RL_TXADDR2 0x0028 /* address of TX descriptor 2 */ +#define RL_TXADDR3 0x002C /* address of TX descriptor 3 */ + +#define RL_RXADDR 0x0030 /* RX ring start address */ +#define RL_RX_EARLY_BYTES 0x0034 /* RX early byte count */ +#define RL_RX_EARLY_STAT 0x0036 /* RX early status */ +#define RL_COMMAND 0x0037 /* command register */ +#define RL_CURRXADDR 0x0038 /* current address of packet read */ +#define RL_CURRXBUF 0x003A /* current RX buffer address */ +#define RL_IMR 0x003C /* interrupt mask register */ +#define RL_ISR 0x003E /* interrupt status register */ +#define RL_TXCFG 0x0040 /* transmit config */ +#define RL_RXCFG 0x0044 /* receive config */ +#define RL_TIMERCNT 0x0048 /* timer count register */ +#define RL_MISSEDPKT 0x004C /* missed packet counter */ +#define RL_EECMD 0x0050 /* EEPROM command register */ + +/* RTL8139/RTL8139C+ only */ +#define RL_8139_CFG0 0x0051 /* config register #0 */ +#define RL_8139_CFG1 0x0052 /* config register #1 */ +#define RL_8139_CFG3 0x0059 /* config register #3 */ +#define RL_8139_CFG4 0x005A /* config register #4 */ +#define RL_8139_CFG5 0x00D8 /* config register #5 */ + +#define RL_CFG0 0x0051 /* config register #0 */ +#define RL_CFG1 0x0052 /* config register #1 */ +#define RL_CFG2 0x0053 /* config register #2 */ +#define RL_CFG3 0x0054 /* config register #3 */ +#define RL_CFG4 0x0055 /* config register #4 */ +#define RL_CFG5 0x0056 /* config register #5 */ + /* 0057 reserved */ +#define RL_MEDIASTAT 0x0058 /* media status register (8139) */ + /* 0059-005A reserved */ +#define RL_MII 0x005A /* 8129 chip only */ +#define RL_HALTCLK 0x005B +#define RL_MULTIINTR 0x005C /* multiple interrupt */ +#define RL_PCIREV 0x005E /* PCI revision value */ + /* 005F reserved */ +#define RL_TXSTAT_ALL 0x0060 /* TX status of all descriptors */ + +/* Direct PHY access registers only available on 8139 */ +#define RL_BMCR 0x0062 /* PHY basic mode control */ +#define RL_BMSR 0x0064 /* PHY basic mode status */ +#define RL_ANAR 0x0066 /* PHY autoneg advert */ +#define RL_LPAR 0x0068 /* PHY link partner ability */ +#define RL_ANER 0x006A /* PHY autoneg expansion */ + +#define RL_DISCCNT 0x006C /* disconnect counter */ +#define RL_FALSECAR 0x006E /* false carrier counter */ +#define RL_NWAYTST 0x0070 /* NWAY test register */ +#define RL_RX_ER 0x0072 /* RX_ER counter */ +#define RL_CSCFG 0x0074 /* CS configuration register */ + +/* + * When operating in special C+ mode, some of the registers in an + * 8139C+ chip have different definitions. These are also used for + * the 8169 gigE chip. + */ +#define RL_DUMPSTATS_LO 0x0010 /* counter dump command register */ +#define RL_DUMPSTATS_HI 0x0014 /* counter dump command register */ +#define RL_TXLIST_ADDR_LO 0x0020 /* 64 bits, 256 byte alignment */ +#define RL_TXLIST_ADDR_HI 0x0024 /* 64 bits, 256 byte alignment */ +#define RL_TXLIST_ADDR_HPRIO_LO 0x0028 /* 64 bits, 256 byte alignment */ +#define RL_TXLIST_ADDR_HPRIO_HI 0x002C /* 64 bits, 256 byte alignment */ +#define RL_CFG2 0x0053 +#define RL_TIMERINT 0x0054 /* interrupt on timer expire */ +#define RL_TXSTART 0x00D9 /* 8 bits */ +#define RL_CPLUS_CMD 0x00E0 /* 16 bits */ +#define RL_RXLIST_ADDR_LO 0x00E4 /* 64 bits, 256 byte alignment */ +#define RL_RXLIST_ADDR_HI 0x00E8 /* 64 bits, 256 byte alignment */ +#define RL_EARLY_TX_THRESH 0x00EC /* 8 bits */ + +/* + * Registers specific to the 8169 gigE chip + */ +#define RL_GTXSTART 0x0038 /* 8 bits */ +#define RL_TIMERINT_8169 0x0058 /* different offset than 8139 */ +#define RL_PHYAR 0x0060 +#define RL_TBICSR 0x0064 +#define RL_TBI_ANAR 0x0068 +#define RL_TBI_LPAR 0x006A +#define RL_GMEDIASTAT 0x006C /* 8 bits */ +#define RL_MACDBG 0x006D /* 8 bits, 8168C SPIN2 only */ +#define RL_GPIO 0x006E /* 8 bits, 8168C SPIN2 only */ +#define RL_PMCH 0x006F /* 8 bits */ +#define RL_MAXRXPKTLEN 0x00DA /* 16 bits, chip multiplies by 8 */ +#define RL_INTRMOD 0x00E2 /* 16 bits */ +#define RL_MISC 0x00F0 + +/* + * TX config register bits + */ +#define RL_TXCFG_CLRABRT 0x00000001 /* retransmit aborted pkt */ +#define RL_TXCFG_MAXDMA 0x00000700 /* max DMA burst size */ +#define RL_TXCFG_QUEUE_EMPTY 0x00000800 /* 8168E-VL or higher */ +#define RL_TXCFG_CRCAPPEND 0x00010000 /* CRC append (0 = yes) */ +#define RL_TXCFG_LOOPBKTST 0x00060000 /* loopback test */ +#define RL_TXCFG_IFG2 0x00080000 /* 8169 only */ +#define RL_TXCFG_IFG 0x03000000 /* interframe gap */ +#define RL_TXCFG_HWREV 0x7CC00000 + +#define RL_LOOPTEST_OFF 0x00000000 +#define RL_LOOPTEST_ON 0x00020000 +#define RL_LOOPTEST_ON_CPLUS 0x00060000 + +/* Known revision codes. */ +#define RL_HWREV_8169 0x00000000 +#define RL_HWREV_8169S 0x00800000 +#define RL_HWREV_8110S 0x04000000 +#define RL_HWREV_8169_8110SB 0x10000000 +#define RL_HWREV_8169_8110SC 0x18000000 +#define RL_HWREV_8401E 0x24000000 +#define RL_HWREV_8102EL 0x24800000 +#define RL_HWREV_8102EL_SPIN1 0x24C00000 +#define RL_HWREV_8168D 0x28000000 +#define RL_HWREV_8168DP 0x28800000 +#define RL_HWREV_8168E 0x2C000000 +#define RL_HWREV_8168E_VL 0x2C800000 +#define RL_HWREV_8168B_SPIN1 0x30000000 +#define RL_HWREV_8100E 0x30800000 +#define RL_HWREV_8101E 0x34000000 +#define RL_HWREV_8102E 0x34800000 +#define RL_HWREV_8103E 0x34C00000 +#define RL_HWREV_8168B_SPIN2 0x38000000 +#define RL_HWREV_8168B_SPIN3 0x38400000 +#define RL_HWREV_8168C 0x3C000000 +#define RL_HWREV_8168C_SPIN2 0x3C400000 +#define RL_HWREV_8168CP 0x3C800000 +#define RL_HWREV_8105E 0x40800000 +#define RL_HWREV_8105E_SPIN1 0x40C00000 +#define RL_HWREV_8402 0x44000000 +#define RL_HWREV_8106E 0x44800000 +#define RL_HWREV_8168F 0x48000000 +#define RL_HWREV_8411 0x48800000 +#define RL_HWREV_8168G 0x4C000000 +#define RL_HWREV_8168EP 0x50000000 +#define RL_HWREV_8168GU 0x50800000 +#define RL_HWREV_8411B 0x5C800000 +#define RL_HWREV_8139 0x60000000 +#define RL_HWREV_8139A 0x70000000 +#define RL_HWREV_8139AG 0x70800000 +#define RL_HWREV_8139B 0x78000000 +#define RL_HWREV_8130 0x7C000000 +#define RL_HWREV_8139C 0x74000000 +#define RL_HWREV_8139D 0x74400000 +#define RL_HWREV_8139CPLUS 0x74800000 +#define RL_HWREV_8101 0x74C00000 +#define RL_HWREV_8100 0x78800000 +#define RL_HWREV_8169_8110SBL 0x7CC00000 +#define RL_HWREV_8169_8110SCE 0x98000000 + +#define RL_TXDMA_16BYTES 0x00000000 +#define RL_TXDMA_32BYTES 0x00000100 +#define RL_TXDMA_64BYTES 0x00000200 +#define RL_TXDMA_128BYTES 0x00000300 +#define RL_TXDMA_256BYTES 0x00000400 +#define RL_TXDMA_512BYTES 0x00000500 +#define RL_TXDMA_1024BYTES 0x00000600 +#define RL_TXDMA_2048BYTES 0x00000700 + +/* + * Transmit descriptor status register bits. + */ +#define RL_TXSTAT_LENMASK 0x00001FFF +#define RL_TXSTAT_OWN 0x00002000 +#define RL_TXSTAT_TX_UNDERRUN 0x00004000 +#define RL_TXSTAT_TX_OK 0x00008000 +#define RL_TXSTAT_EARLY_THRESH 0x003F0000 +#define RL_TXSTAT_COLLCNT 0x0F000000 +#define RL_TXSTAT_CARR_HBEAT 0x10000000 +#define RL_TXSTAT_OUTOFWIN 0x20000000 +#define RL_TXSTAT_TXABRT 0x40000000 +#define RL_TXSTAT_CARRLOSS 0x80000000 + +/* + * Interrupt status register bits. + */ +#define RL_ISR_RX_OK 0x0001 +#define RL_ISR_RX_ERR 0x0002 +#define RL_ISR_TX_OK 0x0004 +#define RL_ISR_TX_ERR 0x0008 +#define RL_ISR_RX_OVERRUN 0x0010 +#define RL_ISR_PKT_UNDERRUN 0x0020 +#define RL_ISR_LINKCHG 0x0020 /* 8169 only */ +#define RL_ISR_FIFO_OFLOW 0x0040 /* 8139 only */ +#define RL_ISR_TX_DESC_UNAVAIL 0x0080 /* C+ only */ +#define RL_ISR_SWI 0x0100 /* C+ only */ +#define RL_ISR_CABLE_LEN_CHGD 0x2000 +#define RL_ISR_PCS_TIMEOUT 0x4000 /* 8129 only */ +#define RL_ISR_TIMEOUT_EXPIRED 0x4000 +#define RL_ISR_SYSTEM_ERR 0x8000 + +#define RL_INTRS \ + (RL_ISR_TX_OK|RL_ISR_RX_OK|RL_ISR_RX_ERR|RL_ISR_TX_ERR| \ + RL_ISR_RX_OVERRUN|RL_ISR_PKT_UNDERRUN|RL_ISR_FIFO_OFLOW| \ + RL_ISR_PCS_TIMEOUT|RL_ISR_SYSTEM_ERR) + +#ifdef RE_TX_MODERATION +#define RL_INTRS_CPLUS \ + (RL_ISR_RX_OK|RL_ISR_RX_ERR|RL_ISR_TX_ERR| \ + RL_ISR_RX_OVERRUN|RL_ISR_PKT_UNDERRUN|RL_ISR_FIFO_OFLOW| \ + RL_ISR_PCS_TIMEOUT|RL_ISR_SYSTEM_ERR|RL_ISR_TIMEOUT_EXPIRED) +#else +#define RL_INTRS_CPLUS \ + (RL_ISR_RX_OK|RL_ISR_RX_ERR|RL_ISR_TX_ERR|RL_ISR_TX_OK| \ + RL_ISR_RX_OVERRUN|RL_ISR_PKT_UNDERRUN|RL_ISR_FIFO_OFLOW| \ + RL_ISR_PCS_TIMEOUT|RL_ISR_SYSTEM_ERR|RL_ISR_TIMEOUT_EXPIRED) +#endif + +/* + * Media status register. (8139 only) + */ +#define RL_MEDIASTAT_RXPAUSE 0x01 +#define RL_MEDIASTAT_TXPAUSE 0x02 +#define RL_MEDIASTAT_LINK 0x04 +#define RL_MEDIASTAT_SPEED10 0x08 +#define RL_MEDIASTAT_RXFLOWCTL 0x40 /* duplex mode */ +#define RL_MEDIASTAT_TXFLOWCTL 0x80 /* duplex mode */ + +/* + * Receive config register. + */ +#define RL_RXCFG_RX_ALLPHYS 0x00000001 /* accept all nodes */ +#define RL_RXCFG_RX_INDIV 0x00000002 /* match filter */ +#define RL_RXCFG_RX_MULTI 0x00000004 /* accept all multicast */ +#define RL_RXCFG_RX_BROAD 0x00000008 /* accept all broadcast */ +#define RL_RXCFG_RX_RUNT 0x00000010 +#define RL_RXCFG_RX_ERRPKT 0x00000020 +#define RL_RXCFG_WRAP 0x00000080 +#define RL_RXCFG_EARLYOFFV2 0x00000800 +#define RL_RXCFG_MAXDMA 0x00000700 +#define RL_RXCFG_BUFSZ 0x00001800 +#define RL_RXCFG_EARLYOFF 0x00003800 +#define RL_RXCFG_FIFOTHRESH 0x0000E000 +#define RL_RXCFG_EARLYTHRESH 0x07000000 + +#define RL_RXDMA_16BYTES 0x00000000 +#define RL_RXDMA_32BYTES 0x00000100 +#define RL_RXDMA_64BYTES 0x00000200 +#define RL_RXDMA_128BYTES 0x00000300 +#define RL_RXDMA_256BYTES 0x00000400 +#define RL_RXDMA_512BYTES 0x00000500 +#define RL_RXDMA_1024BYTES 0x00000600 +#define RL_RXDMA_UNLIMITED 0x00000700 + +#define RL_RXBUF_8 0x00000000 +#define RL_RXBUF_16 0x00000800 +#define RL_RXBUF_32 0x00001000 +#define RL_RXBUF_64 0x00001800 + +#define RL_RXFIFO_16BYTES 0x00000000 +#define RL_RXFIFO_32BYTES 0x00002000 +#define RL_RXFIFO_64BYTES 0x00004000 +#define RL_RXFIFO_128BYTES 0x00006000 +#define RL_RXFIFO_256BYTES 0x00008000 +#define RL_RXFIFO_512BYTES 0x0000A000 +#define RL_RXFIFO_1024BYTES 0x0000C000 +#define RL_RXFIFO_NOTHRESH 0x0000E000 + +/* + * Bits in RX status header (included with RX'ed packet + * in ring buffer). + */ +#define RL_RXSTAT_RXOK 0x00000001 +#define RL_RXSTAT_ALIGNERR 0x00000002 +#define RL_RXSTAT_CRCERR 0x00000004 +#define RL_RXSTAT_GIANT 0x00000008 +#define RL_RXSTAT_RUNT 0x00000010 +#define RL_RXSTAT_BADSYM 0x00000020 +#define RL_RXSTAT_BROAD 0x00002000 +#define RL_RXSTAT_INDIV 0x00004000 +#define RL_RXSTAT_MULTI 0x00008000 +#define RL_RXSTAT_LENMASK 0xFFFF0000 +#define RL_RXSTAT_UNFINISHED 0x0000FFF0 /* DMA still in progress */ + +/* + * Command register. + */ +#define RL_CMD_EMPTY_RXBUF 0x0001 +#define RL_CMD_TX_ENB 0x0004 +#define RL_CMD_RX_ENB 0x0008 +#define RL_CMD_RESET 0x0010 +#define RL_CMD_STOPREQ 0x0080 + +/* + * Twister register values. These are completely undocumented and derived + * from public sources. + */ +#define RL_CSCFG_LINK_OK 0x0400 +#define RL_CSCFG_CHANGE 0x0800 +#define RL_CSCFG_STATUS 0xf000 +#define RL_CSCFG_ROW3 0x7000 +#define RL_CSCFG_ROW2 0x3000 +#define RL_CSCFG_ROW1 0x1000 +#define RL_CSCFG_LINK_DOWN_OFF_CMD 0x03c0 +#define RL_CSCFG_LINK_DOWN_CMD 0xf3c0 + +#define RL_NWAYTST_RESET 0 +#define RL_NWAYTST_CBL_TEST 0x20 + +#define RL_PARA78 0x78 +#define RL_PARA78_DEF 0x78fa8388 +#define RL_PARA7C 0x7C +#define RL_PARA7C_DEF 0xcb38de43 +#define RL_PARA7C_RETUNE 0xfb38de03 + +/* + * EEPROM control register + */ +#define RL_EE_DATAOUT 0x01 /* Data out */ +#define RL_EE_DATAIN 0x02 /* Data in */ +#define RL_EE_CLK 0x04 /* clock */ +#define RL_EE_SEL 0x08 /* chip select */ +#define RL_EE_MODE (0x40|0x80) + +#define RL_EEMODE_OFF 0x00 +#define RL_EEMODE_AUTOLOAD 0x40 +#define RL_EEMODE_PROGRAM 0x80 +#define RL_EEMODE_WRITECFG (0x80|0x40) + +/* 9346 EEPROM commands */ +#define RL_9346_ADDR_LEN 6 /* 93C46 1K: 128x16 */ +#define RL_9356_ADDR_LEN 8 /* 93C56 2K: 256x16 */ + +#define RL_9346_WRITE 0x5 +#define RL_9346_READ 0x6 +#define RL_9346_ERASE 0x7 +#define RL_9346_EWEN 0x4 +#define RL_9346_EWEN_ADDR 0x30 +#define RL_9456_EWDS 0x4 +#define RL_9346_EWDS_ADDR 0x00 + +#define RL_EECMD_WRITE 0x140 +#define RL_EECMD_READ_6BIT 0x180 +#define RL_EECMD_READ_8BIT 0x600 +#define RL_EECMD_ERASE 0x1c0 + +#define RL_EE_ID 0x00 +#define RL_EE_PCI_VID 0x01 +#define RL_EE_PCI_DID 0x02 +/* Location of station address inside EEPROM */ +#define RL_EE_EADDR 0x07 + +/* + * MII register (8129 only) + */ +#define RL_MII_CLK 0x01 +#define RL_MII_DATAIN 0x02 +#define RL_MII_DATAOUT 0x04 +#define RL_MII_DIR 0x80 /* 0 == input, 1 == output */ + +/* + * Config 0 register + */ +#define RL_CFG0_ROM0 0x01 +#define RL_CFG0_ROM1 0x02 +#define RL_CFG0_ROM2 0x04 +#define RL_CFG0_PL0 0x08 +#define RL_CFG0_PL1 0x10 +#define RL_CFG0_10MBPS 0x20 /* 10 Mbps internal mode */ +#define RL_CFG0_PCS 0x40 +#define RL_CFG0_SCR 0x80 + +/* + * Config 1 register + */ +#define RL_CFG1_PWRDWN 0x01 +#define RL_CFG1_PME 0x01 +#define RL_CFG1_SLEEP 0x02 +#define RL_CFG1_VPDEN 0x02 +#define RL_CFG1_IOMAP 0x04 +#define RL_CFG1_MEMMAP 0x08 +#define RL_CFG1_RSVD 0x10 +#define RL_CFG1_LWACT 0x10 +#define RL_CFG1_DRVLOAD 0x20 +#define RL_CFG1_LED0 0x40 +#define RL_CFG1_FULLDUPLEX 0x40 /* 8129 only */ +#define RL_CFG1_LED1 0x80 + +/* + * Config 2 register + */ +#define RL_CFG2_PCI33MHZ 0x00 +#define RL_CFG2_PCI66MHZ 0x01 +#define RL_CFG2_PCI64BIT 0x08 +#define RL_CFG2_AUXPWR 0x10 +#define RL_CFG2_MSI 0x20 + +/* + * Config 3 register + */ +#define RL_CFG3_GRANTSEL 0x80 +#define RL_CFG3_WOL_MAGIC 0x20 +#define RL_CFG3_WOL_LINK 0x10 +#define RL_CFG3_JUMBO_EN0 0x04 /* RTL8168C or later. */ +#define RL_CFG3_FAST_B2B 0x01 + +/* + * Config 4 register + */ +#define RL_CFG4_LWPTN 0x04 +#define RL_CFG4_LWPME 0x10 +#define RL_CFG4_JUMBO_EN1 0x02 /* RTL8168C or later. */ + +/* + * Config 5 register + */ +#define RL_CFG5_WOL_BCAST 0x40 +#define RL_CFG5_WOL_MCAST 0x20 +#define RL_CFG5_WOL_UCAST 0x10 +#define RL_CFG5_WOL_LANWAKE 0x02 +#define RL_CFG5_PME_STS 0x01 + +/* + * 8139C+ register definitions + */ + +/* RL_DUMPSTATS_LO register */ +#define RL_DUMPSTATS_START 0x00000008 + +/* Transmit start register */ +#define RL_TXSTART_SWI 0x01 /* generate TX interrupt */ +#define RL_TXSTART_START 0x40 /* start normal queue transmit */ +#define RL_TXSTART_HPRIO_START 0x80 /* start hi prio queue transmit */ + +/* + * Config 2 register, 8139C+/8169/8169S/8110S only + */ +#define RL_CFG2_BUSFREQ 0x07 +#define RL_CFG2_BUSWIDTH 0x08 +#define RL_CFG2_AUXPWRSTS 0x10 + +#define RL_BUSFREQ_33MHZ 0x00 +#define RL_BUSFREQ_66MHZ 0x01 + +#define RL_BUSWIDTH_32BITS 0x00 +#define RL_BUSWIDTH_64BITS 0x08 + +/* C+ mode command register */ +#define RL_CPLUSCMD_TXENB 0x0001 /* enable C+ transmit mode */ +#define RL_CPLUSCMD_RXENB 0x0002 /* enable C+ receive mode */ +#define RL_CPLUSCMD_PCI_MRW 0x0008 /* enable PCI multi-read/write */ +#define RL_CPLUSCMD_PCI_DAC 0x0010 /* PCI dual-address cycle only */ +#define RL_CPLUSCMD_RXCSUM_ENB 0x0020 /* enable RX checksum offload */ +#define RL_CPLUSCMD_VLANSTRIP 0x0040 /* enable VLAN tag stripping */ +#define RL_CPLUSCMD_MACSTAT_DIS 0x0080 /* 8168B/C/CP */ +#define RL_CPLUSCMD_ASF 0x0100 /* 8168C/CP */ +#define RL_CPLUSCMD_DBG_SEL 0x0200 /* 8168C/CP */ +#define RL_CPLUSCMD_FORCE_TXFC 0x0400 /* 8168C/CP */ +#define RL_CPLUSCMD_FORCE_RXFC 0x0800 /* 8168C/CP */ +#define RL_CPLUSCMD_FORCE_HDPX 0x1000 /* 8168C/CP */ +#define RL_CPLUSCMD_NORMAL_MODE 0x2000 /* 8168C/CP */ +#define RL_CPLUSCMD_DBG_ENB 0x4000 /* 8168C/CP */ +#define RL_CPLUSCMD_BIST_ENB 0x8000 /* 8168C/CP */ + +/* C+ early transmit threshold */ +#define RL_EARLYTXTHRESH_CNT 0x003F /* byte count times 8 */ + +/* Timer interrupt register */ +#define RL_TIMERINT_8169_VAL 0x00001FFF +#define RL_TIMER_MIN 0 +#define RL_TIMER_MAX 65 /* 65.528us */ +#define RL_TIMER_DEFAULT RL_TIMER_MAX +#define RL_TIMER_PCIE_CLK 125 /* 125MHZ */ +#define RL_USECS(x) ((x) * RL_TIMER_PCIE_CLK) + +/* + * Gigabit PHY access register (8169 only) + */ +#define RL_PHYAR_PHYDATA 0x0000FFFF +#define RL_PHYAR_PHYREG 0x001F0000 +#define RL_PHYAR_BUSY 0x80000000 + +/* + * Gigabit media status (8169 only) + */ +#define RL_GMEDIASTAT_FDX 0x01 /* full duplex */ +#define RL_GMEDIASTAT_LINK 0x02 /* link up */ +#define RL_GMEDIASTAT_10MBPS 0x04 /* 10mps link */ +#define RL_GMEDIASTAT_100MBPS 0x08 /* 100mbps link */ +#define RL_GMEDIASTAT_1000MBPS 0x10 /* gigE link */ +#define RL_GMEDIASTAT_RXFLOW 0x20 /* RX flow control on */ +#define RL_GMEDIASTAT_TXFLOW 0x40 /* TX flow control on */ +#define RL_GMEDIASTAT_TBI 0x80 /* TBI enabled */ + +/* + * The RealTek doesn't use a fragment-based descriptor mechanism. + * Instead, there are only four register sets, each or which represents + * one 'descriptor.' Basically, each TX descriptor is just a contiguous + * packet buffer (32-bit aligned!) and we place the buffer addresses in + * the registers so the chip knows where they are. + * + * We can sort of kludge together the same kind of buffer management + * used in previous drivers, but we have to do buffer copies almost all + * the time, so it doesn't really buy us much. + * + * For reception, there's just one large buffer where the chip stores + * all received packets. + */ +#define RL_RX_BUF_SZ RL_RXBUF_64 +#define RL_RXBUFLEN (1 << ((RL_RX_BUF_SZ >> 11) + 13)) +#define RL_TX_LIST_CNT 4 +#define RL_MIN_FRAMELEN 60 +#define RL_TX_8139_BUF_ALIGN 4 +#define RL_RX_8139_BUF_ALIGN 8 +#define RL_RX_8139_BUF_RESERVE sizeof(int64_t) +#define RL_RX_8139_BUF_GUARD_SZ \ + (ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN + RL_RX_8139_BUF_RESERVE) +#define RL_TXTHRESH(x) ((x) << 11) +#define RL_TX_THRESH_INIT 96 +#define RL_RX_FIFOTHRESH RL_RXFIFO_NOTHRESH +#define RL_RX_MAXDMA RL_RXDMA_UNLIMITED +#define RL_TX_MAXDMA RL_TXDMA_2048BYTES + +#define RL_RXCFG_CONFIG (RL_RX_FIFOTHRESH|RL_RX_MAXDMA|RL_RX_BUF_SZ) +#define RL_TXCFG_CONFIG (RL_TXCFG_IFG|RL_TX_MAXDMA) + +#define RL_ETHER_ALIGN 2 + +/* + * re(4) hardware ip4csum-tx could be mangled with 28 bytes or less IP packets. + */ +#define RL_IP4CSUMTX_MINLEN 28 +#define RL_IP4CSUMTX_PADLEN (ETHER_HDR_LEN + RL_IP4CSUMTX_MINLEN) + +struct rl_chain_data { + uint16_t cur_rx; + uint8_t *rl_rx_buf; + uint8_t *rl_rx_buf_ptr; + + struct mbuf *rl_tx_chain[RL_TX_LIST_CNT]; + bus_dmamap_t rl_tx_dmamap[RL_TX_LIST_CNT]; + bus_dma_tag_t rl_tx_tag; + bus_dma_tag_t rl_rx_tag; + bus_dmamap_t rl_rx_dmamap; + bus_addr_t rl_rx_buf_paddr; + uint8_t last_tx; + uint8_t cur_tx; +}; + +#define RL_INC(x) (x = (x + 1) % RL_TX_LIST_CNT) +#define RL_CUR_TXADDR(x) ((x->rl_cdata.cur_tx * 4) + RL_TXADDR0) +#define RL_CUR_TXSTAT(x) ((x->rl_cdata.cur_tx * 4) + RL_TXSTAT0) +#define RL_CUR_TXMBUF(x) (x->rl_cdata.rl_tx_chain[x->rl_cdata.cur_tx]) +#define RL_CUR_DMAMAP(x) (x->rl_cdata.rl_tx_dmamap[x->rl_cdata.cur_tx]) +#define RL_LAST_TXADDR(x) ((x->rl_cdata.last_tx * 4) + RL_TXADDR0) +#define RL_LAST_TXSTAT(x) ((x->rl_cdata.last_tx * 4) + RL_TXSTAT0) +#define RL_LAST_TXMBUF(x) (x->rl_cdata.rl_tx_chain[x->rl_cdata.last_tx]) +#define RL_LAST_DMAMAP(x) (x->rl_cdata.rl_tx_dmamap[x->rl_cdata.last_tx]) + +struct rl_type { + uint16_t rl_vid; + uint16_t rl_did; + int rl_basetype; + const char *rl_name; +}; + +struct rl_hwrev { + uint32_t rl_rev; + int rl_type; + const char *rl_desc; + int rl_max_mtu; +}; + +#define RL_8129 1 +#define RL_8139 2 +#define RL_8139CPLUS 3 +#define RL_8169 4 + +#define RL_ISCPLUS(x) ((x)->rl_type == RL_8139CPLUS || \ + (x)->rl_type == RL_8169) + +/* + * The 8139C+ and 8160 gigE chips support descriptor-based TX + * and RX. In fact, they even support TCP large send. Descriptors + * must be allocated in contiguous blocks that are aligned on a + * 256-byte boundary. The rings can hold a maximum of 64 descriptors. + */ + +/* + * RX/TX descriptor definition. When large send mode is enabled, the + * lower 11 bits of the TX rl_cmdstat word are used to hold the MSS, and + * the checksum offload bits are disabled. The structure layout is + * the same for RX and TX descriptors + */ +struct rl_desc { + uint32_t rl_cmdstat; + uint32_t rl_vlanctl; + uint32_t rl_bufaddr_lo; + uint32_t rl_bufaddr_hi; +}; + +#define RL_TDESC_CMD_FRAGLEN 0x0000FFFF +#define RL_TDESC_CMD_TCPCSUM 0x00010000 /* TCP checksum enable */ +#define RL_TDESC_CMD_UDPCSUM 0x00020000 /* UDP checksum enable */ +#define RL_TDESC_CMD_IPCSUM 0x00040000 /* IP header checksum enable */ +#define RL_TDESC_CMD_MSSVAL 0x07FF0000 /* Large send MSS value */ +#define RL_TDESC_CMD_MSSVAL_SHIFT 16 /* Large send MSS value shift */ +#define RL_TDESC_CMD_LGSEND 0x08000000 /* TCP large send enb */ +#define RL_TDESC_CMD_EOF 0x10000000 /* end of frame marker */ +#define RL_TDESC_CMD_SOF 0x20000000 /* start of frame marker */ +#define RL_TDESC_CMD_EOR 0x40000000 /* end of ring marker */ +#define RL_TDESC_CMD_OWN 0x80000000 /* chip owns descriptor */ + +#define RL_TDESC_VLANCTL_TAG 0x00020000 /* Insert VLAN tag */ +#define RL_TDESC_VLANCTL_DATA 0x0000FFFF /* TAG data */ +/* RTL8168C/RTL8168CP/RTL8111C/RTL8111CP */ +#define RL_TDESC_CMD_UDPCSUMV2 0x80000000 +#define RL_TDESC_CMD_TCPCSUMV2 0x40000000 +#define RL_TDESC_CMD_IPCSUMV2 0x20000000 +#define RL_TDESC_CMD_MSSVALV2 0x1FFC0000 +#define RL_TDESC_CMD_MSSVALV2_SHIFT 18 + +/* + * Error bits are valid only on the last descriptor of a frame + * (i.e. RL_TDESC_CMD_EOF == 1) + */ +#define RL_TDESC_STAT_COLCNT 0x000F0000 /* collision count */ +#define RL_TDESC_STAT_EXCESSCOL 0x00100000 /* excessive collisions */ +#define RL_TDESC_STAT_LINKFAIL 0x00200000 /* link faulure */ +#define RL_TDESC_STAT_OWINCOL 0x00400000 /* out-of-window collision */ +#define RL_TDESC_STAT_TXERRSUM 0x00800000 /* transmit error summary */ +#define RL_TDESC_STAT_UNDERRUN 0x02000000 /* TX underrun occured */ +#define RL_TDESC_STAT_OWN 0x80000000 + +/* + * RX descriptor cmd/vlan definitions + */ +#define RL_RDESC_CMD_EOR 0x40000000 +#define RL_RDESC_CMD_OWN 0x80000000 +#define RL_RDESC_CMD_BUFLEN 0x00001FFF + +#define RL_RDESC_STAT_OWN 0x80000000 +#define RL_RDESC_STAT_EOR 0x40000000 +#define RL_RDESC_STAT_SOF 0x20000000 +#define RL_RDESC_STAT_EOF 0x10000000 +#define RL_RDESC_STAT_FRALIGN 0x08000000 /* frame alignment error */ +#define RL_RDESC_STAT_MCAST 0x04000000 /* multicast pkt received */ +#define RL_RDESC_STAT_UCAST 0x02000000 /* unicast pkt received */ +#define RL_RDESC_STAT_BCAST 0x01000000 /* broadcast pkt received */ +#define RL_RDESC_STAT_BUFOFLOW 0x00800000 /* out of buffer space */ +#define RL_RDESC_STAT_FIFOOFLOW 0x00400000 /* FIFO overrun */ +#define RL_RDESC_STAT_GIANT 0x00200000 /* pkt > 4096 bytes */ +#define RL_RDESC_STAT_RXERRSUM 0x00100000 /* RX error summary */ +#define RL_RDESC_STAT_RUNT 0x00080000 /* runt packet received */ +#define RL_RDESC_STAT_CRCERR 0x00040000 /* CRC error */ +#define RL_RDESC_STAT_PROTOID 0x00030000 /* Protocol type */ +#define RL_RDESC_STAT_UDP 0x00020000 /* UDP, 8168C/CP, 8111C/CP */ +#define RL_RDESC_STAT_TCP 0x00010000 /* TCP, 8168C/CP, 8111C/CP */ +#define RL_RDESC_STAT_IPSUMBAD 0x00008000 /* IP header checksum bad */ +#define RL_RDESC_STAT_UDPSUMBAD 0x00004000 /* UDP checksum bad */ +#define RL_RDESC_STAT_TCPSUMBAD 0x00002000 /* TCP checksum bad */ +#define RL_RDESC_STAT_FRAGLEN 0x00001FFF /* RX'ed frame/frag len */ +#define RL_RDESC_STAT_GFRAGLEN 0x00003FFF /* RX'ed frame/frag len */ +#define RL_RDESC_STAT_ERRS (RL_RDESC_STAT_GIANT|RL_RDESC_STAT_RUNT| \ + RL_RDESC_STAT_CRCERR) + +#define RL_RDESC_VLANCTL_TAG 0x00010000 /* VLAN tag available + (rl_vlandata valid)*/ +#define RL_RDESC_VLANCTL_DATA 0x0000FFFF /* TAG data */ +/* RTL8168C/RTL8168CP/RTL8111C/RTL8111CP */ +#define RL_RDESC_IPV6 0x80000000 +#define RL_RDESC_IPV4 0x40000000 + +#define RL_PROTOID_NONIP 0x00000000 +#define RL_PROTOID_TCPIP 0x00010000 +#define RL_PROTOID_UDPIP 0x00020000 +#define RL_PROTOID_IP 0x00030000 +#define RL_TCPPKT(x) (((x) & RL_RDESC_STAT_PROTOID) == \ + RL_PROTOID_TCPIP) +#define RL_UDPPKT(x) (((x) & RL_RDESC_STAT_PROTOID) == \ + RL_PROTOID_UDPIP) + +/* + * Statistics counter structure (8139C+ and 8169 only) + */ +struct rl_stats { + uint64_t rl_tx_pkts; + uint64_t rl_rx_pkts; + uint64_t rl_tx_errs; + uint32_t rl_rx_errs; + uint16_t rl_missed_pkts; + uint16_t rl_rx_framealign_errs; + uint32_t rl_tx_onecoll; + uint32_t rl_tx_multicolls; + uint64_t rl_rx_ucasts; + uint64_t rl_rx_bcasts; + uint32_t rl_rx_mcasts; + uint16_t rl_tx_aborts; + uint16_t rl_rx_underruns; +}; + +/* + * Rx/Tx descriptor parameters (8139C+ and 8169 only) + * + * 8139C+ + * Number of descriptors supported : up to 64 + * Descriptor alignment : 256 bytes + * Tx buffer : At least 4 bytes in length. + * Rx buffer : At least 8 bytes in length and 8 bytes alignment required. + * + * 8169 + * Number of descriptors supported : up to 1024 + * Descriptor alignment : 256 bytes + * Tx buffer : At least 4 bytes in length. + * Rx buffer : At least 8 bytes in length and 8 bytes alignment required. + */ +#ifndef __NO_STRICT_ALIGNMENT +#define RE_FIXUP_RX 1 +#endif + +#define RL_8169_TX_DESC_CNT 256 +#define RL_8169_RX_DESC_CNT 256 +#define RL_8139_TX_DESC_CNT 64 +#define RL_8139_RX_DESC_CNT 64 +#define RL_TX_DESC_CNT RL_8169_TX_DESC_CNT +#define RL_RX_DESC_CNT RL_8169_RX_DESC_CNT +#define RL_RX_JUMBO_DESC_CNT RL_RX_DESC_CNT +#define RL_NTXSEGS 35 + +#define RL_RING_ALIGN 256 +#define RL_DUMP_ALIGN 64 +#define RL_IFQ_MAXLEN 512 +#define RL_TX_DESC_NXT(sc,x) ((x + 1) & ((sc)->rl_ldata.rl_tx_desc_cnt - 1)) +#define RL_TX_DESC_PRV(sc,x) ((x - 1) & ((sc)->rl_ldata.rl_tx_desc_cnt - 1)) +#define RL_RX_DESC_NXT(sc,x) ((x + 1) & ((sc)->rl_ldata.rl_rx_desc_cnt - 1)) +#define RL_OWN(x) (le32toh((x)->rl_cmdstat) & RL_RDESC_STAT_OWN) +#define RL_RXBYTES(x) (le32toh((x)->rl_cmdstat) & sc->rl_rxlenmask) +#define RL_PKTSZ(x) ((x)/* >> 3*/) +#ifdef RE_FIXUP_RX +#define RE_ETHER_ALIGN sizeof(uint64_t) +#define RE_RX_DESC_BUFLEN (MCLBYTES - RE_ETHER_ALIGN) +#else +#define RE_ETHER_ALIGN 0 +#define RE_RX_DESC_BUFLEN MCLBYTES +#endif + +#define RL_MSI_MESSAGES 1 + +#define RL_ADDR_LO(y) ((uint64_t) (y) & 0xFFFFFFFF) +#define RL_ADDR_HI(y) ((uint64_t) (y) >> 32) + +/* + * The number of bits reserved for MSS in RealTek controllers is + * 11bits. This limits the maximum interface MTU size in TSO case + * as upper stack should not generate TCP segments with MSS greater + * than the limit. + */ +#define RL_TSO_MTU (2047 - ETHER_HDR_LEN - ETHER_CRC_LEN) + +/* see comment in dev/re/if_re.c */ +#define RL_JUMBO_FRAMELEN 7440 +#define RL_JUMBO_MTU \ + (RL_JUMBO_FRAMELEN-ETHER_VLAN_ENCAP_LEN-ETHER_HDR_LEN-ETHER_CRC_LEN) +#define RL_JUMBO_MTU_6K \ + ((6 * 1024) - ETHER_VLAN_ENCAP_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN) +#define RL_JUMBO_MTU_9K \ + ((9 * 1024) - ETHER_VLAN_ENCAP_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN) +#define RL_MTU \ + (ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN) + +struct rl_txdesc { + struct mbuf *tx_m; + bus_dmamap_t tx_dmamap; +}; + +struct rl_rxdesc { + struct mbuf *rx_m; + bus_dmamap_t rx_dmamap; + bus_size_t rx_size; +}; + +struct rl_list_data { + struct rl_txdesc rl_tx_desc[RL_TX_DESC_CNT]; + struct rl_rxdesc rl_rx_desc[RL_RX_DESC_CNT]; + struct rl_rxdesc rl_jrx_desc[RL_RX_JUMBO_DESC_CNT]; + int rl_tx_desc_cnt; + int rl_rx_desc_cnt; + int rl_tx_prodidx; + int rl_rx_prodidx; + int rl_tx_considx; + int rl_tx_free; + bus_dma_tag_t rl_tx_mtag; /* mbuf TX mapping tag */ + bus_dma_tag_t rl_rx_mtag; /* mbuf RX mapping tag */ + bus_dma_tag_t rl_jrx_mtag; /* mbuf RX mapping tag */ + bus_dmamap_t rl_rx_sparemap; + bus_dmamap_t rl_jrx_sparemap; + bus_dma_tag_t rl_stag; /* stats mapping tag */ + bus_dmamap_t rl_smap; /* stats map */ + struct rl_stats *rl_stats; + bus_addr_t rl_stats_addr; + bus_dma_tag_t rl_rx_list_tag; + bus_dmamap_t rl_rx_list_map; + struct rl_desc *rl_rx_list; + bus_addr_t rl_rx_list_addr; + bus_dma_tag_t rl_tx_list_tag; + bus_dmamap_t rl_tx_list_map; + struct rl_desc *rl_tx_list; + bus_addr_t rl_tx_list_addr; +}; + +enum rl_twist { DONE, CHK_LINK, FIND_ROW, SET_PARAM, RECHK_LONG, RETUNE }; + +struct rl_softc { + struct ifnet *rl_ifp; /* interface info */ + bus_space_handle_t rl_bhandle; /* bus space handle */ + bus_space_tag_t rl_btag; /* bus space tag */ + device_t rl_dev; + struct resource *rl_res; + int rl_res_id; + int rl_res_type; + struct resource *rl_res_pba; + struct resource *rl_irq[RL_MSI_MESSAGES]; + void *rl_intrhand[RL_MSI_MESSAGES]; + device_t rl_miibus; + bus_dma_tag_t rl_parent_tag; + uint8_t rl_type; + const struct rl_hwrev *rl_hwrev; + uint32_t rl_macrev; + int rl_eecmd_read; + int rl_eewidth; + int rl_expcap; + int rl_txthresh; + bus_size_t rl_cfg0; + bus_size_t rl_cfg1; + bus_size_t rl_cfg2; + bus_size_t rl_cfg3; + bus_size_t rl_cfg4; + bus_size_t rl_cfg5; + struct rl_chain_data rl_cdata; + struct rl_list_data rl_ldata; + struct callout rl_stat_callout; + int rl_watchdog_timer; + struct mtx rl_mtx; + struct mbuf *rl_head; + struct mbuf *rl_tail; + uint32_t rl_rxlenmask; + int rl_testmode; + int rl_if_flags; + int rl_twister_enable; + enum rl_twist rl_twister; + int rl_twist_row; + int rl_twist_col; + int suspended; /* 0 = normal 1 = suspended */ +#ifdef DEVICE_POLLING + int rxcycles; +#endif + + struct task rl_inttask; + + int rl_txstart; + int rl_int_rx_act; + int rl_int_rx_mod; + uint32_t rl_flags; +#define RL_FLAG_MSI 0x00000001 +#define RL_FLAG_AUTOPAD 0x00000002 +#define RL_FLAG_PHYWAKE_PM 0x00000004 +#define RL_FLAG_PHYWAKE 0x00000008 +#define RL_FLAG_JUMBOV2 0x00000010 +#define RL_FLAG_PAR 0x00000020 +#define RL_FLAG_DESCV2 0x00000040 +#define RL_FLAG_MACSTAT 0x00000080 +#define RL_FLAG_FASTETHER 0x00000100 +#define RL_FLAG_CMDSTOP 0x00000200 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Dec 27 17:34:03 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CBFCDA535F5; Sun, 27 Dec 2015 17:34:03 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6976F1572; Sun, 27 Dec 2015 17:34:03 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRHY2oS031860; Sun, 27 Dec 2015 17:34:02 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRHXxgN031823; Sun, 27 Dec 2015 17:33:59 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201512271733.tBRHXxgN031823@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Sun, 27 Dec 2015 17:33:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292782 - in head: lib/libcrypt lib/libmd sbin/gbde sbin/geom/class/eli sbin/md5 sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/conf sys/crypto/sha2 sys/dev/random sys/geom/bde sys/... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 17:34:04 -0000 Author: allanjude Date: Sun Dec 27 17:33:59 2015 New Revision: 292782 URL: https://svnweb.freebsd.org/changeset/base/292782 Log: Replace sys/crypto/sha2/sha2.c with lib/libmd/sha512c.c cperciva's libmd implementation is 5-30% faster The same was done for SHA256 previously in r263218 cperciva's implementation was lacking SHA-384 which I implemented, validated against OpenSSL and the NIST documentation Extend sbin/md5 to create sha384(1) Chase dependancies on sys/crypto/sha2/sha2.{c,h} and replace them with sha512{c.c,.h} Reviewed by: cperciva, des, delphij Approved by: secteam, bapt (mentor) MFC after: 2 weeks Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D3929 Added: head/sys/crypto/sha2/sha384.h (contents, props changed) head/sys/crypto/sha2/sha512.h - copied, changed from r292757, head/lib/libmd/sha512.h head/sys/crypto/sha2/sha512c.c - copied, changed from r289398, head/lib/libmd/sha512c.c Deleted: head/lib/libmd/sha512.h head/lib/libmd/sha512c.c head/sys/crypto/sha2/sha2.c head/sys/crypto/sha2/sha2.h Modified: head/lib/libcrypt/Makefile head/lib/libmd/Makefile head/lib/libmd/sha512.3 head/lib/libmd/shadriver.c head/sbin/gbde/Makefile head/sbin/gbde/gbde.c head/sbin/geom/class/eli/Makefile head/sbin/md5/Makefile head/sbin/md5/md5.1 head/sbin/md5/md5.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c head/sys/conf/files head/sys/crypto/sha2/sha256.h head/sys/dev/random/build.sh head/sys/dev/random/fortuna.c head/sys/dev/random/hash.c head/sys/dev/random/other_algorithm.c head/sys/dev/random/randomdev.c head/sys/dev/random/unit_test.c head/sys/dev/random/yarrow.c head/sys/geom/bde/g_bde.c head/sys/geom/bde/g_bde_crypt.c head/sys/geom/bde/g_bde_lock.c head/sys/geom/bde/g_bde_work.c head/sys/geom/eli/g_eli.h head/sys/modules/crypto/Makefile head/sys/modules/geom/geom_bde/Makefile head/sys/modules/zfs/Makefile head/sys/netinet/sctp_os_bsd.h head/sys/opencrypto/xform.h Modified: head/lib/libcrypt/Makefile ============================================================================== --- head/lib/libcrypt/Makefile Sun Dec 27 17:19:46 2015 (r292781) +++ head/lib/libcrypt/Makefile Sun Dec 27 17:33:59 2015 (r292782) @@ -30,6 +30,7 @@ CFLAGS+= -I${.CURDIR} -DHAS_DES -DHAS_BL .for sym in MD4Init MD4Final MD4Update MD4Pad \ MD5Init MD5Final MD5Update MD5Pad \ SHA256_Init SHA256_Final SHA256_Update \ + SHA384_Init SHA384_Final SHA384_Update \ SHA512_Init SHA512_Final SHA512_Update CFLAGS+= -D${sym}=__${sym} .endfor Modified: head/lib/libmd/Makefile ============================================================================== --- head/lib/libmd/Makefile Sun Dec 27 17:19:46 2015 (r292781) +++ head/lib/libmd/Makefile Sun Dec 27 17:33:59 2015 (r292782) @@ -7,8 +7,9 @@ SRCS= md4c.c md5c.c md4hl.c md5hl.c \ rmd160c.c rmd160hl.c \ sha0c.c sha0hl.c sha1c.c sha1hl.c \ sha256c.c sha256hl.c \ + sha384hl.c \ sha512c.c sha512hl.c -INCS= md4.h md5.h ripemd.h sha.h sha256.h sha512.h +INCS= md4.h md5.h ripemd.h sha.h sha256.h sha384.h sha512.h WARNS?= 0 @@ -33,6 +34,10 @@ MLINKS+=sha256.3 SHA256_Init.3 sha256.3 MLINKS+=sha256.3 SHA256_Final.3 sha256.3 SHA256_End.3 MLINKS+=sha256.3 SHA256_File.3 sha256.3 SHA256_FileChunk.3 MLINKS+=sha256.3 SHA256_Data.3 +MLINKS+=sha512.3 SHA384_Init.3 sha512.3 SHA384_Update.3 +MLINKS+=sha512.3 SHA384_Final.3 sha512.3 SHA384_End.3 +MLINKS+=sha512.3 SHA384_File.3 sha512.3 SHA384_FileChunk.3 +MLINKS+=sha512.3 SHA384_Data.3 sha512.3 sha384.3 MLINKS+=sha512.3 SHA512_Init.3 sha512.3 SHA512_Update.3 MLINKS+=sha512.3 SHA512_Final.3 sha512.3 SHA512_End.3 MLINKS+=sha512.3 SHA512_File.3 sha512.3 SHA512_FileChunk.3 @@ -40,7 +45,8 @@ MLINKS+=sha512.3 SHA512_Data.3 CLEANFILES+= md[245]hl.c md[245].ref md[245].3 mddriver \ rmd160.ref rmd160hl.c rmddriver \ sha0.ref sha0hl.c sha1.ref sha1hl.c shadriver \ - sha256.ref sha256hl.c sha512.ref sha512hl.c + sha256.ref sha256hl.c sha384hl.c sha384.ref \ + sha512.ref sha512hl.c # Define WEAK_REFS to provide weak aliases for libmd symbols # @@ -88,6 +94,12 @@ sha256hl.c: mdXhl.c -e 's/SHA256__/SHA256_/g' \ ${.ALLSRC}) > ${.TARGET} +sha384hl.c: mdXhl.c + (echo '#define LENGTH 48'; \ + sed -e 's/mdX/sha384/g' -e 's/MDX/SHA384_/g' \ + -e 's/SHA384__/SHA384_/g' \ + ${.ALLSRC}) > ${.TARGET} + sha512hl.c: mdXhl.c (echo '#define LENGTH 64'; \ sed -e 's/mdX/sha512/g' -e 's/MDX/SHA512_/g' \ @@ -168,6 +180,21 @@ sha256.ref: @echo 'SHA-256 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") =' \ 'f371bc4a311f2b009eef952dd83ca80e2b60026c8e935592d0f9c308453c813e' >> ${.TARGET} +sha384.ref: + echo 'SHA-384 test suite:' > ${.TARGET} + @echo 'SHA-384 ("") =' \ + '38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b' >> ${.TARGET} + @echo 'SHA-384 ("abc") =' \ + 'cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7' >> ${.TARGET} + @echo 'SHA-384 ("message digest") =' \ + '473ed35167ec1f5d8e550368a3db39be54639f828868e9454c239fc8b52e3c61dbd0d8b4de1390c256dcbb5d5fd99cd5' >> ${.TARGET} + @echo 'SHA-384 ("abcdefghijklmnopqrstuvwxyz") =' \ + 'feb67349df3db6f5924815d6c3dc133f091809213731fe5c7b5f4999e463479ff2877f5f2936fa63bb43784b12f3ebb4' >> ${.TARGET} + @echo 'SHA-384 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") =' \ + '1761336e3f7cbfe51deb137f026f89e01a448e3b1fafa64039c1464ee8732f11a5341a6f41e0c202294736ed64db1a84' >> ${.TARGET} + @echo 'SHA-384 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") =' \ + 'b12932b0627d1c060942f5447764155655bd4da0c9afa6dd9b9ef53129af1b8fb0195996d2de9ca0df9d821ffee67026' >> ${.TARGET} + sha512.ref: echo 'SHA-512 test suite:' > ${.TARGET} @echo 'SHA-512 ("") =' \ @@ -196,7 +223,8 @@ rmd160.ref: @echo 'RIPEMD160 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") =' \ '9b752e45573d4b39f4dbd3323cab82bf63326bfb' >> ${.TARGET} -test: md4.ref md5.ref sha0.ref rmd160.ref sha1.ref sha256.ref sha512.ref +test: md4.ref md5.ref sha0.ref rmd160.ref sha1.ref sha256.ref sha384.ref \ + sha512.ref @${ECHO} if any of these test fail, the code produces wrong results @${ECHO} and should NOT be used. ${CC} ${CFLAGS} ${LDFLAGS} -DMD=4 -o mddriver ${.CURDIR}/mddriver.c libmd.a @@ -219,6 +247,9 @@ test: md4.ref md5.ref sha0.ref rmd160.re ${CC} ${CFLAGS} ${LDFLAGS} -DSHA=256 -o shadriver ${.CURDIR}/shadriver.c libmd.a ./shadriver | cmp sha256.ref - @${ECHO} SHA-256 passed test + ${CC} ${CFLAGS} ${LDFLAGS} -DSHA=384 -o shadriver ${.CURDIR}/shadriver.c libmd.a + ./shadriver | cmp sha384.ref - + @${ECHO} SHA-384 passed test ${CC} ${CFLAGS} ${LDFLAGS} -DSHA=512 -o shadriver ${.CURDIR}/shadriver.c libmd.a ./shadriver | cmp sha512.ref - @${ECHO} SHA-512 passed test Modified: head/lib/libmd/sha512.3 ============================================================================== --- head/lib/libmd/sha512.3 Sun Dec 27 17:19:46 2015 (r292781) +++ head/lib/libmd/sha512.3 Sun Dec 27 17:33:59 2015 (r292782) @@ -9,7 +9,7 @@ .\" From: Id: mdX.3,v 1.14 1999/02/11 20:31:49 wollman Exp .\" $FreeBSD$ .\" -.Dd March 28, 2014 +.Dd October 17, 2015 .Dt SHA512 3 .Os .Sh NAME @@ -19,8 +19,15 @@ .Nm SHA512_End , .Nm SHA512_File , .Nm SHA512_FileChunk , -.Nm SHA512_Data -.Nd calculate the FIPS 180-2 ``SHA-512'' message digest +.Nm SHA512_Data , +.Nm SHA384_Init , +.Nm SHA384_Update , +.Nm SHA384_Final , +.Nm SHA384_End , +.Nm SHA384_File , +.Nm SHA384_FileChunk , +.Nm SHA384_Data +.Nd calculate the FIPS 180-4 ``SHA-512'' family of message digests .Sh LIBRARY .Lb libmd .Sh SYNOPSIS @@ -40,6 +47,20 @@ .Fn SHA512_FileChunk "const char *filename" "char *buf" "off_t offset" "off_t length" .Ft "char *" .Fn SHA512_Data "const unsigned char *data" "unsigned int len" "char *buf" +.Ft void +.Fn SHA384_Init "SHA384_CTX *context" +.Ft void +.Fn SHA384_Update "SHA384_CTX *context" "const unsigned char *data" "size_t len" +.Ft void +.Fn SHA384_Final "unsigned char digest[48]" "SHA384_CTX *context" +.Ft "char *" +.Fn SHA384_End "SHA384_CTX *context" "char *buf" +.Ft "char *" +.Fn SHA384_File "const char *filename" "char *buf" +.Ft "char *" +.Fn SHA384_FileChunk "const char *filename" "char *buf" "off_t offset" "off_t length" +.Ft "char *" +.Fn SHA384_Data "const unsigned char *data" "unsigned int len" "char *buf" .Sh DESCRIPTION The .Li SHA512_ @@ -119,6 +140,21 @@ after use. If the .Fa buf argument is non-null it must point to at least 65 characters of buffer space. +.Pp +The +.Li SHA384_ +functions are identical to the +.Li SHA512_ +functions except they use a different initial hash value and the output is +truncated to 384 bits. +.Pp +.Fn SHA384_End +is a wrapper for +.Fn SHA384_Final +which converts the return value to a 49-character +(including the terminating '\e0') +.Tn ASCII +string which represents the 384 bits in hexadecimal. .Sh SEE ALSO .Xr md4 3 , .Xr md5 3 , Modified: head/lib/libmd/shadriver.c ============================================================================== --- head/lib/libmd/shadriver.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/lib/libmd/shadriver.c Sun Dec 27 17:33:59 2015 (r292782) @@ -22,6 +22,7 @@ __FBSDID("$FreeBSD$"); #include "sha.h" #include "sha256.h" +#include "sha384.h" #include "sha512.h" /* The following makes SHA default to SHA-1 if it has not already been @@ -36,6 +37,9 @@ __FBSDID("$FreeBSD$"); #elif SHA == 256 #undef SHA_Data #define SHA_Data SHA256_Data +#elif SHA == 384 +#undef SHA_Data +#define SHA_Data SHA384_Data #elif SHA == 512 #undef SHA_Data #define SHA_Data SHA512_Data Modified: head/sbin/gbde/Makefile ============================================================================== --- head/sbin/gbde/Makefile Sun Dec 27 17:19:46 2015 (r292781) +++ head/sbin/gbde/Makefile Sun Dec 27 17:33:59 2015 (r292782) @@ -4,7 +4,7 @@ PROG= gbde SRCS= gbde.c template.c SRCS+= rijndael-alg-fst.c SRCS+= rijndael-api-fst.c -SRCS+= sha2.c +SRCS+= sha512c.c SRCS+= g_bde_lock.c # rijndael-fst.c does evil casting things which can results in warnings, Modified: head/sbin/gbde/gbde.c ============================================================================== --- head/sbin/gbde/gbde.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sbin/gbde/gbde.c Sun Dec 27 17:33:59 2015 (r292782) @@ -84,7 +84,7 @@ #include #include #include -#include +#include #include #include Modified: head/sbin/geom/class/eli/Makefile ============================================================================== --- head/sbin/geom/class/eli/Makefile Sun Dec 27 17:19:46 2015 (r292781) +++ head/sbin/geom/class/eli/Makefile Sun Dec 27 17:33:59 2015 (r292782) @@ -6,7 +6,8 @@ GEOM_CLASS= eli SRCS= g_eli_crypto.c SRCS+= g_eli_key.c SRCS+= pkcs5v2.c -SRCS+= sha2.c +SRCS+= sha256c.c +SRCS+= sha512c.c LIBADD= md crypto Modified: head/sbin/md5/Makefile ============================================================================== --- head/sbin/md5/Makefile Sun Dec 27 17:19:46 2015 (r292781) +++ head/sbin/md5/Makefile Sun Dec 27 17:33:59 2015 (r292782) @@ -6,11 +6,13 @@ PROG= md5 LINKS= ${BINDIR}/md5 ${BINDIR}/rmd160 \ ${BINDIR}/md5 ${BINDIR}/sha1 \ ${BINDIR}/md5 ${BINDIR}/sha256 \ + ${BINDIR}/md5 ${BINDIR}/sha384 \ ${BINDIR}/md5 ${BINDIR}/sha512 MLINKS= md5.1 rmd160.1 \ md5.1 sha1.1 \ md5.1 sha256.1 \ + md5.1 sha384.1 \ md5.1 sha512.1 LIBADD= md Modified: head/sbin/md5/md5.1 ============================================================================== --- head/sbin/md5/md5.1 Sun Dec 27 17:19:46 2015 (r292781) +++ head/sbin/md5/md5.1 Sun Dec 27 17:33:59 2015 (r292782) @@ -1,9 +1,9 @@ .\" $FreeBSD$ -.Dd May 17, 2014 +.Dd October 17, 2015 .Dt MD5 1 .Os .Sh NAME -.Nm md5 , sha1 , sha256 , sha512, rmd160 +.Nm md5 , sha1 , sha256 , sha384 , sha512, rmd160 .Nd calculate a message-digest fingerprint (checksum) for a file .Sh SYNOPSIS .Nm md5 @@ -21,6 +21,11 @@ .Op Fl c Ar string .Op Fl s Ar string .Op Ar +.Nm sha384 +.Op Fl pqrtx +.Op Fl c Ar string +.Op Fl s Ar string +.Op Ar .Nm sha512 .Op Fl pqrtx .Op Fl c Ar string @@ -33,7 +38,7 @@ .Op Ar .Sh DESCRIPTION The -.Nm md5 , sha1 , sha256 , sha512 +.Nm md5 , sha1 , sha256 , sha384 , sha512 and .Nm rmd160 utilities take as input a message of arbitrary length and produce as @@ -46,7 +51,7 @@ It is conjectured that it is computation produce two messages having the same message digest, or to produce any message having a given prespecified target message digest. The -.Tn MD5 , SHA-1 , SHA-256 , SHA-512 +.Tn MD5 , SHA-1 , SHA-256 , SHA-384 , SHA-512 and .Tn RIPEMD-160 algorithms are intended for digital signature applications, where a @@ -123,6 +128,7 @@ option. .Xr ripemd 3 , .Xr sha 3 , .Xr sha256 3 , +.Xr sha384 3 , .Xr sha512 3 .Rs .%A R. Rivest Modified: head/sbin/md5/md5.c ============================================================================== --- head/sbin/md5/md5.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sbin/md5/md5.c Sun Dec 27 17:33:59 2015 (r292782) @@ -28,6 +28,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -55,6 +56,7 @@ typedef char *(DIGEST_End)(void *, char extern const char *MD5TestOutput[MDTESTCOUNT]; extern const char *SHA1_TestOutput[MDTESTCOUNT]; extern const char *SHA256_TestOutput[MDTESTCOUNT]; +extern const char *SHA384_TestOutput[MDTESTCOUNT]; extern const char *SHA512_TestOutput[MDTESTCOUNT]; extern const char *RIPEMD160_TestOutput[MDTESTCOUNT]; @@ -80,6 +82,7 @@ typedef union { MD5_CTX md5; SHA1_CTX sha1; SHA256_CTX sha256; + SHA384_CTX sha384; SHA512_CTX sha512; RIPEMD160_CTX ripemd160; } DIGEST_CTX; @@ -101,6 +104,9 @@ static const struct Algorithm_t Algorith { "sha256", "SHA256", &SHA256_TestOutput, (DIGEST_Init*)&SHA256_Init, (DIGEST_Update*)&SHA256_Update, (DIGEST_End*)&SHA256_End, &SHA256_Data, &SHA256_File }, + { "sha384", "SHA384", &SHA384_TestOutput, (DIGEST_Init*)&SHA384_Init, + (DIGEST_Update*)&SHA384_Update, (DIGEST_End*)&SHA384_End, + &SHA384_Data, &SHA384_File }, { "sha512", "SHA512", &SHA512_TestOutput, (DIGEST_Init*)&SHA512_Init, (DIGEST_Update*)&SHA512_Update, (DIGEST_End*)&SHA512_End, &SHA512_Data, &SHA512_File }, @@ -327,6 +333,17 @@ const char *SHA256_TestOutput[MDTESTCOUN "e6eae09f10ad4122a0e2a4075761d185a272ebd9f5aa489e998ff2f09cbfdd9f" }; +const char *SHA384_TestOutput[MDTESTCOUNT] = { + "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b", + "54a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31", + "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7", + "473ed35167ec1f5d8e550368a3db39be54639f828868e9454c239fc8b52e3c61dbd0d8b4de1390c256dcbb5d5fd99cd5", + "feb67349df3db6f5924815d6c3dc133f091809213731fe5c7b5f4999e463479ff2877f5f2936fa63bb43784b12f3ebb4", + "1761336e3f7cbfe51deb137f026f89e01a448e3b1fafa64039c1464ee8732f11a5341a6f41e0c202294736ed64db1a84", + "b12932b0627d1c060942f5447764155655bd4da0c9afa6dd9b9ef53129af1b8fb0195996d2de9ca0df9d821ffee67026", + "99428d401bf4abcd4ee0695248c9858b7503853acfae21a9cffa7855f46d1395ef38596fcd06d5a8c32d41a839cc5dfb" +}; + const char *SHA512_TestOutput[MDTESTCOUNT] = { "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e", "1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75", Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c Sun Dec 27 17:33:59 2015 (r292782) @@ -28,7 +28,7 @@ #include #include #ifdef _KERNEL -#include +#include #else #include #endif Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/conf/files Sun Dec 27 17:33:59 2015 (r292782) @@ -557,10 +557,9 @@ crypto/rijndael/rijndael-api-fst.c optio crypto/rijndael/rijndael-api.c optional crypto | ipsec | wlan_ccmp crypto/sha1.c optional carp | crypto | ipsec | \ netgraph_mppc_encryption | sctp -crypto/sha2/sha2.c optional crypto | geom_bde | ipsec | random !random_loadable | \ - sctp | zfs crypto/sha2/sha256c.c optional crypto | geom_bde | ipsec | random !random_loadable | \ sctp | zfs +crypto/sha2/sha512c.c optional crypto | geom_bde | ipsec | zfs crypto/siphash/siphash.c optional inet | inet6 crypto/siphash/siphash_test.c optional inet | inet6 ddb/db_access.c optional ddb Modified: head/sys/crypto/sha2/sha256.h ============================================================================== --- head/sys/crypto/sha2/sha256.h Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/crypto/sha2/sha256.h Sun Dec 27 17:33:59 2015 (r292782) @@ -33,10 +33,14 @@ #include #endif +#define SHA256_BLOCK_LENGTH 64 +#define SHA256_DIGEST_LENGTH 32 +#define SHA256_DIGEST_STRING_LENGTH (SHA256_DIGEST_LENGTH * 2 + 1) + typedef struct SHA256Context { uint32_t state[8]; uint64_t count; - uint8_t buf[64]; + uint8_t buf[SHA256_BLOCK_LENGTH]; } SHA256_CTX; __BEGIN_DECLS @@ -74,10 +78,10 @@ __BEGIN_DECLS void SHA256_Init(SHA256_CTX *); void SHA256_Update(SHA256_CTX *, const void *, size_t); -void SHA256_Final(unsigned char [32], SHA256_CTX *); +void SHA256_Final(unsigned char [SHA256_DIGEST_LENGTH], SHA256_CTX *); +#ifndef _KERNEL char *SHA256_End(SHA256_CTX *, char *); char *SHA256_Data(const void *, unsigned int, char *); -#ifndef _KERNEL char *SHA256_File(const char *, char *); char *SHA256_FileChunk(const char *, char *, off_t, off_t); #endif Added: head/sys/crypto/sha2/sha384.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/crypto/sha2/sha384.h Sun Dec 27 17:33:59 2015 (r292782) @@ -0,0 +1,87 @@ +/*- + * Copyright 2005 Colin Percival + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _SHA384_H_ +#define _SHA384_H_ + +#ifndef _KERNEL +#include +#endif + +#define SHA384_BLOCK_LENGTH 128 +#define SHA384_DIGEST_LENGTH 48 +#define SHA384_DIGEST_STRING_LENGTH (SHA384_DIGEST_LENGTH * 2 + 1) + +typedef struct SHA384Context { + uint64_t state[8]; + uint64_t count[2]; + uint8_t buf[SHA384_BLOCK_LENGTH]; +} SHA384_CTX; + +__BEGIN_DECLS + +/* Ensure libmd symbols do not clash with libcrypto */ +#ifndef SHA384_Init +#define SHA384_Init _libmd_SHA384_Init +#endif +#ifndef SHA384_Update +#define SHA384_Update _libmd_SHA384_Update +#endif +#ifndef SHA384_Final +#define SHA384_Final _libmd_SHA384_Final +#endif +#ifndef SHA384_End +#define SHA384_End _libmd_SHA384_End +#endif +#ifndef SHA384_File +#define SHA384_File _libmd_SHA384_File +#endif +#ifndef SHA384_FileChunk +#define SHA384_FileChunk _libmd_SHA384_FileChunk +#endif +#ifndef SHA384_Data +#define SHA384_Data _libmd_SHA384_Data +#endif + +#ifndef SHA384_version +#define SHA384_version _libmd_SHA384_version +#endif + +void SHA384_Init(SHA384_CTX *); +void SHA384_Update(SHA384_CTX *, const void *, size_t); +void SHA384_Final(unsigned char [SHA384_DIGEST_LENGTH], SHA384_CTX *); +#ifndef _KERNEL +char *SHA384_End(SHA384_CTX *, char *); +char *SHA384_Data(const void *, unsigned int, char *); +char *SHA384_File(const char *, char *); +char *SHA384_FileChunk(const char *, char *, off_t, off_t); +#endif + +__END_DECLS + +#endif /* !_SHA384_H_ */ Copied and modified: head/sys/crypto/sha2/sha512.h (from r292757, head/lib/libmd/sha512.h) ============================================================================== --- head/lib/libmd/sha512.h Sat Dec 26 19:48:36 2015 (r292757, copy source) +++ head/sys/crypto/sha2/sha512.h Sun Dec 27 17:33:59 2015 (r292782) @@ -29,18 +29,23 @@ #ifndef _SHA512_H_ #define _SHA512_H_ +#ifndef _KERNEL #include +#endif + +#define SHA512_BLOCK_LENGTH 128 +#define SHA512_DIGEST_LENGTH 64 +#define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1) typedef struct SHA512Context { uint64_t state[8]; uint64_t count[2]; - unsigned char buf[128]; + uint8_t buf[SHA512_BLOCK_LENGTH]; } SHA512_CTX; __BEGIN_DECLS /* Ensure libmd symbols do not clash with libcrypto */ - #ifndef SHA512_Init #define SHA512_Init _libmd_SHA512_Init #endif @@ -72,11 +77,14 @@ __BEGIN_DECLS void SHA512_Init(SHA512_CTX *); void SHA512_Update(SHA512_CTX *, const void *, size_t); -void SHA512_Final(unsigned char [64], SHA512_CTX *); +void SHA512_Final(unsigned char [SHA512_DIGEST_LENGTH], SHA512_CTX *); +#ifndef _KERNEL char *SHA512_End(SHA512_CTX *, char *); +char *SHA512_Data(const void *, unsigned int, char *); char *SHA512_File(const char *, char *); char *SHA512_FileChunk(const char *, char *, off_t, off_t); -char *SHA512_Data(const void *, unsigned int, char *); +#endif + __END_DECLS #endif /* !_SHA512_H_ */ Copied and modified: head/sys/crypto/sha2/sha512c.c (from r289398, head/lib/libmd/sha512c.c) ============================================================================== --- head/lib/libmd/sha512c.c Thu Oct 15 23:49:05 2015 (r289398, copy source) +++ head/sys/crypto/sha2/sha512c.c Sun Dec 27 17:33:59 2015 (r292782) @@ -30,9 +30,14 @@ __FBSDID("$FreeBSD$"); #include #include +#ifdef _KERNEL +#include +#else #include +#endif #include "sha512.h" +#include "sha384.h" #if BYTE_ORDER == BIG_ENDIAN @@ -104,7 +109,7 @@ be64dec_vect(uint64_t *dst, const unsign * the 512-bit input block to produce a new state. */ static void -SHA512_Transform(uint64_t * state, const unsigned char block[128]) +SHA512_Transform(uint64_t * state, const unsigned char block[SHA512_BLOCK_LENGTH]) { uint64_t W[80]; uint64_t S[8]; @@ -112,12 +117,12 @@ SHA512_Transform(uint64_t * state, const int i; /* 1. Prepare message schedule W. */ - be64dec_vect(W, block, 128); + be64dec_vect(W, block, SHA512_BLOCK_LENGTH); for (i = 16; i < 80; i++) W[i] = s1(W[i - 2]) + W[i - 7] + s0(W[i - 15]) + W[i - 16]; /* 2. Initialize working variables. */ - memcpy(S, state, 64); + memcpy(S, state, SHA512_DIGEST_LENGTH); /* 3. Mix. */ RNDr(S, W, 0, 0x428a2f98d728ae22ULL); @@ -206,7 +211,7 @@ SHA512_Transform(uint64_t * state, const state[i] += S[i]; } -static unsigned char PAD[128] = { +static unsigned char PAD[SHA512_BLOCK_LENGTH] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -279,22 +284,22 @@ SHA512_Update(SHA512_CTX * ctx, const vo ctx->count[0] += bitlen[0]; /* Handle the case where we don't need to perform any transforms */ - if (len < 128 - r) { + if (len < SHA512_BLOCK_LENGTH - r) { memcpy(&ctx->buf[r], src, len); return; } /* Finish the current block */ - memcpy(&ctx->buf[r], src, 128 - r); + memcpy(&ctx->buf[r], src, SHA512_BLOCK_LENGTH - r); SHA512_Transform(ctx->state, ctx->buf); - src += 128 - r; - len -= 128 - r; + src += SHA512_BLOCK_LENGTH - r; + len -= SHA512_BLOCK_LENGTH - r; /* Perform complete blocks */ - while (len >= 128) { + while (len >= SHA512_BLOCK_LENGTH) { SHA512_Transform(ctx->state, src); - src += 128; - len -= 128; + src += SHA512_BLOCK_LENGTH; + len -= SHA512_BLOCK_LENGTH; } /* Copy left over data into buffer */ @@ -306,14 +311,64 @@ SHA512_Update(SHA512_CTX * ctx, const vo * and clears the context state. */ void -SHA512_Final(unsigned char digest[64], SHA512_CTX * ctx) +SHA512_Final(unsigned char digest[SHA512_DIGEST_LENGTH], SHA512_CTX * ctx) { /* Add padding */ SHA512_Pad(ctx); /* Write the hash */ - be64enc_vect(digest, ctx->state, 64); + be64enc_vect(digest, ctx->state, SHA512_DIGEST_LENGTH); + + /* Clear the context state */ + memset((void *)ctx, 0, sizeof(*ctx)); +} + +/*** SHA-384: *********************************************************/ +/* + * the SHA384 and SHA512 transforms are identical, so SHA384 is skipped + */ + +/* SHA-384 initialization. Begins a SHA-384 operation. */ +void +SHA384_Init(SHA384_CTX * ctx) +{ + + /* Zero bits processed so far */ + ctx->count[0] = ctx->count[1] = 0; + + /* Magic initialization constants */ + ctx->state[0] = 0xcbbb9d5dc1059ed8ULL; + ctx->state[1] = 0x629a292a367cd507ULL; + ctx->state[2] = 0x9159015a3070dd17ULL; + ctx->state[3] = 0x152fecd8f70e5939ULL; + ctx->state[4] = 0x67332667ffc00b31ULL; + ctx->state[5] = 0x8eb44a8768581511ULL; + ctx->state[6] = 0xdb0c2e0d64f98fa7ULL; + ctx->state[7] = 0x47b5481dbefa4fa4ULL; +} + +/* Add bytes into the SHA-384 hash */ +void +SHA384_Update(SHA384_CTX * ctx, const void *in, size_t len) +{ + + SHA512_Update((SHA512_CTX *)ctx, in, len); +} + +/* + * SHA-384 finalization. Pads the input data, exports the hash value, + * and clears the context state. + */ +void +SHA384_Final(unsigned char digest[SHA384_DIGEST_LENGTH], SHA384_CTX * ctx) +{ + + /* Add padding */ + SHA512_Pad((SHA512_CTX *)ctx); + + /* Write the hash */ + be64enc_vect(digest, ctx->state, SHA384_DIGEST_LENGTH); /* Clear the context state */ memset((void *)ctx, 0, sizeof(*ctx)); @@ -332,4 +387,11 @@ __weak_reference(_libmd_SHA512_Update, S __weak_reference(_libmd_SHA512_Final, SHA512_Final); #undef SHA512_Transform __weak_reference(_libmd_SHA512_Transform, SHA512_Transform); + +#undef SHA384_Init +__weak_reference(_libmd_SHA384_Init, SHA384_Init); +#undef SHA384_Update +__weak_reference(_libmd_SHA384_Update, SHA384_Update); +#undef SHA384_Final +__weak_reference(_libmd_SHA384_Final, SHA384_Final); #endif Modified: head/sys/dev/random/build.sh ============================================================================== --- head/sys/dev/random/build.sh Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/dev/random/build.sh Sun Dec 27 17:33:59 2015 (r292782) @@ -42,7 +42,6 @@ cc -g -O0 -pthread \ hash.c \ ../../crypto/rijndael/rijndael-api-fst.c \ ../../crypto/rijndael/rijndael-alg-fst.c \ - ../../crypto/sha2/sha2.c \ ../../crypto/sha2/sha256c.c \ -lz \ -o yunit_test @@ -53,7 +52,6 @@ cc -g -O0 -pthread \ hash.c \ ../../crypto/rijndael/rijndael-api-fst.c \ ../../crypto/rijndael/rijndael-alg-fst.c \ - ../../crypto/sha2/sha2.c \ ../../crypto/sha2/sha256c.c \ -lz \ -o funit_test Modified: head/sys/dev/random/fortuna.c ============================================================================== --- head/sys/dev/random/fortuna.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/dev/random/fortuna.c Sun Dec 27 17:33:59 2015 (r292782) @@ -50,7 +50,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #include #include @@ -68,7 +68,7 @@ __FBSDID("$FreeBSD$"); #include "unit_test.h" #include -#include +#include #include #include Modified: head/sys/dev/random/hash.c ============================================================================== --- head/sys/dev/random/hash.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/dev/random/hash.c Sun Dec 27 17:33:59 2015 (r292782) @@ -43,7 +43,7 @@ __FBSDID("$FreeBSD$"); #endif /* _KERNEL */ #include -#include +#include #include Modified: head/sys/dev/random/other_algorithm.c ============================================================================== --- head/sys/dev/random/other_algorithm.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/dev/random/other_algorithm.c Sun Dec 27 17:33:59 2015 (r292782) @@ -55,7 +55,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #include #include Modified: head/sys/dev/random/randomdev.c ============================================================================== --- head/sys/dev/random/randomdev.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/dev/random/randomdev.c Sun Dec 27 17:33:59 2015 (r292782) @@ -50,7 +50,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #include #include Modified: head/sys/dev/random/unit_test.c ============================================================================== --- head/sys/dev/random/unit_test.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/dev/random/unit_test.c Sun Dec 27 17:33:59 2015 (r292782) @@ -36,7 +36,7 @@ cc -g -O0 -pthread -DRANDOM_ -I../. hash.c \ ../../crypto/rijndael/rijndael-api-fst.c \ ../../crypto/rijndael/rijndael-alg-fst.c \ - ../../crypto/sha2/sha2.c \ + ../../crypto/sha2/sha256c.c \ -lz \ -o unit_test ./unit_test Modified: head/sys/dev/random/yarrow.c ============================================================================== --- head/sys/dev/random/yarrow.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/dev/random/yarrow.c Sun Dec 27 17:33:59 2015 (r292782) @@ -41,7 +41,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #include #include @@ -60,7 +60,7 @@ __FBSDID("$FreeBSD$"); #include "unit_test.h" #include -#include +#include #include #include Modified: head/sys/geom/bde/g_bde.c ============================================================================== --- head/sys/geom/bde/g_bde.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/geom/bde/g_bde.c Sun Dec 27 17:33:59 2015 (r292782) @@ -44,7 +44,7 @@ #include #include -#include +#include #include #include #define BDE_CLASS_NAME "BDE" Modified: head/sys/geom/bde/g_bde_crypt.c ============================================================================== --- head/sys/geom/bde/g_bde_crypt.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/geom/bde/g_bde_crypt.c Sun Dec 27 17:33:59 2015 (r292782) @@ -47,7 +47,7 @@ #include #include -#include +#include #include #include Modified: head/sys/geom/bde/g_bde_lock.c ============================================================================== --- head/sys/geom/bde/g_bde_lock.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/geom/bde/g_bde_lock.c Sun Dec 27 17:33:59 2015 (r292782) @@ -58,7 +58,7 @@ #endif #include -#include +#include #include #include Modified: head/sys/geom/bde/g_bde_work.c ============================================================================== --- head/sys/geom/bde/g_bde_work.c Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/geom/bde/g_bde_work.c Sun Dec 27 17:33:59 2015 (r292782) @@ -71,7 +71,7 @@ #include #include -#include +#include #include #include Modified: head/sys/geom/eli/g_eli.h ============================================================================== --- head/sys/geom/eli/g_eli.h Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/geom/eli/g_eli.h Sun Dec 27 17:33:59 2015 (r292782) @@ -32,7 +32,8 @@ #include #include #include -#include +#include +#include #include #ifdef _KERNEL #include Modified: head/sys/modules/crypto/Makefile ============================================================================== --- head/sys/modules/crypto/Makefile Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/modules/crypto/Makefile Sun Dec 27 17:33:59 2015 (r292782) @@ -16,7 +16,7 @@ SRCS += cast.c cryptodeflate.c rmd160.c SRCS += skipjack.c bf_enc.c bf_ecb.c bf_skey.c SRCS += camellia.c camellia-api.c SRCS += des_ecb.c des_enc.c des_setkey.c -SRCS += sha1.c sha2.c sha256c.c +SRCS += sha1.c sha256c.c sha512c.c SRCS += siphash.c SRCS += gmac.c gfmult.c SRCS += opt_param.h cryptodev_if.h bus_if.h device_if.h Modified: head/sys/modules/geom/geom_bde/Makefile ============================================================================== --- head/sys/modules/geom/geom_bde/Makefile Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/modules/geom/geom_bde/Makefile Sun Dec 27 17:33:59 2015 (r292782) @@ -6,6 +6,6 @@ KMOD= geom_bde SRCS= g_bde.c g_bde_crypt.c g_bde_lock.c g_bde_work.c -SRCS+= rijndael-alg-fst.c rijndael-api-fst.c sha2.c sha256c.c +SRCS+= rijndael-alg-fst.c rijndael-api-fst.c sha256c.c sha512c.c .include Modified: head/sys/modules/zfs/Makefile ============================================================================== --- head/sys/modules/zfs/Makefile Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/modules/zfs/Makefile Sun Dec 27 17:33:59 2015 (r292782) @@ -68,7 +68,7 @@ SRCS+= zmod_subr.c SRCS+= zutil.c .PATH: ${SYSDIR}/crypto/sha2 -SRCS+= sha2.c sha256c.c +SRCS+= sha256c.c sha512c.c .PATH: ${SUNW}/common/zfs .include "${SUNW}/uts/common/Makefile.files" Modified: head/sys/netinet/sctp_os_bsd.h ============================================================================== --- head/sys/netinet/sctp_os_bsd.h Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/netinet/sctp_os_bsd.h Sun Dec 27 17:33:59 2015 (r292782) @@ -104,7 +104,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #ifndef in6pcb #define in6pcb inpcb Modified: head/sys/opencrypto/xform.h ============================================================================== --- head/sys/opencrypto/xform.h Sun Dec 27 17:19:46 2015 (r292781) +++ head/sys/opencrypto/xform.h Sun Dec 27 17:33:59 2015 (r292782) @@ -33,7 +33,9 @@ #include #include -#include +#include +#include +#include #include #include From owner-svn-src-all@freebsd.org Sun Dec 27 17:34:19 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 93A3BA53621; Sun, 27 Dec 2015 17:34:19 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 556FB178F; Sun, 27 Dec 2015 17:34:19 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRHYI1T031918; Sun, 27 Dec 2015 17:34:18 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRHYIrX031916; Sun, 27 Dec 2015 17:34:18 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512271734.tBRHYIrX031916@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 17:34:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292783 - in stable/10/sys/dev: re rl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 17:34:19 -0000 Author: marius Date: Sun Dec 27 17:34:18 2015 New Revision: 292783 URL: https://svnweb.freebsd.org/changeset/base/292783 Log: MFC: r287768, r290566, r290946 - Although it doesn't make a whole lot of sense to enable RX and TX before their initial configuration is done, it turns out that r281337 (MFCed to stable/10 in r285177) has the inverse effect on some older chips. Moreover, as with newer chips before, two chips seemingly identical according to their MAC revisions may behave differently in this regard, with most working but a few not, making changes extremely hard to test. Closer inspection of the corresponding Linux code suggests that RX and TX should only be enabled after their initial configuration with RTL8168G and later chips, i. e. RTL8106E{,US}, RTL8107E, as well as RTL8168{EP,G,GU,H}, so limit the new code path to these. [1] - Distinguish between RTL8168H and RTL8107E, with the latter being the 10/100-Mbit/s-only variant of the former. - For MAC variants that can only do Fast Ethernet at a maximum, ensure that we don't advertise Gigabit Ethernet speed. - In re_stop(), do the inverse of re_init_locked() and enable RXDV gate on RTL8168G and later chips again, matching what Linux does. - With the latter in place, it turns out that WOL previously only worked by accident with RTL8168G and later chips when the interface actually was brought up. This is due to the fact that with these MAC variants, RXDV gate needs be disabled for WOL to work. So in re_setwol() do just that when IFCAP_WOL is requested. - Add preliminary support for RTL8168H and RTL8107E, with the latter being the 10/100-Mbit/s-only variant of the former. Modified: stable/10/sys/dev/re/if_re.c stable/10/sys/dev/rl/if_rlreg.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/re/if_re.c ============================================================================== --- stable/10/sys/dev/re/if_re.c Sun Dec 27 17:33:59 2015 (r292782) +++ stable/10/sys/dev/re/if_re.c Sun Dec 27 17:34:18 2015 (r292783) @@ -237,6 +237,7 @@ static const struct rl_hwrev re_hwrevs[] { RL_HWREV_8168F, RL_8169, "8168F/8111F", RL_JUMBO_MTU_9K}, { RL_HWREV_8168G, RL_8169, "8168G/8111G", RL_JUMBO_MTU_9K}, { RL_HWREV_8168GU, RL_8169, "8168GU/8111GU", RL_JUMBO_MTU_9K}, + { RL_HWREV_8168H, RL_8169, "8168H/8111H", RL_JUMBO_MTU_9K}, { RL_HWREV_8411, RL_8169, "8411", RL_JUMBO_MTU_9K}, { RL_HWREV_8411B, RL_8169, "8411B", RL_JUMBO_MTU_9K}, { 0, 0, NULL, 0 } @@ -633,9 +634,8 @@ re_miibus_statchg(device_t dev) } } /* - * RealTek controllers does not provide any interface to - * Tx/Rx MACs for resolved speed, duplex and flow-control - * parameters. + * RealTek controllers do not provide any interface to the RX/TX + * MACs for resolved speed, duplex and flow-control parameters. */ } @@ -657,7 +657,7 @@ re_set_rxmode(struct rl_softc *sc) rxfilt = RL_RXCFG_CONFIG | RL_RXCFG_RX_INDIV | RL_RXCFG_RX_BROAD; if ((sc->rl_flags & RL_FLAG_EARLYOFF) != 0) rxfilt |= RL_RXCFG_EARLYOFF; - else if ((sc->rl_flags & RL_FLAG_EARLYOFFV2) != 0) + else if ((sc->rl_flags & RL_FLAG_8168G_PLUS) != 0) rxfilt |= RL_RXCFG_EARLYOFFV2; if (ifp->if_flags & (IFF_ALLMULTI | IFF_PROMISC)) { @@ -1204,11 +1204,10 @@ re_attach(device_t dev) struct rl_softc *sc; struct ifnet *ifp; const struct rl_hwrev *hw_rev; + int capmask, error = 0, hwrev, i, msic, msixc, + phy, reg, rid; u_int32_t cap, ctl; - int hwrev; u_int16_t devid, re_did = 0; - int error = 0, i, phy, rid; - int msic, msixc, reg; uint8_t cfg; sc = device_get_softc(dev); @@ -1488,11 +1487,12 @@ re_attach(device_t dev) RL_FLAG_DESCV2 | RL_FLAG_MACSTAT | RL_FLAG_CMDSTOP | RL_FLAG_AUTOPAD | RL_FLAG_JUMBOV2 | RL_FLAG_CMDSTOP_WAIT_TXQ | RL_FLAG_WOL_MANLINK | - RL_FLAG_EARLYOFFV2 | RL_FLAG_RXDV_GATED; + RL_FLAG_8168G_PLUS; break; case RL_HWREV_8168GU: + case RL_HWREV_8168H: if (pci_get_device(dev) == RT_DEVICEID_8101E) { - /* RTL8106EUS */ + /* RTL8106E(US), RTL8107E */ sc->rl_flags |= RL_FLAG_FASTETHER; } else sc->rl_flags |= RL_FLAG_JUMBOV2 | RL_FLAG_WOL_MANLINK; @@ -1500,7 +1500,7 @@ re_attach(device_t dev) sc->rl_flags |= RL_FLAG_PHYWAKE | RL_FLAG_PAR | RL_FLAG_DESCV2 | RL_FLAG_MACSTAT | RL_FLAG_CMDSTOP | RL_FLAG_AUTOPAD | RL_FLAG_CMDSTOP_WAIT_TXQ | - RL_FLAG_EARLYOFFV2 | RL_FLAG_RXDV_GATED; + RL_FLAG_8168G_PLUS; break; case RL_HWREV_8169_8110SB: case RL_HWREV_8169_8110SBL: @@ -1650,8 +1650,11 @@ re_attach(device_t dev) phy = RE_PHYAD_INTERNAL; if (sc->rl_type == RL_8169) phy = 1; + capmask = BMSR_DEFCAPMASK; + if ((sc->rl_flags & RL_FLAG_FASTETHER) != 0) + capmask &= ~BMSR_EXTSTAT; error = mii_attach(dev, &sc->rl_miibus, ifp, re_ifmedia_upd, - re_ifmedia_sts, BMSR_DEFCAPMASK, phy, MII_OFFSET_ANY, MIIF_DOPAUSE); + re_ifmedia_sts, capmask, phy, MII_OFFSET_ANY, MIIF_DOPAUSE); if (error != 0) { device_printf(dev, "attaching PHYs failed\n"); goto fail; @@ -1691,13 +1694,13 @@ re_attach(device_t dev) #ifdef DEV_NETMAP re_netmap_attach(sc); #endif /* DEV_NETMAP */ + #ifdef RE_DIAG /* * Perform hardware diagnostic on the original RTL8169. * Some 32-bit cards were incorrectly wired and would * malfunction if plugged into a 64-bit slot. */ - if (hwrev == RL_HWREV_8169) { error = re_diag(sc); if (error) { @@ -1729,7 +1732,6 @@ re_attach(device_t dev) } fail: - if (error) re_detach(dev); @@ -2935,6 +2937,7 @@ re_start_locked(struct ifnet *ifp) return; } #endif /* DEV_NETMAP */ + if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != IFF_DRV_RUNNING || (sc->rl_flags & RL_FLAG_LINK) == 0) return; @@ -3190,9 +3193,18 @@ re_init_locked(struct rl_softc *sc) CSR_WRITE_4(sc, RL_TXLIST_ADDR_LO, RL_ADDR_LO(sc->rl_ldata.rl_tx_list_addr)); - if ((sc->rl_flags & RL_FLAG_RXDV_GATED) != 0) + if ((sc->rl_flags & RL_FLAG_8168G_PLUS) != 0) { + /* Disable RXDV gate. */ CSR_WRITE_4(sc, RL_MISC, CSR_READ_4(sc, RL_MISC) & ~0x00080000); + } + + /* + * Enable transmit and receive for pre-RTL8168G controllers. + * RX/TX MACs should be enabled before RX/TX configuration. + */ + if ((sc->rl_flags & RL_FLAG_8168G_PLUS) == 0) + CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_TX_ENB | RL_CMD_RX_ENB); /* * Set the initial TX configuration. @@ -3221,9 +3233,11 @@ re_init_locked(struct rl_softc *sc) } /* - * Enable transmit and receive. + * Enable transmit and receive for RTL8168G and later controllers. + * RX/TX MACs should be enabled after RX/TX configuration. */ - CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_TX_ENB | RL_CMD_RX_ENB); + if ((sc->rl_flags & RL_FLAG_8168G_PLUS) != 0) + CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_TX_ENB | RL_CMD_RX_ENB); #ifdef DEVICE_POLLING /* @@ -3579,6 +3593,12 @@ re_stop(struct rl_softc *sc) ~(RL_RXCFG_RX_ALLPHYS | RL_RXCFG_RX_INDIV | RL_RXCFG_RX_MULTI | RL_RXCFG_RX_BROAD)); + if ((sc->rl_flags & RL_FLAG_8168G_PLUS) != 0) { + /* Enable RXDV gate. */ + CSR_WRITE_4(sc, RL_MISC, CSR_READ_4(sc, RL_MISC) | + 0x00080000); + } + if ((sc->rl_flags & RL_FLAG_WAIT_TXPOLL) != 0) { for (i = RL_TIMEOUT; i > 0; i--) { if ((CSR_READ_1(sc, sc->rl_txstart) & @@ -3830,6 +3850,11 @@ re_setwol(struct rl_softc *sc) CSR_READ_1(sc, RL_GPIO) & ~0x01); } if ((ifp->if_capenable & IFCAP_WOL) != 0) { + if ((sc->rl_flags & RL_FLAG_8168G_PLUS) != 0) { + /* Disable RXDV gate. */ + CSR_WRITE_4(sc, RL_MISC, CSR_READ_4(sc, RL_MISC) & + ~0x00080000); + } re_set_rxmode(sc); if ((sc->rl_flags & RL_FLAG_WOL_MANLINK) != 0) re_set_linkspeed(sc); @@ -3942,7 +3967,6 @@ re_add_sysctls(struct rl_softc *sc) sc->rl_int_rx_mod = RL_TIMER_DEFAULT; } } - } static int Modified: stable/10/sys/dev/rl/if_rlreg.h ============================================================================== --- stable/10/sys/dev/rl/if_rlreg.h Sun Dec 27 17:33:59 2015 (r292782) +++ stable/10/sys/dev/rl/if_rlreg.h Sun Dec 27 17:34:18 2015 (r292783) @@ -195,6 +195,7 @@ #define RL_HWREV_8168G 0x4C000000 #define RL_HWREV_8168EP 0x50000000 #define RL_HWREV_8168GU 0x50800000 +#define RL_HWREV_8168H 0x54000000 #define RL_HWREV_8411B 0x5C800000 #define RL_HWREV_8139 0x60000000 #define RL_HWREV_8139A 0x70000000 @@ -930,8 +931,7 @@ struct rl_softc { #define RL_FLAG_CMDSTOP_WAIT_TXQ 0x00008000 #define RL_FLAG_WOL_MANLINK 0x00010000 #define RL_FLAG_EARLYOFF 0x00020000 -#define RL_FLAG_EARLYOFFV2 0x00040000 -#define RL_FLAG_RXDV_GATED 0x00080000 +#define RL_FLAG_8168G_PLUS 0x00040000 #define RL_FLAG_PCIE 0x40000000 #define RL_FLAG_LINK 0x80000000 }; From owner-svn-src-all@freebsd.org Sun Dec 27 17:34:30 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D05D4A5366A; Sun, 27 Dec 2015 17:34:30 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8F04318F8; Sun, 27 Dec 2015 17:34:30 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRHYTuV031971; Sun, 27 Dec 2015 17:34:29 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRHYTYv031969; Sun, 27 Dec 2015 17:34:29 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512271734.tBRHYTYv031969@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 17:34:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292784 - in stable/9/sys/dev: re rl X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 17:34:31 -0000 Author: marius Date: Sun Dec 27 17:34:29 2015 New Revision: 292784 URL: https://svnweb.freebsd.org/changeset/base/292784 Log: MFC: r287768, r290566, r290946 - Although it doesn't make a whole lot of sense to enable RX and TX before their initial configuration is done, it turns out that r281337 (MFCed to stable/9 in r285178) has the inverse effect on some older chips. Moreover, as with newer chips before, two chips seemingly identical according to their MAC revisions may behave differently in this regard, with most working but a few not, making changes extremely hard to test. Closer inspection of the corresponding Linux code suggests that RX and TX should only be enabled after their initial configuration with RTL8168G and later chips, i. e. RTL8106E{,US}, RTL8107E, as well as RTL8168{EP,G,GU,H}, so limit the new code path to these. [1] - Distinguish between RTL8168H and RTL8107E, with the latter being the 10/100-Mbit/s-only variant of the former. - For MAC variants that can only do Fast Ethernet at a maximum, ensure that we don't advertise Gigabit Ethernet speed. - In re_stop(), do the inverse of re_init_locked() and enable RXDV gate on RTL8168G and later chips again, matching what Linux does. - With the latter in place, it turns out that WOL previously only worked by accident with RTL8168G and later chips when the interface actually was brought up. This is due to the fact that with these MAC variants, RXDV gate needs be disabled for WOL to work. So in re_setwol() do just that when IFCAP_WOL is requested. - Add preliminary support for RTL8168H and RTL8107E, with the latter being the 10/100-Mbit/s-only variant of the former. Modified: stable/9/sys/dev/re/if_re.c stable/9/sys/dev/rl/if_rlreg.h Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/re/if_re.c ============================================================================== --- stable/9/sys/dev/re/if_re.c Sun Dec 27 17:34:18 2015 (r292783) +++ stable/9/sys/dev/re/if_re.c Sun Dec 27 17:34:29 2015 (r292784) @@ -237,6 +237,7 @@ static const struct rl_hwrev re_hwrevs[] { RL_HWREV_8168F, RL_8169, "8168F/8111F", RL_JUMBO_MTU_9K}, { RL_HWREV_8168G, RL_8169, "8168G/8111G", RL_JUMBO_MTU_9K}, { RL_HWREV_8168GU, RL_8169, "8168GU/8111GU", RL_JUMBO_MTU_9K}, + { RL_HWREV_8168H, RL_8169, "8168H/8111H", RL_JUMBO_MTU_9K}, { RL_HWREV_8411, RL_8169, "8411", RL_JUMBO_MTU_9K}, { RL_HWREV_8411B, RL_8169, "8411B", RL_JUMBO_MTU_9K}, { 0, 0, NULL, 0 } @@ -633,9 +634,8 @@ re_miibus_statchg(device_t dev) } } /* - * RealTek controllers does not provide any interface to - * Tx/Rx MACs for resolved speed, duplex and flow-control - * parameters. + * RealTek controllers do not provide any interface to the RX/TX + * MACs for resolved speed, duplex and flow-control parameters. */ } @@ -657,7 +657,7 @@ re_set_rxmode(struct rl_softc *sc) rxfilt = RL_RXCFG_CONFIG | RL_RXCFG_RX_INDIV | RL_RXCFG_RX_BROAD; if ((sc->rl_flags & RL_FLAG_EARLYOFF) != 0) rxfilt |= RL_RXCFG_EARLYOFF; - else if ((sc->rl_flags & RL_FLAG_EARLYOFFV2) != 0) + else if ((sc->rl_flags & RL_FLAG_8168G_PLUS) != 0) rxfilt |= RL_RXCFG_EARLYOFFV2; if (ifp->if_flags & (IFF_ALLMULTI | IFF_PROMISC)) { @@ -1204,11 +1204,10 @@ re_attach(device_t dev) struct rl_softc *sc; struct ifnet *ifp; const struct rl_hwrev *hw_rev; + int capmask, error = 0, hwrev, i, msic, msixc, + phy, reg, rid; u_int32_t cap, ctl; - int hwrev; u_int16_t devid, re_did = 0; - int error = 0, i, phy, rid; - int msic, msixc, reg; uint8_t cfg; sc = device_get_softc(dev); @@ -1488,11 +1487,12 @@ re_attach(device_t dev) RL_FLAG_DESCV2 | RL_FLAG_MACSTAT | RL_FLAG_CMDSTOP | RL_FLAG_AUTOPAD | RL_FLAG_JUMBOV2 | RL_FLAG_CMDSTOP_WAIT_TXQ | RL_FLAG_WOL_MANLINK | - RL_FLAG_EARLYOFFV2 | RL_FLAG_RXDV_GATED; + RL_FLAG_8168G_PLUS; break; case RL_HWREV_8168GU: + case RL_HWREV_8168H: if (pci_get_device(dev) == RT_DEVICEID_8101E) { - /* RTL8106EUS */ + /* RTL8106E(US), RTL8107E */ sc->rl_flags |= RL_FLAG_FASTETHER; } else sc->rl_flags |= RL_FLAG_JUMBOV2 | RL_FLAG_WOL_MANLINK; @@ -1500,7 +1500,7 @@ re_attach(device_t dev) sc->rl_flags |= RL_FLAG_PHYWAKE | RL_FLAG_PAR | RL_FLAG_DESCV2 | RL_FLAG_MACSTAT | RL_FLAG_CMDSTOP | RL_FLAG_AUTOPAD | RL_FLAG_CMDSTOP_WAIT_TXQ | - RL_FLAG_EARLYOFFV2 | RL_FLAG_RXDV_GATED; + RL_FLAG_8168G_PLUS; break; case RL_HWREV_8169_8110SB: case RL_HWREV_8169_8110SBL: @@ -1650,8 +1650,11 @@ re_attach(device_t dev) phy = RE_PHYAD_INTERNAL; if (sc->rl_type == RL_8169) phy = 1; + capmask = BMSR_DEFCAPMASK; + if ((sc->rl_flags & RL_FLAG_FASTETHER) != 0) + capmask &= ~BMSR_EXTSTAT; error = mii_attach(dev, &sc->rl_miibus, ifp, re_ifmedia_upd, - re_ifmedia_sts, BMSR_DEFCAPMASK, phy, MII_OFFSET_ANY, MIIF_DOPAUSE); + re_ifmedia_sts, capmask, phy, MII_OFFSET_ANY, MIIF_DOPAUSE); if (error != 0) { device_printf(dev, "attaching PHYs failed\n"); goto fail; @@ -1691,13 +1694,13 @@ re_attach(device_t dev) #ifdef DEV_NETMAP re_netmap_attach(sc); #endif /* DEV_NETMAP */ + #ifdef RE_DIAG /* * Perform hardware diagnostic on the original RTL8169. * Some 32-bit cards were incorrectly wired and would * malfunction if plugged into a 64-bit slot. */ - if (hwrev == RL_HWREV_8169) { error = re_diag(sc); if (error) { @@ -1729,7 +1732,6 @@ re_attach(device_t dev) } fail: - if (error) re_detach(dev); @@ -2935,6 +2937,7 @@ re_start_locked(struct ifnet *ifp) return; } #endif /* DEV_NETMAP */ + if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != IFF_DRV_RUNNING || (sc->rl_flags & RL_FLAG_LINK) == 0) return; @@ -3190,9 +3193,18 @@ re_init_locked(struct rl_softc *sc) CSR_WRITE_4(sc, RL_TXLIST_ADDR_LO, RL_ADDR_LO(sc->rl_ldata.rl_tx_list_addr)); - if ((sc->rl_flags & RL_FLAG_RXDV_GATED) != 0) + if ((sc->rl_flags & RL_FLAG_8168G_PLUS) != 0) { + /* Disable RXDV gate. */ CSR_WRITE_4(sc, RL_MISC, CSR_READ_4(sc, RL_MISC) & ~0x00080000); + } + + /* + * Enable transmit and receive for pre-RTL8168G controllers. + * RX/TX MACs should be enabled before RX/TX configuration. + */ + if ((sc->rl_flags & RL_FLAG_8168G_PLUS) == 0) + CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_TX_ENB | RL_CMD_RX_ENB); /* * Set the initial TX configuration. @@ -3221,9 +3233,11 @@ re_init_locked(struct rl_softc *sc) } /* - * Enable transmit and receive. + * Enable transmit and receive for RTL8168G and later controllers. + * RX/TX MACs should be enabled after RX/TX configuration. */ - CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_TX_ENB | RL_CMD_RX_ENB); + if ((sc->rl_flags & RL_FLAG_8168G_PLUS) != 0) + CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_TX_ENB | RL_CMD_RX_ENB); #ifdef DEVICE_POLLING /* @@ -3579,6 +3593,12 @@ re_stop(struct rl_softc *sc) ~(RL_RXCFG_RX_ALLPHYS | RL_RXCFG_RX_INDIV | RL_RXCFG_RX_MULTI | RL_RXCFG_RX_BROAD)); + if ((sc->rl_flags & RL_FLAG_8168G_PLUS) != 0) { + /* Enable RXDV gate. */ + CSR_WRITE_4(sc, RL_MISC, CSR_READ_4(sc, RL_MISC) | + 0x00080000); + } + if ((sc->rl_flags & RL_FLAG_WAIT_TXPOLL) != 0) { for (i = RL_TIMEOUT; i > 0; i--) { if ((CSR_READ_1(sc, sc->rl_txstart) & @@ -3830,6 +3850,11 @@ re_setwol(struct rl_softc *sc) CSR_READ_1(sc, RL_GPIO) & ~0x01); } if ((ifp->if_capenable & IFCAP_WOL) != 0) { + if ((sc->rl_flags & RL_FLAG_8168G_PLUS) != 0) { + /* Disable RXDV gate. */ + CSR_WRITE_4(sc, RL_MISC, CSR_READ_4(sc, RL_MISC) & + ~0x00080000); + } re_set_rxmode(sc); if ((sc->rl_flags & RL_FLAG_WOL_MANLINK) != 0) re_set_linkspeed(sc); @@ -3942,7 +3967,6 @@ re_add_sysctls(struct rl_softc *sc) sc->rl_int_rx_mod = RL_TIMER_DEFAULT; } } - } static int Modified: stable/9/sys/dev/rl/if_rlreg.h ============================================================================== --- stable/9/sys/dev/rl/if_rlreg.h Sun Dec 27 17:34:18 2015 (r292783) +++ stable/9/sys/dev/rl/if_rlreg.h Sun Dec 27 17:34:29 2015 (r292784) @@ -195,6 +195,7 @@ #define RL_HWREV_8168G 0x4C000000 #define RL_HWREV_8168EP 0x50000000 #define RL_HWREV_8168GU 0x50800000 +#define RL_HWREV_8168H 0x54000000 #define RL_HWREV_8411B 0x5C800000 #define RL_HWREV_8139 0x60000000 #define RL_HWREV_8139A 0x70000000 @@ -930,8 +931,7 @@ struct rl_softc { #define RL_FLAG_CMDSTOP_WAIT_TXQ 0x00008000 #define RL_FLAG_WOL_MANLINK 0x00010000 #define RL_FLAG_EARLYOFF 0x00020000 -#define RL_FLAG_EARLYOFFV2 0x00040000 -#define RL_FLAG_RXDV_GATED 0x00080000 +#define RL_FLAG_8168G_PLUS 0x00040000 #define RL_FLAG_PCIE 0x40000000 #define RL_FLAG_LINK 0x80000000 }; From owner-svn-src-all@freebsd.org Sun Dec 27 17:51:11 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F792A53AF5; Sun, 27 Dec 2015 17:51:11 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3A7E41FA5; Sun, 27 Dec 2015 17:51:11 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRHpAan036232; Sun, 27 Dec 2015 17:51:10 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRHpA2Q036231; Sun, 27 Dec 2015 17:51:10 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512271751.tBRHpA2Q036231@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 17:51:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292785 - stable/10/sys/sparc64/ebus X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 17:51:11 -0000 Author: marius Date: Sun Dec 27 17:51:10 2015 New Revision: 292785 URL: https://svnweb.freebsd.org/changeset/base/292785 Log: MFC: r287767 - Sanity check that the parent ranges given in the "ranges" property of PCI-EBus-bridges actually match the BARs as specified in and required by [1, p. 113 f.]. Doing so earlier would have simplified diagnosing a bug in QEMU/OpenBIOS getting the mapping of child addresses wrong, which still needs to be fixed there. In theory, we could try to change the BARs accordingly if we hit this problem. However, at least with real machines changing the decoding likely won't work, especially if the PCI-EBus-bridge is beneath an APB one. So implementing such functionality generally is rather pointless. - Actually change the allocation type of EBus resources if they change from SYS_RES_MEMORY to SYS_RES_IOPORT when mapping them to PCI ranges in ebus_alloc_resource() and passing them up to bus_activate_resource(9). This may happen with the QEMU/OpenBIOS PCI-EBus-bridge but not real ones. Still, this is only cleans up the code and the result of resource allocation and activation is unchanged. - Change the remainder of printf(9) to device_printf(9) calls and canonicalize their wording. Peripheral Component Interconnect Input Output Controller, Part No.: 802-7837-01, Sun Microelectronics, March 1997 [1] Modified: stable/10/sys/sparc64/ebus/ebus.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/sparc64/ebus/ebus.c ============================================================================== --- stable/10/sys/sparc64/ebus/ebus.c Sun Dec 27 17:34:29 2015 (r292784) +++ stable/10/sys/sparc64/ebus/ebus.c Sun Dec 27 17:51:10 2015 (r292785) @@ -69,7 +69,6 @@ __FBSDID("$FreeBSD$"); #include #include #include - #include #include @@ -294,7 +293,7 @@ ebus_nexus_attach(device_t dev) sc->sc_nrange = OF_getprop_alloc(node, "ranges", sizeof(struct ebus_nexus_ranges), &sc->sc_range); if (sc->sc_nrange == -1) { - printf("%s: could not get ranges property\n", __func__); + device_printf(dev, "could not get ranges property\n"); return (ENXIO); } return (ebus_attach(dev, sc, node)); @@ -306,6 +305,7 @@ ebus_pci_attach(device_t dev) struct ebus_softc *sc; struct ebus_rinfo *eri; struct resource *res; + struct isa_ranges *range; phandle_t node; int i, rnum, rid; @@ -322,7 +322,7 @@ ebus_pci_attach(device_t dev) sc->sc_nrange = OF_getprop_alloc(node, "ranges", sizeof(struct isa_ranges), &sc->sc_range); if (sc->sc_nrange == -1) { - printf("%s: could not get ranges property\n", __func__); + device_printf(dev, "could not get ranges property\n"); return (ENXIO); } @@ -332,21 +332,34 @@ ebus_pci_attach(device_t dev) /* For every range, there must be a matching resource. */ for (rnum = 0; rnum < sc->sc_nrange; rnum++) { eri = &sc->sc_rinfo[rnum]; - eri->eri_rtype = ofw_isa_range_restype( - &((struct isa_ranges *)sc->sc_range)[rnum]); + range = &((struct isa_ranges *)sc->sc_range)[rnum]; + eri->eri_rtype = ofw_isa_range_restype(range); rid = PCIR_BAR(rnum); res = bus_alloc_resource_any(dev, eri->eri_rtype, &rid, RF_ACTIVE); if (res == NULL) { - printf("%s: failed to allocate range resource!\n", - __func__); + device_printf(dev, + "could not allocate range resource %d\n", rnum); + goto fail; + } + if (rman_get_start(res) != ISA_RANGE_PHYS(range)) { + device_printf(dev, + "mismatch in start of range %d (0x%lx/0x%lx)\n", + rnum, rman_get_start(res), ISA_RANGE_PHYS(range)); + goto fail; + } + if (rman_get_size(res) != range->size) { + device_printf(dev, + "mismatch in size of range %d (0x%lx/0x%x)\n", + rnum, rman_get_size(res), range->size); goto fail; } eri->eri_res = res; eri->eri_rman.rm_type = RMAN_ARRAY; eri->eri_rman.rm_descr = "EBus range"; if (rman_init_from_resource(&eri->eri_rman, res) != 0) { - printf("%s: failed to initialize rman!", __func__); + device_printf(dev, + "could not initialize rman for range %d", rnum); goto fail; } } @@ -452,7 +465,7 @@ ebus_alloc_resource(device_t bus, device * Map EBus ranges to PCI ranges. This may include * changing the allocation type. */ - (void)ofw_isa_range_map(sc->sc_range, sc->sc_nrange, + type = ofw_isa_range_map(sc->sc_range, sc->sc_nrange, &start, &end, &ridx); eri = &sc->sc_rinfo[ridx]; res = rman_reserve_resource(&eri->eri_rman, start, @@ -507,7 +520,7 @@ ebus_activate_resource(device_t bus, dev int i, rv; sc = device_get_softc(bus); - if ((sc->sc_flags & EBUS_PCI) != 0 && type == SYS_RES_MEMORY) { + if ((sc->sc_flags & EBUS_PCI) != 0 && type != SYS_RES_IRQ) { for (i = 0; i < sc->sc_nrange; i++) { eri = &sc->sc_rinfo[i]; if (rman_is_region_manager(res, &eri->eri_rman) != 0) { @@ -550,7 +563,7 @@ ebus_release_resource(device_t bus, devi passthrough = (device_get_parent(child) != bus); rl = BUS_GET_RESOURCE_LIST(bus, child); sc = device_get_softc(bus); - if ((sc->sc_flags & EBUS_PCI) != 0 && type == SYS_RES_MEMORY) { + if ((sc->sc_flags & EBUS_PCI) != 0 && type != SYS_RES_IRQ) { if ((rman_get_flags(res) & RF_ACTIVE) != 0 ){ rv = bus_deactivate_resource(child, type, rid, res); if (rv != 0) From owner-svn-src-all@freebsd.org Sun Dec 27 17:53:40 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D6C0AA53BAA; Sun, 27 Dec 2015 17:53:40 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8B1E813CF; Sun, 27 Dec 2015 17:53:40 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRHrdMc038331; Sun, 27 Dec 2015 17:53:39 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRHrd9l038330; Sun, 27 Dec 2015 17:53:39 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201512271753.tBRHrd9l038330@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sun, 27 Dec 2015 17:53:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292786 - stable/10/bin/sh X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 17:53:40 -0000 Author: jilles Date: Sun Dec 27 17:53:39 2015 New Revision: 292786 URL: https://svnweb.freebsd.org/changeset/base/292786 Log: MFC r292517: sh/mknodes: Close files and check for errors when writing. This is a build tool only and does not affect run time. PR: 204951 Modified: stable/10/bin/sh/mknodes.c Directory Properties: stable/10/ (props changed) Modified: stable/10/bin/sh/mknodes.c ============================================================================== --- stable/10/bin/sh/mknodes.c Sun Dec 27 17:51:10 2015 (r292785) +++ stable/10/bin/sh/mknodes.c Sun Dec 27 17:53:39 2015 (r292786) @@ -89,7 +89,6 @@ static struct str *nodestr[MAXTYPES]; /* static int nstr; /* number of structures */ static struct str str[MAXTYPES]; /* the structures */ static struct str *curstr; /* current structure */ -static FILE *infp; static char line[1024]; static int linno; static char *linep; @@ -102,7 +101,7 @@ static void outfunc(FILE *, int); static void indent(int, FILE *); static int nextfield(char *); static void skipbl(void); -static int readline(void); +static int readline(FILE *); static void error(const char *, ...) __printf0like(1, 2) __dead2; static char *savestr(const char *); @@ -110,17 +109,19 @@ static char *savestr(const char *); int main(int argc, char *argv[]) { + FILE *infp; + if (argc != 3) error("usage: mknodes file"); - infp = stdin; if ((infp = fopen(argv[1], "r")) == NULL) error("Can't open %s: %s", argv[1], strerror(errno)); - while (readline()) { + while (readline(infp)) { if (line[0] == ' ' || line[0] == '\t') parsefield(); else if (line[0] != '\0') parsenode(); } + fclose(infp); output(argv[2]); exit(0); } @@ -253,6 +254,10 @@ output(char *file) fputs("union node *getfuncnode(struct funcdef *);\n", hfile); fputs("void reffunc(struct funcdef *);\n", hfile); fputs("void unreffunc(struct funcdef *);\n", hfile); + if (ferror(hfile)) + error("Can't write to nodes.h"); + if (fclose(hfile)) + error("Can't close nodes.h"); fputs(writer, cfile); while (fgets(line, sizeof line, patfile) != NULL) { @@ -266,6 +271,11 @@ output(char *file) else fputs(line, cfile); } + fclose(patfile); + if (ferror(cfile)) + error("Can't write to nodes.c"); + if (fclose(cfile)) + error("Can't close nodes.c"); } @@ -401,7 +411,7 @@ skipbl(void) static int -readline(void) +readline(FILE *infp) { char *p; From owner-svn-src-all@freebsd.org Sun Dec 27 17:58:59 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D303A53CB5; Sun, 27 Dec 2015 17:58:59 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 18CB7176B; Sun, 27 Dec 2015 17:58:59 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRHwwL5038758; Sun, 27 Dec 2015 17:58:58 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRHwwWN038757; Sun, 27 Dec 2015 17:58:58 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512271758.tBRHwwWN038757@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 17:58:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292787 - stable/10/sys/sparc64/include X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 17:58:59 -0000 Author: marius Date: Sun Dec 27 17:58:58 2015 New Revision: 292787 URL: https://svnweb.freebsd.org/changeset/base/292787 Log: MFC: r287728 Merge r286374 from x86: Formally pair store_rel(&smp_started) with load_acq(&smp_started). Similarly to x86, this change is mostly a NOP due to the kernel being run in total store order. Modified: stable/10/sys/sparc64/include/smp.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/sparc64/include/smp.h ============================================================================== --- stable/10/sys/sparc64/include/smp.h Sun Dec 27 17:53:39 2015 (r292786) +++ stable/10/sys/sparc64/include/smp.h Sun Dec 27 17:58:58 2015 (r292787) @@ -47,6 +47,7 @@ #include #include +#include #include #include @@ -143,7 +144,7 @@ ipi_all_but_self(u_int ipi) { cpuset_t cpus; - if (__predict_false(smp_started == 0)) + if (__predict_false(atomic_load_acq_int(&smp_started) == 0)) return; cpus = all_cpus; sched_pin(); @@ -158,7 +159,8 @@ static __inline void ipi_selected(cpuset_t cpus, u_int ipi) { - if (__predict_false(smp_started == 0 || CPU_EMPTY(&cpus))) + if (__predict_false(atomic_load_acq_int(&smp_started) == 0 || + CPU_EMPTY(&cpus))) return; mtx_lock_spin(&ipi_mtx); cpu_ipi_selected(cpus, 0, (u_long)tl_ipi_level, ipi); @@ -169,7 +171,7 @@ static __inline void ipi_cpu(int cpu, u_int ipi) { - if (__predict_false(smp_started == 0)) + if (__predict_false(atomic_load_acq_int(&smp_started) == 0)) return; mtx_lock_spin(&ipi_mtx); cpu_ipi_single(cpu, 0, (u_long)tl_ipi_level, ipi); @@ -183,7 +185,7 @@ ipi_dcache_page_inval(void *func, vm_pad { struct ipi_cache_args *ica; - if (__predict_false(smp_started == 0)) + if (__predict_false(atomic_load_acq_int(&smp_started) == 0)) return (NULL); sched_pin(); ica = &ipi_cache_args; @@ -200,7 +202,7 @@ ipi_icache_page_inval(void *func, vm_pad { struct ipi_cache_args *ica; - if (__predict_false(smp_started == 0)) + if (__predict_false(atomic_load_acq_int(&smp_started) == 0)) return (NULL); sched_pin(); ica = &ipi_cache_args; @@ -217,7 +219,7 @@ ipi_rd(u_int cpu, void *func, u_long *va { struct ipi_rd_args *ira; - if (__predict_false(smp_started == 0)) + if (__predict_false(atomic_load_acq_int(&smp_started) == 0)) return (NULL); sched_pin(); ira = &ipi_rd_args; @@ -234,7 +236,7 @@ ipi_tlb_context_demap(struct pmap *pm) struct ipi_tlb_args *ita; cpuset_t cpus; - if (__predict_false(smp_started == 0)) + if (__predict_false(atomic_load_acq_int(&smp_started) == 0)) return (NULL); sched_pin(); cpus = pm->pm_active; @@ -259,7 +261,7 @@ ipi_tlb_page_demap(struct pmap *pm, vm_o struct ipi_tlb_args *ita; cpuset_t cpus; - if (__predict_false(smp_started == 0)) + if (__predict_false(atomic_load_acq_int(&smp_started) == 0)) return (NULL); sched_pin(); cpus = pm->pm_active; @@ -284,7 +286,7 @@ ipi_tlb_range_demap(struct pmap *pm, vm_ struct ipi_tlb_args *ita; cpuset_t cpus; - if (__predict_false(smp_started == 0)) + if (__predict_false(atomic_load_acq_int(&smp_started) == 0)) return (NULL); sched_pin(); cpus = pm->pm_active; From owner-svn-src-all@freebsd.org Sun Dec 27 18:12:14 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86F82A52104; Sun, 27 Dec 2015 18:12:14 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 521C51C9E; Sun, 27 Dec 2015 18:12:14 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRICDWo044567; Sun, 27 Dec 2015 18:12:13 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRICD3A044563; Sun, 27 Dec 2015 18:12:13 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201512271812.tBRICD3A044563@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Sun, 27 Dec 2015 18:12:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292788 - in head/sys: geom/part sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 18:12:14 -0000 Author: allanjude Date: Sun Dec 27 18:12:13 2015 New Revision: 292788 URL: https://svnweb.freebsd.org/changeset/base/292788 Log: Add some additional GPT partition types 4 ChromeOS GPT types 2 Microsoft partition types the new OpenBSD partition type Approved by: marcel (mentor) MFC after: 1 week Relnotes: yes Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D3841 Modified: head/sys/geom/part/g_part.c head/sys/geom/part/g_part.h head/sys/geom/part/g_part_gpt.c head/sys/sys/gpt.h Modified: head/sys/geom/part/g_part.c ============================================================================== --- head/sys/geom/part/g_part.c Sun Dec 27 17:58:58 2015 (r292787) +++ head/sys/geom/part/g_part.c Sun Dec 27 18:12:13 2015 (r292788) @@ -78,6 +78,19 @@ struct g_part_alias_list { { "apple-tv-recovery", G_PART_ALIAS_APPLE_TV_RECOVERY }, { "apple-ufs", G_PART_ALIAS_APPLE_UFS }, { "bios-boot", G_PART_ALIAS_BIOS_BOOT }, + { "chromeos-firmware", G_PART_ALIAS_CHROMEOS_FIRMWARE }, + { "chromeos-kernel", G_PART_ALIAS_CHROMEOS_KERNEL }, + { "chromeos-reserved", G_PART_ALIAS_CHROMEOS_RESERVED }, + { "chromeos-root", G_PART_ALIAS_CHROMEOS_ROOT }, + { "dragonfly-ccd", G_PART_ALIAS_DFBSD_CCD }, + { "dragonfly-hammer", G_PART_ALIAS_DFBSD_HAMMER }, + { "dragonfly-hammer2", G_PART_ALIAS_DFBSD_HAMMER2 }, + { "dragonfly-label32", G_PART_ALIAS_DFBSD }, + { "dragonfly-label64", G_PART_ALIAS_DFBSD64 }, + { "dragonfly-legacy", G_PART_ALIAS_DFBSD_LEGACY }, + { "dragonfly-swap", G_PART_ALIAS_DFBSD_SWAP }, + { "dragonfly-ufs", G_PART_ALIAS_DFBSD_UFS }, + { "dragonfly-vinum", G_PART_ALIAS_DFBSD_VINUM }, { "ebr", G_PART_ALIAS_EBR }, { "efi", G_PART_ALIAS_EFI }, { "fat16", G_PART_ALIAS_MS_FAT16 }, @@ -97,28 +110,22 @@ struct g_part_alias_list { { "ms-basic-data", G_PART_ALIAS_MS_BASIC_DATA }, { "ms-ldm-data", G_PART_ALIAS_MS_LDM_DATA }, { "ms-ldm-metadata", G_PART_ALIAS_MS_LDM_METADATA }, + { "ms-recovery", G_PART_ALIAS_MS_RECOVERY }, { "ms-reserved", G_PART_ALIAS_MS_RESERVED }, - { "ntfs", G_PART_ALIAS_MS_NTFS }, + { "ms-spaces", G_PART_ALIAS_MS_SPACES }, { "netbsd-ccd", G_PART_ALIAS_NETBSD_CCD }, { "netbsd-cgd", G_PART_ALIAS_NETBSD_CGD }, { "netbsd-ffs", G_PART_ALIAS_NETBSD_FFS }, { "netbsd-lfs", G_PART_ALIAS_NETBSD_LFS }, { "netbsd-raid", G_PART_ALIAS_NETBSD_RAID }, { "netbsd-swap", G_PART_ALIAS_NETBSD_SWAP }, + { "ntfs", G_PART_ALIAS_MS_NTFS }, + { "openbsd-data", G_PART_ALIAS_OPENBSD_DATA }, + { "prep-boot", G_PART_ALIAS_PREP_BOOT }, + { "vmware-reserved", G_PART_ALIAS_VMRESERVED }, { "vmware-vmfs", G_PART_ALIAS_VMFS }, { "vmware-vmkdiag", G_PART_ALIAS_VMKDIAG }, - { "vmware-reserved", G_PART_ALIAS_VMRESERVED }, { "vmware-vsanhdr", G_PART_ALIAS_VMVSANHDR }, - { "dragonfly-label32", G_PART_ALIAS_DFBSD }, - { "dragonfly-label64", G_PART_ALIAS_DFBSD64 }, - { "dragonfly-swap", G_PART_ALIAS_DFBSD_SWAP }, - { "dragonfly-ufs", G_PART_ALIAS_DFBSD_UFS }, - { "dragonfly-vinum", G_PART_ALIAS_DFBSD_VINUM }, - { "dragonfly-ccd", G_PART_ALIAS_DFBSD_CCD }, - { "dragonfly-legacy", G_PART_ALIAS_DFBSD_LEGACY }, - { "dragonfly-hammer", G_PART_ALIAS_DFBSD_HAMMER }, - { "dragonfly-hammer2", G_PART_ALIAS_DFBSD_HAMMER2 }, - { "prep-boot", G_PART_ALIAS_PREP_BOOT }, }; SYSCTL_DECL(_kern_geom); Modified: head/sys/geom/part/g_part.h ============================================================================== --- head/sys/geom/part/g_part.h Sun Dec 27 17:58:58 2015 (r292787) +++ head/sys/geom/part/g_part.h Sun Dec 27 18:12:13 2015 (r292788) @@ -37,12 +37,28 @@ enum g_part_alias { G_PART_ALIAS_APPLE_BOOT, /* An Apple boot partition entry. */ + G_PART_ALIAS_APPLE_CORE_STORAGE,/* An Apple Core Storage partition. */ G_PART_ALIAS_APPLE_HFS, /* An HFS+ file system entry. */ G_PART_ALIAS_APPLE_LABEL, /* An Apple label partition entry. */ G_PART_ALIAS_APPLE_RAID, /* An Apple RAID partition entry. */ G_PART_ALIAS_APPLE_RAID_OFFLINE,/* An Apple RAID (offline) part entry.*/ G_PART_ALIAS_APPLE_TV_RECOVERY, /* An Apple TV recovery part entry. */ G_PART_ALIAS_APPLE_UFS, /* An Apple UFS partition entry. */ + G_PART_ALIAS_BIOS_BOOT, /* A GRUB 2 boot partition entry. */ + G_PART_ALIAS_CHROMEOS_FIRMWARE, /* A ChromeOS firmware part. entry. */ + G_PART_ALIAS_CHROMEOS_KERNEL, /* A ChromeOS Kernel part. entry. */ + G_PART_ALIAS_CHROMEOS_RESERVED, /* ChromeOS. Reserved for future use. */ + G_PART_ALIAS_CHROMEOS_ROOT, /* A ChromeOS root part. entry. */ + G_PART_ALIAS_DFBSD, /* A DfBSD label32 partition entry */ + G_PART_ALIAS_DFBSD64, /* A DfBSD label64 partition entry */ + G_PART_ALIAS_DFBSD_CCD, /* A DfBSD CCD partition entry */ + G_PART_ALIAS_DFBSD_HAMMER, /* A DfBSD HAMMER FS partition entry */ + G_PART_ALIAS_DFBSD_HAMMER2, /* A DfBSD HAMMER2 FS partition entry */ + G_PART_ALIAS_DFBSD_LEGACY, /* A DfBSD legacy partition entry */ + G_PART_ALIAS_DFBSD_SWAP, /* A DfBSD swap partition entry */ + G_PART_ALIAS_DFBSD_UFS, /* A DfBSD UFS partition entry */ + G_PART_ALIAS_DFBSD_VINUM, /* A DfBSD Vinum partition entry */ + G_PART_ALIAS_EBR, /* A EBR partition entry. */ G_PART_ALIAS_EFI, /* A EFI system partition entry. */ G_PART_ALIAS_FREEBSD, /* A BSD labeled partition entry. */ G_PART_ALIAS_FREEBSD_BOOT, /* A FreeBSD boot partition entry. */ @@ -51,41 +67,32 @@ enum g_part_alias { G_PART_ALIAS_FREEBSD_UFS, /* A UFS/UFS2 file system entry. */ G_PART_ALIAS_FREEBSD_VINUM, /* A Vinum partition entry. */ G_PART_ALIAS_FREEBSD_ZFS, /* A ZFS file system entry. */ - G_PART_ALIAS_MBR, /* A MBR (extended) partition entry. */ G_PART_ALIAS_LINUX_DATA, /* A Linux data partition entry. */ G_PART_ALIAS_LINUX_LVM, /* A Linux LVM partition entry. */ G_PART_ALIAS_LINUX_RAID, /* A Linux RAID partition entry. */ G_PART_ALIAS_LINUX_SWAP, /* A Linux swap partition entry. */ + G_PART_ALIAS_MBR, /* A MBR (extended) partition entry. */ G_PART_ALIAS_MS_BASIC_DATA, /* A Microsoft Data part. entry. */ + G_PART_ALIAS_MS_FAT16, /* A Microsoft FAT16 partition entry. */ + G_PART_ALIAS_MS_FAT32, /* A Microsoft FAT32 partition entry. */ G_PART_ALIAS_MS_LDM_DATA, /* A Microsoft LDM Data part. entry. */ G_PART_ALIAS_MS_LDM_METADATA, /* A Microsoft LDM Metadata entry. */ - G_PART_ALIAS_MS_RESERVED, /* A Microsoft Reserved part. entry. */ G_PART_ALIAS_MS_NTFS, /* A Microsoft NTFS partition entry */ + G_PART_ALIAS_MS_RECOVERY, /* A Microsoft recovery part. entry. */ + G_PART_ALIAS_MS_RESERVED, /* A Microsoft Reserved part. entry. */ + G_PART_ALIAS_MS_SPACES, /* A Microsoft Spaces part. entry. */ G_PART_ALIAS_NETBSD_CCD, /* A NetBSD CCD partition entry. */ G_PART_ALIAS_NETBSD_CGD, /* A NetBSD CGD partition entry. */ G_PART_ALIAS_NETBSD_FFS, /* A NetBSD FFS partition entry. */ + G_PART_ALIAS_NETBSD_LFS, /* A NetBSD LFS partition entry. */ G_PART_ALIAS_NETBSD_RAID, /* A NetBSD RAID partition entry. */ G_PART_ALIAS_NETBSD_SWAP, /* A NetBSD swap partition entry. */ - G_PART_ALIAS_NETBSD_LFS, /* A NetBSD LFS partition entry. */ - G_PART_ALIAS_EBR, /* A EBR partition entry. */ - G_PART_ALIAS_MS_FAT16, /* A Microsoft FAT16 partition entry. */ - G_PART_ALIAS_MS_FAT32, /* A Microsoft FAT32 partition entry. */ - G_PART_ALIAS_BIOS_BOOT, /* A GRUB 2 boot partition entry. */ + G_PART_ALIAS_OPENBSD_DATA, /* An OpenBSD data partition entry. */ + G_PART_ALIAS_PREP_BOOT, /* A PREP/CHRP boot partition entry. */ G_PART_ALIAS_VMFS, /* A VMware VMFS partition entry */ G_PART_ALIAS_VMKDIAG, /* A VMware vmkDiagnostic partition entry */ G_PART_ALIAS_VMRESERVED, /* A VMware reserved partition entry */ G_PART_ALIAS_VMVSANHDR, /* A VMware vSAN header partition entry */ - G_PART_ALIAS_DFBSD, /* A DfBSD label32 partition entry */ - G_PART_ALIAS_DFBSD64, /* A DfBSD label64 partition entry */ - G_PART_ALIAS_DFBSD_SWAP, /* A DfBSD swap partition entry */ - G_PART_ALIAS_DFBSD_UFS, /* A DfBSD UFS partition entry */ - G_PART_ALIAS_DFBSD_VINUM, /* A DfBSD Vinum partition entry */ - G_PART_ALIAS_DFBSD_CCD, /* A DfBSD CCD partition entry */ - G_PART_ALIAS_DFBSD_LEGACY, /* A DfBSD legacy partition entry */ - G_PART_ALIAS_DFBSD_HAMMER, /* A DfBSD HAMMER FS partition entry */ - G_PART_ALIAS_DFBSD_HAMMER2, /* A DfBSD HAMMER2 FS partition entry */ - G_PART_ALIAS_PREP_BOOT, /* A PREP/CHRP boot partition entry. */ - G_PART_ALIAS_APPLE_CORE_STORAGE,/* An Apple Core Storage partition. */ /* Keep the following last */ G_PART_ALIAS_COUNT }; Modified: head/sys/geom/part/g_part_gpt.c ============================================================================== --- head/sys/geom/part/g_part_gpt.c Sun Dec 27 17:58:58 2015 (r292787) +++ head/sys/geom/part/g_part_gpt.c Sun Dec 27 18:12:13 2015 (r292788) @@ -155,6 +155,19 @@ static struct uuid gpt_uuid_apple_raid_o static struct uuid gpt_uuid_apple_tv_recovery = GPT_ENT_TYPE_APPLE_TV_RECOVERY; static struct uuid gpt_uuid_apple_ufs = GPT_ENT_TYPE_APPLE_UFS; static struct uuid gpt_uuid_bios_boot = GPT_ENT_TYPE_BIOS_BOOT; +static struct uuid gpt_uuid_chromeos_firmware = GPT_ENT_TYPE_CHROMEOS_FIRMWARE; +static struct uuid gpt_uuid_chromeos_kernel = GPT_ENT_TYPE_CHROMEOS_KERNEL; +static struct uuid gpt_uuid_chromeos_reserved = GPT_ENT_TYPE_CHROMEOS_RESERVED; +static struct uuid gpt_uuid_chromeos_root = GPT_ENT_TYPE_CHROMEOS_ROOT; +static struct uuid gpt_uuid_dfbsd_ccd = GPT_ENT_TYPE_DRAGONFLY_CCD; +static struct uuid gpt_uuid_dfbsd_hammer = GPT_ENT_TYPE_DRAGONFLY_HAMMER; +static struct uuid gpt_uuid_dfbsd_hammer2 = GPT_ENT_TYPE_DRAGONFLY_HAMMER2; +static struct uuid gpt_uuid_dfbsd_label32 = GPT_ENT_TYPE_DRAGONFLY_LABEL32; +static struct uuid gpt_uuid_dfbsd_label64 = GPT_ENT_TYPE_DRAGONFLY_LABEL64; +static struct uuid gpt_uuid_dfbsd_legacy = GPT_ENT_TYPE_DRAGONFLY_LEGACY; +static struct uuid gpt_uuid_dfbsd_swap = GPT_ENT_TYPE_DRAGONFLY_SWAP; +static struct uuid gpt_uuid_dfbsd_ufs1 = GPT_ENT_TYPE_DRAGONFLY_UFS1; +static struct uuid gpt_uuid_dfbsd_vinum = GPT_ENT_TYPE_DRAGONFLY_VINUM; static struct uuid gpt_uuid_efi = GPT_ENT_TYPE_EFI; static struct uuid gpt_uuid_freebsd = GPT_ENT_TYPE_FREEBSD; static struct uuid gpt_uuid_freebsd_boot = GPT_ENT_TYPE_FREEBSD_BOOT; @@ -167,32 +180,26 @@ static struct uuid gpt_uuid_linux_data = static struct uuid gpt_uuid_linux_lvm = GPT_ENT_TYPE_LINUX_LVM; static struct uuid gpt_uuid_linux_raid = GPT_ENT_TYPE_LINUX_RAID; static struct uuid gpt_uuid_linux_swap = GPT_ENT_TYPE_LINUX_SWAP; -static struct uuid gpt_uuid_vmfs = GPT_ENT_TYPE_VMFS; -static struct uuid gpt_uuid_vmkdiag = GPT_ENT_TYPE_VMKDIAG; -static struct uuid gpt_uuid_vmreserved = GPT_ENT_TYPE_VMRESERVED; -static struct uuid gpt_uuid_vmvsanhdr = GPT_ENT_TYPE_VMVSANHDR; +static struct uuid gpt_uuid_mbr = GPT_ENT_TYPE_MBR; static struct uuid gpt_uuid_ms_basic_data = GPT_ENT_TYPE_MS_BASIC_DATA; -static struct uuid gpt_uuid_ms_reserved = GPT_ENT_TYPE_MS_RESERVED; static struct uuid gpt_uuid_ms_ldm_data = GPT_ENT_TYPE_MS_LDM_DATA; static struct uuid gpt_uuid_ms_ldm_metadata = GPT_ENT_TYPE_MS_LDM_METADATA; +static struct uuid gpt_uuid_ms_recovery = GPT_ENT_TYPE_MS_RECOVERY; +static struct uuid gpt_uuid_ms_reserved = GPT_ENT_TYPE_MS_RESERVED; +static struct uuid gpt_uuid_ms_spaces = GPT_ENT_TYPE_MS_SPACES; static struct uuid gpt_uuid_netbsd_ccd = GPT_ENT_TYPE_NETBSD_CCD; static struct uuid gpt_uuid_netbsd_cgd = GPT_ENT_TYPE_NETBSD_CGD; static struct uuid gpt_uuid_netbsd_ffs = GPT_ENT_TYPE_NETBSD_FFS; static struct uuid gpt_uuid_netbsd_lfs = GPT_ENT_TYPE_NETBSD_LFS; static struct uuid gpt_uuid_netbsd_raid = GPT_ENT_TYPE_NETBSD_RAID; static struct uuid gpt_uuid_netbsd_swap = GPT_ENT_TYPE_NETBSD_SWAP; -static struct uuid gpt_uuid_mbr = GPT_ENT_TYPE_MBR; -static struct uuid gpt_uuid_unused = GPT_ENT_TYPE_UNUSED; -static struct uuid gpt_uuid_dfbsd_swap = GPT_ENT_TYPE_DRAGONFLY_SWAP; -static struct uuid gpt_uuid_dfbsd_ufs1 = GPT_ENT_TYPE_DRAGONFLY_UFS1; -static struct uuid gpt_uuid_dfbsd_vinum = GPT_ENT_TYPE_DRAGONFLY_VINUM; -static struct uuid gpt_uuid_dfbsd_ccd = GPT_ENT_TYPE_DRAGONFLY_CCD; -static struct uuid gpt_uuid_dfbsd_legacy = GPT_ENT_TYPE_DRAGONFLY_LEGACY; -static struct uuid gpt_uuid_dfbsd_hammer = GPT_ENT_TYPE_DRAGONFLY_HAMMER; -static struct uuid gpt_uuid_dfbsd_hammer2 = GPT_ENT_TYPE_DRAGONFLY_HAMMER2; -static struct uuid gpt_uuid_dfbsd_label32 = GPT_ENT_TYPE_DRAGONFLY_LABEL32; -static struct uuid gpt_uuid_dfbsd_label64 = GPT_ENT_TYPE_DRAGONFLY_LABEL64; +static struct uuid gpt_uuid_openbsd_data = GPT_ENT_TYPE_OPENBSD_DATA; static struct uuid gpt_uuid_prep_boot = GPT_ENT_TYPE_PREP_BOOT; +static struct uuid gpt_uuid_unused = GPT_ENT_TYPE_UNUSED; +static struct uuid gpt_uuid_vmfs = GPT_ENT_TYPE_VMFS; +static struct uuid gpt_uuid_vmkdiag = GPT_ENT_TYPE_VMKDIAG; +static struct uuid gpt_uuid_vmreserved = GPT_ENT_TYPE_VMRESERVED; +static struct uuid gpt_uuid_vmvsanhdr = GPT_ENT_TYPE_VMVSANHDR; static struct g_part_uuid_alias { struct uuid *uuid; @@ -208,6 +215,19 @@ static struct g_part_uuid_alias { { &gpt_uuid_apple_tv_recovery, G_PART_ALIAS_APPLE_TV_RECOVERY, 0 }, { &gpt_uuid_apple_ufs, G_PART_ALIAS_APPLE_UFS, 0 }, { &gpt_uuid_bios_boot, G_PART_ALIAS_BIOS_BOOT, 0 }, + { &gpt_uuid_chromeos_firmware, G_PART_ALIAS_CHROMEOS_FIRMWARE, 0 }, + { &gpt_uuid_chromeos_kernel, G_PART_ALIAS_CHROMEOS_KERNEL, 0 }, + { &gpt_uuid_chromeos_reserved, G_PART_ALIAS_CHROMEOS_RESERVED, 0 }, + { &gpt_uuid_chromeos_root, G_PART_ALIAS_CHROMEOS_ROOT, 0 }, + { &gpt_uuid_dfbsd_ccd, G_PART_ALIAS_DFBSD_CCD, 0 }, + { &gpt_uuid_dfbsd_hammer, G_PART_ALIAS_DFBSD_HAMMER, 0 }, + { &gpt_uuid_dfbsd_hammer2, G_PART_ALIAS_DFBSD_HAMMER2, 0 }, + { &gpt_uuid_dfbsd_label32, G_PART_ALIAS_DFBSD, 0xa5 }, + { &gpt_uuid_dfbsd_label64, G_PART_ALIAS_DFBSD64, 0xa5 }, + { &gpt_uuid_dfbsd_legacy, G_PART_ALIAS_DFBSD_LEGACY, 0 }, + { &gpt_uuid_dfbsd_swap, G_PART_ALIAS_DFBSD_SWAP, 0 }, + { &gpt_uuid_dfbsd_ufs1, G_PART_ALIAS_DFBSD_UFS, 0 }, + { &gpt_uuid_dfbsd_vinum, G_PART_ALIAS_DFBSD_VINUM, 0 }, { &gpt_uuid_efi, G_PART_ALIAS_EFI, 0xee }, { &gpt_uuid_freebsd, G_PART_ALIAS_FREEBSD, 0xa5 }, { &gpt_uuid_freebsd_boot, G_PART_ALIAS_FREEBSD_BOOT, 0 }, @@ -220,31 +240,25 @@ static struct g_part_uuid_alias { { &gpt_uuid_linux_lvm, G_PART_ALIAS_LINUX_LVM, 0 }, { &gpt_uuid_linux_raid, G_PART_ALIAS_LINUX_RAID, 0 }, { &gpt_uuid_linux_swap, G_PART_ALIAS_LINUX_SWAP, 0 }, - { &gpt_uuid_vmfs, G_PART_ALIAS_VMFS, 0 }, - { &gpt_uuid_vmkdiag, G_PART_ALIAS_VMKDIAG, 0 }, - { &gpt_uuid_vmreserved, G_PART_ALIAS_VMRESERVED, 0 }, - { &gpt_uuid_vmvsanhdr, G_PART_ALIAS_VMVSANHDR, 0 }, { &gpt_uuid_mbr, G_PART_ALIAS_MBR, 0 }, { &gpt_uuid_ms_basic_data, G_PART_ALIAS_MS_BASIC_DATA, 0x0b }, { &gpt_uuid_ms_ldm_data, G_PART_ALIAS_MS_LDM_DATA, 0 }, { &gpt_uuid_ms_ldm_metadata, G_PART_ALIAS_MS_LDM_METADATA, 0 }, + { &gpt_uuid_ms_recovery, G_PART_ALIAS_MS_RECOVERY, 0 }, { &gpt_uuid_ms_reserved, G_PART_ALIAS_MS_RESERVED, 0 }, + { &gpt_uuid_ms_spaces, G_PART_ALIAS_MS_SPACES, 0 }, { &gpt_uuid_netbsd_ccd, G_PART_ALIAS_NETBSD_CCD, 0 }, { &gpt_uuid_netbsd_cgd, G_PART_ALIAS_NETBSD_CGD, 0 }, { &gpt_uuid_netbsd_ffs, G_PART_ALIAS_NETBSD_FFS, 0 }, { &gpt_uuid_netbsd_lfs, G_PART_ALIAS_NETBSD_LFS, 0 }, { &gpt_uuid_netbsd_raid, G_PART_ALIAS_NETBSD_RAID, 0 }, { &gpt_uuid_netbsd_swap, G_PART_ALIAS_NETBSD_SWAP, 0 }, - { &gpt_uuid_dfbsd_swap, G_PART_ALIAS_DFBSD_SWAP, 0 }, - { &gpt_uuid_dfbsd_ufs1, G_PART_ALIAS_DFBSD_UFS, 0 }, - { &gpt_uuid_dfbsd_vinum, G_PART_ALIAS_DFBSD_VINUM, 0 }, - { &gpt_uuid_dfbsd_ccd, G_PART_ALIAS_DFBSD_CCD, 0 }, - { &gpt_uuid_dfbsd_legacy, G_PART_ALIAS_DFBSD_LEGACY, 0 }, - { &gpt_uuid_dfbsd_hammer, G_PART_ALIAS_DFBSD_HAMMER, 0 }, - { &gpt_uuid_dfbsd_hammer2, G_PART_ALIAS_DFBSD_HAMMER2, 0 }, - { &gpt_uuid_dfbsd_label32, G_PART_ALIAS_DFBSD, 0xa5 }, - { &gpt_uuid_dfbsd_label64, G_PART_ALIAS_DFBSD64, 0xa5 }, + { &gpt_uuid_openbsd_data, G_PART_ALIAS_OPENBSD_DATA, 0 }, { &gpt_uuid_prep_boot, G_PART_ALIAS_PREP_BOOT, 0x41 }, + { &gpt_uuid_vmfs, G_PART_ALIAS_VMFS, 0 }, + { &gpt_uuid_vmkdiag, G_PART_ALIAS_VMKDIAG, 0 }, + { &gpt_uuid_vmreserved, G_PART_ALIAS_VMRESERVED, 0 }, + { &gpt_uuid_vmvsanhdr, G_PART_ALIAS_VMVSANHDR, 0 }, { NULL, 0, 0 } }; Modified: head/sys/sys/gpt.h ============================================================================== --- head/sys/sys/gpt.h Sun Dec 27 17:58:58 2015 (r292787) +++ head/sys/sys/gpt.h Sun Dec 27 18:12:13 2015 (r292788) @@ -107,14 +107,18 @@ struct gpt_ent { * advantage might be. I can see how sharing swap partitions is advantageous * though. */ -#define GPT_ENT_TYPE_MS_RESERVED \ - {0xe3c9e316,0x0b5c,0x4db8,0x81,0x7d,{0xf9,0x2d,0xf0,0x02,0x15,0xae}} #define GPT_ENT_TYPE_MS_BASIC_DATA \ {0xebd0a0a2,0xb9e5,0x4433,0x87,0xc0,{0x68,0xb6,0xb7,0x26,0x99,0xc7}} -#define GPT_ENT_TYPE_MS_LDM_METADATA \ - {0x5808c8aa,0x7e8f,0x42e0,0x85,0xd2,{0xe1,0xe9,0x04,0x34,0xcf,0xb3}} #define GPT_ENT_TYPE_MS_LDM_DATA \ {0xaf9b60a0,0x1431,0x4f62,0xbc,0x68,{0x33,0x11,0x71,0x4a,0x69,0xad}} +#define GPT_ENT_TYPE_MS_LDM_METADATA \ + {0x5808c8aa,0x7e8f,0x42e0,0x85,0xd2,{0xe1,0xe9,0x04,0x34,0xcf,0xb3}} +#define GPT_ENT_TYPE_MS_RECOVERY \ + {0xde94bba4,0x06d1,0x4d40,0xa1,0x6a,{0xbf,0xd5,0x01,0x79,0xd6,0xac}} +#define GPT_ENT_TYPE_MS_RESERVED \ + {0xe3c9e316,0x0b5c,0x4db8,0x81,0x7d,{0xf9,0x2d,0xf0,0x02,0x15,0xae}} +#define GPT_ENT_TYPE_MS_SPACES \ + {0xe75caf8f,0xf680,0x4cee,0xaf,0xa3,{0xb0,0x01,0xe5,0x6e,0xfc,0x2d}} #define GPT_ENT_TYPE_LINUX_DATA \ {0x0fc63daf,0x8483,0x4772,0x8e,0x79,{0x3d,0x69,0xd8,0x47,0x7d,0xe4}} @@ -185,6 +189,18 @@ struct gpt_ent { #define GPT_ENT_TYPE_DRAGONFLY_HAMMER2 \ {0x5cbb9ad1,0x862d,0x11dc,0xa9,0x4d,{0x01,0x30,0x1b,0xb8,0xa9,0xf5}} +#define GPT_ENT_TYPE_CHROMEOS_FIRMWARE \ + {0xcab6e88e,0xabf3,0x4102,0xa0,0x7a,{0xd4,0xbb,0x9b,0xe3,0xc1,0xd3}} +#define GPT_ENT_TYPE_CHROMEOS_KERNEL \ + {0xfe3a2a5d,0x4f32,0x41a7,0xb7,0x25,{0xac,0xcc,0x32,0x85,0xa3,0x09}} +#define GPT_ENT_TYPE_CHROMEOS_RESERVED \ + {0x2e0a753d,0x9e48,0x43b0,0x83,0x37,{0xb1,0x51,0x92,0xcb,0x1b,0x5e}} +#define GPT_ENT_TYPE_CHROMEOS_ROOT \ + {0x3cb8e202,0x3b7e,0x47dd,0x8a,0x3c,{0x7f,0xf2,0xa1,0x3c,0xfc,0xec}} + +#define GPT_ENT_TYPE_OPENBSD_DATA \ + {0x824cc7a0,0x36a8,0x11e3,0x89,0x0a,{0x95,0x25,0x19,0xad,0x3f,0x61}} + /* * Boot partition used by GRUB 2. */ From owner-svn-src-all@freebsd.org Sun Dec 27 18:41:11 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39A0AA5287F; Sun, 27 Dec 2015 18:41:11 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E02631789; Sun, 27 Dec 2015 18:41:10 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1aDGFZ-000CSU-D0; Sun, 27 Dec 2015 21:41:01 +0300 Date: Sun, 27 Dec 2015 21:41:01 +0300 From: Slawa Olhovchenkov To: Ian Lepore Cc: Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern Message-ID: <20151227184101.GG70867@zxy.spb.ru> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1451236237.1369.9.camel@freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 18:41:11 -0000 On Sun, Dec 27, 2015 at 10:10:37AM -0700, Ian Lepore wrote: > On Sun, 2015-12-27 at 15:37 +0000, Dmitry Chagin wrote: > > Author: dchagin > > Date: Sun Dec 27 15:37:07 2015 > > New Revision: 292777 > > URL: https://svnweb.freebsd.org/changeset/base/292777 > > > > Log: > > Verify that tv_sec value specified in settimeofday() and > > clock_settime() > > (CLOCK_REALTIME case) system calls is non negative. > > This commit hides a kernel panic in atrtc_settime() as the > > clock_ts_to_ct() > > does not properly convert negative tv_sec. > > > > ps. in my opinion clock_ts_to_ct() should be rewritten to properly > > handle > > negative tv_sec values. > > > > Differential Revision: https://reviews.freebsd.org/D4714 > > Reviewed by: kib > > > > MFC after: 1 week > > IMO, this change is completely unacceptable. If there is a bug in > atrtc code, then by all means fix it, but preventing anyone from > setting valid time values on the system because one driver's code can't > handle it is just wrong. You talk about kernel panic when internal data structures not destructed is normal behavior? Realy? From owner-svn-src-all@freebsd.org Sun Dec 27 19:08:31 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 01E4BA53023 for ; Sun, 27 Dec 2015 19:08:31 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: from mail-qg0-x232.google.com (mail-qg0-x232.google.com [IPv6:2607:f8b0:400d:c04::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AA1F912B3 for ; Sun, 27 Dec 2015 19:08:30 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: by mail-qg0-x232.google.com with SMTP id 6so58045038qgy.1 for ; Sun, 27 Dec 2015 11:08:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=351W88FJnaVUS4PdsXycttwLDre2rJG8Tqke2ipivC0=; b=BB1g0WlL92msI7ifWDYJ1/wazRCnrraiFwf1/riEg1G7MP+T1xfJpvD3Rk+segDyTk QAPeEWINvnKCuCUxcV7q2PWQnNKCdyRPnnNwYpTyPWjxB/FEjqtMiMk1msnHLKNewA4p 328W4vN0HeVADUHXgeC3sz5aC5qLTOA6bqw5sDrUxSEPam7+JMrdCz4E0UL8tf6E4jHH tU4BEELVF81HwInGxKvy3J4qy5q9IYTRJCN741aR/vw2bT2TLp3wp4VX0l3pMXVBUxFP YM+vPojmwI+tfpBrRybYShyVPCB7WEUWMdNcysGmo0/Nh1N+IVk0MiLHAmViT+2JIJNm 64sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-type:content-disposition:in-reply-to :user-agent; bh=351W88FJnaVUS4PdsXycttwLDre2rJG8Tqke2ipivC0=; b=dalXsHuAJ+ZB12rpnx6HMiktRhTzqm/VHoKfla12nRzz4Ono4+dksC/78kiZXRlhtv 7aEzCtkJtAGnf/FwYkZzcONxEyhgDpxNxmjjJMEWFGR4S8oPZ7SE79DXR+zlcN4aUZwm G6Ft7YHEkz5IskYMQs8q7SEFFD3f1X8gKEzHWio/0f0u+9LRZl3m5PVzumNRDj11PUUg ZMmq9UjkPZZCSo7cOxV1Aa6RGOb0q0K6jCXGyyMVKfVai+gdwhA8T4BmhVnSEkZVONDX LuhWjbqH4DMCiAx17BiuiRfzCTacCldNe7enDl7HJ9d2RAXWWx3pYU5sp/DINZdqBqjo lBag== X-Gm-Message-State: ALoCoQlB4K2fnEdcbCCcyzSH3pznn6UthJrNaR008DkPpQYUwYPOxq+yuFmDVr6jbeMA0cN7vUMiPaJdMVpl+48vpz0K7rsUfQ== X-Received: by 10.140.161.137 with SMTP id h131mr69958043qhh.57.1451243309802; Sun, 27 Dec 2015 11:08:29 -0800 (PST) Received: from mutt-hardenedbsd (c-73-135-80-144.hsd1.md.comcast.net. [73.135.80.144]) by smtp.gmail.com with ESMTPSA id a71sm18845785qkj.42.2015.12.27.11.08.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 27 Dec 2015 11:08:28 -0800 (PST) Date: Sun, 27 Dec 2015 14:08:26 -0500 From: Shawn Webb To: Konstantin Belousov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292772 - head/sys/vm Message-ID: <20151227190826.GB43841@mutt-hardenedbsd> References: <201512271442.tBREgdRr079655@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="1LKvkjL3sHcu1TtY" Content-Disposition: inline In-Reply-To: <201512271442.tBREgdRr079655@repo.freebsd.org> X-Operating-System: FreeBSD mutt-hardenedbsd 11.0-CURRENT-HBSD FreeBSD 11.0-CURRENT-HBSD X-PGP-Key: http://pgp.mit.edu/pks/lookup?op=vindex&search=0x6A84658F52456EEE User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 19:08:31 -0000 --1LKvkjL3sHcu1TtY Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Dec 27, 2015 at 02:42:39PM +0000, Konstantin Belousov wrote: > Author: kib > Date: Sun Dec 27 14:42:39 2015 > New Revision: 292772 > URL: https://svnweb.freebsd.org/changeset/base/292772 >=20 > Log: > Add missed relpbuf() for a smallfs page-in. > =20 > Reported by: Shawn Webb > Tested by: pho > Sponsored by: The FreeBSD Foundation This should actually be Reported by: Shawn Debnath. It appears I didn't search bugzilla when I posted to freebsd-current@. His bug report came in seven days before my email. Thanks, --=20 Shawn Webb HardenedBSD GPG Key ID: 0x6A84658F52456EEE GPG Key Fingerprint: 2ABA B6BD EF6A F486 BE89 3D9E 6A84 658F 5245 6EEE --1LKvkjL3sHcu1TtY Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJWgDcoAAoJEGqEZY9SRW7uYx0QAKpshDGaF158DBHvx7SpMKHH HSj72cT2gQwYqcLI0kRxA2xXFRhi91WKNAuuhK0rZIbomGJCqNnuFka6EM1ycATI mhUnE65eiHd67D0qDTPyVYsFOyC3Ya81hZTgtqoG8tyxs4zcj3G5uZeopwO8RqHR v69yZv3/RYpH6mJ47ejkLwe4Zoj8rcN8Ac+buTVMQj7Xb6jCeDIIrJUKL+ad6K3N OLDiHJGtMBLkDGJIjU1Jx2xi5TrH1sz3griOMMhIxS2/Fwo1IjD7+j0O9cFakRMJ 5vLR8VOqTmqCq/BJu/c1aHBU9mhwjOu4jNhPymCaTZmyfrVchiWX4kQ/N+Po/TE5 jz8l9JPRBwgQi1OJhlDuDJ9j35nlcpuIZfAH11+cMM8g7/6iQl0GLmPktVBV5m6z Lv11GXHW82Yk+xcI5fpbtOZw6mdX7rPx7EOFN6Nv+GmUVag3hzyGvz24VyELAlsd l7V8LwDsOZ5Yau9c9T6IGmeE9bvfB8pJmvxhzY1BIkuvdvSmfs+Fsa/kYKKV1jTp HSlO6SUIqGTv15aHWPbngHbzxS9gI2O+jcDK3pYiiDnsRSNKwYqmobSWSV5NjR2U TTQf8lP3ZUOggFZ9X3PxjDEE8NhArUfKpbZWAjvsx8dHaxM8ZlDXdK08B0Zr7B2Y f0N0vtmK6E9jmy3Q/OQu =ImYB -----END PGP SIGNATURE----- --1LKvkjL3sHcu1TtY-- From owner-svn-src-all@freebsd.org Sun Dec 27 19:16:54 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 80ED0A53297 for ; Sun, 27 Dec 2015 19:16:54 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from erouter6.ore.mailhop.org (erouter6.ore.mailhop.org [54.187.213.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 642D5188A for ; Sun, 27 Dec 2015 19:16:54 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound3.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Sun, 27 Dec 2015 19:16:15 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id tBRJGobM012426; Sun, 27 Dec 2015 12:16:50 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1451243810.1369.10.camel@freebsd.org> Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern From: Ian Lepore To: Slawa Olhovchenkov Cc: Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Sun, 27 Dec 2015 12:16:50 -0700 In-Reply-To: <20151227184101.GG70867@zxy.spb.ru> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> <20151227184101.GG70867@zxy.spb.ru> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 19:16:54 -0000 On Sun, 2015-12-27 at 21:41 +0300, Slawa Olhovchenkov wrote: > On Sun, Dec 27, 2015 at 10:10:37AM -0700, Ian Lepore wrote: > > > On Sun, 2015-12-27 at 15:37 +0000, Dmitry Chagin wrote: > > > Author: dchagin > > > Date: Sun Dec 27 15:37:07 2015 > > > New Revision: 292777 > > > URL: https://svnweb.freebsd.org/changeset/base/292777 > > > > > > Log: > > > Verify that tv_sec value specified in settimeofday() and > > > clock_settime() > > > (CLOCK_REALTIME case) system calls is non negative. > > > This commit hides a kernel panic in atrtc_settime() as the > > > clock_ts_to_ct() > > > does not properly convert negative tv_sec. > > > > > > ps. in my opinion clock_ts_to_ct() should be rewritten to > > > properly > > > handle > > > negative tv_sec values. > > > > > > Differential Revision: https://reviews.freebsd.org/D4714 > > > Reviewed by: kib > > > > > > MFC after: 1 week > > > > IMO, this change is completely unacceptable. If there is a bug in > > atrtc code, then by all means fix it, but preventing anyone from > > setting valid time values on the system because one driver's code > > can't > > handle it is just wrong. > > You talk about kernel panic when internal data structures not > destructed is normal behavior? Realy? > I have no idea what you mean by that -- I didn't say anything at all about panic. -- Ian From owner-svn-src-all@freebsd.org Sun Dec 27 19:30:49 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1A8B4A538E5; Sun, 27 Dec 2015 19:30:49 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C89A21E7C; Sun, 27 Dec 2015 19:30:48 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1aDH1i-000DW5-Np; Sun, 27 Dec 2015 22:30:46 +0300 Date: Sun, 27 Dec 2015 22:30:46 +0300 From: Slawa Olhovchenkov To: Ian Lepore Cc: Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern Message-ID: <20151227193046.GE4535@zxy.spb.ru> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> <20151227184101.GG70867@zxy.spb.ru> <1451243810.1369.10.camel@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1451243810.1369.10.camel@freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 19:30:49 -0000 On Sun, Dec 27, 2015 at 12:16:50PM -0700, Ian Lepore wrote: > On Sun, 2015-12-27 at 21:41 +0300, Slawa Olhovchenkov wrote: > > On Sun, Dec 27, 2015 at 10:10:37AM -0700, Ian Lepore wrote: > > > > > On Sun, 2015-12-27 at 15:37 +0000, Dmitry Chagin wrote: > > > > Author: dchagin > > > > Date: Sun Dec 27 15:37:07 2015 > > > > New Revision: 292777 > > > > URL: https://svnweb.freebsd.org/changeset/base/292777 > > > > > > > > Log: > > > > Verify that tv_sec value specified in settimeofday() and > > > > clock_settime() > > > > (CLOCK_REALTIME case) system calls is non negative. > > > > This commit hides a kernel panic in atrtc_settime() as the > > > > clock_ts_to_ct() > > > > does not properly convert negative tv_sec. > > > > > > > > ps. in my opinion clock_ts_to_ct() should be rewritten to > > > > properly > > > > handle > > > > negative tv_sec values. > > > > > > > > Differential Revision: https://reviews.freebsd.org/D4714 > > > > Reviewed by: kib > > > > > > > > MFC after: 1 week > > > > > > IMO, this change is completely unacceptable. If there is a bug in > > > atrtc code, then by all means fix it, but preventing anyone from > > > setting valid time values on the system because one driver's code > > > can't > > > handle it is just wrong. > > > > You talk about kernel panic when internal data structures not > > destructed is normal behavior? Realy? > > > > I have no idea what you mean by that -- I didn't say anything at all > about panic. As I understund commit log -- this is prevent kernel panic at some call (with illegal arguments). This accpetable irrelevant to bugs in calling code. From owner-svn-src-all@freebsd.org Sun Dec 27 19:37:49 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2668A53B56; Sun, 27 Dec 2015 19:37:49 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7917D13A0; Sun, 27 Dec 2015 19:37:49 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRJbm8f067942; Sun, 27 Dec 2015 19:37:48 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRJblN0067934; Sun, 27 Dec 2015 19:37:47 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512271937.tBRJblN0067934@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 19:37:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292789 - in stable/10/sys: conf sparc64/pci X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 19:37:50 -0000 Author: marius Date: Sun Dec 27 19:37:47 2015 New Revision: 292789 URL: https://svnweb.freebsd.org/changeset/base/292789 Log: MFC: r287726 - Factor out the common and generic parts of the sparc64 host-PCI-bridge drivers into the revived sys/sparc64/pci/ofw_pci.c, previously already serving a similar purpose. This has been done with sun4v in mind, which explains a) the otherwise not that obvious scheme employed and b) why reusing sys/powerpc/ofw/ofw_pci.c was even lesser an option. - Add a workaround for QEMU once again not emulating real machines, in this case by not providing the OFW_PCI_CS_MEM64 range. [1] Submitted by: jhb [1] Added: stable/10/sys/sparc64/pci/ofw_pci.c - copied, changed from r287726, head/sys/sparc64/pci/ofw_pci.c Modified: stable/10/sys/conf/files.sparc64 stable/10/sys/sparc64/pci/fire.c stable/10/sys/sparc64/pci/firereg.h stable/10/sys/sparc64/pci/firevar.h stable/10/sys/sparc64/pci/ofw_pci.h stable/10/sys/sparc64/pci/psycho.c stable/10/sys/sparc64/pci/psychoreg.h stable/10/sys/sparc64/pci/psychovar.h stable/10/sys/sparc64/pci/schizo.c stable/10/sys/sparc64/pci/schizoreg.h stable/10/sys/sparc64/pci/schizovar.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/conf/files.sparc64 ============================================================================== --- stable/10/sys/conf/files.sparc64 Sun Dec 27 18:12:13 2015 (r292788) +++ stable/10/sys/conf/files.sparc64 Sun Dec 27 19:37:47 2015 (r292789) @@ -81,6 +81,7 @@ sparc64/isa/isa_dma.c optional isa sparc64/isa/ofw_isa.c optional ebus | isa sparc64/pci/apb.c optional pci sparc64/pci/fire.c optional pci +sparc64/pci/ofw_pci.c optional pci sparc64/pci/ofw_pcib.c optional pci sparc64/pci/ofw_pcib_subr.c optional pci sparc64/pci/ofw_pcibus.c optional pci Modified: stable/10/sys/sparc64/pci/fire.c ============================================================================== --- stable/10/sys/sparc64/pci/fire.c Sun Dec 27 18:12:13 2015 (r292788) +++ stable/10/sys/sparc64/pci/fire.c Sun Dec 27 19:37:47 2015 (r292789) @@ -59,7 +59,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include @@ -68,7 +67,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include @@ -111,19 +109,14 @@ static driver_filter_t fire_xcb; /* * Methods */ -static bus_activate_resource_t fire_activate_resource; -static bus_adjust_resource_t fire_adjust_resource; static pcib_alloc_msi_t fire_alloc_msi; static pcib_alloc_msix_t fire_alloc_msix; static bus_alloc_resource_t fire_alloc_resource; static device_attach_t fire_attach; -static bus_get_dma_tag_t fire_get_dma_tag; -static ofw_bus_get_node_t fire_get_node; static pcib_map_msi_t fire_map_msi; static pcib_maxslots_t fire_maxslots; static device_probe_t fire_probe; static pcib_read_config_t fire_read_config; -static bus_read_ivar_t fire_read_ivar; static pcib_release_msi_t fire_release_msi; static pcib_release_msix_t fire_release_msix; static pcib_route_interrupt_t fire_route_interrupt; @@ -140,15 +133,15 @@ static device_method_t fire_methods[] = DEVMETHOD(device_resume, bus_generic_resume), /* Bus interface */ - DEVMETHOD(bus_read_ivar, fire_read_ivar), + DEVMETHOD(bus_read_ivar, ofw_pci_read_ivar), DEVMETHOD(bus_setup_intr, fire_setup_intr), DEVMETHOD(bus_teardown_intr, fire_teardown_intr), DEVMETHOD(bus_alloc_resource, fire_alloc_resource), - DEVMETHOD(bus_activate_resource, fire_activate_resource), + DEVMETHOD(bus_activate_resource, ofw_pci_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), - DEVMETHOD(bus_adjust_resource, fire_adjust_resource), + DEVMETHOD(bus_adjust_resource, ofw_pci_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), - DEVMETHOD(bus_get_dma_tag, fire_get_dma_tag), + DEVMETHOD(bus_get_dma_tag, ofw_pci_get_dma_tag), /* pcib interface */ DEVMETHOD(pcib_maxslots, fire_maxslots), @@ -162,7 +155,7 @@ static device_method_t fire_methods[] = DEVMETHOD(pcib_map_msi, fire_map_msi), /* ofw_bus interface */ - DEVMETHOD(ofw_bus_get_node, fire_get_node), + DEVMETHOD(ofw_bus_get_node, ofw_pci_get_node), DEVMETHOD_END }; @@ -296,7 +289,7 @@ fire_attach(device_t dev) struct ofw_pci_msi_eq_to_devino msi_eq_to_devino; struct fire_msiqarg *fmqa; struct timecounter *tc; - struct ofw_pci_ranges *range; + bus_dma_tag_t dmat; uint64_t ino_bitmap, val; phandle_t node; uint32_t prop, prop_array[2]; @@ -310,7 +303,6 @@ fire_attach(device_t dev) mode = desc->fd_mode; sc->sc_dev = dev; - sc->sc_node = node; sc->sc_mode = mode; sc->sc_flags = 0; @@ -715,81 +707,21 @@ fire_attach(device_t dev) sc->sc_is.is_bushandle = rman_get_bushandle(sc->sc_mem_res[FIRE_PCI]); sc->sc_is.is_iommu = FO_PCI_MMU; val = FIRE_PCI_READ_8(sc, FO_PCI_MMU + IMR_CTL); - iommu_init(device_get_nameunit(sc->sc_dev), &sc->sc_is, 7, -1, 0); + iommu_init(device_get_nameunit(dev), &sc->sc_is, 7, -1, 0); #ifdef FIRE_DEBUG device_printf(dev, "FO_PCI_MMU + IMR_CTL 0x%016llx -> 0x%016llx\n", (long long unsigned)val, (long long unsigned)sc->sc_is.is_cr); #endif - - /* Initialize memory and I/O rmans. */ - sc->sc_pci_io_rman.rm_type = RMAN_ARRAY; - sc->sc_pci_io_rman.rm_descr = "Fire PCI I/O Ports"; - if (rman_init(&sc->sc_pci_io_rman) != 0 || - rman_manage_region(&sc->sc_pci_io_rman, 0, FO_IO_SIZE) != 0) - panic("%s: failed to set up I/O rman", __func__); - sc->sc_pci_mem_rman.rm_type = RMAN_ARRAY; - sc->sc_pci_mem_rman.rm_descr = "Fire PCI Memory"; - if (rman_init(&sc->sc_pci_mem_rman) != 0 || - rman_manage_region(&sc->sc_pci_mem_rman, 0, FO_MEM_SIZE) != 0) - panic("%s: failed to set up memory rman", __func__); - - i = OF_getprop_alloc(node, "ranges", sizeof(*range), (void **)&range); - /* - * Make sure that the expected ranges are present. The - * OFW_PCI_CS_MEM64 one is not currently used though. - */ - if (i != FIRE_NRANGE) - panic("%s: unsupported number of ranges", __func__); - /* - * Find the addresses of the various bus spaces. - * There should not be multiple ones of one kind. - * The physical start addresses of the ranges are the configuration, - * memory and I/O handles. - */ - for (i = 0; i < FIRE_NRANGE; i++) { - j = OFW_PCI_RANGE_CS(&range[i]); - if (sc->sc_pci_bh[j] != 0) - panic("%s: duplicate range for space %d", - __func__, j); - sc->sc_pci_bh[j] = OFW_PCI_RANGE_PHYS(&range[i]); - } - free(range, M_OFWPROP); - - /* Allocate our tags. */ - sc->sc_pci_iot = sparc64_alloc_bus_tag(NULL, rman_get_bustag( - sc->sc_mem_res[FIRE_PCI]), PCI_IO_BUS_SPACE, NULL); - if (sc->sc_pci_iot == NULL) - panic("%s: could not allocate PCI I/O tag", __func__); - sc->sc_pci_cfgt = sparc64_alloc_bus_tag(NULL, rman_get_bustag( - sc->sc_mem_res[FIRE_PCI]), PCI_CONFIG_BUS_SPACE, NULL); - if (sc->sc_pci_cfgt == NULL) - panic("%s: could not allocate PCI configuration space tag", - __func__); + /* Create our DMA tag. */ if (bus_dma_tag_create(bus_get_dma_tag(dev), 8, 0x100000000, sc->sc_is.is_pmaxaddr, ~0, NULL, NULL, sc->sc_is.is_pmaxaddr, - 0xff, 0xffffffff, 0, NULL, NULL, &sc->sc_pci_dmat) != 0) + 0xff, 0xffffffff, 0, NULL, NULL, &dmat) != 0) panic("%s: could not create PCI DMA tag", __func__); - /* Customize the tag. */ - sc->sc_pci_dmat->dt_cookie = &sc->sc_is; - sc->sc_pci_dmat->dt_mt = &sc->sc_dma_methods; + dmat->dt_cookie = &sc->sc_is; + dmat->dt_mt = &sc->sc_dma_methods; - /* - * Get the bus range from the firmware. - * NB: Neither Fire nor Oberon support PCI bus reenumeration. - */ - i = OF_getprop(node, "bus-range", (void *)prop_array, - sizeof(prop_array)); - if (i == -1) - panic("%s: could not get bus-range", __func__); - if (i != sizeof(prop_array)) - panic("%s: broken bus-range (%d)", __func__, i); - sc->sc_pci_secbus = prop_array[0]; - sc->sc_pci_subbus = prop_array[1]; - if (bootverbose != 0) - device_printf(dev, "bus range %u to %u; PCI bus %d\n", - sc->sc_pci_secbus, sc->sc_pci_subbus, sc->sc_pci_secbus); - - ofw_bus_setup_iinfo(node, &sc->sc_pci_iinfo, sizeof(ofw_pci_intr_t)); + if (ofw_pci_attach_common(dev, dmat, FO_IO_SIZE, FO_MEM_SIZE) != 0) + panic("%s: ofw_pci_attach_common() failed", __func__); #define FIRE_SYSCTL_ADD_UINT(name, arg, desc) \ SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), \ @@ -1392,136 +1324,44 @@ static uint32_t fire_read_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, int width) { - struct fire_softc *sc; - bus_space_handle_t bh; - u_long offset = 0; - uint32_t r, wrd; - int i; - uint16_t shrt; - uint8_t byte; - - sc = device_get_softc(dev); - if (bus < sc->sc_pci_secbus || bus > sc->sc_pci_subbus || - slot > PCI_SLOTMAX || func > PCI_FUNCMAX || reg > PCIE_REGMAX) - return (-1); - - offset = FO_CONF_OFF(bus, slot, func, reg); - bh = sc->sc_pci_bh[OFW_PCI_CS_CONFIG]; - switch (width) { - case 1: - i = bus_space_peek_1(sc->sc_pci_cfgt, bh, offset, &byte); - r = byte; - break; - case 2: - i = bus_space_peek_2(sc->sc_pci_cfgt, bh, offset, &shrt); - r = shrt; - break; - case 4: - i = bus_space_peek_4(sc->sc_pci_cfgt, bh, offset, &wrd); - r = wrd; - break; - default: - panic("%s: bad width", __func__); - /* NOTREACHED */ - } - if (i) { -#ifdef FIRE_DEBUG - printf("%s: read data error reading: %d.%d.%d: 0x%x\n", - __func__, bus, slot, func, reg); -#endif - r = -1; - } - return (r); + return (ofw_pci_read_config_common(dev, PCIE_REGMAX, FO_CONF_OFF(bus, + slot, func, reg), bus, slot, func, reg, width)); } static void fire_write_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, uint32_t val, int width) { - struct fire_softc *sc; - bus_space_handle_t bh; - u_long offset = 0; - - sc = device_get_softc(dev); - if (bus < sc->sc_pci_secbus || bus > sc->sc_pci_subbus || - slot > PCI_SLOTMAX || func > PCI_FUNCMAX || reg > PCIE_REGMAX) - return; - offset = FO_CONF_OFF(bus, slot, func, reg); - bh = sc->sc_pci_bh[OFW_PCI_CS_CONFIG]; - switch (width) { - case 1: - bus_space_write_1(sc->sc_pci_cfgt, bh, offset, val); - break; - case 2: - bus_space_write_2(sc->sc_pci_cfgt, bh, offset, val); - break; - case 4: - bus_space_write_4(sc->sc_pci_cfgt, bh, offset, val); - break; - default: - panic("%s: bad width", __func__); - /* NOTREACHED */ - } + ofw_pci_write_config_common(dev, PCIE_REGMAX, FO_CONF_OFF(bus, slot, + func, reg), bus, slot, func, reg, val, width); } static int fire_route_interrupt(device_t bridge, device_t dev, int pin) { - struct fire_softc *sc; - struct ofw_pci_register reg; - ofw_pci_intr_t pintr, mintr; - - sc = device_get_softc(bridge); - pintr = pin; - if (ofw_bus_lookup_imap(ofw_bus_get_node(dev), &sc->sc_pci_iinfo, - ®, sizeof(reg), &pintr, sizeof(pintr), &mintr, sizeof(mintr), - NULL) != 0) - return (mintr); - - device_printf(bridge, "could not route pin %d for device %d.%d\n", - pin, pci_get_slot(dev), pci_get_function(dev)); - return (PCI_INVALID_IRQ); -} - -static int -fire_read_ivar(device_t dev, device_t child, int which, uintptr_t *result) -{ - struct fire_softc *sc; + ofw_pci_intr_t mintr; - sc = device_get_softc(dev); - switch (which) { - case PCIB_IVAR_DOMAIN: - *result = device_get_unit(dev); - return (0); - case PCIB_IVAR_BUS: - *result = sc->sc_pci_secbus; - return (0); - } - return (ENOENT); + mintr = ofw_pci_route_interrupt_common(bridge, dev, pin); + if (!PCI_INTERRUPT_VALID(mintr)) + device_printf(bridge, + "could not route pin %d for device %d.%d\n", + pin, pci_get_slot(dev), pci_get_function(dev)); + return (mintr); } static void fire_dmamap_sync(bus_dma_tag_t dt __unused, bus_dmamap_t map, bus_dmasync_op_t op) { - static u_char buf[VIS_BLOCKSIZE] __aligned(VIS_BLOCKSIZE); - register_t reg, s; if ((map->dm_flags & DMF_LOADED) == 0) return; - if ((op & BUS_DMASYNC_POSTREAD) != 0) { - s = intr_disable(); - reg = rd(fprs); - wr(fprs, reg | FPRS_FEF, 0); - __asm __volatile("stda %%f0, [%0] %1" - : : "r" (buf), "n" (ASI_BLK_COMMIT_S)); - membar(Sync); - wr(fprs, reg, 0); - intr_restore(s); - } else if ((op & BUS_DMASYNC_PREWRITE) != 0) + if ((op & BUS_DMASYNC_POSTREAD) != 0) + ofw_pci_dmamap_sync_stst_order_common(); + else if ((op & BUS_DMASYNC_PREWRITE) != 0) membar(Sync); } @@ -2015,122 +1855,13 @@ fire_alloc_resource(device_t bus, device u_long start, u_long end, u_long count, u_int flags) { struct fire_softc *sc; - struct resource *rv; - struct rman *rm; - sc = device_get_softc(bus); - switch (type) { - case SYS_RES_IRQ: - /* - * XXX: Don't accept blank ranges for now, only single - * interrupts. The other case should not happen with - * the MI PCI code... - * XXX: This may return a resource that is out of the - * range that was specified. Is this correct...? - */ - if (start != end) - panic("%s: XXX: interrupt range", __func__); - if (*rid == 0) - start = end = INTMAP_VEC(sc->sc_ign, end); - return (bus_generic_alloc_resource(bus, child, type, rid, - start, end, count, flags)); - case SYS_RES_MEMORY: - rm = &sc->sc_pci_mem_rman; - break; - case SYS_RES_IOPORT: - rm = &sc->sc_pci_io_rman; - break; - default: - return (NULL); - } - - rv = rman_reserve_resource(rm, start, end, count, flags & ~RF_ACTIVE, - child); - if (rv == NULL) - return (NULL); - rman_set_rid(rv, *rid); - - if ((flags & RF_ACTIVE) != 0 && bus_activate_resource(child, type, - *rid, rv) != 0) { - rman_release_resource(rv); - return (NULL); + if (type == SYS_RES_IRQ && *rid == 0) { + sc = device_get_softc(bus); + start = end = INTMAP_VEC(sc->sc_ign, end); } - return (rv); -} - -static int -fire_activate_resource(device_t bus, device_t child, int type, int rid, - struct resource *r) -{ - struct fire_softc *sc; - struct bus_space_tag *tag; - - sc = device_get_softc(bus); - switch (type) { - case SYS_RES_IRQ: - return (bus_generic_activate_resource(bus, child, type, rid, - r)); - case SYS_RES_MEMORY: - tag = sparc64_alloc_bus_tag(r, rman_get_bustag( - sc->sc_mem_res[FIRE_PCI]), PCI_MEMORY_BUS_SPACE, NULL); - if (tag == NULL) - return (ENOMEM); - rman_set_bustag(r, tag); - rman_set_bushandle(r, sc->sc_pci_bh[OFW_PCI_CS_MEM32] + - rman_get_start(r)); - break; - case SYS_RES_IOPORT: - rman_set_bustag(r, sc->sc_pci_iot); - rman_set_bushandle(r, sc->sc_pci_bh[OFW_PCI_CS_IO] + - rman_get_start(r)); - break; - } - return (rman_activate_resource(r)); -} - -static int -fire_adjust_resource(device_t bus, device_t child, int type, - struct resource *r, u_long start, u_long end) -{ - struct fire_softc *sc; - struct rman *rm; - - sc = device_get_softc(bus); - switch (type) { - case SYS_RES_IRQ: - return (bus_generic_adjust_resource(bus, child, type, r, - start, end)); - case SYS_RES_MEMORY: - rm = &sc->sc_pci_mem_rman; - break; - case SYS_RES_IOPORT: - rm = &sc->sc_pci_io_rman; - break; - default: - return (EINVAL); - } - if (rman_is_region_manager(r, rm) == 0) - return (EINVAL); - return (rman_adjust_resource(r, start, end)); -} - -static bus_dma_tag_t -fire_get_dma_tag(device_t bus, device_t child __unused) -{ - struct fire_softc *sc; - - sc = device_get_softc(bus); - return (sc->sc_pci_dmat); -} - -static phandle_t -fire_get_node(device_t bus, device_t child __unused) -{ - struct fire_softc *sc; - - sc = device_get_softc(bus); - /* We only have one child, the PCI bus, which needs our own node. */ - return (sc->sc_node); + return (ofw_pci_alloc_resource(bus, child, type, rid, start, end, + count, flags)); } static u_int Modified: stable/10/sys/sparc64/pci/firereg.h ============================================================================== --- stable/10/sys/sparc64/pci/firereg.h Sun Dec 27 18:12:13 2015 (r292788) +++ stable/10/sys/sparc64/pci/firereg.h Sun Dec 27 19:37:47 2015 (r292789) @@ -30,7 +30,6 @@ #define _SPARC64_PCI_FIREREG_H_ #define FIRE_NINTR 3 /* 2 OFW + 1 MSIq */ -#define FIRE_NRANGE 4 #define FIRE_NREG 2 #define FIRE_PCI 0 Modified: stable/10/sys/sparc64/pci/firevar.h ============================================================================== --- stable/10/sys/sparc64/pci/firevar.h Sun Dec 27 18:12:13 2015 (r292788) +++ stable/10/sys/sparc64/pci/firevar.h Sun Dec 27 19:37:47 2015 (r292789) @@ -32,6 +32,12 @@ #define _SPARC64_PCI_FIREVAR_H_ struct fire_softc { + /* + * This is here so that we can hook up the common bus interface + * methods in ofw_pci.c directly. + */ + struct ofw_pci_softc sc_ops; + struct iommu_state sc_is; struct bus_dma_methods sc_dma_methods; @@ -42,13 +48,6 @@ struct fire_softc { struct resource *sc_irq_res[FIRE_NINTR]; void *sc_ihand[FIRE_NINTR]; - struct rman sc_pci_mem_rman; - struct rman sc_pci_io_rman; - bus_space_handle_t sc_pci_bh[FIRE_NRANGE]; - bus_space_tag_t sc_pci_cfgt; - bus_space_tag_t sc_pci_iot; - bus_dma_tag_t sc_pci_dmat; - device_t sc_dev; uint64_t *sc_msiq; @@ -66,8 +65,6 @@ struct fire_softc { uint32_t sc_msiq_first; uint32_t sc_msiq_ino_first; - phandle_t sc_node; - u_int sc_mode; #define FIRE_MODE_FIRE 0 #define FIRE_MODE_OBERON 1 @@ -87,11 +84,6 @@ struct fire_softc { uint32_t sc_stats_tlu_oe_rx_err; uint32_t sc_stats_tlu_oe_tx_err; uint32_t sc_stats_ubc_dmardue; - - uint8_t sc_pci_secbus; - uint8_t sc_pci_subbus; - - struct ofw_bus_iinfo sc_pci_iinfo; }; #endif /* !_SPARC64_PCI_FIREVAR_H_ */ Copied and modified: stable/10/sys/sparc64/pci/ofw_pci.c (from r287726, head/sys/sparc64/pci/ofw_pci.c) ============================================================================== --- head/sys/sparc64/pci/ofw_pci.c Sat Sep 12 22:49:32 2015 (r287726, copy source) +++ stable/10/sys/sparc64/pci/ofw_pci.c Sun Dec 27 19:37:47 2015 (r292789) @@ -57,6 +57,9 @@ __FBSDID("$FreeBSD$"); #include +/* XXX */ +extern struct bus_space_tag nexus_bustag; + int ofw_pci_attach_common(device_t dev, bus_dma_tag_t dmat, u_long iosize, u_long memsize) @@ -125,12 +128,14 @@ ofw_pci_attach_common(device_t dev, bus_ } /* Allocate our tags. */ - sc->sc_pci_iot = sparc64_alloc_bus_tag(NULL, PCI_IO_BUS_SPACE); + sc->sc_pci_iot = sparc64_alloc_bus_tag(NULL, &nexus_bustag, + PCI_IO_BUS_SPACE, NULL); if (sc->sc_pci_iot == NULL) { device_printf(dev, "could not allocate PCI I/O tag\n"); return (ENXIO); } - sc->sc_pci_cfgt = sparc64_alloc_bus_tag(NULL, PCI_CONFIG_BUS_SPACE); + sc->sc_pci_cfgt = sparc64_alloc_bus_tag(NULL, &nexus_bustag, + PCI_CONFIG_BUS_SPACE, NULL); if (sc->sc_pci_cfgt == NULL) { device_printf(dev, "could not allocate PCI configuration space tag\n"); @@ -344,7 +349,8 @@ ofw_pci_activate_resource(device_t bus, return (bus_generic_activate_resource(bus, child, type, rid, r)); case SYS_RES_MEMORY: - tag = sparc64_alloc_bus_tag(r, PCI_MEMORY_BUS_SPACE); + tag = sparc64_alloc_bus_tag(r, &nexus_bustag, + PCI_MEMORY_BUS_SPACE, NULL); if (tag == NULL) return (ENOMEM); rman_set_bustag(r, tag); Modified: stable/10/sys/sparc64/pci/ofw_pci.h ============================================================================== --- stable/10/sys/sparc64/pci/ofw_pci.h Sun Dec 27 18:12:13 2015 (r292788) +++ stable/10/sys/sparc64/pci/ofw_pci.h Sun Dec 27 19:37:47 2015 (r292789) @@ -62,6 +62,8 @@ #ifndef _SPARC64_PCI_OFW_PCI_H_ #define _SPARC64_PCI_OFW_PCI_H_ +#include + #include #include "ofw_pci_if.h" @@ -73,6 +75,7 @@ typedef uint32_t ofw_pci_intr_t; #define OFW_PCI_CS_IO 0x01 #define OFW_PCI_CS_MEM32 0x02 #define OFW_PCI_CS_MEM64 0x03 +#define OFW_PCI_NUM_CS 4 /* OFW device types */ #define OFW_TYPE_PCI "pci" @@ -124,4 +127,44 @@ struct ofw_pci_ranges { /* default values */ #define OFW_PCI_LATENCY 64 +/* + * Common and generic parts of host-PCI-bridge support + */ + +struct ofw_pci_softc { + struct rman sc_pci_mem_rman; + struct rman sc_pci_io_rman; + + bus_space_handle_t sc_pci_bh[OFW_PCI_NUM_CS]; + bus_space_tag_t sc_pci_cfgt; + bus_space_tag_t sc_pci_iot; + bus_dma_tag_t sc_pci_dmat; + + struct ofw_bus_iinfo sc_pci_iinfo; + + phandle_t sc_node; + + uint8_t sc_pci_secbus; + uint8_t sc_pci_subbus; +}; + +int ofw_pci_attach_common(device_t dev, bus_dma_tag_t dmat, u_long iosize, + u_long memsize); +uint32_t ofw_pci_read_config_common(device_t dev, u_int regmax, u_long offset, + u_int bus, u_int slot, u_int func, u_int reg, int width); +void ofw_pci_write_config_common(device_t dev, u_int regmax, u_long offset, + u_int bus, u_int slot, u_int func, u_int reg, uint32_t val, int width); +ofw_pci_intr_t ofw_pci_route_interrupt_common(device_t bridge, device_t dev, + int pin); + +void ofw_pci_dmamap_sync_stst_order_common(void); + +bus_activate_resource_t ofw_pci_activate_resource; +bus_adjust_resource_t ofw_pci_adjust_resource; +bus_alloc_resource_t ofw_pci_alloc_resource; +bus_get_dma_tag_t ofw_pci_get_dma_tag; +bus_read_ivar_t ofw_pci_read_ivar; + +ofw_bus_get_node_t ofw_pci_get_node; + #endif /* ! _SPARC64_PCI_OFW_PCI_H_ */ Modified: stable/10/sys/sparc64/pci/psycho.c ============================================================================== --- stable/10/sys/sparc64/pci/psycho.c Sun Dec 27 18:12:13 2015 (r292788) +++ stable/10/sys/sparc64/pci/psycho.c Sun Dec 27 19:37:47 2015 (r292789) @@ -57,7 +57,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include @@ -110,17 +109,12 @@ static void psycho_iommu_init(struct psy */ static device_probe_t psycho_probe; static device_attach_t psycho_attach; -static bus_read_ivar_t psycho_read_ivar; static bus_setup_intr_t psycho_setup_intr; static bus_alloc_resource_t psycho_alloc_resource; -static bus_activate_resource_t psycho_activate_resource; -static bus_adjust_resource_t psycho_adjust_resource; -static bus_get_dma_tag_t psycho_get_dma_tag; static pcib_maxslots_t psycho_maxslots; static pcib_read_config_t psycho_read_config; static pcib_write_config_t psycho_write_config; static pcib_route_interrupt_t psycho_route_interrupt; -static ofw_bus_get_node_t psycho_get_node; static ofw_pci_setup_device_t psycho_setup_device; static device_method_t psycho_methods[] = { @@ -132,15 +126,15 @@ static device_method_t psycho_methods[] DEVMETHOD(device_resume, bus_generic_resume), /* Bus interface */ - DEVMETHOD(bus_read_ivar, psycho_read_ivar), + DEVMETHOD(bus_read_ivar, ofw_pci_read_ivar), DEVMETHOD(bus_setup_intr, psycho_setup_intr), DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), DEVMETHOD(bus_alloc_resource, psycho_alloc_resource), - DEVMETHOD(bus_activate_resource, psycho_activate_resource), + DEVMETHOD(bus_activate_resource, ofw_pci_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), - DEVMETHOD(bus_adjust_resource, psycho_adjust_resource), + DEVMETHOD(bus_adjust_resource, ofw_pci_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), - DEVMETHOD(bus_get_dma_tag, psycho_get_dma_tag), + DEVMETHOD(bus_get_dma_tag, ofw_pci_get_dma_tag), /* pcib interface */ DEVMETHOD(pcib_maxslots, psycho_maxslots), @@ -149,7 +143,7 @@ static device_method_t psycho_methods[] DEVMETHOD(pcib_route_interrupt, psycho_route_interrupt), /* ofw_bus interface */ - DEVMETHOD(ofw_bus_get_node, psycho_get_node), + DEVMETHOD(ofw_bus_get_node, ofw_pci_get_node), /* ofw_pci interface */ DEVMETHOD(ofw_pci_setup_device, psycho_setup_device), @@ -288,12 +282,12 @@ psycho_attach(device_t dev) { struct psycho_icarg *pica; struct psycho_softc *asc, *sc, *osc; - struct ofw_pci_ranges *range; const struct psycho_desc *desc; bus_addr_t intrclr, intrmap; + bus_dma_tag_t dmat; uint64_t csr, dr; phandle_t node; - uint32_t dvmabase, prop, prop_array[2]; + uint32_t dvmabase, prop; u_int rerun, ver; int i, j; @@ -301,7 +295,6 @@ psycho_attach(device_t dev) sc = device_get_softc(dev); desc = psycho_get_desc(dev); - sc->sc_node = node; sc->sc_dev = dev; sc->sc_mode = desc->pd_mode; @@ -367,6 +360,7 @@ psycho_attach(device_t dev) panic("%s: mutex not initialized", __func__); sc->sc_mtx = osc->sc_mtx; } + SLIST_INSERT_HEAD(&psycho_softcs, sc, sc_link); csr = PSYCHO_READ8(sc, PSR_CS); ver = PSYCHO_GCSR_VERS(csr); @@ -435,43 +429,6 @@ psycho_attach(device_t dev) } else dvmabase = -1; - /* Initialize memory and I/O rmans. */ - sc->sc_pci_io_rman.rm_type = RMAN_ARRAY; - sc->sc_pci_io_rman.rm_descr = "Psycho PCI I/O Ports"; - if (rman_init(&sc->sc_pci_io_rman) != 0 || - rman_manage_region(&sc->sc_pci_io_rman, 0, PSYCHO_IO_SIZE) != 0) - panic("%s: failed to set up I/O rman", __func__); - sc->sc_pci_mem_rman.rm_type = RMAN_ARRAY; - sc->sc_pci_mem_rman.rm_descr = "Psycho PCI Memory"; - if (rman_init(&sc->sc_pci_mem_rman) != 0 || - rman_manage_region(&sc->sc_pci_mem_rman, 0, PSYCHO_MEM_SIZE) != 0) - panic("%s: failed to set up memory rman", __func__); - - i = OF_getprop_alloc(node, "ranges", sizeof(*range), (void **)&range); - /* - * Make sure that the expected ranges are present. The - * OFW_PCI_CS_MEM64 one is not currently used though. - */ - if (i != PSYCHO_NRANGE) - panic("%s: unsupported number of ranges", __func__); - /* - * Find the addresses of the various bus spaces. - * There should not be multiple ones of one kind. - * The physical start addresses of the ranges are the configuration, - * memory and I/O handles. - */ - for (i = 0; i < PSYCHO_NRANGE; i++) { - j = OFW_PCI_RANGE_CS(&range[i]); - if (sc->sc_pci_bh[j] != 0) - panic("%s: duplicate range for space %d", - __func__, j); - sc->sc_pci_bh[j] = OFW_PCI_RANGE_PHYS(&range[i]); - } - free(range, M_OFWPROP); - - /* Register the softc, this is needed for paired Psychos. */ - SLIST_INSERT_HEAD(&psycho_softcs, sc, sc_link); - /* * If we're a Hummingbird/Sabre or the first of a pair of Psychos * to arrive here, do the interrupt setup and start up the IOMMU. @@ -572,39 +529,21 @@ psycho_attach(device_t dev) iommu_reset(sc->sc_is); } - /* Allocate our tags. */ - sc->sc_pci_iot = sparc64_alloc_bus_tag(NULL, rman_get_bustag( - sc->sc_mem_res), PCI_IO_BUS_SPACE, NULL); - if (sc->sc_pci_iot == NULL) - panic("%s: could not allocate PCI I/O tag", __func__); - sc->sc_pci_cfgt = sparc64_alloc_bus_tag(NULL, rman_get_bustag( - sc->sc_mem_res), PCI_CONFIG_BUS_SPACE, NULL); - if (sc->sc_pci_cfgt == NULL) - panic("%s: could not allocate PCI configuration space tag", - __func__); + /* Create our DMA tag. */ if (bus_dma_tag_create(bus_get_dma_tag(dev), 8, 0, sc->sc_is->is_pmaxaddr, ~0, NULL, NULL, sc->sc_is->is_pmaxaddr, - 0xff, 0xffffffff, 0, NULL, NULL, &sc->sc_pci_dmat) != 0) + 0xff, 0xffffffff, 0, NULL, NULL, &dmat) != 0) panic("%s: could not create PCI DMA tag", __func__); - /* Customize the tag. */ - sc->sc_pci_dmat->dt_cookie = sc->sc_is; - sc->sc_pci_dmat->dt_mt = sc->sc_dma_methods; - - i = OF_getprop(node, "bus-range", (void *)prop_array, - sizeof(prop_array)); - if (i == -1) - panic("%s: could not get bus-range", __func__); - if (i != sizeof(prop_array)) - panic("%s: broken bus-range (%d)", __func__, i); - sc->sc_pci_secbus = prop_array[0]; - sc->sc_pci_subbus = prop_array[1]; - if (bootverbose) - device_printf(dev, "bus range %u to %u; PCI bus %d\n", - sc->sc_pci_secbus, sc->sc_pci_subbus, sc->sc_pci_secbus); + dmat->dt_cookie = sc->sc_is; + dmat->dt_mt = sc->sc_dma_methods; + + if (ofw_pci_attach_common(dev, dmat, PSYCHO_IO_SIZE, + PSYCHO_MEM_SIZE) != 0) + panic("%s: ofw_pci_attach_common() failed", __func__); /* Clear any pending PCI error bits. */ - PCIB_WRITE_CONFIG(dev, sc->sc_pci_secbus, PCS_DEVICE, PCS_FUNC, - PCIR_STATUS, PCIB_READ_CONFIG(dev, sc->sc_pci_secbus, + PCIB_WRITE_CONFIG(dev, sc->sc_ops.sc_pci_secbus, PCS_DEVICE, PCS_FUNC, + PCIR_STATUS, PCIB_READ_CONFIG(dev, sc->sc_ops.sc_pci_secbus, PCS_DEVICE, PCS_FUNC, PCIR_STATUS, 2), 2); PCICTL_WRITE8(sc, PCR_CS, PCICTL_READ8(sc, PCR_CS)); PCICTL_WRITE8(sc, PCR_AFS, PCICTL_READ8(sc, PCR_AFS)); @@ -667,20 +606,20 @@ psycho_attach(device_t dev) * Set the latency timer register as this isn't always done by the * firmware. */ - PCIB_WRITE_CONFIG(dev, sc->sc_pci_secbus, PCS_DEVICE, PCS_FUNC, + PCIB_WRITE_CONFIG(dev, sc->sc_ops.sc_pci_secbus, PCS_DEVICE, PCS_FUNC, PCIR_LATTIMER, OFW_PCI_LATENCY, 1); for (i = PCIR_VENDOR; i < PCIR_STATUS; i += sizeof(uint16_t)) - le16enc(&sc->sc_pci_hpbcfg[i], bus_space_read_2( - sc->sc_pci_cfgt, sc->sc_pci_bh[OFW_PCI_CS_CONFIG], - PSYCHO_CONF_OFF(sc->sc_pci_secbus, PCS_DEVICE, + le16enc(&sc->sc_pci_hpbcfg[i], + bus_space_read_2(sc->sc_ops.sc_pci_cfgt, + sc->sc_ops.sc_pci_bh[OFW_PCI_CS_CONFIG], + PSYCHO_CONF_OFF(sc->sc_ops.sc_pci_secbus, PCS_DEVICE, PCS_FUNC, i))); for (i = PCIR_REVID; i <= PCIR_BIST; i += sizeof(uint8_t)) - sc->sc_pci_hpbcfg[i] = bus_space_read_1(sc->sc_pci_cfgt, - sc->sc_pci_bh[OFW_PCI_CS_CONFIG], PSYCHO_CONF_OFF( - sc->sc_pci_secbus, PCS_DEVICE, PCS_FUNC, i)); + sc->sc_pci_hpbcfg[i] = bus_space_read_1(sc->sc_ops.sc_pci_cfgt, + sc->sc_ops.sc_pci_bh[OFW_PCI_CS_CONFIG], PSYCHO_CONF_OFF( + sc->sc_ops.sc_pci_secbus, PCS_DEVICE, PCS_FUNC, i)); - ofw_bus_setup_iinfo(node, &sc->sc_pci_iinfo, sizeof(ofw_pci_intr_t)); /* * On E250 the interrupt map entry for the EBus bridge is wrong, * causing incorrect interrupts to be assigned to some devices on @@ -691,9 +630,9 @@ psycho_attach(device_t dev) * EBus devices will be used directly instead. */ if (strcmp(sparc64_model, "SUNW,Ultra-250") == 0 && - sc->sc_pci_iinfo.opi_imapmsk != NULL) - *(ofw_pci_intr_t *)(&sc->sc_pci_iinfo.opi_imapmsk[ - sc->sc_pci_iinfo.opi_addrc]) = INTMAP_INO_MASK; + sc->sc_ops.sc_pci_iinfo.opi_imapmsk != NULL) + *(ofw_pci_intr_t *)(&sc->sc_ops.sc_pci_iinfo.opi_imapmsk[ + sc->sc_ops.sc_pci_iinfo.opi_addrc]) = INTMAP_INO_MASK; device_add_child(dev, "pci", -1); return (bus_generic_attach(dev)); @@ -927,20 +866,8 @@ psycho_read_config(device_t dev, u_int b int width) { struct psycho_softc *sc; - bus_space_handle_t bh; - u_long offset = 0; - uint8_t byte; - uint16_t shrt; - uint32_t r, wrd; - int i; sc = device_get_softc(dev); - if (bus < sc->sc_pci_secbus || bus > sc->sc_pci_subbus || - slot > PCI_SLOTMAX || func > PCI_FUNCMAX || reg > PCI_REGMAX) - return (-1); - - bh = sc->sc_pci_bh[OFW_PCI_CS_CONFIG]; - /* * The Hummingbird and Sabre bridges are picky in that they * only allow their config space to be accessed using the @@ -956,9 +883,9 @@ psycho_read_config(device_t dev, u_int b * The Psycho bridges contain a dupe of their header at 0x80 * which we nullify that way also. */ - if (bus == sc->sc_pci_secbus && slot == PCS_DEVICE && + if (bus == sc->sc_ops.sc_pci_secbus && slot == PCS_DEVICE && func == PCS_FUNC) { - if (offset % width != 0) + if (reg % width != 0) return (-1); if (reg >= sizeof(sc->sc_pci_hpbcfg)) @@ -967,8 +894,9 @@ psycho_read_config(device_t dev, u_int b if ((reg < PCIR_STATUS && reg + width > PCIR_STATUS) || reg == PCIR_STATUS || reg == PCIR_STATUS + 1) le16enc(&sc->sc_pci_hpbcfg[PCIR_STATUS], - bus_space_read_2(sc->sc_pci_cfgt, bh, - PSYCHO_CONF_OFF(sc->sc_pci_secbus, + bus_space_read_2(sc->sc_ops.sc_pci_cfgt, + sc->sc_ops.sc_pci_bh[OFW_PCI_CS_CONFIG], + PSYCHO_CONF_OFF(sc->sc_ops.sc_pci_secbus, PCS_DEVICE, PCS_FUNC, PCIR_STATUS))); switch (width) { @@ -981,79 +909,29 @@ psycho_read_config(device_t dev, u_int b } } - offset = PSYCHO_CONF_OFF(bus, slot, func, reg); - switch (width) { - case 1: - i = bus_space_peek_1(sc->sc_pci_cfgt, bh, offset, &byte); - r = byte; - break; - case 2: - i = bus_space_peek_2(sc->sc_pci_cfgt, bh, offset, &shrt); - r = shrt; - break; - case 4: - i = bus_space_peek_4(sc->sc_pci_cfgt, bh, offset, &wrd); - r = wrd; - break; - default: - panic("%s: bad width", __func__); - /* NOTREACHED */ - } - - if (i) { -#ifdef PSYCHO_DEBUG - printf("%s: read data error reading: %d.%d.%d: 0x%x\n", - __func__, bus, slot, func, reg); -#endif - r = -1; - } - return (r); + return (ofw_pci_read_config_common(dev, PCI_REGMAX, + PSYCHO_CONF_OFF(bus, slot, func, reg), bus, slot, func, reg, + width)); } static void psycho_write_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, uint32_t val, int width) { - struct psycho_softc *sc; - bus_space_handle_t bh; - u_long offset = 0; - sc = device_get_softc(dev); - if (bus < sc->sc_pci_secbus || bus > sc->sc_pci_subbus || - slot > PCI_SLOTMAX || func > PCI_FUNCMAX || reg > PCI_REGMAX) - return; - - offset = PSYCHO_CONF_OFF(bus, slot, func, reg); - bh = sc->sc_pci_bh[OFW_PCI_CS_CONFIG]; - switch (width) { - case 1: - bus_space_write_1(sc->sc_pci_cfgt, bh, offset, val); - break; - case 2: - bus_space_write_2(sc->sc_pci_cfgt, bh, offset, val); - break; - case 4: - bus_space_write_4(sc->sc_pci_cfgt, bh, offset, val); - break; - default: - panic("%s: bad width", __func__); - /* NOTREACHED */ - } + ofw_pci_write_config_common(dev, PCI_REGMAX, PSYCHO_CONF_OFF(bus, + slot, func, reg), bus, slot, func, reg, val, width); } static int psycho_route_interrupt(device_t bridge, device_t dev, int pin) { struct psycho_softc *sc; - struct ofw_pci_register reg; bus_addr_t intrmap; - ofw_pci_intr_t pintr, mintr; + ofw_pci_intr_t mintr; - sc = device_get_softc(bridge); - pintr = pin; - if (ofw_bus_lookup_imap(ofw_bus_get_node(dev), &sc->sc_pci_iinfo, - ®, sizeof(reg), &pintr, sizeof(pintr), &mintr, sizeof(mintr), - NULL)) + mintr = ofw_pci_route_interrupt_common(bridge, dev, pin); + if (PCI_INTERRUPT_VALID(mintr)) return (mintr); /* * If this is outside of the range for an intpin, it's likely a full @@ -1072,6 +950,7 @@ psycho_route_interrupt(device_t bridge, * for bus A are one-based, while those for bus B seemingly have an * offset of 2 (hence the factor of 3 below). */ + sc = device_get_softc(dev); intrmap = PSR_PCIA0_INT_MAP + 8 * (pci_get_slot(dev) - 1 + 3 * sc->sc_half); mintr = INTINO(PSYCHO_READ8(sc, intrmap)) + pin - 1; @@ -1081,23 +960,6 @@ psycho_route_interrupt(device_t bridge, return (mintr); } -static int -psycho_read_ivar(device_t dev, device_t child, int which, uintptr_t *result) -{ - struct psycho_softc *sc; - - sc = device_get_softc(dev); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Dec 27 19:47:57 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D055A53E62; Sun, 27 Dec 2015 19:47:57 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2B04D1EB3; Sun, 27 Dec 2015 19:47:57 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRJlutu071702; Sun, 27 Dec 2015 19:47:56 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRJlu1O071701; Sun, 27 Dec 2015 19:47:56 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512271947.tBRJlu1O071701@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 19:47:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292790 - stable/10/sys/dev/vt/colors X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 19:47:57 -0000 Author: marius Date: Sun Dec 27 19:47:56 2015 New Revision: 292790 URL: https://svnweb.freebsd.org/changeset/base/292790 Log: MFC: r285912 - Use __FBSDID(). - Const'ify cons_to_vga_colors. - Fix line wrapping. Modified: stable/10/sys/dev/vt/colors/vt_termcolors.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/vt/colors/vt_termcolors.c ============================================================================== --- stable/10/sys/dev/vt/colors/vt_termcolors.c Sun Dec 27 19:37:47 2015 (r292789) +++ stable/10/sys/dev/vt/colors/vt_termcolors.c Sun Dec 27 19:47:56 2015 (r292790) @@ -25,15 +25,16 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ +#include +__FBSDID("$FreeBSD$"); + #include #include -static struct { +static const struct { unsigned char r; /* Red percentage value. */ unsigned char g; /* Green percentage value. */ unsigned char b; /* Blue percentage value. */ @@ -68,8 +69,8 @@ static const int cons_to_vga_colors[16] }; int -vt_generate_cons_palette(uint32_t *palette, int format, uint32_t rmax, int roffset, - uint32_t gmax, int goffset, uint32_t bmax, int boffset) +vt_generate_cons_palette(uint32_t *palette, int format, uint32_t rmax, + int roffset, uint32_t gmax, int goffset, uint32_t bmax, int boffset) { int i; From owner-svn-src-all@freebsd.org Sun Dec 27 19:48:03 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CD6BEA53EAF; Sun, 27 Dec 2015 19:48:03 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 904C21FE0; Sun, 27 Dec 2015 19:48:03 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRJm2KK071756; Sun, 27 Dec 2015 19:48:02 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRJm2GB071755; Sun, 27 Dec 2015 19:48:02 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512271948.tBRJm2GB071755@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 19:48:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292791 - stable/9/sys/dev/vt/colors X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 19:48:03 -0000 Author: marius Date: Sun Dec 27 19:48:02 2015 New Revision: 292791 URL: https://svnweb.freebsd.org/changeset/base/292791 Log: MFC: r285912 - Use __FBSDID(). - Const'ify cons_to_vga_colors. - Fix line wrapping. Modified: stable/9/sys/dev/vt/colors/vt_termcolors.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/vt/colors/vt_termcolors.c ============================================================================== --- stable/9/sys/dev/vt/colors/vt_termcolors.c Sun Dec 27 19:47:56 2015 (r292790) +++ stable/9/sys/dev/vt/colors/vt_termcolors.c Sun Dec 27 19:48:02 2015 (r292791) @@ -25,15 +25,16 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ +#include +__FBSDID("$FreeBSD$"); + #include #include -static struct { +static const struct { unsigned char r; /* Red percentage value. */ unsigned char g; /* Green percentage value. */ unsigned char b; /* Blue percentage value. */ @@ -68,8 +69,8 @@ static const int cons_to_vga_colors[16] }; int -vt_generate_cons_palette(uint32_t *palette, int format, uint32_t rmax, int roffset, - uint32_t gmax, int goffset, uint32_t bmax, int boffset) +vt_generate_cons_palette(uint32_t *palette, int format, uint32_t rmax, + int roffset, uint32_t gmax, int goffset, uint32_t bmax, int boffset) { int i; From owner-svn-src-all@freebsd.org Sun Dec 27 20:05:28 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67B6AA5232A; Sun, 27 Dec 2015 20:05:28 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pf0-x22e.google.com (mail-pf0-x22e.google.com [IPv6:2607:f8b0:400e:c00::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3AD3F1758; Sun, 27 Dec 2015 20:05:28 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pf0-x22e.google.com with SMTP id q63so66969349pfb.0; Sun, 27 Dec 2015 12:05:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=qYpQWQnp58DoltxSZDlR/0YjUvYCqKxmM3NG14i0DNg=; b=QpoON1MBZXcVOa3yBwd+CfNUMpSWZIxSGBuRCogmTvpKJzFhhA5xxhqunfF+xtnSpZ JLyRCUjvr1hLmh0FIrxibWnvlaQW+Czdf0vR9/MTwtxUmpZ+8n6/16/aI26a4AobkWsZ ebXZqnwfmfVDbbKogZK2e70zSdYEnKLDWbsGjJTJ2mAb8D5hEyvUgYiaWC2Y0fQ8wpcu bbE6uoZk5+CXRWULWcrE4Ai9Y1ShCecGR3uNrBQYxQcPRxt6WU3bXrfd/x+vD28A4WGD 1QyOTkxbywvtRrMjz0C7j1pL4Cdj15QDQetsHDEfxOd2c32yEKJ77vqxVWKPn0B5Y84N /kWA== X-Received: by 10.98.68.146 with SMTP id m18mr50942527pfi.77.1451246727842; Sun, 27 Dec 2015 12:05:27 -0800 (PST) Received: from ?IPv6:2601:601:800:126d:fd97:b044:5389:fa9b? ([2601:601:800:126d:fd97:b044:5389:fa9b]) by smtp.gmail.com with ESMTPSA id q27sm27981560pfi.83.2015.12.27.12.05.25 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 27 Dec 2015 12:05:26 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern From: NGie Cooper In-Reply-To: <20151227193046.GE4535@zxy.spb.ru> Date: Sun, 27 Dec 2015 12:05:24 -0800 Cc: Ian Lepore , Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <8D7D617E-FF9E-4D74-87CB-1F3EE65D108A@gmail.com> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> <20151227184101.GG70867@zxy.spb.ru> <1451243810.1369.10.camel@freebsd.org> <20151227193046.GE4535@zxy.spb.ru> To: Slawa Olhovchenkov X-Mailer: Apple Mail (2.2104) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 20:05:28 -0000 > On Dec 27, 2015, at 11:30, Slawa Olhovchenkov wrote: =E2=80=A6 >> I have no idea what you mean by that -- I didn't say anything at all >> about panic. >=20 > As I understund commit log -- this is prevent kernel panic at some > call (with illegal arguments). This accpetable irrelevant to bugs in > calling code. This also makes us POSIX compliant and more compatible with = Linux: = http://pubs.opengroup.org/onlinepubs/007908799/xsh/clock_settime.html = (search for =E2=80=9Cnegative=E2=80=9D). Thanks kib! -NGie= From owner-svn-src-all@freebsd.org Sun Dec 27 20:25:37 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A629A52916 for ; Sun, 27 Dec 2015 20:25:37 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from pmta2.delivery6.ore.mailhop.org (pmta2.delivery6.ore.mailhop.org [54.200.129.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2B9D01F6C for ; Sun, 27 Dec 2015 20:25:36 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound2.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Sun, 27 Dec 2015 20:24:52 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id tBRKOSYV012518; Sun, 27 Dec 2015 13:24:28 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1451247868.1369.16.camel@freebsd.org> Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern From: Ian Lepore To: NGie Cooper , Slawa Olhovchenkov Cc: Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Sun, 27 Dec 2015 13:24:28 -0700 In-Reply-To: <8D7D617E-FF9E-4D74-87CB-1F3EE65D108A@gmail.com> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> <20151227184101.GG70867@zxy.spb.ru> <1451243810.1369.10.camel@freebsd.org> <20151227193046.GE4535@zxy.spb.ru> <8D7D617E-FF9E-4D74-87CB-1F3EE65D108A@gmail.com> Content-Type: text/plain; charset="windows-1251" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 20:25:37 -0000 On Sun, 2015-12-27 at 12:05 -0800, NGie Cooper wrote: > > On Dec 27, 2015, at 11:30, Slawa Olhovchenkov > > wrote: > > … > > > > I have no idea what you mean by that -- I didn't say anything at > > > all > > > about panic. > > > > As I understund commit log -- this is prevent kernel panic at some > > call (with illegal arguments). This accpetable irrelevant to bugs > > in > > calling code. > > This also makes us POSIX compliant and more compatible with > Linux: > http://pubs.opengroup.org/onlinepubs/007908799/xsh/clock_settime.html > (search for “negative”). > Thanks kib! > -NGie This thread just keeps becoming more and more surrealistic. First someone tries to reply to the original commit (I guess?) by replying with a complete non sequitur to my reply. Now you cite a document that says nothing directly related to the commit at all. The only reference to "negative" in what you cited is part of specifying how to truncate/round fractional values that fall between two representable values given the resolution of the clock you're setting. Later in that document they specifically require EINVAL for negative fractional second values. If they intended to to prohibit negative whole-second values, that would certainly have been the place to mention it, and they don't. -- Ian From owner-svn-src-all@freebsd.org Sun Dec 27 20:49:34 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0A9ACA53034; Sun, 27 Dec 2015 20:49:34 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CB21D198E; Sun, 27 Dec 2015 20:49:33 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRKnWe6089483; Sun, 27 Dec 2015 20:49:32 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRKnW2b089482; Sun, 27 Dec 2015 20:49:32 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512272049.tBRKnW2b089482@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 20:49:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292792 - stable/10/sys/dev/usb/net X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 20:49:34 -0000 Author: marius Date: Sun Dec 27 20:49:32 2015 New Revision: 292792 URL: https://svnweb.freebsd.org/changeset/base/292792 Log: MFC: r285909, r285913 (partial) - Probe UICLASS_CDC/UISUBCLASS_ABSTRACT_CONTROL_MODEL/0xff again. This variant of Microsoft RNDIS, i. e. their unofficial version of CDC ACM, has been disabled in r261544 (r262363 in stable/10) for resolving a conflict with umodem(4). Eventually, in r275790 (r276243 in stable/10) that problem was dealt with in the right way. However, r275790 failed to put probing of RNDIS devices in question back. - Initialize the device prior to querying it, as required by the RNDIS specification. Otherwise already determining the MAC address may fail rightfully. - On detach, halt the device again. - Use UCDC_SEND_ENCAPSULATED_{COMMAND,RESPONSE}. While these macros are resolving to the same values as UR_{CLEAR_FEATURE,GET_STATUS}, the former set is way more appropriate in this context. - Report unknown - rather: unimplemented - events unconditionally and not just in debug mode. This ensures that we'll get some hint of what is going wrong instead of the driver silently failing. - Deal with the Microsoft ActiveSync requirement of using an input buffer the size of the expected reply or larger - except for variably sized replies - when querying a device. - Fix some pointless NULL checks, style bugs etc. This changes allow urndis(4) to communicate with a Microsoft-certified USB RNDIS test token. Modified: stable/10/sys/dev/usb/net/if_urndis.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/usb/net/if_urndis.c ============================================================================== --- stable/10/sys/dev/usb/net/if_urndis.c Sun Dec 27 19:48:02 2015 (r292791) +++ stable/10/sys/dev/usb/net/if_urndis.c Sun Dec 27 20:49:32 2015 (r292792) @@ -78,12 +78,20 @@ static uether_fn_t urndis_start; static uether_fn_t urndis_setmulti; static uether_fn_t urndis_setpromisc; -static uint32_t urndis_ctrl_query(struct urndis_softc *, uint32_t, const void **, uint16_t *); -static uint32_t urndis_ctrl_set(struct urndis_softc *, uint32_t, struct urndis_set_req *, uint16_t); -static uint32_t urndis_ctrl_handle_init(struct urndis_softc *, const struct urndis_comp_hdr *); -static uint32_t urndis_ctrl_handle_query(struct urndis_softc *, const struct urndis_comp_hdr *, const void **, uint16_t *); -static uint32_t urndis_ctrl_handle_reset(struct urndis_softc *, const struct urndis_comp_hdr *); -static uint32_t urndis_ctrl_init(struct urndis_softc *); +static uint32_t urndis_ctrl_query(struct urndis_softc *sc, uint32_t oid, + struct urndis_query_req *msg, uint16_t len, + const void **rbuf, uint16_t *rbufsz); +static uint32_t urndis_ctrl_set(struct urndis_softc *sc, uint32_t oid, + struct urndis_set_req *msg, uint16_t len); +static uint32_t urndis_ctrl_handle_init(struct urndis_softc *sc, + const struct urndis_comp_hdr *hdr); +static uint32_t urndis_ctrl_handle_query(struct urndis_softc *sc, + const struct urndis_comp_hdr *hdr, const void **buf, + uint16_t *bufsz); +static uint32_t urndis_ctrl_handle_reset(struct urndis_softc *sc, + const struct urndis_comp_hdr *hdr); +static uint32_t urndis_ctrl_init(struct urndis_softc *sc); +static uint32_t urndis_ctrl_halt(struct urndis_softc *sc); #ifdef USB_DEBUG static int urndis_debug = 0; @@ -93,7 +101,6 @@ SYSCTL_INT(_hw_usb_urndis, OID_AUTO, deb #endif static const struct usb_config urndis_config[URNDIS_N_TRANSFER] = { - [URNDIS_BULK_RX] = { .type = UE_BULK, .endpoint = UE_ADDR_ANY, @@ -154,7 +161,7 @@ static driver_t urndis_driver = { static devclass_t urndis_devclass; -DRIVER_MODULE(urndis, uhub, urndis_driver, urndis_devclass, NULL, 0); +DRIVER_MODULE(urndis, uhub, urndis_driver, urndis_devclass, NULL, NULL); MODULE_VERSION(urndis, 1); MODULE_DEPEND(urndis, uether, 1, 1, 1); MODULE_DEPEND(urndis, usb, 1, 1, 1); @@ -171,6 +178,9 @@ static const struct usb_ether_methods ur static const STRUCT_USB_HOST_ID urndis_host_devs[] = { /* Generic RNDIS class match */ + {USB_IFACE_CLASS(UICLASS_CDC), + USB_IFACE_SUBCLASS(UISUBCLASS_ABSTRACT_CONTROL_MODEL), + USB_IFACE_PROTOCOL(0xff)}, {USB_IFACE_CLASS(UICLASS_WIRELESS), USB_IFACE_SUBCLASS(UISUBCLASS_RF), USB_IFACE_PROTOCOL(UIPROTO_RNDIS)}, {USB_IFACE_CLASS(UICLASS_IAD), USB_IFACE_SUBCLASS(UISUBCLASS_SYNC), @@ -192,21 +202,27 @@ urndis_probe(device_t dev) static void urndis_attach_post(struct usb_ether *ue) { + /* no-op */ - return; } static int urndis_attach(device_t dev) { + static struct { + union { + struct urndis_query_req query; + struct urndis_set_req set; + } hdr; + union { + uint8_t eaddr[ETHER_ADDR_LEN]; + uint32_t filter; + } ibuf; + } msg; struct urndis_softc *sc = device_get_softc(dev); struct usb_ether *ue = &sc->sc_ue; struct usb_attach_arg *uaa = device_get_ivars(dev); struct usb_cdc_cm_descriptor *cmd; - struct { - struct urndis_set_req hdr; - uint32_t filter; - } msg_filter; const void *buf; uint16_t bufsz; uint8_t iface_index[2] = { uaa->info.bIfaceIndex + 1, uaa->info.bIfaceIndex }; @@ -228,9 +244,7 @@ urndis_attach(device_t dev) mtx_init(&sc->sc_mtx, device_get_nameunit(dev), NULL, MTX_DEF); /* scan the alternate settings looking for a valid one */ - for (i = 0; i != 32; i++) { - error = usbd_set_alt_interface_index(uaa->device, iface_index[0], i); @@ -244,16 +258,27 @@ urndis_attach(device_t dev) if (error == 0) break; } - if ((error != 0) || (i == 32)) { - device_printf(dev, "No valid alternate " - "setting found\n"); + device_printf(dev, "No valid alternate setting found\n"); goto detach; } + + /* Initialize device - must be done before even querying it */ URNDIS_LOCK(sc); - error = urndis_ctrl_query(sc, OID_802_3_PERMANENT_ADDRESS, &buf, &bufsz); + error = urndis_ctrl_init(sc); URNDIS_UNLOCK(sc); + if (error != (int)RNDIS_STATUS_SUCCESS) { + device_printf(dev, "Unable to initialize hardware\n"); + goto detach; + } + /* Determine MAC address */ + memset(msg.ibuf.eaddr, 0, sizeof(msg.ibuf.eaddr)); + URNDIS_LOCK(sc); + error = urndis_ctrl_query(sc, OID_802_3_PERMANENT_ADDRESS, + &msg.hdr.query, sizeof(msg.hdr.query) + sizeof(msg.ibuf.eaddr), + &buf, &bufsz); + URNDIS_UNLOCK(sc); if (error != (int)RNDIS_STATUS_SUCCESS) { device_printf(dev, "Unable to get hardware address\n"); goto detach; @@ -267,17 +292,16 @@ urndis_attach(device_t dev) /* Initialize packet filter */ sc->sc_filter = RNDIS_PACKET_TYPE_BROADCAST | RNDIS_PACKET_TYPE_ALL_MULTICAST; - msg_filter.filter = htole32(sc->sc_filter); - + msg.ibuf.filter = htole32(sc->sc_filter); URNDIS_LOCK(sc); error = urndis_ctrl_set(sc, OID_GEN_CURRENT_PACKET_FILTER, - &msg_filter.hdr, sizeof(msg_filter)); + &msg.hdr.set, sizeof(msg.hdr.set) + sizeof(msg.ibuf.filter)); URNDIS_UNLOCK(sc); - if (error != (int)RNDIS_STATUS_SUCCESS) { device_printf(dev, "Unable to set data filters\n"); goto detach; } + ue->ue_sc = sc; ue->ue_dev = dev; ue->ue_udev = uaa->device; @@ -298,7 +322,7 @@ urndis_attach(device_t dev) return (0); /* success */ detach: - urndis_detach(dev); + (void)urndis_detach(dev); return (ENXIO); /* failure */ } @@ -313,6 +337,10 @@ urndis_detach(device_t dev) uether_ifdetach(ue); + URNDIS_LOCK(sc); + (void)urndis_ctrl_halt(sc); + URNDIS_UNLOCK(sc); + mtx_destroy(&sc->sc_mtx); return (0); @@ -340,8 +368,6 @@ urndis_init(struct usb_ether *ue) ifp->if_drv_flags |= IFF_DRV_RUNNING; - urndis_ctrl_init(sc); - /* stall data write direction, which depends on USB mode */ usbd_xfer_set_stall(sc->sc_xfer[URNDIS_BULK_TX]); @@ -369,20 +395,21 @@ urndis_stop(struct usb_ether *ue) static void urndis_setmulti(struct usb_ether *ue) { + /* no-op */ - return; } static void urndis_setpromisc(struct usb_ether *ue) { + /* no-op */ - return; } static int urndis_suspend(device_t dev) { + device_printf(dev, "Suspending\n"); return (0); } @@ -390,6 +417,7 @@ urndis_suspend(device_t dev) static int urndis_resume(device_t dev) { + device_printf(dev, "Resuming\n"); return (0); } @@ -416,8 +444,8 @@ urndis_ctrl_send(struct urndis_softc *sc { usb_error_t err; - err = urndis_ctrl_msg(sc, UT_WRITE_CLASS_INTERFACE, UR_GET_STATUS, - sc->sc_ifaceno_ctl, 0, buf, len); + err = urndis_ctrl_msg(sc, UT_WRITE_CLASS_INTERFACE, + UCDC_SEND_ENCAPSULATED_COMMAND, sc->sc_ifaceno_ctl, 0, buf, len); DPRINTF("%s\n", usbd_errstr(err)); @@ -430,8 +458,9 @@ urndis_ctrl_recv(struct urndis_softc *sc struct urndis_comp_hdr *hdr; usb_error_t err; - err = urndis_ctrl_msg(sc, UT_READ_CLASS_INTERFACE, UR_CLEAR_FEATURE, - sc->sc_ifaceno_ctl, 0, sc->sc_response_buf, RNDIS_RESPONSE_LEN); + err = urndis_ctrl_msg(sc, UT_READ_CLASS_INTERFACE, + UCDC_GET_ENCAPSULATED_RESPONSE, sc->sc_ifaceno_ctl, 0, + sc->sc_response_buf, RNDIS_RESPONSE_LEN); if (err != USB_ERR_NORMAL_COMPLETION) return (NULL); @@ -480,7 +509,8 @@ urndis_ctrl_handle(struct urndis_softc * break; default: - DPRINTF("ctrl message error: unknown event 0x%x\n", + device_printf(sc->sc_ue.ue_dev, + "ctrl message error: unknown event 0x%x\n", le32toh(hdr->rm_type)); rval = RNDIS_STATUS_FAILURE; break; @@ -548,10 +578,8 @@ urndis_ctrl_handle_query(struct urndis_s le32toh(msg->rm_infobuflen), le32toh(msg->rm_infobufoffset)); - if (buf != NULL && bufsz != NULL) { - *buf = NULL; - *bufsz = 0; - } + *buf = NULL; + *bufsz = 0; if (le32toh(msg->rm_status) != RNDIS_STATUS_SUCCESS) { DPRINTF("query failed 0x%x\n", le32toh(msg->rm_status)); return (le32toh(msg->rm_status)); @@ -571,10 +599,10 @@ urndis_ctrl_handle_query(struct urndis_s le32toh(msg->rm_len)); return (RNDIS_STATUS_FAILURE); } - if (buf != NULL && bufsz != NULL) { - *buf = ((const uint8_t *)msg) + RNDIS_HEADER_OFFSET + le32toh(msg->rm_infobufoffset); - *bufsz = le32toh(msg->rm_infobuflen); - } + *buf = ((const uint8_t *)msg) + RNDIS_HEADER_OFFSET + + le32toh(msg->rm_infobufoffset); + *bufsz = le32toh(msg->rm_infobuflen); + return (le32toh(msg->rm_status)); } @@ -627,7 +655,7 @@ urndis_ctrl_init(struct urndis_softc *sc msg.rm_type = htole32(REMOTE_NDIS_INITIALIZE_MSG); msg.rm_len = htole32(sizeof(msg)); - msg.rm_rid = htole32(0); + msg.rm_rid = 0; msg.rm_ver_major = htole32(1); msg.rm_ver_minor = htole32(1); msg.rm_max_xfersz = htole32(RNDIS_RX_MAXLEN); @@ -656,7 +684,6 @@ urndis_ctrl_init(struct urndis_softc *sc return (rval); } -#if 0 static uint32_t urndis_ctrl_halt(struct urndis_softc *sc) { @@ -675,39 +702,48 @@ urndis_ctrl_halt(struct urndis_softc *sc rval = urndis_ctrl_send(sc, &msg, sizeof(msg)); if (rval != RNDIS_STATUS_SUCCESS) - printf("halt failed\n"); + DPRINTF("halt failed\n"); return (rval); } -#endif - +/* + * NB: Querying a device has the requirment of using an input buffer the size + * of the expected reply or larger, except for variably sized replies. + */ static uint32_t -urndis_ctrl_query(struct urndis_softc *sc, uint32_t oid, const void **rbuf, uint16_t *rbufsz) +urndis_ctrl_query(struct urndis_softc *sc, uint32_t oid, + struct urndis_query_req *msg, uint16_t len, const void **rbuf, + uint16_t *rbufsz) { - struct urndis_query_req msg; - uint32_t rval; struct urndis_comp_hdr *hdr; + uint32_t datalen, rval; - msg.rm_type = htole32(REMOTE_NDIS_QUERY_MSG); - msg.rm_len = htole32(sizeof(msg)); - msg.rm_rid = 0; /* XXX */ - msg.rm_oid = htole32(oid); - msg.rm_infobuflen = htole32(0); - msg.rm_infobufoffset = 0; - msg.rm_devicevchdl = 0; + msg->rm_type = htole32(REMOTE_NDIS_QUERY_MSG); + msg->rm_len = htole32(len); + msg->rm_rid = 0; /* XXX */ + msg->rm_oid = htole32(oid); + datalen = len - sizeof(*msg); + msg->rm_infobuflen = htole32(datalen); + if (datalen != 0) { + msg->rm_infobufoffset = htole32(sizeof(*msg) - + RNDIS_HEADER_OFFSET); + } else { + msg->rm_infobufoffset = 0; + } + msg->rm_devicevchdl = 0; DPRINTF("type %u len %u rid %u oid 0x%x " "infobuflen %u infobufoffset %u devicevchdl %u\n", - le32toh(msg.rm_type), - le32toh(msg.rm_len), - le32toh(msg.rm_rid), - le32toh(msg.rm_oid), - le32toh(msg.rm_infobuflen), - le32toh(msg.rm_infobufoffset), - le32toh(msg.rm_devicevchdl)); + le32toh(msg->rm_type), + le32toh(msg->rm_len), + le32toh(msg->rm_rid), + le32toh(msg->rm_oid), + le32toh(msg->rm_infobuflen), + le32toh(msg->rm_infobufoffset), + le32toh(msg->rm_devicevchdl)); - rval = urndis_ctrl_send(sc, &msg, sizeof(msg)); + rval = urndis_ctrl_send(sc, msg, len); if (rval != RNDIS_STATUS_SUCCESS) { DPRINTF("query failed\n"); @@ -723,19 +759,21 @@ urndis_ctrl_query(struct urndis_softc *s } static uint32_t -urndis_ctrl_set(struct urndis_softc *sc, uint32_t oid, struct urndis_set_req *msg, uint16_t len) +urndis_ctrl_set(struct urndis_softc *sc, uint32_t oid, + struct urndis_set_req *msg, uint16_t len) { struct urndis_comp_hdr *hdr; - uint32_t rval; - uint32_t datalen = len - sizeof(*msg); + uint32_t datalen, rval; msg->rm_type = htole32(REMOTE_NDIS_SET_MSG); msg->rm_len = htole32(len); msg->rm_rid = 0; /* XXX */ msg->rm_oid = htole32(oid); + datalen = len - sizeof(*msg); msg->rm_infobuflen = htole32(datalen); if (datalen != 0) { - msg->rm_infobufoffset = htole32(sizeof(*msg) - RNDIS_HEADER_OFFSET); + msg->rm_infobufoffset = htole32(sizeof(*msg) - + RNDIS_HEADER_OFFSET); } else { msg->rm_infobufoffset = 0; } @@ -782,13 +820,11 @@ urndis_bulk_read_callback(struct usb_xfe switch (USB_GET_STATE(xfer)) { case USB_ST_TRANSFERRED: - usbd_xfer_status(xfer, &actlen, NULL, &aframes, NULL); DPRINTFN(1, "received %u bytes in %u frames\n", actlen, aframes); for (offset = 0; actlen >= (uint32_t)sizeof(msg);) { - /* copy out header */ usbd_copy_out(pc, offset, &msg, sizeof(msg)); @@ -930,7 +966,7 @@ tr_setup: usbd_xfer_set_frame_offset(xfer, x * RNDIS_TX_MAXLEN, x); - next_pkt: +next_pkt: IFQ_DRV_DEQUEUE(&ifp->if_snd, m); if (m == NULL) From owner-svn-src-all@freebsd.org Sun Dec 27 20:49:37 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C78D1A53054; Sun, 27 Dec 2015 20:49:37 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 922CD1998; Sun, 27 Dec 2015 20:49:37 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRKna02089530; Sun, 27 Dec 2015 20:49:36 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRKnaew089529; Sun, 27 Dec 2015 20:49:36 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512272049.tBRKnaew089529@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 20:49:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292793 - stable/9/sys/dev/usb/net X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 20:49:38 -0000 Author: marius Date: Sun Dec 27 20:49:36 2015 New Revision: 292793 URL: https://svnweb.freebsd.org/changeset/base/292793 Log: MFC: r285909, r285913 (partial) - Probe UICLASS_CDC/UISUBCLASS_ABSTRACT_CONTROL_MODEL/0xff again. This variant of Microsoft RNDIS, i. e. their unofficial version of CDC ACM, has been disabled in r261544 (r262362 in stable/9) for resolving a conflict with umodem(4). Eventually, in r275790 (r276244 in stable/9) that problem was dealt with in the right way. However, r275790 failed to put probing of RNDIS devices in question back. - Initialize the device prior to querying it, as required by the RNDIS specification. Otherwise already determining the MAC address may fail rightfully. - On detach, halt the device again. - Use UCDC_SEND_ENCAPSULATED_{COMMAND,RESPONSE}. While these macros are resolving to the same values as UR_{CLEAR_FEATURE,GET_STATUS}, the former set is way more appropriate in this context. - Report unknown - rather: unimplemented - events unconditionally and not just in debug mode. This ensures that we'll get some hint of what is going wrong instead of the driver silently failing. - Deal with the Microsoft ActiveSync requirement of using an input buffer the size of the expected reply or larger - except for variably sized replies - when querying a device. - Fix some pointless NULL checks, style bugs etc. This changes allow urndis(4) to communicate with a Microsoft-certified USB RNDIS test token. Modified: stable/9/sys/dev/usb/net/if_urndis.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/usb/net/if_urndis.c ============================================================================== --- stable/9/sys/dev/usb/net/if_urndis.c Sun Dec 27 20:49:32 2015 (r292792) +++ stable/9/sys/dev/usb/net/if_urndis.c Sun Dec 27 20:49:36 2015 (r292793) @@ -78,12 +78,20 @@ static uether_fn_t urndis_start; static uether_fn_t urndis_setmulti; static uether_fn_t urndis_setpromisc; -static uint32_t urndis_ctrl_query(struct urndis_softc *, uint32_t, const void **, uint16_t *); -static uint32_t urndis_ctrl_set(struct urndis_softc *, uint32_t, struct urndis_set_req *, uint16_t); -static uint32_t urndis_ctrl_handle_init(struct urndis_softc *, const struct urndis_comp_hdr *); -static uint32_t urndis_ctrl_handle_query(struct urndis_softc *, const struct urndis_comp_hdr *, const void **, uint16_t *); -static uint32_t urndis_ctrl_handle_reset(struct urndis_softc *, const struct urndis_comp_hdr *); -static uint32_t urndis_ctrl_init(struct urndis_softc *); +static uint32_t urndis_ctrl_query(struct urndis_softc *sc, uint32_t oid, + struct urndis_query_req *msg, uint16_t len, + const void **rbuf, uint16_t *rbufsz); +static uint32_t urndis_ctrl_set(struct urndis_softc *sc, uint32_t oid, + struct urndis_set_req *msg, uint16_t len); +static uint32_t urndis_ctrl_handle_init(struct urndis_softc *sc, + const struct urndis_comp_hdr *hdr); +static uint32_t urndis_ctrl_handle_query(struct urndis_softc *sc, + const struct urndis_comp_hdr *hdr, const void **buf, + uint16_t *bufsz); +static uint32_t urndis_ctrl_handle_reset(struct urndis_softc *sc, + const struct urndis_comp_hdr *hdr); +static uint32_t urndis_ctrl_init(struct urndis_softc *sc); +static uint32_t urndis_ctrl_halt(struct urndis_softc *sc); #ifdef USB_DEBUG static int urndis_debug = 0; @@ -93,7 +101,6 @@ SYSCTL_INT(_hw_usb_urndis, OID_AUTO, deb #endif static const struct usb_config urndis_config[URNDIS_N_TRANSFER] = { - [URNDIS_BULK_RX] = { .type = UE_BULK, .endpoint = UE_ADDR_ANY, @@ -154,7 +161,7 @@ static driver_t urndis_driver = { static devclass_t urndis_devclass; -DRIVER_MODULE(urndis, uhub, urndis_driver, urndis_devclass, NULL, 0); +DRIVER_MODULE(urndis, uhub, urndis_driver, urndis_devclass, NULL, NULL); MODULE_VERSION(urndis, 1); MODULE_DEPEND(urndis, uether, 1, 1, 1); MODULE_DEPEND(urndis, usb, 1, 1, 1); @@ -171,6 +178,9 @@ static const struct usb_ether_methods ur static const STRUCT_USB_HOST_ID urndis_host_devs[] = { /* Generic RNDIS class match */ + {USB_IFACE_CLASS(UICLASS_CDC), + USB_IFACE_SUBCLASS(UISUBCLASS_ABSTRACT_CONTROL_MODEL), + USB_IFACE_PROTOCOL(0xff)}, {USB_IFACE_CLASS(UICLASS_WIRELESS), USB_IFACE_SUBCLASS(UISUBCLASS_RF), USB_IFACE_PROTOCOL(UIPROTO_RNDIS)}, {USB_IFACE_CLASS(UICLASS_IAD), USB_IFACE_SUBCLASS(UISUBCLASS_SYNC), @@ -192,21 +202,27 @@ urndis_probe(device_t dev) static void urndis_attach_post(struct usb_ether *ue) { + /* no-op */ - return; } static int urndis_attach(device_t dev) { + static struct { + union { + struct urndis_query_req query; + struct urndis_set_req set; + } hdr; + union { + uint8_t eaddr[ETHER_ADDR_LEN]; + uint32_t filter; + } ibuf; + } msg; struct urndis_softc *sc = device_get_softc(dev); struct usb_ether *ue = &sc->sc_ue; struct usb_attach_arg *uaa = device_get_ivars(dev); struct usb_cdc_cm_descriptor *cmd; - struct { - struct urndis_set_req hdr; - uint32_t filter; - } msg_filter; const void *buf; uint16_t bufsz; uint8_t iface_index[2] = { uaa->info.bIfaceIndex + 1, uaa->info.bIfaceIndex }; @@ -228,9 +244,7 @@ urndis_attach(device_t dev) mtx_init(&sc->sc_mtx, device_get_nameunit(dev), NULL, MTX_DEF); /* scan the alternate settings looking for a valid one */ - for (i = 0; i != 32; i++) { - error = usbd_set_alt_interface_index(uaa->device, iface_index[0], i); @@ -244,16 +258,27 @@ urndis_attach(device_t dev) if (error == 0) break; } - if ((error != 0) || (i == 32)) { - device_printf(dev, "No valid alternate " - "setting found\n"); + device_printf(dev, "No valid alternate setting found\n"); goto detach; } + + /* Initialize device - must be done before even querying it */ URNDIS_LOCK(sc); - error = urndis_ctrl_query(sc, OID_802_3_PERMANENT_ADDRESS, &buf, &bufsz); + error = urndis_ctrl_init(sc); URNDIS_UNLOCK(sc); + if (error != (int)RNDIS_STATUS_SUCCESS) { + device_printf(dev, "Unable to initialize hardware\n"); + goto detach; + } + /* Determine MAC address */ + memset(msg.ibuf.eaddr, 0, sizeof(msg.ibuf.eaddr)); + URNDIS_LOCK(sc); + error = urndis_ctrl_query(sc, OID_802_3_PERMANENT_ADDRESS, + &msg.hdr.query, sizeof(msg.hdr.query) + sizeof(msg.ibuf.eaddr), + &buf, &bufsz); + URNDIS_UNLOCK(sc); if (error != (int)RNDIS_STATUS_SUCCESS) { device_printf(dev, "Unable to get hardware address\n"); goto detach; @@ -267,17 +292,16 @@ urndis_attach(device_t dev) /* Initialize packet filter */ sc->sc_filter = RNDIS_PACKET_TYPE_BROADCAST | RNDIS_PACKET_TYPE_ALL_MULTICAST; - msg_filter.filter = htole32(sc->sc_filter); - + msg.ibuf.filter = htole32(sc->sc_filter); URNDIS_LOCK(sc); error = urndis_ctrl_set(sc, OID_GEN_CURRENT_PACKET_FILTER, - &msg_filter.hdr, sizeof(msg_filter)); + &msg.hdr.set, sizeof(msg.hdr.set) + sizeof(msg.ibuf.filter)); URNDIS_UNLOCK(sc); - if (error != (int)RNDIS_STATUS_SUCCESS) { device_printf(dev, "Unable to set data filters\n"); goto detach; } + ue->ue_sc = sc; ue->ue_dev = dev; ue->ue_udev = uaa->device; @@ -298,7 +322,7 @@ urndis_attach(device_t dev) return (0); /* success */ detach: - urndis_detach(dev); + (void)urndis_detach(dev); return (ENXIO); /* failure */ } @@ -313,6 +337,10 @@ urndis_detach(device_t dev) uether_ifdetach(ue); + URNDIS_LOCK(sc); + (void)urndis_ctrl_halt(sc); + URNDIS_UNLOCK(sc); + mtx_destroy(&sc->sc_mtx); return (0); @@ -340,8 +368,6 @@ urndis_init(struct usb_ether *ue) ifp->if_drv_flags |= IFF_DRV_RUNNING; - urndis_ctrl_init(sc); - /* stall data write direction, which depends on USB mode */ usbd_xfer_set_stall(sc->sc_xfer[URNDIS_BULK_TX]); @@ -369,20 +395,21 @@ urndis_stop(struct usb_ether *ue) static void urndis_setmulti(struct usb_ether *ue) { + /* no-op */ - return; } static void urndis_setpromisc(struct usb_ether *ue) { + /* no-op */ - return; } static int urndis_suspend(device_t dev) { + device_printf(dev, "Suspending\n"); return (0); } @@ -390,6 +417,7 @@ urndis_suspend(device_t dev) static int urndis_resume(device_t dev) { + device_printf(dev, "Resuming\n"); return (0); } @@ -416,8 +444,8 @@ urndis_ctrl_send(struct urndis_softc *sc { usb_error_t err; - err = urndis_ctrl_msg(sc, UT_WRITE_CLASS_INTERFACE, UR_GET_STATUS, - sc->sc_ifaceno_ctl, 0, buf, len); + err = urndis_ctrl_msg(sc, UT_WRITE_CLASS_INTERFACE, + UCDC_SEND_ENCAPSULATED_COMMAND, sc->sc_ifaceno_ctl, 0, buf, len); DPRINTF("%s\n", usbd_errstr(err)); @@ -430,8 +458,9 @@ urndis_ctrl_recv(struct urndis_softc *sc struct urndis_comp_hdr *hdr; usb_error_t err; - err = urndis_ctrl_msg(sc, UT_READ_CLASS_INTERFACE, UR_CLEAR_FEATURE, - sc->sc_ifaceno_ctl, 0, sc->sc_response_buf, RNDIS_RESPONSE_LEN); + err = urndis_ctrl_msg(sc, UT_READ_CLASS_INTERFACE, + UCDC_GET_ENCAPSULATED_RESPONSE, sc->sc_ifaceno_ctl, 0, + sc->sc_response_buf, RNDIS_RESPONSE_LEN); if (err != USB_ERR_NORMAL_COMPLETION) return (NULL); @@ -480,7 +509,8 @@ urndis_ctrl_handle(struct urndis_softc * break; default: - DPRINTF("ctrl message error: unknown event 0x%x\n", + device_printf(sc->sc_ue.ue_dev, + "ctrl message error: unknown event 0x%x\n", le32toh(hdr->rm_type)); rval = RNDIS_STATUS_FAILURE; break; @@ -548,10 +578,8 @@ urndis_ctrl_handle_query(struct urndis_s le32toh(msg->rm_infobuflen), le32toh(msg->rm_infobufoffset)); - if (buf != NULL && bufsz != NULL) { - *buf = NULL; - *bufsz = 0; - } + *buf = NULL; + *bufsz = 0; if (le32toh(msg->rm_status) != RNDIS_STATUS_SUCCESS) { DPRINTF("query failed 0x%x\n", le32toh(msg->rm_status)); return (le32toh(msg->rm_status)); @@ -571,10 +599,10 @@ urndis_ctrl_handle_query(struct urndis_s le32toh(msg->rm_len)); return (RNDIS_STATUS_FAILURE); } - if (buf != NULL && bufsz != NULL) { - *buf = ((const uint8_t *)msg) + RNDIS_HEADER_OFFSET + le32toh(msg->rm_infobufoffset); - *bufsz = le32toh(msg->rm_infobuflen); - } + *buf = ((const uint8_t *)msg) + RNDIS_HEADER_OFFSET + + le32toh(msg->rm_infobufoffset); + *bufsz = le32toh(msg->rm_infobuflen); + return (le32toh(msg->rm_status)); } @@ -627,7 +655,7 @@ urndis_ctrl_init(struct urndis_softc *sc msg.rm_type = htole32(REMOTE_NDIS_INITIALIZE_MSG); msg.rm_len = htole32(sizeof(msg)); - msg.rm_rid = htole32(0); + msg.rm_rid = 0; msg.rm_ver_major = htole32(1); msg.rm_ver_minor = htole32(1); msg.rm_max_xfersz = htole32(RNDIS_RX_MAXLEN); @@ -656,7 +684,6 @@ urndis_ctrl_init(struct urndis_softc *sc return (rval); } -#if 0 static uint32_t urndis_ctrl_halt(struct urndis_softc *sc) { @@ -675,39 +702,48 @@ urndis_ctrl_halt(struct urndis_softc *sc rval = urndis_ctrl_send(sc, &msg, sizeof(msg)); if (rval != RNDIS_STATUS_SUCCESS) - printf("halt failed\n"); + DPRINTF("halt failed\n"); return (rval); } -#endif - +/* + * NB: Querying a device has the requirment of using an input buffer the size + * of the expected reply or larger, except for variably sized replies. + */ static uint32_t -urndis_ctrl_query(struct urndis_softc *sc, uint32_t oid, const void **rbuf, uint16_t *rbufsz) +urndis_ctrl_query(struct urndis_softc *sc, uint32_t oid, + struct urndis_query_req *msg, uint16_t len, const void **rbuf, + uint16_t *rbufsz) { - struct urndis_query_req msg; - uint32_t rval; struct urndis_comp_hdr *hdr; + uint32_t datalen, rval; - msg.rm_type = htole32(REMOTE_NDIS_QUERY_MSG); - msg.rm_len = htole32(sizeof(msg)); - msg.rm_rid = 0; /* XXX */ - msg.rm_oid = htole32(oid); - msg.rm_infobuflen = htole32(0); - msg.rm_infobufoffset = 0; - msg.rm_devicevchdl = 0; + msg->rm_type = htole32(REMOTE_NDIS_QUERY_MSG); + msg->rm_len = htole32(len); + msg->rm_rid = 0; /* XXX */ + msg->rm_oid = htole32(oid); + datalen = len - sizeof(*msg); + msg->rm_infobuflen = htole32(datalen); + if (datalen != 0) { + msg->rm_infobufoffset = htole32(sizeof(*msg) - + RNDIS_HEADER_OFFSET); + } else { + msg->rm_infobufoffset = 0; + } + msg->rm_devicevchdl = 0; DPRINTF("type %u len %u rid %u oid 0x%x " "infobuflen %u infobufoffset %u devicevchdl %u\n", - le32toh(msg.rm_type), - le32toh(msg.rm_len), - le32toh(msg.rm_rid), - le32toh(msg.rm_oid), - le32toh(msg.rm_infobuflen), - le32toh(msg.rm_infobufoffset), - le32toh(msg.rm_devicevchdl)); + le32toh(msg->rm_type), + le32toh(msg->rm_len), + le32toh(msg->rm_rid), + le32toh(msg->rm_oid), + le32toh(msg->rm_infobuflen), + le32toh(msg->rm_infobufoffset), + le32toh(msg->rm_devicevchdl)); - rval = urndis_ctrl_send(sc, &msg, sizeof(msg)); + rval = urndis_ctrl_send(sc, msg, len); if (rval != RNDIS_STATUS_SUCCESS) { DPRINTF("query failed\n"); @@ -723,19 +759,21 @@ urndis_ctrl_query(struct urndis_softc *s } static uint32_t -urndis_ctrl_set(struct urndis_softc *sc, uint32_t oid, struct urndis_set_req *msg, uint16_t len) +urndis_ctrl_set(struct urndis_softc *sc, uint32_t oid, + struct urndis_set_req *msg, uint16_t len) { struct urndis_comp_hdr *hdr; - uint32_t rval; - uint32_t datalen = len - sizeof(*msg); + uint32_t datalen, rval; msg->rm_type = htole32(REMOTE_NDIS_SET_MSG); msg->rm_len = htole32(len); msg->rm_rid = 0; /* XXX */ msg->rm_oid = htole32(oid); + datalen = len - sizeof(*msg); msg->rm_infobuflen = htole32(datalen); if (datalen != 0) { - msg->rm_infobufoffset = htole32(sizeof(*msg) - RNDIS_HEADER_OFFSET); + msg->rm_infobufoffset = htole32(sizeof(*msg) - + RNDIS_HEADER_OFFSET); } else { msg->rm_infobufoffset = 0; } @@ -782,13 +820,11 @@ urndis_bulk_read_callback(struct usb_xfe switch (USB_GET_STATE(xfer)) { case USB_ST_TRANSFERRED: - usbd_xfer_status(xfer, &actlen, NULL, &aframes, NULL); DPRINTFN(1, "received %u bytes in %u frames\n", actlen, aframes); for (offset = 0; actlen >= (uint32_t)sizeof(msg);) { - /* copy out header */ usbd_copy_out(pc, offset, &msg, sizeof(msg)); @@ -930,7 +966,7 @@ tr_setup: usbd_xfer_set_frame_offset(xfer, x * RNDIS_TX_MAXLEN, x); - next_pkt: +next_pkt: IFQ_DRV_DEQUEUE(&ifp->if_snd, m); if (m == NULL) From owner-svn-src-all@freebsd.org Sun Dec 27 20:52:33 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF998A531D4; Sun, 27 Dec 2015 20:52:33 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7F8BC1E15; Sun, 27 Dec 2015 20:52:33 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRKqWch092246; Sun, 27 Dec 2015 20:52:32 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRKqW9U092244; Sun, 27 Dec 2015 20:52:32 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512272052.tBRKqW9U092244@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 20:52:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292794 - stable/10/sys/dev/mpt X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 20:52:33 -0000 Author: marius Date: Sun Dec 27 20:52:32 2015 New Revision: 292794 URL: https://svnweb.freebsd.org/changeset/base/292794 Log: MFC: r285840 - In mpt_send_handshake_cmd(), use bus_space_write_stream_4(9) for writing raw data to the doorbell offset in order to clarify the intent and for avoiding unnecessarily converting the endianess back and forth. Unfortunately, the same can't be done in mpt_recv_handshake_reply() as 16-bit data needs to be read using 32-bit bus accessors. - In mpt_recv_handshake_reply(), get rid of a redundant variable. Modified: stable/10/sys/dev/mpt/mpt.c stable/10/sys/dev/mpt/mpt.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/mpt/mpt.c ============================================================================== --- stable/10/sys/dev/mpt/mpt.c Sun Dec 27 20:49:36 2015 (r292793) +++ stable/10/sys/dev/mpt/mpt.c Sun Dec 27 20:52:32 2015 (r292794) @@ -1423,7 +1423,7 @@ mpt_send_handshake_cmd(struct mpt_softc /* Send the command */ for (i = 0; i < len; i++) { - mpt_write(mpt, MPT_OFFSET_DOORBELL, htole32(*data32++)); + mpt_write_stream(mpt, MPT_OFFSET_DOORBELL, *data32++); if (mpt_wait_db_ack(mpt) != MPT_OK) { mpt_prt(mpt, "mpt_send_handshake_cmd: timeout @ index %d\n", i); @@ -1457,7 +1457,7 @@ mpt_recv_handshake_reply(struct mpt_soft *data16++ = le16toh(data & MPT_DB_DATA_MASK); mpt_write(mpt, MPT_OFFSET_INTR_STATUS, 0); - /* Get Second Word */ + /* Get second word */ if (mpt_wait_db_int(mpt) != MPT_OK) { mpt_prt(mpt, "mpt_recv_handshake_cmd timeout2\n"); return ETIMEDOUT; @@ -1481,18 +1481,13 @@ mpt_recv_handshake_reply(struct mpt_soft left = (hdr->MsgLength << 1) - 2; reply_left = reply_len - 2; while (left--) { - u_int16_t datum; - if (mpt_wait_db_int(mpt) != MPT_OK) { mpt_prt(mpt, "mpt_recv_handshake_cmd timeout3\n"); return ETIMEDOUT; } data = mpt_read(mpt, MPT_OFFSET_DOORBELL); - datum = le16toh(data & MPT_DB_DATA_MASK); - if (reply_left-- > 0) - *data16++ = datum; - + *data16++ = le16toh(data & MPT_DB_DATA_MASK); mpt_write(mpt, MPT_OFFSET_INTR_STATUS, 0); } Modified: stable/10/sys/dev/mpt/mpt.h ============================================================================== --- stable/10/sys/dev/mpt/mpt.h Sun Dec 27 20:49:36 2015 (r292793) +++ stable/10/sys/dev/mpt/mpt.h Sun Dec 27 20:52:32 2015 (r292794) @@ -329,7 +329,6 @@ typedef struct mpt_config_params { } cfgparms_t; /**************************** MPI Target State Info ***************************/ - typedef struct { uint32_t reply_desc; /* current reply descriptor */ uint32_t resid; /* current data residual */ @@ -784,6 +783,7 @@ mpt_assign_serno(struct mpt_softc *mpt, /******************************* Register Access ******************************/ static __inline void mpt_write(struct mpt_softc *, size_t, uint32_t); +static __inline void mpt_write_stream(struct mpt_softc *, size_t, uint32_t); static __inline uint32_t mpt_read(struct mpt_softc *, int); static __inline void mpt_pio_write(struct mpt_softc *, size_t, uint32_t); static __inline uint32_t mpt_pio_read(struct mpt_softc *, int); @@ -794,6 +794,12 @@ mpt_write(struct mpt_softc *mpt, size_t bus_space_write_4(mpt->pci_st, mpt->pci_sh, offset, val); } +static __inline void +mpt_write_stream(struct mpt_softc *mpt, size_t offset, uint32_t val) +{ + bus_space_write_stream_4(mpt->pci_st, mpt->pci_sh, offset, val); +} + static __inline uint32_t mpt_read(struct mpt_softc *mpt, int offset) { @@ -818,6 +824,7 @@ mpt_pio_read(struct mpt_softc *mpt, int KASSERT(mpt->pci_pio_reg != NULL, ("no PIO resource")); return (bus_space_read_4(mpt->pci_pio_st, mpt->pci_pio_sh, offset)); } + /*********************** Reply Frame/Request Management ***********************/ /* Max MPT Reply we are willing to accept (must be power of 2) */ #define MPT_REPLY_SIZE 256 @@ -958,6 +965,7 @@ mpt_cdblen(uint8_t cdb0, int maxlen) return (16); } } + #ifdef INVARIANTS static __inline request_t * mpt_tag_2_req(struct mpt_softc *, uint32_t); static __inline request_t * @@ -1136,6 +1144,7 @@ mpt_write_cur_cfg_page(struct mpt_softc PageAddress, hdr, len, sleep_ok, timeout_ms)); } + /* mpt_debug.c functions */ void mpt_print_reply(void *vmsg); void mpt_print_db(uint32_t mb); @@ -1145,4 +1154,5 @@ void mpt_req_state(mpt_req_state_t state void mpt_print_config_request(void *vmsg); void mpt_print_request(void *vmsg); void mpt_dump_sgl(SGE_IO_UNION *se, int offset); + #endif /* _MPT_H_ */ From owner-svn-src-all@freebsd.org Sun Dec 27 20:54:49 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B84FAA5326F; Sun, 27 Dec 2015 20:54:49 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 79BEF1FD4; Sun, 27 Dec 2015 20:54:49 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRKsmhT092381; Sun, 27 Dec 2015 20:54:48 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRKsmwE092378; Sun, 27 Dec 2015 20:54:48 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512272054.tBRKsmwE092378@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 20:54:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292795 - stable/10/tools/regression/lib/msun X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 20:54:49 -0000 Author: ngie Date: Sun Dec 27 20:54:48 2015 New Revision: 292795 URL: https://svnweb.freebsd.org/changeset/base/292795 Log: MFC r292491,r292493,r292496: r292491: Disable test-ctrig.t testcases which fail assertions on i386 [*] Also, don't compile the exp2l(3) testcases on platforms that don't support the libcall (technically only x86 right now). This makes this test buildable on arm*/mips*/powerpc* Tested on: stable/10 (amd64/i386), head (amd64/i386) PR: 205446 [*] X-MFC to: stable/10 Sponsored by: EMC / Isilon Storage Division r292493: Don't run test-fma on i386 It completely fails all assertions on i386 on both stable/9 and stable/10 PR: 205448 X-MFC to: stable/10 Sponsored by: EMC / Isilon Storage Division r292496: Skip the testcases on i386 (all the assertions fail) [*] Also, don't compile the ldexpl(3) testcases on platforms that don't support the libcall (technically only x86 right now). This makes this test buildable on arm*/mips*/powerpc* PR: 205449 [*] Tested on: stable/10 (amd64/i386), head (amd64/i386) Sponsored by: EMC / Isilon Storage Division Modified: stable/10/tools/regression/lib/msun/test-exponential.c stable/10/tools/regression/lib/msun/test-invtrig.c Directory Properties: stable/10/ (props changed) Modified: stable/10/tools/regression/lib/msun/test-exponential.c ============================================================================== --- stable/10/tools/regression/lib/msun/test-exponential.c Sun Dec 27 20:52:32 2015 (r292794) +++ stable/10/tools/regression/lib/msun/test-exponential.c Sun Dec 27 20:54:48 2015 (r292795) @@ -66,13 +66,22 @@ __FBSDID("$FreeBSD$"); } while (0) /* Test all the functions that compute b^x. */ -#define testall0(x, result, exceptmask, excepts) do { \ +#define _testall0(x, result, exceptmask, excepts) do { \ test(exp, x, result, exceptmask, excepts); \ test(expf, x, result, exceptmask, excepts); \ test(exp2, x, result, exceptmask, excepts); \ test(exp2f, x, result, exceptmask, excepts); \ +} while (0) + +/* Skip over exp2l on platforms that don't support it. */ +#if LDBL_PREC == 53 +#define testall0 _testall0 +#else +#define testall0(x, result, exceptmask, excepts) do { \ + _testall0(x, result, exceptmask, excepts); \ test(exp2l, x, result, exceptmask, excepts); \ } while (0) +#endif /* Test all the functions that compute b^x - 1. */ #define testall1(x, result, exceptmask, excepts) do { \ @@ -102,12 +111,14 @@ run_generic_tests(void) testall0(-INFINITY, 0.0, ALL_STD_EXCEPT, 0); testall1(-INFINITY, -1.0, ALL_STD_EXCEPT, 0); +#if !defined(__i386__) /* exp(big) == Inf, overflow exception */ testall0(50000.0, INFINITY, ALL_STD_EXCEPT & ~FE_INEXACT, FE_OVERFLOW); testall1(50000.0, INFINITY, ALL_STD_EXCEPT & ~FE_INEXACT, FE_OVERFLOW); /* exp(small) == 0, underflow and inexact exceptions */ testall0(-50000.0, 0.0, ALL_STD_EXCEPT, FE_UNDERFLOW | FE_INEXACT); +#endif testall1(-50000.0, -1.0, ALL_STD_EXCEPT, FE_INEXACT); } Modified: stable/10/tools/regression/lib/msun/test-invtrig.c ============================================================================== --- stable/10/tools/regression/lib/msun/test-invtrig.c Sun Dec 27 20:52:32 2015 (r292794) +++ stable/10/tools/regression/lib/msun/test-invtrig.c Sun Dec 27 20:54:48 2015 (r292795) @@ -63,14 +63,23 @@ __FBSDID("$FreeBSD$"); #define test(func, x, result, excepts) \ test_tol(func, (x), (result), 0, (excepts)) -#define testall_tol(prefix, x, result, tol, excepts) do { \ +#define _testall_tol(prefix, x, result, tol, excepts) do { \ test_tol(prefix, (double)(x), (double)(result), \ (tol) * ldexp(1.0, 1 - DBL_MANT_DIG), (excepts)); \ test_tol(prefix##f, (float)(x), (float)(result), \ (tol) * ldexpf(1.0, 1 - FLT_MANT_DIG), (excepts)); \ +} while (0) + +#if LDBL_PREC == 53 +#define testall_tol _testall_tol +#else +#define testall_tol(prefix, x, result, tol, excepts) do { \ + _testall_tol(prefix, x, result, tol, excepts); \ test_tol(prefix##l, (x), (result), \ (tol) * ldexpl(1.0, 1 - LDBL_MANT_DIG), (excepts)); \ } while (0) +#endif + #define testall(prefix, x, result, excepts) \ testall_tol(prefix, (x), (result), 0, (excepts)) @@ -83,14 +92,23 @@ __FBSDID("$FreeBSD$"); #define test2(func, y, x, result, excepts) \ test2_tol(func, (y), (x), (result), 0, (excepts)) -#define testall2_tol(prefix, y, x, result, tol, excepts) do { \ +#define _testall2_tol(prefix, y, x, result, tol, excepts) do { \ test2_tol(prefix, (double)(y), (double)(x), (double)(result), \ (tol) * ldexp(1.0, 1 - DBL_MANT_DIG), (excepts)); \ test2_tol(prefix##f, (float)(y), (float)(x), (float)(result), \ (tol) * ldexpf(1.0, 1 - FLT_MANT_DIG), (excepts)); \ +} while (0) + +#if LDBL_PREC == 53 +#define testall2_tol _testall2_tol +#else +#define testall2_tol(prefix, y, x, result, tol, excepts) do { \ + _testall2_tol(prefix, y, x, result, tol, excepts); \ test2_tol(prefix##l, (y), (x), (result), \ (tol) * ldexpl(1.0, 1 - LDBL_MANT_DIG), (excepts)); \ } while (0) +#endif + #define testall2(prefix, y, x, result, excepts) \ testall2_tol(prefix, (y), (x), (result), 0, (excepts)) @@ -431,6 +449,11 @@ int main(int argc, char *argv[]) { +#if defined(__i386__) + printf("1..0 # SKIP fails all assertions on i386\n"); + return (0); +#endif + printf("1..7\n"); test_special(); From owner-svn-src-all@freebsd.org Sun Dec 27 21:02:57 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF19CA535C4; Sun, 27 Dec 2015 21:02:57 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7BE6F141E; Sun, 27 Dec 2015 21:02:57 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRL2uk0095393; Sun, 27 Dec 2015 21:02:56 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRL2uNR095392; Sun, 27 Dec 2015 21:02:56 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512272102.tBRL2uNR095392@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 21:02:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292796 - stable/10/sys/modules/hyperv/netvsc X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:02:57 -0000 Author: ngie Date: Sun Dec 27 21:02:56 2015 New Revision: 292796 URL: https://svnweb.freebsd.org/changeset/base/292796 Log: MFC r284969: r284969 (by lwhsu): - Fix `make depend` in sys/modules Differential Revision: https://reviews.freebsd.org/D2951 Approved by: delphij Modified: stable/10/sys/modules/hyperv/netvsc/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/modules/hyperv/netvsc/Makefile ============================================================================== --- stable/10/sys/modules/hyperv/netvsc/Makefile Sun Dec 27 20:54:48 2015 (r292795) +++ stable/10/sys/modules/hyperv/netvsc/Makefile Sun Dec 27 21:02:56 2015 (r292796) @@ -6,7 +6,7 @@ KMOD= hv_netvsc SRCS= hv_net_vsc.c \ hv_netvsc_drv_freebsd.c \ hv_rndis_filter.c -SRCS+= bus_if.h device_if.h +SRCS+= bus_if.h device_if.h opt_inet.h opt_inet6.h CFLAGS+= -I${.CURDIR}/../../../dev/hyperv/netvsc From owner-svn-src-all@freebsd.org Sun Dec 27 21:03:40 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E4809A5361A; Sun, 27 Dec 2015 21:03:40 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B1B3C15CA; Sun, 27 Dec 2015 21:03:40 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRL3dre095479; Sun, 27 Dec 2015 21:03:39 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRL3d8E095478; Sun, 27 Dec 2015 21:03:39 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512272103.tBRL3d8E095478@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 21:03:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292797 - stable/10/sys/dev/hyperv/vmbus X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:03:41 -0000 Author: ngie Date: Sun Dec 27 21:03:39 2015 New Revision: 292797 URL: https://svnweb.freebsd.org/changeset/base/292797 Log: MFC r292661: Remove redundant vmbus_select_outgoing_channel declaration already handled in include/hyperv.h This unbreaks the gcc 4.2.1 kernel build of hyperv Differential Revision: https://reviews.freebsd.org/D4684 Reviewed by: royger Sponsored by: EMC / Isilon Storage Division Modified: stable/10/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/hyperv/vmbus/hv_channel_mgmt.c ============================================================================== --- stable/10/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Sun Dec 27 21:02:56 2015 (r292796) +++ stable/10/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Sun Dec 27 21:03:39 2015 (r292797) @@ -53,8 +53,6 @@ static void vmbus_channel_on_gpadl_tornd static void vmbus_channel_on_offers_delivered(hv_vmbus_channel_msg_header* hdr); static void vmbus_channel_on_version_response(hv_vmbus_channel_msg_header* hdr); static void vmbus_channel_process_offer(void *context); -struct hv_vmbus_channel* - vmbus_select_outgoing_channel(struct hv_vmbus_channel *promary); /** * Channel message dispatch table From owner-svn-src-all@freebsd.org Sun Dec 27 21:08:10 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CA622A5375A; Sun, 27 Dec 2015 21:08:10 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 945C31889; Sun, 27 Dec 2015 21:08:10 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRL898V095748; Sun, 27 Dec 2015 21:08:09 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRL89BV095747; Sun, 27 Dec 2015 21:08:09 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512272108.tBRL89BV095747@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 27 Dec 2015 21:08:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292798 - stable/10/gnu/usr.bin X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:08:10 -0000 Author: marius Date: Sun Dec 27 21:08:09 2015 New Revision: 292798 URL: https://svnweb.freebsd.org/changeset/base/292798 Log: MFC: r285684 (partial) Record dependencies of gdb/gdbtui/kgdb on binutils/lib{bfd,iberty,opcodes}, fixing parallel builds. Modified: stable/10/gnu/usr.bin/Makefile Modified: stable/10/gnu/usr.bin/Makefile ============================================================================== --- stable/10/gnu/usr.bin/Makefile Sun Dec 27 21:03:39 2015 (r292797) +++ stable/10/gnu/usr.bin/Makefile Sun Dec 27 21:08:09 2015 (r292798) @@ -17,6 +17,8 @@ SUBDIR= ${_binutils} \ ${_tests} \ ${_texinfo} +SUBDIR_DEPEND_gdb= ${_binutils} + .if ${MK_CXX} != "no" _gperf= gperf .if ${MK_GROFF} != "no" From owner-svn-src-all@freebsd.org Sun Dec 27 21:08:47 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8D0F2A537C1; Sun, 27 Dec 2015 21:08:47 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 509E91A14; Sun, 27 Dec 2015 21:08:47 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRL8kii095823; Sun, 27 Dec 2015 21:08:46 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRL8kpJ095822; Sun, 27 Dec 2015 21:08:46 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512272108.tBRL8kpJ095822@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 21:08:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292799 - stable/10/tools/regression/lib/msun X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:08:47 -0000 Author: ngie Date: Sun Dec 27 21:08:46 2015 New Revision: 292799 URL: https://svnweb.freebsd.org/changeset/base/292799 Log: MFC r292492,r292495,r292647: r292492: - Use nitems instead of handrolling the macro - Use a separate variable for tracking the testcase count instead of hardcoding the offset for the testcases Sponsored by: EMC / Isilon Storage Division r292495: Initialize j so it doesn't print out a garbage index Use it consistently instead of i in the first loop Sponsored by: EMC / Isilon Storage Division r292647: Use j instead of a hardcoded index (9) and increment it after running the NaNs testcases Pointyhat to: ngie Sponsored by: EMC / Isilon Storage Division Modified: stable/10/tools/regression/lib/msun/test-fma.c Directory Properties: stable/10/ (props changed) Modified: stable/10/tools/regression/lib/msun/test-fma.c ============================================================================== --- stable/10/tools/regression/lib/msun/test-fma.c Sun Dec 27 21:08:09 2015 (r292798) +++ stable/10/tools/regression/lib/msun/test-fma.c Sun Dec 27 21:08:46 2015 (r292799) @@ -31,6 +31,7 @@ #include __FBSDID("$FreeBSD$"); +#include #include #include #include @@ -474,49 +475,58 @@ int main(int argc, char *argv[]) { int rmodes[] = { FE_TONEAREST, FE_UPWARD, FE_DOWNWARD, FE_TOWARDZERO }; - int i; + int i, j; #if defined(__i386__) printf("1..0 # SKIP all testcases fail on i386\n"); exit(0); #endif + j = 1; + printf("1..19\n"); - for (i = 0; i < 4; i++) { + for (i = 0; i < nitems(rmodes); i++, j++) { + printf("rmode = %d\n", rmodes[i]); fesetround(rmodes[i]); test_zeroes(); - printf("ok %d - fma zeroes\n", i + 1); + printf("ok %d - fma zeroes\n", j); } - for (i = 0; i < 4; i++) { + for (i = 0; i < nitems(rmodes); i++, j++) { + printf("rmode = %d\n", rmodes[i]); fesetround(rmodes[i]); test_infinities(); - printf("ok %d - fma infinities\n", i + 5); + printf("ok %d - fma infinities\n", j); } fesetround(FE_TONEAREST); test_nans(); - printf("ok 9 - fma NaNs\n"); + printf("ok %d - fma NaNs\n", j); + j++; - for (i = 0; i < 4; i++) { + for (i = 0; i < nitems(rmodes); i++, j++) { + printf("rmode = %d\n", rmodes[i]); fesetround(rmodes[i]); test_small_z(); - printf("ok %d - fma small z\n", i + 10); + printf("ok %d - fma small z\n", j); } - for (i = 0; i < 4; i++) { + for (i = 0; i < nitems(rmodes); i++, j++) { + printf("rmode = %d\n", rmodes[i]); fesetround(rmodes[i]); test_big_z(); - printf("ok %d - fma big z\n", i + 14); + printf("ok %d - fma big z\n", j); } fesetround(FE_TONEAREST); test_accuracy(); - printf("ok 18 - fma accuracy\n"); + printf("ok %d - fma accuracy\n", j); + j++; test_double_rounding(); - printf("ok 19 - fma double rounding\n"); + printf("ok %d - fma double rounding\n", j); + j++; /* * TODO: From owner-svn-src-all@freebsd.org Sun Dec 27 21:15:59 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EEDECA53A76; Sun, 27 Dec 2015 21:15:59 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AC6FC1E14; Sun, 27 Dec 2015 21:15:59 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRLFwr9098776; Sun, 27 Dec 2015 21:15:58 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRLFwJs098775; Sun, 27 Dec 2015 21:15:58 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512272115.tBRLFwJs098775@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 21:15:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292800 - stable/9/tools/regression/lib/msun X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:16:00 -0000 Author: ngie Date: Sun Dec 27 21:15:58 2015 New Revision: 292800 URL: https://svnweb.freebsd.org/changeset/base/292800 Log: MFstable/10 r226377,r292799: r226377 (by das): Add some tests for double-rounding bugs in fma(). r292799: MFC r292492,r292495,r292647: r292492: - Use nitems instead of handrolling the macro - Use a separate variable for tracking the testcase count instead of hardcoding the offset for the testcases Sponsored by: EMC / Isilon Storage Division r292495: Initialize j so it doesn't print out a garbage index Use it consistently instead of i in the first loop Sponsored by: EMC / Isilon Storage Division r292647: Use j instead of a hardcoded index (9) and increment it after running the NaNs testcases Pointyhat to: ngie Sponsored by: EMC / Isilon Storage Division Modified: stable/9/tools/regression/lib/msun/test-fma.c Directory Properties: stable/9/ (props changed) stable/9/tools/ (props changed) stable/9/tools/regression/ (props changed) Modified: stable/9/tools/regression/lib/msun/test-fma.c ============================================================================== --- stable/9/tools/regression/lib/msun/test-fma.c Sun Dec 27 21:08:46 2015 (r292799) +++ stable/9/tools/regression/lib/msun/test-fma.c Sun Dec 27 21:15:58 2015 (r292800) @@ -31,6 +31,7 @@ #include __FBSDID("$FreeBSD$"); +#include #include #include #include @@ -364,45 +365,107 @@ test_accuracy(void) #endif } +static void +test_double_rounding(void) +{ + + /* + * a = 0x1.8000000000001p0 + * b = 0x1.8000000000001p0 + * c = -0x0.0000000000000000000000000080...1p+1 + * a * b = 0x1.2000000000001800000000000080p+1 + * + * The correct behavior is to round DOWN to 0x1.2000000000001p+1 in + * round-to-nearest mode. An implementation that computes a*b+c in + * double+double precision, however, will get 0x1.20000000000018p+1, + * and then round UP. + */ + fesetround(FE_TONEAREST); + test(fma, 0x1.8000000000001p0, 0x1.8000000000001p0, + -0x1.0000000000001p-104, 0x1.2000000000001p+1, + ALL_STD_EXCEPT, FE_INEXACT); + fesetround(FE_DOWNWARD); + test(fma, 0x1.8000000000001p0, 0x1.8000000000001p0, + -0x1.0000000000001p-104, 0x1.2000000000001p+1, + ALL_STD_EXCEPT, FE_INEXACT); + fesetround(FE_UPWARD); + test(fma, 0x1.8000000000001p0, 0x1.8000000000001p0, + -0x1.0000000000001p-104, 0x1.2000000000002p+1, + ALL_STD_EXCEPT, FE_INEXACT); + + fesetround(FE_TONEAREST); + test(fmaf, 0x1.800002p+0, 0x1.800002p+0, -0x1.000002p-46, 0x1.200002p+1, + ALL_STD_EXCEPT, FE_INEXACT); + fesetround(FE_DOWNWARD); + test(fmaf, 0x1.800002p+0, 0x1.800002p+0, -0x1.000002p-46, 0x1.200002p+1, + ALL_STD_EXCEPT, FE_INEXACT); + fesetround(FE_UPWARD); + test(fmaf, 0x1.800002p+0, 0x1.800002p+0, -0x1.000002p-46, 0x1.200004p+1, + ALL_STD_EXCEPT, FE_INEXACT); + + fesetround(FE_TONEAREST); +#if LDBL_MANT_DIG == 64 + test(fmal, 0x1.4p+0L, 0x1.0000000000000004p+0L, 0x1p-128L, + 0x1.4000000000000006p+0L, ALL_STD_EXCEPT, FE_INEXACT); +#elif LDBL_MANT_DIG == 113 + /* XXX untested test */ + test(fmal, 0x1.4p+0L, 0x1.0000000000000000000000000002p+0L, 0x1p-224L, + 0x1.4000000000000000000000000003p+0L, ALL_STD_EXCEPT, FE_INEXACT); +#endif + +} + int main(int argc, char *argv[]) { int rmodes[] = { FE_TONEAREST, FE_UPWARD, FE_DOWNWARD, FE_TOWARDZERO }; - int i; + int i, j; - printf("1..18\n"); + j = 1; - for (i = 0; i < 4; i++) { + printf("1..19\n"); + + for (i = 0; i < nitems(rmodes); i++, j++) { + printf("rmode = %d\n", rmodes[i]); fesetround(rmodes[i]); test_zeroes(); - printf("ok %d - fma zeroes\n", i + 1); + printf("ok %d - fma zeroes\n", j); } - for (i = 0; i < 4; i++) { + for (i = 0; i < nitems(rmodes); i++, j++) { + printf("rmode = %d\n", rmodes[i]); fesetround(rmodes[i]); test_infinities(); - printf("ok %d - fma infinities\n", i + 5); + printf("ok %d - fma infinities\n", j); } fesetround(FE_TONEAREST); test_nans(); - printf("ok 9 - fma NaNs\n"); + printf("ok %d - fma NaNs\n", j); + j++; - for (i = 0; i < 4; i++) { + for (i = 0; i < nitems(rmodes); i++, j++) { + printf("rmode = %d\n", rmodes[i]); fesetround(rmodes[i]); test_small_z(); - printf("ok %d - fma small z\n", i + 10); + printf("ok %d - fma small z\n", j); } - for (i = 0; i < 4; i++) { + for (i = 0; i < nitems(rmodes); i++, j++) { + printf("rmode = %d\n", rmodes[i]); fesetround(rmodes[i]); test_big_z(); - printf("ok %d - fma big z\n", i + 14); + printf("ok %d - fma big z\n", j); } fesetround(FE_TONEAREST); test_accuracy(); - printf("ok 18 - fma accuracy\n"); + printf("ok %d - fma accuracy\n", j); + j++; + + test_double_rounding(); + printf("ok %d - fma double rounding\n", j); + j++; /* * TODO: From owner-svn-src-all@freebsd.org Sun Dec 27 21:17:31 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BBC73A53AE0; Sun, 27 Dec 2015 21:17:31 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8D5611F79; Sun, 27 Dec 2015 21:17:31 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRLHUMa098907; Sun, 27 Dec 2015 21:17:30 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRLHUSG098906; Sun, 27 Dec 2015 21:17:30 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512272117.tBRLHUSG098906@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 21:17:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292801 - stable/10/tools/regression/lib/msun X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:17:31 -0000 Author: ngie Date: Sun Dec 27 21:17:30 2015 New Revision: 292801 URL: https://svnweb.freebsd.org/changeset/base/292801 Log: MFC r292489: Disable test-ctrig.t testcases which fail assertions on i386 Tested on: stable/10 (amd64/i386), head (amd64/i386) PR: 205446 X-MFC to: stable/10 Sponsored by: EMC / Isilon Storage Division Modified: stable/10/tools/regression/lib/msun/test-ctrig.c Directory Properties: stable/10/ (props changed) Modified: stable/10/tools/regression/lib/msun/test-ctrig.c ============================================================================== --- stable/10/tools/regression/lib/msun/test-ctrig.c Sun Dec 27 21:15:58 2015 (r292800) +++ stable/10/tools/regression/lib/msun/test-ctrig.c Sun Dec 27 21:17:30 2015 (r292801) @@ -427,6 +427,7 @@ test_large(void) test_odd_tol(ctanh, z, CMPLXL(1.0, 8.95257245135025991216632140458264468e-309L), DBL_ULP()); +#if !defined(__i386__) z = CMPLXL(30, 0x1p1023L); test_odd_tol(ctanh, z, CMPLXL(1.0, -1.62994325413993477997492170229268382e-26L), @@ -436,6 +437,7 @@ test_large(void) CMPLXL(0.878606311888306869546254022621986509L, -0.225462792499754505792678258169527424L), DBL_ULP()); +#endif z = CMPLXL(710.6, 0.78539816339744830961566084581987572L); test_odd_tol(csinh, z, From owner-svn-src-all@freebsd.org Sun Dec 27 21:34:38 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BD7B5A53EE6; Sun, 27 Dec 2015 21:34:38 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7E6B115D9; Sun, 27 Dec 2015 21:34:38 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRLYbam004944; Sun, 27 Dec 2015 21:34:37 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRLYbnr004942; Sun, 27 Dec 2015 21:34:37 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512272134.tBRLYbnr004942@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 21:34:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292802 - stable/9/tools/regression/lib/msun X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:34:38 -0000 Author: ngie Date: Sun Dec 27 21:34:37 2015 New Revision: 292802 URL: https://svnweb.freebsd.org/changeset/base/292802 Log: MFstable/10 r292795: MFC r292491,r292493,r292496: r292491: Disable test-ctrig.t testcases which fail assertions on i386 [*] Also, don't compile the exp2l(3) testcases on platforms that don't support the libcall (technically only x86 right now). This makes this test buildable on arm*/mips*/powerpc* Tested on: stable/10 (amd64/i386), head (amd64/i386) PR: 205446 [*] X-MFC to: stable/10 Sponsored by: EMC / Isilon Storage Division r292493: Don't run test-fma on i386 It completely fails all assertions on i386 on both stable/9 and stable/10 PR: 205448 X-MFC to: stable/10 Sponsored by: EMC / Isilon Storage Division r292496: Skip the testcases on i386 (all the assertions fail) [*] Also, don't compile the ldexpl(3) testcases on platforms that don't support the libcall (technically only x86 right now). This makes this test buildable on arm*/mips*/powerpc* PR: 205449 [*] Tested on: stable/10 (amd64/i386), head (amd64/i386) Sponsored by: EMC / Isilon Storage Division Modified: stable/9/tools/regression/lib/msun/test-exponential.c stable/9/tools/regression/lib/msun/test-invtrig.c Directory Properties: stable/9/ (props changed) stable/9/tools/ (props changed) stable/9/tools/regression/ (props changed) Modified: stable/9/tools/regression/lib/msun/test-exponential.c ============================================================================== --- stable/9/tools/regression/lib/msun/test-exponential.c Sun Dec 27 21:17:30 2015 (r292801) +++ stable/9/tools/regression/lib/msun/test-exponential.c Sun Dec 27 21:34:37 2015 (r292802) @@ -67,13 +67,22 @@ __FBSDID("$FreeBSD$"); } while (0) /* Test all the functions that compute b^x. */ -#define testall0(x, result, exceptmask, excepts) do { \ +#define _testall0(x, result, exceptmask, excepts) do { \ test(exp, x, result, exceptmask, excepts); \ test(expf, x, result, exceptmask, excepts); \ test(exp2, x, result, exceptmask, excepts); \ test(exp2f, x, result, exceptmask, excepts); \ +} while (0) + +/* Skip over exp2l on platforms that don't support it. */ +#if LDBL_PREC == 53 +#define testall0 _testall0 +#else +#define testall0(x, result, exceptmask, excepts) do { \ + _testall0(x, result, exceptmask, excepts); \ test(exp2l, x, result, exceptmask, excepts); \ } while (0) +#endif /* Test all the functions that compute b^x - 1. */ #define testall1(x, result, exceptmask, excepts) do { \ @@ -114,12 +123,14 @@ run_generic_tests(void) testall0(-INFINITY, 0.0, ALL_STD_EXCEPT, 0); testall1(-INFINITY, -1.0, ALL_STD_EXCEPT, 0); +#if !defined(__i386__) /* exp(big) == Inf, overflow exception */ testall0(50000.0, INFINITY, ALL_STD_EXCEPT & ~FE_INEXACT, FE_OVERFLOW); testall1(50000.0, INFINITY, ALL_STD_EXCEPT & ~FE_INEXACT, FE_OVERFLOW); /* exp(small) == 0, underflow and inexact exceptions */ testall0(-50000.0, 0.0, ALL_STD_EXCEPT, FE_UNDERFLOW | FE_INEXACT); +#endif testall1(-50000.0, -1.0, ALL_STD_EXCEPT, FE_INEXACT); } Modified: stable/9/tools/regression/lib/msun/test-invtrig.c ============================================================================== --- stable/9/tools/regression/lib/msun/test-invtrig.c Sun Dec 27 21:17:30 2015 (r292801) +++ stable/9/tools/regression/lib/msun/test-invtrig.c Sun Dec 27 21:34:37 2015 (r292802) @@ -64,14 +64,23 @@ __FBSDID("$FreeBSD$"); #define test(func, x, result, excepts) \ test_tol(func, (x), (result), 0, (excepts)) -#define testall_tol(prefix, x, result, tol, excepts) do { \ +#define _testall_tol(prefix, x, result, tol, excepts) do { \ test_tol(prefix, (double)(x), (double)(result), \ (tol) * ldexp(1.0, 1 - DBL_MANT_DIG), (excepts)); \ test_tol(prefix##f, (float)(x), (float)(result), \ (tol) * ldexpf(1.0, 1 - FLT_MANT_DIG), (excepts)); \ +} while (0) + +#if LDBL_PREC == 53 +#define testall_tol _testall_tol +#else +#define testall_tol(prefix, x, result, tol, excepts) do { \ + _testall_tol(prefix, x, result, tol, excepts); \ test_tol(prefix##l, (x), (result), \ (tol) * ldexpl(1.0, 1 - LDBL_MANT_DIG), (excepts)); \ } while (0) +#endif + #define testall(prefix, x, result, excepts) \ testall_tol(prefix, (x), (result), 0, (excepts)) @@ -84,14 +93,23 @@ __FBSDID("$FreeBSD$"); #define test2(func, y, x, result, excepts) \ test2_tol(func, (y), (x), (result), 0, (excepts)) -#define testall2_tol(prefix, y, x, result, tol, excepts) do { \ +#define _testall2_tol(prefix, y, x, result, tol, excepts) do { \ test2_tol(prefix, (double)(y), (double)(x), (double)(result), \ (tol) * ldexp(1.0, 1 - DBL_MANT_DIG), (excepts)); \ test2_tol(prefix##f, (float)(y), (float)(x), (float)(result), \ (tol) * ldexpf(1.0, 1 - FLT_MANT_DIG), (excepts)); \ +} while (0) + +#if LDBL_PREC == 53 +#define testall2_tol _testall2_tol +#else +#define testall2_tol(prefix, y, x, result, tol, excepts) do { \ + _testall2_tol(prefix, y, x, result, tol, excepts); \ test2_tol(prefix##l, (y), (x), (result), \ (tol) * ldexpl(1.0, 1 - LDBL_MANT_DIG), (excepts)); \ } while (0) +#endif + #define testall2(prefix, y, x, result, excepts) \ testall2_tol(prefix, (y), (x), (result), 0, (excepts)) @@ -459,6 +477,11 @@ int main(int argc, char *argv[]) { +#if defined(__i386__) + printf("1..0 # SKIP fails all assertions on i386\n"); + return (0); +#endif + printf("1..7\n"); test_special(); From owner-svn-src-all@freebsd.org Sun Dec 27 21:39:29 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF562A520B5; Sun, 27 Dec 2015 21:39:29 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5927E18DE; Sun, 27 Dec 2015 21:39:29 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRLdSBV005406; Sun, 27 Dec 2015 21:39:28 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRLdSlF005402; Sun, 27 Dec 2015 21:39:28 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512272139.tBRLdSlF005402@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 21:39:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292803 - stable/9/tools/regression/lib/msun X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:39:29 -0000 Author: ngie Date: Sun Dec 27 21:39:28 2015 New Revision: 292803 URL: https://svnweb.freebsd.org/changeset/base/292803 Log: MFstable/10 r226603,r251119: r226603 (by das): Tests for complex trig and hyperbolic functions. r251119 (by das): Basic tests for complex inverse trig and hyperbolic functions. Added: stable/9/tools/regression/lib/msun/test-ctrig.c - copied unchanged from r226603, head/tools/regression/lib/msun/test-ctrig.c stable/9/tools/regression/lib/msun/test-ctrig.t - copied unchanged from r226603, head/tools/regression/lib/msun/test-ctrig.t stable/9/tools/regression/lib/msun/test-invctrig.c - copied unchanged from r251119, head/tools/regression/lib/msun/test-invctrig.c Modified: stable/9/tools/regression/lib/msun/Makefile Directory Properties: stable/9/ (props changed) stable/9/tools/ (props changed) stable/9/tools/regression/ (props changed) Modified: stable/9/tools/regression/lib/msun/Makefile ============================================================================== --- stable/9/tools/regression/lib/msun/Makefile Sun Dec 27 21:34:37 2015 (r292802) +++ stable/9/tools/regression/lib/msun/Makefile Sun Dec 27 21:39:28 2015 (r292803) @@ -1,7 +1,9 @@ # $FreeBSD$ -TESTS= test-cexp test-conj test-csqrt test-exponential test-fenv test-fma \ - test-fmaxmin test-ilogb test-invtrig test-logarithm test-lrint \ +TESTS= test-cexp test-conj test-csqrt test-ctrig \ + test-exponential test-fenv test-fma \ + test-fmaxmin test-ilogb test-invtrig test-invctrig \ + test-logarithm test-lrint \ test-lround test-nan test-nearbyint test-next test-rem test-trig CFLAGS+= -O0 -lm Copied: stable/9/tools/regression/lib/msun/test-ctrig.c (from r226603, head/tools/regression/lib/msun/test-ctrig.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/9/tools/regression/lib/msun/test-ctrig.c Sun Dec 27 21:39:28 2015 (r292803, copy of r226603, head/tools/regression/lib/msun/test-ctrig.c) @@ -0,0 +1,540 @@ +/*- + * Copyright (c) 2008-2011 David Schultz + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Tests for csin[h](), ccos[h](), and ctan[h](). + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include + +#define ALL_STD_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | \ + FE_OVERFLOW | FE_UNDERFLOW) +#define OPT_INVALID (ALL_STD_EXCEPT & ~FE_INVALID) +#define OPT_INEXACT (ALL_STD_EXCEPT & ~FE_INEXACT) +#define FLT_ULP() ldexpl(1.0, 1 - FLT_MANT_DIG) +#define DBL_ULP() ldexpl(1.0, 1 - DBL_MANT_DIG) +#define LDBL_ULP() ldexpl(1.0, 1 - LDBL_MANT_DIG) + +#pragma STDC FENV_ACCESS ON +#pragma STDC CX_LIMITED_RANGE OFF + +/* + * XXX gcc implements complex multiplication incorrectly. In + * particular, it implements it as if the CX_LIMITED_RANGE pragma + * were ON. Consequently, we need this function to form numbers + * such as x + INFINITY * I, since gcc evalutes INFINITY * I as + * NaN + INFINITY * I. + */ +static inline long double complex +cpackl(long double x, long double y) +{ + long double complex z; + + __real__ z = x; + __imag__ z = y; + return (z); +} + +/* Flags that determine whether to check the signs of the result. */ +#define CS_REAL 1 +#define CS_IMAG 2 +#define CS_BOTH (CS_REAL | CS_IMAG) + +#ifdef DEBUG +#define debug(...) printf(__VA_ARGS__) +#else +#define debug(...) (void)0 +#endif + +/* + * Test that a function returns the correct value and sets the + * exception flags correctly. The exceptmask specifies which + * exceptions we should check. We need to be lenient for several + * reasons, but mainly because on some architectures it's impossible + * to raise FE_OVERFLOW without raising FE_INEXACT. + * + * These are macros instead of functions so that assert provides more + * meaningful error messages. + * + * XXX The volatile here is to avoid gcc's bogus constant folding and work + * around the lack of support for the FENV_ACCESS pragma. + */ +#define test_p(func, z, result, exceptmask, excepts, checksign) do { \ + volatile long double complex _d = z; \ + debug(" testing %s(%Lg + %Lg I) == %Lg + %Lg I\n", #func, \ + creall(_d), cimagl(_d), creall(result), cimagl(result)); \ + assert(feclearexcept(FE_ALL_EXCEPT) == 0); \ + assert(cfpequal((func)(_d), (result), (checksign))); \ + assert(((func), fetestexcept(exceptmask) == (excepts))); \ +} while (0) + +/* + * Test within a given tolerance. The tolerance indicates relative error + * in ulps. If result is 0, however, it measures absolute error in units + * of _EPSILON. + */ +#define test_p_tol(func, z, result, tol) do { \ + volatile long double complex _d = z; \ + debug(" testing %s(%Lg + %Lg I) ~= %Lg + %Lg I\n", #func, \ + creall(_d), cimagl(_d), creall(result), cimagl(result)); \ + assert(cfpequal_tol((func)(_d), (result), (tol))); \ +} while (0) + +/* These wrappers apply the identities f(conj(z)) = conj(f(z)). */ +#define test(func, z, result, exceptmask, excepts, checksign) do { \ + test_p(func, z, result, exceptmask, excepts, checksign); \ + test_p(func, conjl(z), conjl(result), exceptmask, excepts, checksign); \ +} while (0) +#define test_tol(func, z, result, tol) do { \ + test_p_tol(func, z, result, tol); \ + test_p_tol(func, conjl(z), conjl(result), tol); \ +} while (0) + +/* Test the given function in all precisions. */ +#define testall(func, x, result, exceptmask, excepts, checksign) do { \ + test(func, x, result, exceptmask, excepts, checksign); \ + test(func##f, x, result, exceptmask, excepts, checksign); \ +} while (0) +#define testall_odd(func, x, result, exceptmask, excepts, checksign) do { \ + testall(func, x, result, exceptmask, excepts, checksign); \ + testall(func, -x, -result, exceptmask, excepts, checksign); \ +} while (0) +#define testall_even(func, x, result, exceptmask, excepts, checksign) do { \ + testall(func, x, result, exceptmask, excepts, checksign); \ + testall(func, -x, result, exceptmask, excepts, checksign); \ +} while (0) + +/* + * Test the given function in all precisions, within a given tolerance. + * The tolerance is specified in ulps. + */ +#define testall_tol(func, x, result, tol) do { \ + test_tol(func, x, result, tol * DBL_ULP()); \ + test_tol(func##f, x, result, tol * FLT_ULP()); \ +} while (0) +#define testall_odd_tol(func, x, result, tol) do { \ + test_tol(func, x, result, tol * DBL_ULP()); \ + test_tol(func, -x, -result, tol * DBL_ULP()); \ +} while (0) +#define testall_even_tol(func, x, result, tol) do { \ + test_tol(func, x, result, tol * DBL_ULP()); \ + test_tol(func, -x, result, tol * DBL_ULP()); \ +} while (0) + +/* + * Determine whether x and y are equal, with two special rules: + * +0.0 != -0.0 + * NaN == NaN + * If checksign is 0, we compare the absolute values instead. + */ +static int +fpequal(long double x, long double y, int checksign) +{ + if (isnan(x) && isnan(y)) + return (1); + if (checksign) + return (x == y && !signbit(x) == !signbit(y)); + else + return (fabsl(x) == fabsl(y)); +} + +static int +fpequal_tol(long double x, long double y, long double tol) +{ + fenv_t env; + int ret; + + if (isnan(x) && isnan(y)) + return (1); + if (!signbit(x) != !signbit(y) && tol == 0) + return (0); + if (x == y) + return (1); + if (tol == 0) + return (0); + + /* Hard case: need to check the tolerance. */ + feholdexcept(&env); + /* + * For our purposes here, if y=0, we interpret tol as an absolute + * tolerance. This is to account for roundoff in the input, e.g., + * cos(Pi/2) ~= 0. + */ + if (y == 0.0) + ret = fabsl(x - y) <= fabsl(tol); + else + ret = fabsl(x - y) <= fabsl(y * tol); + fesetenv(&env); + return (ret); +} + +static int +cfpequal(long double complex x, long double complex y, int checksign) +{ + return (fpequal(creal(x), creal(y), checksign & CS_REAL) + && fpequal(cimag(x), cimag(y), checksign & CS_IMAG)); +} + +static int +cfpequal_tol(long double complex x, long double complex y, long double tol) +{ + return (fpequal_tol(creal(x), creal(y), tol) + && fpequal_tol(cimag(x), cimag(y), tol)); +} + + +/* Tests for 0 */ +void +test_zero(void) +{ + long double complex zero = cpackl(0.0, 0.0); + + /* csinh(0) = ctanh(0) = 0; ccosh(0) = 1 (no exceptions raised) */ + testall_odd(csinh, zero, zero, ALL_STD_EXCEPT, 0, CS_BOTH); + testall_odd(csin, zero, zero, ALL_STD_EXCEPT, 0, CS_BOTH); + testall_even(ccosh, zero, 1.0, ALL_STD_EXCEPT, 0, CS_BOTH); + testall_even(ccos, zero, cpackl(1.0, -0.0), ALL_STD_EXCEPT, 0, CS_BOTH); + testall_odd(ctanh, zero, zero, ALL_STD_EXCEPT, 0, CS_BOTH); + testall_odd(ctan, zero, zero, ALL_STD_EXCEPT, 0, CS_BOTH); +} + +/* + * Tests for NaN inputs. + */ +void +test_nan() +{ + long double complex nan_nan = cpackl(NAN, NAN); + long double complex z; + + /* + * IN CSINH CCOSH CTANH + * NaN,NaN NaN,NaN NaN,NaN NaN,NaN + * finite,NaN NaN,NaN [inval] NaN,NaN [inval] NaN,NaN [inval] + * NaN,finite NaN,NaN [inval] NaN,NaN [inval] NaN,NaN [inval] + * NaN,Inf NaN,NaN [inval] NaN,NaN [inval] NaN,NaN [inval] + * Inf,NaN +-Inf,NaN Inf,NaN 1,+-0 + * 0,NaN +-0,NaN NaN,+-0 NaN,NaN [inval] + * NaN,0 NaN,0 NaN,+-0 NaN,0 + */ + z = nan_nan; + testall_odd(csinh, z, nan_nan, ALL_STD_EXCEPT, 0, 0); + testall_even(ccosh, z, nan_nan, ALL_STD_EXCEPT, 0, 0); + testall_odd(ctanh, z, nan_nan, ALL_STD_EXCEPT, 0, 0); + testall_odd(csin, z, nan_nan, ALL_STD_EXCEPT, 0, 0); + testall_even(ccos, z, nan_nan, ALL_STD_EXCEPT, 0, 0); + testall_odd(ctan, z, nan_nan, ALL_STD_EXCEPT, 0, 0); + + z = cpackl(42, NAN); + testall_odd(csinh, z, nan_nan, OPT_INVALID, 0, 0); + testall_even(ccosh, z, nan_nan, OPT_INVALID, 0, 0); + /* XXX We allow a spurious inexact exception here. */ + testall_odd(ctanh, z, nan_nan, OPT_INVALID & ~FE_INEXACT, 0, 0); + testall_odd(csin, z, nan_nan, OPT_INVALID, 0, 0); + testall_even(ccos, z, nan_nan, OPT_INVALID, 0, 0); + testall_odd(ctan, z, nan_nan, OPT_INVALID, 0, 0); + + z = cpackl(NAN, 42); + testall_odd(csinh, z, nan_nan, OPT_INVALID, 0, 0); + testall_even(ccosh, z, nan_nan, OPT_INVALID, 0, 0); + testall_odd(ctanh, z, nan_nan, OPT_INVALID, 0, 0); + testall_odd(csin, z, nan_nan, OPT_INVALID, 0, 0); + testall_even(ccos, z, nan_nan, OPT_INVALID, 0, 0); + /* XXX We allow a spurious inexact exception here. */ + testall_odd(ctan, z, nan_nan, OPT_INVALID & ~FE_INEXACT, 0, 0); + + z = cpackl(NAN, INFINITY); + testall_odd(csinh, z, nan_nan, OPT_INVALID, 0, 0); + testall_even(ccosh, z, nan_nan, OPT_INVALID, 0, 0); + testall_odd(ctanh, z, nan_nan, OPT_INVALID, 0, 0); + testall_odd(csin, z, cpackl(NAN, INFINITY), ALL_STD_EXCEPT, 0, 0); + testall_even(ccos, z, cpackl(INFINITY, NAN), ALL_STD_EXCEPT, 0, + CS_IMAG); + testall_odd(ctan, z, cpackl(0, 1), ALL_STD_EXCEPT, 0, CS_IMAG); + + z = cpackl(INFINITY, NAN); + testall_odd(csinh, z, cpackl(INFINITY, NAN), ALL_STD_EXCEPT, 0, 0); + testall_even(ccosh, z, cpackl(INFINITY, NAN), ALL_STD_EXCEPT, 0, + CS_REAL); + testall_odd(ctanh, z, cpackl(1, 0), ALL_STD_EXCEPT, 0, CS_REAL); + testall_odd(csin, z, nan_nan, OPT_INVALID, 0, 0); + testall_even(ccos, z, nan_nan, OPT_INVALID, 0, 0); + testall_odd(ctan, z, nan_nan, OPT_INVALID, 0, 0); + + z = cpackl(0, NAN); + testall_odd(csinh, z, cpackl(0, NAN), ALL_STD_EXCEPT, 0, 0); + testall_even(ccosh, z, cpackl(NAN, 0), ALL_STD_EXCEPT, 0, 0); + testall_odd(ctanh, z, nan_nan, OPT_INVALID, 0, 0); + testall_odd(csin, z, cpackl(0, NAN), ALL_STD_EXCEPT, 0, CS_REAL); + testall_even(ccos, z, cpackl(NAN, 0), ALL_STD_EXCEPT, 0, 0); + testall_odd(ctan, z, cpackl(0, NAN), ALL_STD_EXCEPT, 0, CS_REAL); + + z = cpackl(NAN, 0); + testall_odd(csinh, z, cpackl(NAN, 0), ALL_STD_EXCEPT, 0, CS_IMAG); + testall_even(ccosh, z, cpackl(NAN, 0), ALL_STD_EXCEPT, 0, 0); + testall_odd(ctanh, z, cpackl(NAN, 0), ALL_STD_EXCEPT, 0, CS_IMAG); + testall_odd(csin, z, cpackl(NAN, 0), ALL_STD_EXCEPT, 0, 0); + testall_even(ccos, z, cpackl(NAN, 0), ALL_STD_EXCEPT, 0, 0); + testall_odd(ctan, z, nan_nan, OPT_INVALID, 0, 0); +} + +void +test_inf(void) +{ + static const long double finites[] = { + 0, M_PI / 4, 3 * M_PI / 4, 5 * M_PI / 4, + }; + long double complex z, c, s; + int i; + + /* + * IN CSINH CCOSH CTANH + * Inf,Inf +-Inf,NaN inval +-Inf,NaN inval 1,+-0 + * Inf,finite Inf cis(finite) Inf cis(finite) 1,0 sin(2 finite) + * 0,Inf +-0,NaN inval NaN,+-0 inval NaN,NaN inval + * finite,Inf NaN,NaN inval NaN,NaN inval NaN,NaN inval + */ + z = cpackl(INFINITY, INFINITY); + testall_odd(csinh, z, cpackl(INFINITY, NAN), + ALL_STD_EXCEPT, FE_INVALID, 0); + testall_even(ccosh, z, cpackl(INFINITY, NAN), + ALL_STD_EXCEPT, FE_INVALID, 0); + testall_odd(ctanh, z, cpackl(1, 0), ALL_STD_EXCEPT, 0, CS_REAL); + testall_odd(csin, z, cpackl(NAN, INFINITY), + ALL_STD_EXCEPT, FE_INVALID, 0); + testall_even(ccos, z, cpackl(INFINITY, NAN), + ALL_STD_EXCEPT, FE_INVALID, 0); + testall_odd(ctan, z, cpackl(0, 1), ALL_STD_EXCEPT, 0, CS_REAL); + + /* XXX We allow spurious inexact exceptions here (hard to avoid). */ + for (i = 0; i < sizeof(finites) / sizeof(finites[0]); i++) { + z = cpackl(INFINITY, finites[i]); + c = INFINITY * cosl(finites[i]); + s = finites[i] == 0 ? finites[i] : INFINITY * sinl(finites[i]); + testall_odd(csinh, z, cpackl(c, s), OPT_INEXACT, 0, CS_BOTH); + testall_even(ccosh, z, cpackl(c, s), OPT_INEXACT, 0, CS_BOTH); + testall_odd(ctanh, z, cpackl(1, 0 * sin(finites[i] * 2)), + OPT_INEXACT, 0, CS_BOTH); + z = cpackl(finites[i], INFINITY); + testall_odd(csin, z, cpackl(s, c), OPT_INEXACT, 0, CS_BOTH); + testall_even(ccos, z, cpackl(c, -s), OPT_INEXACT, 0, CS_BOTH); + testall_odd(ctan, z, cpackl(0 * sin(finites[i] * 2), 1), + OPT_INEXACT, 0, CS_BOTH); + } + + z = cpackl(0, INFINITY); + testall_odd(csinh, z, cpackl(0, NAN), ALL_STD_EXCEPT, FE_INVALID, 0); + testall_even(ccosh, z, cpackl(NAN, 0), ALL_STD_EXCEPT, FE_INVALID, 0); + testall_odd(ctanh, z, cpackl(NAN, NAN), ALL_STD_EXCEPT, FE_INVALID, 0); + z = cpackl(INFINITY, 0); + testall_odd(csin, z, cpackl(NAN, 0), ALL_STD_EXCEPT, FE_INVALID, 0); + testall_even(ccos, z, cpackl(NAN, 0), ALL_STD_EXCEPT, FE_INVALID, 0); + testall_odd(ctan, z, cpackl(NAN, NAN), ALL_STD_EXCEPT, FE_INVALID, 0); + + z = cpackl(42, INFINITY); + testall_odd(csinh, z, cpackl(NAN, NAN), ALL_STD_EXCEPT, FE_INVALID, 0); + testall_even(ccosh, z, cpackl(NAN, NAN), ALL_STD_EXCEPT, FE_INVALID, 0); + /* XXX We allow a spurious inexact exception here. */ + testall_odd(ctanh, z, cpackl(NAN, NAN), OPT_INEXACT, FE_INVALID, 0); + z = cpackl(INFINITY, 42); + testall_odd(csin, z, cpackl(NAN, NAN), ALL_STD_EXCEPT, FE_INVALID, 0); + testall_even(ccos, z, cpackl(NAN, NAN), ALL_STD_EXCEPT, FE_INVALID, 0); + /* XXX We allow a spurious inexact exception here. */ + testall_odd(ctan, z, cpackl(NAN, NAN), OPT_INEXACT, FE_INVALID, 0); +} + +/* Tests along the real and imaginary axes. */ +void +test_axes(void) +{ + static const long double nums[] = { + M_PI / 4, M_PI / 2, 3 * M_PI / 4, + 5 * M_PI / 4, 3 * M_PI / 2, 7 * M_PI / 4, + }; + long double complex z; + int i; + + for (i = 0; i < sizeof(nums) / sizeof(nums[0]); i++) { + /* Real axis */ + z = cpackl(nums[i], 0.0); + testall_odd_tol(csinh, z, cpackl(sinh(nums[i]), 0), 0); + testall_even_tol(ccosh, z, cpackl(cosh(nums[i]), 0), 0); + testall_odd_tol(ctanh, z, cpackl(tanh(nums[i]), 0), 1); + testall_odd_tol(csin, z, cpackl(sin(nums[i]), + copysign(0, cos(nums[i]))), 0); + testall_even_tol(ccos, z, cpackl(cos(nums[i]), + -copysign(0, sin(nums[i]))), 0); + testall_odd_tol(ctan, z, cpackl(tan(nums[i]), 0), 1); + + /* Imaginary axis */ + z = cpackl(0.0, nums[i]); + testall_odd_tol(csinh, z, cpackl(copysign(0, cos(nums[i])), + sin(nums[i])), 0); + testall_even_tol(ccosh, z, cpackl(cos(nums[i]), + copysign(0, sin(nums[i]))), 0); + testall_odd_tol(ctanh, z, cpackl(0, tan(nums[i])), 1); + testall_odd_tol(csin, z, cpackl(0, sinh(nums[i])), 0); + testall_even_tol(ccos, z, cpackl(cosh(nums[i]), -0.0), 0); + testall_odd_tol(ctan, z, cpackl(0, tanh(nums[i])), 1); + } +} + +void +test_small(void) +{ + /* + * z = 0.5 + i Pi/4 + * sinh(z) = (sinh(0.5) + i cosh(0.5)) * sqrt(2)/2 + * cosh(z) = (cosh(0.5) + i sinh(0.5)) * sqrt(2)/2 + * tanh(z) = (2cosh(0.5)sinh(0.5) + i) / (2 cosh(0.5)**2 - 1) + * z = -0.5 + i Pi/2 + * sinh(z) = cosh(0.5) + * cosh(z) = -i sinh(0.5) + * tanh(z) = -coth(0.5) + * z = 1.0 + i 3Pi/4 + * sinh(z) = (-sinh(1) + i cosh(1)) * sqrt(2)/2 + * cosh(z) = (-cosh(1) + i sinh(1)) * sqrt(2)/2 + * tanh(z) = (2cosh(1)sinh(1) - i) / (2cosh(1)**2 - 1) + */ + static const struct { + long double a, b; + long double sinh_a, sinh_b; + long double cosh_a, cosh_b; + long double tanh_a, tanh_b; + } tests[] = { + { 0.5L, + 0.78539816339744830961566084581987572L, + 0.36847002415910435172083660522240710L, + 0.79735196663945774996093142586179334L, + 0.79735196663945774996093142586179334L, + 0.36847002415910435172083660522240710L, + 0.76159415595576488811945828260479359L, + 0.64805427366388539957497735322615032L }, + { -0.5L, + 1.57079632679489661923132169163975144L, + 0.0L, + 1.12762596520638078522622516140267201L, + 0.0L, + -0.52109530549374736162242562641149156L, + -2.16395341373865284877000401021802312L, + 0.0L }, + { 1.0L, + 2.35619449019234492884698253745962716L, + -0.83099273328405698212637979852748608L, + 1.09112278079550143030545602018565236L, + -1.09112278079550143030545602018565236L, + 0.83099273328405698212637979852748609L, + 0.96402758007581688394641372410092315L, + -0.26580222883407969212086273981988897L } + }; + long double complex z; + int i; + + for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) { + z = cpackl(tests[i].a, tests[i].b); + testall_odd_tol(csinh, z, + cpackl(tests[i].sinh_a, tests[i].sinh_b), 1.1); + testall_even_tol(ccosh, z, + cpackl(tests[i].cosh_a, tests[i].cosh_b), 1.1); + testall_odd_tol(ctanh, z, + cpackl(tests[i].tanh_a, tests[i].tanh_b), 1.1); + } +} + +/* Test inputs that might cause overflow in a sloppy implementation. */ +void +test_large(void) +{ + long double complex z; + + /* tanh() uses a threshold around x=22, so check both sides. */ + z = cpackl(21, 0.78539816339744830961566084581987572L); + testall_odd_tol(ctanh, z, + cpackl(1.0, 1.14990445285871196133287617611468468e-18L), 1); + z++; + testall_odd_tol(ctanh, z, + cpackl(1.0, 1.55622644822675930314266334585597964e-19L), 1); + + z = cpackl(355, 0.78539816339744830961566084581987572L); + testall_odd_tol(ctanh, z, + cpackl(1.0, 8.95257245135025991216632140458264468e-309L), 1); + z = cpackl(30, 0x1p1023L); + testall_odd_tol(ctanh, z, + cpackl(1.0, -1.62994325413993477997492170229268382e-26L), 1); + z = cpackl(1, 0x1p1023L); + testall_odd_tol(ctanh, z, + cpackl(0.878606311888306869546254022621986509L, + -0.225462792499754505792678258169527424L), 1); + + z = cpackl(710.6, 0.78539816339744830961566084581987572L); + testall_odd_tol(csinh, z, + cpackl(1.43917579766621073533185387499658944e308L, + 1.43917579766621073533185387499658944e308L), 1); + testall_even_tol(ccosh, z, + cpackl(1.43917579766621073533185387499658944e308L, + 1.43917579766621073533185387499658944e308L), 1); + + z = cpackl(1500, 0.78539816339744830961566084581987572L); + testall_odd(csinh, z, cpackl(INFINITY, INFINITY), OPT_INEXACT, + FE_OVERFLOW, CS_BOTH); + testall_even(ccosh, z, cpackl(INFINITY, INFINITY), OPT_INEXACT, + FE_OVERFLOW, CS_BOTH); +} + +int +main(int argc, char *argv[]) +{ + + printf("1..6\n"); + + test_zero(); + printf("ok 1 - ctrig zero\n"); + + test_nan(); + printf("ok 2 - ctrig nan\n"); + + test_inf(); + printf("ok 3 - ctrig inf\n"); + + test_axes(); + printf("ok 4 - ctrig axes\n"); + + test_small(); + printf("ok 5 - ctrig small\n"); + + test_large(); + printf("ok 6 - ctrig large\n"); + + return (0); +} Copied: stable/9/tools/regression/lib/msun/test-ctrig.t (from r226603, head/tools/regression/lib/msun/test-ctrig.t) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/9/tools/regression/lib/msun/test-ctrig.t Sun Dec 27 21:39:28 2015 (r292803, copy of r226603, head/tools/regression/lib/msun/test-ctrig.t) @@ -0,0 +1,10 @@ +#!/bin/sh +# $FreeBSD$ + +cd `dirname $0` + +executable=`basename $0 .t` + +make $executable 2>&1 > /dev/null + +exec ./$executable Copied: stable/9/tools/regression/lib/msun/test-invctrig.c (from r251119, head/tools/regression/lib/msun/test-invctrig.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/9/tools/regression/lib/msun/test-invctrig.c Sun Dec 27 21:39:28 2015 (r292803, copy of r251119, head/tools/regression/lib/msun/test-invctrig.c) @@ -0,0 +1,442 @@ +/*- + * Copyright (c) 2008-2013 David Schultz + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Tests for casin[h](), cacos[h](), and catan[h](). + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include + +#define ALL_STD_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | \ + FE_OVERFLOW | FE_UNDERFLOW) +#define OPT_INVALID (ALL_STD_EXCEPT & ~FE_INVALID) +#define OPT_INEXACT (ALL_STD_EXCEPT & ~FE_INEXACT) +#define FLT_ULP() ldexpl(1.0, 1 - FLT_MANT_DIG) +#define DBL_ULP() ldexpl(1.0, 1 - DBL_MANT_DIG) +#define LDBL_ULP() ldexpl(1.0, 1 - LDBL_MANT_DIG) + +#pragma STDC FENV_ACCESS ON +#pragma STDC CX_LIMITED_RANGE OFF + +/* Flags that determine whether to check the signs of the result. */ +#define CS_REAL 1 +#define CS_IMAG 2 +#define CS_BOTH (CS_REAL | CS_IMAG) + +#ifdef DEBUG +#define debug(...) printf(__VA_ARGS__) +#else +#define debug(...) (void)0 +#endif + +/* + * Test that a function returns the correct value and sets the + * exception flags correctly. The exceptmask specifies which + * exceptions we should check. We need to be lenient for several + * reasons, but mainly because on some architectures it's impossible + * to raise FE_OVERFLOW without raising FE_INEXACT. + * + * These are macros instead of functions so that assert provides more + * meaningful error messages. + * + * XXX The volatile here is to avoid gcc's bogus constant folding and work + * around the lack of support for the FENV_ACCESS pragma. + */ +#define test_p(func, z, result, exceptmask, excepts, checksign) do { \ + volatile long double complex _d = z; \ + debug(" testing %s(%Lg + %Lg I) == %Lg + %Lg I\n", #func, \ + creall(_d), cimagl(_d), creall(result), cimagl(result)); \ + assert(feclearexcept(FE_ALL_EXCEPT) == 0); \ + assert(cfpequal((func)(_d), (result), (checksign))); \ + assert(((func), fetestexcept(exceptmask) == (excepts))); \ +} while (0) + +/* + * Test within a given tolerance. The tolerance indicates relative error + * in ulps. + */ +#define test_p_tol(func, z, result, tol) do { \ + volatile long double complex _d = z; \ + debug(" testing %s(%Lg + %Lg I) ~= %Lg + %Lg I\n", #func, \ + creall(_d), cimagl(_d), creall(result), cimagl(result)); \ + assert(cfpequal_tol((func)(_d), (result), (tol))); \ +} while (0) + +/* These wrappers apply the identities f(conj(z)) = conj(f(z)). */ +#define test(func, z, result, exceptmask, excepts, checksign) do { \ + test_p(func, z, result, exceptmask, excepts, checksign); \ + test_p(func, conjl(z), conjl(result), exceptmask, excepts, checksign); \ +} while (0) +#define test_tol(func, z, result, tol) do { \ + test_p_tol(func, z, result, tol); \ + test_p_tol(func, conjl(z), conjl(result), tol); \ +} while (0) + +/* Test the given function in all precisions. */ +#define testall(func, x, result, exceptmask, excepts, checksign) do { \ + test(func, x, result, exceptmask, excepts, checksign); \ + test(func##f, x, result, exceptmask, excepts, checksign); \ +} while (0) +#define testall_odd(func, x, result, exceptmask, excepts, checksign) do { \ + testall(func, x, result, exceptmask, excepts, checksign); \ + testall(func, -(x), -result, exceptmask, excepts, checksign); \ +} while (0) +#define testall_even(func, x, result, exceptmask, excepts, checksign) do { \ + testall(func, x, result, exceptmask, excepts, checksign); \ + testall(func, -(x), result, exceptmask, excepts, checksign); \ +} while (0) + +/* + * Test the given function in all precisions, within a given tolerance. + * The tolerance is specified in ulps. + */ +#define testall_tol(func, x, result, tol) do { \ + test_tol(func, x, result, (tol) * DBL_ULP()); \ + test_tol(func##f, x, result, (tol) * FLT_ULP()); \ +} while (0) +#define testall_odd_tol(func, x, result, tol) do { \ + testall_tol(func, x, result, tol); \ + testall_tol(func, -(x), -result, tol); \ +} while (0) +#define testall_even_tol(func, x, result, tol) do { \ + testall_tol(func, x, result, tol); \ + testall_tol(func, -(x), result, tol); \ +} while (0) + +static const long double +pi = 3.14159265358979323846264338327950280L, +c3pi = 9.42477796076937971538793014983850839L; + +/* + * Determine whether x and y are equal, with two special rules: + * +0.0 != -0.0 + * NaN == NaN + * If checksign is 0, we compare the absolute values instead. + */ +static int +fpequal(long double x, long double y, int checksign) +{ + if (isnan(x) && isnan(y)) + return (1); + if (checksign) + return (x == y && !signbit(x) == !signbit(y)); + else + return (fabsl(x) == fabsl(y)); +} + +static int +fpequal_tol(long double x, long double y, long double tol) +{ + fenv_t env; + int ret; + + if (isnan(x) && isnan(y)) + return (1); + if (!signbit(x) != !signbit(y)) + return (0); + if (x == y) + return (1); + if (tol == 0 || y == 0.0) + return (0); + + /* Hard case: need to check the tolerance. */ + feholdexcept(&env); + ret = fabsl(x - y) <= fabsl(y * tol); + fesetenv(&env); + return (ret); +} + +static int +cfpequal(long double complex x, long double complex y, int checksign) +{ + return (fpequal(creal(x), creal(y), checksign & CS_REAL) + && fpequal(cimag(x), cimag(y), checksign & CS_IMAG)); +} + +static int +cfpequal_tol(long double complex x, long double complex y, long double tol) +{ + return (fpequal_tol(creal(x), creal(y), tol) + && fpequal_tol(cimag(x), cimag(y), tol)); +} + + +/* Tests for 0 */ +void +test_zero(void) +{ + long double complex zero = CMPLXL(0.0, 0.0); + + testall_tol(cacosh, zero, CMPLXL(0.0, pi / 2), 1); + testall_tol(cacosh, -zero, CMPLXL(0.0, -pi / 2), 1); + testall_tol(cacos, zero, CMPLXL(pi / 2, -0.0), 1); + testall_tol(cacos, -zero, CMPLXL(pi / 2, 0.0), 1); + + testall_odd(casinh, zero, zero, ALL_STD_EXCEPT, 0, CS_BOTH); + testall_odd(casin, zero, zero, ALL_STD_EXCEPT, 0, CS_BOTH); + + testall_odd(catanh, zero, zero, ALL_STD_EXCEPT, 0, CS_BOTH); + testall_odd(catan, zero, zero, ALL_STD_EXCEPT, 0, CS_BOTH); +} + +/* + * Tests for NaN inputs. + */ +void +test_nan() +{ + long double complex nan_nan = CMPLXL(NAN, NAN); + long double complex z; + + /* + * IN CACOSH CACOS CASINH CATANH + * NaN,NaN NaN,NaN NaN,NaN NaN,NaN NaN,NaN + * finite,NaN NaN,NaN* NaN,NaN* NaN,NaN* NaN,NaN* + * NaN,finite NaN,NaN* NaN,NaN* NaN,NaN* NaN,NaN* + * NaN,Inf Inf,NaN NaN,-Inf ?Inf,NaN ?0,pi/2 + * +-Inf,NaN Inf,NaN NaN,?Inf +-Inf,NaN +-0,NaN + * +-0,NaN NaN,NaN* pi/2,NaN NaN,NaN* +-0,NaN + * NaN,0 NaN,NaN* NaN,NaN* NaN,0 NaN,NaN* + * + * * = raise invalid + */ + z = nan_nan; + testall(cacosh, z, nan_nan, ALL_STD_EXCEPT, 0, 0); + testall(cacos, z, nan_nan, ALL_STD_EXCEPT, 0, 0); + testall(casinh, z, nan_nan, ALL_STD_EXCEPT, 0, 0); + testall(casin, z, nan_nan, ALL_STD_EXCEPT, 0, 0); + testall(catanh, z, nan_nan, ALL_STD_EXCEPT, 0, 0); + testall(catan, z, nan_nan, ALL_STD_EXCEPT, 0, 0); + + z = CMPLXL(0.5, NAN); + testall(cacosh, z, nan_nan, OPT_INVALID, 0, 0); + testall(cacos, z, nan_nan, OPT_INVALID, 0, 0); + testall(casinh, z, nan_nan, OPT_INVALID, 0, 0); + testall(casin, z, nan_nan, OPT_INVALID, 0, 0); + testall(catanh, z, nan_nan, OPT_INVALID, 0, 0); + testall(catan, z, nan_nan, OPT_INVALID, 0, 0); + + z = CMPLXL(NAN, 0.5); + testall(cacosh, z, nan_nan, OPT_INVALID, 0, 0); + testall(cacos, z, nan_nan, OPT_INVALID, 0, 0); + testall(casinh, z, nan_nan, OPT_INVALID, 0, 0); + testall(casin, z, nan_nan, OPT_INVALID, 0, 0); + testall(catanh, z, nan_nan, OPT_INVALID, 0, 0); + testall(catan, z, nan_nan, OPT_INVALID, 0, 0); + + z = CMPLXL(NAN, INFINITY); + testall(cacosh, z, CMPLXL(INFINITY, NAN), ALL_STD_EXCEPT, 0, CS_REAL); + testall(cacosh, -z, CMPLXL(INFINITY, NAN), ALL_STD_EXCEPT, 0, CS_REAL); + testall(cacos, z, CMPLXL(NAN, -INFINITY), ALL_STD_EXCEPT, 0, CS_IMAG); + testall(casinh, z, CMPLXL(INFINITY, NAN), ALL_STD_EXCEPT, 0, 0); + testall(casin, z, CMPLXL(NAN, INFINITY), ALL_STD_EXCEPT, 0, CS_IMAG); + testall_tol(catanh, z, CMPLXL(0.0, pi / 2), 1); + testall(catan, z, CMPLXL(NAN, 0.0), ALL_STD_EXCEPT, 0, CS_IMAG); + + z = CMPLXL(INFINITY, NAN); + testall_even(cacosh, z, CMPLXL(INFINITY, NAN), ALL_STD_EXCEPT, 0, + CS_REAL); + testall_even(cacos, z, CMPLXL(NAN, INFINITY), ALL_STD_EXCEPT, 0, 0); + testall_odd(casinh, z, CMPLXL(INFINITY, NAN), ALL_STD_EXCEPT, 0, + CS_REAL); + testall_odd(casin, z, CMPLXL(NAN, INFINITY), ALL_STD_EXCEPT, 0, 0); + testall_odd(catanh, z, CMPLXL(0.0, NAN), ALL_STD_EXCEPT, 0, CS_REAL); + testall_odd_tol(catan, z, CMPLXL(pi / 2, 0.0), 1); + + z = CMPLXL(0.0, NAN); + /* XXX We allow a spurious inexact exception here. */ + testall_even(cacosh, z, nan_nan, OPT_INVALID & ~FE_INEXACT, 0, 0); + testall_even_tol(cacos, z, CMPLXL(pi / 2, NAN), 1); + testall_odd(casinh, z, nan_nan, OPT_INVALID, 0, 0); + testall_odd(casin, z, CMPLXL(0.0, NAN), ALL_STD_EXCEPT, 0, CS_REAL); + testall_odd(catanh, z, CMPLXL(0.0, NAN), OPT_INVALID, 0, CS_REAL); + testall_odd(catan, z, nan_nan, OPT_INVALID, 0, 0); + + z = CMPLXL(NAN, 0.0); + testall(cacosh, z, nan_nan, OPT_INVALID, 0, 0); + testall(cacos, z, nan_nan, OPT_INVALID, 0, 0); + testall(casinh, z, CMPLXL(NAN, 0), ALL_STD_EXCEPT, 0, CS_IMAG); + testall(casin, z, nan_nan, OPT_INVALID, 0, 0); + testall(catanh, z, nan_nan, OPT_INVALID, 0, CS_IMAG); + testall(catan, z, CMPLXL(NAN, 0.0), ALL_STD_EXCEPT, 0, 0); +} + +void +test_inf(void) +{ + long double complex z; + + /* + * IN CACOSH CACOS CASINH CATANH + * Inf,Inf Inf,pi/4 pi/4,-Inf Inf,pi/4 0,pi/2 + * -Inf,Inf Inf,3pi/4 3pi/4,-Inf --- --- + * Inf,finite Inf,0 0,-Inf Inf,0 0,pi/2 + * -Inf,finite Inf,pi pi,-Inf --- --- + * finite,Inf Inf,pi/2 pi/2,-Inf Inf,pi/2 0,pi/2 + */ + z = CMPLXL(INFINITY, INFINITY); + testall_tol(cacosh, z, CMPLXL(INFINITY, pi / 4), 1); + testall_tol(cacosh, -z, CMPLXL(INFINITY, -c3pi / 4), 1); + testall_tol(cacos, z, CMPLXL(pi / 4, -INFINITY), 1); + testall_tol(cacos, -z, CMPLXL(c3pi / 4, INFINITY), 1); + testall_odd_tol(casinh, z, CMPLXL(INFINITY, pi / 4), 1); + testall_odd_tol(casin, z, CMPLXL(pi / 4, INFINITY), 1); + testall_odd_tol(catanh, z, CMPLXL(0, pi / 2), 1); + testall_odd_tol(catan, z, CMPLXL(pi / 2, 0), 1); + + z = CMPLXL(INFINITY, 0.5); + /* XXX We allow a spurious inexact exception here. */ + testall(cacosh, z, CMPLXL(INFINITY, 0), OPT_INEXACT, 0, CS_BOTH); + testall_tol(cacosh, -z, CMPLXL(INFINITY, -pi), 1); + testall(cacos, z, CMPLXL(0, -INFINITY), OPT_INEXACT, 0, CS_BOTH); + testall_tol(cacos, -z, CMPLXL(pi, INFINITY), 1); + testall_odd(casinh, z, CMPLXL(INFINITY, 0), OPT_INEXACT, 0, CS_BOTH); + testall_odd_tol(casin, z, CMPLXL(pi / 2, INFINITY), 1); + testall_odd_tol(catanh, z, CMPLXL(0, pi / 2), 1); + testall_odd_tol(catan, z, CMPLXL(pi / 2, 0), 1); + + z = CMPLXL(0.5, INFINITY); + testall_tol(cacosh, z, CMPLXL(INFINITY, pi / 2), 1); + testall_tol(cacosh, -z, CMPLXL(INFINITY, -pi / 2), 1); + testall_tol(cacos, z, CMPLXL(pi / 2, -INFINITY), 1); + testall_tol(cacos, -z, CMPLXL(pi / 2, INFINITY), 1); + testall_odd_tol(casinh, z, CMPLXL(INFINITY, pi / 2), 1); + /* XXX We allow a spurious inexact exception here. */ + testall_odd(casin, z, CMPLXL(0.0, INFINITY), OPT_INEXACT, 0, CS_BOTH); + testall_odd_tol(catanh, z, CMPLXL(0, pi / 2), 1); + testall_odd_tol(catan, z, CMPLXL(pi / 2, 0), 1); +} + +/* Tests along the real and imaginary axes. */ +void +test_axes(void) +{ + static const long double nums[] = { + -2, -1, -0.5, 0.5, 1, 2 + }; + long double complex z; + int i; + + for (i = 0; i < sizeof(nums) / sizeof(nums[0]); i++) { + /* Real axis */ + z = CMPLXL(nums[i], 0.0); + if (fabs(nums[i]) <= 1) { + testall_tol(cacosh, z, CMPLXL(0.0, acos(nums[i])), 1); + testall_tol(cacos, z, CMPLXL(acosl(nums[i]), -0.0), 1); + testall_tol(casin, z, CMPLXL(asinl(nums[i]), 0.0), 1); + testall_tol(catanh, z, CMPLXL(atanh(nums[i]), 0.0), 1); + } else { + testall_tol(cacosh, z, + CMPLXL(acosh(fabs(nums[i])), + (nums[i] < 0) ? pi : 0), 1); + testall_tol(cacos, z, + CMPLXL((nums[i] < 0) ? pi : 0, + -acosh(fabs(nums[i]))), 1); + testall_tol(casin, z, + CMPLXL(copysign(pi / 2, nums[i]), + acosh(fabs(nums[i]))), 1); + testall_tol(catanh, z, + CMPLXL(atanh(1 / nums[i]), pi / 2), 1); + } + testall_tol(casinh, z, CMPLXL(asinh(nums[i]), 0.0), 1); + testall_tol(catan, z, CMPLXL(atan(nums[i]), 0), 1); + + /* TODO: Test the imaginary axis. */ + } +} + +void +test_small(void) +{ + /* + * z = 0.75 + i 0.25 + * acos(z) = Pi/4 - i ln(2)/2 + * asin(z) = Pi/4 + i ln(2)/2 + * atan(z) = atan(4)/2 + i ln(17/9)/4 + */ + static const struct { + complex long double z; + complex long double acos_z; + complex long double asin_z; + complex long double atan_z; + } tests[] = { + { CMPLXL(0.75L, 0.25L), + CMPLXL(pi / 4, -0.34657359027997265470861606072908828L), + CMPLXL(pi / 4, 0.34657359027997265470861606072908828L), + CMPLXL(0.66290883183401623252961960521423782L, + 0.15899719167999917436476103600701878L) }, + }; + int i; + + for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) { + testall_tol(cacos, tests[i].z, tests[i].acos_z, 2); + testall_odd_tol(casin, tests[i].z, tests[i].asin_z, 2); + testall_odd_tol(catan, tests[i].z, tests[i].atan_z, 2); + } +} + +/* Test inputs that might cause overflow in a sloppy implementation. */ +void +test_large(void) +{ + + /* TODO: Write these tests */ +} + +int +main(int argc, char *argv[]) +{ + + printf("1..6\n"); + + test_zero(); + printf("ok 1 - invctrig zero\n"); + + test_nan(); + printf("ok 2 - invctrig nan\n"); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Dec 27 21:47:13 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F268A52446; Sun, 27 Dec 2015 21:47:13 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5207B1E87; Sun, 27 Dec 2015 21:47:13 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRLlCqr008619; Sun, 27 Dec 2015 21:47:12 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRLlC8B008618; Sun, 27 Dec 2015 21:47:12 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512272147.tBRLlC8B008618@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 21:47:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292804 - stable/9/tools/regression/lib/msun X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:47:13 -0000 Author: ngie Date: Sun Dec 27 21:47:12 2015 New Revision: 292804 URL: https://svnweb.freebsd.org/changeset/base/292804 Log: Revert r292803 Some of the hyperbolic functions (sinh, etc) haven't been implemented on stable/9, so the tests that were MFCed were invalid. A corrected MFC will come soon Sponsored by: EMC / Isilon Storage Division Deleted: stable/9/tools/regression/lib/msun/test-ctrig.c stable/9/tools/regression/lib/msun/test-ctrig.t stable/9/tools/regression/lib/msun/test-invctrig.c Modified: stable/9/tools/regression/lib/msun/Makefile Directory Properties: stable/9/ (props changed) stable/9/tools/ (props changed) stable/9/tools/regression/ (props changed) Modified: stable/9/tools/regression/lib/msun/Makefile ============================================================================== --- stable/9/tools/regression/lib/msun/Makefile Sun Dec 27 21:39:28 2015 (r292803) +++ stable/9/tools/regression/lib/msun/Makefile Sun Dec 27 21:47:12 2015 (r292804) @@ -1,9 +1,7 @@ # $FreeBSD$ -TESTS= test-cexp test-conj test-csqrt test-ctrig \ - test-exponential test-fenv test-fma \ - test-fmaxmin test-ilogb test-invtrig test-invctrig \ - test-logarithm test-lrint \ +TESTS= test-cexp test-conj test-csqrt test-exponential test-fenv test-fma \ + test-fmaxmin test-ilogb test-invtrig test-logarithm test-lrint \ test-lround test-nan test-nearbyint test-next test-rem test-trig CFLAGS+= -O0 -lm From owner-svn-src-all@freebsd.org Sun Dec 27 21:52:04 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 35F50A52643; Sun, 27 Dec 2015 21:52:04 +0000 (UTC) (envelope-from trtrmitya@gmail.com) Received: from mail-lf0-x233.google.com (mail-lf0-x233.google.com [IPv6:2a00:1450:4010:c07::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D088A1126; Sun, 27 Dec 2015 21:52:03 +0000 (UTC) (envelope-from trtrmitya@gmail.com) Received: by mail-lf0-x233.google.com with SMTP id z124so185729245lfa.3; Sun, 27 Dec 2015 13:52:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=XoWL28MqSVyemzAxGWA/7ojbJpLj7BZGLxSQPm8Blv4=; b=oCVkFKRCYj7qacnIy45FTiTtMIAmMGukyNA9U+/AyF6CdkiRKn0l4JfKUvYp7HovB3 oWYiQW78S4eKieIioRScXPsRHIvry8SH2Arklk+q5XbWbttPcenN/GOpABbwjvDdZhzy mpfZHYusr1u6q6YEQ7wpS/tJTcul+ShfP4gUdHWRJW9Fsf+c68hHVEHwClUQ3Vqz7l0x Zeli10efwXMmDIigqwo+0CUdVgSYhiZ9Gu7qTKqzdZ0RHpi0aRhBMR9kxD7Vss/gz2SI GjbIVqh+Or8cYKBWM8DccXVAIoog8GSBgzHwr1pi2IlKFZI8ff76PRb4L8p5a16k3Jql WzQA== X-Received: by 10.25.134.2 with SMTP id i2mr18772865lfd.68.1451253120623; Sun, 27 Dec 2015 13:52:00 -0800 (PST) Received: from [10.0.1.2] (broadband-5-228-251-240.nationalcablenetworks.ru. [5.228.251.240]) by smtp.gmail.com with ESMTPSA id e9sm9958696lbs.13.2015.12.27.13.51.59 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 27 Dec 2015 13:51:59 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\)) Subject: Re: svn commit: r292788 - in head/sys: geom/part sys From: Dmitry Sivachenko In-Reply-To: <201512271812.tBRICD3A044563@repo.freebsd.org> Date: Mon, 28 Dec 2015 00:51:58 +0300 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: 7bit Message-Id: References: <201512271812.tBRICD3A044563@repo.freebsd.org> To: Allan Jude X-Mailer: Apple Mail (2.3112) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:52:04 -0000 > On 27 Dec 2015, at 21:12, Allan Jude wrote: > > Author: allanjude > Date: Sun Dec 27 18:12:13 2015 > New Revision: 292788 > URL: https://svnweb.freebsd.org/changeset/base/292788 > > Log: > Add some additional GPT partition types <...> May be list these in man page too? From owner-svn-src-all@freebsd.org Sun Dec 27 21:53:22 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7310AA526AE; Sun, 27 Dec 2015 21:53:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2C2AD13CD; Sun, 27 Dec 2015 21:53:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRLrLpS011637; Sun, 27 Dec 2015 21:53:21 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRLrLa2011636; Sun, 27 Dec 2015 21:53:21 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512272153.tBRLrLa2011636@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 21:53:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292805 - stable/9/tools/regression/lib/msun X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:53:22 -0000 Author: ngie Date: Sun Dec 27 21:53:21 2015 New Revision: 292805 URL: https://svnweb.freebsd.org/changeset/base/292805 Log: MFstable/10 r292769,r292799: r292769: MFC r292493: Don't run test-fma on i386 It completely fails all assertions on i386 on both stable/9 and stable/10 PR: 205448 X-MFC to: stable/10 Sponsored by: EMC / Isilon Storage Division r292799: MFC r292492,r292495,r292647: r292492: - Use nitems instead of handrolling the macro - Use a separate variable for tracking the testcase count instead of hardcoding the offset for the testcases Sponsored by: EMC / Isilon Storage Division r292495: Initialize j so it doesn't print out a garbage index Use it consistently instead of i in the first loop Sponsored by: EMC / Isilon Storage Division r292647: Use j instead of a hardcoded index (9) and increment it after running the NaNs testcases Pointyhat to: ngie Sponsored by: EMC / Isilon Storage Division Modified: stable/9/tools/regression/lib/msun/test-fma.c Directory Properties: stable/9/ (props changed) stable/9/tools/ (props changed) stable/9/tools/regression/ (props changed) Modified: stable/9/tools/regression/lib/msun/test-fma.c ============================================================================== --- stable/9/tools/regression/lib/msun/test-fma.c Sun Dec 27 21:47:12 2015 (r292804) +++ stable/9/tools/regression/lib/msun/test-fma.c Sun Dec 27 21:53:21 2015 (r292805) @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #define ALL_STD_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | \ FE_OVERFLOW | FE_UNDERFLOW) @@ -423,6 +424,10 @@ main(int argc, char *argv[]) j = 1; +#if defined(__i386__) + printf("1..0 # SKIP all testcases fail on i386\n"); + exit(0); +#endif printf("1..19\n"); for (i = 0; i < nitems(rmodes); i++, j++) { From owner-svn-src-all@freebsd.org Sun Dec 27 21:55:28 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20EA5A527AF; Sun, 27 Dec 2015 21:55:28 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EDB5415D6; Sun, 27 Dec 2015 21:55:27 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRLtR8g011873; Sun, 27 Dec 2015 21:55:27 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRLtRP6011872; Sun, 27 Dec 2015 21:55:27 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512272155.tBRLtRP6011872@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 21:55:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292806 - stable/9/tools/regression/lib/msun X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:55:28 -0000 Author: ngie Date: Sun Dec 27 21:55:26 2015 New Revision: 292806 URL: https://svnweb.freebsd.org/changeset/base/292806 Log: MFstable/10 r251053: r251053 (by tijl): Fix cexp regression tests that have an infinite real part. The signs of the result depend on the cosine and sine of the imaginary part. Small values are used in the new tests such that cosine and sine are well defined. Reviewed by: das Modified: stable/9/tools/regression/lib/msun/test-cexp.c Directory Properties: stable/9/ (props changed) stable/9/tools/ (props changed) stable/9/tools/regression/ (props changed) Modified: stable/9/tools/regression/lib/msun/test-cexp.c ============================================================================== --- stable/9/tools/regression/lib/msun/test-cexp.c Sun Dec 27 21:53:21 2015 (r292805) +++ stable/9/tools/regression/lib/msun/test-cexp.c Sun Dec 27 21:55:26 2015 (r292806) @@ -110,7 +110,7 @@ cpackl(long double x, long double y) /* Various finite non-zero numbers to test. */ static const float finites[] = -{ -42.0e20, -1.0 -1.0e-10, -0.0, 0.0, 1.0e-10, 1.0, 42.0e20 }; +{ -42.0e20, -1.0, -1.0e-10, -0.0, 0.0, 1.0e-10, 1.0, 42.0e20 }; /* * Determine whether x and y are equal, with two special rules: @@ -228,21 +228,35 @@ test_inf(void) int i; /* cexp(x + inf i) = NaN + NaNi and raises invalid */ - /* cexp(inf + yi) = 0 + 0yi */ - /* cexp(-inf + yi) = inf + inf yi (except y=0) */ for (i = 0; i < N(finites); i++) { testall(cpackl(finites[i], INFINITY), cpackl(NAN, NAN), ALL_STD_EXCEPT, FE_INVALID, 1); - /* XXX shouldn't raise an inexact exception */ - testall(cpackl(-INFINITY, finites[i]), - cpackl(0.0, 0.0 * finites[i]), - ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1); - if (finites[i] == 0) - continue; - testall(cpackl(INFINITY, finites[i]), - cpackl(INFINITY, INFINITY * finites[i]), - ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1); } + /* cexp(-inf + yi) = 0 * (cos(y) + sin(y)i) */ + /* XXX shouldn't raise an inexact exception */ + testall(cpackl(-INFINITY, M_PI_4), cpackl(0.0, 0.0), + ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1); + testall(cpackl(-INFINITY, 3 * M_PI_4), cpackl(-0.0, 0.0), + ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1); + testall(cpackl(-INFINITY, 5 * M_PI_4), cpackl(-0.0, -0.0), + ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1); + testall(cpackl(-INFINITY, 7 * M_PI_4), cpackl(0.0, -0.0), + ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1); + testall(cpackl(-INFINITY, 0.0), cpackl(0.0, 0.0), + ALL_STD_EXCEPT, 0, 1); + testall(cpackl(-INFINITY, -0.0), cpackl(0.0, -0.0), + ALL_STD_EXCEPT, 0, 1); + /* cexp(inf + yi) = inf * (cos(y) + sin(y)i) (except y=0) */ + /* XXX shouldn't raise an inexact exception */ + testall(cpackl(INFINITY, M_PI_4), cpackl(INFINITY, INFINITY), + ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1); + testall(cpackl(INFINITY, 3 * M_PI_4), cpackl(-INFINITY, INFINITY), + ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1); + testall(cpackl(INFINITY, 5 * M_PI_4), cpackl(-INFINITY, -INFINITY), + ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1); + testall(cpackl(INFINITY, 7 * M_PI_4), cpackl(INFINITY, -INFINITY), + ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1); + /* cexp(inf + 0i) = inf + 0i */ testall(cpackl(INFINITY, 0.0), cpackl(INFINITY, 0.0), ALL_STD_EXCEPT, 0, 1); testall(cpackl(INFINITY, -0.0), cpackl(INFINITY, -0.0), From owner-svn-src-all@freebsd.org Sun Dec 27 21:58:15 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C582A5282F; Sun, 27 Dec 2015 21:58:15 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E3D86180A; Sun, 27 Dec 2015 21:58:14 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRLwDlW012100; Sun, 27 Dec 2015 21:58:13 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRLwDkS012099; Sun, 27 Dec 2015 21:58:13 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512272158.tBRLwDkS012099@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sun, 27 Dec 2015 21:58:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292807 - stable/9/tools/regression/lib/msun X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 21:58:15 -0000 Author: ngie Date: Sun Dec 27 21:58:13 2015 New Revision: 292807 URL: https://svnweb.freebsd.org/changeset/base/292807 Log: MFstable/10 r226602: r226602 (by das): Tests for cancellation in fma(). Also include more tests for 128-bit long doubles. Thanks for clusteradm (simon) for making the needed hardware available. Modified: stable/9/tools/regression/lib/msun/test-fma.c Directory Properties: stable/9/ (props changed) stable/9/tools/ (props changed) stable/9/tools/regression/ (props changed) Modified: stable/9/tools/regression/lib/msun/test-fma.c ============================================================================== --- stable/9/tools/regression/lib/msun/test-fma.c Sun Dec 27 21:55:26 2015 (r292806) +++ stable/9/tools/regression/lib/msun/test-fma.c Sun Dec 27 21:58:13 2015 (r292807) @@ -364,6 +364,65 @@ test_accuracy(void) 0x1.d87da3aafda40p70L, 0x1.d87da3aafda3fp70L, 0x1.d87da3aafda3fp70L, ALL_STD_EXCEPT, FE_INEXACT); #endif + + /* ilogb(x*y) - ilogb(z) = 0 */ + testrnd(fmaf, 0x1.31ad02p+100, 0x1.2fbf7ap-42, -0x1.c3e106p+58, + -0x1.64c27cp+56, -0x1.64c27ap+56, -0x1.64c27cp+56, + -0x1.64c27ap+56, ALL_STD_EXCEPT, FE_INEXACT); + testrnd(fma, 0x1.31ad012ede8aap+100, 0x1.2fbf79c839067p-42, + -0x1.c3e106929056ep+58, -0x1.64c282b970a5fp+56, + -0x1.64c282b970a5ep+56, -0x1.64c282b970a5fp+56, + -0x1.64c282b970a5ep+56, ALL_STD_EXCEPT, FE_INEXACT); +#if LDBL_MANT_DIG == 113 + testrnd(fmal, 0x1.31ad012ede8aa282fa1c19376d16p+100L, + 0x1.2fbf79c839066f0f5c68f6d2e814p-42L, + -0x1.c3e106929056ec19de72bfe64215p+58L, + -0x1.64c282b970a612598fc025ca8cddp+56L, + -0x1.64c282b970a612598fc025ca8cddp+56L, + -0x1.64c282b970a612598fc025ca8cdep+56L, + -0x1.64c282b970a612598fc025ca8cddp+56L, + ALL_STD_EXCEPT, FE_INEXACT); +#elif LDBL_MANT_DIG == 64 + testrnd(fmal, 0x1.31ad012ede8aa4eap+100L, 0x1.2fbf79c839066aeap-42L, + -0x1.c3e106929056e61p+58L, -0x1.64c282b970a60298p+56L, + -0x1.64c282b970a60298p+56L, -0x1.64c282b970a6029ap+56L, + -0x1.64c282b970a60298p+56L, ALL_STD_EXCEPT, FE_INEXACT); +#elif LDBL_MANT_DIG == 53 + testrnd(fmal, 0x1.31ad012ede8aap+100L, 0x1.2fbf79c839067p-42L, + -0x1.c3e106929056ep+58L, -0x1.64c282b970a5fp+56L, + -0x1.64c282b970a5ep+56L, -0x1.64c282b970a5fp+56L, + -0x1.64c282b970a5ep+56L, ALL_STD_EXCEPT, FE_INEXACT); +#endif + + /* x*y (rounded) ~= -z */ + /* XXX spurious inexact exceptions */ + testrnd(fmaf, 0x1.bbffeep-30, -0x1.1d164cp-74, 0x1.ee7296p-104, + -0x1.c46ea8p-128, -0x1.c46ea8p-128, -0x1.c46ea8p-128, + -0x1.c46ea8p-128, ALL_STD_EXCEPT & ~FE_INEXACT, 0); + testrnd(fma, 0x1.bbffeea6fc7d6p-30, 0x1.1d164c6cbf078p-74, + -0x1.ee72993aff948p-104, -0x1.71f72ac7d9d8p-159, + -0x1.71f72ac7d9d8p-159, -0x1.71f72ac7d9d8p-159, + -0x1.71f72ac7d9d8p-159, ALL_STD_EXCEPT & ~FE_INEXACT, 0); +#if LDBL_MANT_DIG == 113 + testrnd(fmal, 0x1.bbffeea6fc7d65927d147f437675p-30L, + 0x1.1d164c6cbf078b7a22607d1cd6a2p-74L, + -0x1.ee72993aff94973876031bec0944p-104L, + 0x1.64e086175b3a2adc36e607058814p-217L, + 0x1.64e086175b3a2adc36e607058814p-217L, + 0x1.64e086175b3a2adc36e607058814p-217L, + 0x1.64e086175b3a2adc36e607058814p-217L, + ALL_STD_EXCEPT & ~FE_INEXACT, 0); +#elif LDBL_MANT_DIG == 64 + testrnd(fmal, 0x1.bbffeea6fc7d6592p-30L, 0x1.1d164c6cbf078b7ap-74L, + -0x1.ee72993aff949736p-104L, 0x1.af190e7a1ee6ad94p-168L, + 0x1.af190e7a1ee6ad94p-168L, 0x1.af190e7a1ee6ad94p-168L, + 0x1.af190e7a1ee6ad94p-168L, ALL_STD_EXCEPT & ~FE_INEXACT, 0); +#elif LDBL_MANT_DIG == 53 + testrnd(fmal, 0x1.bbffeea6fc7d6p-30L, 0x1.1d164c6cbf078p-74L, + -0x1.ee72993aff948p-104L, -0x1.71f72ac7d9d8p-159L, + -0x1.71f72ac7d9d8p-159L, -0x1.71f72ac7d9d8p-159L, + -0x1.71f72ac7d9d8p-159L, ALL_STD_EXCEPT & ~FE_INEXACT, 0); +#endif } static void @@ -409,9 +468,10 @@ test_double_rounding(void) test(fmal, 0x1.4p+0L, 0x1.0000000000000004p+0L, 0x1p-128L, 0x1.4000000000000006p+0L, ALL_STD_EXCEPT, FE_INEXACT); #elif LDBL_MANT_DIG == 113 - /* XXX untested test */ - test(fmal, 0x1.4p+0L, 0x1.0000000000000000000000000002p+0L, 0x1p-224L, - 0x1.4000000000000000000000000003p+0L, ALL_STD_EXCEPT, FE_INEXACT); + test(fmal, 0x1.8000000000000000000000000001p+0L, + 0x1.8000000000000000000000000001p+0L, + -0x1.0000000000000000000000000001p-224L, + 0x1.2000000000000000000000000001p+1L, ALL_STD_EXCEPT, FE_INEXACT); #endif } From owner-svn-src-all@freebsd.org Sun Dec 27 22:09:01 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 02B70A52CB0; Sun, 27 Dec 2015 22:09:01 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: from mail-wm0-x234.google.com (mail-wm0-x234.google.com [IPv6:2a00:1450:400c:c09::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B0CC81D6C; Sun, 27 Dec 2015 22:09:00 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: by mail-wm0-x234.google.com with SMTP id p187so249305296wmp.0; Sun, 27 Dec 2015 14:09:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-type:content-disposition :in-reply-to:user-agent; bh=cu6RhYJF5L47ZKYKEUveoslUmEr1Sia4GFxzKHc/1XE=; b=PHD+AZmc+9xfcRFBNYGAD604f7xyftFmvnvB273nPdr8JSk2Gf0ArG18l1wRAO2mGc dmnUGqF4EJZOSBGxqqmffsgqzmP5paVvPOohs9JREt15tQGMmbdL5AZM9L03ryHN6/7A dsVUipBMly8xSeY66MjU6IlcZ8qd4p8TLULgGOYlhRH8fnd0M8TNgvSijfJPfY0M3Bfy GCwtFNUCP0CGX6sbKzz5L5AqleNdCwiKWu2yMD5MMcaiB0qpukCDBv017JRuCKYu1JBE ElVPPjhlgHVJJSVzOFUITISH0DzHtfkV+Nqi4dSxsLi0v6ktDEfkkBkWDDBjvgONsHNG xKZg== X-Received: by 10.194.205.134 with SMTP id lg6mr52960922wjc.156.1451254138158; Sun, 27 Dec 2015 14:08:58 -0800 (PST) Received: from brick.home (adee66.neoplus.adsl.tpnet.pl. [79.184.82.66]) by smtp.gmail.com with ESMTPSA id l184sm45998481wmf.6.2015.12.27.14.08.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 27 Dec 2015 14:08:57 -0800 (PST) Sender: =?UTF-8?Q?Edward_Tomasz_Napiera=C5=82a?= Date: Sun, 27 Dec 2015 23:08:53 +0100 From: Edward Tomasz =?utf-8?Q?Napiera=C5=82a?= To: Navdeep Parhar Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292740 - in head/sys: dev/cxgbe/cxgbei modules/cxgbe modules/cxgbe/cxgbei Message-ID: <20151227220853.GA1364@brick.home> Mail-Followup-To: Navdeep Parhar , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201512260605.tBQ65LXL002774@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201512260605.tBQ65LXL002774@repo.freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 22:09:01 -0000 On 1226T0605, Navdeep Parhar wrote: > Author: np > Date: Sat Dec 26 06:05:21 2015 > New Revision: 292740 > URL: https://svnweb.freebsd.org/changeset/base/292740 > > Log: > cxgbei: Hardware accelerated iSCSI target and initiator for TOE capable > cards supported by cxgbe(4). > > On the host side this driver interfaces with the storage stack via the > ICL (iSCSI Common Layer) in the kernel. On the wire the traffic is > standard iSCSI (SCSI over TCP as per RFC 3720/7143 etc.) that > interoperates with all other standards compliant implementations. The > driver is layered on top of the TOE driver (t4_tom) and promotes > connections being handled by t4_tom to iSCSI ULP (Upper Layer Protocol) > mode. Hardware assistance in this mode includes: > > - Full TCP processing. > - iSCSI PDU identification and recovery within the TCP stream. > - Header and/or data digest insertion (tx) and verification (rx). > - Zero copy (both tx and rx). > > Man page will follow in a separate commit in a couple of weeks. Thank you! :-) From owner-svn-src-all@freebsd.org Sun Dec 27 22:53:36 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E3A05A53C7C; Sun, 27 Dec 2015 22:53:36 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail107.syd.optusnet.com.au (mail107.syd.optusnet.com.au [211.29.132.53]) by mx1.freebsd.org (Postfix) with ESMTP id 7881F151A; Sun, 27 Dec 2015 22:53:36 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail107.syd.optusnet.com.au (Postfix) with ESMTPS id D3BCFD4A8F3; Mon, 28 Dec 2015 09:35:12 +1100 (AEDT) Date: Mon, 28 Dec 2015 09:35:11 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Ian Lepore cc: Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern In-Reply-To: <1451236237.1369.9.camel@freebsd.org> Message-ID: <20151228083418.B1014@besplex.bde.org> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=cK4dyQqN c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=6I5d2MoRAAAA:8 a=de58p1aFqIafv5_1YksA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 22:53:37 -0000 On Sun, 27 Dec 2015, Ian Lepore wrote: > On Sun, 2015-12-27 at 15:37 +0000, Dmitry Chagin wrote: >> Author: dchagin >> Date: Sun Dec 27 15:37:07 2015 >> New Revision: 292777 >> URL: https://svnweb.freebsd.org/changeset/base/292777 >> >> Log: >> Verify that tv_sec value specified in settimeofday() and >> clock_settime() >> (CLOCK_REALTIME case) system calls is non negative. >> This commit hides a kernel panic in atrtc_settime() as the >> clock_ts_to_ct() >> does not properly convert negative tv_sec. >> >> ps. in my opinion clock_ts_to_ct() should be rewritten to properly >> handle >> negative tv_sec values. >> >> Differential Revision: https://reviews.freebsd.org/D4714 >> Reviewed by: kib >> >> MFC after: 1 week > > IMO, this change is completely unacceptable. If there is a bug in > atrtc code, then by all means fix it, but preventing anyone from > setting valid time values on the system because one driver's code can't > handle it is just wrong. I agree. Even (time_t)-1 should be a valid time for input, although it is an error indicator for output. (This API makes correctly using functions like time(1) difficult or impossible (impossible for time(1) specifically. The implementation might reserve (time_t)-1 for representing an invalid time. But nothing requires it to. (POSIX almost requires the reverse. It requires a broken implementation that represents times as seconds since the Epoch. I think POSIX doesn't require times before the Epoch to work. But FreeBSD and the ado time package tries to make them work.) So if the representation of the current time is (time_t)-1, then time(1) can't do anything better than return this value. But this value is also the error value. There is no way to distinguish this value from the error value, since time(1) is not required to set errno.) I think the change also doesn't actually work, especially in the Western hemisphere, but it was written in the Eastern hemisphere. Suppose that the time is the Epoch. This is 0, so it is pefectly valid. Then if the clock is on local time, utc_offset() is added before calling clock_cs_to_ct() and the result is a negative time_t in the Western hemisphere. Similarly in the Eastern hemisphere when you test with with Western settings. The main bug in clock_ts_ct() is due to division being specified as broken in C: X void X clock_ts_to_ct(struct timespec *ts, struct clocktime *ct) X { X int i, year, days; X time_t rsec; /* remainder seconds */ X time_t secs; X X secs = ts->tv_sec; X days = secs / SECDAY; X rsec = secs % SECDAY; Division of negative numbers used to be implementation-defined in C, but C90 or C99 broke this by requiring the broken alternative of rounding towards 0 like most hardware does. The remainder operation is consistently broken. So when secs < 0, this always gives days < 0 and rsec either 0 or < 0. If this causes a panic, then it is from a sanity check detecting the invalid conversion later. A negative value in days breaks the loop logic but seems to give premature exit from the loops instead of many iterations. Another bug here is the type of rsec. This variable is a small integer (< SECDAY = 86400), not a time_t. Code like this is probably common in userland. w(1) uses it, but w(1) only deals with uptimes which should be positive. clock_ct_to_ts() is also buggy: X int X clock_ct_to_ts(struct clocktime *ct, struct timespec *ts) X { X int i, year, days; X ... X /* Sanity checks. */ X if (ct->mon < 1 || ct->mon > 12 || ct->day < 1 || X ct->day > days_in_month(year, ct->mon) || X ct->hour > 23 || ct->min > 59 || ct->sec > 59 || X (sizeof(time_t) == 4 && year > 2037)) { /* time_t overflow */ X if (ct_debug) X printf(" = EINVAL\n"); X return (EINVAL); X } The limit of 2037 is bogus with 64-bit time_t's or even with 32-bit unsigned time_t's. Years before 1970 are insane due to the C bug, and years before ~1906 are insanse due to representability problems, but there is no check for the lower limit of 'year'. There is also no check for the lower limit of ct->hour, ct->min or ct->sec. Bruce From owner-svn-src-all@freebsd.org Sun Dec 27 23:04:14 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 71529A53FBC; Sun, 27 Dec 2015 23:04:14 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2F2861A2A; Sun, 27 Dec 2015 23:04:14 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRN4DCc034509; Sun, 27 Dec 2015 23:04:13 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRN4DSm034507; Sun, 27 Dec 2015 23:04:13 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201512272304.tBRN4DSm034507@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sun, 27 Dec 2015 23:04:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292810 - in head/libexec/rtld-elf: . arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 23:04:14 -0000 Author: imp Date: Sun Dec 27 23:04:12 2015 New Revision: 292810 URL: https://svnweb.freebsd.org/changeset/base/292810 Log: Use a macro to create the names for the library path names. This will allow later substitution at run time instead of compile time of the environment variable name prefix. Differential Review: https://reviews.freebsd.org/D2718 Modified: head/libexec/rtld-elf/arm/reloc.c head/libexec/rtld-elf/rtld.c Modified: head/libexec/rtld-elf/arm/reloc.c ============================================================================== --- head/libexec/rtld-elf/arm/reloc.c Sun Dec 27 23:04:11 2015 (r292809) +++ head/libexec/rtld-elf/arm/reloc.c Sun Dec 27 23:04:12 2015 (r292810) @@ -15,6 +15,7 @@ __FBSDID("$FreeBSD$"); #include "debug.h" #include "rtld.h" +#include "paths.h" void init_pltgot(Obj_Entry *obj) Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Sun Dec 27 23:04:11 2015 (r292809) +++ head/libexec/rtld-elf/rtld.c Sun Dec 27 23:04:12 2015 (r292810) @@ -204,6 +204,8 @@ extern Elf_Dyn _DYNAMIC; #define RTLD_IS_DYNAMIC() (&_DYNAMIC != NULL) #endif +#define _LD(x) LD_ x + int dlclose(void *) __exported; char *dlerror(void) __exported; void *dlopen(const char *, int) __exported; @@ -417,7 +419,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_ trust = !issetugid(); - ld_bind_now = getenv(LD_ "BIND_NOW"); + ld_bind_now = getenv(_LD("BIND_NOW")); /* * If the process is tainted, then we un-set the dangerous environment * variables. The process will be marked as tainted until setuid(2) @@ -425,24 +427,24 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_ * future processes to honor the potentially un-safe variables. */ if (!trust) { - if (unsetenv(LD_ "PRELOAD") || unsetenv(LD_ "LIBMAP") || - unsetenv(LD_ "LIBRARY_PATH") || unsetenv(LD_ "LIBRARY_PATH_FDS") || - unsetenv(LD_ "LIBMAP_DISABLE") || - unsetenv(LD_ "DEBUG") || unsetenv(LD_ "ELF_HINTS_PATH") || - unsetenv(LD_ "LOADFLTR") || unsetenv(LD_ "LIBRARY_PATH_RPATH")) { + if (unsetenv(_LD("PRELOAD")) || unsetenv(_LD("LIBMAP")) || + unsetenv(_LD("LIBRARY_PATH")) || unsetenv(_LD("LIBRARY_PATH_FDS")) || + unsetenv(_LD("LIBMAP_DISABLE")) || + unsetenv(_LD("DEBUG")) || unsetenv(_LD("ELF_HINTS_PATH")) || + unsetenv(_LD("LOADFLTR")) || unsetenv(_LD("LIBRARY_PATH_RPATH"))) { _rtld_error("environment corrupt; aborting"); rtld_die(); } } - ld_debug = getenv(LD_ "DEBUG"); - libmap_disable = getenv(LD_ "LIBMAP_DISABLE") != NULL; - libmap_override = getenv(LD_ "LIBMAP"); - ld_library_path = getenv(LD_ "LIBRARY_PATH"); - ld_library_dirs = getenv(LD_ "LIBRARY_PATH_FDS"); - ld_preload = getenv(LD_ "PRELOAD"); - ld_elf_hints_path = getenv(LD_ "ELF_HINTS_PATH"); - ld_loadfltr = getenv(LD_ "LOADFLTR") != NULL; - library_path_rpath = getenv(LD_ "LIBRARY_PATH_RPATH"); + ld_debug = getenv(_LD("DEBUG")); + libmap_disable = getenv(_LD("LIBMAP_DISABLE")) != NULL; + libmap_override = getenv(_LD("LIBMAP")); + ld_library_path = getenv(_LD("LIBRARY_PATH")); + ld_library_dirs = getenv(_LD("LIBRARY_PATH_FDS")); + ld_preload = getenv(_LD("PRELOAD")); + ld_elf_hints_path = getenv(_LD("ELF_HINTS_PATH")); + ld_loadfltr = getenv(_LD("LOADFLTR")) != NULL; + library_path_rpath = getenv(_LD("LIBRARY_PATH_RPATH")); if (library_path_rpath != NULL) { if (library_path_rpath[0] == 'y' || library_path_rpath[0] == 'Y' || @@ -454,8 +456,8 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_ dangerous_ld_env = libmap_disable || (libmap_override != NULL) || (ld_library_path != NULL) || (ld_preload != NULL) || (ld_elf_hints_path != NULL) || ld_loadfltr; - ld_tracing = getenv(LD_ "TRACE_LOADED_OBJECTS"); - ld_utrace = getenv(LD_ "UTRACE"); + ld_tracing = getenv(_LD("TRACE_LOADED_OBJECTS")); + ld_utrace = getenv(_LD("UTRACE")); if ((ld_elf_hints_path == NULL) || strlen(ld_elf_hints_path) == 0) ld_elf_hints_path = ld_elf_hints_default; @@ -592,7 +594,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_ exit(0); } - if (getenv(LD_ "DUMP_REL_PRE") != NULL) { + if (getenv(_LD("DUMP_REL_PRE")) != NULL) { dump_relocations(obj_main); exit (0); } @@ -620,7 +622,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_ if (do_copy_relocations(obj_main) == -1) rtld_die(); - if (getenv(LD_ "DUMP_REL_POST") != NULL) { + if (getenv(_LD("DUMP_REL_POST")) != NULL) { dump_relocations(obj_main); exit (0); } @@ -4177,16 +4179,16 @@ trace_loaded_objects(Obj_Entry *obj) char *fmt1, *fmt2, *fmt, *main_local, *list_containers; int c; - if ((main_local = getenv(LD_ "TRACE_LOADED_OBJECTS_PROGNAME")) == NULL) + if ((main_local = getenv(_LD("TRACE_LOADED_OBJECTS_PROGNAME"))) == NULL) main_local = ""; - if ((fmt1 = getenv(LD_ "TRACE_LOADED_OBJECTS_FMT1")) == NULL) + if ((fmt1 = getenv(_LD("TRACE_LOADED_OBJECTS_FMT1"))) == NULL) fmt1 = "\t%o => %p (%x)\n"; - if ((fmt2 = getenv(LD_ "TRACE_LOADED_OBJECTS_FMT2")) == NULL) + if ((fmt2 = getenv(_LD("TRACE_LOADED_OBJECTS_FMT2"))) == NULL) fmt2 = "\t%o (%x)\n"; - list_containers = getenv(LD_ "TRACE_LOADED_OBJECTS_ALL"); + list_containers = getenv(_LD("TRACE_LOADED_OBJECTS_ALL")); for (; obj; obj = obj->next) { Needed_Entry *needed; From owner-svn-src-all@freebsd.org Sun Dec 27 23:04:12 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3CF94A53FAD; Sun, 27 Dec 2015 23:04:12 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0A39F1A28; Sun, 27 Dec 2015 23:04:11 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRN4BcY034422; Sun, 27 Dec 2015 23:04:11 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRN4BKC034421; Sun, 27 Dec 2015 23:04:11 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201512272304.tBRN4BKC034421@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sun, 27 Dec 2015 23:04:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292808 - head/tools/tools/nanobsd/embedded X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 23:04:12 -0000 Author: imp Date: Sun Dec 27 23:04:10 2015 New Revision: 292808 URL: https://svnweb.freebsd.org/changeset/base/292808 Log: There's currently some issues with armv7-class of CPUs code generation with our default toolchain. Turn it off here until that all gets sorted out. Modified: head/tools/tools/nanobsd/embedded/rpi2.cfg Modified: head/tools/tools/nanobsd/embedded/rpi2.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/rpi2.cfg Sun Dec 27 21:58:13 2015 (r292807) +++ head/tools/tools/nanobsd/embedded/rpi2.cfg Sun Dec 27 23:04:10 2015 (r292808) @@ -31,6 +31,6 @@ NANO_KERNEL=RPI2 NANO_DRIVE=mmcsd0 NANO_NAME=rpi2 NANO_BOOT_PKG=u-boot-rpi2 -NANO_CPUTYPE=cortex-a7 +# NANO_CPUTYPE=cortex-a7 . common # Pull in common definitions, keep last From owner-svn-src-all@freebsd.org Sun Dec 27 23:04:13 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3520BA53FB4; Sun, 27 Dec 2015 23:04:13 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E2D011A29; Sun, 27 Dec 2015 23:04:12 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRN4C5Q034465; Sun, 27 Dec 2015 23:04:12 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRN4C5D034464; Sun, 27 Dec 2015 23:04:12 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201512272304.tBRN4C5D034464@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sun, 27 Dec 2015 23:04:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292809 - head/lib/libc/stdio X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 23:04:13 -0000 Author: imp Date: Sun Dec 27 23:04:11 2015 New Revision: 292809 URL: https://svnweb.freebsd.org/changeset/base/292809 Log: The FILE structure has a mbstate_t in it. This structure needs to be aligned on a int64_t boundary. However, when we allocate the array of these structures, we use ALIGNBYTES which defaults to sizeof(int) on arm, i386 and others. The i386 stuff can handle unaligned accesses seemlessly. However, arm cannot. Take this into account when creating the array of FILEs, and add some comments about why. Differential Revision: https://reviews.freebsd.org/D4708 Modified: head/lib/libc/stdio/findfp.c Modified: head/lib/libc/stdio/findfp.c ============================================================================== --- head/lib/libc/stdio/findfp.c Sun Dec 27 23:04:10 2015 (r292808) +++ head/lib/libc/stdio/findfp.c Sun Dec 27 23:04:11 2015 (r292809) @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -96,11 +97,22 @@ moreglue(int n) struct glue *g; static FILE empty = { ._fl_mutex = PTHREAD_MUTEX_INITIALIZER }; FILE *p; + size_t align; - g = (struct glue *)malloc(sizeof(*g) + ALIGNBYTES + n * sizeof(FILE)); + /* + * FILE has a mbstate_t variable. This variable tries to be int64_t + * aligned through its definition. int64_t may be larger than void *, + * which is the size traditionally used for ALIGNBYTES. So, use our own + * rounding instead of the MI ALIGN macros. If for some reason + * ALIGNBYTES is larger than int64_t, respect that too. There appears to + * be no portable way to ask for FILE's alignment requirements other + * than just knowing here. + */ + align = MAX(ALIGNBYTES, sizeof(int64_t)); + g = (struct glue *)malloc(sizeof(*g) + align + n * sizeof(FILE)); if (g == NULL) return (NULL); - p = (FILE *)ALIGN(g + 1); + p = (FILE *)roundup((uintptr_t)(g + 1), align); g->next = NULL; g->niobs = n; g->iobs = p; From owner-svn-src-all@freebsd.org Sun Dec 27 23:23:24 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 14FD8A52713; Sun, 27 Dec 2015 23:23:24 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail107.syd.optusnet.com.au (mail107.syd.optusnet.com.au [211.29.132.53]) by mx1.freebsd.org (Postfix) with ESMTP id B798017F7; Sun, 27 Dec 2015 23:23:22 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail107.syd.optusnet.com.au (Postfix) with ESMTPS id DBB17D43A81; Mon, 28 Dec 2015 10:23:19 +1100 (AEDT) Date: Mon, 28 Dec 2015 10:23:19 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Ian Lepore cc: NGie Cooper , Slawa Olhovchenkov , Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern In-Reply-To: <1451247868.1369.16.camel@freebsd.org> Message-ID: <20151228093724.D1014@besplex.bde.org> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> <20151227184101.GG70867@zxy.spb.ru> <1451243810.1369.10.camel@freebsd.org> <20151227193046.GE4535@zxy.spb.ru> <8D7D617E-FF9E-4D74-87CB-1F3EE65D108A@gmail.com> <1451247868.1369.16.camel@freebsd.org> MIME-Version: 1.0 X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=cK4dyQqN c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=nlC_4_pT8q9DhB4Ho9EA:9 a=KawIFhhbAAAA:8 a=uZvujYp8AAAA:8 a=vpkWZ2P-BIJPKdODiGkA:9 a=U06k2VRVBVR3QubT:21 a=PKJ5vzlG4ZyLU95Q:21 a=45ClL6m2LaAA:10 a=oBuQxKqGozsA:10 Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 23:23:24 -0000 On Sun, 27 Dec 2015, Ian Lepore wrote: > On Sun, 2015-12-27 at 12:05 -0800, NGie Cooper wrote: >>> On Dec 27, 2015, at 11:30, Slawa Olhovchenkov >>> wrote: >> >> =85 >> >>>> I have no idea what you mean by that -- I didn't say anything at >>>> all >>>> about panic. >>> >>> As I understund commit log -- this is prevent kernel panic at some >>> call (with illegal arguments). This accpetable irrelevant to bugs >>> in >>> calling code. >> >> =09This also makes us POSIX compliant and more compatible with >> Linux: >> http://pubs.opengroup.org/onlinepubs/007908799/xsh/clock_settime.html >> (search for =93negative=94). >> Thanks kib! >> -NGie > > This thread just keeps becoming more and more surrealistic. First > someone tries to reply to the original commit (I guess?) by replying > with a complete non sequitur to my reply. Now you cite a document that > says nothing directly related to the commit at all. > > The only reference to "negative" in what you cited is part of > specifying how to truncate/round fractional values that fall between > two representable values given the resolution of the clock you're > setting. It also has an obfuscated verbose spelling of negative as "less than zero" in the description of [EINVAL]. This is the specification of a invalid timespec which is repeated ad nauseum. The upper limit is spelled even more verbosely as "greater than or equal to 1000 million". The correct spelling of this is ">=3D 1000000000" but that is hard to read in another way (too many 0's to count quickly). Spelling this value is remarkably difficult. There are about 10 different spellings that are no good since they depend on the locale or language (natural or programming). Mixing digits and words is ugly. 1 billion is shorter but is off by a factor of 1000 in some locales. I stared at this description many times. It doesn't allow considering negative times as invalid generally. setitimer(2) has to be specially broken to disallow them. This bug is missing for nanosleep(). FreeBSD still documents a non-POSIX limit of 100000000 seconds for setitimer(2), but its implementation has been broken to overflow instead of enforcing this limit. Note that this is 1 followed by 8 zeros and applies to the seconds value, while the limit for nanoseconds os 1 followed by 9 zeros. Different spellings of 1 followed by a large number of zeros makes thes value hard to grep for. 1 followed by 8 zeros is in about 50 man pages (counting links). It is documented as the limit on seconds in get/setitimer(2). mtree(8) misspells 1 followed by 9 zeros as 1 followed by 8 zeros. alarm(3) is implemented using itimers and documents the same limit. ularm(3) documents the bizarre limit of 1 followed by 14 zeros "in case this value fits in an the unsigned integer". This is alarm(3)'s documented but not actual limit of 10**8 seconds converted to microseconds. It is reachable on systems with >=3D 47 bit longs. This spelling is not used in any man page for the limit on the number of nanoseconds (as in POSIX). > Later in that document they specifically require EINVAL for negative > fractional second values. If they intended to to prohibit negative > whole-second values, that would certainly have been the place to > mention it, and they don't. This is the "obfuscated verbose spelling" part. This is not really a restriction on negative fractions. It is just that negative fractions are represented as a negative integer plus a proper fraction, where by definition a proper fraction is nonnegative and less than 1. Normalization gives this (except when it would overflow). The requirement is essentially that callers don't pass unnormalized values. Bruce From owner-svn-src-all@freebsd.org Sun Dec 27 23:25:22 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 761A3A5282E; Sun, 27 Dec 2015 23:25:22 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48EED1A87; Sun, 27 Dec 2015 23:25:22 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBRNPLPN041345; Sun, 27 Dec 2015 23:25:21 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBRNPLG3041344; Sun, 27 Dec 2015 23:25:21 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201512272325.tBRNPLG3041344@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Sun, 27 Dec 2015 23:25:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292811 - stable/10/sys/contrib/ipfilter/netinet X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 23:25:22 -0000 Author: cy Date: Sun Dec 27 23:25:21 2015 New Revision: 292811 URL: https://svnweb.freebsd.org/changeset/base/292811 Log: MFC r292518. Don't assume checksums will be calculated later when fastfoward is enabled (by default in r290383). PR: 72210 Modified: stable/10/sys/contrib/ipfilter/netinet/ip_nat.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/contrib/ipfilter/netinet/ip_nat.c ============================================================================== --- stable/10/sys/contrib/ipfilter/netinet/ip_nat.c Sun Dec 27 23:04:12 2015 (r292810) +++ stable/10/sys/contrib/ipfilter/netinet/ip_nat.c Sun Dec 27 23:25:21 2015 (r292811) @@ -5123,7 +5123,7 @@ ipf_nat_out(fin, nat, natadd, nflags) ipf_fix_outcksum(0, &fin->fin_ip->ip_sum, msumd, 0); } #if !defined(_KERNEL) || defined(MENTAT) || defined(__sgi) || \ - defined(linux) || defined(BRIDGE_IPF) + defined(linux) || defined(BRIDGE_IPF) || defined(__FreeBSD__) else { /* * Strictly speaking, this isn't necessary on BSD @@ -5235,7 +5235,7 @@ ipf_nat_out(fin, nat, natadd, nflags) uh->uh_ulen += fin->fin_plen; uh->uh_ulen = htons(uh->uh_ulen); #if !defined(_KERNEL) || defined(MENTAT) || defined(__sgi) || \ - defined(linux) || defined(BRIDGE_IPF) + defined(linux) || defined(BRIDGE_IPF) || defined(__FreeBSD) ipf_fix_outcksum(0, &ip->ip_sum, sumd, 0); #endif From owner-svn-src-all@freebsd.org Sun Dec 27 23:26:52 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 03318A5288D; Sun, 27 Dec 2015 23:26:52 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.13]) by mx1.freebsd.org (Postfix) with ESMTP id ADC121BF7; Sun, 27 Dec 2015 23:26:51 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from spqr.komquats.com ([96.50.22.10]) by shaw.ca with SMTP id DKi4awFJHkK49DKi5a8KbA; Sun, 27 Dec 2015 16:26:51 -0700 X-Authority-Analysis: v=2.1 cv=AMkI9oPf c=1 sm=1 tr=0 a=jvE2nwUzI0ECrNeyr98KWA==:117 a=jvE2nwUzI0ECrNeyr98KWA==:17 a=BWvPGDcYAAAA:8 a=VxmjJ2MpAAAA:8 a=kj9zAlcOel0A:10 a=wUQvQvOEmiQA:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=hBRiNyo2w7lXQ92ch0sA:9 a=Q-0BtGJeCf-BjTat:21 a=HlmSUPbtQm4zg2Cc:21 a=-x0AuQ5L8kJXOgZ1:21 a=CjuIK1q_8ugA:10 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTP id 1A2CB13752; Wed, 23 Dec 2015 16:28:14 -0800 (PST) Received: from slippy (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id tBRNQiQJ008124; Sun, 27 Dec 2015 15:26:44 -0800 (PST) (envelope-from Cy.Schubert@komquats.com) Message-Id: <201512272326.tBRNQiQJ008124@slippy.cwsent.com> X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.6 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.komquats.com/ To: "George Neville-Neil" cc: "Cy Schubert" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r290383 - in head/sys: net netinet In-Reply-To: Message from "George Neville-Neil" of "Thu, 24 Dec 2015 16:18:52 -0500." <98F16C2B-3904-438D-912B-85C17ACFBDEA@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 27 Dec 2015 15:26:44 -0800 X-CMAE-Envelope: MS4wfMOUhXRNio73hSBoEAxh8H73GDgKkuQlSfWiv3oa+KL9mXRdOE3d5YBkeyRpMNyrlIutFvoiZPrYUzdirsWavZc38P8q8d5OfVZSg9zYqRiH+vwmmkK6 cRtI1orprSSwk66AdLVbMDF2EmpGq91oxjPfp4ocTNsNhWxiDPsHAwBWYW7an+xW0337IfPXoGf+yINy26tWb+04FtqpTRqi84mvsWD5cI8DYJz8izjeCL+p /EGrq4p0w0RF2BS4bvJo8wagkEb35IMANR7/ZmpX1KybbywT5KqpOuzaTF6vr6iU X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2015 23:26:52 -0000 In message <98F16C2B-3904-438D-912B-85C17ACFBDEA@freebsd.org>, "George Neville- Neil" writes: > > > > On 20 Dec 2015, at 13:02, Cy Schubert wrote: > > > Cy Schubert writes: > >> In message <201511050726.tA57QXlu074213@repo.freebsd.org>, "George V. > >> Neville-N > >> eil" writes: > >>> Author: gnn > >>> Date: Thu Nov 5 07:26:32 2015 > >>> New Revision: 290383 > >>> URL: https://svnweb.freebsd.org/changeset/base/290383 > >>> > >>> Log: > >>> Replace the fastforward path with tryforward which does not require > >>> a > >>> sysctl and will always be on. The former split between default and > >>> fast forwarding is removed by this commit while preserving the > >>> ability > >>> to use all network stack features. > >>> > >>> Differential Revision: https://reviews.freebsd.org/D4042 > >>> Reviewed by: ae, melifaro, olivier, rwatson > >>> MFC after: 1 month > >>> Sponsored by: Rubicon Communications (Netgate) > >>> > >>> Modified: > >>> head/sys/net/if_arcsubr.c > >>> head/sys/net/if_ethersubr.c > >>> head/sys/net/if_fddisubr.c > >>> head/sys/net/if_fwsubr.c > >>> head/sys/net/if_iso88025subr.c > >>> head/sys/netinet/in_var.h > >>> head/sys/netinet/ip_fastfwd.c > >>> head/sys/netinet/ip_input.c > >>> > >>> Modified: head/sys/net/if_arcsubr.c > >>> ========================================================================= > == > >> == > >>> = > >>> --- head/sys/net/if_arcsubr.c Thu Nov 5 04:16:03 2015 (r29038 > >> 2) > >>> +++ head/sys/net/if_arcsubr.c Thu Nov 5 07:26:32 2015 (r29038 > >> 3) > >>> @@ -550,15 +550,11 @@ arc_input(struct ifnet *ifp, struct mbuf > >>> #ifdef INET > >>> case ARCTYPE_IP: > >>> m_adj(m, ARC_HDRNEWLEN); > >>> - if ((m = ip_fastforward(m)) == NULL) > >>> - return; > >>> isr = NETISR_IP; > >>> break; > >>> > >>> case ARCTYPE_IP_OLD: > >>> m_adj(m, ARC_HDRLEN); > >>> - if ((m = ip_fastforward(m)) == NULL) > >>> - return; > >>> isr = NETISR_IP; > >>> break; > >>> > >>> > >>> Modified: head/sys/net/if_ethersubr.c > >>> ========================================================================= > == > >> == > >>> = > >>> --- head/sys/net/if_ethersubr.c Thu Nov 5 04:16:03 2015 (r29038 > >>> 2) > >>> +++ head/sys/net/if_ethersubr.c Thu Nov 5 07:26:32 2015 (r29038 > >>> 3) > >>> @@ -722,8 +722,6 @@ ether_demux(struct ifnet *ifp, struct mb > >>> switch (ether_type) { > >>> #ifdef INET > >>> case ETHERTYPE_IP: > >>> - if ((m = ip_fastforward(m)) == NULL) > >>> - return; > >>> isr = NETISR_IP; > >>> break; > >>> > >>> > >>> Modified: head/sys/net/if_fddisubr.c > >>> ========================================================================= > == > >> == > >>> = > >>> --- head/sys/net/if_fddisubr.c Thu Nov 5 04:16:03 2015 (r29038 > >>> 2) > >>> +++ head/sys/net/if_fddisubr.c Thu Nov 5 07:26:32 2015 (r29038 > >>> 3) > >>> @@ -429,8 +429,6 @@ fddi_input(ifp, m) > >>> switch (type) { > >>> #ifdef INET > >>> case ETHERTYPE_IP: > >>> - if ((m = ip_fastforward(m)) == NULL) > >>> - return; > >>> isr = NETISR_IP; > >>> break; > >>> > >>> > >>> Modified: head/sys/net/if_fwsubr.c > >>> ========================================================================= > == > >> == > >>> = > >>> --- head/sys/net/if_fwsubr.c Thu Nov 5 04:16:03 2015 (r29038 > >> 2) > >>> +++ head/sys/net/if_fwsubr.c Thu Nov 5 07:26:32 2015 (r29038 > >> 3) > >>> @@ -605,8 +605,6 @@ firewire_input(struct ifnet *ifp, struct > >>> switch (type) { > >>> #ifdef INET > >>> case ETHERTYPE_IP: > >>> - if ((m = ip_fastforward(m)) == NULL) > >>> - return; > >>> isr = NETISR_IP; > >>> break; > >>> > >>> > >>> Modified: head/sys/net/if_iso88025subr.c > >>> ========================================================================= > == > >> == > >>> = > >>> --- head/sys/net/if_iso88025subr.c Thu Nov 5 04:16:03 2015 > (r29038 > >>> 2) > >>> +++ head/sys/net/if_iso88025subr.c Thu Nov 5 07:26:32 2015 > (r29038 > >>> 3) > >>> @@ -519,8 +519,6 @@ iso88025_input(ifp, m) > >>> #ifdef INET > >>> case ETHERTYPE_IP: > >>> th->iso88025_shost[0] &= ~(TR_RII); > >>> - if ((m = ip_fastforward(m)) == NULL) > >>> - return; > >>> isr = NETISR_IP; > >>> break; > >>> > >>> > >>> Modified: head/sys/netinet/in_var.h > >>> ========================================================================= > == > >> == > >>> = > >>> --- head/sys/netinet/in_var.h Thu Nov 5 04:16:03 2015 (r29038 > >> 2) > >>> +++ head/sys/netinet/in_var.h Thu Nov 5 07:26:32 2015 (r29038 > >> 3) > >>> @@ -380,7 +380,7 @@ int in_scrubprefix(struct in_ifaddr *, u > >>> void ip_input(struct mbuf *); > >>> void ip_direct_input(struct mbuf *); > >>> void in_ifadown(struct ifaddr *ifa, int); > >>> -struct mbuf *ip_fastforward(struct mbuf *); > >>> +struct mbuf *ip_tryforward(struct mbuf *); > >>> void *in_domifattach(struct ifnet *); > >>> void in_domifdetach(struct ifnet *, void *); > >>> > >>> > >>> Modified: head/sys/netinet/ip_fastfwd.c > >>> ========================================================================= > == > >> == > >>> = > >>> --- head/sys/netinet/ip_fastfwd.c Thu Nov 5 04:16:03 2015 (r29038 > >>> 2) > >>> +++ head/sys/netinet/ip_fastfwd.c Thu Nov 5 07:26:32 2015 (r29038 > >>> 3) > >>> @@ -108,12 +108,6 @@ __FBSDID("$FreeBSD$"); > >>> > >>> #include > >>> > >>> -static VNET_DEFINE(int, ipfastforward_active); > >>> -#define V_ipfastforward_active VNET(ipfastforward_active) > >>> - > >>> -SYSCTL_INT(_net_inet_ip, OID_AUTO, fastforwarding, CTLFLAG_VNET | > >>> CTLFLAG_ > >> RW > >>> , > >>> - &VNET_NAME(ipfastforward_active), 0, "Enable fast IP > >>> forwarding"); > >>> - > >>> static struct sockaddr_in * > >>> ip_findroute(struct route *ro, struct in_addr dest, struct mbuf *m) > >>> { > >>> @@ -158,7 +152,7 @@ ip_findroute(struct route *ro, struct in > >>> * to ip_input for full processing. > >>> */ > >>> struct mbuf * > >>> -ip_fastforward(struct mbuf *m) > >>> +ip_tryforward(struct mbuf *m) > >>> { > >>> struct ip *ip; > >>> struct mbuf *m0 = NULL; > >>> @@ -166,119 +160,20 @@ ip_fastforward(struct mbuf *m) > >>> struct sockaddr_in *dst = NULL; > >>> struct ifnet *ifp; > >>> struct in_addr odest, dest; > >>> - uint16_t sum, ip_len, ip_off; > >>> + uint16_t ip_len, ip_off; > >>> int error = 0; > >>> - int hlen, mtu; > >>> + int mtu; > >>> struct m_tag *fwd_tag = NULL; > >>> > >>> /* > >>> * Are we active and forwarding packets? > >>> */ > >>> - if (!V_ipfastforward_active || !V_ipforwarding) > >>> - return m; > >>> > >>> M_ASSERTVALID(m); > >>> M_ASSERTPKTHDR(m); > >>> > >>> bzero(&ro, sizeof(ro)); > >>> > >>> - /* > >>> - * Step 1: check for packet drop conditions (and sanity checks) > >>> - */ > >>> - > >>> - /* > >>> - * Is entire packet big enough? > >>> - */ > >>> - if (m->m_pkthdr.len < sizeof(struct ip)) { > >>> - IPSTAT_INC(ips_tooshort); > >>> - goto drop; > >>> - } > >>> - > >>> - /* > >>> - * Is first mbuf large enough for ip header and is header present? > >>> - */ > >>> - if (m->m_len < sizeof (struct ip) && > >>> - (m = m_pullup(m, sizeof (struct ip))) == NULL) { > >>> - IPSTAT_INC(ips_toosmall); > >>> - return NULL; /* mbuf already free'd */ > >>> - } > >>> - > >>> - ip = mtod(m, struct ip *); > >>> - > >>> - /* > >>> - * Is it IPv4? > >>> - */ > >>> - if (ip->ip_v != IPVERSION) { > >>> - IPSTAT_INC(ips_badvers); > >>> - goto drop; > >>> - } > >>> - > >>> - /* > >>> - * Is IP header length correct and is it in first mbuf? > >>> - */ > >>> - hlen = ip->ip_hl << 2; > >>> - if (hlen < sizeof(struct ip)) { /* minimum header length */ > >>> - IPSTAT_INC(ips_badhlen); > >>> - goto drop; > >>> - } > >>> - if (hlen > m->m_len) { > >>> - if ((m = m_pullup(m, hlen)) == NULL) { > >>> - IPSTAT_INC(ips_badhlen); > >>> - return NULL; /* mbuf already free'd */ > >>> - } > >>> - ip = mtod(m, struct ip *); > >>> - } > >>> - > >>> - /* > >>> - * Checksum correct? > >>> - */ > >>> - if (m->m_pkthdr.csum_flags & CSUM_IP_CHECKED) > >>> - sum = !(m->m_pkthdr.csum_flags & CSUM_IP_VALID); > >>> - else { > >>> - if (hlen == sizeof(struct ip)) > >>> - sum = in_cksum_hdr(ip); > >>> - else > >>> - sum = in_cksum(m, hlen); > >>> - } > >>> - if (sum) { > >>> - IPSTAT_INC(ips_badsum); > >>> - goto drop; > >>> - } > >>> - > >>> - /* > >>> - * Remember that we have checked the IP header and found it valid. > >>> - */ > >>> - m->m_pkthdr.csum_flags |= (CSUM_IP_CHECKED | CSUM_IP_VALID); > >>> - > >>> - ip_len = ntohs(ip->ip_len); > >>> - > >>> - /* > >>> - * Is IP length longer than packet we have got? > >>> - */ > >>> - if (m->m_pkthdr.len < ip_len) { > >>> - IPSTAT_INC(ips_tooshort); > >>> - goto drop; > >>> - } > >>> - > >>> - /* > >>> - * Is packet longer than IP header tells us? If yes, truncate > >>> packet. > >>> - */ > >>> - if (m->m_pkthdr.len > ip_len) { > >>> - if (m->m_len == m->m_pkthdr.len) { > >>> - m->m_len = ip_len; > >>> - m->m_pkthdr.len = ip_len; > >>> - } else > >>> - m_adj(m, ip_len - m->m_pkthdr.len); > >>> - } > >>> - > >>> - /* > >>> - * Is packet from or to 127/8? > >>> - */ > >>> - if ((ntohl(ip->ip_dst.s_addr) >> IN_CLASSA_NSHIFT) == > >>> IN_LOOPBACKNET || > >>> - (ntohl(ip->ip_src.s_addr) >> IN_CLASSA_NSHIFT) == > >>> IN_LOOPBACKNET) { > >>> - IPSTAT_INC(ips_badaddr); > >>> - goto drop; > >>> - } > >>> > >>> #ifdef ALTQ > >>> /* > >>> @@ -289,12 +184,10 @@ ip_fastforward(struct mbuf *m) > >>> #endif > >>> > >>> /* > >>> - * Step 2: fallback conditions to normal ip_input path processing > >>> - */ > >>> - > >>> - /* > >>> * Only IP packets without options > >>> */ > >>> + ip = mtod(m, struct ip *); > >>> + > >>> if (ip->ip_hl != (sizeof(struct ip) >> 2)) { > >>> if (V_ip_doopts == 1) > >>> return m; > >>> > >>> Modified: head/sys/netinet/ip_input.c > >>> ========================================================================= > == > >> == > >>> = > >>> --- head/sys/netinet/ip_input.c Thu Nov 5 04:16:03 2015 (r29038 > >>> 2) > >>> +++ head/sys/netinet/ip_input.c Thu Nov 5 07:26:32 2015 (r29038 > >>> 3) > >>> @@ -79,6 +79,8 @@ __FBSDID("$FreeBSD$"); > >>> #include > >>> #ifdef IPSEC > >>> #include > >>> +#include > >>> +#include > >>> #endif /* IPSEC */ > >>> #include > >>> > >>> @@ -500,12 +502,22 @@ tooshort: > >>> m_adj(m, ip_len - m->m_pkthdr.len); > >>> } > >>> > >>> + /* Try to forward the packet, but if we fail continue */ > >>> #ifdef IPSEC > >>> + /* For now we do not handle IPSEC in tryforward. */ > >>> + if (!key_havesp(IPSEC_DIR_INBOUND) && > >>> !key_havesp(IPSEC_DIR_OUTBOUND) & > >>> & > >>> + (V_ipforwarding == 1)) > >>> + if (ip_tryforward(m) == NULL) > >>> + return; > >>> /* > >>> * Bypass packet filtering for packets previously handled by IPsec. > >>> */ > >>> if (ip_ipsec_filtertunnel(m)) > >>> goto passin; > >>> +#else > >>> + if (V_ipforwarding == 1) > >>> + if (ip_tryforward(m) == NULL) > >>> + return; > >>> #endif /* IPSEC */ > >>> > >>> /* > >>> > >>> > >> > >> Hi George, > >> > >> Sorry for the lateness of this reply, I finally got some time off for > >> Christmas and have time to myself to boot. > >> > >> This breaks ipfilter's ipnat. I want to let you know before anyone > >> MFCs > >> this. > > > > A fix to ipfilter has been committed to head and will be MFCed in a > > week. > > > > Let me know when that's done. It's been MFCd. Thanks for waiting. -- Cheers, Cy Schubert or FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-all@freebsd.org Mon Dec 28 00:05:32 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AAC85A535CA; Mon, 28 Dec 2015 00:05:32 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 837781A76; Mon, 28 Dec 2015 00:05:32 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS05V1S054422; Mon, 28 Dec 2015 00:05:31 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS05Vrg054418; Mon, 28 Dec 2015 00:05:31 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512280005.tBS05Vrg054418@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Mon, 28 Dec 2015 00:05:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292812 - stable/10/share/mk X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 00:05:32 -0000 Author: ngie Date: Mon Dec 28 00:05:31 2015 New Revision: 292812 URL: https://svnweb.freebsd.org/changeset/base/292812 Log: MFC r292507,r292508: r292507: - Use LOCALBASE instead of KYUA_PREFIX for the --prefix to kyua(1) - Use LOCALBASE instead of hardcoding /usr/local for perl Differential Revision: https://reviews.freebsd.org/D4406 (part of a larger diff) Reviewed by: emaste, Evan Cramer Sponsored by: EMC / Isilon Storage Division r292508: Document LOCALBASE in the bsd.test.mk section Differential Revision: https://reviews.freebsd.org/D4406 (part of a larger diff) Reviewed by: emaste, Evan Cramer Sponsored by: EMC / Isilon Storage Division Modified: stable/10/share/mk/bsd.README stable/10/share/mk/bsd.test.mk stable/10/share/mk/suite.test.mk stable/10/share/mk/tap.test.mk Directory Properties: stable/10/ (props changed) Modified: stable/10/share/mk/bsd.README ============================================================================== --- stable/10/share/mk/bsd.README Sun Dec 27 23:25:21 2015 (r292811) +++ stable/10/share/mk/bsd.README Mon Dec 28 00:05:31 2015 (r292812) @@ -442,6 +442,10 @@ KYUAFILE If 'auto' (the default), genera subdirectories providing helper programs or data files only). +LOCALBASE The --prefix for the kyua package. + + The value of LOCALBASE defaults to /usr/local . + ATF_TESTS_C The names of the ATF C test programs to build. ATF_TESTS_CXX The names of the ATF C++ test programs to build. Modified: stable/10/share/mk/bsd.test.mk ============================================================================== --- stable/10/share/mk/bsd.test.mk Sun Dec 27 23:25:21 2015 (r292811) +++ stable/10/share/mk/bsd.test.mk Mon Dec 28 00:05:31 2015 (r292812) @@ -10,6 +10,9 @@ ____: +# Third-party software (kyua, etc) prefix. +LOCALBASE?= /usr/local + # Tests install directory TESTSDIR?= ${TESTSBASE}/${RELDIR:H} Modified: stable/10/share/mk/suite.test.mk ============================================================================== --- stable/10/share/mk/suite.test.mk Sun Dec 27 23:25:21 2015 (r292811) +++ stable/10/share/mk/suite.test.mk Mon Dec 28 00:05:31 2015 (r292812) @@ -38,13 +38,6 @@ KYUAFILE?= auto # Makefile to rely on the KYUAFILE=auto behavior defined here. #TEST_METADATA.+= key="value" -# Path to the prefix of the installed Kyua CLI, if any. -# -# If kyua is installed from ports, we automatically define a realtest target -# below to run the tests using this tool. The tools are searched for in the -# hierarchy specified by this variable. -KYUA_PREFIX?= /usr/local - .if ${KYUAFILE:tl} != "no" FILES+= Kyuafile FILESDIR_Kyuafile= ${TESTSDIR} @@ -79,7 +72,7 @@ Kyuafile: Makefile @mv ${.TARGET}.tmp ${.TARGET} .endif -KYUA?= ${KYUA_PREFIX}/bin/kyua +KYUA= ${LOCALBASE}/bin/kyua .if exists(${KYUA}) # Definition of the "make test" target and supporting variables. # Modified: stable/10/share/mk/tap.test.mk ============================================================================== --- stable/10/share/mk/tap.test.mk Sun Dec 27 23:25:21 2015 (r292811) +++ stable/10/share/mk/tap.test.mk Mon Dec 28 00:05:31 2015 (r292812) @@ -26,7 +26,7 @@ TAP_TESTS_PERL?= TAP_TESTS_SH?= # Perl interpreter to use for test programs written in this language. -TAP_PERL_INTERPRETER?= /usr/local/bin/perl +TAP_PERL_INTERPRETER?= ${LOCALBASE}/bin/perl .if !empty(TAP_TESTS_C) PROGS+= ${TAP_TESTS_C} From owner-svn-src-all@freebsd.org Mon Dec 28 00:42:16 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79C45A53F56; Mon, 28 Dec 2015 00:42:16 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 49A961992; Mon, 28 Dec 2015 00:42:16 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS0gFoG067981; Mon, 28 Dec 2015 00:42:15 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS0gFbA067980; Mon, 28 Dec 2015 00:42:15 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201512280042.tBS0gFbA067980@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Mon, 28 Dec 2015 00:42:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292813 - head/sys/contrib/ipfilter/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 00:42:16 -0000 Author: cy Date: Mon Dec 28 00:42:15 2015 New Revision: 292813 URL: https://svnweb.freebsd.org/changeset/base/292813 Log: Correct __FreeBSD__ check. MFC after: 3 days Modified: head/sys/contrib/ipfilter/netinet/ip_nat.c Modified: head/sys/contrib/ipfilter/netinet/ip_nat.c ============================================================================== --- head/sys/contrib/ipfilter/netinet/ip_nat.c Mon Dec 28 00:05:31 2015 (r292812) +++ head/sys/contrib/ipfilter/netinet/ip_nat.c Mon Dec 28 00:42:15 2015 (r292813) @@ -5235,7 +5235,7 @@ ipf_nat_out(fin, nat, natadd, nflags) uh->uh_ulen += fin->fin_plen; uh->uh_ulen = htons(uh->uh_ulen); #if !defined(_KERNEL) || defined(MENTAT) || defined(__sgi) || \ - defined(linux) || defined(BRIDGE_IPF) || defined(__FreeBSD) + defined(linux) || defined(BRIDGE_IPF) || defined(__FreeBSD__) ipf_fix_outcksum(0, &ip->ip_sum, sumd, 0); #endif From owner-svn-src-all@freebsd.org Mon Dec 28 00:53:39 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 457F9A512DA; Mon, 28 Dec 2015 00:53:39 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EE84C10C0; Mon, 28 Dec 2015 00:53:38 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS0rckG071805; Mon, 28 Dec 2015 00:53:38 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS0rbxg071804; Mon, 28 Dec 2015 00:53:37 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512280053.tBS0rbxg071804@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Mon, 28 Dec 2015 00:53:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292814 - head/tools/regression/sockets/unix_passfd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 00:53:39 -0000 Author: ngie Date: Mon Dec 28 00:53:37 2015 New Revision: 292814 URL: https://svnweb.freebsd.org/changeset/base/292814 Log: - Explicitly initialize ch to 0 - Delete some spurious whitespace - Use calloc instead of malloc in the last test to ensure that sendspace is properly zero'ed out Differential Revision: https://reviews.freebsd.org/D689 (part of a larger diff) MFC after: 1 week Reviewed by: asomers, ngie Submitted by: markj Sponsored by: EMC / Isilon Storage Division Modified: head/tools/regression/sockets/unix_passfd/unix_passfd.c Modified: head/tools/regression/sockets/unix_passfd/unix_passfd.c ============================================================================== --- head/tools/regression/sockets/unix_passfd/unix_passfd.c Mon Dec 28 00:42:15 2015 (r292813) +++ head/tools/regression/sockets/unix_passfd/unix_passfd.c Mon Dec 28 00:53:37 2015 (r292814) @@ -1,5 +1,6 @@ /*- * Copyright (c) 2005 Robert N. M. Watson + * Copyright (c) 2015 Mark Johnston * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -146,7 +147,7 @@ sendfd_payload(const char *test, int soc static void sendfd(const char *test, int sockfd, int sendfd) { - char ch; + char ch = 0; return (sendfd_payload(test, sockfd, sendfd, &ch, sizeof(ch))); } @@ -199,7 +200,7 @@ recvfd_payload(const char *test, int soc static void recvfd(const char *test, int sockfd, int *recvfd) { - char ch; + char ch = 0; return (recvfd_payload(test, sockfd, recvfd, &ch, sizeof(ch))); } @@ -369,8 +370,8 @@ main(void) err(-1, "%s: sysctlbyname(net.local.stream.sendspace)", test); - if ((buf = malloc(sendspace)) == NULL) - err(-1, "%s: malloc", test); + if ((buf = calloc(1, sendspace)) == NULL) + err(-1, "%s: calloc", test); domainsocketpair(test, fd); if (setsockopt(fd[1], 0, LOCAL_CREDS, &on, sizeof(on)) < 0) @@ -384,6 +385,6 @@ main(void) } printf("%s passed\n", test); - + return (0); } From owner-svn-src-all@freebsd.org Mon Dec 28 01:51:21 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D10F1A523ED; Mon, 28 Dec 2015 01:51:21 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8C8DA1375; Mon, 28 Dec 2015 01:51:21 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS1pKqc090642; Mon, 28 Dec 2015 01:51:20 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS1pKol090640; Mon, 28 Dec 2015 01:51:20 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512280151.tBS1pKol090640@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Mon, 28 Dec 2015 01:51:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292815 - head/contrib/bsnmp/snmpd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 01:51:22 -0000 Author: ngie Date: Mon Dec 28 01:51:20 2015 New Revision: 292815 URL: https://svnweb.freebsd.org/changeset/base/292815 Log: Staticize several variables that are used exclusively in bsnmpd/main.c and bsnmpd/trap.c This fixes several -Wmissing-variable-declaration warnings noted by clang Differential Revision: https://reviews.freebsd.org/D4718 MFC after: 1 week Reported by: Jenkins Reviewed by: araujo Sponsored by: EMC / Isilon Storage Division Modified: head/contrib/bsnmp/snmpd/main.c head/contrib/bsnmp/snmpd/trap.c Modified: head/contrib/bsnmp/snmpd/main.c ============================================================================== --- head/contrib/bsnmp/snmpd/main.c Mon Dec 28 00:53:37 2015 (r292814) +++ head/contrib/bsnmp/snmpd/main.c Mon Dec 28 01:51:20 2015 (r292815) @@ -119,26 +119,30 @@ static struct lmodules modules_start = T struct community_list community_list = TAILQ_HEAD_INITIALIZER(community_list); /* list of all known USM users */ -struct usm_userlist usm_userlist = SLIST_HEAD_INITIALIZER(usm_userlist); +static struct usm_userlist usm_userlist = SLIST_HEAD_INITIALIZER(usm_userlist); /* A list of all VACM users configured, including v1, v2c and v3 */ -struct vacm_userlist vacm_userlist = SLIST_HEAD_INITIALIZER(vacm_userlist); +static struct vacm_userlist vacm_userlist = + SLIST_HEAD_INITIALIZER(vacm_userlist); /* A list of all VACM groups */ -struct vacm_grouplist vacm_grouplist = SLIST_HEAD_INITIALIZER(vacm_grouplist); +static struct vacm_grouplist vacm_grouplist = + SLIST_HEAD_INITIALIZER(vacm_grouplist); static struct vacm_group vacm_default_group = { .groupname = "", }; /* The list of configured access entries */ -struct vacm_accesslist vacm_accesslist = TAILQ_HEAD_INITIALIZER(vacm_accesslist); +static struct vacm_accesslist vacm_accesslist = + TAILQ_HEAD_INITIALIZER(vacm_accesslist); /* The list of configured views */ -struct vacm_viewlist vacm_viewlist = SLIST_HEAD_INITIALIZER(vacm_viewlist); +static struct vacm_viewlist vacm_viewlist = + SLIST_HEAD_INITIALIZER(vacm_viewlist); /* The list of configured contexts */ -struct vacm_contextlist vacm_contextlist = +static struct vacm_contextlist vacm_contextlist = SLIST_HEAD_INITIALIZER(vacm_contextlist); /* list of all installed object resources */ Modified: head/contrib/bsnmp/snmpd/trap.c ============================================================================== --- head/contrib/bsnmp/snmpd/trap.c Mon Dec 28 00:53:37 2015 (r292814) +++ head/contrib/bsnmp/snmpd/trap.c Mon Dec 28 01:51:20 2015 (r292815) @@ -60,15 +60,15 @@ struct trapsink_list trapsink_list = TAILQ_HEAD_INITIALIZER(trapsink_list); /* List of target addresses */ -struct target_addresslist target_addresslist = +static struct target_addresslist target_addresslist = SLIST_HEAD_INITIALIZER(target_addresslist); /* List of target parameters */ -struct target_paramlist target_paramlist = +static struct target_paramlist target_paramlist = SLIST_HEAD_INITIALIZER(target_paramlist); /* List of notification targets */ -struct target_notifylist target_notifylist = +static struct target_notifylist target_notifylist = SLIST_HEAD_INITIALIZER(target_notifylist); static const struct asn_oid oid_begemotTrapSinkTable = From owner-svn-src-all@freebsd.org Mon Dec 28 02:01:43 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EBDABA527CF; Mon, 28 Dec 2015 02:01:42 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A485519AC; Mon, 28 Dec 2015 02:01:42 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS21fZq094146; Mon, 28 Dec 2015 02:01:41 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS21fZO094145; Mon, 28 Dec 2015 02:01:41 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512280201.tBS21fZO094145@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Mon, 28 Dec 2015 02:01:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292816 - head/tests/sys/aio X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 02:01:43 -0000 Author: ngie Date: Mon Dec 28 02:01:41 2015 New Revision: 292816 URL: https://svnweb.freebsd.org/changeset/base/292816 Log: Place cancel and error under #ifdef DEBUG to mute -Wunused-but-set-variable warnings reported by gcc 4.9 Remove some trailing whitespace as well Tested with and without -DDEBUG MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/tests/sys/aio/aio_kqueue_test.c Modified: head/tests/sys/aio/aio_kqueue_test.c ============================================================================== --- head/tests/sys/aio/aio_kqueue_test.c Mon Dec 28 01:51:20 2015 (r292815) +++ head/tests/sys/aio/aio_kqueue_test.c Mon Dec 28 02:01:41 2015 (r292816) @@ -62,7 +62,10 @@ main (int argc, char *argv[]) struct kevent ke, kq_returned; struct timespec ts; char buffer[32768]; - int cancel, error, failed = 0, fd, kq, pending, result, run; +#ifdef DEBUG + int cancel, error; +#endif + int failed = 0, fd, kq, pending, result, run; int tmp_file = 0; unsigned i, j; @@ -96,19 +99,19 @@ main (int argc, char *argv[]) if (iocb[i] == NULL) err(1, "calloc"); } - - pending = 0; + + pending = 0; for (i = 0; i < nitems(iocb); i++) { pending++; iocb[i]->aio_nbytes = sizeof(buffer); iocb[i]->aio_buf = buffer; iocb[i]->aio_fildes = fd; iocb[i]->aio_offset = iocb[i]->aio_nbytes * i * run; - + iocb[i]->aio_sigevent.sigev_notify_kqueue = kq; iocb[i]->aio_sigevent.sigev_value.sival_ptr = iocb[i]; iocb[i]->aio_sigevent.sigev_notify = SIGEV_KEVENT; - + result = aio_write(iocb[i]); if (result != 0) { perror("aio_write"); @@ -133,7 +136,9 @@ main (int argc, char *argv[]) } } } +#ifdef DEBUG cancel = nitems(iocb) - pending; +#endif i = 0; while (pending) { @@ -144,34 +149,36 @@ main (int argc, char *argv[]) bzero(&kq_returned, sizeof(ke)); ts.tv_sec = 0; ts.tv_nsec = 1; - result = kevent(kq, NULL, 0, + result = kevent(kq, NULL, 0, &kq_returned, 1, &ts); +#ifdef DEBUG error = errno; +#endif if (result < 0) perror("kevent error: "); kq_iocb = kq_returned.udata; #ifdef DEBUG printf("kevent %d %d errno %d return.ident %p " - "return.data %p return.udata %p %p\n", - i, result, error, - kq_returned.ident, kq_returned.data, - kq_returned.udata, + "return.data %p return.udata %p %p\n", + i, result, error, + kq_returned.ident, kq_returned.data, + kq_returned.udata, kq_iocb); #endif - + if (kq_iocb) break; #ifdef DEBUG printf("Try again left %d out of %d %d\n", pending, nitems(iocb), cancel); #endif - } - + } + for (j = 0; j < nitems(iocb) && iocb[j] != kq_iocb; j++) ; #ifdef DEBUG printf("kq_iocb %p\n", kq_iocb); - + printf("Error Result for %d is %d pending %d\n", j, result, pending); #endif @@ -192,7 +199,7 @@ main (int argc, char *argv[]) iocb[j] = NULL; pending--; i++; - } + } for (i = 0; i < nitems(iocb); i++) free(iocb[i]); From owner-svn-src-all@freebsd.org Mon Dec 28 02:07:58 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2FD60A52BDA; Mon, 28 Dec 2015 02:07:58 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DABDA1D2A; Mon, 28 Dec 2015 02:07:57 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS27veB094914; Mon, 28 Dec 2015 02:07:57 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS27vds094913; Mon, 28 Dec 2015 02:07:57 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201512280207.tBS27vds094913@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Mon, 28 Dec 2015 02:07:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292817 - head/usr.bin/systat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 02:07:58 -0000 Author: araujo Date: Mon Dec 28 02:07:56 2015 New Revision: 292817 URL: https://svnweb.freebsd.org/changeset/base/292817 Log: Add on systat -vm the ability to display the physical and kernel memory percent usage. PR: bin/203917 Submitted by: ota Approved by: bapt (mentor) Differential Revision: https://reviews.freebsd.org/D4281 Modified: head/usr.bin/systat/vmstat.c Modified: head/usr.bin/systat/vmstat.c ============================================================================== --- head/usr.bin/systat/vmstat.c Mon Dec 28 02:01:41 2015 (r292816) +++ head/usr.bin/systat/vmstat.c Mon Dec 28 02:07:56 2015 (r292817) @@ -108,6 +108,7 @@ static struct Info { u_int v_active_count; /* number of pages active */ u_int v_inactive_count; /* number of pages inactive */ u_int v_cache_count; /* number of pages on buffer cache queue */ + u_long v_kmem_map_size; /* Current kmem allocation size */ struct vmtotal Total; struct nchstats nchstats; long nchcount; @@ -118,6 +119,8 @@ static struct Info { long freevnodes; int numdirtybuffers; } s, s1, s2, z; +static u_long kmem_size; +static u_int v_page_count; struct statinfo cur, last, run; @@ -278,6 +281,8 @@ initkre(void) allocinfo(&s2); allocinfo(&z); } + GETSYSCTL("vm.kmem_size", kmem_size); + GETSYSCTL("vm.stats.vm.v_page_count", v_page_count); getinfo(&s2); copyinfo(&s2, &s1); return(1); @@ -307,7 +312,8 @@ labelkre(void) clear(); mvprintw(STATROW, STATCOL + 6, "users Load"); - mvprintw(MEMROW, MEMCOL, "Mem:KB REAL VIRTUAL"); + mvprintw(STATROW + 1, STATCOL + 3, "Mem usage: %%Phy %%Kmem"); + mvprintw(MEMROW, MEMCOL, "Mem: KB REAL VIRTUAL"); mvprintw(MEMROW + 1, MEMCOL, " Tot Share Tot Share"); mvprintw(MEMROW + 2, MEMCOL, "Act"); mvprintw(MEMROW + 3, MEMCOL, "All"); @@ -478,6 +484,11 @@ showkre(void) putfloat(avenrun[2], STATROW, STATCOL + 32, 5, 2, 0); mvaddstr(STATROW, STATCOL + 55, buf); #define pgtokb(pg) ((pg) * (s.v_page_size / 1024)) + putfloat(100.0 * (v_page_count - total.t_free) / v_page_count, + STATROW + 1, STATCOL + 15, 2, 0, 1); + putfloat(100.0 * s.v_kmem_map_size / kmem_size, + STATROW + 1, STATCOL + 22, 2, 0, 1); + putint(pgtokb(total.t_arm), MEMROW + 2, MEMCOL + 4, 7); putint(pgtokb(total.t_armshr), MEMROW + 2, MEMCOL + 12, 7); putint(pgtokb(total.t_avm), MEMROW + 2, MEMCOL + 20, 8); @@ -790,6 +801,7 @@ getinfo(struct Info *ls) GETSYSCTL("vfs.freevnodes", ls->freevnodes); GETSYSCTL("vfs.cache.nchstats", ls->nchstats); GETSYSCTL("vfs.numdirtybuffers", ls->numdirtybuffers); + GETSYSCTL("vm.kmem_map_size", ls->v_kmem_map_size); getsysctl("hw.intrcnt", ls->intrcnt, nintr * sizeof(u_long)); size = sizeof(ls->Total); From owner-svn-src-all@freebsd.org Mon Dec 28 02:18:24 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3E924A52FBE; Mon, 28 Dec 2015 02:18:24 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 19BAD11A3; Mon, 28 Dec 2015 02:18:24 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS2IN99098128; Mon, 28 Dec 2015 02:18:23 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS2INuW098127; Mon, 28 Dec 2015 02:18:23 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512280218.tBS2INuW098127@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Mon, 28 Dec 2015 02:18:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292818 - head/tests/sys/aio X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 02:18:24 -0000 Author: ngie Date: Mon Dec 28 02:18:22 2015 New Revision: 292818 URL: https://svnweb.freebsd.org/changeset/base/292818 Log: Fix style(9) a bit and ensure that error from initializing kqueue(2) is sane - Push the kqueue(2) initialization down so the errno will correspond with the failure instead of potentially being stomped on by functions called by `PLAIN_REQUIRE_KERNEL_MODULE` - Delete trailing whitespace - Add spaces between braces for conditional and control blocks (for/if) - Use err/errx instead of perror+printf+exit/printf+exit. - Remove braces for single-line conditionals Tested with and without -DDEBUG MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/tests/sys/aio/lio_kqueue_test.c Modified: head/tests/sys/aio/lio_kqueue_test.c ============================================================================== --- head/tests/sys/aio/lio_kqueue_test.c Mon Dec 28 02:07:56 2015 (r292817) +++ head/tests/sys/aio/lio_kqueue_test.c Mon Dec 28 02:18:22 2015 (r292818) @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include @@ -57,13 +58,14 @@ #define MAX_RUNS 300 int -main(int argc, char *argv[]){ +main(int argc, char *argv[]) +{ int fd; struct aiocb *iocb[MAX_IOCBS]; struct aiocb **lio[LIO_MAX], **lio_element, **kq_lio; int i, result, run, error, j, k; char buffer[32768]; - int kq = kqueue(); + int kq; struct kevent ke, kq_returned; struct timespec ts; struct sigevent sig; @@ -73,10 +75,9 @@ main(int argc, char *argv[]){ PLAIN_REQUIRE_KERNEL_MODULE("aio", 0); - if (kq < 0) { - perror("No kqeueue\n"); - exit(1); - } + kq = kqueue(); + if (kq < 0) + err(1, "kqeueue(2) failed"); if (argc == 1) { strcpy(pathname, PATH_TEMPLATE); @@ -87,34 +88,30 @@ main(int argc, char *argv[]){ file = argv[1]; fd = open(file, O_RDWR|O_CREAT, 0666); } - if (fd < 0){ - fprintf(stderr, "Can't open %s\n", argv[1]); - perror(""); - exit(1); - } + if (fd < 0) + err(1, "can't open %s", argv[1]); #ifdef DEBUG printf("Hello kq %d fd %d\n", kq, fd); #endif - for (run = 0; run < MAX_RUNS; run++){ + for (run = 0; run < MAX_RUNS; run++) { #ifdef DEBUG printf("Run %d\n", run); #endif for (j = 0; j < LIO_MAX; j++) { - lio[j] = (struct aiocb **) + lio[j] = malloc(sizeof(struct aiocb *) * MAX_IOCBS/LIO_MAX); - for(i = 0; i < MAX_IOCBS / LIO_MAX; i++) { + for (i = 0; i < MAX_IOCBS / LIO_MAX; i++) { k = (MAX_IOCBS / LIO_MAX * j) + i; lio_element = lio[j]; - lio[j][i] = iocb[k] = (struct aiocb *) - malloc(sizeof(struct aiocb)); - bzero(iocb[k], sizeof(struct aiocb)); + lio[j][i] = iocb[k] = + calloc(1, sizeof(struct aiocb)); iocb[k]->aio_nbytes = sizeof(buffer); iocb[k]->aio_buf = buffer; iocb[k]->aio_fildes = fd; - iocb[k]->aio_offset - = iocb[k]->aio_nbytes * k * (run + 1); + iocb[k]->aio_offset + = iocb[k]->aio_nbytes * k * (run + 1); #ifdef DEBUG printf("hello iocb[k] %d\n", @@ -131,27 +128,26 @@ main(int argc, char *argv[]){ error = errno; time(&time2); #ifdef DEBUG - printf("Time %d %d %d result -> %d\n", + printf("Time %d %d %d result -> %d\n", time1, time2, time2-time1, result); #endif if (result != 0) { errno = error; - perror("list_listio"); - printf("FAIL: Result %d iteration %d\n",result, j); - exit(1); + err(1, "FAIL: Result %d iteration %d\n", + result, j); } #ifdef DEBUG printf("write %d is at %p\n", j, lio[j]); #endif } - for(i = 0; i < LIO_MAX; i++) { - for(j = LIO_MAX - 1; j >=0; j--) { + for (i = 0; i < LIO_MAX; i++) { + for (j = LIO_MAX - 1; j >=0; j--) { if (lio[j]) break; } - for(;;) { + for (;;) { bzero(&ke, sizeof(ke)); bzero(&kq_returned, sizeof(ke)); ts.tv_sec = 0; @@ -159,9 +155,9 @@ main(int argc, char *argv[]){ #ifdef DEBUG printf("FOO lio %d -> %p\n", j, lio[j]); #endif - EV_SET(&ke, (uintptr_t)lio[j], + EV_SET(&ke, (uintptr_t)lio[j], EVFILT_LIO, EV_ONESHOT, 0, 0, iocb[j]); - result = kevent(kq, NULL, 0, + result = kevent(kq, NULL, 0, &kq_returned, 1, &ts); error = errno; if (result < 0) { @@ -170,14 +166,14 @@ main(int argc, char *argv[]){ kq_lio = kq_returned.udata; #ifdef DEBUG printf("kevent %d %d errno %d return.ident %p " - "return.data %p return.udata %p %p\n", - i, result, error, - kq_returned.ident, kq_returned.data, - kq_returned.udata, + "return.data %p return.udata %p %p\n", + i, result, error, + kq_returned.ident, kq_returned.data, + kq_returned.udata, lio[j]); #endif - if(kq_lio) + if (kq_lio) break; #ifdef DEBUG printf("Try again\n"); @@ -189,25 +185,21 @@ main(int argc, char *argv[]){ #endif for (j = 0; j < LIO_MAX; j++) { - if (lio[j] == kq_lio) { + if (lio[j] == kq_lio) break; - } - } - if (j == LIO_MAX) { - printf("FAIL:\n"); - exit(1); } + if (j == LIO_MAX) + errx(1, "FAIL: "); #ifdef DEBUG printf("Error Result for %d is %d\n", j, result); #endif if (result < 0) { printf("FAIL: run %d, operation %d result %d \n", run, LIO_MAX - i -1, result); - failed = 1; - } else { + failed++; + } else printf("PASS: run %d, operation %d result %d \n", run, LIO_MAX - i -1, result); - } - for(k = 0; k < MAX_IOCBS / LIO_MAX; k++){ + for (k = 0; k < MAX_IOCBS / LIO_MAX; k++) { result = aio_return(kq_lio[k]); #ifdef DEBUG printf("Return Resulto for %d %d is %d\n", j, k, result); @@ -224,9 +216,8 @@ main(int argc, char *argv[]){ printf("\n"); #endif - for(k = 0; k < MAX_IOCBS / LIO_MAX; k++) { + for (k = 0; k < MAX_IOCBS / LIO_MAX; k++) free(lio[j][k]); - } free(lio[j]); lio[j] = NULL; } @@ -235,15 +226,12 @@ main(int argc, char *argv[]){ printf("Done\n"); #endif - if (tmp_file) { + if (tmp_file) unlink(pathname); - } - if (failed) { - printf("FAIL: Atleast one\n"); - exit(1); - } else { - printf("PASS: All\n"); - exit(0); - } + if (failed) + errx(1, "FAIL: %d testcases failed", failed); + else + errx(0, "PASS: All\n"); + } From owner-svn-src-all@freebsd.org Mon Dec 28 02:21:37 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7F74A4C1C6; Mon, 28 Dec 2015 02:21:37 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 945071532; Mon, 28 Dec 2015 02:21:37 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS2LaHP099019; Mon, 28 Dec 2015 02:21:36 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS2LaTC099018; Mon, 28 Dec 2015 02:21:36 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512280221.tBS2LaTC099018@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Mon, 28 Dec 2015 02:21:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292819 - head/tests/sys/aio X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 02:21:37 -0000 Author: ngie Date: Mon Dec 28 02:21:36 2015 New Revision: 292819 URL: https://svnweb.freebsd.org/changeset/base/292819 Log: - Fix an improperly sized buffer for `pathname` [1] - Fix a -Wunused-but-set-variable warning [2] MFC after: 1 week Reported by: cppcheck [1], gcc 4.9 [2] Sponsored by: EMC / Isilon Storage Division Modified: head/tests/sys/aio/lio_kqueue_test.c Modified: head/tests/sys/aio/lio_kqueue_test.c ============================================================================== --- head/tests/sys/aio/lio_kqueue_test.c Mon Dec 28 02:18:22 2015 (r292818) +++ head/tests/sys/aio/lio_kqueue_test.c Mon Dec 28 02:21:36 2015 (r292819) @@ -62,7 +62,7 @@ main(int argc, char *argv[]) { int fd; struct aiocb *iocb[MAX_IOCBS]; - struct aiocb **lio[LIO_MAX], **lio_element, **kq_lio; + struct aiocb **lio[LIO_MAX], **kq_lio; int i, result, run, error, j, k; char buffer[32768]; int kq; @@ -70,7 +70,7 @@ main(int argc, char *argv[]) struct timespec ts; struct sigevent sig; time_t time1, time2; - char *file, pathname[sizeof(PATH_TEMPLATE)-1]; + char *file, pathname[sizeof(PATH_TEMPLATE)]; int tmp_file = 0, failed = 0; PLAIN_REQUIRE_KERNEL_MODULE("aio", 0); @@ -104,7 +104,6 @@ main(int argc, char *argv[]) malloc(sizeof(struct aiocb *) * MAX_IOCBS/LIO_MAX); for (i = 0; i < MAX_IOCBS / LIO_MAX; i++) { k = (MAX_IOCBS / LIO_MAX * j) + i; - lio_element = lio[j]; lio[j][i] = iocb[k] = calloc(1, sizeof(struct aiocb)); iocb[k]->aio_nbytes = sizeof(buffer); From owner-svn-src-all@freebsd.org Mon Dec 28 02:28:14 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D163A4C426; Mon, 28 Dec 2015 02:28:14 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F2AEE1898; Mon, 28 Dec 2015 02:28:13 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS2SDTw001572; Mon, 28 Dec 2015 02:28:13 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS2SDvx001571; Mon, 28 Dec 2015 02:28:13 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512280228.tBS2SDvx001571@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Mon, 28 Dec 2015 02:28:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292820 - head/tests/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 02:28:14 -0000 Author: ngie Date: Mon Dec 28 02:28:12 2015 New Revision: 292820 URL: https://svnweb.freebsd.org/changeset/base/292820 Log: Clean trailing whitespace MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/tests/sys/kern/unix_seqpacket_test.c Modified: head/tests/sys/kern/unix_seqpacket_test.c ============================================================================== --- head/tests/sys/kern/unix_seqpacket_test.c Mon Dec 28 02:21:36 2015 (r292819) +++ head/tests/sys/kern/unix_seqpacket_test.c Mon Dec 28 02:28:12 2015 (r292820) @@ -47,7 +47,7 @@ static void do_socketpair(int *sv) { int s; - + s = socketpair(PF_LOCAL, SOCK_SEQPACKET, 0, sv); ATF_REQUIRE_EQ(0, s); ATF_REQUIRE(sv[0] >= 0); @@ -59,7 +59,7 @@ static void do_socketpair_nonblocking(int *sv) { int s; - + s = socketpair(PF_LOCAL, SOCK_SEQPACKET, 0, sv); ATF_REQUIRE_EQ(0, s); ATF_REQUIRE(sv[0] >= 0); @@ -69,7 +69,7 @@ do_socketpair_nonblocking(int *sv) ATF_REQUIRE(-1 != fcntl(sv[1], F_SETFL, O_NONBLOCK)); } -/* +/* * Returns a pair of sockets made the hard way: bind, listen, connect & accept * @return const char* The path to the socket */ @@ -100,7 +100,7 @@ mk_pair_of_sockets(int *sv) perror("connect"); atf_tc_fail("connect(2) failed"); } - + /* Accept it */ s1 = accept(s, NULL, NULL); if (s1 == -1) { @@ -239,7 +239,7 @@ test_pipe_simulator(size_t sndbufsize, s memset(sndbuf, num_sent, pktsize); ssize = send(sv[0], sndbuf, pktsize, MSG_EOR); if (ssize < 0) { - /* + /* * XXX: This is bug-compatible with the kernel. * The kernel returns EMSGSIZE when it should * return EAGAIN @@ -275,7 +275,7 @@ test_pipe_simulator(size_t sndbufsize, s pktsize, rsize); memset(comparebuf, num_received, pktsize); ATF_CHECK_EQ_MSG(0, memcmp(comparebuf, rcvbuf, - pktsize), + pktsize), "Received data miscompare"); num_received++; } @@ -333,7 +333,7 @@ test_pipe_reader(void* args) "expected %zd=send(...) but got %zd", td->pktsize, rsize); d = memcmp(comparebuf, rcvbuf, td->pktsize); - ATF_CHECK_EQ_MSG(0, d, + ATF_CHECK_EQ_MSG(0, d, "Received data miscompare on packet %d", i); } return (0); @@ -369,7 +369,7 @@ test_pipe(size_t sndbufsize, size_t rcvb reader_data.so = sv[1]; ATF_REQUIRE_EQ(0, pthread_create(&writer, NULL, test_pipe_writer, (void*)&writer_data)); - /* + /* * Give the writer time to start writing, and hopefully block, before * starting the reader. This increases the likelihood of the test case * failing due to PR kern/185812 @@ -561,7 +561,7 @@ ATF_TC_BODY(resize_buffers, tc) ATF_CHECK_EQ(0, getsockopt(s, SOL_SOCKET, SO_SNDBUF, &xs, &sl)); ATF_CHECK_EQ(0, getsockopt(s, SOL_SOCKET, SO_RCVBUF, &xr, &sl)); printf("After changing SNDBUF | %7d | %7d |\n", xs, xr); - + if (setsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcvbuf, sizeof(rcvbuf)) != 0){ perror("setsockopt"); atf_tc_fail("setsockopt(SO_RCVBUF) failed"); @@ -703,7 +703,7 @@ ATF_TC_BODY(sendto_recvfrom, tc) } ATF_CHECK_EQ(datalen, rsize); - /* + /* * FreeBSD does not currently provide the source address for SEQ_PACKET * AF_UNIX sockets, and POSIX does not require it, so these two checks * are disabled. If FreeBSD gains that feature in the future, then @@ -715,7 +715,7 @@ ATF_TC_BODY(sendto_recvfrom, tc) close(sv[1]); } -/* +/* * send(2) and recv(2) a single short record with sockets created the * traditional way, involving bind, listen, connect, and accept */ @@ -861,7 +861,7 @@ ATF_TC_BODY(send_recv_nonblocking, tc) close(sv[1]); } -/* +/* * We should get EMSGSIZE if we try to send a message larger than the socket * buffer, with blocking sockets */ @@ -890,7 +890,7 @@ ATF_TC_BODY(emsgsize, tc) close(sv[1]); } -/* +/* * We should get EMSGSIZE if we try to send a message larger than the socket * buffer, with nonblocking sockets */ @@ -920,7 +920,7 @@ ATF_TC_BODY(emsgsize_nonblocking, tc) } -/* +/* * We should get EAGAIN if we try to send a message larger than the socket * buffer, with nonblocking sockets. Test with several different sockbuf sizes */ @@ -946,7 +946,7 @@ ATF_TC_BODY(eagain_128k_128k, tc) } -/* +/* * nonblocking send(2) and recv(2) of several records, which should collectively * fill up the send buffer but not the receive buffer */ @@ -971,7 +971,7 @@ ATF_TC_BODY(rcvbuf_oversized, tc) ATF_REQUIRE_EQ(0, setsockopt(sv[1], SOL_SOCKET, SO_RCVBUF, &rcvbufsize, sizeof(rcvbufsize))); - /* + /* * Send and receive packets that are collectively greater than the send * buffer, but less than the receive buffer */ @@ -999,7 +999,7 @@ ATF_TC_BODY(rcvbuf_oversized, tc) "expected %zd=send(...) but got %zd", pktsize, rsize); /* Verify the contents */ - ATF_CHECK_EQ_MSG(0, memcmp(sndbuf, recv_buf, pktsize), + ATF_CHECK_EQ_MSG(0, memcmp(sndbuf, recv_buf, pktsize), "Received data miscompare"); } @@ -1011,7 +1011,7 @@ ATF_TC_BODY(rcvbuf_oversized, tc) close(sv[1]); } -/* +/* * Simulate the behavior of a blocking pipe. The sender will send until his * buffer fills up, then we'll simulate a scheduler switch that will allow the * receiver to read until his buffer empties. Repeat the process until the @@ -1042,7 +1042,7 @@ ATF_TC_BODY(pipe_simulator_128k_128k, tc test_pipe_simulator(131072, 131072); } -/* +/* * Test blocking I/O by passing data between two threads. The total amount of * data will be >> buffer size to force blocking. Repeat the test with multiple * send and receive buffer sizes From owner-svn-src-all@freebsd.org Mon Dec 28 02:35:00 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A0C6EA4C73E; Mon, 28 Dec 2015 02:35:00 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 550961E7D; Mon, 28 Dec 2015 02:35:00 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS2YxuT004837; Mon, 28 Dec 2015 02:34:59 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS2YxER004836; Mon, 28 Dec 2015 02:34:59 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512280234.tBS2YxER004836@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Mon, 28 Dec 2015 02:34:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292821 - head/tests/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 02:35:00 -0000 Author: ngie Date: Mon Dec 28 02:34:59 2015 New Revision: 292821 URL: https://svnweb.freebsd.org/changeset/base/292821 Log: - Remove unused but set ssize in shutdown_send_sigpipe - Add #ifdef TEST_SEQ_PACKET_SOURCE_ADDRESS` for untestable code because FreeBSD doesn't have a means to map source addresses for SEQ_PACKET AF_UNIX sockets (paraphrased). Put pathname variable under the #ifdef to mute another unused but set variable warning MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/tests/sys/kern/unix_seqpacket_test.c Modified: head/tests/sys/kern/unix_seqpacket_test.c ============================================================================== --- head/tests/sys/kern/unix_seqpacket_test.c Mon Dec 28 02:28:12 2015 (r292820) +++ head/tests/sys/kern/unix_seqpacket_test.c Mon Dec 28 02:34:59 2015 (r292821) @@ -671,7 +671,9 @@ ATF_TC_BODY(send_recv, tc) ATF_TC_WITHOUT_HEAD(sendto_recvfrom); ATF_TC_BODY(sendto_recvfrom, tc) { +#ifdef TEST_SEQ_PACKET_SOURCE_ADDRESS const char* path; +#endif struct sockaddr_storage from; int sv[2]; const int bufsize = 64; @@ -682,7 +684,10 @@ ATF_TC_BODY(sendto_recvfrom, tc) socklen_t fromlen; /* setup the socket pair */ - path = mk_pair_of_sockets(sv); +#ifdef TEST_SEQ_PACKET_SOURCE_ADDRESS + path = +#endif + mk_pair_of_sockets(sv); /* send and receive a small packet */ datalen = strlen(data) + 1; /* +1 for the null */ @@ -703,14 +708,16 @@ ATF_TC_BODY(sendto_recvfrom, tc) } ATF_CHECK_EQ(datalen, rsize); +#ifdef TEST_SEQ_PACKET_SOURCE_ADDRESS /* * FreeBSD does not currently provide the source address for SEQ_PACKET * AF_UNIX sockets, and POSIX does not require it, so these two checks * are disabled. If FreeBSD gains that feature in the future, then * these checks may be reenabled */ - /* ATF_CHECK_EQ(PF_LOCAL, from.ss_family); */ - /* ATF_CHECK_STREQ(path, ((struct sockaddr_un*)&from)->sun_path); */ + ATF_CHECK_EQ(PF_LOCAL, from.ss_family); + ATF_CHECK_STREQ(path, ((struct sockaddr_un*)&from)->sun_path); +#endif close(sv[0]); close(sv[1]); } @@ -795,7 +802,6 @@ ATF_TC_BODY(shutdown_send_sigpipe, tc) /* ATF's isolation mechanisms will guarantee uniqueness of this file */ const char *path = "sock"; const char *data = "data"; - ssize_t ssize; int s, err, s2; s = socket(PF_LOCAL, SOCK_SEQPACKET, 0); @@ -820,7 +826,7 @@ ATF_TC_BODY(shutdown_send_sigpipe, tc) ATF_CHECK_EQ(0, shutdown(s2, SHUT_RDWR)); ATF_REQUIRE(SIG_ERR != signal(SIGPIPE, shutdown_send_sigpipe_handler)); - ssize = send(s2, data, sizeof(data), MSG_EOR); + (void)send(s2, data, sizeof(data), MSG_EOR); ATF_CHECK_EQ(1, got_sigpipe); close(s); close(s2); From owner-svn-src-all@freebsd.org Mon Dec 28 02:36:59 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2BDF5A4C806; Mon, 28 Dec 2015 02:36:59 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F2AC410F2; Mon, 28 Dec 2015 02:36:58 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS2awUd005148; Mon, 28 Dec 2015 02:36:58 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS2aw11005147; Mon, 28 Dec 2015 02:36:58 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512280236.tBS2aw11005147@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Mon, 28 Dec 2015 02:36:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292822 - head/tests/sys/kern/pipe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 02:36:59 -0000 Author: ngie Date: Mon Dec 28 02:36:57 2015 New Revision: 292822 URL: https://svnweb.freebsd.org/changeset/base/292822 Log: Remove retval to fix a -Wunused-but-set-variable warning from gcc 4.9 MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/tests/sys/kern/pipe/pipe_overcommit1_test.c Modified: head/tests/sys/kern/pipe/pipe_overcommit1_test.c ============================================================================== --- head/tests/sys/kern/pipe/pipe_overcommit1_test.c Mon Dec 28 02:34:59 2015 (r292821) +++ head/tests/sys/kern/pipe/pipe_overcommit1_test.c Mon Dec 28 02:36:57 2015 (r292822) @@ -40,12 +40,11 @@ int main(void) { - int pipes[10000], returnval; + int pipes[10000]; unsigned int i; - for (i = 0; i < nitems(pipes); i++) { - returnval = pipe(&pipes[i]); - } + for (i = 0; i < nitems(pipes); i++) + (void)pipe(&pipes[i]); printf("PASS\n"); exit(0); From owner-svn-src-all@freebsd.org Mon Dec 28 02:43:15 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3B2B4A4CA8A; Mon, 28 Dec 2015 02:43:15 +0000 (UTC) (envelope-from pkelsey@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CCAFA14EA; Mon, 28 Dec 2015 02:43:14 +0000 (UTC) (envelope-from pkelsey@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS2hEZu008216; Mon, 28 Dec 2015 02:43:14 GMT (envelope-from pkelsey@FreeBSD.org) Received: (from pkelsey@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS2hD7X008202; Mon, 28 Dec 2015 02:43:13 GMT (envelope-from pkelsey@FreeBSD.org) Message-Id: <201512280243.tBS2hD7X008202@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pkelsey set sender to pkelsey@FreeBSD.org using -f From: Patrick Kelsey Date: Mon, 28 Dec 2015 02:43:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292823 - in stable/10/sys: conf netinet X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 02:43:15 -0000 Author: pkelsey Date: Mon Dec 28 02:43:12 2015 New Revision: 292823 URL: https://svnweb.freebsd.org/changeset/base/292823 Log: MFC r292706: Implementation of server-side TCP Fast Open (TFO) [RFC7413]. TFO is disabled by default in the kernel build. See the top comment in sys/netinet/tcp_fastopen.c for implementation particulars. Differential Revision: https://reviews.freebsd.org/D4350 Sponsored by: Verisign, Inc. Added: stable/10/sys/netinet/tcp_fastopen.c - copied unchanged from r292706, head/sys/netinet/tcp_fastopen.c stable/10/sys/netinet/tcp_fastopen.h - copied unchanged from r292706, head/sys/netinet/tcp_fastopen.h Modified: stable/10/sys/conf/files stable/10/sys/conf/options stable/10/sys/netinet/tcp.h stable/10/sys/netinet/tcp_input.c stable/10/sys/netinet/tcp_output.c stable/10/sys/netinet/tcp_subr.c stable/10/sys/netinet/tcp_syncache.c stable/10/sys/netinet/tcp_syncache.h stable/10/sys/netinet/tcp_timer.c stable/10/sys/netinet/tcp_usrreq.c stable/10/sys/netinet/tcp_var.h Modified: stable/10/sys/conf/files ============================================================================== --- stable/10/sys/conf/files Mon Dec 28 02:36:57 2015 (r292822) +++ stable/10/sys/conf/files Mon Dec 28 02:43:12 2015 (r292823) @@ -3503,6 +3503,7 @@ netinet/sctp_usrreq.c optional inet sct netinet/sctputil.c optional inet sctp | inet6 sctp netinet/siftr.c optional inet siftr alq | inet6 siftr alq netinet/tcp_debug.c optional tcpdebug +netinet/tcp_fastopen.c optional inet tcp_rfc7413 | inet6 tcp_rfc7413 netinet/tcp_hostcache.c optional inet | inet6 netinet/tcp_input.c optional inet | inet6 netinet/tcp_lro.c optional inet | inet6 Modified: stable/10/sys/conf/options ============================================================================== --- stable/10/sys/conf/options Mon Dec 28 02:36:57 2015 (r292822) +++ stable/10/sys/conf/options Mon Dec 28 02:43:12 2015 (r292823) @@ -442,6 +442,8 @@ SLIP_IFF_OPTS opt_slip.h TCPDEBUG SIFTR TCP_OFFLOAD opt_inet.h # Enable code to dispatch TCP offloading +TCP_RFC7413 opt_inet.h +TCP_RFC7413_MAX_KEYS opt_inet.h TCP_SIGNATURE opt_inet.h VLAN_ARRAY opt_vlan.h XBONEHACK Modified: stable/10/sys/netinet/tcp.h ============================================================================== --- stable/10/sys/netinet/tcp.h Mon Dec 28 02:36:57 2015 (r292822) +++ stable/10/sys/netinet/tcp.h Mon Dec 28 02:43:12 2015 (r292823) @@ -97,6 +97,10 @@ struct tcphdr { #define TCPOLEN_TSTAMP_APPA (TCPOLEN_TIMESTAMP+2) /* appendix A */ #define TCPOPT_SIGNATURE 19 /* Keyed MD5: RFC 2385 */ #define TCPOLEN_SIGNATURE 18 +#define TCPOPT_FAST_OPEN 34 +#define TCPOLEN_FAST_OPEN_EMPTY 2 +#define TCPOLEN_FAST_OPEN_MIN 6 +#define TCPOLEN_FAST_OPEN_MAX 18 /* Miscellaneous constants */ #define MAX_SACK_BLKS 6 /* Max # SACK blocks stored at receiver side */ @@ -165,6 +169,7 @@ struct tcphdr { #define TCP_KEEPIDLE 256 /* L,N,X start keeplives after this period */ #define TCP_KEEPINTVL 512 /* L,N interval between keepalives */ #define TCP_KEEPCNT 1024 /* L,N number of keepalives before close */ +#define TCP_FASTOPEN 1025 /* enable TFO / was created via TFO */ /* Start of reserved space for third-party user-settable options. */ #define TCP_VENDOR SO_VENDOR Copied: stable/10/sys/netinet/tcp_fastopen.c (from r292706, head/sys/netinet/tcp_fastopen.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/netinet/tcp_fastopen.c Mon Dec 28 02:43:12 2015 (r292823, copy of r292706, head/sys/netinet/tcp_fastopen.c) @@ -0,0 +1,442 @@ +/*- + * Copyright (c) 2015 Patrick Kelsey + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * This is a server-side implementation of TCP Fast Open (TFO) [RFC7413]. + * + * This implementation is currently considered to be experimental and is not + * included in kernel builds by default. To include this code, add the + * following line to your kernel config: + * + * options TCP_RFC7413 + * + * The generated TFO cookies are the 64-bit output of + * SipHash24(<16-byte-key>). Multiple concurrent valid keys are + * supported so that time-based rolling cookie invalidation policies can be + * implemented in the system. The default number of concurrent keys is 2. + * This can be adjusted in the kernel config as follows: + * + * options TCP_RFC7413_MAX_KEYS= + * + * + * The following TFO-specific sysctls are defined: + * + * net.inet.tcp.fastopen.acceptany (RW, default 0) + * When non-zero, all client-supplied TFO cookies will be considered to + * be valid. + * + * net.inet.tcp.fastopen.autokey (RW, default 120) + * When this and net.inet.tcp.fastopen.enabled are non-zero, a new key + * will be automatically generated after this many seconds. + * + * net.inet.tcp.fastopen.enabled (RW, default 0) + * When zero, no new TFO connections can be created. On the transition + * from enabled to disabled, all installed keys are removed. On the + * transition from disabled to enabled, if net.inet.tcp.fastopen.autokey + * is non-zero and there are no keys installed, a new key will be + * generated immediately. The transition from enabled to disabled does + * not affect any TFO connections in progress; it only prevents new ones + * from being made. + * + * net.inet.tcp.fastopen.keylen (RO) + * The key length in bytes. + * + * net.inet.tcp.fastopen.maxkeys (RO) + * The maximum number of keys supported. + * + * net.inet.tcp.fastopen.numkeys (RO) + * The current number of keys installed. + * + * net.inet.tcp.fastopen.setkey (WO) + * Install a new key by writing net.inet.tcp.fastopen.keylen bytes to this + * sysctl. + * + * + * In order for TFO connections to be created via a listen socket, that + * socket must have the TCP_FASTOPEN socket option set on it. This option + * can be set on the socket either before or after the listen() is invoked. + * Clearing this option on a listen socket after it has been set has no + * effect on existing TFO connections or TFO connections in progress; it + * only prevents new TFO connections from being made. + * + * For passively-created sockets, the TCP_FASTOPEN socket option can be + * queried to determine whether the connection was established using TFO. + * Note that connections that are established via a TFO SYN, but that fall + * back to using a non-TFO SYN|ACK will have the TCP_FASTOPEN socket option + * set. + * + * Per the RFC, this implementation limits the number of TFO connections + * that can be in the SYN_RECEIVED state on a per listen-socket basis. + * Whenever this limit is exceeded, requests for new TFO connections are + * serviced as non-TFO requests. Without such a limit, given a valid TFO + * cookie, an attacker could keep the listen queue in an overflow condition + * using a TFO SYN flood. This implementation sets the limit at half the + * configured listen backlog. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "opt_inet.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include +#include +#include +#include + + +#define TCP_FASTOPEN_KEY_LEN SIPHASH_KEY_LENGTH + +#if !defined(TCP_RFC7413_MAX_KEYS) || (TCP_RFC7413_MAX_KEYS < 1) +#define TCP_FASTOPEN_MAX_KEYS 2 +#else +#define TCP_FASTOPEN_MAX_KEYS TCP_RFC7413_MAX_KEYS +#endif + +struct tcp_fastopen_keylist { + unsigned int newest; + uint8_t key[TCP_FASTOPEN_MAX_KEYS][TCP_FASTOPEN_KEY_LEN]; +}; + +struct tcp_fastopen_callout { + struct callout c; + struct vnet *v; +}; + +SYSCTL_NODE(_net_inet_tcp, OID_AUTO, fastopen, CTLFLAG_RW, 0, "TCP Fast Open"); + +static VNET_DEFINE(int, tcp_fastopen_acceptany) = 0; +#define V_tcp_fastopen_acceptany VNET(tcp_fastopen_acceptany) +SYSCTL_INT(_net_inet_tcp_fastopen, OID_AUTO, acceptany, + CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(tcp_fastopen_acceptany), 0, + "Accept any non-empty cookie"); + +static VNET_DEFINE(unsigned int, tcp_fastopen_autokey) = 120; +#define V_tcp_fastopen_autokey VNET(tcp_fastopen_autokey) +static int sysctl_net_inet_tcp_fastopen_autokey(SYSCTL_HANDLER_ARGS); +SYSCTL_PROC(_net_inet_tcp_fastopen, OID_AUTO, autokey, + CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW, NULL, 0, + &sysctl_net_inet_tcp_fastopen_autokey, "IU", + "Number of seconds between auto-generation of a new key; zero disables"); + +VNET_DEFINE(unsigned int, tcp_fastopen_enabled) = 0; +static int sysctl_net_inet_tcp_fastopen_enabled(SYSCTL_HANDLER_ARGS); +SYSCTL_PROC(_net_inet_tcp_fastopen, OID_AUTO, enabled, + CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW, NULL, 0, + &sysctl_net_inet_tcp_fastopen_enabled, "IU", + "Enable/disable TCP Fast Open processing"); + +SYSCTL_INT(_net_inet_tcp_fastopen, OID_AUTO, keylen, + CTLFLAG_RD, SYSCTL_NULL_INT_PTR, TCP_FASTOPEN_KEY_LEN, + "Key length in bytes"); + +SYSCTL_INT(_net_inet_tcp_fastopen, OID_AUTO, maxkeys, + CTLFLAG_RD, SYSCTL_NULL_INT_PTR, TCP_FASTOPEN_MAX_KEYS, + "Maximum number of keys supported"); + +static VNET_DEFINE(unsigned int, tcp_fastopen_numkeys) = 0; +#define V_tcp_fastopen_numkeys VNET(tcp_fastopen_numkeys) +SYSCTL_UINT(_net_inet_tcp_fastopen, OID_AUTO, numkeys, + CTLFLAG_VNET | CTLFLAG_RD, &VNET_NAME(tcp_fastopen_numkeys), 0, + "Number of keys installed"); + +static int sysctl_net_inet_tcp_fastopen_setkey(SYSCTL_HANDLER_ARGS); +SYSCTL_PROC(_net_inet_tcp_fastopen, OID_AUTO, setkey, + CTLFLAG_VNET | CTLTYPE_OPAQUE | CTLFLAG_WR, NULL, 0, + &sysctl_net_inet_tcp_fastopen_setkey, "", + "Install a new key"); + +static VNET_DEFINE(struct rmlock, tcp_fastopen_keylock); +#define V_tcp_fastopen_keylock VNET(tcp_fastopen_keylock) + +#define TCP_FASTOPEN_KEYS_RLOCK(t) rm_rlock(&V_tcp_fastopen_keylock, (t)) +#define TCP_FASTOPEN_KEYS_RUNLOCK(t) rm_runlock(&V_tcp_fastopen_keylock, (t)) +#define TCP_FASTOPEN_KEYS_WLOCK() rm_wlock(&V_tcp_fastopen_keylock) +#define TCP_FASTOPEN_KEYS_WUNLOCK() rm_wunlock(&V_tcp_fastopen_keylock) + +static VNET_DEFINE(struct tcp_fastopen_keylist, tcp_fastopen_keys); +#define V_tcp_fastopen_keys VNET(tcp_fastopen_keys) + +static VNET_DEFINE(struct tcp_fastopen_callout, tcp_fastopen_autokey_ctx); +#define V_tcp_fastopen_autokey_ctx VNET(tcp_fastopen_autokey_ctx) + +static VNET_DEFINE(uma_zone_t, counter_zone); +#define V_counter_zone VNET(counter_zone) + +void +tcp_fastopen_init(void) +{ + V_counter_zone = uma_zcreate("tfo", sizeof(unsigned int), + NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE); + rm_init(&V_tcp_fastopen_keylock, "tfo_keylock"); + callout_init_rm(&V_tcp_fastopen_autokey_ctx.c, + &V_tcp_fastopen_keylock, 0); + V_tcp_fastopen_keys.newest = TCP_FASTOPEN_MAX_KEYS - 1; +} + +void +tcp_fastopen_destroy(void) +{ + callout_drain(&V_tcp_fastopen_autokey_ctx.c); + rm_destroy(&V_tcp_fastopen_keylock); + uma_zdestroy(V_counter_zone); +} + +unsigned int * +tcp_fastopen_alloc_counter(void) +{ + unsigned int *counter; + counter = uma_zalloc(V_counter_zone, M_NOWAIT); + if (counter) + *counter = 1; + return (counter); +} + +void +tcp_fastopen_decrement_counter(unsigned int *counter) +{ + if (*counter == 1) + uma_zfree(V_counter_zone, counter); + else + atomic_subtract_int(counter, 1); +} + +static void +tcp_fastopen_addkey_locked(uint8_t *key) +{ + + V_tcp_fastopen_keys.newest++; + if (V_tcp_fastopen_keys.newest == TCP_FASTOPEN_MAX_KEYS) + V_tcp_fastopen_keys.newest = 0; + memcpy(V_tcp_fastopen_keys.key[V_tcp_fastopen_keys.newest], key, + TCP_FASTOPEN_KEY_LEN); + if (V_tcp_fastopen_numkeys < TCP_FASTOPEN_MAX_KEYS) + V_tcp_fastopen_numkeys++; +} + +static void +tcp_fastopen_autokey_locked(void) +{ + uint8_t newkey[TCP_FASTOPEN_KEY_LEN]; + + arc4rand(newkey, TCP_FASTOPEN_KEY_LEN, 0); + tcp_fastopen_addkey_locked(newkey); +} + +static void +tcp_fastopen_autokey_callout(void *arg) +{ + struct tcp_fastopen_callout *ctx = arg; + + CURVNET_SET(ctx->v); + tcp_fastopen_autokey_locked(); + callout_reset(&ctx->c, V_tcp_fastopen_autokey * hz, + tcp_fastopen_autokey_callout, ctx); + CURVNET_RESTORE(); +} + + +static uint64_t +tcp_fastopen_make_cookie(uint8_t key[SIPHASH_KEY_LENGTH], struct in_conninfo *inc) +{ + SIPHASH_CTX ctx; + uint64_t siphash; + + SipHash24_Init(&ctx); + SipHash_SetKey(&ctx, key); + switch (inc->inc_flags & INC_ISIPV6) { +#ifdef INET + case 0: + SipHash_Update(&ctx, &inc->inc_faddr, sizeof(inc->inc_faddr)); + break; +#endif +#ifdef INET6 + case INC_ISIPV6: + SipHash_Update(&ctx, &inc->inc6_faddr, sizeof(inc->inc6_faddr)); + break; +#endif + } + SipHash_Final((u_int8_t *)&siphash, &ctx); + + return (siphash); +} + + +/* + * Return values: + * -1 the cookie is invalid and no valid cookie is available + * 0 the cookie is invalid and the latest cookie has been returned + * 1 the cookie is valid and the latest cookie has been returned + */ +int +tcp_fastopen_check_cookie(struct in_conninfo *inc, uint8_t *cookie, + unsigned int len, uint64_t *latest_cookie) +{ + struct rm_priotracker tracker; + unsigned int i, key_index; + uint64_t cur_cookie; + + if (V_tcp_fastopen_acceptany) { + *latest_cookie = 0; + return (1); + } + + if (len != TCP_FASTOPEN_COOKIE_LEN) { + if (V_tcp_fastopen_numkeys > 0) { + *latest_cookie = + tcp_fastopen_make_cookie( + V_tcp_fastopen_keys.key[V_tcp_fastopen_keys.newest], + inc); + return (0); + } + return (-1); + } + + /* + * Check against each available key, from newest to oldest. + */ + TCP_FASTOPEN_KEYS_RLOCK(&tracker); + key_index = V_tcp_fastopen_keys.newest; + for (i = 0; i < V_tcp_fastopen_numkeys; i++) { + cur_cookie = + tcp_fastopen_make_cookie(V_tcp_fastopen_keys.key[key_index], + inc); + if (i == 0) + *latest_cookie = cur_cookie; + if (memcmp(cookie, &cur_cookie, TCP_FASTOPEN_COOKIE_LEN) == 0) { + TCP_FASTOPEN_KEYS_RUNLOCK(&tracker); + return (1); + } + if (key_index == 0) + key_index = TCP_FASTOPEN_MAX_KEYS - 1; + else + key_index--; + } + TCP_FASTOPEN_KEYS_RUNLOCK(&tracker); + + return (0); +} + +static int +sysctl_net_inet_tcp_fastopen_autokey(SYSCTL_HANDLER_ARGS) +{ + int error; + unsigned int new; + + new = V_tcp_fastopen_autokey; + error = sysctl_handle_int(oidp, &new, 0, req); + if (error == 0 && req->newptr) { + if (new > (INT_MAX / hz)) + return (EINVAL); + + TCP_FASTOPEN_KEYS_WLOCK(); + if (V_tcp_fastopen_enabled) { + if (V_tcp_fastopen_autokey && !new) + callout_stop(&V_tcp_fastopen_autokey_ctx.c); + else if (new) + callout_reset(&V_tcp_fastopen_autokey_ctx.c, + new * hz, tcp_fastopen_autokey_callout, + &V_tcp_fastopen_autokey_ctx); + } + V_tcp_fastopen_autokey = new; + TCP_FASTOPEN_KEYS_WUNLOCK(); + } + + return (error); +} + +static int +sysctl_net_inet_tcp_fastopen_enabled(SYSCTL_HANDLER_ARGS) +{ + int error; + unsigned int new; + + new = V_tcp_fastopen_enabled; + error = sysctl_handle_int(oidp, &new, 0, req); + if (error == 0 && req->newptr) { + if (V_tcp_fastopen_enabled && !new) { + /* enabled -> disabled */ + TCP_FASTOPEN_KEYS_WLOCK(); + V_tcp_fastopen_numkeys = 0; + V_tcp_fastopen_keys.newest = TCP_FASTOPEN_MAX_KEYS - 1; + if (V_tcp_fastopen_autokey) + callout_stop(&V_tcp_fastopen_autokey_ctx.c); + V_tcp_fastopen_enabled = 0; + TCP_FASTOPEN_KEYS_WUNLOCK(); + } else if (!V_tcp_fastopen_enabled && new) { + /* disabled -> enabled */ + TCP_FASTOPEN_KEYS_WLOCK(); + if (V_tcp_fastopen_autokey && + (V_tcp_fastopen_numkeys == 0)) { + tcp_fastopen_autokey_locked(); + callout_reset(&V_tcp_fastopen_autokey_ctx.c, + V_tcp_fastopen_autokey * hz, + tcp_fastopen_autokey_callout, + &V_tcp_fastopen_autokey_ctx); + } + V_tcp_fastopen_enabled = 1; + TCP_FASTOPEN_KEYS_WUNLOCK(); + } + } + return (error); +} + +static int +sysctl_net_inet_tcp_fastopen_setkey(SYSCTL_HANDLER_ARGS) +{ + int error; + uint8_t newkey[TCP_FASTOPEN_KEY_LEN]; + + if (req->oldptr != NULL || req->oldlen != 0) + return (EINVAL); + if (req->newptr == NULL) + return (EPERM); + if (req->newlen != sizeof(newkey)) + return (EINVAL); + error = SYSCTL_IN(req, newkey, sizeof(newkey)); + if (error) + return (error); + + TCP_FASTOPEN_KEYS_WLOCK(); + tcp_fastopen_addkey_locked(newkey); + TCP_FASTOPEN_KEYS_WUNLOCK(); + + return (0); +} Copied: stable/10/sys/netinet/tcp_fastopen.h (from r292706, head/sys/netinet/tcp_fastopen.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/netinet/tcp_fastopen.h Mon Dec 28 02:43:12 2015 (r292823, copy of r292706, head/sys/netinet/tcp_fastopen.h) @@ -0,0 +1,47 @@ +/*- + * Copyright (c) 2015 Patrick Kelsey + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _TCP_FASTOPEN_H_ +#define _TCP_FASTOPEN_H_ + +#ifdef _KERNEL + +#define TCP_FASTOPEN_COOKIE_LEN 8 /* tied to SipHash24 64-bit output */ + +VNET_DECLARE(unsigned int, tcp_fastopen_enabled); +#define V_tcp_fastopen_enabled VNET(tcp_fastopen_enabled) + +void tcp_fastopen_init(void); +void tcp_fastopen_destroy(void); +unsigned int *tcp_fastopen_alloc_counter(void); +void tcp_fastopen_decrement_counter(unsigned int *counter); +int tcp_fastopen_check_cookie(struct in_conninfo *inc, uint8_t *cookie, + unsigned int len, uint64_t *latest_cookie); +#endif /* _KERNEL */ + +#endif /* _TCP_FASTOPEN_H_ */ Modified: stable/10/sys/netinet/tcp_input.c ============================================================================== --- stable/10/sys/netinet/tcp_input.c Mon Dec 28 02:36:57 2015 (r292822) +++ stable/10/sys/netinet/tcp_input.c Mon Dec 28 02:43:12 2015 (r292823) @@ -98,6 +98,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef TCP_RFC7413 +#include +#endif #include #include #include @@ -1072,6 +1075,9 @@ relocked: rstreason = BANDLIM_RST_OPENPORT; goto dropwithreset; } +#ifdef TCP_RFC7413 +new_tfo_socket: +#endif if (so == NULL) { /* * We completed the 3-way handshake @@ -1329,7 +1335,12 @@ relocked: (void *)tcp_saveipgen, &tcp_savetcp, 0); #endif tcp_dooptions(&to, optp, optlen, TO_SYN); +#ifdef TCP_RFC7413 + if (syncache_add(&inc, &to, th, inp, &so, m, NULL, NULL)) + goto new_tfo_socket; +#else syncache_add(&inc, &to, th, inp, &so, m, NULL, NULL); +#endif /* * Entry added to syncache and mbuf consumed. * Everything already unlocked by syncache_add(). @@ -1439,6 +1450,7 @@ tcp_do_segment(struct mbuf *m, struct tc struct in_conninfo *inc; struct mbuf *mfree; struct tcpopt to; + int tfo_syn; #ifdef TCPDEBUG /* @@ -1878,6 +1890,28 @@ tcp_do_segment(struct mbuf *m, struct tc rstreason = BANDLIM_RST_OPENPORT; goto dropwithreset; } +#ifdef TCP_RFC7413 + if (tp->t_flags & TF_FASTOPEN) { + /* + * When a TFO connection is in SYN_RECEIVED, the + * only valid packets are the initial SYN, a + * retransmit/copy of the initial SYN (possibly with + * a subset of the original data), a valid ACK, a + * FIN, or a RST. + */ + if ((thflags & (TH_SYN|TH_ACK)) == (TH_SYN|TH_ACK)) { + rstreason = BANDLIM_RST_OPENPORT; + goto dropwithreset; + } else if (thflags & TH_SYN) { + /* non-initial SYN is ignored */ + if ((tcp_timer_active(tp, TT_DELACK) || + tcp_timer_active(tp, TT_REXMT))) + goto drop; + } else if (!(thflags & (TH_ACK|TH_FIN|TH_RST))) { + goto drop; + } + } +#endif break; /* @@ -2318,9 +2352,16 @@ tcp_do_segment(struct mbuf *m, struct tc */ if ((thflags & TH_ACK) == 0) { if (tp->t_state == TCPS_SYN_RECEIVED || - (tp->t_flags & TF_NEEDSYN)) + (tp->t_flags & TF_NEEDSYN)) { +#ifdef TCP_RFC7413 + if (tp->t_state == TCPS_SYN_RECEIVED && + tp->t_flags & TF_FASTOPEN) { + tp->snd_wnd = tiwin; + cc_conn_init(tp); + } +#endif goto step6; - else if (tp->t_flags & TF_ACKNOW) + } else if (tp->t_flags & TF_ACKNOW) goto dropafterack; else goto drop; @@ -2359,7 +2400,27 @@ tcp_do_segment(struct mbuf *m, struct tc tcp_state_change(tp, TCPS_ESTABLISHED); TCP_PROBE5(accept__established, NULL, tp, mtod(m, const char *), tp, th); - cc_conn_init(tp); +#ifdef TCP_RFC7413 + if (tp->t_tfo_pending) { + tcp_fastopen_decrement_counter(tp->t_tfo_pending); + tp->t_tfo_pending = NULL; + + /* + * Account for the ACK of our SYN prior to + * regular ACK processing below. + */ + tp->snd_una++; + } + /* + * TFO connections call cc_conn_init() during SYN + * processing. Calling it again here for such + * connections is not harmless as it would undo the + * snd_cwnd reduction that occurs when a TFO SYN|ACK + * is retransmitted. + */ + if (!(tp->t_flags & TF_FASTOPEN)) +#endif + cc_conn_init(tp); tcp_timer_activate(tp, TT_KEEP, TP_KEEPIDLE(tp)); } /* @@ -2890,9 +2951,12 @@ dodata: /* XXX */ * case PRU_RCVD). If a FIN has already been received on this * connection then we just ignore the text. */ - if ((tlen || (thflags & TH_FIN)) && + tfo_syn = ((tp->t_state == TCPS_SYN_RECEIVED) && + (tp->t_flags & TF_FASTOPEN)); + if ((tlen || (thflags & TH_FIN) || tfo_syn) && TCPS_HAVERCVDFIN(tp->t_state) == 0) { tcp_seq save_start = th->th_seq; + m_adj(m, drop_hdrlen); /* delayed header drop */ /* * Insert segment which includes th into TCP reassembly queue @@ -2908,8 +2972,9 @@ dodata: /* XXX */ */ if (th->th_seq == tp->rcv_nxt && LIST_EMPTY(&tp->t_segq) && - TCPS_HAVEESTABLISHED(tp->t_state)) { - if (DELAY_ACK(tp, tlen)) + (TCPS_HAVEESTABLISHED(tp->t_state) || + tfo_syn)) { + if (DELAY_ACK(tp, tlen) || tfo_syn) tp->t_flags |= TF_DELACK; else tp->t_flags |= TF_ACKNOW; @@ -3262,6 +3327,21 @@ tcp_dooptions(struct tcpopt *to, u_char to->to_sacks = cp + 2; TCPSTAT_INC(tcps_sack_rcv_blocks); break; +#ifdef TCP_RFC7413 + case TCPOPT_FAST_OPEN: + if ((optlen != TCPOLEN_FAST_OPEN_EMPTY) && + (optlen < TCPOLEN_FAST_OPEN_MIN) && + (optlen > TCPOLEN_FAST_OPEN_MAX)) + continue; + if (!(flags & TO_SYN)) + continue; + if (!V_tcp_fastopen_enabled) + continue; + to->to_flags |= TOF_FASTOPEN; + to->to_tfo_len = optlen - 2; + to->to_tfo_cookie = to->to_tfo_len ? cp + 2 : NULL; + break; +#endif default: continue; } Modified: stable/10/sys/netinet/tcp_output.c ============================================================================== --- stable/10/sys/netinet/tcp_output.c Mon Dec 28 02:36:57 2015 (r292822) +++ stable/10/sys/netinet/tcp_output.c Mon Dec 28 02:43:12 2015 (r292823) @@ -69,6 +69,9 @@ __FBSDID("$FreeBSD$"); #include #include #endif +#ifdef TCP_RFC7413 +#include +#endif #define TCPOUTFLAGS #include #include @@ -202,6 +205,17 @@ tcp_output(struct tcpcb *tp) return (tcp_offload_output(tp)); #endif +#ifdef TCP_RFC7413 + /* + * For TFO connections in SYN_RECEIVED, only allow the initial + * SYN|ACK and those sent by the retransmit timer. + */ + if ((tp->t_flags & TF_FASTOPEN) && + (tp->t_state == TCPS_SYN_RECEIVED) && + SEQ_GT(tp->snd_max, tp->snd_una) && /* inital SYN|ACK sent */ + (tp->snd_nxt != tp->snd_una)) /* not a retransmit */ + return (0); +#endif /* * Determine length of data that should be transmitted, * and flags that will be used. @@ -387,6 +401,15 @@ after_sack_rexmit: if ((flags & TH_SYN) && SEQ_GT(tp->snd_nxt, tp->snd_una)) { if (tp->t_state != TCPS_SYN_RECEIVED) flags &= ~TH_SYN; +#ifdef TCP_RFC7413 + /* + * When sending additional segments following a TFO SYN|ACK, + * do not include the SYN bit. + */ + if ((tp->t_flags & TF_FASTOPEN) && + (tp->t_state == TCPS_SYN_RECEIVED)) + flags &= ~TH_SYN; +#endif off--, len++; } @@ -400,6 +423,17 @@ after_sack_rexmit: flags &= ~TH_FIN; } +#ifdef TCP_RFC7413 + /* + * When retransmitting SYN|ACK on a passively-created TFO socket, + * don't include data, as the presence of data may have caused the + * original SYN|ACK to have been dropped by a middlebox. + */ + if ((tp->t_flags & TF_FASTOPEN) && + (((tp->t_state == TCPS_SYN_RECEIVED) && (tp->t_rxtshift > 0)) || + (flags & TH_RST))) + len = 0; +#endif if (len <= 0) { /* * If FIN has been sent but not acked, @@ -718,6 +752,22 @@ send: tp->snd_nxt = tp->iss; to.to_mss = tcp_mssopt(&tp->t_inpcb->inp_inc); to.to_flags |= TOF_MSS; +#ifdef TCP_RFC7413 + /* + * Only include the TFO option on the first + * transmission of the SYN|ACK on a + * passively-created TFO socket, as the presence of + * the TFO option may have caused the original + * SYN|ACK to have been dropped by a middlebox. + */ + if ((tp->t_flags & TF_FASTOPEN) && + (tp->t_state == TCPS_SYN_RECEIVED) && + (tp->t_rxtshift == 0)) { + to.to_tfo_len = TCP_FASTOPEN_COOKIE_LEN; + to.to_tfo_cookie = (u_char *)&tp->t_tfo_cookie; + to.to_flags |= TOF_FASTOPEN; + } +#endif } /* Window scaling. */ if ((flags & TH_SYN) && (tp->t_flags & TF_REQ_SCALE)) { @@ -997,7 +1047,7 @@ send: * give data to the user when a buffer fills or * a PUSH comes in.) */ - if (off + len == so->so_snd.sb_cc) + if ((off + len == so->so_snd.sb_cc) && !(flags & TH_SYN)) flags |= TH_PUSH; SOCKBUF_UNLOCK(&so->so_snd); } else { @@ -1694,6 +1744,25 @@ tcp_addoptions(struct tcpopt *to, u_char TCPSTAT_INC(tcps_sack_send_blocks); break; } +#ifdef TCP_RFC7413 + case TOF_FASTOPEN: + { + int total_len; + + /* XXX is there any point to aligning this option? */ + total_len = TCPOLEN_FAST_OPEN_EMPTY + to->to_tfo_len; + if (TCP_MAXOLEN - optlen < total_len) + continue; + *optp++ = TCPOPT_FAST_OPEN; + *optp++ = total_len; + if (to->to_tfo_len > 0) { + bcopy(to->to_tfo_cookie, optp, to->to_tfo_len); + optp += to->to_tfo_len; + } + optlen += total_len; + break; + } +#endif default: panic("%s: unknown TCP option type", __func__); break; Modified: stable/10/sys/netinet/tcp_subr.c ============================================================================== --- stable/10/sys/netinet/tcp_subr.c Mon Dec 28 02:36:57 2015 (r292822) +++ stable/10/sys/netinet/tcp_subr.c Mon Dec 28 02:43:12 2015 (r292823) @@ -83,6 +83,9 @@ __FBSDID("$FreeBSD$"); #include #endif +#ifdef TCP_RFC7413 +#include +#endif #include #include #include @@ -427,6 +430,10 @@ tcp_init(void) SHUTDOWN_PRI_DEFAULT); EVENTHANDLER_REGISTER(maxsockets_change, tcp_zone_change, NULL, EVENTHANDLER_PRI_ANY); + +#ifdef TCP_RFC7413 + tcp_fastopen_init(); +#endif } #ifdef VIMAGE @@ -434,6 +441,9 @@ void tcp_destroy(void) { +#ifdef TCP_RFC7413 + tcp_fastopen_destroy(); +#endif tcp_hc_destroy(); syncache_destroy(); tcp_tw_destroy(); @@ -1102,6 +1112,17 @@ tcp_close(struct tcpcb *tp) if (tp->t_state == TCPS_LISTEN) tcp_offload_listen_stop(tp); #endif +#ifdef TCP_RFC7413 + /* + * This releases the TFO pending counter resource for TFO listen + * sockets as well as passively-created TFO sockets that transition + * from SYN_RECEIVED to CLOSED. + */ + if (tp->t_tfo_pending) { + tcp_fastopen_decrement_counter(tp->t_tfo_pending); + tp->t_tfo_pending = NULL; + } +#endif in_pcbdrop(inp); TCPSTAT_INC(tcps_closed); KASSERT(inp->inp_socket != NULL, ("tcp_close: inp_socket NULL")); Modified: stable/10/sys/netinet/tcp_syncache.c ============================================================================== --- stable/10/sys/netinet/tcp_syncache.c Mon Dec 28 02:36:57 2015 (r292822) +++ stable/10/sys/netinet/tcp_syncache.c Mon Dec 28 02:43:12 2015 (r292823) @@ -78,6 +78,9 @@ __FBSDID("$FreeBSD$"); #include #endif #include +#ifdef TCP_RFC7413 +#include +#endif #include #include #include @@ -1089,6 +1092,39 @@ failed: return (0); } +#ifdef TCP_RFC7413 +static void +syncache_tfo_expand(struct syncache *sc, struct socket **lsop, struct mbuf *m, + uint64_t response_cookie) +{ + struct inpcb *inp; + struct tcpcb *tp; + unsigned int *pending_counter; + + /* + * Global TCP locks are held because we manipulate the PCB lists + * and create a new socket. + */ + INP_INFO_RLOCK_ASSERT(&V_tcbinfo); + + pending_counter = intotcpcb(sotoinpcb(*lsop))->t_tfo_pending; + *lsop = syncache_socket(sc, *lsop, m); + if (*lsop == NULL) { + TCPSTAT_INC(tcps_sc_aborted); + atomic_subtract_int(pending_counter, 1); + } else { + inp = sotoinpcb(*lsop); + tp = intotcpcb(inp); + tp->t_flags |= TF_FASTOPEN; + tp->t_tfo_cookie = response_cookie; + tp->snd_max = tp->iss; + tp->snd_nxt = tp->iss; + tp->t_tfo_pending = pending_counter; + TCPSTAT_INC(tcps_sc_completed); + } +} +#endif /* TCP_RFC7413 */ + /* * Given a LISTEN socket and an inbound SYN request, add * this to the syn cache, and send back a segment: @@ -1101,8 +1137,15 @@ failed: * DoS attack, an attacker could send data which would eventually * consume all available buffer space if it were ACKed. By not ACKing * the data, we avoid this DoS scenario. + * + * The exception to the above is when a SYN with a valid TCP Fast Open (TFO) + * cookie is processed, V_tcp_fastopen_enabled set to true, and the + * TCP_FASTOPEN socket option is set. In this case, a new socket is created + * and returned via lsop, the mbuf is not freed so that tcp_input() can + * queue its data to the socket, and 1 is returned to indicate the + * TFO-socket-creation path was taken. */ -void +int syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, struct inpcb *inp, struct socket **lsop, struct mbuf *m, void *tod, void *todctx) @@ -1115,6 +1158,7 @@ syncache_add(struct in_conninfo *inc, st u_int ltflags; int win, sb_hiwat, ip_ttl, ip_tos; char *s; + int rv = 0; #ifdef INET6 int autoflowlabel = 0; #endif @@ -1123,6 +1167,11 @@ syncache_add(struct in_conninfo *inc, st #endif struct syncache scs; struct ucred *cred; +#ifdef TCP_RFC7413 + uint64_t tfo_response_cookie; + int tfo_cookie_valid = 0; + int tfo_response_cookie_valid = 0; +#endif INP_INFO_WLOCK_ASSERT(&V_tcbinfo); INP_WLOCK_ASSERT(inp); /* listen socket */ @@ -1148,6 +1197,29 @@ syncache_add(struct in_conninfo *inc, st sb_hiwat = so->so_rcv.sb_hiwat; ltflags = (tp->t_flags & (TF_NOOPT | TF_SIGNATURE)); +#ifdef TCP_RFC7413 + if (V_tcp_fastopen_enabled && (tp->t_flags & TF_FASTOPEN) && + (tp->t_tfo_pending != NULL) && (to->to_flags & TOF_FASTOPEN)) { + /* + * Limit the number of pending TFO connections to + * approximately half of the queue limit. This prevents TFO + * SYN floods from starving the service by filling the + * listen queue with bogus TFO connections. + */ + if (atomic_fetchadd_int(tp->t_tfo_pending, 1) <= + (so->so_qlimit / 2)) { + int result; + + result = tcp_fastopen_check_cookie(inc, + to->to_tfo_cookie, to->to_tfo_len, + &tfo_response_cookie); + tfo_cookie_valid = (result > 0); + tfo_response_cookie_valid = (result >= 0); + } else + atomic_subtract_int(tp->t_tfo_pending, 1); + } +#endif + /* By the time we drop the lock these should no longer be used. */ so = NULL; tp = NULL; @@ -1160,9 +1232,16 @@ syncache_add(struct in_conninfo *inc, st } else mac_syncache_create(maclabel, inp); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Dec 28 03:14:47 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D72C7A4D56E for ; Mon, 28 Dec 2015 03:14:47 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id BC0661846; Mon, 28 Dec 2015 03:14:47 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from Julian-MBP3.local (ppp121-45-250-125.lns20.per4.internode.on.net [121.45.250.125]) (authenticated bits=0) by vps1.elischer.org (8.15.2/8.15.2) with ESMTPSA id tBS3ELVh022776 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Sun, 27 Dec 2015 19:14:24 -0800 (PST) (envelope-from julian@freebsd.org) Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern To: Bruce Evans , Ian Lepore References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> <20151227184101.GG70867@zxy.spb.ru> <1451243810.1369.10.camel@freebsd.org> <20151227193046.GE4535@zxy.spb.ru> <8D7D617E-FF9E-4D74-87CB-1F3EE65D108A@gmail.com> <1451247868.1369.16.camel@freebsd.org> <20151228093724.D1014@besplex.bde.org> Cc: NGie Cooper , Slawa Olhovchenkov , Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Julian Elischer Message-ID: <5680A907.4020407@freebsd.org> Date: Mon, 28 Dec 2015 11:14:15 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <20151228093724.D1014@besplex.bde.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:14:47 -0000 On 28/12/2015 7:23 AM, Bruce Evans wrote: > On Sun, 27 Dec 2015, Ian Lepore wrote: > >> On Sun, 2015-12-27 at 12:05 -0800, NGie Cooper wrote: >>>> On Dec 27, 2015, at 11:30, Slawa Olhovchenkov >>>> wrote: >>> >>> � >>> >>>>> I have no idea what you mean by that -- I didn't say anything at >>>>> all >>>>> about panic. >>>> >>>> As I understund commit log -- this is prevent kernel panic at some >>>> call (with illegal arguments). This accpetable irrelevant to bugs >>>> in >>>> calling code. >>> >>> This also makes us POSIX compliant and more compatible with >>> Linux: >>> http://pubs.opengroup.org/onlinepubs/007908799/xsh/clock_settime.html >>> (search for �negative�). >>> Thanks kib! >>> -NGie >> >> This thread just keeps becoming more and more surrealistic. First >> someone tries to reply to the original commit (I guess?) by replying >> with a complete non sequitur to my reply. Now you cite a document >> that >> says nothing directly related to the commit at all. >> >> The only reference to "negative" in what you cited is part of >> specifying how to truncate/round fractional values that fall between >> two representable values given the resolution of the clock you're >> setting. > > It also has an obfuscated verbose spelling of negative as "less than > zero" in the description of [EINVAL]. This is the specification of > a invalid timespec which is repeated ad nauseum. The upper limit is > spelled even more verbosely as "greater than or equal to 1000 million". > The correct spelling of this is ">= 1000000000" but that is hard to > read in another way (too many 0's to count quickly). Spelling this > value is remarkably difficult. There are about 10 different spellings > that are no good since they depend on the locale or language (natural > or programming). Mixing digits and words is ugly. 1 billion is > shorter but is off by a factor of 1000 in some locales. > so, now that you have all that loaded into your interneal cache, how about suggesting the least suboptimal behaviour. > I stared at this description many times. It doesn't allow considering > negative times as invalid generally. setitimer(2) has to be specially > broken to disallow them. This bug is missing for nanosleep(). FreeBSD > still documents a non-POSIX limit of 100000000 seconds for > setitimer(2), > but its implementation has been broken to overflow instead of enforcing > this limit. Note that this is 1 followed by 8 zeros and applies to > the seconds value, while the limit for nanoseconds os 1 followed by 9 > zeros. > > Different spellings of 1 followed by a large number of zeros makes thes > value hard to grep for. 1 followed by 8 zeros is in about 50 man pages > (counting links). It is documented as the limit on seconds in > get/setitimer(2). mtree(8) misspells 1 followed by 9 zeros as 1 > followed > by 8 zeros. alarm(3) is implemented using itimers and documents the > same limit. ularm(3) documents the bizarre limit of 1 followed by 14 > zeros "in case this value fits in an the unsigned integer". This is > alarm(3)'s documented but not actual limit of 10**8 seconds converted > to microseconds. It is reachable on systems with >= 47 bit longs. > This spelling is not used in any man page for the limit on the number > of nanoseconds (as in POSIX). > >> Later in that document they specifically require EINVAL for negative >> fractional second values. If they intended to to prohibit negative >> whole-second values, that would certainly have been the place to >> mention it, and they don't. > > This is the "obfuscated verbose spelling" part. This is not really > a restriction on negative fractions. It is just that negative > fractions > are represented as a negative integer plus a proper fraction, where by > definition a proper fraction is nonnegative and less than 1. > Normalization gives this (except when it would overflow). The > requirement is essentially that callers don't pass unnormalized values. > > Bruce From owner-svn-src-all@freebsd.org Mon Dec 28 03:15:38 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92100A4D5EC; Mon, 28 Dec 2015 03:15:38 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-ig0-x22b.google.com (mail-ig0-x22b.google.com [IPv6:2607:f8b0:4001:c05::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 654D019FD; Mon, 28 Dec 2015 03:15:38 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: by mail-ig0-x22b.google.com with SMTP id mv3so112151094igc.0; Sun, 27 Dec 2015 19:15:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=fl0Dn2tTkO+afYQbJVRrUG873Kei29ATNmxPj9+STsA=; b=0TRMnAQFySNjtj4y6YE2UvvQKiRdc2javP3iDdh/BUMebvdAsZ1EaW+5yPwF2PDuiv dgCNyyOt1OVqGUoXzrKZpFt3DCU/CggXbR7KcyWaOgdbteHWHIf/R8akhDe6wKlZPpbb Fd4K/619aE0Vpytll1DUkx8qUulRU6/Xa+xWE1lyzzVByuR9JvQQ609uUf7449J20AkQ xjaEOb/wV9KlsWBGPyhI61jgEBc98tXqfHz6Vj/WaaIR4yQObYOsiNtTWg8ijuJUQiSl fV8kO4pgkCWQorOE72xBhOpoSyM9YnQX6Rhb72I6Irkqfiprp0R2pJRwlPvmEzQiLh8d pHng== MIME-Version: 1.0 X-Received: by 10.50.25.169 with SMTP id d9mr47281854igg.61.1451272537855; Sun, 27 Dec 2015 19:15:37 -0800 (PST) Received: by 10.36.121.202 with HTTP; Sun, 27 Dec 2015 19:15:37 -0800 (PST) In-Reply-To: <5680A574.9050002@freebsd.org> References: <201512280243.tBS2hD7X008202@repo.freebsd.org> <5680A574.9050002@freebsd.org> Date: Sun, 27 Dec 2015 19:15:37 -0800 Message-ID: Subject: Re: svn commit: r292823 - in stable/10/sys: conf netinet From: Adrian Chadd To: Andrey Chernov Cc: Patrick Kelsey , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:15:38 -0000 On 27 December 2015 at 18:59, Andrey Chernov wrote: > On 28.12.2015 5:43, Patrick Kelsey wrote: >> Author: pkelsey >> Date: Mon Dec 28 02:43:12 2015 >> New Revision: 292823 >> URL: https://svnweb.freebsd.org/changeset/base/292823 >> >> Log: >> MFC r292706: >> >> Implementation of server-side TCP Fast Open (TFO) [RFC7413]. >> >> TFO is disabled by default in the kernel build. See the top comment >> in sys/netinet/tcp_fastopen.c for implementation particulars. > > Why it is disabled by default? Do we need some rc.conf knobs to not deal > directly with it, like tcp_extensions? OMG, why it is kernel config and > not boot-time sysctl? I don't need it in like, 90% of what I'm doing at the moment. I'm all for smaller builds and less code cross section to worry about. -a > -- > http://ache.vniz.net/ > From owner-svn-src-all@freebsd.org Mon Dec 28 03:15:47 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DE97EA4D62C; Mon, 28 Dec 2015 03:15:47 +0000 (UTC) (envelope-from pkelsey@gmail.com) Received: from mail-yk0-x230.google.com (mail-yk0-x230.google.com [IPv6:2607:f8b0:4002:c07::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A5BE81B35; Mon, 28 Dec 2015 03:15:47 +0000 (UTC) (envelope-from pkelsey@gmail.com) Received: by mail-yk0-x230.google.com with SMTP id x67so92139936ykd.2; Sun, 27 Dec 2015 19:15:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=+hAi1Pc+fR5n+2e/u+UgqH4ndvAoWIMwAN83HW7OgzU=; b=pwnFx5aHBeeurmRyajIcRJoKlKnQO8IO/n84Qhy0uppogt2rhLECtQ6ioZ5X2vaQ79 tHd6xecFWmMlihB7wENRut4mtTEJOx1pUIvSdjRCb0jtemvWrC3T++Z4COAI8MnFRGbs mtkQe2cATH3d+4Hi/MARUGjEAuIILX8yeRUByXv96jxt9iy5IlxOl97NWnVXQmURAPeB elhoWMqpopbw8owoQENayBxPYyG3i//GMhjITM13dQ1qxhPeQ2oNa17nQf74lfCVNXS4 be/RM0nz3MwMYgOkxTgqKx5OSKZmG8ykEkloqn1/iBQKqoq9yLfvGZD2cV/jCtN3uxPc 6XkA== MIME-Version: 1.0 X-Received: by 10.129.117.132 with SMTP id q126mr2206980ywc.184.1451272546949; Sun, 27 Dec 2015 19:15:46 -0800 (PST) Sender: pkelsey@gmail.com Received: by 10.13.211.65 with HTTP; Sun, 27 Dec 2015 19:15:46 -0800 (PST) In-Reply-To: <5680A574.9050002@freebsd.org> References: <201512280243.tBS2hD7X008202@repo.freebsd.org> <5680A574.9050002@freebsd.org> Date: Sun, 27 Dec 2015 22:15:46 -0500 X-Google-Sender-Auth: J5rtvYA0-J9AysdF77aII9cfOZs Message-ID: Subject: Re: svn commit: r292823 - in stable/10/sys: conf netinet From: Patrick Kelsey To: Andrey Chernov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:15:48 -0000 On Sun, Dec 27, 2015 at 9:59 PM, Andrey Chernov wrote: > On 28.12.2015 5:43, Patrick Kelsey wrote: > > Author: pkelsey > > Date: Mon Dec 28 02:43:12 2015 > > New Revision: 292823 > > URL: https://svnweb.freebsd.org/changeset/base/292823 > > > > Log: > > MFC r292706: > > > > Implementation of server-side TCP Fast Open (TFO) [RFC7413]. > > > > TFO is disabled by default in the kernel build. See the top comment > > in sys/netinet/tcp_fastopen.c for implementation particulars. > > Why it is disabled by default? Do we need some rc.conf knobs to not deal > directly with it, like tcp_extensions? OMG, why it is kernel config and > not boot-time sysctl? > This is explained in the top comment in sys/netinet/tcp_fastopen.c, but I will repeat it here and elaborate a little. It is disabled by default in the kernel build as a conservative measure until it is exercised more widely, given the modifications it introduces to the TCP state machine code, syncache code, etc. When you do enable it in the kernel build (and after some point in the future when it is enabled by default), there is still a sysctl that governs its availability in the system that must be enabled before it can be used. -Patrick From owner-svn-src-all@freebsd.org Mon Dec 28 03:24:45 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E17BA4D98F for ; Mon, 28 Dec 2015 03:24:45 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: from mail-lb0-f180.google.com (mail-lb0-f180.google.com [209.85.217.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 973B01F10 for ; Mon, 28 Dec 2015 03:24:44 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: by mail-lb0-f180.google.com with SMTP id bc4so86092148lbc.2 for ; Sun, 27 Dec 2015 19:24:44 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=slGayxW7ePcWouy8BuWtfDTD1B6iyU2CUoU0Aj7crss=; b=k8nB/yn/33A/mXSLgYa6k6+4yTysztwNMn0JJchl0jmY2HjU357fR+wJRdTozgHoh2 amdrVDC/12lXZFcGqXarjQNJT7gxa266rSK7dhH3bPkQBshZXtfVj+zjFOtdZ8VZieTg ABR3498oqmWe3wPGb6a4TXk6xJut5CelAjEBLhqupAG4j1tfm+H6R29/Jm3IHUS8qj4B vWAxmajYARSa1j5zK/Xbf1y+iOwkuxQ8Yh/MUjMFCWNjutoe/IYRxq+DbPRmnNc7rlbD 7JwWm1Qs0qb1Lm/B2+MQYWfESuntYZfFzog5g+LPIjNOB/42gRMoXBzEI96HPWpfC56u H5xw== X-Gm-Message-State: ALoCoQnFhgY0JCigkXJweM+u6S0TP/1XLVqxaUUknyAYfFMxsczP7rhzFxj+2H75z5+in6P8bhfzbrgqH9+52RDsw0XGg4wdXg== X-Received: by 10.112.42.67 with SMTP id m3mr18922317lbl.2.1451272594809; Sun, 27 Dec 2015 19:16:34 -0800 (PST) Received: from [192.168.1.2] ([89.169.173.68]) by smtp.gmail.com with ESMTPSA id l128sm10001984lfd.10.2015.12.27.19.16.34 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 27 Dec 2015 19:16:34 -0800 (PST) Subject: Re: svn commit: r292823 - in stable/10/sys: conf netinet To: Patrick Kelsey , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org References: <201512280243.tBS2hD7X008202@repo.freebsd.org> <5680A574.9050002@freebsd.org> From: Andrey Chernov Message-ID: <5680A991.5040301@freebsd.org> Date: Mon, 28 Dec 2015 06:16:33 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <5680A574.9050002@freebsd.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:24:45 -0000 On 28.12.2015 5:59, Andrey Chernov wrote: > On 28.12.2015 5:43, Patrick Kelsey wrote: >> Author: pkelsey >> Date: Mon Dec 28 02:43:12 2015 >> New Revision: 292823 >> URL: https://svnweb.freebsd.org/changeset/base/292823 >> >> Log: >> MFC r292706: >> >> Implementation of server-side TCP Fast Open (TFO) [RFC7413]. >> >> TFO is disabled by default in the kernel build. See the top comment >> in sys/netinet/tcp_fastopen.c for implementation particulars. > > Why it is disabled by default? Do we need some rc.conf knobs to not deal > directly with it, like tcp_extensions? OMG, why it is kernel config and > not boot-time sysctl? > BTW, TCP_RFC7413_MAX_KEYS currently unused and I have no clues what it supposed to be. I can't find it in the phabric patch at all. -- http://ache.vniz.net/ From owner-svn-src-all@freebsd.org Mon Dec 28 03:26:17 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F15B3A4DA42; Mon, 28 Dec 2015 03:26:17 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C0CBF1F67; Mon, 28 Dec 2015 03:26:17 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS3QG7I022033; Mon, 28 Dec 2015 03:26:16 GMT (envelope-from ume@FreeBSD.org) Received: (from ume@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS3QGms022032; Mon, 28 Dec 2015 03:26:16 GMT (envelope-from ume@FreeBSD.org) Message-Id: <201512280326.tBS3QGms022032@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ume set sender to ume@FreeBSD.org using -f From: Hajimu UMEMOTO Date: Mon, 28 Dec 2015 03:26:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292824 - stable/10/lib/libc/net X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:26:18 -0000 Author: ume Date: Mon Dec 28 03:26:16 2015 New Revision: 292824 URL: https://svnweb.freebsd.org/changeset/base/292824 Log: MFC r292539: If we end up following a CNAME chain that does not find any data return that instead of internal error. PR: 156684 Modified: stable/10/lib/libc/net/getaddrinfo.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/net/getaddrinfo.c ============================================================================== --- stable/10/lib/libc/net/getaddrinfo.c Mon Dec 28 02:43:12 2015 (r292823) +++ stable/10/lib/libc/net/getaddrinfo.c Mon Dec 28 03:26:16 2015 (r292824) @@ -2166,7 +2166,11 @@ getanswer(const querybuf *answer, int an return sentinel.ai_next; } - RES_SET_H_ERRNO(res, NO_RECOVERY); + /* + * We could have walked a CNAME chain, but the ultimate target + * may not have what we looked for. + */ + RES_SET_H_ERRNO(res, ntohs(hp->ancount) > 0 ? NO_DATA : NO_RECOVERY); return NULL; } @@ -2343,6 +2347,7 @@ _dns_getaddrinfo(void *rv, void *cb_data if (sentinel.ai_next == NULL) switch (res->res_h_errno) { case HOST_NOT_FOUND: + case NO_DATA: return NS_NOTFOUND; case TRY_AGAIN: return NS_TRYAGAIN; From owner-svn-src-all@freebsd.org Mon Dec 28 03:27:52 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8EAB7A4DB29; Mon, 28 Dec 2015 03:27:52 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5FCF5110F; Mon, 28 Dec 2015 03:27:52 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS3Rpla022199; Mon, 28 Dec 2015 03:27:51 GMT (envelope-from ume@FreeBSD.org) Received: (from ume@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS3RpEf022198; Mon, 28 Dec 2015 03:27:51 GMT (envelope-from ume@FreeBSD.org) Message-Id: <201512280327.tBS3RpEf022198@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ume set sender to ume@FreeBSD.org using -f From: Hajimu UMEMOTO Date: Mon, 28 Dec 2015 03:27:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292825 - stable/9/lib/libc/net X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:27:52 -0000 Author: ume Date: Mon Dec 28 03:27:51 2015 New Revision: 292825 URL: https://svnweb.freebsd.org/changeset/base/292825 Log: MFC r292539: If we end up following a CNAME chain that does not find any data return that instead of internal error. PR: 156684 Modified: stable/9/lib/libc/net/getaddrinfo.c Directory Properties: stable/9/lib/libc/ (props changed) Modified: stable/9/lib/libc/net/getaddrinfo.c ============================================================================== --- stable/9/lib/libc/net/getaddrinfo.c Mon Dec 28 03:26:16 2015 (r292824) +++ stable/9/lib/libc/net/getaddrinfo.c Mon Dec 28 03:27:51 2015 (r292825) @@ -2161,7 +2161,11 @@ getanswer(const querybuf *answer, int an return sentinel.ai_next; } - RES_SET_H_ERRNO(res, NO_RECOVERY); + /* + * We could have walked a CNAME chain, but the ultimate target + * may not have what we looked for. + */ + RES_SET_H_ERRNO(res, ntohs(hp->ancount) > 0 ? NO_DATA : NO_RECOVERY); return NULL; } @@ -2338,6 +2342,7 @@ _dns_getaddrinfo(void *rv, void *cb_data if (sentinel.ai_next == NULL) switch (res->res_h_errno) { case HOST_NOT_FOUND: + case NO_DATA: return NS_NOTFOUND; case TRY_AGAIN: return NS_TRYAGAIN; From owner-svn-src-all@freebsd.org Mon Dec 28 03:29:31 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 33A82A4DC2D for ; Mon, 28 Dec 2015 03:29:31 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: from mail-lf0-f46.google.com (mail-lf0-f46.google.com [209.85.215.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BD21612D0 for ; Mon, 28 Dec 2015 03:29:30 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: by mail-lf0-f46.google.com with SMTP id z124so187568821lfa.3 for ; Sun, 27 Dec 2015 19:29:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=Q9qQN8oVe5w6bqtFvfo44IbjG5C1UyHL3oqdOKvAI1k=; b=aZLOx7mCMjJUqqJT16ORVUzCijJTms/kc4yHEj7OtohXCZ8c0vErtF71q2x938mHMF W2LNVlWJAWd0kncCpnGUScZeau9IiDbWPoQ8Owd0AxOocVQ5V4F6kw0byt48J+1AG5KQ fUDdyOdtT65xGCzQnADpQBkH3aEnj7oVCVsa/OoVMXRzR+/EmUBTfE2bq6Db4KHj4oEa PvFfDXnG/xlLndfzf3ZaGowHIAaY0kc2QSJtGWPdu0GOIBpNwCKI5/DIkg0amFahUKW0 9nQwqx2eTF8AKzkFCtFlOC+ekShOwV/OVUCBQjVAozPrbSUBAU50pam255+MxfTQonua EyJA== X-Gm-Message-State: ALoCoQn3ueGV78+KeeWWSp305y6w7uHfxUJEr1+x+PD71kJJW6wCTnTcA3dLcqln39UUhPqTUNNhrrgvXypFA/2Rolt9hNIWHQ== X-Received: by 10.25.31.210 with SMTP id f201mr18416954lff.6.1451271541880; Sun, 27 Dec 2015 18:59:01 -0800 (PST) Received: from [192.168.1.2] ([89.169.173.68]) by smtp.gmail.com with ESMTPSA id eb3sm4526157lbc.31.2015.12.27.18.59.00 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 27 Dec 2015 18:59:01 -0800 (PST) Subject: Re: svn commit: r292823 - in stable/10/sys: conf netinet To: Patrick Kelsey , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org References: <201512280243.tBS2hD7X008202@repo.freebsd.org> From: Andrey Chernov X-Enigmail-Draft-Status: N1110 Message-ID: <5680A574.9050002@freebsd.org> Date: Mon, 28 Dec 2015 05:59:00 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <201512280243.tBS2hD7X008202@repo.freebsd.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:29:31 -0000 On 28.12.2015 5:43, Patrick Kelsey wrote: > Author: pkelsey > Date: Mon Dec 28 02:43:12 2015 > New Revision: 292823 > URL: https://svnweb.freebsd.org/changeset/base/292823 > > Log: > MFC r292706: > > Implementation of server-side TCP Fast Open (TFO) [RFC7413]. > > TFO is disabled by default in the kernel build. See the top comment > in sys/netinet/tcp_fastopen.c for implementation particulars. Why it is disabled by default? Do we need some rc.conf knobs to not deal directly with it, like tcp_extensions? OMG, why it is kernel config and not boot-time sysctl? -- http://ache.vniz.net/ From owner-svn-src-all@freebsd.org Mon Dec 28 03:33:00 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B2376A4DE0B for ; Mon, 28 Dec 2015 03:33:00 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: from mail-lf0-f44.google.com (mail-lf0-f44.google.com [209.85.215.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 467C41761 for ; Mon, 28 Dec 2015 03:33:00 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: by mail-lf0-f44.google.com with SMTP id c192so16084270lfe.2 for ; Sun, 27 Dec 2015 19:32:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=AFSA7EmaPpr1+27fyUJB8IrUvyq7Iz8MaiR/MPuKq3A=; b=Jxg3vFUAv7JIBbnbRiW/mSDN7GfbCAEoXRedOy8mp5+bSIAehWdJospgAQM7Q4u8MG zkcHlbhMbuKeVzOxeaQQmH1g2FbcXGrxCMVXcET+4U+0CK7ERQpHfkoV6nWkUJ1NBqjZ x9fImlw4JXGXfLMK9fXINc9WebhhsTLqif4DQkoAga6DJdv9yCZo6oPaD2LqMnNZHO7e Um/L43UXcmWTUtTRM2qRUE0PyUwWcbA9Mq57nL9lMCSckSDcKrONWW7IQagWo2ntZlrW 1R2OWKnO2nBZFXBgPd4KVi5HUe/CmndH7B5PAx8rjqwDuRowECr7ESqYvXDpnbfOMgKE j2lw== X-Gm-Message-State: ALoCoQkvkY2znAF6R2S8/OpIYZ4DFNRE3wAMR0J5erg5gVGqK4bTwdJVqApLASFGedZz9xPoxOWQJLkz2bhk/hjaWZk9nMlcuQ== X-Received: by 10.25.213.134 with SMTP id m128mr14943186lfg.87.1451273174895; Sun, 27 Dec 2015 19:26:14 -0800 (PST) Received: from [192.168.1.2] ([89.169.173.68]) by smtp.gmail.com with ESMTPSA id m21sm3432031lfe.29.2015.12.27.19.26.14 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 27 Dec 2015 19:26:14 -0800 (PST) Subject: Re: svn commit: r292823 - in stable/10/sys: conf netinet To: Patrick Kelsey References: <201512280243.tBS2hD7X008202@repo.freebsd.org> <5680A574.9050002@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org From: Andrey Chernov Message-ID: <5680ABD5.7030206@freebsd.org> Date: Mon, 28 Dec 2015 06:26:13 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:33:00 -0000 On 28.12.2015 6:15, Patrick Kelsey wrote: > This is explained in the top comment in sys/netinet/tcp_fastopen.c, but > I will repeat it here and elaborate a little. It is disabled by default > in the kernel build as a conservative measure until it is exercised more > widely, given the modifications it introduces to the TCP state machine > code, syncache code, etc. When you do enable it in the kernel build > (and after some point in the future when it is enabled by default), > there is still a sysctl that governs its availability in the system that > must be enabled before it can be used. > > -Patrick Thanx, if I understand it correctly, is not ready for real use yet but just for experiments. See my other comment about TCP_RFC7413_MAX_KEYS -- http://ache.vniz.net/ From owner-svn-src-all@freebsd.org Mon Dec 28 03:36:46 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3FE31A4DF55; Mon, 28 Dec 2015 03:36:46 +0000 (UTC) (envelope-from pkelsey@gmail.com) Received: from mail-qg0-x235.google.com (mail-qg0-x235.google.com [IPv6:2607:f8b0:400d:c04::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 013011807; Mon, 28 Dec 2015 03:36:46 +0000 (UTC) (envelope-from pkelsey@gmail.com) Received: by mail-qg0-x235.google.com with SMTP id e32so48859709qgf.3; Sun, 27 Dec 2015 19:36:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=yd+PvmQ1RImY4hKImjC0X/LWJWJOx8a6utP0PjdQzhk=; b=nMv08CWXqztApw86NXOVLyJMkDYfE0MxA/pek/Y7/0PjugcR+WhM7vV8ViD9yqTYFf CcaVdRNEB47Q0MkBq4BEFPohiu+1T/aHidJqemmJTtvjDnin8S2WsZf++m40Ez4N41uX 7DNP6Yp5yGkSLmfIhZa558xGY63kUwB9E1SbLzZmSK24ZqEw9W4H/gxKgtEvoL3XsfZD qs90UNegr/RauNA9IBOyZ+4kPJ0xxX4yBgcR0P3lZJG5poDTTOSdsrcKln81ib2elqLn ynEcA8VPYWGkU7jFK2wSgYBYnPTWJMsr4+ElpGDA6/txZT2s4SOzmrHqUbk7SqiShSSl F3eQ== X-Received: by 10.141.28.149 with SMTP id f143mr71321414qhe.66.1451273804830; Sun, 27 Dec 2015 19:36:44 -0800 (PST) Received: from [172.16.0.133] (c-174-59-104-177.hsd1.pa.comcast.net. [174.59.104.177]) by smtp.gmail.com with ESMTPSA id p17sm26430122qhb.34.2015.12.27.19.36.44 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 27 Dec 2015 19:36:44 -0800 (PST) Sender: Patrick Kelsey Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r292823 - in stable/10/sys: conf netinet From: Patrick Kelsey X-Mailer: iPhone Mail (13C75) In-Reply-To: <5680A991.5040301@freebsd.org> Date: Sun, 27 Dec 2015 22:36:43 -0500 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <0087B045-F70E-4CF5-A1B7-5B421926BB5A@freebsd.org> References: <201512280243.tBS2hD7X008202@repo.freebsd.org> <5680A574.9050002@freebsd.org> <5680A991.5040301@freebsd.org> To: Andrey Chernov X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:36:46 -0000 > On Dec 27, 2015, at 10:16 PM, Andrey Chernov wrote: >=20 >> On 28.12.2015 5:59, Andrey Chernov wrote: >>> On 28.12.2015 5:43, Patrick Kelsey wrote: >>> Author: pkelsey >>> Date: Mon Dec 28 02:43:12 2015 >>> New Revision: 292823 >>> URL: https://svnweb.freebsd.org/changeset/base/292823 >>>=20 >>> Log: >>> MFC r292706: >>>=20 >>> Implementation of server-side TCP Fast Open (TFO) [RFC7413]. >>>=20 >>> TFO is disabled by default in the kernel build. See the top comment >>> in sys/netinet/tcp_fastopen.c for implementation particulars. >>=20 >> Why it is disabled by default? Do we need some rc.conf knobs to not deal >> directly with it, like tcp_extensions? OMG, why it is kernel config and >> not boot-time sysctl? >=20 > BTW, TCP_RFC7413_MAX_KEYS currently unused and I have no clues what it > supposed to be. I can't find it in the phabric patch at all. >=20 Look at line 127 in tcp_fastopen.c. Also, read the top comment in tcp_fasto= pen.c. Phabricator is buggy and unreliable, and using it as a primary reference to t= he code will let you down as it has let me down, repeatedly. For example, i= t will not show you the contents of entirely new files unless you manually u= pload them - I believe this what is currently affecting your viewpoint. -Patrick= From owner-svn-src-all@freebsd.org Mon Dec 28 03:37:14 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C14C9A4DFCD; Mon, 28 Dec 2015 03:37:14 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8F5C8199E; Mon, 28 Dec 2015 03:37:14 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS3bDcP025470; Mon, 28 Dec 2015 03:37:13 GMT (envelope-from ume@FreeBSD.org) Received: (from ume@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS3bDEV025468; Mon, 28 Dec 2015 03:37:13 GMT (envelope-from ume@FreeBSD.org) Message-Id: <201512280337.tBS3bDEV025468@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ume set sender to ume@FreeBSD.org using -f From: Hajimu UMEMOTO Date: Mon, 28 Dec 2015 03:37:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292826 - stable/10/lib/libc/net X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:37:14 -0000 Author: ume Date: Mon Dec 28 03:37:13 2015 New Revision: 292826 URL: https://svnweb.freebsd.org/changeset/base/292826 Log: MFC r292445, r292554: Use _map_v4v6_address(). Modified: stable/10/lib/libc/net/getaddrinfo.c stable/10/lib/libc/net/name6.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/net/getaddrinfo.c ============================================================================== --- stable/10/lib/libc/net/getaddrinfo.c Mon Dec 28 03:27:51 2015 (r292825) +++ stable/10/lib/libc/net/getaddrinfo.c Mon Dec 28 03:37:13 2015 (r292826) @@ -778,10 +778,9 @@ match_addrselectpolicy(struct sockaddr * memset(&key, 0, sizeof(key)); key.sin6_family = AF_INET6; key.sin6_len = sizeof(key); - key.sin6_addr.s6_addr[10] = 0xff; - key.sin6_addr.s6_addr[11] = 0xff; - memcpy(&key.sin6_addr.s6_addr[12], - &((struct sockaddr_in *)addr)->sin_addr, 4); + _map_v4v6_address( + (char *)&((struct sockaddr_in *)addr)->sin_addr, + (char *)&key.sin6_addr); break; default: return(NULL); Modified: stable/10/lib/libc/net/name6.c ============================================================================== --- stable/10/lib/libc/net/name6.c Mon Dec 28 03:27:51 2015 (r292825) +++ stable/10/lib/libc/net/name6.c Mon Dec 28 03:37:13 2015 (r292826) @@ -795,10 +795,9 @@ match_addrselectpolicy(struct sockaddr * memset(&key, 0, sizeof(key)); key.sin6_family = AF_INET6; key.sin6_len = sizeof(key); - key.sin6_addr.s6_addr[10] = 0xff; - key.sin6_addr.s6_addr[11] = 0xff; - memcpy(&key.sin6_addr.s6_addr[12], - &((struct sockaddr_in *)addr)->sin_addr, 4); + _map_v4v6_address( + (char *)&((struct sockaddr_in *)addr)->sin_addr, + (char *)&key.sin6_addr); break; default: return(NULL); From owner-svn-src-all@freebsd.org Mon Dec 28 03:39:33 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6C9BEA520BE; Mon, 28 Dec 2015 03:39:33 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3F2031B04; Mon, 28 Dec 2015 03:39:33 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS3dW12025685; Mon, 28 Dec 2015 03:39:32 GMT (envelope-from ume@FreeBSD.org) Received: (from ume@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS3dWnV025683; Mon, 28 Dec 2015 03:39:32 GMT (envelope-from ume@FreeBSD.org) Message-Id: <201512280339.tBS3dWnV025683@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ume set sender to ume@FreeBSD.org using -f From: Hajimu UMEMOTO Date: Mon, 28 Dec 2015 03:39:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292827 - stable/9/lib/libc/net X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:39:33 -0000 Author: ume Date: Mon Dec 28 03:39:32 2015 New Revision: 292827 URL: https://svnweb.freebsd.org/changeset/base/292827 Log: MFC r292445, r292554: Use _map_v4v6_address(). Modified: stable/9/lib/libc/net/getaddrinfo.c stable/9/lib/libc/net/name6.c Directory Properties: stable/9/lib/libc/ (props changed) Modified: stable/9/lib/libc/net/getaddrinfo.c ============================================================================== --- stable/9/lib/libc/net/getaddrinfo.c Mon Dec 28 03:37:13 2015 (r292826) +++ stable/9/lib/libc/net/getaddrinfo.c Mon Dec 28 03:39:32 2015 (r292827) @@ -777,10 +777,9 @@ match_addrselectpolicy(struct sockaddr * memset(&key, 0, sizeof(key)); key.sin6_family = AF_INET6; key.sin6_len = sizeof(key); - key.sin6_addr.s6_addr[10] = 0xff; - key.sin6_addr.s6_addr[11] = 0xff; - memcpy(&key.sin6_addr.s6_addr[12], - &((struct sockaddr_in *)addr)->sin_addr, 4); + _map_v4v6_address( + (char *)&((struct sockaddr_in *)addr)->sin_addr, + (char *)&key.sin6_addr); break; default: return(NULL); Modified: stable/9/lib/libc/net/name6.c ============================================================================== --- stable/9/lib/libc/net/name6.c Mon Dec 28 03:37:13 2015 (r292826) +++ stable/9/lib/libc/net/name6.c Mon Dec 28 03:39:32 2015 (r292827) @@ -799,10 +799,9 @@ match_addrselectpolicy(struct sockaddr * memset(&key, 0, sizeof(key)); key.sin6_family = AF_INET6; key.sin6_len = sizeof(key); - key.sin6_addr.s6_addr[10] = 0xff; - key.sin6_addr.s6_addr[11] = 0xff; - memcpy(&key.sin6_addr.s6_addr[12], - &((struct sockaddr_in *)addr)->sin_addr, 4); + _map_v4v6_address( + (char *)&((struct sockaddr_in *)addr)->sin_addr, + (char *)&key.sin6_addr); break; default: return(NULL); From owner-svn-src-all@freebsd.org Mon Dec 28 03:45:08 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 42A68A52299 for ; Mon, 28 Dec 2015 03:45:08 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: from mail-lb0-f172.google.com (mail-lb0-f172.google.com [209.85.217.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D87A11E98 for ; Mon, 28 Dec 2015 03:45:07 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: by mail-lb0-f172.google.com with SMTP id oh2so86365685lbb.3 for ; Sun, 27 Dec 2015 19:45:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=fvb8vcSHtdCggwOgOQODgtq5JOVm5ivKjpuOO0ErXEI=; b=An6G1h5Vo0QREGxjFWJ+PL6kMts/ytunQN+s9EPnEpUGkH4Q82YyeJvYTpAsT//F3w Mi9PRrKbC4cYe34Y0xZEpzS/bUtaV2Fjq4jFHyUcuGbsnZV0wArVl7UKxVyzVK39XMV3 ryRY8CowxNaveR+kA32HtiAZOOf5JcSLYu+/8ecHbRwIOnsGtOosSxnTf6oNtUGDhHS+ YXXyEgmcAefLhoAT6f26I9/W7uQ+IxG3S38xBQiFdDKkfUWv0aw1S8ue+go2se84wMaK SY97EVC2A/SlE/RJKgkXkQYK/nN/bryi5aQfU7y1svY3/kYopSc1eoLl6FbliZ35qpVq FteA== X-Gm-Message-State: ALoCoQlVXtsNUP28Wz8eIRBAFx8GLFJ0xd/nTDslV8aUKNPDEYxeOR3YkNnfb3Jkj5bQ20U55B6GPGCp9g5IZKX45oG+QJfLew== X-Received: by 10.112.140.166 with SMTP id rh6mr18488828lbb.77.1451274306047; Sun, 27 Dec 2015 19:45:06 -0800 (PST) Received: from [192.168.1.2] ([89.169.173.68]) by smtp.gmail.com with ESMTPSA id q8sm10112173lbr.1.2015.12.27.19.45.05 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 27 Dec 2015 19:45:05 -0800 (PST) Subject: Re: svn commit: r292823 - in stable/10/sys: conf netinet To: Patrick Kelsey References: <201512280243.tBS2hD7X008202@repo.freebsd.org> <5680A574.9050002@freebsd.org> <5680A991.5040301@freebsd.org> <0087B045-F70E-4CF5-A1B7-5B421926BB5A@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org From: Andrey Chernov Message-ID: <5680B040.40106@freebsd.org> Date: Mon, 28 Dec 2015 06:45:04 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <0087B045-F70E-4CF5-A1B7-5B421926BB5A@freebsd.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:45:08 -0000 On 28.12.2015 6:36, Patrick Kelsey wrote: > > >> On Dec 27, 2015, at 10:16 PM, Andrey Chernov wrote: >> >>> On 28.12.2015 5:59, Andrey Chernov wrote: >>>> On 28.12.2015 5:43, Patrick Kelsey wrote: >>>> Author: pkelsey >>>> Date: Mon Dec 28 02:43:12 2015 >>>> New Revision: 292823 >>>> URL: https://svnweb.freebsd.org/changeset/base/292823 >>>> >>>> Log: >>>> MFC r292706: >>>> >>>> Implementation of server-side TCP Fast Open (TFO) [RFC7413]. >>>> >>>> TFO is disabled by default in the kernel build. See the top comment >>>> in sys/netinet/tcp_fastopen.c for implementation particulars. >>> >>> Why it is disabled by default? Do we need some rc.conf knobs to not deal >>> directly with it, like tcp_extensions? OMG, why it is kernel config and >>> not boot-time sysctl? >> >> BTW, TCP_RFC7413_MAX_KEYS currently unused and I have no clues what it >> supposed to be. I can't find it in the phabric patch at all. >> > > Look at line 127 in tcp_fastopen.c. Also, read the top comment in tcp_fastopen.c. > > Phabricator is buggy and unreliable, and using it as a primary reference to the code will let you down as it has let me down, repeatedly. For example, it will not show you the contents of entirely new files unless you manually upload them - I believe this what is currently affecting your viewpoint. Ok, thanx, I see now, sorry phabricator confuses me at this point. Someone should fix it to avoid such things. -- http://ache.vniz.net/ From owner-svn-src-all@freebsd.org Mon Dec 28 03:45:42 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 204B6A5230C; Mon, 28 Dec 2015 03:45:42 +0000 (UTC) (envelope-from pkelsey@gmail.com) Received: from mail-qk0-x22e.google.com (mail-qk0-x22e.google.com [IPv6:2607:f8b0:400d:c09::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D53871EF9; Mon, 28 Dec 2015 03:45:41 +0000 (UTC) (envelope-from pkelsey@gmail.com) Received: by mail-qk0-x22e.google.com with SMTP id k189so192234934qkc.0; Sun, 27 Dec 2015 19:45:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=zxS82ymUfGhvlvOOtC7lW326GKP8kddpBsx/TDsLCUE=; b=y1Zp+ZpZpJSFRHH6J2rgJKdE35xioLABNJrha5veUoajNJHsx6imKlw/psGMabNDIm FIt00l19tBEZVvZ+IBX7ev+2EWPKuFfWujtY6IDzP/RgxmqrGKSG1Oorl0EMiHtN7a4f HUeCWn4J+MmeAMUVk1zHqSdHp7+nkSoNvl8d4TeS7PhcUrl8D2mMEr2tThIw3owjaT4s 7jDEUULJDN8Io8U/gBokmSr0VfXr+oKvCEnJKryC3F3DDhv3Rt7ijHOlxAcjvBm1aL7N IPCZKiAsdDxEja9bgMiOM9agmJuutMxDwuYAubKL7lg0l5VCzX0OM+MzSNMiyttWx/zk /k+Q== X-Received: by 10.55.73.74 with SMTP id w71mr68909099qka.60.1451274340888; Sun, 27 Dec 2015 19:45:40 -0800 (PST) Received: from [172.16.0.133] (c-174-59-104-177.hsd1.pa.comcast.net. [174.59.104.177]) by smtp.gmail.com with ESMTPSA id x76sm26462315qhb.48.2015.12.27.19.45.40 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 27 Dec 2015 19:45:40 -0800 (PST) Sender: Patrick Kelsey Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r292823 - in stable/10/sys: conf netinet From: Patrick Kelsey X-Mailer: iPhone Mail (13C75) In-Reply-To: <5680ABD5.7030206@freebsd.org> Date: Sun, 27 Dec 2015 22:45:39 -0500 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201512280243.tBS2hD7X008202@repo.freebsd.org> <5680A574.9050002@freebsd.org> <5680ABD5.7030206@freebsd.org> To: Andrey Chernov X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 03:45:42 -0000 > On Dec 27, 2015, at 10:26 PM, Andrey Chernov wrote: >=20 >> On 28.12.2015 6:15, Patrick Kelsey wrote: >> This is explained in the top comment in sys/netinet/tcp_fastopen.c, but >> I will repeat it here and elaborate a little. It is disabled by default >> in the kernel build as a conservative measure until it is exercised more >> widely, given the modifications it introduces to the TCP state machine >> code, syncache code, etc. When you do enable it in the kernel build >> (and after some point in the future when it is enabled by default), >> there is still a sysctl that governs its availability in the system that >> must be enabled before it can be used. >>=20 >> -Patrick >=20 > Thanx, if I understand it correctly, is not ready for real use yet but > just for experiments. See my other comment about TCP_RFC7413_MAX_KEYS >=20 It is a serious implementation that is believed to be complete, however I d= o not see much evidence that TFO is currently widely deployed and used*, and= I consider the changes I made to the rest of the TCP stack, which is widely= deployed and used, to be intrusive enough to warrant being conservative in p= utting these changes into the default kernel build at this point. I responded to your other message regarding TCP_RFC7413_MAX_KEYS. -Patrick *For example, the current Linux TFO client appears to be surprisingly weak i= n that it does not ACK data in a TFO SYN|ACK, forcing a retransmit of fast T= FO server responses, which kind of defeats the purpose.= From owner-svn-src-all@freebsd.org Mon Dec 28 04:06:26 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C91F5A52826 for ; Mon, 28 Dec 2015 04:06:26 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: from mail-lf0-f41.google.com (mail-lf0-f41.google.com [209.85.215.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8273217F6 for ; Mon, 28 Dec 2015 04:06:26 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: by mail-lf0-f41.google.com with SMTP id y184so192437609lfc.1 for ; Sun, 27 Dec 2015 20:06:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=IVRgJsuxwARE5nwvIahxEhYUS9OVkWyoLPNMPwHT/Eo=; b=cFQ/oDCVD3w6ZdSJhPIf76RAYr1bSjmz/dsQqr6kN95YkuxZvx0Iv2xbghAeD6xeaY QUa6XWjWLvHyp6sLF7U18LnD0VOt+PWyq9OfpIrjUx9k5er/p4oVWVJHpfYNz1TqCfMy gNCu87HWDUS1piMlXuUOKJ/kCW3xdSTiOXiQ6XUXdZUNaC00XOfRUK/cNIsEJ+VUx2lg jUW2cgUQhBSJGAKWy7VnAJCiV4vMKuPMN8IB4ckK+ereat7u3uIAM8SHDAXcgMGKqwIx tDtEtAZ/pIl3TiQqOWkBXriUsBA4pucQYpcoyG5I4p46kWNgby2AbX3XqiNQ01u/49Ua MGaw== X-Gm-Message-State: ALoCoQmwEn91nLG13ueq5m31w+5Sm0RbxjK/URfEj6+f2sYjA2xywDR7QQsQK2uQVONLplR07UtnrsAHAlCdA3sM2YzwxcFGUg== X-Received: by 10.25.165.133 with SMTP id o127mr9385380lfe.105.1451275584489; Sun, 27 Dec 2015 20:06:24 -0800 (PST) Received: from [192.168.1.2] ([89.169.173.68]) by smtp.gmail.com with ESMTPSA id p138sm6847431lfb.22.2015.12.27.20.06.23 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 27 Dec 2015 20:06:23 -0800 (PST) Subject: Re: svn commit: r292823 - in stable/10/sys: conf netinet To: Patrick Kelsey References: <201512280243.tBS2hD7X008202@repo.freebsd.org> <5680A574.9050002@freebsd.org> <5680ABD5.7030206@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org From: Andrey Chernov X-Enigmail-Draft-Status: N1110 Message-ID: <5680B53F.9040903@freebsd.org> Date: Mon, 28 Dec 2015 07:06:23 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 04:06:27 -0000 On 28.12.2015 6:45, Patrick Kelsey wrote: >> On Dec 27, 2015, at 10:26 PM, Andrey Chernov wrote: >> >>> On 28.12.2015 6:15, Patrick Kelsey wrote: >>> This is explained in the top comment in sys/netinet/tcp_fastopen.c, but >>> I will repeat it here and elaborate a little. It is disabled by default >>> in the kernel build as a conservative measure until it is exercised more >>> widely, given the modifications it introduces to the TCP state machine >>> code, syncache code, etc. When you do enable it in the kernel build >>> (and after some point in the future when it is enabled by default), >>> there is still a sysctl that governs its availability in the system that >>> must be enabled before it can be used. >>> >>> -Patrick >> >> Thanx, if I understand it correctly, is not ready for real use yet but >> just for experiments. See my other comment about TCP_RFC7413_MAX_KEYS >> > > It is a serious implementation that is believed to be complete, however I do not see much evidence that TFO is currently widely deployed and used*, and I consider the changes I made to the rest of the TCP stack, which is widely deployed and used, to be intrusive enough to warrant being conservative in putting these changes into the default kernel build at this point. > > *For example, the current Linux TFO client appears to be surprisingly > weak in that it does not ACK data in a TFO SYN|ACK, forcing a > retransmit of fast TFO server responses, which kind of defeats the > purpose. RFC7413 sounds very promising. Should we wait until Linux fix its bug you mention or just go further having TFO at least for FreeBSD machines on some internal net? If the second case is preferred by others, IMHO it will be better to control it via sysctl compiled in by default, controlled by rc.conf on the upper level. I don't see too much code added to make sufficient size bloat. -- http://ache.vniz.net/ From owner-svn-src-all@freebsd.org Mon Dec 28 05:48:23 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81845A5237A; Mon, 28 Dec 2015 05:48:23 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 545081575; Mon, 28 Dec 2015 05:48:23 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS5mMLH065527; Mon, 28 Dec 2015 05:48:22 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS5mMNe065526; Mon, 28 Dec 2015 05:48:22 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201512280548.tBS5mMNe065526@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Mon, 28 Dec 2015 05:48:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292828 - head/usr.sbin/pwd_mkdb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 05:48:23 -0000 Author: araujo Date: Mon Dec 28 05:48:22 2015 New Revision: 292828 URL: https://svnweb.freebsd.org/changeset/base/292828 Log: The sdp opens the database with PERM_SECURE mode and it is different than dp that opens the database with PERM_INSECURE, so we need to check sdp->put against sdp instead of use dp->put. PR: bin/191720 Submitted by: Miles Ohlrich Approved by: rodrigc (mentor) Differential Revision: https://reviews.freebsd.org/D4255 Modified: head/usr.sbin/pwd_mkdb/pwd_mkdb.c Modified: head/usr.sbin/pwd_mkdb/pwd_mkdb.c ============================================================================== --- head/usr.sbin/pwd_mkdb/pwd_mkdb.c Mon Dec 28 03:39:32 2015 (r292827) +++ head/usr.sbin/pwd_mkdb/pwd_mkdb.c Mon Dec 28 05:48:22 2015 (r292828) @@ -352,7 +352,7 @@ main(int argc, char *argv[]) data.size = 1; if ((dp->put)(dp, &key, &data, 0) == -1) error("put"); - if ((dp->put)(sdp, &key, &data, 0) == -1) + if ((sdp->put)(sdp, &key, &data, 0) == -1) error("put"); } ypcnt = 0; From owner-svn-src-all@freebsd.org Mon Dec 28 06:07:01 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E613A52A03; Mon, 28 Dec 2015 06:07:01 +0000 (UTC) (envelope-from pkelsey@gmail.com) Received: from mail-qg0-x22c.google.com (mail-qg0-x22c.google.com [IPv6:2607:f8b0:400d:c04::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3037F1CEA; Mon, 28 Dec 2015 06:07:01 +0000 (UTC) (envelope-from pkelsey@gmail.com) Received: by mail-qg0-x22c.google.com with SMTP id o11so141736601qge.2; Sun, 27 Dec 2015 22:07:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=oTRTSvqBcb39oL5q1JLnps574eIdZXB7NMV481Q0Mao=; b=Ujmp7qMSEjxvL5iJgtLlkQMqwheIe0E26VpqN08if0tyCswZELCR5zla6ZENPq9RYI cU3fGOAYzYENMI6v96XUUsTNWTvLAJK3/W0pnD6yIaB87JO86lHNQRpcI7AQZ0ZEebQM YtwvJTS9aPS5zQYGh9ZNA3t2teurdjLDFfHldmTGovki4/GBr53l9WfKsCDc3msQHSGU AKUK44sxZstLVfdekXH9OAUhaJPGGB5xhcP+6YolfENxyHZe6mIHM0ASScs/5d/TMQ1M edb5c/B7S/KJEkw/U4vX/1aT0mUtIi4+iQRzOQBf+Usz/GJw5hFMkF7qJGNj/RFtxXMl p0eQ== X-Received: by 10.140.17.213 with SMTP id 79mr68887794qgd.49.1451282820279; Sun, 27 Dec 2015 22:07:00 -0800 (PST) Received: from [172.16.0.133] (c-174-59-104-177.hsd1.pa.comcast.net. [174.59.104.177]) by smtp.gmail.com with ESMTPSA id d6sm26912182qkb.13.2015.12.27.22.06.59 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 27 Dec 2015 22:06:59 -0800 (PST) Sender: Patrick Kelsey Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r292823 - in stable/10/sys: conf netinet From: Patrick Kelsey X-Mailer: iPhone Mail (13C75) In-Reply-To: <5680B53F.9040903@freebsd.org> Date: Mon, 28 Dec 2015 01:06:59 -0500 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <0E5C9BC6-F52E-45F6-A3F7-CCED1BD0F8C7@freebsd.org> References: <201512280243.tBS2hD7X008202@repo.freebsd.org> <5680A574.9050002@freebsd.org> <5680ABD5.7030206@freebsd.org> <5680B53F.9040903@freebsd.org> To: Andrey Chernov X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 06:07:01 -0000 > On Dec 27, 2015, at 11:06 PM, Andrey Chernov wrote: >=20 > On 28.12.2015 6:45, Patrick Kelsey wrote: >>> On Dec 27, 2015, at 10:26 PM, Andrey Chernov wrote: >>>=20 >>>> On 28.12.2015 6:15, Patrick Kelsey wrote: >>>> This is explained in the top comment in sys/netinet/tcp_fastopen.c, but= >>>> I will repeat it here and elaborate a little. It is disabled by defaul= t >>>> in the kernel build as a conservative measure until it is exercised mor= e >>>> widely, given the modifications it introduces to the TCP state machine >>>> code, syncache code, etc. When you do enable it in the kernel build >>>> (and after some point in the future when it is enabled by default), >>>> there is still a sysctl that governs its availability in the system tha= t >>>> must be enabled before it can be used. >>>>=20 >>>> -Patrick >>>=20 >>> Thanx, if I understand it correctly, is not ready for real use yet but >>> just for experiments. See my other comment about TCP_RFC7413_MAX_KEYS >>=20 >> It is a serious implementation that is believed to be complete, however I= do not see much evidence that TFO is currently widely deployed and used*, a= nd I consider the changes I made to the rest of the TCP stack, which is wide= ly deployed and used, to be intrusive enough to warrant being conservative i= n putting these changes into the default kernel build at this point. >>=20 >> *For example, the current Linux TFO client appears to be surprisingly >> weak in that it does not ACK data in a TFO SYN|ACK, forcing a >> retransmit of fast TFO server responses, which kind of defeats the >> purpose. >=20 > RFC7413 sounds very promising. Should we wait until Linux fix its bug > you mention or just go further having TFO at least for FreeBSD machines > on some internal net? If the second case is preferred by others, IMHO it > will be better to control it via sysctl compiled in by default, > controlled by rc.conf on the upper level. I don't see too much code > added to make sufficient size bloat. >=20 I don't think it is a matter of waiting for a Linux bug to be fixed - I only= cited this particular bug as something that has colored my thinking as to h= ow much close attention is being paid to TFO at the present time. The Mac O= S X client works better, so it is not really a question of quality clients e= xisting. I have just chosen to be conservative in the initial release of th= is functionality based on my impression that the current audience for it is n= ot very big and my desire for my implementation to see wider testing first. = I do expect the audience for TFO to grow over time and for this implementat= ion to receive wider testing. One thing to consider about RFC7413 that is not always apparent when first l= ooking at it is that it is not a general-purpose speedup that can be applied= transparently for any/all applications. One of the things that can happen w= hen using TFO that cannot happen when using the regular TCP three-way handsh= ake is that packet duplication in the network can result in application-leve= l request duplication. Because of this, TFO is only really suitable for app= lications that have some built-in mitigation for this or otherwise do not ha= ve to care about it. This is discussed in the RFC. Also, in my opinion, when using TFO, one has to accept certain ideas present= ed in the RFC about the relative importance or attractiveness to attackers o= f certain attack vectors that are introduced by TFO, or establish that your p= articular application can otherwise mitigate or tolerate them. Again, this i= s not a general purpose, set-it-and-forget-it kind of TCP performance improv= ement. -Patrick From owner-svn-src-all@freebsd.org Mon Dec 28 07:46:50 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E067BA54857; Mon, 28 Dec 2015 07:46:50 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail110.syd.optusnet.com.au (mail110.syd.optusnet.com.au [211.29.132.97]) by mx1.freebsd.org (Postfix) with ESMTP id ACEA71D0F; Mon, 28 Dec 2015 07:46:50 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail110.syd.optusnet.com.au (Postfix) with ESMTPS id 85DA3781CD9; Mon, 28 Dec 2015 18:21:42 +1100 (AEDT) Date: Mon, 28 Dec 2015 18:21:41 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Marcelo Araujo cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292817 - head/usr.bin/systat In-Reply-To: <201512280207.tBS27vds094913@repo.freebsd.org> Message-ID: <20151228170552.V2375@besplex.bde.org> References: <201512280207.tBS27vds094913@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=R4L+YolX c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=6I5d2MoRAAAA:8 a=7DT2vUWpYU7gVe86gssA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 07:46:51 -0000 On Mon, 28 Dec 2015, Marcelo Araujo wrote: > Log: > Add on systat -vm the ability to display the physical and kernel memory > percent usage. > > PR: bin/203917 > Submitted by: ota > Approved by: bapt (mentor) > Differential Revision: https://reviews.freebsd.org/D4281 This has lots of style bugs in both the output and the source code. There was negative space for expansion, but some space is used to squeeze memory- related variables in between the general stats line and the memory lines. I think they would fit in the general stats line and not look quites as bad there. This line now uses 67 columns and only needs about 50 of these. Style bugs start with not updating the comment about STATROW. It still says that that this (really the STAT window) uses 1 row and 67 columns, but it now uses 2 row. This use is an abuse. It would be clearer to put the new memory statistics in a new window. They don't really fit in tje MEM window either, and putting them there would change all the existing line numbers there. Some other statistics are squeezed into out of the way places and not printed if the terminal is not large enough. nbuf is one of these. Displaying it is not very useful since (like the variables in this commit and unlike almost all the other variables in the display), it is constant. It is also less useful than the variables in this commit. So it is put on line 24 of 0-24 and not displayed unless the terminal has > 25 lines since the last line is reserved for input. I recently noticed that the interrupt lines are misformatted by letting them run into the interactive i/o line (probably also outside the window where they are not displayed of course) if there are many of them. Then if you do input, it makes a mess by erasing the last displayed interrupt line, but not completely. The line is first erased completely, but later the count is refreshed but the description is not. Switching to another display and back gives the same mess, with the description displayed for an instant on switching back before it is erased by info on the i/o line. Bruce From owner-svn-src-all@freebsd.org Mon Dec 28 08:13:27 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3EC53A52205; Mon, 28 Dec 2015 08:13:27 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B21791867; Mon, 28 Dec 2015 08:13:26 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id tBS8DG8O020764 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Mon, 28 Dec 2015 10:13:16 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua tBS8DG8O020764 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id tBS8DDET020763; Mon, 28 Dec 2015 10:13:13 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 28 Dec 2015 10:13:13 +0200 From: Konstantin Belousov To: Bruce Evans Cc: Ian Lepore , Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern Message-ID: <20151228081313.GM3625@kib.kiev.ua> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> <20151228083418.B1014@besplex.bde.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151228083418.B1014@besplex.bde.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 08:13:27 -0000 On Mon, Dec 28, 2015 at 09:35:11AM +1100, Bruce Evans wrote: > If this causes a panic, then it is from a sanity check detecting the > invalid conversion later. A negative value in days breaks the loop > logic but seems to give premature exit from the loops instead of many > iterations. It causes the panic due to out of bound accesses to bin2bcd_data[] array. The issue affects around twenty rtc drivers, according to the quick grep for clock_ts_to_ct() usage. It probably also affects geom raid modules, but I did not looked there at all. As I understand, people prefer to have ability to test practically useless values for the current time, by the cost the unplugged easy kernel panic, in the production systems ? Am I right ? The commit gave the immediate relief for the issue. If somebody have the correct fix for clock_ts_to_ct(), I am happy to see this commit reverted after the proper fix. From owner-svn-src-all@freebsd.org Mon Dec 28 08:33:11 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79C8DA5294E; Mon, 28 Dec 2015 08:33:11 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from forward11p.cmail.yandex.net (forward11p.cmail.yandex.net [IPv6:2a02:6b8:0:1465::bb]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "forwards.mail.yandex.net", Issuer "Yandex CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F0382101F; Mon, 28 Dec 2015 08:33:10 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from smtp17.mail.yandex.net (smtp17.mail.yandex.net [IPv6:2a02:6b8:0:1402::118]) by forward11p.cmail.yandex.net (Yandex) with ESMTP id BB0E4206CB; Mon, 28 Dec 2015 11:33:06 +0300 (MSK) Received: from smtp17.mail.yandex.net (localhost [127.0.0.1]) by smtp17.mail.yandex.net (Yandex) with ESMTP id EF491190126F; Mon, 28 Dec 2015 11:33:05 +0300 (MSK) Received: by smtp17.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id RU7hIds2g2-X5OSukDA; Mon, 28 Dec 2015 11:33:05 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1451291585; bh=4oFjIBctEY4vX6WayVZ5vUpHylTpf6dQ3svgknjPRMo=; h=Subject:To:References:From:X-Enigmail-Draft-Status:Message-ID: Date:User-Agent:MIME-Version:In-Reply-To:Content-Type; b=KyvSS+KsNg0ps3hkrqk7A0KzVssArzN63ZBlCL/PICEjScCPX8RPWinnVFKFLMm94 bcuoOeEZVzaRVIz3eCV1PRtspNxwXzIj8wpcQZ0ad4Zyhj3edl8p7rRTNgXrEAvTn5 exZlJsaK0WrzWG8uczqqJPJTWo37U2ldnJlk5qUw= Authentication-Results: smtp17.mail.yandex.net; dkim=pass header.i=@yandex.ru X-Yandex-ForeignMX: US Subject: Re: svn commit: r292788 - in head/sys: geom/part sys To: Allan Jude , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201512271812.tBRICD3A044563@repo.freebsd.org> From: "Andrey V. Elsukov" X-Enigmail-Draft-Status: N1110 Message-ID: <5680F39D.8070002@yandex.ru> Date: Mon, 28 Dec 2015 11:32:29 +0300 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <201512271812.tBRICD3A044563@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="4BMdNf3VQL6TkIXMpQ3E3ahphsWWW4mJG" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 08:33:11 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --4BMdNf3VQL6TkIXMpQ3E3ahphsWWW4mJG Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 27.12.15 21:12, Allan Jude wrote: > Author: allanjude > Date: Sun Dec 27 18:12:13 2015 > New Revision: 292788 > URL: https://svnweb.freebsd.org/changeset/base/292788 >=20 > Log: > Add some additional GPT partition types > =20 > 4 ChromeOS GPT types > 2 Microsoft partition types > the new OpenBSD partition type > =20 > Modified: head/sys/geom/part/g_part.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/geom/part/g_part.h Sun Dec 27 17:58:58 2015 (r292787) > +++ head/sys/geom/part/g_part.h Sun Dec 27 18:12:13 2015 (r292788) > @@ -37,12 +37,28 @@ > =20 > enum g_part_alias { > G_PART_ALIAS_APPLE_BOOT, /* An Apple boot partition entry. */ > + G_PART_ALIAS_APPLE_CORE_STORAGE,/* An Apple Core Storage partition. *= / > G_PART_ALIAS_APPLE_HFS, /* An HFS+ file system entry. */ > G_PART_ALIAS_APPLE_LABEL, /* An Apple label partition entry. */ > G_PART_ALIAS_APPLE_RAID, /* An Apple RAID partition entry. */ > G_PART_ALIAS_APPLE_RAID_OFFLINE,/* An Apple RAID (offline) part entry= =2E*/ > G_PART_ALIAS_APPLE_TV_RECOVERY, /* An Apple TV recovery part entry. *= / > G_PART_ALIAS_APPLE_UFS, /* An Apple UFS partition entry. */ > + G_PART_ALIAS_BIOS_BOOT, /* A GRUB 2 boot partition entry. */ > + G_PART_ALIAS_CHROMEOS_FIRMWARE, /* A ChromeOS firmware part. entry. *= / > + G_PART_ALIAS_CHROMEOS_KERNEL, /* A ChromeOS Kernel part. entry. */ > + G_PART_ALIAS_CHROMEOS_RESERVED, /* ChromeOS. Reserved for future use.= */ > + G_PART_ALIAS_CHROMEOS_ROOT, /* A ChromeOS root part. entry. */ This enum could be used by third-party kernel module and in general it is not good to change the order of elements here. This can break `gpart show` output for such modules. Just for the future. :) --=20 WBR, Andrey V. Elsukov --4BMdNf3VQL6TkIXMpQ3E3ahphsWWW4mJG Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJWgPOiAAoJEAHF6gQQyKF6VHcH/iqX1TFfGHCE+g1yPDKuUWpV WLpCMb4MtEVk4rhQatauwIAG+65MwJHwN4/D9BvWCYMmUgTyD/B5zBfcTvYPNcCl KCeTqV97Sf2BX9TJfYrtwPPn8RTpzCI1xUdqyyEXN1pPbit6HoKsciwwRVSHAPcP KbWO/J0IsHXokpf5FtvWLeJ8JfD25zIDc3yX4yppcL1NYGgvve5uLyJ/2dYuvQH7 ZDpv40odbYiG8jn8Oolt17xWmjLGcTWVKDrHEAXZf5pZ256s8JFfIQMo90yU9TTF bc7TNIRr+aA57RXEOPPK6wZC/tCav346HwskyYnCjPAbr1ktnEARCq6mt9GAWPU= =Yk1W -----END PGP SIGNATURE----- --4BMdNf3VQL6TkIXMpQ3E3ahphsWWW4mJG-- From owner-svn-src-all@freebsd.org Mon Dec 28 08:53:32 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D71BAA530FA; Mon, 28 Dec 2015 08:53:32 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A833D19E3; Mon, 28 Dec 2015 08:53:32 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS8rVkb022078; Mon, 28 Dec 2015 08:53:31 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS8rVmj022076; Mon, 28 Dec 2015 08:53:31 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201512280853.tBS8rVmj022076@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Mon, 28 Dec 2015 08:53:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292829 - head/usr.sbin/fstyp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 08:53:32 -0000 Author: delphij Date: Mon Dec 28 08:53:31 2015 New Revision: 292829 URL: https://svnweb.freebsd.org/changeset/base/292829 Log: Eliminate unneeded includes. Reviewed by: allanjude Differential Revision: https://reviews.freebsd.org/D4716 Modified: head/usr.sbin/fstyp/fstyp.c head/usr.sbin/fstyp/geli.c Modified: head/usr.sbin/fstyp/fstyp.c ============================================================================== --- head/usr.sbin/fstyp/fstyp.c Mon Dec 28 05:48:22 2015 (r292828) +++ head/usr.sbin/fstyp/fstyp.c Mon Dec 28 08:53:31 2015 (r292829) @@ -39,7 +39,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include Modified: head/usr.sbin/fstyp/geli.c ============================================================================== --- head/usr.sbin/fstyp/geli.c Mon Dec 28 05:48:22 2015 (r292828) +++ head/usr.sbin/fstyp/geli.c Mon Dec 28 08:53:31 2015 (r292829) @@ -29,11 +29,9 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include #include -#include #include From owner-svn-src-all@freebsd.org Mon Dec 28 09:03:30 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73A6DA53765; Mon, 28 Dec 2015 09:03:30 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2B5FB1E6E; Mon, 28 Dec 2015 09:03:30 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS93TQt025010; Mon, 28 Dec 2015 09:03:29 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS93TDU025009; Mon, 28 Dec 2015 09:03:29 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201512280903.tBS93TDU025009@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 28 Dec 2015 09:03:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292830 - stable/10/sys/ufs/ffs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 09:03:30 -0000 Author: kib Date: Mon Dec 28 09:03:29 2015 New Revision: 292830 URL: https://svnweb.freebsd.org/changeset/base/292830 Log: MFC r292541: Recheck curthread->td_su after the VFS_SYNC() call. Modified: stable/10/sys/ufs/ffs/ffs_softdep.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- stable/10/sys/ufs/ffs/ffs_softdep.c Mon Dec 28 08:53:31 2015 (r292829) +++ stable/10/sys/ufs/ffs/ffs_softdep.c Mon Dec 28 09:03:29 2015 (r292830) @@ -13300,43 +13300,43 @@ softdep_ast_cleanup_proc(void) bool req; td = curthread; - mp = td->td_su; - if (mp == NULL) - return; - td->td_su = NULL; - error = vfs_busy(mp, MBF_NOWAIT); - vfs_rel(mp); - if (error != 0) - return; - if (ffs_own_mount(mp) && MOUNTEDSOFTDEP(mp)) { - ump = VFSTOUFS(mp); - for (;;) { - req = false; - ACQUIRE_LOCK(ump); - if (softdep_excess_items(ump, D_INODEDEP)) { - req = true; - request_cleanup(mp, FLUSH_INODES); - } - if (softdep_excess_items(ump, D_DIRREM)) { - req = true; - request_cleanup(mp, FLUSH_BLOCKS); - } - FREE_LOCK(ump); - if (softdep_excess_items(ump, D_NEWBLK) || - softdep_excess_items(ump, D_ALLOCDIRECT) || - softdep_excess_items(ump, D_ALLOCINDIR)) { - error = vn_start_write(NULL, &mp, V_WAIT); - if (error == 0) { + while ((mp = td->td_su) != NULL) { + td->td_su = NULL; + error = vfs_busy(mp, MBF_NOWAIT); + vfs_rel(mp); + if (error != 0) + return; + if (ffs_own_mount(mp) && MOUNTEDSOFTDEP(mp)) { + ump = VFSTOUFS(mp); + for (;;) { + req = false; + ACQUIRE_LOCK(ump); + if (softdep_excess_items(ump, D_INODEDEP)) { req = true; - VFS_SYNC(mp, MNT_WAIT); - vn_finished_write(mp); + request_cleanup(mp, FLUSH_INODES); } + if (softdep_excess_items(ump, D_DIRREM)) { + req = true; + request_cleanup(mp, FLUSH_BLOCKS); + } + FREE_LOCK(ump); + if (softdep_excess_items(ump, D_NEWBLK) || + softdep_excess_items(ump, D_ALLOCDIRECT) || + softdep_excess_items(ump, D_ALLOCINDIR)) { + error = vn_start_write(NULL, &mp, + V_WAIT); + if (error == 0) { + req = true; + VFS_SYNC(mp, MNT_WAIT); + vn_finished_write(mp); + } + } + if ((td->td_pflags & TDP_KTHREAD) != 0 || !req) + break; } - if ((td->td_pflags & TDP_KTHREAD) != 0 || !req) - break; } + vfs_unbusy(mp); } - vfs_unbusy(mp); } /* From owner-svn-src-all@freebsd.org Mon Dec 28 09:26:09 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1664BA53E6C; Mon, 28 Dec 2015 09:26:09 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DC8BA1729; Mon, 28 Dec 2015 09:26:08 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBS9Q7KZ030762; Mon, 28 Dec 2015 09:26:07 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBS9Q7sr030760; Mon, 28 Dec 2015 09:26:07 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <201512280926.tBS9Q7sr030760@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Mon, 28 Dec 2015 09:26:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292831 - in head: sbin/ifconfig sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 09:26:09 -0000 Author: melifaro Date: Mon Dec 28 09:26:07 2015 New Revision: 292831 URL: https://svnweb.freebsd.org/changeset/base/292831 Log: Add SFF-8024 Extended Specification Compliance Submitted by: markb_mellanox.com MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D4666 Modified: head/sbin/ifconfig/sfp.c head/sys/net/sff8436.h Modified: head/sbin/ifconfig/sfp.c ============================================================================== --- head/sbin/ifconfig/sfp.c Mon Dec 28 09:03:29 2015 (r292830) +++ head/sbin/ifconfig/sfp.c Mon Dec 28 09:26:07 2015 (r292831) @@ -171,7 +171,7 @@ static struct _nv fc_speed[] = { /* 10/40G Ethernet compliance codes, byte 128 + 3 */ static struct _nv eth_1040g[] = { - { 0x80, "Reserved" }, + { 0x80, "Extended" }, { 0x40, "10GBASE-LRM" }, { 0x20, "10GBASE-LR" }, { 0x10, "10GBASE-SR" }, @@ -181,6 +181,38 @@ static struct _nv eth_1040g[] = { { 0x01, "40G Active Cable" }, { 0, NULL } }; +#define SFF_8636_EXT_COMPLIANCE 0x80 + +/* SFF-8024 Rev. 3.4 table 4.4: Extended Specification Compliance */ +static struct _nv eth_extended_comp[] = { + { 0xFF, "Reserved" }, + { 0x1A, "2 lambda DWDM 100G" }, + { 0x19, "100G ACC or 25GAUI C2M ACC" }, + { 0x18, "100G AOC or 25GAUI C2M AOC" }, + { 0x17, "100G CLR4" }, + { 0x16, "10GBASE-T with SFI electrical interface" }, + { 0x15, "G959.1 profile P1L1-2D2" }, + { 0x14, "G959.1 profile P1S1-2D2" }, + { 0x13, "G959.1 profile P1I1-2D1" }, + { 0x12, "40G PSM4 Parallel SMF" }, + { 0x11, "4 x 10GBASE-SR" }, + { 0x10, "40GBASE-ER4" }, + { 0x0F, "Reserved" }, + { 0x0D, "25GBASE-CR CA-N" }, + { 0x0C, "25GBASE-CR CA-S" }, + { 0x0B, "100GBASE-CR4 or 25GBASE-CR CA-L" }, + { 0x0A, "Reserved" }, + { 0x09, "100G CWDM4 MSA without FEC" }, + { 0x08, "100G ACC (Active Copper Cable)" }, + { 0x07, "100G PSM4 Parallel SMF" }, + { 0x06, "100G CWDM4 MSA with FEC" }, + { 0x05, "100GBASE-SR10" }, + { 0x04, "100GBASE-ER4" }, + { 0x03, "100GBASE-LR4" }, + { 0x02, "100GBASE-SR4" }, + { 0x01, "100G AOC (Active Optical Cable) or 25GAUI C2M ACC" }, + { 0x00, "Unspecified" } +}; /* SFF-8636 Rev. 2.5 table 6.3: Revision compliance */ static struct _nv rev_compl[] = { @@ -371,9 +403,16 @@ get_qsfp_transceiver_class(struct i2c_in const char *tech_class; uint8_t code; - /* Check 10/40G Ethernet class only */ - read_i2c(ii, SFF_8436_BASE, SFF_8436_CODE_E1040G, 1, &code); - tech_class = find_zero_bit(eth_1040g, code, 1); + read_i2c(ii, SFF_8436_BASE, SFF_8436_CODE_E1040100G, 1, &code); + + /* Check for extended specification compliance */ + if (code & SFF_8636_EXT_COMPLIANCE) { + read_i2c(ii, SFF_8436_BASE, SFF_8436_OPTIONS_START, 1, &code); + tech_class = find_value(eth_extended_comp, code); + } else + /* Check 10/40G Ethernet class only */ + tech_class = find_zero_bit(eth_1040g, code, 1); + if (tech_class == NULL) tech_class = "Unknown"; @@ -873,6 +912,7 @@ sfp_status(int s, struct ifreq *ifr, int switch (id_byte) { case SFF_8024_ID_QSFP: case SFF_8024_ID_QSFPPLUS: + case SFF_8024_ID_QSFP28: print_qsfp_status(&ii, verbose); break; default: Modified: head/sys/net/sff8436.h ============================================================================== --- head/sys/net/sff8436.h Mon Dec 28 09:03:29 2015 (r292830) +++ head/sys/net/sff8436.h Mon Dec 28 09:26:07 2015 (r292831) @@ -131,7 +131,7 @@ enum { SFF_8436_CONNECTOR = 130, /* Connector type (Table 32) */ SFF_8436_TRANS_START = 131, /* Electric or Optical Compatibility * (Table 33) */ - SFF_8436_CODE_E1040G = 131, /* 10/40G Ethernet Compliance Code */ + SFF_8436_CODE_E1040100G = 131, /* 10/40/100G Ethernet Compliance Code */ SFF_8436_CODE_SONET = 132, /* SONET Compliance codes */ SFF_8436_CODE_SATA = 133, /* SAS/SATA compliance codes */ SFF_8436_CODE_E1G = 134, /* Gigabit Ethernet Compliant codes */ From owner-svn-src-all@freebsd.org Mon Dec 28 10:17:55 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65F1AA530D2; Mon, 28 Dec 2015 10:17:55 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail107.syd.optusnet.com.au (mail107.syd.optusnet.com.au [211.29.132.53]) by mx1.freebsd.org (Postfix) with ESMTP id F0A451DB6; Mon, 28 Dec 2015 10:17:54 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail107.syd.optusnet.com.au (Postfix) with ESMTPS id 3E17AD41B60; Mon, 28 Dec 2015 21:17:51 +1100 (AEDT) Date: Mon, 28 Dec 2015 21:17:50 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Konstantin Belousov cc: Bruce Evans , Ian Lepore , Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern In-Reply-To: <20151228081313.GM3625@kib.kiev.ua> Message-ID: <20151228200006.Q2819@besplex.bde.org> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> <20151228083418.B1014@besplex.bde.org> <20151228081313.GM3625@kib.kiev.ua> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=PfoC/XVd c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=zHtpgXBBUDIKY00hTuEA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 10:17:55 -0000 On Mon, 28 Dec 2015, Konstantin Belousov wrote: > On Mon, Dec 28, 2015 at 09:35:11AM +1100, Bruce Evans wrote: >> If this causes a panic, then it is from a sanity check detecting the >> invalid conversion later. A negative value in days breaks the loop >> logic but seems to give premature exit from the loops instead of many >> iterations. > It causes the panic due to out of bound accesses to bin2bcd_data[] array. > The issue affects around twenty rtc drivers, according to the quick grep > for clock_ts_to_ct() usage. It probably also affects geom raid modules, > but I did not looked there at all. > > As I understand, people prefer to have ability to test practically > useless values for the current time, by the cost the unplugged easy > kernel panic, in the production systems ? Am I right ? It is not unreasonable to panic when such tests fail, just like for other settings of unreasonable values. Only the superuser can make them, and the superuser should know better than to run them on production systems. Of course, the correct fix is to fail for unrepresentable values. Different subsystems have different limits, so valid negative timevals may become invalid for certain RTC hardware or software. Valid positive timevals may also become invalid. The RTC might not have a century register, or one that it has might be unreliable as on x86 (the option USE_RTC_CENTURY tells atrtc to use the century register, but this is so little used that it is not a supported option). We use a hack to translate to a range of years including the current time. This used to be done almost correctly. It gave the range 1970-2069, so the Epoch as representable except in the Western hemisphere when the RTC is on local time. Now the range is 1980- 2079, so the Epoch is never representable. If someone tries to set the time to the Epoch, they get 2070 instead of 1970. > The commit gave > the immediate relief for the issue. If somebody have the correct fix > for clock_ts_to_ct(), I am happy to see this commit reverted after the > proper fix. It only avoids for some out of bounds value. I already pointed out that negative seconds still occur in the Western hemisphere for times near the Epoch, etc. Other overflow bugs are now easier to see. 64-bit time_t's allow really large times. The maximum with signed ones is about 292 billion years. 'year' has the wrong type (int) so it cannot represent that many. I think the loop to reduce 'days' iterates that many times and 'year' overflows every 2**32'nd iteration and the result is normally as if calculated correctly but then assigned to a 32-bit signed int. It can overflow to any 32-bit signed value. Fortunately, the calculation doesn't overrun a table of leap years. It just uses a simple rule for leap years which is expected to work until 2037. Years larger than that are not supported elsewhere. Next, the overflowed year is assigned to ct->year. This is also int, so no further overflow occurs. ct->year is misnamed (missing a prefix) and has a comment saying that it is a 4-digit year, but the code can produce any value. Next, ct->year is trusted by at least the atrtc driver. This gives an out of bound accesses to bin2bcd_data[] in about 49.5% of cases if USE_RTC_CENTURY is not configured, and in almost all cases if USE_RTC_CENTURY is configured: X writertc(RTC_YEAR, bin2bcd(ct.year % 100)); /* Write back Year */ X #ifdef USE_RTC_CENTURY X writertc(RTC_CENTURY, bin2bcd(ct.year / 100)); /* ... and Century */ #endif ct.year overflows to a negative value in about 50% of the cases. Then ct.year % 100 is negative in 99% of the subcases and 0 in 1% of the subcases. ct.year / 100 is negative in about 50% of the cases. When it is positive, it is too large for the array except for the small range 0-9999 for ct.year. The comment on ct->year is correct that the year must have only 4 digits. Anything larger than that takes more than 2 bin2bcd steps and more than 2 bcd registers to represent. Probably other drivers are sloppy as above, but they should be able to handle 4 digits by throwing away the century digits as in the usual case above. The adjustment to give times between 1980 and 2079 is for the other direction. That direction is more careful since the time comes from untrusted hardware instead of the trusted superuser. I pointed out some missing checks on lower bounds in clock_ct_to_ts(). The one for the month is not missing and is most important since the month is used as an array index and has base 1. The month day also has base 1 but is not used as an array index. Buggy hardware might produce 0 but can't produce a negative value for seconds minutes or hours if it uses bcd encoding. This leaves the year as most in need of a lower bounds check. The code is accidentally fail-safe for years -- years before 1970 are converted to 1970 except for the leap year caclulation. subr_clock.c is a little under-engineered. subr_fattime.c is grossly over-engineered, but not enough to have the necessary overflow checking. Its overflow bugs are easy to exercise using 64-bit time_t's. Just use utimes() or even utime() to try to set huge or negative times. There are lots of overflows, but the end result is in bounds because range checks are done on garbage values produced by the overflows, so the garbage doesn't get far unless it is within bounds. Though ot is unimportant, subr_fattime.c needs to be more careful with overflow than subr_clock.c since using it is not restricted to the kernel and the super-user. Bruce From owner-svn-src-all@freebsd.org Mon Dec 28 10:49:41 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E6DFA53AA8; Mon, 28 Dec 2015 10:49:41 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 829B61959; Mon, 28 Dec 2015 10:49:40 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id tBSAnZtV057108 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Mon, 28 Dec 2015 12:49:35 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua tBSAnZtV057108 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id tBSAnZnh057107; Mon, 28 Dec 2015 12:49:35 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 28 Dec 2015 12:49:35 +0200 From: Konstantin Belousov To: "Andrey V. Elsukov" Cc: Allan Jude , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292788 - in head/sys: geom/part sys Message-ID: <20151228104935.GP3625@kib.kiev.ua> References: <201512271812.tBRICD3A044563@repo.freebsd.org> <5680F39D.8070002@yandex.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5680F39D.8070002@yandex.ru> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 10:49:41 -0000 On Mon, Dec 28, 2015 at 11:32:29AM +0300, Andrey V. Elsukov wrote: > On 27.12.15 21:12, Allan Jude wrote: > > enum g_part_alias { > > G_PART_ALIAS_APPLE_BOOT, /* An Apple boot partition entry. */ > > + G_PART_ALIAS_APPLE_CORE_STORAGE,/* An Apple Core Storage partition. */ > > G_PART_ALIAS_APPLE_HFS, /* An HFS+ file system entry. */ > > G_PART_ALIAS_APPLE_LABEL, /* An Apple label partition entry. */ > > G_PART_ALIAS_APPLE_RAID, /* An Apple RAID partition entry. */ > > G_PART_ALIAS_APPLE_RAID_OFFLINE,/* An Apple RAID (offline) part entry.*/ > > G_PART_ALIAS_APPLE_TV_RECOVERY, /* An Apple TV recovery part entry. */ > > G_PART_ALIAS_APPLE_UFS, /* An Apple UFS partition entry. */ > > + G_PART_ALIAS_BIOS_BOOT, /* A GRUB 2 boot partition entry. */ > > + G_PART_ALIAS_CHROMEOS_FIRMWARE, /* A ChromeOS firmware part. entry. */ > > + G_PART_ALIAS_CHROMEOS_KERNEL, /* A ChromeOS Kernel part. entry. */ > > + G_PART_ALIAS_CHROMEOS_RESERVED, /* ChromeOS. Reserved for future use. */ > > + G_PART_ALIAS_CHROMEOS_ROOT, /* A ChromeOS root part. entry. */ > > This enum could be used by third-party kernel module and in general it > is not good to change the order of elements here. This can break `gpart > show` output for such modules. Just for the future. :) If the enum values are considered part of KBI, then explicit assignment of the enum values is much preferred. From owner-svn-src-all@freebsd.org Mon Dec 28 13:44:32 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1BA6EA544D9; Mon, 28 Dec 2015 13:44:32 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CCDD91802; Mon, 28 Dec 2015 13:44:31 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1aDY66-000ETE-1J; Mon, 28 Dec 2015 16:44:26 +0300 Date: Mon, 28 Dec 2015 16:44:25 +0300 From: Slawa Olhovchenkov To: Bruce Evans Cc: Konstantin Belousov , src-committers@freebsd.org, Ian Lepore , svn-src-all@freebsd.org, Dmitry Chagin , svn-src-head@freebsd.org Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern Message-ID: <20151228134425.GH70867@zxy.spb.ru> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> <20151228083418.B1014@besplex.bde.org> <20151228081313.GM3625@kib.kiev.ua> <20151228200006.Q2819@besplex.bde.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151228200006.Q2819@besplex.bde.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 13:44:32 -0000 On Mon, Dec 28, 2015 at 09:17:50PM +1100, Bruce Evans wrote: > On Mon, 28 Dec 2015, Konstantin Belousov wrote: > > > On Mon, Dec 28, 2015 at 09:35:11AM +1100, Bruce Evans wrote: > >> If this causes a panic, then it is from a sanity check detecting the > >> invalid conversion later. A negative value in days breaks the loop > >> logic but seems to give premature exit from the loops instead of many > >> iterations. > > It causes the panic due to out of bound accesses to bin2bcd_data[] array. > > The issue affects around twenty rtc drivers, according to the quick grep > > for clock_ts_to_ct() usage. It probably also affects geom raid modules, > > but I did not looked there at all. > > > > As I understand, people prefer to have ability to test practically > > useless values for the current time, by the cost the unplugged easy > > kernel panic, in the production systems ? Am I right ? > > It is not unreasonable to panic when such tests fail, just like for other > settings of unreasonable values. Only the superuser can make them, and > the superuser should know better than to run them on production systems. Only one valid reasson for panic may be exist: fatal destruction of internal structures (impossibility to recovery). All other reaason must not be caused panic. Disconnecting USB flash. Removing floppy discs. Lost root FS. All above must not be cused panic. VAX/VMS don't panic after break half of RAM druing intesive work. From owner-svn-src-all@freebsd.org Mon Dec 28 17:27:21 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BC50EA541E9; Mon, 28 Dec 2015 17:27:21 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 869FD1585; Mon, 28 Dec 2015 17:27:21 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSHRKBN079545; Mon, 28 Dec 2015 17:27:20 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSHRK4n079544; Mon, 28 Dec 2015 17:27:20 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201512281727.tBSHRK4n079544@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Mon, 28 Dec 2015 17:27:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292832 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 17:27:21 -0000 Author: dteske Date: Mon Dec 28 17:27:20 2015 New Revision: 292832 URL: https://svnweb.freebsd.org/changeset/base/292832 Log: Explicitly set permissions on entropy files Differential Revision: https://reviews.freebsd.org/D3933 Submitted by: jmg Reviewed by: delphij, markm Approved by: secteam (delphij) MFC after: 3 days X-MFC-to: stable/10 stable/9 Modified: head/usr.sbin/bsdinstall/scripts/entropy Modified: head/usr.sbin/bsdinstall/scripts/entropy ============================================================================== --- head/usr.sbin/bsdinstall/scripts/entropy Mon Dec 28 09:26:07 2015 (r292831) +++ head/usr.sbin/bsdinstall/scripts/entropy Mon Dec 28 17:27:20 2015 (r292832) @@ -26,4 +26,9 @@ # # $FreeBSD$ -dd if=/dev/random of=$BSDINSTALL_CHROOT/entropy bs=4096 count=1 +umask 077 +for i in /entropy /boot/entropy; do + i="$BSDINSTALL_CHROOT/$i" + dd if=/dev/random of="$i" bs=4096 count=1 + chown 0:0 "$i" +done From owner-svn-src-all@freebsd.org Mon Dec 28 17:41:34 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0F3ECA5464F; Mon, 28 Dec 2015 17:41:34 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pf0-x231.google.com (mail-pf0-x231.google.com [IPv6:2607:f8b0:400e:c00::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DB91C1C6D; Mon, 28 Dec 2015 17:41:33 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pf0-x231.google.com with SMTP id 78so114847758pfw.2; Mon, 28 Dec 2015 09:41:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=UtQwvNxY5mXepNj3loVaHOsTwJGG/hqdKHgG/VhdKWU=; b=fCToxYtAqChHtsEidpgcRp9vP61pdMOiBtp40hZJBU3zazToxrPyfH9KQfWF11TJkV XqaAZBIb8/2fR63lD4tv7VTbxKCsRZIz6FjsdlbDMXywVbZBhVKncYdKvcPl9jy4K38X MGLOAHwH8H44rLUXnPmcHQtWbrrzWdPutCZu8AjZWNzD0MwcRZ7q42k7eZ3EEFEXjAOK sLlN87sQKKkC/U59G40RaWx/JbgF1/q0TVBCujdvfWNySJA0ak7IBv1OfllXM5lF6tG1 3jwKJxx8IMat5mzLVEU9TuXzwzQptKRPE5MuzpjsdZmP0VedxQYGsRfpRX7NBgr87g6d sYCA== X-Received: by 10.98.10.17 with SMTP id s17mr72229989pfi.61.1451324493483; Mon, 28 Dec 2015 09:41:33 -0800 (PST) Received: from [192.168.254.38] ([50.35.62.220]) by smtp.gmail.com with ESMTPSA id x12sm576349pfa.74.2015.12.28.09.41.31 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 28 Dec 2015 09:41:31 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern From: Garrett Cooper X-Mailer: iPhone Mail (13C75) In-Reply-To: <20151228200006.Q2819@besplex.bde.org> Date: Mon, 28 Dec 2015 09:41:30 -0800 Cc: Konstantin Belousov , Ian Lepore , Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <2CA74F95-00A0-4453-847E-0C6C59B57021@gmail.com> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> <20151228083418.B1014@besplex.bde.org> <20151228081313.GM3625@kib.kiev.ua> <20151228200006.Q2819@besplex.bde.org> To: Bruce Evans X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 17:41:34 -0000 > On Dec 28, 2015, at 02:17, Bruce Evans wrote: ... > It is not unreasonable to panic when such tests fail, just like for other > settings of unreasonable values. Only the superuser can make them, and > the superuser should know better than to run them on production systems. On a development system, this is perfectly reasonable. However, on systems i= n production, dying on asserts or panicking when unexpected input is encount= ered instead of erroring out appropriately is not ideal: it causes unnecessa= ry downtime and can confuse others (customers, lower level admins) who are n= ot fully aware of how UNIX and FreeBSD works (and in turn generate support c= alls and bug reports). Thanks, -NGie= From owner-svn-src-all@freebsd.org Mon Dec 28 17:50:33 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5359EA548D1; Mon, 28 Dec 2015 17:50:33 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 136E81F4E; Mon, 28 Dec 2015 17:50:33 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSHoWo6085467; Mon, 28 Dec 2015 17:50:32 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSHoW3g085465; Mon, 28 Dec 2015 17:50:32 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201512281750.tBSHoW3g085465@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Mon, 28 Dec 2015 17:50:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292833 - stable/10/usr.sbin/sysrc X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 17:50:33 -0000 Author: dteske Date: Mon Dec 28 17:50:31 2015 New Revision: 292833 URL: https://svnweb.freebsd.org/changeset/base/292833 Log: MFC r290337: Add sysrc(8) support for "rc.conf.d" Differential Revision: https://reviews.freebsd.org/D3551 Reviewed by: allanjude Relnotes: yes Modified: stable/10/usr.sbin/sysrc/sysrc stable/10/usr.sbin/sysrc/sysrc.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/sysrc/sysrc ============================================================================== --- stable/10/usr.sbin/sysrc/sysrc Mon Dec 28 17:27:20 2015 (r292832) +++ stable/10/usr.sbin/sysrc/sysrc Mon Dec 28 17:50:31 2015 (r292833) @@ -40,18 +40,23 @@ BSDCFG_SHARE="/usr/share/bsdconfig" # # Version information # -SYSRC_VERSION="6.5 Sep-1,2015" +SYSRC_VERSION="7.0 Sep-13,2015" # # Options # CHECK_ONLY= +DEFAULT= DELETE= DESCRIBE= +EXISTING_ONLY= IGNORE_UNKNOWNS= JAIL= +LIST_SERVICE_CONFS= +LIST_CONFS= QUIET= ROOTDIR= +SERVICE= SHOW_ALL= SHOW_EQUALS= SHOW_FILE= @@ -80,7 +85,8 @@ die() # usage() { - f_err "Usage: %s [OPTIONS] name[[+|-]=value] ...\n" "$pgm" + f_err "Usage: %s [OPTIONS] %s\n" "$pgm" \ + "{name[[+|-]=value] ... | -a | -A | -l | -L [name ...]}" f_err "Try \`%s --help' for more information.\n" "$pgm" die } @@ -95,6 +101,8 @@ help() local envfmt="\t%-17s%s\n" f_err "Usage: %s [OPTIONS] name[[+|-]=value] ...\n" "$pgm" + f_err "Usage: %s [OPTIONS] -a | -A\n" "$pgm" + f_err "Usage: %s [OPTIONS] -l | -L [name ...]\n" "$pgm" f_err "OPTIONS:\n" f_err "$optfmt" "-a" \ @@ -113,6 +121,8 @@ help() "Print query results as \`var=value' (useful for producing" f_err "$optfmt" "" \ "output to be fed back in). Ignored if \`-n' is specified." + f_err "$optfmt" "-E" \ + "Existing files only with \`-[lL]' or when changing a setting." f_err "$optfmt" "-f file" \ "Operate on the specified file(s) instead of rc_conf_files." f_err "$optfmt" "" \ @@ -129,12 +139,20 @@ help() "The jid or name of the jail to operate within (overrides" f_err "$optfmt" "" \ "\`-R dir'; requires jexec(8))." + f_err "$optfmt" "-l" \ + "List configuration files used at startup on stdout and exit." + f_err "$optfmt" "-L" \ + "List all configuration files including rc.conf.d entries." f_err "$optfmt" "-n" \ "Show only variable values, not their names." f_err "$optfmt" "-N" \ "Show only variable names, not their values." f_err "$optfmt" "-q" \ "Quiet. Disable verbose and hide certain errors." + f_err "$optfmt" "-s name" \ + "Process additional \`rc.conf.d' entries for service name." + f_err "$optfmt" "" \ + "Ignored if \`-f file' is given." f_err "$optfmt" "-R dir" \ "Operate within the root directory \`dir' rather than \`/'." f_err "$optfmt" "-v" \ @@ -245,27 +263,33 @@ unset arg # # Process command-line flags # -while getopts aAcdDef:Fhij:nNqR:vxX flag; do +while getopts aAcdDeEf:Fhij:lLnNqR:s:vxX flag; do case "$flag" in a) SHOW_ALL=${SHOW_ALL:-1} ;; A) SHOW_ALL=2 ;; c) CHECK_ONLY=1 ;; d) DESCRIBE=1 ;; - D) RC_CONFS= ;; + D) DEFAULT=1 RC_CONFS= ;; e) SHOW_EQUALS=1 ;; - f) RC_CONFS="$RC_CONFS${RC_CONFS:+ }$OPTARG" ;; + E) EXISTING_ONLY=1 ;; + f) DEFAULT= RC_CONFS="$RC_CONFS${RC_CONFS:+ }$OPTARG" ;; F) SHOW_FILE=1 ;; h) usage ;; # NOTREACHED i) IGNORE_UNKNOWNS=1 ;; j) [ "$OPTARG" ] || die "%s: Missing or null argument to \`-j' flag" "$pgm" JAIL="$OPTARG" ;; + l) LIST_CONFS=1 ;; + L) LIST_SERVICE_CONFS=1 ;; n) SHOW_NAME= ;; N) SHOW_VALUE= ;; q) QUIET=1 VERBOSE= ;; R) [ "$OPTARG" ] || die "%s: Missing or null argument to \`-R' flag" "$pgm" ROOTDIR="$OPTARG" ;; + s) [ "$OPTARG" ] || + die "%s: Missing or null argument to \`-s' flag" "$pgm" + SERVICE="$OPTARG" ;; v) VERBOSE=1 QUIET= ;; x) DELETE=${DELETE:-1} ;; X) DELETE=2 ;; @@ -275,6 +299,129 @@ done shift $(( $OPTIND - 1 )) # +# Process `-L' flag +# +if [ "$LIST_SERVICE_CONFS" ]; then + list= + + # + # List rc_conf_files if no service names given + # + files= + [ $# -eq 0 ] && files=$( f_sysrc_get rc_conf_files ) + for file in $files; do + if [ "$EXISTING_ONLY" ]; then + [ -e "$file" -a ! -d "$file" ] || continue + fi + case "$list" in + "$file"|*" $file"|"$file "*|*" $file "*) continue ;; + esac + list="$list $file" + done + list="${list# }" + if [ $# -eq 0 ]; then + if [ "$VERBOSE" ]; then + echo rc_conf_files: $list + elif [ "$SHOW_EQUALS" ]; then + echo "rc_conf_files=\"$list\"" + fi + fi + + # + # List rc.conf.d entries + # + retval=$SUCCESS + for service in ${*:-$( service -l )}; do + slist= + f_sysrc_service_configs $service files || retval=$? continue + for file in $files; do + if [ "$EXISTING_ONLY" ]; then + [ -e "$file" -a ! -d "$file" ] || continue + fi + if [ ! "$VERBOSE" -a ! "$SHOW_EQUALS" ]; then + case "$list" in + "$file"|*" $file"|"$file "*|*" $file "*) + continue ;; + esac + fi + slist="$slist $file" + done + slist="${slist# }" + if [ $# -gt 0 ]; then + [ "$slist" ] || retval=$? + fi + if [ "$VERBOSE" ]; then + [ "$slist" ] && echo "$service: $slist" + continue + elif [ "$SHOW_EQUALS" ]; then + [ "$slist" ] && echo "$service=\"$slist\"" + continue + fi + list="$list${slist:+ }$slist" + done + if [ ! "$VERBOSE" -a ! "$SHOW_EQUALS" ]; then + if [ $# -eq 0 -o ! "$QUIET" ]; then + list="${list# }" + [ "$list" ] && echo $list + fi + fi + + exit $retval +fi + +# +# Process `-s name' argument +# +if [ "$SERVICE" -a ! "${RC_CONFS+set}" ]; then + if f_sysrc_service_configs "$SERVICE" RC_CONFS; then + rc_conf_files=$( f_sysrc_get rc_conf_files ) + RC_CONFS="$rc_conf_files${RC_CONFS:+ }$RC_CONFS" + unset rc_conf_files + else + unset RC_CONFS + fi +fi + +# +# Process `-E' option flag +# +if [ "$EXISTING_ONLY" ]; then + # + # To get f_sysrc_*() to ignore missing rc_conf_files, we have to use + # RC_CONFS to override the unpreened value. If RC_CONFS already has a + # value (`-D', `-f file', `-s name', or inherited from parent), use it. + # Otherwise, include filtered contents of rc_conf_files. + # + RC_CONFS=$( + if [ "${RC_CONFS+set}" ]; then + set -- $RC_CONFS + else + set -- $( f_sysrc_get rc_conf_files ) + fi + while [ $# -gt 0 ]; do + [ -f "$1" ] && echo -n " $1" + shift + done + ) + RC_CONFS="${RC_CONFS# }" +fi + +# +# Process `-l' option flag +# +if [ "$LIST_CONFS" ]; then + [ $# -eq 0 ] || usage + if [ "$DEFAULT" ]; then + echo "$RC_DEFAULTS" + elif [ "${RC_CONFS+set}" ]; then + echo "$RC_CONFS" + else + f_sysrc_get rc_conf_files + fi + exit $SUCCESS +fi + +# # [More] Sanity checks (e.g., "sysrc --") # [ $# -eq 0 -a ! "$SHOW_ALL" ] && usage # NOTREACHED @@ -344,6 +491,10 @@ if [ "$JAIL" -o "$ROOTDIR" ]; then $( [ "$SHOW_ALL" = "1" ] && echo \ -a ) $( [ "$SHOW_ALL" = "2" ] && echo \ -A ) ${CHECK_ONLY:+-c} + ${DEFAULT:+-D} + ${EXISTING_ONLY:+-E} + ${LIST_CONFS:+-l} + ${LIST_SERVICE_CONFS:+-L} ${DESCRIBE:+-d} ${SHOW_EQUALS:+-e} ${IGNORE_UNKNOWNS:+-i} @@ -351,6 +502,11 @@ if [ "$JAIL" -o "$ROOTDIR" ]; then $( [ "$SHOW_VALUE" ] || echo \ -N ) $( [ "$SHOW_FILE" ] && echo \ -F ) " + if [ "$SERVICE" ]; then + escape "$SERVICE" _SERVICE + args="$args -s '$_SERVICE'" + unset _SERVICE + fi if [ "${RC_CONFS+set}" ]; then escape "$RC_CONFS" _RC_CONFS args="$args -f '$_RC_CONFS'" @@ -454,9 +610,10 @@ if [ "$SHOW_ALL" ]; then # IFS="$IFS|" EXCEPT="IFS|EXCEPT|PATH|RC_DEFAULTS|OPTIND|DESCRIBE|SEP" - EXCEPT="$EXCEPT|DELETE|SHOW_ALL|SHOW_EQUALS|SHOW_NAME" - EXCEPT="$EXCEPT|SHOW_VALUE|SHOW_FILE|VERBOSE|RC_CONFS" - EXCEPT="$EXCEPT|pgm|SUCCESS|FAILURE|CHECK_ONLY" + EXCEPT="$EXCEPT|DELETE|SHOW_ALL|SHOW_EQUALS|SHOW_NAME|DEFAULT" + EXCEPT="$EXCEPT|SHOW_VALUE|SHOW_FILE|VERBOSE|RC_CONFS|SERVICE" + EXCEPT="$EXCEPT|pgm|SUCCESS|FAILURE|CHECK_ONLY|EXISTING_ONLY" + EXCEPT="$EXCEPT|LIST_CONFS|LIST_SERVICE_CONFS" EXCEPT="$EXCEPT|f_sysrc_desc_awk|f_sysrc_delete_awk" # @@ -479,7 +636,13 @@ if [ "$SHOW_ALL" ]; then # explicit value, modifying the default behavior of # source_rc_confs(). # - [ "${RC_CONFS+set}" ] && rc_conf_files="$RC_CONFS" + if [ "${RC_CONFS+set}" ]; then + [ "$SHOW_ALL" = "1" -a "$SERVICE" -a \ + ! "$DEFAULT" ] || rc_conf_files= + rc_conf_files="$rc_conf_files $RC_CONFS" + rc_conf_files="${rc_conf_files# }" + rc_conf_files="${rc_conf_files% }" + fi source_rc_confs Modified: stable/10/usr.sbin/sysrc/sysrc.8 ============================================================================== --- stable/10/usr.sbin/sysrc/sysrc.8 Mon Dec 28 17:27:20 2015 (r292832) +++ stable/10/usr.sbin/sysrc/sysrc.8 Mon Dec 28 17:50:31 2015 (r292833) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 2, 2015 +.Dd September 12, 2015 .Dt SYSRC 8 .Os .Sh NAME @@ -32,16 +32,27 @@ .Nd safely edit system rc files .Sh SYNOPSIS .Nm -.Op Fl cdDeFhinNqvx +.Op Fl cdDeEFhinNqvx +.Op Fl s Ar name .Op Fl f Ar file .Op Fl j Ar jail | Fl R Ar dir .Ar name Ns Op Ns Oo +|- Oc Ns = Ns Ar value .Ar ... .Nm -.Op Fl cdDeFhinNqvx +.Op Fl cdDeEFhinNqvx +.Op Fl s Ar name .Op Fl f Ar file .Op Fl j Ar jail | Fl R Ar dir .Fl a | A +.Nm +.Op Fl E +.Op Fl s Ar name +.Op Fl f Ar file +.Fl l +.Nm +.Op Fl eEqv +.Fl L +.Op Ar name ... .Sh DESCRIPTION The .Nm @@ -81,6 +92,13 @@ Ignored if either or .Ql Fl F is specified. +.It Fl E +When given +.Sq Fl l +or +.Sq Fl L +to list configuration files, only list those that exist. +When changing a setting, prefer to modify existing files. .It Fl f Ar file Operate on the specified file(s) instead of the files obtained by reading the .Sq rc_conf_files @@ -105,6 +123,17 @@ or name of the .Ar jail to operate within .Pq overrides So Fl R Ar dir Sc ; requires Xr jexec 8 . +.It Fl l +List configuration files used at startup on stdout and exit. +.It Fl L +List all configuration files including rc.conf.d entries on stdout and exit. +Can be combined with +.Sq Fl v +or +.Sq Fl e +to show service names. +.Nm +exits with success if all named services are installed, failure otherwise. .It Fl n Show only variable values, not their names. .It Fl N @@ -112,11 +141,40 @@ Show only variable names, not their valu .It Fl q Quiet. Disable verbose and hide certain errors. +When combined with +.Sq Fl L +and one or more +.Li Ar name +arguments, provide only exit status and no output. .It Fl R Ar dir Operate within the root directory .Sq Ar dir rather than .Sq / . +.It Fl s Ar name +If an +.Li rc.d +script of +.Ar name +exists +.Po +in +.Dq /etc/rc.d +or +.Li local_startup +directories +.Pc , +process its +.Dq rc.conf.d +entries as potential overrides to +.Sq rc_conf_files . +See +.Xr rc.subr 8 +for additional information on +.Dq rc.conf.d . +Can be combined with +.Sq Fl l +to list configuration files used by service at startup. .It Fl v Verbose. Print the pathname of the specific @@ -336,6 +394,10 @@ and .It Pa /etc/defaults/rc.conf .It Pa /etc/rc.conf .It Pa /etc/rc.conf.local +.It Pa /etc/rc.conf.d/name +.It Pa /etc/rc.conf.d/name/* +.It Pa /usr/local/etc/rc.conf.d/name +.It Pa /usr/local/etc/rc.conf.d/name/* .El .Sh EXAMPLES Below are some simple examples of how @@ -397,6 +459,7 @@ cloned_interfaces+"alternate" .Sh SEE ALSO .Xr jls 1 , .Xr rc.conf 5 , +.Xr rc.subr 8 , .Xr jail 8 , .Xr jexec 8 , .Xr rc 8 , From owner-svn-src-all@freebsd.org Mon Dec 28 18:20:07 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 60FB4A5236D; Mon, 28 Dec 2015 18:20:07 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2055F10E4; Mon, 28 Dec 2015 18:20:07 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSIK6LH095080; Mon, 28 Dec 2015 18:20:06 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSIK6H3095078; Mon, 28 Dec 2015 18:20:06 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201512281820.tBSIK6H3095078@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 28 Dec 2015 18:20:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292834 - in head/sys/compat/linuxkpi/common: include/linux src X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 18:20:07 -0000 Author: hselasky Date: Mon Dec 28 18:20:05 2015 New Revision: 292834 URL: https://svnweb.freebsd.org/changeset/base/292834 Log: Reduce memory consumption when allocating kobject strings in the LinuxKPI. Compute string length before allocating memory instead of using fixed size allocations. Make kobject_set_name_vargs() global instead of inline to save some bytes when compiling. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/kobject.h head/sys/compat/linuxkpi/common/src/linux_compat.c Modified: head/sys/compat/linuxkpi/common/include/linux/kobject.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/kobject.h Mon Dec 28 17:50:31 2015 (r292833) +++ head/sys/compat/linuxkpi/common/include/linux/kobject.h Mon Dec 28 18:20:05 2015 (r292834) @@ -103,29 +103,7 @@ kobject_get(struct kobject *kobj) return kobj; } -static inline int -kobject_set_name_vargs(struct kobject *kobj, const char *fmt, va_list args) -{ - char *old; - char *name; - - old = kobj->name; - - if (old && !fmt) - return 0; - - name = kzalloc(MAXPATHLEN, GFP_KERNEL); - if (!name) - return -ENOMEM; - vsnprintf(name, MAXPATHLEN, fmt, args); - kobj->name = name; - kfree(old); - for (; *name != '\0'; name++) - if (*name == '/') - *name = '!'; - return (0); -} - +int kobject_set_name_vargs(struct kobject *kobj, const char *fmt, va_list); int kobject_add(struct kobject *kobj, struct kobject *parent, const char *fmt, ...); Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_compat.c Mon Dec 28 17:50:31 2015 (r292833) +++ head/sys/compat/linuxkpi/common/src/linux_compat.c Mon Dec 28 18:20:05 2015 (r292834) @@ -94,7 +94,50 @@ panic_cmp(struct rb_node *one, struct rb } RB_GENERATE(linux_root, rb_node, __entry, panic_cmp); - + +int +kobject_set_name_vargs(struct kobject *kobj, const char *fmt, va_list args) +{ + va_list tmp_va; + int len; + char *old; + char *name; + char dummy; + + old = kobj->name; + + if (old && fmt == NULL) + return (0); + + /* compute length of string */ + va_copy(tmp_va, args); + len = vsnprintf(&dummy, 0, fmt, tmp_va); + va_end(tmp_va); + + /* account for zero termination */ + len++; + + /* check for error */ + if (len < 1) + return (-EINVAL); + + /* allocate memory for string */ + name = kzalloc(len, GFP_KERNEL); + if (name == NULL) + return (-ENOMEM); + vsnprintf(name, len, fmt, args); + kobj->name = name; + + /* free old string */ + kfree(old); + + /* filter new string */ + for (; *name != '\0'; name++) + if (*name == '/') + *name = '!'; + return (0); +} + int kobject_set_name(struct kobject *kobj, const char *fmt, ...) { From owner-svn-src-all@freebsd.org Mon Dec 28 18:28:20 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B968A52675; Mon, 28 Dec 2015 18:28:20 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D4ADA1969; Mon, 28 Dec 2015 18:28:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSISIF3098277; Mon, 28 Dec 2015 18:28:18 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSISIxM098276; Mon, 28 Dec 2015 18:28:18 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201512281828.tBSISIxM098276@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 28 Dec 2015 18:28:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292835 - head/sys/dev/mlx5/mlx5_en X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 18:28:20 -0000 Author: hselasky Date: Mon Dec 28 18:28:18 2015 New Revision: 292835 URL: https://svnweb.freebsd.org/changeset/base/292835 Log: Make the eeprom dump function more readable and rename variables for better clarity. MFC after: 1 week Submitted by: Daria Genzel Differential Revision: https://reviews.freebsd.org/D4551 Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Dec 28 18:20:05 2015 (r292834) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Dec 28 18:28:18 2015 (r292835) @@ -319,34 +319,33 @@ mlx5e_get_eeprom(struct mlx5e_priv *priv static void mlx5e_print_eeprom(struct mlx5e_eeprom *eeprom) { - int i, j = 0; - int row = 0; + int row; + int index_in_row; + int byte_to_write = 0; + int line_length = 16; printf("\nOffset\t\tValues\n"); - printf("------\t\t------\n"); - while (row < eeprom->len) { - printf("0x%04x\t\t", row); - for (i = 0; i < 16; i++) { - printf("%02x ", ((u8 *)eeprom->data)[j]); - j++; - row++; + printf("------\t\t------"); + while (byte_to_write < eeprom->len) { + printf("\n0x%04X\t\t", byte_to_write); + for (index_in_row = 0; index_in_row < line_length; index_in_row++) { + printf("%02X ", ((u8 *)eeprom->data)[byte_to_write]); + byte_to_write++; } - printf("\n"); } if (eeprom->page_valid) { row = MLX5E_EEPROM_HIGH_PAGE_OFFSET; - printf("\nUpper Page 0x03\n"); + printf("\n\nUpper Page 0x03\n"); printf("\nOffset\t\tValues\n"); - printf("------\t\t------\n"); + printf("------\t\t------"); while (row < MLX5E_EEPROM_PAGE_LENGTH) { - printf("0x%04x\t\t", row); - for (i = 0; i < 16; i++) { - printf("%02x ", ((u8 *)eeprom->data)[j]); - j++; + printf("\n0x%04X\t\t", row); + for (index_in_row = 0; index_in_row < line_length; index_in_row++) { + printf("%02X ", ((u8 *)eeprom->data)[byte_to_write]); + byte_to_write++; row++; } - printf("\n"); } } } From owner-svn-src-all@freebsd.org Mon Dec 28 18:29:48 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9D878A52737; Mon, 28 Dec 2015 18:29:48 +0000 (UTC) (envelope-from wollman@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 69F0D1AE8; Mon, 28 Dec 2015 18:29:48 +0000 (UTC) (envelope-from wollman@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSITlOh098366; Mon, 28 Dec 2015 18:29:47 GMT (envelope-from wollman@FreeBSD.org) Received: (from wollman@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSITlSj098365; Mon, 28 Dec 2015 18:29:47 GMT (envelope-from wollman@FreeBSD.org) Message-Id: <201512281829.tBSITlSj098365@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wollman set sender to wollman@FreeBSD.org using -f From: Garrett Wollman Date: Mon, 28 Dec 2015 18:29:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292836 - head/sys/netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 18:29:48 -0000 Author: wollman Date: Mon Dec 28 18:29:47 2015 New Revision: 292836 URL: https://svnweb.freebsd.org/changeset/base/292836 Log: in6_if2idlen: treat bridge(4) interfaces like other Ethernet interfaces bridge(4) interfaces have an if_type of IFT_BRIDGE, rather than IFT_ETHER, even though they only support Ethernet-style links. This caused in6_if2idlen to emit an "unknown link type (209)" warning to the console every time it was called. Add IFT_BRIDGE to the case statement in the appropriate place, indicating that it uses the same IPv6 address format as other Ethernet-like interfaces. MFC after: 1 week Modified: head/sys/netinet6/in6.c Modified: head/sys/netinet6/in6.c ============================================================================== --- head/sys/netinet6/in6.c Mon Dec 28 18:28:18 2015 (r292835) +++ head/sys/netinet6/in6.c Mon Dec 28 18:29:47 2015 (r292836) @@ -2008,6 +2008,7 @@ in6_if2idlen(struct ifnet *ifp) case IFT_PROPVIRTUAL: /* XXX: no RFC. treat it as ether */ case IFT_L2VLAN: /* ditto */ case IFT_IEEE80211: /* ditto */ + case IFT_BRIDGE: /* bridge(4) only does Ethernet-like links */ case IFT_INFINIBAND: return (64); case IFT_FDDI: /* RFC2467 */ From owner-svn-src-all@freebsd.org Mon Dec 28 18:36:01 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CBA65A52AAF; Mon, 28 Dec 2015 18:36:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 76A5A1F54; Mon, 28 Dec 2015 18:36:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSIa0Zf001302; Mon, 28 Dec 2015 18:36:00 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSIa0qh001301; Mon, 28 Dec 2015 18:36:00 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201512281836.tBSIa0qh001301@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 28 Dec 2015 18:36:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292837 - head/sys/dev/mlx5/mlx5_en X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 18:36:01 -0000 Author: hselasky Date: Mon Dec 28 18:36:00 2015 New Revision: 292837 URL: https://svnweb.freebsd.org/changeset/base/292837 Log: Add support for sysctl tunables to 10-stable and older. Pushed through head first to simplify driver maintenance. MFC after: 1 week Submitted by: Drew Gallatin Differential Revision: https://reviews.freebsd.org/D4552 Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Dec 28 18:29:47 2015 (r292836) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Dec 28 18:36:00 2015 (r292837) @@ -58,13 +58,17 @@ mlx5e_ethtool_handler(SYSCTL_HANDLER_ARG PRIV_LOCK(priv); value = priv->params_ethtool.arg[arg2]; - error = sysctl_handle_64(oidp, &value, 0, req); - if (error || req->newptr == NULL || - value == priv->params_ethtool.arg[arg2]) - goto done; + if (req != NULL) { + error = sysctl_handle_64(oidp, &value, 0, req); + if (error || req->newptr == NULL || + value == priv->params_ethtool.arg[arg2]) + goto done; - /* assign new value */ - priv->params_ethtool.arg[arg2] = value; + /* assign new value */ + priv->params_ethtool.arg[arg2] = value; + } else { + error = 0; + } /* check if device is gone */ if (priv->gone) { @@ -483,10 +487,30 @@ mlx5e_create_ethtool(struct mlx5e_priv * CTLFLAG_MPSAFE, priv, x, &mlx5e_ethtool_handler, "QU", mlx5e_params_desc[2 * x + 1]); } else { +#if (__FreeBSD_version < 1100000) + char path[64]; +#endif + /* + * NOTE: In FreeBSD-11 and newer the + * CTLFLAG_RWTUN flag will take care of + * loading default sysctl value from the + * kernel environment, if any: + */ SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(node), OID_AUTO, mlx5e_params_desc[2 * x], CTLTYPE_U64 | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, priv, x, &mlx5e_ethtool_handler, "QU", mlx5e_params_desc[2 * x + 1]); + +#if (__FreeBSD_version < 1100000) + /* compute path for sysctl */ + snprintf(path, sizeof(path), "dev.mce.%d.conf.%s", + device_get_unit(priv->mdev->pdev->dev.bsddev), + mlx5e_params_desc[2 * x]); + + /* try to fetch tunable, if any */ + if (TUNABLE_QUAD_FETCH(path, &priv->params_ethtool.arg[x])) + mlx5e_ethtool_handler(NULL, priv, x, NULL); +#endif } } From owner-svn-src-all@freebsd.org Mon Dec 28 18:50:20 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 591BEA53023; Mon, 28 Dec 2015 18:50:20 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 35F8A1572; Mon, 28 Dec 2015 18:50:20 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSIoJvb004285; Mon, 28 Dec 2015 18:50:19 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSIoIcF004277; Mon, 28 Dec 2015 18:50:18 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201512281850.tBSIoIcF004277@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 28 Dec 2015 18:50:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292838 - in head/sys/dev/mlx5: . mlx5_en X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 18:50:20 -0000 Author: hselasky Date: Mon Dec 28 18:50:18 2015 New Revision: 292838 URL: https://svnweb.freebsd.org/changeset/base/292838 Log: Add support for CQE zipping. CQE zipping reduces PCI overhead by coalescing and zipping multiple CQEs into a single merged CQE. The feature is enabled by default and can be disabled by a sysctl. Implementing this feature mlx5_cqwq_pop() has been separated from mlx5e_get_cqe(). MFC after: 1 week Submitted by: Mark Bloch Differential Revision: https://reviews.freebsd.org/D4598 Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/device.h head/sys/dev/mlx5/mlx5_en/en.h head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c head/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c head/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c head/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c Modified: head/sys/dev/mlx5/device.h ============================================================================== --- head/sys/dev/mlx5/device.h Mon Dec 28 18:36:00 2015 (r292837) +++ head/sys/dev/mlx5/device.h Mon Dec 28 18:50:18 2015 (r292838) @@ -1042,6 +1042,7 @@ enum { MLX5_ESW_VPORT_ADMIN_STATE_UP = 0x1, MLX5_ESW_VPORT_ADMIN_STATE_AUTO = 0x2, }; + /* MLX5 DEV CAPs */ /* TODO: EAT.ME */ @@ -1219,4 +1220,36 @@ struct mlx5_ifc_mcia_reg_bits { }; #define MLX5_CMD_OP_QUERY_EEPROM 0x93c + +struct mlx5_mini_cqe8 { + union { + u32 rx_hash_result; + u32 checksum; + struct { + u16 wqe_counter; + u8 s_wqe_opcode; + u8 reserved; + } s_wqe_info; + }; + u32 byte_cnt; +}; + +enum { + MLX5_NO_INLINE_DATA, + MLX5_INLINE_DATA32_SEG, + MLX5_INLINE_DATA64_SEG, + MLX5_COMPRESSED, +}; + +enum mlx5_exp_cqe_zip_recv_type { + MLX5_CQE_FORMAT_HASH, + MLX5_CQE_FORMAT_CSUM, +}; + +#define MLX5E_CQE_FORMAT_MASK 0xc +static inline int mlx5_get_cqe_format(const struct mlx5_cqe64 *cqe) +{ + return (cqe->op_own & MLX5E_CQE_FORMAT_MASK) >> 2; +} + #endif /* MLX5_DEVICE_H */ Modified: head/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- head/sys/dev/mlx5/mlx5_en/en.h Mon Dec 28 18:36:00 2015 (r292837) +++ head/sys/dev/mlx5/mlx5_en/en.h Mon Dec 28 18:50:18 2015 (r292838) @@ -370,6 +370,7 @@ struct mlx5e_params { u16 tx_cq_moderation_pkts; u16 min_rx_wqes; bool hw_lro_en; + bool cqe_zipping_en; u32 lro_wqe_sz; u16 rx_hash_log_tbl_sz; }; @@ -390,7 +391,8 @@ struct mlx5e_params { m(+1, u64 tx_coalesce_usecs, "tx_coalesce_usecs", "Limit in usec for joining tx packets") \ m(+1, u64 tx_coalesce_pkts, "tx_coalesce_pkts", "Maximum number of tx packets to join") \ m(+1, u64 tx_coalesce_mode, "tx_coalesce_mode", "0: EQE mode 1: CQE mode") \ - m(+1, u64 hw_lro, "hw_lro", "set to enable hw_lro") + m(+1, u64 hw_lro, "hw_lro", "set to enable hw_lro") \ + m(+1, u64 cqe_zipping, "cqe_zipping", "0 : CQE zipping disabled") #define MLX5E_PARAMS_NUM (0 MLX5E_PARAMS(MLX5E_STATS_COUNT)) Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Dec 28 18:36:00 2015 (r292837) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Dec 28 18:50:18 2015 (r292838) @@ -204,6 +204,18 @@ mlx5e_ethtool_handler(SYSCTL_HANDLER_ARG priv->params.hw_lro_en = false; } + if (&priv->params_ethtool.arg[arg2] == + &priv->params_ethtool.cqe_zipping) { + if (priv->params_ethtool.cqe_zipping && + MLX5_CAP_GEN(priv->mdev, cqe_compression)) { + priv->params.cqe_zipping_en = true; + priv->params_ethtool.cqe_zipping = 1; + } else { + priv->params.cqe_zipping_en = false; + priv->params_ethtool.cqe_zipping = 0; + } + } + if (was_opened) mlx5e_open_locked(priv->ifp); done: @@ -472,6 +484,7 @@ mlx5e_create_ethtool(struct mlx5e_priv * priv->params_ethtool.tx_coalesce_usecs = priv->params.tx_cq_moderation_usec; priv->params_ethtool.tx_coalesce_pkts = priv->params.tx_cq_moderation_pkts; priv->params_ethtool.hw_lro = priv->params.hw_lro_en; + priv->params_ethtool.cqe_zipping = priv->params.cqe_zipping_en; /* create root node */ node = SYSCTL_ADD_NODE(&priv->sysctl_ctx, Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Dec 28 18:36:00 2015 (r292837) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Dec 28 18:50:18 2015 (r292838) @@ -1604,6 +1604,16 @@ mlx5e_build_rx_cq_param(struct mlx5e_pri { void *cqc = param->cqc; + + /* + * TODO The sysctl to control on/off is a bool value for now, which means + * we only support CSUM, once HASH is implemnted we'll need to address that. + */ + if (priv->params.cqe_zipping_en) { + MLX5_SET(cqc, cqc, mini_cqe_res_format, MLX5_CQE_FORMAT_CSUM); + MLX5_SET(cqc, cqc, cqe_compression_en, 1); + } + MLX5_SET(cqc, cqc, log_cq_size, priv->params.log_rq_size); MLX5_SET(cqc, cqc, cq_period, priv->params.rx_cq_moderation_usec); MLX5_SET(cqc, cqc, cq_max_count, priv->params.rx_cq_moderation_pkts); @@ -2571,6 +2581,8 @@ mlx5e_build_ifp_priv(struct mlx5_core_de priv->params.hw_lro_en = false; priv->params.lro_wqe_sz = MLX5E_PARAMS_DEFAULT_LRO_WQE_SZ; + priv->params.cqe_zipping_en = !!MLX5_CAP_GEN(mdev, cqe_compression); + priv->mdev = mdev; priv->params.num_channels = num_comp_vectors; priv->order_base_2_num_channels = order_base_2(num_comp_vectors); Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c Mon Dec 28 18:36:00 2015 (r292837) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c Mon Dec 28 18:50:18 2015 (r292838) @@ -248,6 +248,69 @@ mlx5e_build_rx_mbuf(struct mlx5_cqe64 *c } } +static inline void +mlx5e_read_cqe_slot(struct mlx5e_cq *cq, u32 cc, void *data) +{ + memcpy(data, mlx5_cqwq_get_wqe(&cq->wq, (cc & cq->wq.sz_m1)), + sizeof(struct mlx5_cqe64)); +} + +static inline void +mlx5e_write_cqe_slot(struct mlx5e_cq *cq, u32 cc, void *data) +{ + memcpy(mlx5_cqwq_get_wqe(&cq->wq, cc & cq->wq.sz_m1), + data, sizeof(struct mlx5_cqe64)); +} + +static inline void +mlx5e_decompress_cqe(struct mlx5e_cq *cq, struct mlx5_cqe64 *title, + struct mlx5_mini_cqe8 *mini, + u16 wqe_counter, int i) +{ + title->byte_cnt = mini->byte_cnt; + title->wqe_counter = cpu_to_be16((wqe_counter + i) & cq->wq.sz_m1); + title->check_sum = mini->checksum; + title->op_own = (title->op_own & 0xf0) | + (((cq->wq.cc + i) >> cq->wq.log_sz) & 1); +} + +#define MLX5E_MINI_ARRAY_SZ 8 +/* Make sure structs are not packet differently */ +CTASSERT(sizeof(struct mlx5_cqe64) == + sizeof(struct mlx5_mini_cqe8) * MLX5E_MINI_ARRAY_SZ); +static void +mlx5e_decompress_cqes(struct mlx5e_cq *cq) +{ + struct mlx5_mini_cqe8 mini_array[MLX5E_MINI_ARRAY_SZ]; + struct mlx5_cqe64 title; + u32 cqe_count; + u32 i = 0; + u16 title_wqe_counter; + + mlx5e_read_cqe_slot(cq, cq->wq.cc, &title); + title_wqe_counter = be16_to_cpu(title.wqe_counter); + cqe_count = be32_to_cpu(title.byte_cnt); + + /* Make sure we won't overflow */ + KASSERT(cqe_count <= cq->wq.sz_m1, + ("%s: cqe_count %u > cq->wq.sz_m1 %u", __func__, + cqe_count, cq->wq.sz_m1)); + + mlx5e_read_cqe_slot(cq, cq->wq.cc + 1, mini_array); + while (true) { + mlx5e_decompress_cqe(cq, &title, + &mini_array[i % MLX5E_MINI_ARRAY_SZ], + title_wqe_counter, i); + mlx5e_write_cqe_slot(cq, cq->wq.cc + i, &title); + i++; + + if (i == cqe_count) + break; + if (i % MLX5E_MINI_ARRAY_SZ == 0) + mlx5e_read_cqe_slot(cq, cq->wq.cc + i, mini_array); + } +} + static int mlx5e_poll_rx_cq(struct mlx5e_rq *rq, int budget) { @@ -268,6 +331,11 @@ mlx5e_poll_rx_cq(struct mlx5e_rq *rq, in if (!cqe) break; + if (mlx5_get_cqe_format(cqe) == MLX5_COMPRESSED) + mlx5e_decompress_cqes(&rq->cq); + + mlx5_cqwq_pop(&rq->cq.wq); + wqe_counter_be = cqe->wqe_counter; wqe_counter = be16_to_cpu(wqe_counter_be); wqe = mlx5_wq_ll_get_wqe(&rq->wq, wqe_counter); Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Mon Dec 28 18:36:00 2015 (r292837) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Mon Dec 28 18:50:18 2015 (r292838) @@ -383,6 +383,8 @@ mlx5e_poll_tx_cq(struct mlx5e_sq *sq, in if (!cqe) break; + mlx5_cqwq_pop(&sq->cq.wq); + ci = sqcc & sq->wq.sz_m1; mb = sq->mbuf[ci].mbuf; sq->mbuf[ci].mbuf = NULL; /* Safety clear */ Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c Mon Dec 28 18:36:00 2015 (r292837) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c Mon Dec 28 18:50:18 2015 (r292838) @@ -37,8 +37,6 @@ mlx5e_get_cqe(struct mlx5e_cq *cq) if ((cqe->op_own ^ mlx5_cqwq_get_wrap_cnt(&cq->wq)) & MLX5_CQE_OWNER_MASK) return (NULL); - mlx5_cqwq_pop(&cq->wq); - /* ensure cqe content is read after cqe ownership bit */ rmb(); From owner-svn-src-all@freebsd.org Mon Dec 28 19:29:07 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1153DA53D6A; Mon, 28 Dec 2015 19:29:07 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF8C81826; Mon, 28 Dec 2015 19:29:06 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSJT5nA016138; Mon, 28 Dec 2015 19:29:05 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSJT5H2016137; Mon, 28 Dec 2015 19:29:05 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201512281929.tBSJT5H2016137@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Mon, 28 Dec 2015 19:29:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292839 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 19:29:07 -0000 Author: dteske Date: Mon Dec 28 19:29:05 2015 New Revision: 292839 URL: https://svnweb.freebsd.org/changeset/base/292839 Log: Add interests/maintainerships + notes Modified: head/MAINTAINERS Modified: head/MAINTAINERS ============================================================================== --- head/MAINTAINERS Mon Dec 28 18:50:18 2015 (r292838) +++ head/MAINTAINERS Mon Dec 28 19:29:05 2015 (r292839) @@ -56,7 +56,9 @@ isci(4) jimharris Pre-commit review req iwm(4) adrian Pre-commit review requested, send to freebsd-wireless@freebsd.org iwn(4) adrian Pre-commit review requested, send to freebsd-wireless@freebsd.org kqueue jmg Pre-commit review requested. Documentation Required. +libdpv dteske Pre-commit review requested. Keep in sync with dpv(1). libfetch des Pre-commit review requested. +libfigpar dteske Pre-commit review requested. libpam des Pre-commit review requested. linprocfs des Pre-commit review requested. lpr gad Pre-commit review requested, particularly for @@ -85,6 +87,7 @@ sh(1) jilles Pre-commit review request compiled in as builtins. share/mk imp, bapt, bdrewery, emaste, sjg Make is hard. share/mk/*.test.mk freebsd-testing,ngie (same list as share/mk too) Pre-commit review requested. +sys/boot/forth dteske Pre-commit review requested. sys/compat/linuxkpi hselasky If in doubt, ask. sys/dev/e1000 erj Pre-commit phabricator review requested. sys/dev/ixgbe erj Pre-commit phabricator review requested. @@ -94,5 +97,8 @@ sys/dev/usb hselasky If in doubt, ask. sys/netinet/ip_carp.c glebius Pre-commit review recommended. sys/netpfil/pf kp,glebius Pre-commit review recommended. tests freebsd-testing,ngie Pre-commit review requested. +usr.sbin/bsdconfig dteske Pre-commit phabricator review requested. +usr.sbin/dpv dteske Pre-commit review requested. Keep in sync with libdpv. usr.sbin/pkg pkg@ Please coordinate behavior or flag changes with pkg team. +usr.sbin/sysrc dteske Pre-commit phabricator review requested. Keep in sync with bsdconfig(8) sysrc.subr. vmm(4) neel,grehan Pre-commit review requested. From owner-svn-src-all@freebsd.org Mon Dec 28 19:42:41 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E7F0A5416B; Mon, 28 Dec 2015 19:42:41 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0F46E1E3E; Mon, 28 Dec 2015 19:42:41 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 6922CB93E; Mon, 28 Dec 2015 14:42:39 -0500 (EST) From: John Baldwin To: Warner Losh Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292809 - head/lib/libc/stdio Date: Mon, 28 Dec 2015 09:21:30 -0800 Message-ID: <41508412.yspAtSoPCD@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.2-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <201512272304.tBRN4C5D034464@repo.freebsd.org> References: <201512272304.tBRN4C5D034464@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Mon, 28 Dec 2015 14:42:39 -0500 (EST) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 19:42:41 -0000 On Sunday, December 27, 2015 11:04:12 PM Warner Losh wrote: > Author: imp > Date: Sun Dec 27 23:04:11 2015 > New Revision: 292809 > URL: https://svnweb.freebsd.org/changeset/base/292809 > > Log: > The FILE structure has a mbstate_t in it. This structure needs to be > aligned on a int64_t boundary. However, when we allocate the array of > these structures, we use ALIGNBYTES which defaults to sizeof(int) on > arm, i386 and others. The i386 stuff can handle unaligned accesses > seemlessly. However, arm cannot. Take this into account when creating > the array of FILEs, and add some comments about why. > > Differential Revision: https://reviews.freebsd.org/D4708 > > Modified: > head/lib/libc/stdio/findfp.c > > Modified: head/lib/libc/stdio/findfp.c > ============================================================================== > --- head/lib/libc/stdio/findfp.c Sun Dec 27 23:04:10 2015 (r292808) > +++ head/lib/libc/stdio/findfp.c Sun Dec 27 23:04:11 2015 (r292809) > @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > +#include > #include > > #include > @@ -96,11 +97,22 @@ moreglue(int n) > struct glue *g; > static FILE empty = { ._fl_mutex = PTHREAD_MUTEX_INITIALIZER }; > FILE *p; > + size_t align; > > - g = (struct glue *)malloc(sizeof(*g) + ALIGNBYTES + n * sizeof(FILE)); > + /* > + * FILE has a mbstate_t variable. This variable tries to be int64_t > + * aligned through its definition. int64_t may be larger than void *, > + * which is the size traditionally used for ALIGNBYTES. So, use our own > + * rounding instead of the MI ALIGN macros. If for some reason > + * ALIGNBYTES is larger than int64_t, respect that too. There appears to > + * be no portable way to ask for FILE's alignment requirements other > + * than just knowing here. > + */ > + align = MAX(ALIGNBYTES, sizeof(int64_t)); > + g = (struct glue *)malloc(sizeof(*g) + align + n * sizeof(FILE)); > if (g == NULL) > return (NULL); > - p = (FILE *)ALIGN(g + 1); > + p = (FILE *)roundup((uintptr_t)(g + 1), align); Can this use posix_memalign() rather than doing the alignment by hand? -- John Baldwin From owner-svn-src-all@freebsd.org Mon Dec 28 20:01:28 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 790ACA54644 for ; Mon, 28 Dec 2015 20:01:28 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qg0-x229.google.com (mail-qg0-x229.google.com [IPv6:2607:f8b0:400d:c04::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2E1B11793 for ; Mon, 28 Dec 2015 20:01:28 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qg0-x229.google.com with SMTP id 6so75087159qgy.1 for ; Mon, 28 Dec 2015 12:01:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=kOfT2RuXtm7sfTBFx9X0pQQgYTDbRADZFle+IarMY5I=; b=Nnp2iLR6j3LEjMrCswkeH5iwygr8izdD4Kk3V56nSoY8sWKVRyfhEpe1or+HvjoToO j9ljNUcrrUF3zDk5jA6XRF2serFM6BORJK5AqxOvdyAC45qAWJ8RoRam9L1MmxfEejp2 U8psF6owDVkmKr7pbhFMEO0VUm2ERlG7Cq//6JHODUOKaE9fjwqmg4hncKd7k5xUbga+ m9PefrnWGmODcRKZ9xQbk1TJ3JDpJOAgyRAEDbdR+LacxiCA23b+JWRRSPgTwEQgIiGQ 8ag7USMLp71L3pxaXvGzyG26pRDBxw6r0NCyMrNWAUtRvQJA18O1ETtVwH7ce5ApUNtL xGNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=kOfT2RuXtm7sfTBFx9X0pQQgYTDbRADZFle+IarMY5I=; b=Tcn1EMGjuiNnHIwrZt2E+gh9ACzP/sZIVGlfItEsRWjqgrNiwD4aNSQIsaDRN3vVs0 xHnq1EwEDi1T8iMbt7XBYR2WkkV7LWAltlyQx5zBC4AqldY4werLwrEXK08D13axWKcP uaXxjTLB8VPJHFZVge6Df0ODJ42Ra4B0r5l4JS/u5h+eAxbmG5SYk7eK2Lvqc6E0EPki ZAlqlq4Ds3KnAf3rjgXsyca85bXiRdSSO8gbgb4/I+MqfwKXeu1WC12FTeM0II8UvCVW 1PHHqxBT2eupg28j5761B6cu0x8RmAi/ptN4C9UyLqMWNQSoFwD3R+9u+2dZb6u6DAaM oG8Q== X-Gm-Message-State: ALoCoQl9mj9SyGxr7Qw4BEeOsdJqDYV+y9KaRhUi2SrKUXu0HYSBfu5Hnmvm9B0c2FVOdnWZGy7IV1ckwZvmoO2B2vEd3RqDCw== MIME-Version: 1.0 X-Received: by 10.140.30.197 with SMTP id d63mr72607489qgd.81.1451332887021; Mon, 28 Dec 2015 12:01:27 -0800 (PST) Sender: wlosh@bsdimp.com Received: by 10.140.27.181 with HTTP; Mon, 28 Dec 2015 12:01:26 -0800 (PST) X-Originating-IP: [2607:fb90:1908:5378:0:46:97bd:7401] Received: by 10.140.27.181 with HTTP; Mon, 28 Dec 2015 12:01:26 -0800 (PST) In-Reply-To: <41508412.yspAtSoPCD@ralph.baldwin.cx> References: <201512272304.tBRN4C5D034464@repo.freebsd.org> <41508412.yspAtSoPCD@ralph.baldwin.cx> Date: Mon, 28 Dec 2015 13:01:26 -0700 X-Google-Sender-Auth: VYwPxta0azBLs76t7XqmM_ne0i8 Message-ID: Subject: Re: svn commit: r292809 - head/lib/libc/stdio From: Warner Losh To: John Baldwin Cc: src-committers , svn-src-head@freebsd.org, svn-src-all@freebsd.org, Warner Losh Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 20:01:28 -0000 I'll look at that, but I don't think posix_memalign is the right way to go. The alignment of FILE is more strict than posix_memalign will return. Ian's idea of __alignof__ is the way to go. We allocate them in one block on purpose for performance, and posix_memalign would be a one at a time affair. Warner On Dec 28, 2015 12:42 PM, "John Baldwin" wrote: > On Sunday, December 27, 2015 11:04:12 PM Warner Losh wrote: > > Author: imp > > Date: Sun Dec 27 23:04:11 2015 > > New Revision: 292809 > > URL: https://svnweb.freebsd.org/changeset/base/292809 > > > > Log: > > The FILE structure has a mbstate_t in it. This structure needs to be > > aligned on a int64_t boundary. However, when we allocate the array of > > these structures, we use ALIGNBYTES which defaults to sizeof(int) on > > arm, i386 and others. The i386 stuff can handle unaligned accesses > > seemlessly. However, arm cannot. Take this into account when creating > > the array of FILEs, and add some comments about why. > > > > Differential Revision: https://reviews.freebsd.org/D4708 > > > > Modified: > > head/lib/libc/stdio/findfp.c > > > > Modified: head/lib/libc/stdio/findfp.c > > > ============================================================================== > > --- head/lib/libc/stdio/findfp.c Sun Dec 27 23:04:10 2015 > (r292808) > > +++ head/lib/libc/stdio/findfp.c Sun Dec 27 23:04:11 2015 > (r292809) > > @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); > > #include > > #include > > #include > > +#include > > #include > > > > #include > > @@ -96,11 +97,22 @@ moreglue(int n) > > struct glue *g; > > static FILE empty = { ._fl_mutex = PTHREAD_MUTEX_INITIALIZER }; > > FILE *p; > > + size_t align; > > > > - g = (struct glue *)malloc(sizeof(*g) + ALIGNBYTES + n * > sizeof(FILE)); > > + /* > > + * FILE has a mbstate_t variable. This variable tries to be int64_t > > + * aligned through its definition. int64_t may be larger than void > *, > > + * which is the size traditionally used for ALIGNBYTES. So, use > our own > > + * rounding instead of the MI ALIGN macros. If for some reason > > + * ALIGNBYTES is larger than int64_t, respect that too. There > appears to > > + * be no portable way to ask for FILE's alignment requirements > other > > + * than just knowing here. > > + */ > > + align = MAX(ALIGNBYTES, sizeof(int64_t)); > > + g = (struct glue *)malloc(sizeof(*g) + align + n * sizeof(FILE)); > > if (g == NULL) > > return (NULL); > > - p = (FILE *)ALIGN(g + 1); > > + p = (FILE *)roundup((uintptr_t)(g + 1), align); > > Can this use posix_memalign() rather than doing the alignment by hand? > > -- > John Baldwin > From owner-svn-src-all@freebsd.org Mon Dec 28 20:24:09 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C258BA54D8F; Mon, 28 Dec 2015 20:24:09 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 949DE1188; Mon, 28 Dec 2015 20:24:09 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSKO81N033104; Mon, 28 Dec 2015 20:24:08 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSKO8oh033103; Mon, 28 Dec 2015 20:24:08 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512282024.tBSKO8oh033103@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Mon, 28 Dec 2015 20:24:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292840 - head/sys/dev/puc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 20:24:09 -0000 Author: marius Date: Mon Dec 28 20:24:08 2015 New Revision: 292840 URL: https://svnweb.freebsd.org/changeset/base/292840 Log: - Add an entry for the SIIG Cyber 2SP1 PCIe adapter, which is based on an Oxford Semiconductor OX16PCI954 but uses only two ports and a non-default clock rate. - Fix style/whitespace PR: 176407 MFC after: 3 days Modified: head/sys/dev/puc/pucdata.c Modified: head/sys/dev/puc/pucdata.c ============================================================================== --- head/sys/dev/puc/pucdata.c Mon Dec 28 19:29:05 2015 (r292839) +++ head/sys/dev/puc/pucdata.c Mon Dec 28 20:24:08 2015 (r292840) @@ -763,6 +763,12 @@ const struct puc_cfg puc_pci_devices[] = PUC_PORT_4S, 0x10, 0, 8, }, + { 0x1415, 0x950a, 0x131f, 0x2061, + "SIIG Cyber 2SP1 PCIe", + DEFAULT_RCLK * 10, + PUC_PORT_2S, 0x10, 0, 8, + }, + { 0x1415, 0x950a, 0xffff, 0, "Oxford Semiconductor OX16PCI954 UARTs", DEFAULT_RCLK, @@ -840,9 +846,9 @@ const struct puc_cfg puc_pci_devices[] = */ { 0x1415, 0xc11b, 0xffff, 0, - "Oxford Semiconductor OXPCIe952 1S1P", - DEFAULT_RCLK * 0x22, - PUC_PORT_NONSTANDARD, 0x10, 0, -1, + "Oxford Semiconductor OXPCIe952 1S1P", + DEFAULT_RCLK * 0x22, + PUC_PORT_NONSTANDARD, 0x10, 0, -1, .config_function = puc_config_oxford_pcie }, @@ -1275,7 +1281,8 @@ puc_config_moxa(struct puc_softc *sc, en if (cmd == PUC_CFG_GET_OFS) { const struct puc_cfg *cfg = sc->sc_cfg; - if (port == 3 && (cfg->device == 0x1045 || cfg->device == 0x1144)) + if (port == 3 && (cfg->device == 0x1045 || + cfg->device == 0x1144)) port = 7; *res = port * 0x200; From owner-svn-src-all@freebsd.org Mon Dec 28 21:15:47 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A0A8FA54B44; Mon, 28 Dec 2015 21:15:47 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail104.syd.optusnet.com.au (mail104.syd.optusnet.com.au [211.29.132.246]) by mx1.freebsd.org (Postfix) with ESMTP id 46F72130E; Mon, 28 Dec 2015 21:15:46 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail104.syd.optusnet.com.au (Postfix) with ESMTPS id B6A36426246; Tue, 29 Dec 2015 08:15:37 +1100 (AEDT) Date: Tue, 29 Dec 2015 08:15:37 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Garrett Cooper cc: Konstantin Belousov , Ian Lepore , Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern In-Reply-To: <2CA74F95-00A0-4453-847E-0C6C59B57021@gmail.com> Message-ID: <20151229070443.X864@besplex.bde.org> References: <201512271537.tBRFb7nN095297@repo.freebsd.org> <1451236237.1369.9.camel@freebsd.org> <20151228083418.B1014@besplex.bde.org> <20151228081313.GM3625@kib.kiev.ua> <20151228200006.Q2819@besplex.bde.org> <2CA74F95-00A0-4453-847E-0C6C59B57021@gmail.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=PfoC/XVd c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=8fz06vd0j3YbmxNQynQA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 21:15:47 -0000 On Mon, 28 Dec 2015, Garrett Cooper wrote: > >> On Dec 28, 2015, at 02:17, Bruce Evans wrote: > > ... > >> It is not unreasonable to panic when such tests fail, just like for other >> settings of unreasonable values. Only the superuser can make them, and >> the superuser should know better than to run them on production systems. > > On a development system, this is perfectly reasonable. However, on systems in production, dying on asserts or panicking when unexpected input is encountered instead of erroring out appropriately is not ideal: it causes unnecessary downtime and can confuse others (customers, lower level admins) who are not fully aware of how UNIX and FreeBSD works (and in turn generate support calls and bug reports). This is sort of backwards. Unexpected cases by definition have no code to handle them. If you are lucky then they will be detected by an assertion or a bad pointer and cause a panic before they do further damage. Bad pointers works better for this since they cannot be turned off on production systems. Out of bounds input that is expected can be handled, but the handling can still reasonably be to panic. For example, add assertions at the lowest level that values are within bounds for the BCD array. This "handles" the bad input that is "expected" from buggy upper layers. Panics for expected cases are easier to avoid (or cause) than for unexpected cases. The super user should avoid them. Malicious users should try to caus them. But when the syscall that causes them is privileged, the malicious users can't get far. Another easy way to trigger the panic is: - abuse the adjkerntz sysctl to set a huge negative offset. utc_offset() is normally small, so it can only produce negative times from positive times in the Western hemisphere for times near the Epoch. The adjkerntz offset is added in utc_offset() so it can reach 68 years back from the current time, i.e., to 1947. The adjkerntz sysctl, like most sysctls, is correctly implemented with no bounds checking. Callers are trusted to know more about the correct bounds than the kernel. A not so way way to trigger the panic is: - set the time in the BIOS to before the Epoch if the BIOS supports that. Say 1969/01/01. - set this time in the kernel by booting if you can do that. On x86, this requires configuring with USE_RTC_CENTURY to prevent 1969 being interpreted as 2069. You now have a negative time. - find or create an ntp server that supports times before the Epoch, and set its time to 1969/01/01 - wait to sync with the ntp server with the fake time. The dubious periodic refresh of the TODR when the time is synced with ntp is not even an option and the default period is 1800 seconds. Also wait for the refresh. resettodr() is then called with a negative time. ntpd normally uses microadjustments so it is not affected by restrictions in settime(). I don't know of any other way of trying to write back the current time, and ntpd with a non-fake time doesn't do it because 1969 can only be in sync with a fake time. The periodic refresh is dubious because at least on x86 the RTC reading and setting code is sloppy and has an error of about 1 second each, and races. So setting the RTC more accurately than 1-2 seconds is worse than useless (it rarely helps, and may lose to races). It can be kept that accurate by setting it much less often than twice per hour, except for the initial setting after booting which is best done by ntpdate. Everything is best handled in userland. adjkerntz(8) handles more complicated things, and the adjkerntz sysctl can be used at any time for its side effect of calling resettodr(). The badly named machdep.disable_rtc_set sysctl still exists and is still used by adjkerntz(8) to make resettodr() do nothing. This is normally enabled, but adjkerntz(8) disables it transiently to avoid setting the RTC too often. This could be disabled more permantly to stop buggy things like settime() and the ntpd refresh ever setting the RTC. IIRC, adjkerntz(8) is fairly careful with this sysctl and restores it to its previous state after using it. Bruce From owner-svn-src-all@freebsd.org Mon Dec 28 21:35:07 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D3FBCA53174; Mon, 28 Dec 2015 21:35:07 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A40DA1BFE; Mon, 28 Dec 2015 21:35:07 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSLZ6ZQ053521; Mon, 28 Dec 2015 21:35:06 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSLZ6cC053520; Mon, 28 Dec 2015 21:35:06 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201512282135.tBSLZ6cC053520@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Mon, 28 Dec 2015 21:35:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292841 - stable/10/etc/defaults X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 21:35:07 -0000 Author: jilles Date: Mon Dec 28 21:35:06 2015 New Revision: 292841 URL: https://svnweb.freebsd.org/changeset/base/292841 Log: MFC r290515: periodic: Fix backwards compatibility for daily_status_security_* vars. Most daily_status_security_* variables in periodic.conf were changed to security_status_* in SVN r254974. The compatibility code for the old names did not work. PR: 204331 Submitted by: martin at lispworks.com Modified: stable/10/etc/defaults/periodic.conf Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/defaults/periodic.conf ============================================================================== --- stable/10/etc/defaults/periodic.conf Mon Dec 28 20:24:08 2015 (r292840) +++ stable/10/etc/defaults/periodic.conf Mon Dec 28 21:35:06 2015 (r292841) @@ -319,8 +319,8 @@ if [ -z "${source_periodic_confs_defined "use \$$var instead." >&2 case "$value" in [Yy][Ee][Ss]) - $var=YES - $periodvar=daily + eval $var=YES + eval $periodvar=daily ;; *) eval $var=\"$value\" From owner-svn-src-all@freebsd.org Mon Dec 28 22:20:02 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6D883A54095; Mon, 28 Dec 2015 22:20:02 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3E12A1CAA; Mon, 28 Dec 2015 22:20:02 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSMK10S065220; Mon, 28 Dec 2015 22:20:01 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSMK1SL065219; Mon, 28 Dec 2015 22:20:01 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201512282220.tBSMK1SL065219@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Mon, 28 Dec 2015 22:20:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r292842 - svnadmin/conf X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 22:20:02 -0000 Author: bapt Date: Mon Dec 28 22:20:01 2015 New Revision: 292842 URL: https://svnweb.freebsd.org/changeset/base/292842 Log: Free Allan Jude (allanjude@) from mentorship Discussed with: marcel Modified: svnadmin/conf/mentors Modified: svnadmin/conf/mentors ============================================================================== --- svnadmin/conf/mentors Mon Dec 28 21:35:06 2015 (r292841) +++ svnadmin/conf/mentors Mon Dec 28 22:20:01 2015 (r292842) @@ -12,7 +12,6 @@ # Mentee Mentor Optional comment achim scottl Co-mentor: emaste agc scottl Co-mentor: emax -allanjude bapt Co-mentor: marcel araujo bapt Co-mentor: rodrigc avos adrian benl philip Co-mentor: simon From owner-svn-src-all@freebsd.org Mon Dec 28 23:05:14 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0F88A54F6E; Mon, 28 Dec 2015 23:05:14 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7AAD61239; Mon, 28 Dec 2015 23:05:14 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSN5DV2080138; Mon, 28 Dec 2015 23:05:13 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSN5DIW080134; Mon, 28 Dec 2015 23:05:13 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512282305.tBSN5DIW080134@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Mon, 28 Dec 2015 23:05:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292844 - in stable/10: etc/mtree lib/libc/tests lib/libc/tests/nss lib/libc/tests/resolv X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 23:05:14 -0000 Author: ngie Date: Mon Dec 28 23:05:13 2015 New Revision: 292844 URL: https://svnweb.freebsd.org/changeset/base/292844 Log: MFC r292317,r292318,r292323,r292324,r292665: r292317: Integrate tools/regression/lib/libc/resolv into the FreeBSD test suite as lib/libc/tests/resolv Convert the testcases to ATF Sponsored by: EMC / Isilon Storage Division r292318: Add Makefile accidentally missed in r292317 Sponsored by: EMC / Isilon Storage Division r292323: Integrate tools/regression/lib/libc/nss into the FreeBSD test suite as lib/libc/tests/nss - Convert the testcases to ATF - Do some style(9) cleanups: -- Sort headers -- Apply indentation fixes -- Remove superfluous parentheses - Explicitly print out debug printfs for use with `kyua {debug,report}`; for items that were overly noisy, they've been put behind #ifdef DEBUG conditionals - Fix some format strings Sponsored by: EMC / Isilon Storage Division r292324: Iterate down lib/libc/tests/nss... Sponsored by: EMC / Isilon Storage Division r292665: Increase the timeout for resolv_test from the default (300 seconds) to 450 seconds This is required on slower network connections, and on older releases (stable/10 seems to be slower as far as name resolution goes.. not sure why yet). Remove an outdated comment in the Makefile from when I was working on this code over a year ago on github Sponsored by: EMC / Isilon Storage Division Added: stable/10/lib/libc/tests/nss/ - copied from r292323, head/lib/libc/tests/nss/ stable/10/lib/libc/tests/resolv/ - copied from r292317, head/lib/libc/tests/resolv/ stable/10/lib/libc/tests/resolv/Makefile - copied, changed from r292318, head/lib/libc/tests/resolv/Makefile Modified: stable/10/etc/mtree/BSD.tests.dist stable/10/lib/libc/tests/Makefile stable/10/lib/libc/tests/resolv/resolv_test.c Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/mtree/BSD.tests.dist ============================================================================== --- stable/10/etc/mtree/BSD.tests.dist Mon Dec 28 22:52:36 2015 (r292843) +++ stable/10/etc/mtree/BSD.tests.dist Mon Dec 28 23:05:13 2015 (r292844) @@ -109,10 +109,14 @@ .. .. .. + nss + .. regex data .. .. + resolv + .. rpc .. ssp Modified: stable/10/lib/libc/tests/Makefile ============================================================================== --- stable/10/lib/libc/tests/Makefile Mon Dec 28 22:52:36 2015 (r292843) +++ stable/10/lib/libc/tests/Makefile Mon Dec 28 23:05:13 2015 (r292844) @@ -12,7 +12,9 @@ TESTS_SUBDIRS+= gen TESTS_SUBDIRS+= hash TESTS_SUBDIRS+= inet TESTS_SUBDIRS+= net +TESTS_SUBDIRS+= nss TESTS_SUBDIRS+= regex +TESTS_SUBDIRS+= resolv TESTS_SUBDIRS+= rpc TESTS_SUBDIRS+= stdio TESTS_SUBDIRS+= stdlib Copied and modified: stable/10/lib/libc/tests/resolv/Makefile (from r292318, head/lib/libc/tests/resolv/Makefile) ============================================================================== --- head/lib/libc/tests/resolv/Makefile Wed Dec 16 05:19:07 2015 (r292318, copy source) +++ stable/10/lib/libc/tests/resolv/Makefile Mon Dec 28 23:05:13 2015 (r292844) @@ -6,10 +6,10 @@ BINDIR= ${TESTSDIR} FILES+= mach ATF_TESTS_C+= resolv_test -#TEST_METADATA.resolv_test= timeout="1800" # Note: this test relies on being dynamically linked. You will get a # spurious PASS for a statically linked test. -LIBADD.resolv_test+= pthread +DPADD.resolv_test+= ${LIBPTHREAD} +LDADD.resolv_test+= -lpthread .include Modified: stable/10/lib/libc/tests/resolv/resolv_test.c ============================================================================== --- head/lib/libc/tests/resolv/resolv_test.c Wed Dec 16 05:11:57 2015 (r292317) +++ stable/10/lib/libc/tests/resolv/resolv_test.c Mon Dec 28 23:05:13 2015 (r292844) @@ -289,21 +289,31 @@ do { \ ATF_REQUIRE(run_tests(_hostlist_file, method) == 0); \ } while(0) -ATF_TC_WITHOUT_HEAD(getaddrinfo_test); +ATF_TC(getaddrinfo_test); +ATF_TC_HEAD(getaddrinfo_test, tc) { + atf_tc_set_md_var(tc, "timeout", "450"); +} ATF_TC_BODY(getaddrinfo_test, tc) { RUN_TESTS(tc, METHOD_GETADDRINFO); } -ATF_TC_WITHOUT_HEAD(gethostby_test); +ATF_TC(gethostby_test); +ATF_TC_HEAD(gethostby_test, tc) { + atf_tc_set_md_var(tc, "timeout", "450"); +} ATF_TC_BODY(gethostby_test, tc) { RUN_TESTS(tc, METHOD_GETHOSTBY); } -ATF_TC_WITHOUT_HEAD(getipnodeby_test); +ATF_TC(getipnodeby_test); +ATF_TC_HEAD(getipnodeby_test, tc) { + + atf_tc_set_md_var(tc, "timeout", "450"); +} ATF_TC_BODY(getipnodeby_test, tc) { From owner-svn-src-all@freebsd.org Mon Dec 28 23:32:29 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 14980A547A5; Mon, 28 Dec 2015 23:32:29 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C860F15B2; Mon, 28 Dec 2015 23:32:28 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSNWRJL089335; Mon, 28 Dec 2015 23:32:27 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSNWRTq089332; Mon, 28 Dec 2015 23:32:27 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512282332.tBSNWRTq089332@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Mon, 28 Dec 2015 23:32:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292845 - stable/10/tools/regression/mac/mac_portacl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 23:32:29 -0000 Author: ngie Date: Mon Dec 28 23:32:27 2015 New Revision: 292845 URL: https://svnweb.freebsd.org/changeset/base/292845 Log: MFC r292569: Make the mac_portacl testcases work / more robust - A trap(1) call has been added to the test scripts to better ensure that the tests do a better job at trying to restore the test host state at the end of the tests (if the test was interrupted before it would leave the system in an odd state, potentially making the test results for subsequent runs non-deterministic). - Add root user checks - Fix nc(1) usage: -- -o is deprecated -- Using `-w 10` will make the call timeout after 10 seconds so it doesn't block indefinitely - Use local variables - Be more terse in the error messages - Parameterize out "127.0.0.1" Sponsored by: EMC / Isilon Storage Division Modified: stable/10/tools/regression/mac/mac_portacl/misc.sh stable/10/tools/regression/mac/mac_portacl/nobody.t stable/10/tools/regression/mac/mac_portacl/root.t Directory Properties: stable/10/ (props changed) Modified: stable/10/tools/regression/mac/mac_portacl/misc.sh ============================================================================== --- stable/10/tools/regression/mac/mac_portacl/misc.sh Mon Dec 28 23:05:13 2015 (r292844) +++ stable/10/tools/regression/mac/mac_portacl/misc.sh Mon Dec 28 23:32:27 2015 (r292845) @@ -6,10 +6,18 @@ if [ $? -ne 0 ]; then echo "1..0 # SKIP MAC_PORTACL is unavailable." exit 0 fi +if [ $(id -u) -ne 0 ]; then + echo "1..0 # SKIP testcases must be run as root" + exit 0 +fi ntest=1 check_bind() { + local host idtype name proto port udpflag + + host="127.0.0.1" + idtype=${1} name=${2} proto=${3} @@ -17,10 +25,10 @@ check_bind() { [ "${proto}" = "udp" ] && udpflag="-u" - out=`( + out=$( case "${idtype}" in uid|gid) - ( echo -n | su -m ${name} -c "nc ${udpflag} -o -l 127.0.0.1 $port" 2>&1 ) & + ( echo -n | su -m ${name} -c "nc ${udpflag} -l -w 10 $host $port" 2>&1 ) & ;; jail) kill $$ @@ -29,9 +37,9 @@ check_bind() { kill $$ esac sleep 0.3 - echo | nc ${udpflag} -o 127.0.0.1 $port >/dev/null 2>&1 + echo | nc ${udpflag} -w 10 $host $port >/dev/null 2>&1 wait - )` + ) case "${out}" in "nc: Permission denied"*|"nc: Operation not permitted"*) echo fl @@ -46,6 +54,8 @@ check_bind() { } bind_test() { + local expect_without_rule expect_with_rule idtype name proto port + expect_without_rule=${1} expect_with_rule=${2} idtype=${3} @@ -54,40 +64,40 @@ bind_test() { port=${6} sysctl security.mac.portacl.rules= >/dev/null - out=`check_bind ${idtype} ${name} ${proto} ${port}` + out=$(check_bind ${idtype} ${name} ${proto} ${port}) if [ "${out}" = "${expect_without_rule}" ]; then echo "ok ${ntest}" elif [ "${out}" = "ok" -o "${out}" = "fl" ]; then - echo "not ok ${ntest}" + echo "not ok ${ntest} # '${out}' != '${expect_without_rule}'" else - echo "not ok ${ntest} # ${out}" + echo "not ok ${ntest} # unexpected output: '${out}'" fi - ntest=$((ntest+1)) + : $(( ntest += 1 )) if [ "${idtype}" = "uid" ]; then - idstr=`id -u ${name}` + idstr=$(id -u ${name}) elif [ "${idtype}" = "gid" ]; then - idstr=`id -g ${name}` + idstr=$(id -g ${name}) else idstr=${name} fi sysctl security.mac.portacl.rules=${idtype}:${idstr}:${proto}:${port} >/dev/null - out=`check_bind ${idtype} ${name} ${proto} ${port}` + out=$(check_bind ${idtype} ${name} ${proto} ${port}) if [ "${out}" = "${expect_with_rule}" ]; then echo "ok ${ntest}" elif [ "${out}" = "ok" -o "${out}" = "fl" ]; then - echo "not ok ${ntest}" + echo "not ok ${ntest} # '${out}' != '${expect_with_rule}'" else - echo "not ok ${ntest} # ${out}" + echo "not ok ${ntest} # unexpected output: '${out}'" fi - ntest=$((ntest+1)) + : $(( ntest += 1 )) sysctl security.mac.portacl.rules= >/dev/null } -reserved_high=`sysctl -n net.inet.ip.portrange.reservedhigh` -suser_exempt=`sysctl -n security.mac.portacl.suser_exempt` -port_high=`sysctl -n security.mac.portacl.port_high` +reserved_high=$(sysctl -n net.inet.ip.portrange.reservedhigh) +suser_exempt=$(sysctl -n security.mac.portacl.suser_exempt) +port_high=$(sysctl -n security.mac.portacl.port_high) restore_settings() { sysctl -n net.inet.ip.portrange.reservedhigh=${reserved_high} >/dev/null Modified: stable/10/tools/regression/mac/mac_portacl/nobody.t ============================================================================== --- stable/10/tools/regression/mac/mac_portacl/nobody.t Mon Dec 28 23:05:13 2015 (r292844) +++ stable/10/tools/regression/mac/mac_portacl/nobody.t Mon Dec 28 23:32:27 2015 (r292845) @@ -10,6 +10,8 @@ echo "1..64" # behaviour. # mac_portacl has no impact on ports <= net.inet.ip.portrange.reservedhigh. +trap restore_settings EXIT INT TERM + sysctl security.mac.portacl.suser_exempt=1 >/dev/null sysctl net.inet.ip.portrange.reservedhigh=78 >/dev/null @@ -63,5 +65,3 @@ bind_test fl ok gid nobody tcp 77 bind_test ok ok gid nobody tcp 7777 bind_test fl ok gid nobody udp 77 bind_test ok ok gid nobody udp 7777 - -restore_settings Modified: stable/10/tools/regression/mac/mac_portacl/root.t ============================================================================== --- stable/10/tools/regression/mac/mac_portacl/root.t Mon Dec 28 23:05:13 2015 (r292844) +++ stable/10/tools/regression/mac/mac_portacl/root.t Mon Dec 28 23:32:27 2015 (r292845) @@ -8,6 +8,8 @@ echo "1..48" # Verify if security.mac.portacl.suser_exempt=1 really exempts super-user. +trap restore_settings EXIT INT TERM + sysctl security.mac.portacl.suser_exempt=1 >/dev/null bind_test ok ok uid root tcp 77 @@ -47,5 +49,3 @@ bind_test fl ok gid root tcp 77 bind_test fl ok gid root tcp 7777 bind_test fl ok gid root udp 77 bind_test fl ok gid root udp 7777 - -restore_settings From owner-svn-src-all@freebsd.org Mon Dec 28 23:57:23 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A68B3A53162; Mon, 28 Dec 2015 23:57:23 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 784971235; Mon, 28 Dec 2015 23:57:23 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBSNvMMf095500; Mon, 28 Dec 2015 23:57:22 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBSNvMj9095499; Mon, 28 Dec 2015 23:57:22 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201512282357.tBSNvMj9095499@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Mon, 28 Dec 2015 23:57:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292846 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2015 23:57:23 -0000 Author: bapt Date: Mon Dec 28 23:57:22 2015 New Revision: 292846 URL: https://svnweb.freebsd.org/changeset/base/292846 Log: Restore dryrun support for pw groupmod Modified: head/usr.sbin/pw/pw_group.c Modified: head/usr.sbin/pw/pw_group.c ============================================================================== --- head/usr.sbin/pw/pw_group.c Mon Dec 28 23:32:27 2015 (r292845) +++ head/usr.sbin/pw/pw_group.c Mon Dec 28 23:57:22 2015 (r292846) @@ -664,6 +664,11 @@ pw_group_mod(int argc, char **argv, char grp_add_members(&grp, newmembers); } + if (dryrun) { + print_group(grp, pretty); + return (EXIT_SUCCESS); + } + if ((rc = chggrent(name, grp)) != 0) { if (rc == -1) errx(EX_IOERR, "group '%s' not available (NIS?)", From owner-svn-src-all@freebsd.org Tue Dec 29 00:02:10 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3613BA535A6; Tue, 29 Dec 2015 00:02:10 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 062B21802; Tue, 29 Dec 2015 00:02:09 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT029fw098291; Tue, 29 Dec 2015 00:02:09 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT029ng098290; Tue, 29 Dec 2015 00:02:09 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201512290002.tBT029ng098290@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Tue, 29 Dec 2015 00:02:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292847 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 00:02:10 -0000 Author: bapt Date: Tue Dec 29 00:02:08 2015 New Revision: 292847 URL: https://svnweb.freebsd.org/changeset/base/292847 Log: Remove useless assignement of linelen Modified: head/usr.sbin/pw/pw_vpw.c Modified: head/usr.sbin/pw/pw_vpw.c ============================================================================== --- head/usr.sbin/pw/pw_vpw.c Mon Dec 28 23:57:22 2015 (r292846) +++ head/usr.sbin/pw/pw_vpw.c Tue Dec 29 00:02:08 2015 (r292847) @@ -70,7 +70,6 @@ vnextpwent(char const *nam, uid_t uid, i pw = NULL; line = NULL; linecap = 0; - linelen = 0; if (pwd_fp != NULL || (pwd_fp = fopen(getpwpath(_MASTERPASSWD), "r")) != NULL) { while ((linelen = getline(&line, &linecap, pwd_fp)) > 0) { @@ -153,7 +152,6 @@ vnextgrent(char const *nam, gid_t gid, i gr = NULL; line = NULL; linecap = 0; - linelen = 0; if (grp_fp != NULL || (grp_fp = fopen(getgrpath(_GROUP), "r")) != NULL) { while ((linelen = getline(&line, &linecap, grp_fp)) > 0) { From owner-svn-src-all@freebsd.org Tue Dec 29 00:04:22 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ADB06A536E5; Tue, 29 Dec 2015 00:04:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 70BC71A23; Tue, 29 Dec 2015 00:04:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT04LgV098405; Tue, 29 Dec 2015 00:04:21 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT04LdG098402; Tue, 29 Dec 2015 00:04:21 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512290004.tBT04LdG098402@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 29 Dec 2015 00:04:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292848 - stable/9/tools/regression/mac/mac_portacl X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 00:04:22 -0000 Author: ngie Date: Tue Dec 29 00:04:21 2015 New Revision: 292848 URL: https://svnweb.freebsd.org/changeset/base/292848 Log: MFstable/10 r292845: MFC r292569: Make the mac_portacl testcases work / more robust - A trap(1) call has been added to the test scripts to better ensure that the tests do a better job at trying to restore the test host state at the end of the tests (if the test was interrupted before it would leave the system in an odd state, potentially making the test results for subsequent runs non-deterministic). - Add root user checks - Fix nc(1) usage: -- -o is deprecated -- Using `-w 10` will make the call timeout after 10 seconds so it doesn't block indefinitely - Use local variables - Be more terse in the error messages - Parameterize out "127.0.0.1" Sponsored by: EMC / Isilon Storage Division Modified: stable/9/tools/regression/mac/mac_portacl/misc.sh stable/9/tools/regression/mac/mac_portacl/nobody.t stable/9/tools/regression/mac/mac_portacl/root.t Directory Properties: stable/9/ (props changed) stable/9/tools/ (props changed) stable/9/tools/regression/ (props changed) Modified: stable/9/tools/regression/mac/mac_portacl/misc.sh ============================================================================== --- stable/9/tools/regression/mac/mac_portacl/misc.sh Tue Dec 29 00:02:08 2015 (r292847) +++ stable/9/tools/regression/mac/mac_portacl/misc.sh Tue Dec 29 00:04:21 2015 (r292848) @@ -6,10 +6,18 @@ if [ $? -ne 0 ]; then echo "1..0 # SKIP MAC_PORTACL is unavailable." exit 0 fi +if [ $(id -u) -ne 0 ]; then + echo "1..0 # SKIP testcases must be run as root" + exit 0 +fi ntest=1 check_bind() { + local host idtype name proto port udpflag + + host="127.0.0.1" + idtype=${1} name=${2} proto=${3} @@ -17,10 +25,10 @@ check_bind() { [ "${proto}" = "udp" ] && udpflag="-u" - out=`( + out=$( case "${idtype}" in uid|gid) - ( echo -n | su -m ${name} -c "nc ${udpflag} -o -l 127.0.0.1 $port" 2>&1 ) & + ( echo -n | su -m ${name} -c "nc ${udpflag} -l -w 10 $host $port" 2>&1 ) & ;; jail) kill $$ @@ -29,9 +37,9 @@ check_bind() { kill $$ esac sleep 0.3 - echo | nc ${udpflag} -o 127.0.0.1 $port >/dev/null 2>&1 + echo | nc ${udpflag} -w 10 $host $port >/dev/null 2>&1 wait - )` + ) case "${out}" in "nc: Permission denied"*|"nc: Operation not permitted"*) echo fl @@ -46,6 +54,8 @@ check_bind() { } bind_test() { + local expect_without_rule expect_with_rule idtype name proto port + expect_without_rule=${1} expect_with_rule=${2} idtype=${3} @@ -54,40 +64,40 @@ bind_test() { port=${6} sysctl security.mac.portacl.rules= >/dev/null - out=`check_bind ${idtype} ${name} ${proto} ${port}` + out=$(check_bind ${idtype} ${name} ${proto} ${port}) if [ "${out}" = "${expect_without_rule}" ]; then echo "ok ${ntest}" elif [ "${out}" = "ok" -o "${out}" = "fl" ]; then - echo "not ok ${ntest}" + echo "not ok ${ntest} # '${out}' != '${expect_without_rule}'" else - echo "not ok ${ntest} # ${out}" + echo "not ok ${ntest} # unexpected output: '${out}'" fi - ntest=$((ntest+1)) + : $(( ntest += 1 )) if [ "${idtype}" = "uid" ]; then - idstr=`id -u ${name}` + idstr=$(id -u ${name}) elif [ "${idtype}" = "gid" ]; then - idstr=`id -g ${name}` + idstr=$(id -g ${name}) else idstr=${name} fi sysctl security.mac.portacl.rules=${idtype}:${idstr}:${proto}:${port} >/dev/null - out=`check_bind ${idtype} ${name} ${proto} ${port}` + out=$(check_bind ${idtype} ${name} ${proto} ${port}) if [ "${out}" = "${expect_with_rule}" ]; then echo "ok ${ntest}" elif [ "${out}" = "ok" -o "${out}" = "fl" ]; then - echo "not ok ${ntest}" + echo "not ok ${ntest} # '${out}' != '${expect_with_rule}'" else - echo "not ok ${ntest} # ${out}" + echo "not ok ${ntest} # unexpected output: '${out}'" fi - ntest=$((ntest+1)) + : $(( ntest += 1 )) sysctl security.mac.portacl.rules= >/dev/null } -reserved_high=`sysctl -n net.inet.ip.portrange.reservedhigh` -suser_exempt=`sysctl -n security.mac.portacl.suser_exempt` -port_high=`sysctl -n security.mac.portacl.port_high` +reserved_high=$(sysctl -n net.inet.ip.portrange.reservedhigh) +suser_exempt=$(sysctl -n security.mac.portacl.suser_exempt) +port_high=$(sysctl -n security.mac.portacl.port_high) restore_settings() { sysctl -n net.inet.ip.portrange.reservedhigh=${reserved_high} >/dev/null Modified: stable/9/tools/regression/mac/mac_portacl/nobody.t ============================================================================== --- stable/9/tools/regression/mac/mac_portacl/nobody.t Tue Dec 29 00:02:08 2015 (r292847) +++ stable/9/tools/regression/mac/mac_portacl/nobody.t Tue Dec 29 00:04:21 2015 (r292848) @@ -10,6 +10,8 @@ echo "1..64" # behaviour. # mac_portacl has no impact on ports <= net.inet.ip.portrange.reservedhigh. +trap restore_settings EXIT INT TERM + sysctl security.mac.portacl.suser_exempt=1 >/dev/null sysctl net.inet.ip.portrange.reservedhigh=78 >/dev/null @@ -63,5 +65,3 @@ bind_test fl ok gid nobody tcp 77 bind_test ok ok gid nobody tcp 7777 bind_test fl ok gid nobody udp 77 bind_test ok ok gid nobody udp 7777 - -restore_settings Modified: stable/9/tools/regression/mac/mac_portacl/root.t ============================================================================== --- stable/9/tools/regression/mac/mac_portacl/root.t Tue Dec 29 00:02:08 2015 (r292847) +++ stable/9/tools/regression/mac/mac_portacl/root.t Tue Dec 29 00:04:21 2015 (r292848) @@ -8,6 +8,8 @@ echo "1..48" # Verify if security.mac.portacl.suser_exempt=1 really exempts super-user. +trap restore_settings EXIT INT TERM + sysctl security.mac.portacl.suser_exempt=1 >/dev/null bind_test ok ok uid root tcp 77 @@ -47,5 +49,3 @@ bind_test fl ok gid root tcp 77 bind_test fl ok gid root tcp 7777 bind_test fl ok gid root udp 77 bind_test fl ok gid root udp 7777 - -restore_settings From owner-svn-src-all@freebsd.org Tue Dec 29 00:08:33 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5AB0DA537CC; Tue, 29 Dec 2015 00:08:33 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2AAC21BE3; Tue, 29 Dec 2015 00:08:33 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT08WQr098573; Tue, 29 Dec 2015 00:08:32 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT08WKM098572; Tue, 29 Dec 2015 00:08:32 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201512290008.tBT08WKM098572@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Tue, 29 Dec 2015 00:08:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292849 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 00:08:33 -0000 Author: bapt Date: Tue Dec 29 00:08:32 2015 New Revision: 292849 URL: https://svnweb.freebsd.org/changeset/base/292849 Log: Simplify code for parsing extra groups Modified: head/usr.sbin/pw/pw_conf.c Modified: head/usr.sbin/pw/pw_conf.c ============================================================================== --- head/usr.sbin/pw/pw_conf.c Tue Dec 29 00:04:21 2015 (r292848) +++ head/usr.sbin/pw/pw_conf.c Tue Dec 29 00:08:32 2015 (r292849) @@ -313,7 +313,7 @@ read_userconfig(char const * file) ? NULL : newstr(q); break; case _UC_EXTRAGROUPS: - for (i = 0; q != NULL; q = strtok(NULL, toks)) { + while ((q = strtok(NULL, toks)) != NULL) { if (config.groups == NULL) config.groups = sl_init(); sl_add(config.groups, newstr(q)); From owner-svn-src-all@freebsd.org Tue Dec 29 00:42:36 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54A2CA4B166; Tue, 29 Dec 2015 00:42:36 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 25EEF1BE4; Tue, 29 Dec 2015 00:42:36 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT0gZIE010205; Tue, 29 Dec 2015 00:42:35 GMT (envelope-from ume@FreeBSD.org) Received: (from ume@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT0gZKd010204; Tue, 29 Dec 2015 00:42:35 GMT (envelope-from ume@FreeBSD.org) Message-Id: <201512290042.tBT0gZKd010204@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ume set sender to ume@FreeBSD.org using -f From: Hajimu UMEMOTO Date: Tue, 29 Dec 2015 00:42:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292850 - stable/10/lib/libc/net X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 00:42:36 -0000 Author: ume Date: Tue Dec 29 00:42:35 2015 New Revision: 292850 URL: https://svnweb.freebsd.org/changeset/base/292850 Log: MFC r292550, r292595: Simplify _map_v4v6_address(). We don't need to use a temporary buffer, here. Modified: stable/10/lib/libc/net/map_v4v6.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/net/map_v4v6.c ============================================================================== --- stable/10/lib/libc/net/map_v4v6.c Tue Dec 29 00:08:32 2015 (r292849) +++ stable/10/lib/libc/net/map_v4v6.c Tue Dec 29 00:42:35 2015 (r292850) @@ -77,19 +77,11 @@ typedef union { void _map_v4v6_address(const char *src, char *dst) { - u_char *p = (u_char *)dst; - char tmp[NS_INADDRSZ]; - int i; - - /* Stash a temporary copy so our caller can update in place. */ - memcpy(tmp, src, NS_INADDRSZ); + /* Our caller may update in place. */ + memmove(&dst[12], src, NS_INADDRSZ); /* Mark this ipv6 addr as a mapped ipv4. */ - for (i = 0; i < 10; i++) - *p++ = 0x00; - *p++ = 0xff; - *p++ = 0xff; - /* Retrieve the saved copy and we're done. */ - memcpy((void*)p, tmp, NS_INADDRSZ); + memset(&dst[10], 0xff, 2); + memset(&dst[0], 0, 10); } void From owner-svn-src-all@freebsd.org Tue Dec 29 00:43:47 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D35FEA4B28B; Tue, 29 Dec 2015 00:43:47 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A735C1D7B; Tue, 29 Dec 2015 00:43:47 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT0hkXq010292; Tue, 29 Dec 2015 00:43:46 GMT (envelope-from ume@FreeBSD.org) Received: (from ume@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT0hkNs010291; Tue, 29 Dec 2015 00:43:46 GMT (envelope-from ume@FreeBSD.org) Message-Id: <201512290043.tBT0hkNs010291@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ume set sender to ume@FreeBSD.org using -f From: Hajimu UMEMOTO Date: Tue, 29 Dec 2015 00:43:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292851 - stable/9/lib/libc/net X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 00:43:47 -0000 Author: ume Date: Tue Dec 29 00:43:46 2015 New Revision: 292851 URL: https://svnweb.freebsd.org/changeset/base/292851 Log: MFC r292550, r292595: Simplify _map_v4v6_address(). We don't need to use a temporary buffer, here. Modified: stable/9/lib/libc/net/map_v4v6.c Directory Properties: stable/9/lib/libc/ (props changed) Modified: stable/9/lib/libc/net/map_v4v6.c ============================================================================== --- stable/9/lib/libc/net/map_v4v6.c Tue Dec 29 00:42:35 2015 (r292850) +++ stable/9/lib/libc/net/map_v4v6.c Tue Dec 29 00:43:46 2015 (r292851) @@ -77,19 +77,11 @@ typedef union { void _map_v4v6_address(const char *src, char *dst) { - u_char *p = (u_char *)dst; - char tmp[NS_INADDRSZ]; - int i; - - /* Stash a temporary copy so our caller can update in place. */ - memcpy(tmp, src, NS_INADDRSZ); + /* Our caller may update in place. */ + memmove(&dst[12], src, NS_INADDRSZ); /* Mark this ipv6 addr as a mapped ipv4. */ - for (i = 0; i < 10; i++) - *p++ = 0x00; - *p++ = 0xff; - *p++ = 0xff; - /* Retrieve the saved copy and we're done. */ - memcpy((void*)p, tmp, NS_INADDRSZ); + memset(&dst[10], 0xff, 2); + memset(&dst[0], 0, 10); } void From owner-svn-src-all@freebsd.org Tue Dec 29 01:05:49 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B498CA4B885; Tue, 29 Dec 2015 01:05:49 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6B8261733; Tue, 29 Dec 2015 01:05:49 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT15mKx016397; Tue, 29 Dec 2015 01:05:48 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT15mPk016395; Tue, 29 Dec 2015 01:05:48 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512290105.tBT15mPk016395@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 29 Dec 2015 01:05:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292852 - in stable/10/contrib/netbsd-tests/lib/libc: gen ssp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 01:05:49 -0000 Author: ngie Date: Tue Dec 29 01:05:48 2015 New Revision: 292852 URL: https://svnweb.freebsd.org/changeset/base/292852 Log: MFC r292578: Don't dump core files with lib/libc/ssp/ssp_test and lib/libc/gen/assert_test The default `sysctl kern.corefile` value is compatible with `kyua test` (FreeBSD will dump to the current directory). If it's set to an absolute path however, `kyua test` will not be able to clean up the corefiles after the fact The corefiles have little value when testing the behavior of feature behavior, so just disable corefile generation Obtained from: Isilon OneFS (^/onefs/head@r511419) Sponsored by: EMC / Isilon Storage Division Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_assert.c stable/10/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_assert.c ============================================================================== --- stable/10/contrib/netbsd-tests/lib/libc/gen/t_assert.c Tue Dec 29 00:43:46 2015 (r292851) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_assert.c Tue Dec 29 01:05:48 2015 (r292852) @@ -40,6 +40,23 @@ __RCSID("$NetBSD: t_assert.c,v 1.2 2011/ #include #include +#ifdef __FreeBSD__ +#include +#include +#include + +static void +disable_corefile(void) +{ + struct rlimit limits; + + limits.rlim_cur = 0; + limits.rlim_max = 0; + + ATF_REQUIRE(setrlimit(RLIMIT_CORE, &limits) == 0); +} +#endif + static void handler(int); static void @@ -65,6 +82,9 @@ ATF_TC_BODY(assert_false, tc) if (pid == 0) { +#ifdef __FreeBSD__ + disable_corefile(); +#endif (void)closefrom(0); (void)memset(&sa, 0, sizeof(struct sigaction)); @@ -102,6 +122,9 @@ ATF_TC_BODY(assert_true, tc) if (pid == 0) { +#ifdef __FreeBSD__ + disable_corefile(); +#endif (void)closefrom(0); (void)memset(&sa, 0, sizeof(struct sigaction)); Modified: stable/10/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh ============================================================================== --- stable/10/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh Tue Dec 29 00:43:46 2015 (r292851) +++ stable/10/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh Tue Dec 29 01:05:48 2015 (r292852) @@ -35,6 +35,7 @@ h_fail() { echo "Executing command [ $2$1 ]" # Begin FreeBSD + ulimit -c 0 if true; then eval $2 atf_check -s signal -o ignore -e ignore $1 else From owner-svn-src-all@freebsd.org Tue Dec 29 01:07:01 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DD915A4B91B; Tue, 29 Dec 2015 01:07:01 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 95DA618B0; Tue, 29 Dec 2015 01:07:01 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT170Ph016502; Tue, 29 Dec 2015 01:07:00 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT170pi016500; Tue, 29 Dec 2015 01:07:00 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512290107.tBT170pi016500@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 29 Dec 2015 01:07:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292853 - stable/10/contrib/netbsd-tests/usr.bin/grep X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 01:07:02 -0000 Author: ngie Date: Tue Dec 29 01:07:00 2015 New Revision: 292853 URL: https://svnweb.freebsd.org/changeset/base/292853 Log: MFC r292581: Use stable output to a test file instead of depending on the OS name being grep'able in /bin/sh This fixes the situation where the OS has been rebranded to something other than `FreeBSD` Obtained from: Isilon OneFS (^/onefs/head@r511419) Reviewed by: cem, Daniel O'Connor Sponsored by: EMC / Isilon Storage Division Modified: stable/10/contrib/netbsd-tests/usr.bin/grep/d_binary.out stable/10/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/netbsd-tests/usr.bin/grep/d_binary.out ============================================================================== --- stable/10/contrib/netbsd-tests/usr.bin/grep/d_binary.out Tue Dec 29 01:05:48 2015 (r292852) +++ stable/10/contrib/netbsd-tests/usr.bin/grep/d_binary.out Tue Dec 29 01:07:00 2015 (r292853) @@ -1 +1 @@ -Binary file /bin/sh matches +Binary file test.file matches Modified: stable/10/contrib/netbsd-tests/usr.bin/grep/t_grep.sh ============================================================================== --- stable/10/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Tue Dec 29 01:05:48 2015 (r292852) +++ stable/10/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Tue Dec 29 01:07:00 2015 (r292853) @@ -43,7 +43,20 @@ binary_head() } binary_body() { + # Begin FreeBSD + # + # Generate stable output instead of depending on uname to match the + # branded OS name of /bin/sh + if true; then + dd if=/dev/zero count=1 of=test.file + echo -n "foobar" >> test.file + atf_check -o file:"$(atf_get_srcdir)/d_binary.out" grep foobar test.file + else + # End FreeBSD atf_check -o file:"$(atf_get_srcdir)/d_binary.out" grep $(uname) /bin/sh + # Begin FreeBSD + fi + # End FreeBSD } atf_test_case recurse From owner-svn-src-all@freebsd.org Tue Dec 29 01:08:09 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3ADFEA4B999; Tue, 29 Dec 2015 01:08:09 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 08FBE1A6A; Tue, 29 Dec 2015 01:08:08 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT188k7016601; Tue, 29 Dec 2015 01:08:08 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT188n0016600; Tue, 29 Dec 2015 01:08:08 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512290108.tBT188n0016600@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 29 Dec 2015 01:08:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292854 - stable/10/tests/sys/file X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 01:08:09 -0000 Author: ngie Date: Tue Dec 29 01:08:07 2015 New Revision: 292854 URL: https://svnweb.freebsd.org/changeset/base/292854 Log: MFC r292582: Dump out the output from flock_helper on failure so failures with the test app can be debugged Obtained from: Isilon OneFS (^/onefs/head@r511419) Sponsored by: EMC / Isilon Storage Division Modified: stable/10/tests/sys/file/flock_test.sh Directory Properties: stable/10/ (props changed) Modified: stable/10/tests/sys/file/flock_test.sh ============================================================================== --- stable/10/tests/sys/file/flock_test.sh Tue Dec 29 01:07:00 2015 (r292853) +++ stable/10/tests/sys/file/flock_test.sh Tue Dec 29 01:08:07 2015 (r292854) @@ -48,10 +48,11 @@ for n in `seq 1 $last_testcase`; do todomsg=" # TODO: racy testcase (doesn't handle EINTR properly)" fi - $(dirname $0)/flock_helper . $n | grep -q SUCCEED - if [ $? -eq 0 ]; then + output=$($(dirname $0)/flock_helper . $n) + if echo "$output" | grep -q SUCCEED; then echo "ok $n$todomsg" else echo "not ok $n$todomsg" + echo "$output" >&2 fi done From owner-svn-src-all@freebsd.org Tue Dec 29 01:08:59 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 743ECA4BA10; Tue, 29 Dec 2015 01:08:59 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 43FC91BEA; Tue, 29 Dec 2015 01:08:59 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT18wXq016690; Tue, 29 Dec 2015 01:08:58 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT18w7i016689; Tue, 29 Dec 2015 01:08:58 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512290108.tBT18w7i016689@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 29 Dec 2015 01:08:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292855 - stable/10/usr.sbin/uhsoctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 01:08:59 -0000 Author: ngie Date: Tue Dec 29 01:08:58 2015 New Revision: 292855 URL: https://svnweb.freebsd.org/changeset/base/292855 Log: MFC r292585: Prevent use-after-free with ctx->ns in set_nameservers(..), which could occur if the memory wasn't allocated again later on Reported by: Coverity Submitted by: Miles Ohlrich Sponsored by: EMC / Isilon Storage Division Modified: stable/10/usr.sbin/uhsoctl/uhsoctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/uhsoctl/uhsoctl.c ============================================================================== --- stable/10/usr.sbin/uhsoctl/uhsoctl.c Tue Dec 29 01:08:07 2015 (r292854) +++ stable/10/usr.sbin/uhsoctl/uhsoctl.c Tue Dec 29 01:08:58 2015 (r292855) @@ -453,6 +453,7 @@ set_nameservers(struct ctx *ctx, const c free(ctx->ns[i]); } free(ctx->ns); + ctx->ns = NULL; } fd = open(respath, O_RDWR | O_CREAT | O_NOFOLLOW, 0666); From owner-svn-src-all@freebsd.org Tue Dec 29 01:09:55 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 372ACA4BA8D; Tue, 29 Dec 2015 01:09:55 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 06C671D4F; Tue, 29 Dec 2015 01:09:54 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT19s76016784; Tue, 29 Dec 2015 01:09:54 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT19sdB016783; Tue, 29 Dec 2015 01:09:54 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512290109.tBT19sdB016783@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 29 Dec 2015 01:09:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292856 - stable/9/usr.sbin/uhsoctl X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 01:09:55 -0000 Author: ngie Date: Tue Dec 29 01:09:53 2015 New Revision: 292856 URL: https://svnweb.freebsd.org/changeset/base/292856 Log: MFstable/10 r292855: MFC r292585: Prevent use-after-free with ctx->ns in set_nameservers(..), which could occur if the memory wasn't allocated again later on Reported by: Coverity Submitted by: Miles Ohlrich Sponsored by: EMC / Isilon Storage Division Modified: stable/9/usr.sbin/uhsoctl/uhsoctl.c Directory Properties: stable/9/ (props changed) stable/9/usr.sbin/ (props changed) stable/9/usr.sbin/uhsoctl/ (props changed) Modified: stable/9/usr.sbin/uhsoctl/uhsoctl.c ============================================================================== --- stable/9/usr.sbin/uhsoctl/uhsoctl.c Tue Dec 29 01:08:58 2015 (r292855) +++ stable/9/usr.sbin/uhsoctl/uhsoctl.c Tue Dec 29 01:09:53 2015 (r292856) @@ -453,6 +453,7 @@ set_nameservers(struct ctx *ctx, const c free(ctx->ns[i]); } free(ctx->ns); + ctx->ns = NULL; } fd = open(respath, O_RDWR | O_CREAT | O_NOFOLLOW); From owner-svn-src-all@freebsd.org Tue Dec 29 03:31:07 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81901A53D6F; Tue, 29 Dec 2015 03:31:07 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 50C5D1D50; Tue, 29 Dec 2015 03:31:07 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT3V6O7057970; Tue, 29 Dec 2015 03:31:06 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT3V60d057969; Tue, 29 Dec 2015 03:31:06 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201512290331.tBT3V60d057969@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 29 Dec 2015 03:31:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292858 - head/sys/powerpc/powerpc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 03:31:07 -0000 Author: jhibbits Date: Tue Dec 29 03:31:06 2015 New Revision: 292858 URL: https://svnweb.freebsd.org/changeset/base/292858 Log: Update capabilities of e500mc, e5500, e6500. Modified: head/sys/powerpc/powerpc/cpu.c Modified: head/sys/powerpc/powerpc/cpu.c ============================================================================== --- head/sys/powerpc/powerpc/cpu.c Tue Dec 29 01:21:40 2015 (r292857) +++ head/sys/powerpc/powerpc/cpu.c Tue Dec 29 03:31:06 2015 (r292858) @@ -175,9 +175,12 @@ static const struct cputab models[] = { { "Freescale e500v2 core", FSL_E500v2, REVFMT_MAJMIN, 0, cpu_booke_setup }, { "Freescale e500mc core", FSL_E500mc, REVFMT_MAJMIN, - 0, cpu_booke_setup }, + PPC_FEATURE_HAS_FPU, cpu_booke_setup }, { "Freescale e5500 core", FSL_E5500, REVFMT_MAJMIN, - 0, cpu_booke_setup }, + PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, cpu_booke_setup }, + { "Freescale e6500 core", FSL_E6500, REVFMT_MAJMIN, + PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, + cpu_booke_setup }, { "IBM Cell Broadband Engine", IBMCELLBE, REVFMT_MAJMIN, PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, NULL}, From owner-svn-src-all@freebsd.org Tue Dec 29 07:54:57 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DB589A54DFA; Tue, 29 Dec 2015 07:54:56 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B89841533; Tue, 29 Dec 2015 07:54:56 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT7stpl036540; Tue, 29 Dec 2015 07:54:55 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT7stTf036538; Tue, 29 Dec 2015 07:54:55 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201512290754.tBT7stTf036538@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Tue, 29 Dec 2015 07:54:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292859 - in head/sys/dev/hyperv: include vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 07:54:57 -0000 Author: delphij Date: Tue Dec 29 07:54:55 2015 New Revision: 292859 URL: https://svnweb.freebsd.org/changeset/base/292859 Log: hyperv: vmbus: remove the per-channel control_work_queue Now vmbus_channel_on_offer() -> vmbus_channel_process_offer() can safely run on the global hv_vmbus_g_connection.work_queue now. We remove the per-channel control_work_queue to achieve the proper serialization of the message handling. I removed the bogus TODO in vmbus_channel_on_offer(): a vmbus offer can only come from the parent partition, i.e., the host. PR: kern/205156 Submitted by: Dexuan Cui Reviewed by: Howard Su , delphij MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D4597 Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Tue Dec 29 03:31:06 2015 (r292858) +++ head/sys/dev/hyperv/include/hyperv.h Tue Dec 29 07:54:55 2015 (r292859) @@ -759,7 +759,6 @@ typedef struct hv_vmbus_channel { hv_vmbus_ring_buffer_info inbound; struct mtx inbound_lock; - hv_vmbus_handle control_work_queue; hv_vmbus_pfn_channel_callback on_channel_callback; void* channel_callback_context; Modified: head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Tue Dec 29 03:31:06 2015 (r292858) +++ head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Tue Dec 29 07:54:55 2015 (r292859) @@ -49,7 +49,6 @@ static void vmbus_channel_on_gpadl_creat static void vmbus_channel_on_gpadl_torndown(hv_vmbus_channel_msg_header* hdr); static void vmbus_channel_on_offers_delivered(hv_vmbus_channel_msg_header* hdr); static void vmbus_channel_on_version_response(hv_vmbus_channel_msg_header* hdr); -static void vmbus_channel_process_offer(void *context); /** * Channel message dispatch table @@ -206,15 +205,6 @@ hv_queue_work_item( return (taskqueue_enqueue(wq->queue, &w->work)); } -/** - * @brief Rescind the offer by initiating a device removal - */ -static void -vmbus_channel_process_rescind_offer(void *context) -{ - hv_vmbus_channel* channel = (hv_vmbus_channel*) context; - hv_vmbus_child_device_unregister(channel->device); -} /** * @brief Allocate and initialize a vmbus channel object @@ -237,14 +227,6 @@ hv_vmbus_allocate_channel(void) TAILQ_INIT(&channel->sc_list_anchor); - channel->control_work_queue = hv_work_queue_create("control"); - - if (channel->control_work_queue == NULL) { - mtx_destroy(&channel->inbound_lock); - free(channel, M_DEVBUF); - return (NULL); - } - return (channel); } @@ -255,7 +237,6 @@ static inline void ReleaseVmbusChannel(void *context) { hv_vmbus_channel* channel = (hv_vmbus_channel*) context; - hv_work_queue_close(channel->control_work_queue); free(channel, M_DEVBUF); } @@ -281,14 +262,12 @@ hv_vmbus_free_vmbus_channel(hv_vmbus_cha * associated with this offer */ static void -vmbus_channel_process_offer(void *context) +vmbus_channel_process_offer(hv_vmbus_channel *new_channel) { - hv_vmbus_channel* new_channel; boolean_t f_new; hv_vmbus_channel* channel; int ret; - new_channel = (hv_vmbus_channel*) context; f_new = TRUE; channel = NULL; @@ -521,11 +500,7 @@ vmbus_channel_on_offer(hv_vmbus_channel_ new_channel->monitor_group = (uint8_t) offer->monitor_id / 32; new_channel->monitor_bit = (uint8_t) offer->monitor_id % 32; - /* TODO: Make sure the offer comes from our parent partition */ - hv_queue_work_item( - new_channel->control_work_queue, - vmbus_channel_process_offer, - new_channel); + vmbus_channel_process_offer(new_channel); } /** @@ -546,8 +521,7 @@ vmbus_channel_on_offer_rescind(hv_vmbus_ if (channel == NULL) return; - hv_queue_work_item(channel->control_work_queue, - vmbus_channel_process_rescind_offer, channel); + hv_vmbus_child_device_unregister(channel->device); } /** From owner-svn-src-all@freebsd.org Tue Dec 29 08:19:45 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 18706A528B4; Tue, 29 Dec 2015 08:19:45 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E3FDF10AA; Tue, 29 Dec 2015 08:19:44 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBT8Jh4a043071; Tue, 29 Dec 2015 08:19:43 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBT8JhLs043068; Tue, 29 Dec 2015 08:19:43 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201512290819.tBT8JhLs043068@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Tue, 29 Dec 2015 08:19:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292861 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 08:19:45 -0000 Author: delphij Date: Tue Dec 29 08:19:43 2015 New Revision: 292861 URL: https://svnweb.freebsd.org/changeset/base/292861 Log: hyperv: vmbus: run non-blocking message handlers in vmbus_msg_swintr() We'll remove the per-channel control_work_queue because it can't properly do serialization of message handling, e.g., when there are 2 NIC devices, vmbus_channel_on_offer() -> hv_queue_work_item() has a race condition: for an SMP VM, vmbus_channel_process_offer() can run concurrently on different CPUs and if the second NIC's vmbus_channel_process_offer() -> hv_vmbus_child_device_register() runs first, the second NIC's name will be hn0 and the first NIC's name will be hn1! We can fix the race condition by removing the per-channel control_work_queue and run all the message handlers in the global hv_vmbus_g_connection.work_queue -- we'll do this in the next patch. With the coming next patch, we have to run the non-blocking handlers directly in the kernel thread vmbus_msg_swintr(), because the special handling of sub-channel: when a sub-channel (e.g., of the storvsc driver) is received and being handled in vmbus_channel_on_offer() running on the global hv_vmbus_g_connection.work_queue, vmbus_channel_process_offer() invokes channel->sc_creation_callback, i.e., storvsc_handle_sc_creation, and the callback will invoke hv_vmbus_channel_open() -> hv_vmbus_post_message and expect a further reply from the host, but the handling of the further messag can't be done because the current message's handling hasn't finished yet; as result, hv_vmbus_channel_open() -> sema_timedwait() will time out and th device can't work. Also renamed the handler type from hv_pfn_channel_msg_handler to vmbus_msg_handler: the 'pfn' and 'channel' in the old name make no sense. Submitted by: Dexuan Cui Reviewed by: royger MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D4596 Modified: head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Modified: head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Tue Dec 29 08:19:06 2015 (r292860) +++ head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Tue Dec 29 08:19:43 2015 (r292861) @@ -31,13 +31,6 @@ #include "hv_vmbus_priv.h" -typedef void (*hv_pfn_channel_msg_handler)(hv_vmbus_channel_msg_header* msg); - -typedef struct hv_vmbus_channel_msg_table_entry { - hv_vmbus_channel_msg_type messageType; - hv_pfn_channel_msg_handler messageHandler; -} hv_vmbus_channel_msg_table_entry; - /* * Internal functions */ @@ -55,29 +48,40 @@ static void vmbus_channel_on_version_res */ hv_vmbus_channel_msg_table_entry g_channel_message_table[HV_CHANNEL_MESSAGE_COUNT] = { - { HV_CHANNEL_MESSAGE_INVALID, NULL }, - { HV_CHANNEL_MESSAGE_OFFER_CHANNEL, vmbus_channel_on_offer }, + { HV_CHANNEL_MESSAGE_INVALID, + 0, NULL }, + { HV_CHANNEL_MESSAGE_OFFER_CHANNEL, + 0, vmbus_channel_on_offer }, { HV_CHANNEL_MESSAGE_RESCIND_CHANNEL_OFFER, - vmbus_channel_on_offer_rescind }, - { HV_CHANNEL_MESSAGE_REQUEST_OFFERS, NULL }, + 0, vmbus_channel_on_offer_rescind }, + { HV_CHANNEL_MESSAGE_REQUEST_OFFERS, + 0, NULL }, { HV_CHANNEL_MESSAGE_ALL_OFFERS_DELIVERED, - vmbus_channel_on_offers_delivered }, - { HV_CHANNEL_MESSAGE_OPEN_CHANNEL, NULL }, + 1, vmbus_channel_on_offers_delivered }, + { HV_CHANNEL_MESSAGE_OPEN_CHANNEL, + 0, NULL }, { HV_CHANNEL_MESSAGE_OPEN_CHANNEL_RESULT, - vmbus_channel_on_open_result }, - { HV_CHANNEL_MESSAGE_CLOSE_CHANNEL, NULL }, - { HV_CHANNEL_MESSAGEL_GPADL_HEADER, NULL }, - { HV_CHANNEL_MESSAGE_GPADL_BODY, NULL }, + 1, vmbus_channel_on_open_result }, + { HV_CHANNEL_MESSAGE_CLOSE_CHANNEL, + 0, NULL }, + { HV_CHANNEL_MESSAGEL_GPADL_HEADER, + 0, NULL }, + { HV_CHANNEL_MESSAGE_GPADL_BODY, + 0, NULL }, { HV_CHANNEL_MESSAGE_GPADL_CREATED, - vmbus_channel_on_gpadl_created }, - { HV_CHANNEL_MESSAGE_GPADL_TEARDOWN, NULL }, + 1, vmbus_channel_on_gpadl_created }, + { HV_CHANNEL_MESSAGE_GPADL_TEARDOWN, + 0, NULL }, { HV_CHANNEL_MESSAGE_GPADL_TORNDOWN, - vmbus_channel_on_gpadl_torndown }, - { HV_CHANNEL_MESSAGE_REL_ID_RELEASED, NULL }, - { HV_CHANNEL_MESSAGE_INITIATED_CONTACT, NULL }, + 1, vmbus_channel_on_gpadl_torndown }, + { HV_CHANNEL_MESSAGE_REL_ID_RELEASED, + 0, NULL }, + { HV_CHANNEL_MESSAGE_INITIATED_CONTACT, + 0, NULL }, { HV_CHANNEL_MESSAGE_VERSION_RESPONSE, - vmbus_channel_on_version_response }, - { HV_CHANNEL_MESSAGE_UNLOAD, NULL } + 1, vmbus_channel_on_version_response }, + { HV_CHANNEL_MESSAGE_UNLOAD, + 0, NULL } }; Modified: head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Tue Dec 29 08:19:06 2015 (r292860) +++ head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Tue Dec 29 08:19:43 2015 (r292861) @@ -76,8 +76,12 @@ vmbus_msg_swintr(void *arg) { int cpu; void* page_addr; + hv_vmbus_channel_msg_header *hdr; + hv_vmbus_channel_msg_table_entry *entry; + hv_vmbus_channel_msg_type msg_type; hv_vmbus_message* msg; hv_vmbus_message* copied; + static bool warned = false; cpu = (int)(long)arg; KASSERT(cpu <= mp_maxid, ("VMBUS: vmbus_msg_swintr: " @@ -87,9 +91,24 @@ vmbus_msg_swintr(void *arg) msg = (hv_vmbus_message*) page_addr + HV_VMBUS_MESSAGE_SINT; for (;;) { - if (msg->header.message_type == HV_MESSAGE_TYPE_NONE) { + if (msg->header.message_type == HV_MESSAGE_TYPE_NONE) break; /* no message */ - } else { + + hdr = (hv_vmbus_channel_msg_header *)msg->u.payload; + msg_type = hdr->message_type; + + if (msg_type >= HV_CHANNEL_MESSAGE_COUNT && !warned) { + warned = true; + printf("VMBUS: unknown message type = %d\n", msg_type); + goto handled; + } + + entry = &g_channel_message_table[msg_type]; + + if (entry->handler_no_sleep) + entry->messageHandler(hdr); + else { + copied = malloc(sizeof(hv_vmbus_message), M_DEVBUF, M_NOWAIT); KASSERT(copied != NULL, @@ -97,11 +116,13 @@ vmbus_msg_swintr(void *arg) " hv_vmbus_message!")); if (copied == NULL) continue; + memcpy(copied, msg, sizeof(hv_vmbus_message)); hv_queue_work_item(hv_vmbus_g_connection.work_queue, - hv_vmbus_on_channel_message, copied); - } - + hv_vmbus_on_channel_message, + copied); + } +handled: msg->header.message_type = HV_MESSAGE_TYPE_NONE; /* Modified: head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Tue Dec 29 08:19:06 2015 (r292860) +++ head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Tue Dec 29 08:19:43 2015 (r292861) @@ -586,6 +586,16 @@ typedef enum { extern hv_vmbus_context hv_vmbus_g_context; extern hv_vmbus_connection hv_vmbus_g_connection; +typedef void (*vmbus_msg_handler)(hv_vmbus_channel_msg_header *msg); + +typedef struct hv_vmbus_channel_msg_table_entry { + hv_vmbus_channel_msg_type messageType; + + bool handler_no_sleep; /* true: the handler doesn't sleep */ + vmbus_msg_handler messageHandler; +} hv_vmbus_channel_msg_table_entry; + +extern hv_vmbus_channel_msg_table_entry g_channel_message_table[]; /* * Private, VM Bus functions From owner-svn-src-all@freebsd.org Tue Dec 29 11:24:37 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2EEF1A554E5; Tue, 29 Dec 2015 11:24:37 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F0A9917C4; Tue, 29 Dec 2015 11:24:36 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTBOajH000716; Tue, 29 Dec 2015 11:24:36 GMT (envelope-from uqs@FreeBSD.org) Received: (from uqs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTBOZRW000714; Tue, 29 Dec 2015 11:24:35 GMT (envelope-from uqs@FreeBSD.org) Message-Id: <201512291124.tBTBOZRW000714@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: uqs set sender to uqs@FreeBSD.org using -f From: Ulrich Spoerlein Date: Tue, 29 Dec 2015 11:24:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292863 - in head/sbin: mount umount X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 11:24:37 -0000 Author: uqs Date: Tue Dec 29 11:24:35 2015 New Revision: 292863 URL: https://svnweb.freebsd.org/changeset/base/292863 Log: Fix type mismatches for malloc(3) and Co. Found by: clang static analyzer Reviewed by: ed Differential Revision: https://reviews.freebsd.org/D4722 Modified: head/sbin/mount/mount.c head/sbin/umount/umount.c Modified: head/sbin/mount/mount.c ============================================================================== --- head/sbin/mount/mount.c Tue Dec 29 08:39:07 2015 (r292862) +++ head/sbin/mount/mount.c Tue Dec 29 11:24:35 2015 (r292863) @@ -541,7 +541,7 @@ append_arg(struct cpa *sa, char *arg) { if (sa->c + 1 == sa->sz) { sa->sz = sa->sz == 0 ? 8 : sa->sz * 2; - sa->a = realloc(sa->a, sizeof(sa->a) * sa->sz); + sa->a = realloc(sa->a, sizeof(*sa->a) * sa->sz); if (sa->a == NULL) errx(1, "realloc failed"); } Modified: head/sbin/umount/umount.c ============================================================================== --- head/sbin/umount/umount.c Tue Dec 29 08:39:07 2015 (r292862) +++ head/sbin/umount/umount.c Tue Dec 29 11:24:35 2015 (r292863) @@ -434,7 +434,7 @@ getmntentry(const char *fromname, const { static struct statfs *mntbuf; static size_t mntsize = 0; - static char *mntcheck = NULL; + static int *mntcheck = NULL; struct statfs *sfs, *foundsfs; int i, count; From owner-svn-src-all@freebsd.org Tue Dec 29 11:24:43 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9DA85A55514; Tue, 29 Dec 2015 11:24:43 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 62B001954; Tue, 29 Dec 2015 11:24:43 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTBOg8F000773; Tue, 29 Dec 2015 11:24:42 GMT (envelope-from uqs@FreeBSD.org) Received: (from uqs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTBOfOO000765; Tue, 29 Dec 2015 11:24:41 GMT (envelope-from uqs@FreeBSD.org) Message-Id: <201512291124.tBTBOfOO000765@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: uqs set sender to uqs@FreeBSD.org using -f From: Ulrich Spoerlein Date: Tue, 29 Dec 2015 11:24:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292864 - in head: usr.bin/column usr.bin/locate/locate usr.bin/xargs usr.sbin/mountd usr.sbin/mpsutil usr.sbin/rpc.lockd usr.sbin/rpc.statd usr.sbin/rtsold X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 11:24:43 -0000 Author: uqs Date: Tue Dec 29 11:24:41 2015 New Revision: 292864 URL: https://svnweb.freebsd.org/changeset/base/292864 Log: Fix type mismatches for malloc(3) and Co. This is rather pedantic, as for most architectures it holds that sizeof(type *) == sizeof(type **) Found by: clang static analyzer Reviewed by: ed Differential Revision: https://reviews.freebsd.org/D4722 Modified: head/usr.bin/column/column.c head/usr.bin/locate/locate/util.c head/usr.bin/xargs/xargs.c head/usr.sbin/mountd/mountd.c head/usr.sbin/mpsutil/mps_cmd.c head/usr.sbin/rpc.lockd/lockd.c head/usr.sbin/rpc.statd/statd.c head/usr.sbin/rtsold/rtsold.c Modified: head/usr.bin/column/column.c ============================================================================== --- head/usr.bin/column/column.c Tue Dec 29 11:24:35 2015 (r292863) +++ head/usr.bin/column/column.c Tue Dec 29 11:24:41 2015 (r292864) @@ -244,7 +244,7 @@ maketbl(void) p = NULL) if (++coloff == maxcols) { if (!(cols = realloc(cols, ((u_int)maxcols + - DEFCOLS) * sizeof(char *))) || + DEFCOLS) * sizeof(wchar_t *))) || !(lens = realloc(lens, ((u_int)maxcols + DEFCOLS) * sizeof(int)))) err(1, NULL); Modified: head/usr.bin/locate/locate/util.c ============================================================================== --- head/usr.bin/locate/locate/util.c Tue Dec 29 11:24:35 2015 (r292863) +++ head/usr.bin/locate/locate/util.c Tue Dec 29 11:24:41 2015 (r292864) @@ -93,7 +93,7 @@ colon(dbv, path, dot) char **pv; if (dbv == NULL) { - if ((dbv = malloc(sizeof(char **))) == NULL) + if ((dbv = malloc(sizeof(char *))) == NULL) err(1, "malloc"); *dbv = NULL; } @@ -123,7 +123,7 @@ colon(dbv, path, dot) *(p + slen) = '\0'; } /* increase dbv with element p */ - if ((dbv = realloc(dbv, sizeof(char **) * (vlen + 2))) + if ((dbv = realloc(dbv, sizeof(char *) * (vlen + 2))) == NULL) err(1, "realloc"); *(dbv + vlen) = p; Modified: head/usr.bin/xargs/xargs.c ============================================================================== --- head/usr.bin/xargs/xargs.c Tue Dec 29 11:24:35 2015 (r292863) +++ head/usr.bin/xargs/xargs.c Tue Dec 29 11:24:41 2015 (r292864) @@ -234,7 +234,7 @@ main(int argc, char *argv[]) * NULL. */ linelen = 1 + argc + nargs + 1; - if ((av = bxp = malloc(linelen * sizeof(char **))) == NULL) + if ((av = bxp = malloc(linelen * sizeof(char *))) == NULL) errx(1, "malloc failed"); /* @@ -471,7 +471,7 @@ prerun(int argc, char *argv[]) * Allocate memory to hold the argument list, and * a NULL at the tail. */ - tmp = malloc((argc + 1) * sizeof(char**)); + tmp = malloc((argc + 1) * sizeof(char *)); if (tmp == NULL) { warnx("malloc failed"); xexit(*argv, 1); Modified: head/usr.sbin/mountd/mountd.c ============================================================================== --- head/usr.sbin/mountd/mountd.c Tue Dec 29 11:24:35 2015 (r292863) +++ head/usr.sbin/mountd/mountd.c Tue Dec 29 11:24:41 2015 (r292864) @@ -422,7 +422,7 @@ main(int argc, char **argv) * list. */ if (nhosts == 0) { - hosts = malloc(sizeof(char**)); + hosts = malloc(sizeof(char *)); if (hosts == NULL) out_of_mem(); hosts[0] = "*"; Modified: head/usr.sbin/mpsutil/mps_cmd.c ============================================================================== --- head/usr.sbin/mpsutil/mps_cmd.c Tue Dec 29 11:24:35 2015 (r292863) +++ head/usr.sbin/mpsutil/mps_cmd.c Tue Dec 29 11:24:41 2015 (r292864) @@ -486,7 +486,7 @@ mps_firmware_get(int fd, unsigned char * } size = reply.ActualImageSize; - *firmware = calloc(1, sizeof(char) * size); + *firmware = calloc(1, sizeof(unsigned char) * size); if (*firmware == NULL) { warn("calloc"); return (-1); Modified: head/usr.sbin/rpc.lockd/lockd.c ============================================================================== --- head/usr.sbin/rpc.lockd/lockd.c Tue Dec 29 11:24:35 2015 (r292863) +++ head/usr.sbin/rpc.lockd/lockd.c Tue Dec 29 11:24:41 2015 (r292864) @@ -220,7 +220,7 @@ main(int argc, char **argv) * list. */ if (nhosts == 0) { - hosts = malloc(sizeof(char**)); + hosts = malloc(sizeof(char *)); if (hosts == NULL) out_of_mem(); Modified: head/usr.sbin/rpc.statd/statd.c ============================================================================== --- head/usr.sbin/rpc.statd/statd.c Tue Dec 29 11:24:35 2015 (r292863) +++ head/usr.sbin/rpc.statd/statd.c Tue Dec 29 11:24:41 2015 (r292864) @@ -150,7 +150,7 @@ main(int argc, char **argv) * list. */ if (nhosts == 0) { - hosts = malloc(sizeof(char**)); + hosts = malloc(sizeof(char *)); if (hosts == NULL) out_of_mem(); Modified: head/usr.sbin/rtsold/rtsold.c ============================================================================== --- head/usr.sbin/rtsold/rtsold.c Tue Dec 29 11:24:35 2015 (r292863) +++ head/usr.sbin/rtsold/rtsold.c Tue Dec 29 11:24:41 2015 (r292864) @@ -888,7 +888,7 @@ autoifprobe(void) warnmsg(LOG_WARNING, __func__, "multiple interfaces found"); - a = (char **)realloc(argv, (n + 1) * sizeof(char **)); + a = realloc(argv, (n + 1) * sizeof(char *)); if (a == NULL) { warnmsg(LOG_ERR, __func__, "realloc"); exit(1); @@ -903,7 +903,7 @@ autoifprobe(void) } if (n) { - a = (char **)realloc(argv, (n + 1) * sizeof(char **)); + a = realloc(argv, (n + 1) * sizeof(char *)); if (a == NULL) { warnmsg(LOG_ERR, __func__, "realloc"); exit(1); From owner-svn-src-all@freebsd.org Tue Dec 29 11:53:15 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65715A55D0C; Tue, 29 Dec 2015 11:53:15 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 238211397; Tue, 29 Dec 2015 11:53:15 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTBrELB009706; Tue, 29 Dec 2015 11:53:14 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTBrETu009704; Tue, 29 Dec 2015 11:53:14 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201512291153.tBTBrETu009704@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 29 Dec 2015 11:53:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292865 - head/sys/dev/usb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 11:53:15 -0000 Author: hselasky Date: Tue Dec 29 11:53:13 2015 New Revision: 292865 URL: https://svnweb.freebsd.org/changeset/base/292865 Log: Update metadata for "tools/tools/bus_autoconf" after r292080. Use BYTE_ORDER instead of _BYTE_ORDER due to 3rd party USB software for now. Modified: head/sys/dev/usb/usb_lookup.c head/sys/dev/usb/usbdi.h Modified: head/sys/dev/usb/usb_lookup.c ============================================================================== --- head/sys/dev/usb/usb_lookup.c Tue Dec 29 11:24:41 2015 (r292864) +++ head/sys/dev/usb/usb_lookup.c Tue Dec 29 11:53:13 2015 (r292865) @@ -154,28 +154,10 @@ usbd_lookup_id_by_uaa(const struct usb_d /*------------------------------------------------------------------------* * Export the USB device ID format we use to userspace tools. *------------------------------------------------------------------------*/ -#if BYTE_ORDER == BIG_ENDIAN -#define U16_XOR "8" -#define U32_XOR "12" -#define U64_XOR "56" -#define U8_BITFIELD_XOR "7" -#define U16_BITFIELD_XOR "15" -#define U32_BITFIELD_XOR "31" -#define U64_BITFIELD_XOR "63" -#else +#if BYTE_ORDER == LITTLE_ENDIAN #define U16_XOR "0" -#define U32_XOR "0" -#define U64_XOR "0" -#define U8_BITFIELD_XOR "0" -#define U16_BITFIELD_XOR "0" -#define U32_BITFIELD_XOR "0" -#define U64_BITFIELD_XOR "0" -#endif - -#if USB_HAVE_COMPAT_LINUX -#define MFL_SIZE "1" #else -#define MFL_SIZE "0" +#define U16_XOR "8" #endif #if defined(KLD_MODULE) && (USB_HAVE_ID_SECTION != 0) @@ -189,20 +171,19 @@ static const char __section("bus_autocon /* List size of fields in the usb_device_id structure */ -#if ULONG_MAX >= 0xFFFFFFFFUL - "unused{0,8}" - "unused{0,8}" - "unused{0,8}" - "unused{0,8}" -#if ULONG_MAX >= 0xFFFFFFFFFFFFFFFFULL - "unused{0,8}" - "unused{0,8}" - "unused{0,8}" - "unused{0,8}" -#endif -#else -#error "Please update code." -#endif + "mf_vendor{" U16_XOR ",1}" + "mf_product{" U16_XOR ",1}" + "mf_dev_lo{" U16_XOR ",1}" + "mf_dev_hi{" U16_XOR ",1}" + + "mf_dev_class{" U16_XOR ",1}" + "mf_dev_subclass{" U16_XOR ",1}" + "mf_dev_protocol{" U16_XOR ",1}" + "mf_int_class{" U16_XOR ",1}" + + "mf_int_subclass{" U16_XOR ",1}" + "mf_int_protocol{" U16_XOR ",1}" + "unused{" U16_XOR ",6}" "idVendor[0]{" U16_XOR ",8}" "idVendor[1]{" U16_XOR ",8}" @@ -220,38 +201,20 @@ static const char __section("bus_autocon "bInterfaceSubClass{0,8}" "bInterfaceProtocol{0,8}" - "mf_vendor{" U8_BITFIELD_XOR ",1}" - "mf_product{" U8_BITFIELD_XOR ",1}" - "mf_dev_lo{" U8_BITFIELD_XOR ",1}" - "mf_dev_hi{" U8_BITFIELD_XOR ",1}" - - "mf_dev_class{" U8_BITFIELD_XOR ",1}" - "mf_dev_subclass{" U8_BITFIELD_XOR ",1}" - "mf_dev_protocol{" U8_BITFIELD_XOR ",1}" - "mf_int_class{" U8_BITFIELD_XOR ",1}" - - "mf_int_subclass{" U8_BITFIELD_XOR ",1}" - "mf_int_protocol{" U8_BITFIELD_XOR ",1}" - "unused{" U8_BITFIELD_XOR ",6}" - - "mfl_vendor{" U16_XOR "," MFL_SIZE "}" - "mfl_product{" U16_XOR "," MFL_SIZE "}" - "mfl_dev_lo{" U16_XOR "," MFL_SIZE "}" - "mfl_dev_hi{" U16_XOR "," MFL_SIZE "}" - - "mfl_dev_class{" U16_XOR "," MFL_SIZE "}" - "mfl_dev_subclass{" U16_XOR "," MFL_SIZE "}" - "mfl_dev_protocol{" U16_XOR "," MFL_SIZE "}" - "mfl_int_class{" U16_XOR "," MFL_SIZE "}" - - "mfl_int_subclass{" U16_XOR "," MFL_SIZE "}" - "mfl_int_protocol{" U16_XOR "," MFL_SIZE "}" - "unused{" U16_XOR "," MFL_SIZE "}" - "unused{" U16_XOR "," MFL_SIZE "}" - - "unused{" U16_XOR "," MFL_SIZE "}" - "unused{" U16_XOR "," MFL_SIZE "}" - "unused{" U16_XOR "," MFL_SIZE "}" - "unused{" U16_XOR "," MFL_SIZE "}" +#if USB_HAVE_COMPAT_LINUX + "mfl_vendor{" U16_XOR ",1}" + "mfl_product{" U16_XOR ",1}" + "mfl_dev_lo{" U16_XOR ",1}" + "mfl_dev_hi{" U16_XOR ",1}" + + "mfl_dev_class{" U16_XOR ",1}" + "mfl_dev_subclass{" U16_XOR ",1}" + "mfl_dev_protocol{" U16_XOR ",1}" + "mfl_int_class{" U16_XOR ",1}" + + "mfl_int_subclass{" U16_XOR ",1}" + "mfl_int_protocol{" U16_XOR ",1}" + "unused{" U16_XOR ",6}" +#endif }; #endif Modified: head/sys/dev/usb/usbdi.h ============================================================================== --- head/sys/dev/usb/usbdi.h Tue Dec 29 11:24:41 2015 (r292864) +++ head/sys/dev/usb/usbdi.h Tue Dec 29 11:53:13 2015 (r292865) @@ -267,7 +267,7 @@ struct usb_config { struct usb_device_id { /* Select which fields to match against */ -#if _BYTE_ORDER == _LITTLE_ENDIAN +#if BYTE_ORDER == LITTLE_ENDIAN uint16_t match_flag_vendor:1, match_flag_product:1, @@ -315,13 +315,6 @@ struct usb_device_id { uint8_t bInterfaceSubClass; uint8_t bInterfaceProtocol; - /* Hook for driver specific information */ - unsigned long driver_info; - -/* - * XXX can't currently participate in auto driver loading - * XXX making it a union with the match_flag_* above messes up init - */ #if USB_HAVE_COMPAT_LINUX /* which fields to match against */ uint16_t match_flags; @@ -336,6 +329,9 @@ struct usb_device_id { #define USB_DEVICE_ID_MATCH_INT_SUBCLASS 0x0100 #define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200 #endif + + /* Hook for driver specific information */ + unsigned long driver_info; } __aligned(32); #define USB_STD_PNP_INFO "M16:mask;U16:vendor;U16:product;L16:product;G16:product;" \ From owner-svn-src-all@freebsd.org Tue Dec 29 12:04:36 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7091CA54772; Tue, 29 Dec 2015 12:04:36 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0E5A31E8B; Tue, 29 Dec 2015 12:04:36 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-wm0-x242.google.com with SMTP id u188so35448919wmu.0; Tue, 29 Dec 2015 04:04:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=ZsmSwpeJo8ZB7R15P6OUYoZ5vUgldN9z2eq5Qf2Aumk=; b=Z9/3gSLxyoJNiAZ8Hlr3w23f+46fU31JyMhN7kzJt2u2ADeWeSltQ9oJhfWLETHnrS 5XALqlTTgcBeHAjGE5celaPY53OwuUj2qQy0zhxYDMzQp4CtNLHFZ2ihYmgrrWf+dnMU E4qpOxuNfkKIeBEEhKUzl/YqJ0aXoS4ngLycPA214vGZooCz3UecO4Nl02xhRH5YWAak mSywSsM0R2sMh6k0zGvK8TaRcjO23xS7/JQR4FlB2krtpA7B5Xnt0dFtEEmHh4d9TRlo Hsxu1FHDSiinsgXEHRCaTN41lOcnvJZkEHnUQIWhIsrna2u6y7tXvD57Jc5QRcms9ZJO TWCA== X-Received: by 10.28.214.76 with SMTP id n73mr8117956wmg.52.1451390674455; Tue, 29 Dec 2015 04:04:34 -0800 (PST) Received: from dft-labs.eu (n1x0n-1-pt.tunnel.tserv5.lon1.ipv6.he.net. [2001:470:1f08:1f7::2]) by smtp.gmail.com with ESMTPSA id o132sm47788178wmb.7.2015.12.29.04.04.33 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Tue, 29 Dec 2015 04:04:33 -0800 (PST) Date: Tue, 29 Dec 2015 13:04:31 +0100 From: Mateusz Guzik To: NGie Cooper Cc: John Baldwin , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Garrett Cooper Subject: Re: svn commit: r292626 - head/sys/kern Message-ID: <20151229120431.GB15969@dft-labs.eu> References: <201512222107.tBML7XUO053901@repo.freebsd.org> <3052030.KADVjZoIBd@ralph.baldwin.cx> <2BB34BE5-B312-42DA-B89E-F25B823B9831@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <2BB34BE5-B312-42DA-B89E-F25B823B9831@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 12:04:36 -0000 On Tue, Dec 22, 2015 at 02:29:36PM -0800, NGie Cooper wrote: > > > On Dec 22, 2015, at 13:17, John Baldwin wrote: > > > > On Tuesday, December 22, 2015 09:07:33 PM Garrett Cooper wrote: > > … > > > It shouldn't be zero, I think == 1 would be best actually. > > I’ll boot up GENERIC and see whether or not it works with == 1. > Thanks :)! Any value other than in 1 is a bug. The value of 0 means the destination is not used, although it clearly is. Since the counter is signed, sufficiently big amount of users can actually make it negative, although that's an unrealistic for now. TL;DR please change it to equality check against 1. -- Mateusz Guzik From owner-svn-src-all@freebsd.org Tue Dec 29 12:06:21 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C039A5485A; Tue, 29 Dec 2015 12:06:21 +0000 (UTC) (envelope-from chagin.dmitry@gmail.com) Received: from mail-ig0-x231.google.com (mail-ig0-x231.google.com [IPv6:2607:f8b0:4001:c05::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DF9A71014; Tue, 29 Dec 2015 12:06:20 +0000 (UTC) (envelope-from chagin.dmitry@gmail.com) Received: by mail-ig0-x231.google.com with SMTP id mw1so35192579igb.1; Tue, 29 Dec 2015 04:06:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:message-id:subject:from:to:cc:content-type; bh=5OB5aFzBJx6iqzmT5X+1ZzFsireOL8Ezvsc68FAEiBE=; b=sb8dfCaJA4UAZya0zYa/+WaSK5itXJ50Y1SvKMolNTrZCAEalavjIpQjFzTdW2sqaB PnRAYk5ArDm+RkxJXuLQc3WHD+qX5v0Z2wGNQBtANPJlHUE7nSftIKcNxFF5BD7jjA7B 1ODc/eAq8a3u4iJ26vvAkku5/DCHzMpJPMGWlEyMfFjOUkpB0HHgZ+3zXulWDkYFjm0/ Rg28mMhBOBRenMEI3we3ix6FX2TCCLIzeSCLObYKt9U2pxthSDQq87HEUwt+GWdhOvXJ js/P8auqdLEtKIfyY9L/KysHhH10uaeKnlGipEqe0EygOk3uocD2V0bPwnRREUzKg6dB t3Xg== MIME-Version: 1.0 X-Received: by 10.50.142.39 with SMTP id rt7mr7977832igb.29.1451390780253; Tue, 29 Dec 2015 04:06:20 -0800 (PST) Sender: chagin.dmitry@gmail.com Received: by 10.79.82.68 with HTTP; Tue, 29 Dec 2015 04:06:20 -0800 (PST) Date: Tue, 29 Dec 2015 15:06:20 +0300 X-Google-Sender-Auth: cJ0KDaAJOgDagyZTdim3_8Ipxso Message-ID: Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern From: Dmitry Chagin To: Bruce Evans , Konstantin Belousov Cc: Ian Lepore , Dmitry Chagin , src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 12:06:21 -0000 2015-12-28 1:35 GMT+03:00 Bruce Evans : > On Sun, 27 Dec 2015, Ian Lepore wrote: > > On Sun, 2015-12-27 at 15:37 +0000, Dmitry Chagin wrote: >> >>> Author: dchagin >>> Date: Sun Dec 27 15:37:07 2015 >>> New Revision: 292777 >>> URL: https://svnweb.freebsd.org/changeset/base/292777 >>> >>> Log: >>> Verify that tv_sec value specified in settimeofday() and >>> clock_settime() >>> (CLOCK_REALTIME case) system calls is non negative. >>> This commit hides a kernel panic in atrtc_settime() as the >>> clock_ts_to_ct() >>> does not properly convert negative tv_sec. >>> >>> ps. in my opinion clock_ts_to_ct() should be rewritten to properly >>> handle >>> negative tv_sec values. >>> >>> Differential Revision: https://reviews.freebsd.org/D4714 >>> Reviewed by: kib >>> >>> MFC after: 1 week >>> >> >> IMO, this change is completely unacceptable. If there is a bug in >> atrtc code, then by all means fix it, but preventing anyone from >> setting valid time values on the system because one driver's code can't >> handle it is just wrong. >> > > I agree. Even (time_t)-1 should be a valid time for input, although it > is an error indicator for output. > (This API makes correctly using functions like time(1) difficult or > impossible (impossible for time(1) specifically. The implementation > might reserve (time_t)-1 for representing an invalid time. But > nothing requires it to. > (POSIX almost requires the reverse. It requires a broken > implementation that represents times as seconds since the Epoch. I > think POSIX doesn't require times before the Epoch to work. But > FreeBSD and the ado time package tries to make them work.) > So if the representation of the current time is (time_t)-1, then > time(1) can't do anything better than return this value. But this > value is also the error value. There is no way to distinguish this > value from the error value, since time(1) is not required to set > errno.) > > So, my point was: a) for a long time we have broken settimeofday() which does not allow us to set the system time before the Epoch b) as you already mentioned POSIX doesn't require times before the Epoch to work =D1=81) Linux does not allows negative seconds also d) we have settimeofsay(2) that consistent with POSIX and in my understanding phrase "The time is expressed in seconds and microseconds since midnight (0 hour), January 1, 1970." is a strict definition, which prohibits time before the Epoch I do not understand why we should have our own (separate from the rest world) behavior. > I think the change also doesn't actually work, especially in the Western > hemisphere, but it was written in the Eastern hemisphere. Suppose > that the time is the Epoch. This is 0, so it is pefectly valid. Then > if the clock is on local time, utc_offset() is added before calling > clock_cs_to_ct() and the result is a negative time_t in the Western > hemisphere. Similarly in the Eastern hemisphere when you test with > with Western settings. > > The main bug in clock_ts_ct() is due to division being specified as > broken in C: > > X void > X clock_ts_to_ct(struct timespec *ts, struct clocktime *ct) > X { > X int i, year, days; > X time_t rsec; /* remainder seconds */ > X time_t secs; > X X secs =3D ts->tv_sec; > X days =3D secs / SECDAY; > X rsec =3D secs % SECDAY; > > Division of negative numbers used to be implementation-defined in C, but > C90 or C99 broke this by requiring the broken alternative of rounding > towards 0 like most hardware does. The remainder operation is consistent= ly > broken. So when secs < 0, this always gives days < 0 and rsec either 0 > or < 0. > > If this causes a panic, then it is from a sanity check detecting the > invalid conversion later. A negative value in days breaks the loop > logic but seems to give premature exit from the loops instead of many > iterations. > > Another bug here is the type of rsec. This variable is a small integer > (< SECDAY =3D 86400), not a time_t. > > Code like this is probably common in userland. w(1) uses it, but w(1) > only deals with uptimes which should be positive. > > clock_ct_to_ts() is also buggy: > > X int > X clock_ct_to_ts(struct clocktime *ct, struct timespec *ts) > X { > X int i, year, days; > X ... > X /* Sanity checks. */ > X if (ct->mon < 1 || ct->mon > 12 || ct->day < 1 || > X ct->day > days_in_month(year, ct->mon) || > X ct->hour > 23 || ct->min > 59 || ct->sec > 59 || > X (sizeof(time_t) =3D=3D 4 && year > 2037)) { /* time_t ove= rflow > */ > X if (ct_debug) > X printf(" =3D EINVAL\n"); > X return (EINVAL); > X } > > The limit of 2037 is bogus with 64-bit time_t's or even with 32-bit > unsigned time_t's. > > Years before 1970 are insane due to the C bug, and years before ~1906 > are insanse due to representability problems, but there is no check > for the lower limit of 'year'. > > There is also no check for the lower limit of ct->hour, ct->min or > ct->sec. > > Bruce > From owner-svn-src-all@freebsd.org Tue Dec 29 14:10:00 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 27830A55BFB; Tue, 29 Dec 2015 14:10:00 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail110.syd.optusnet.com.au (mail110.syd.optusnet.com.au [211.29.132.97]) by mx1.freebsd.org (Postfix) with ESMTP id E377C1A13; Tue, 29 Dec 2015 14:09:59 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail110.syd.optusnet.com.au (Postfix) with ESMTPS id 9F661781843; Wed, 30 Dec 2015 01:09:47 +1100 (AEDT) Date: Wed, 30 Dec 2015 01:09:47 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Dmitry Chagin cc: Bruce Evans , Konstantin Belousov , Ian Lepore , src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r292777 - in head: lib/libc/sys sys/kern In-Reply-To: Message-ID: <20151229235754.T3714@besplex.bde.org> References: MIME-Version: 1.0 X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=cK4dyQqN c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=nlC_4_pT8q9DhB4Ho9EA:9 a=1ux614oztSyDE4AEBDIA:9 a=45ClL6m2LaAA:10 Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 14:10:00 -0000 On Tue, 29 Dec 2015, Dmitry Chagin wrote: > So, my point was: > a) for a long time we have broken settimeofday() which does not allow us > to set the system time before the Epoch We still have a broken settimeofday that doesn't allow us to set the system time to the Epoch in the Western hemisphere if the clock is on local time, and doesn't allow as to set the system time to a year > 9999. More precise= ly it does allow us to set these and usually panics on x86 before completing. > b) as you already mentioned POSIX doesn't require times before the Epoch = to > work In fact, the representation of times is undefined for times before the Epoch in general. The specification of clock_settime() is interesting. At least in an old POSIX-2001 draft, It is required to set to the specified time and is not limited to the current time, whatever that is. It is only required to work for CLOCK_REALTIME. It is required to fail if the specified time is outside of the "legal range" for the clock id. "legal range" is bad wording and is unspecified. > =D1=81) Linux does not allows negative seconds also Old (~2004) versions of Linux seem to have less error checking for i386 settimeofday() FreeBSD then, so they seem to allow it. The implementation seems to be: - copy the requested value to the kernel software time without much error checking. Don't touch the hardware yet - update the RTC every 11 minutes if the clock is externally synchronized. So with 64-bit time_t anyone could easily set the time to year +-292g, or just to year +-10k. The AT RTC cannot represent this, and it is difficult to make it try since it is difficult to find external servers running that far off the current time. With 32-bit time_t the range is 1906-2037. Linux seems to have no range checking for the conversion to BCD, but it doesn't panic because the BCD macros are expressions. These macros of course don't work for arbitrary inputs. They just convert valid but unusual years to garbage. Before that, negative times are converted to garbage using a type pun: set_rtc_mmss(xtime.tv_sec) starts with a time_t, but the function takes an unsigned long. So 1 second before the Epoch becomes year +584g. The usual divisions by 60 are used to reduce the type-punned time. Since it is unsigned, these now give garbage in-range values. > d) we have settimeofsay(2) that consistent with POSIX and in my > understanding phrase "The time is expressed in seconds and microseconds > since midnight (0 hour), January 1, 1970." is a strict definition, which > prohibits time before the Epoch TImes before the Epoch give undefined behaviour, so they are allowed to work. They are even allowed to work better than times after the Epoch, since they can have any representation and are not require to be missing support for leap seconds. > I do not understand why we should have our own (separate from the rest > world) behavior. It would be good to not have such broken bounds checkng as the rest of the world. Updating the AT RTC synchronously in settimeofday() is already more significantly different than limiting the range of accepted times. One reason that Linux updates asynchronously is that a correct synchronous update (which FreeBSD doesn't do) requires waiting for a second or two. The asynchronous update gives the usual problems handling errors -- even if the interrupt handler detected representation errors, it wouldn't be able to return them to settimeofday(). So errors of a measly 292g years go unreported. Bruce From owner-svn-src-all@freebsd.org Tue Dec 29 15:23:04 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB024A555A8; Tue, 29 Dec 2015 15:23:04 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9BC34118A; Tue, 29 Dec 2015 15:23:04 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTFN3QH074515; Tue, 29 Dec 2015 15:23:03 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTFN3og074514; Tue, 29 Dec 2015 15:23:03 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201512291523.tBTFN3og074514@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Tue, 29 Dec 2015 15:23:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292870 - head/contrib/binutils/bfd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 15:23:04 -0000 Author: ian Date: Tue Dec 29 15:23:03 2015 New Revision: 292870 URL: https://svnweb.freebsd.org/changeset/base/292870 Log: Correct the code for sign-extending a 16 bit value. As near as I can tell this is effectively a no-op -- the addend term in MOVT/MOVW relocations always seems to be zero. But this is correct and the old code wasn't. Modified: head/contrib/binutils/bfd/elf32-arm.c Modified: head/contrib/binutils/bfd/elf32-arm.c ============================================================================== --- head/contrib/binutils/bfd/elf32-arm.c Tue Dec 29 12:38:04 2015 (r292869) +++ head/contrib/binutils/bfd/elf32-arm.c Tue Dec 29 15:23:03 2015 (r292870) @@ -5800,7 +5800,7 @@ elf32_arm_final_link_relocate (reloc_how if (globals->use_rel) { addend = ((insn >> 4) & 0xf000) | (insn & 0xfff); - signed_addend = (addend ^ 0x10000) - 0x10000; + signed_addend = (addend ^ 0x8000) - 0x8000; } value += signed_addend; From owner-svn-src-all@freebsd.org Tue Dec 29 15:36:47 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 93835A55940; Tue, 29 Dec 2015 15:36:47 +0000 (UTC) (envelope-from miwi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 625781A1F; Tue, 29 Dec 2015 15:36:47 +0000 (UTC) (envelope-from miwi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTFakEo077909; Tue, 29 Dec 2015 15:36:46 GMT (envelope-from miwi@FreeBSD.org) Received: (from miwi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTFakbH077908; Tue, 29 Dec 2015 15:36:46 GMT (envelope-from miwi@FreeBSD.org) Message-Id: <201512291536.tBTFakbH077908@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: miwi set sender to miwi@FreeBSD.org using -f From: Martin Wilke Date: Tue, 29 Dec 2015 15:36:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292871 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 15:36:47 -0000 Author: miwi (doc,ports committer) Date: Tue Dec 29 15:36:46 2015 New Revision: 292871 URL: https://svnweb.freebsd.org/changeset/base/292871 Log: - Add myself to ports-secteam Approved by: delphij (implicit) Modified: head/share/misc/organization.dot Modified: head/share/misc/organization.dot ============================================================================== --- head/share/misc/organization.dot Tue Dec 29 15:23:03 2015 (r292870) +++ head/share/misc/organization.dot Tue Dec 29 15:36:46 2015 (r292871) @@ -34,7 +34,7 @@ portmgr [label="Port Management Team\npo portmgrsecretary [label="Port Management Team Secretary\nportmgr-secretary@FreeBSD.org\nculot"] re [label="Primary Release Engineering Team\nre@FreeBSD.org\nkib, blackend, jpaetzel, hrs, kensmith"] secteam [label="Security Team\nsecteam@FreeBSD.org\nsimon, qingli, delphij,\nremko, philip, stas, cperciva,\ncsjp, rwatson, miwi, bz"] -portssecteam [label="Ports Security Team\nports-secteam@FreeBSD.org\ndelphij, eadler, feld, jgh, rea, sbz, simon, swills, zi"] +portssecteam [label="Ports Security Team\nports-secteam@FreeBSD.org\ndelphij, eadler, feld, jgh, rea, sbz, simon, swills, zi, miwi"] secteamsecretary [label="Security Team Secretary\nsecteam-secretary@FreeBSD.org\nremko"] securityofficer [label="Security Officer Team\nsecurity-officer@FreeBSD.org\ncperciva, simon, nectar"] srccommitters [label="Src Committers\nsrc-committers@FreeBSD.org"] From owner-svn-src-all@freebsd.org Tue Dec 29 15:51:53 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EBC4BA55DFD; Tue, 29 Dec 2015 15:51:53 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BB5BB107F; Tue, 29 Dec 2015 15:51:53 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTFpqiC081004; Tue, 29 Dec 2015 15:51:52 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTFpqbt081003; Tue, 29 Dec 2015 15:51:52 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201512291551.tBTFpqbt081003@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Tue, 29 Dec 2015 15:51:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292872 - head/sys/fs/ext2fs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 15:51:54 -0000 Author: pfg Date: Tue Dec 29 15:51:52 2015 New Revision: 292872 URL: https://svnweb.freebsd.org/changeset/base/292872 Log: ext2: recognize ext4 INCOMPAT_RECOVER flag This is a flag specific for journalling in ext4. Add it to the list of ext4 features we ignore for read-only purposes. PR: 205668 MFC after: 1 week Modified: head/sys/fs/ext2fs/ext2fs.h Modified: head/sys/fs/ext2fs/ext2fs.h ============================================================================== --- head/sys/fs/ext2fs/ext2fs.h Tue Dec 29 15:36:46 2015 (r292871) +++ head/sys/fs/ext2fs/ext2fs.h Tue Dec 29 15:51:52 2015 (r292872) @@ -187,6 +187,7 @@ struct csum { #define EXT2F_INCOMPAT_COMP 0x0001 #define EXT2F_INCOMPAT_FTYPE 0x0002 +#define EXT2F_INCOMPAT_RECOVER 0x0004 #define EXT2F_INCOMPAT_META_BG 0x0010 #define EXT2F_INCOMPAT_EXTENTS 0x0040 #define EXT2F_INCOMPAT_64BIT 0x0080 @@ -208,6 +209,7 @@ struct csum { * * We do not support these EXT4 features but they are irrelevant * for read-only support: + * - EXT2F_INCOMPAT_RECOVER * - EXT2F_INCOMPAT_FLEX_BG * - EXT2F_INCOMPAT_META_BG */ @@ -216,6 +218,7 @@ struct csum { EXT2F_ROCOMPAT_EXTRA_ISIZE) #define EXT2F_INCOMPAT_SUPP EXT2F_INCOMPAT_FTYPE #define EXT4F_RO_INCOMPAT_SUPP (EXT2F_INCOMPAT_EXTENTS | \ + EXT2F_INCOMPAT_RECOVER | \ EXT2F_INCOMPAT_FLEX_BG | \ EXT2F_INCOMPAT_META_BG ) From owner-svn-src-all@freebsd.org Tue Dec 29 15:54:35 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E1B23A54027; Tue, 29 Dec 2015 15:54:35 +0000 (UTC) (envelope-from miwi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AF2F21491; Tue, 29 Dec 2015 15:54:35 +0000 (UTC) (envelope-from miwi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTFsY81083689; Tue, 29 Dec 2015 15:54:34 GMT (envelope-from miwi@FreeBSD.org) Received: (from miwi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTFsYRo083688; Tue, 29 Dec 2015 15:54:34 GMT (envelope-from miwi@FreeBSD.org) Message-Id: <201512291554.tBTFsYRo083688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: miwi set sender to miwi@FreeBSD.org using -f From: Martin Wilke Date: Tue, 29 Dec 2015 15:54:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292873 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 15:54:36 -0000 Author: miwi (doc,ports committer) Date: Tue Dec 29 15:54:34 2015 New Revision: 292873 URL: https://svnweb.freebsd.org/changeset/base/292873 Log: - Sort ports-secteam Modified: head/share/misc/organization.dot Modified: head/share/misc/organization.dot ============================================================================== --- head/share/misc/organization.dot Tue Dec 29 15:51:52 2015 (r292872) +++ head/share/misc/organization.dot Tue Dec 29 15:54:34 2015 (r292873) @@ -34,7 +34,7 @@ portmgr [label="Port Management Team\npo portmgrsecretary [label="Port Management Team Secretary\nportmgr-secretary@FreeBSD.org\nculot"] re [label="Primary Release Engineering Team\nre@FreeBSD.org\nkib, blackend, jpaetzel, hrs, kensmith"] secteam [label="Security Team\nsecteam@FreeBSD.org\nsimon, qingli, delphij,\nremko, philip, stas, cperciva,\ncsjp, rwatson, miwi, bz"] -portssecteam [label="Ports Security Team\nports-secteam@FreeBSD.org\ndelphij, eadler, feld, jgh, rea, sbz, simon, swills, zi, miwi"] +portssecteam [label="Ports Security Team\nports-secteam@FreeBSD.org\ndelphij, eadler, feld, jgh, miwi, rea, sbz, simon, swills, zi"] secteamsecretary [label="Security Team Secretary\nsecteam-secretary@FreeBSD.org\nremko"] securityofficer [label="Security Officer Team\nsecurity-officer@FreeBSD.org\ncperciva, simon, nectar"] srccommitters [label="Src Committers\nsrc-committers@FreeBSD.org"] From owner-svn-src-all@freebsd.org Tue Dec 29 16:09:16 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B3DB9A547CB; Tue, 29 Dec 2015 16:09:16 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 842EF1D55; Tue, 29 Dec 2015 16:09:16 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTG9Fqh086790; Tue, 29 Dec 2015 16:09:15 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTG9Fke086789; Tue, 29 Dec 2015 16:09:15 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201512291609.tBTG9Fke086789@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 29 Dec 2015 16:09:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292874 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 16:09:16 -0000 Author: kib Date: Tue Dec 29 16:09:15 2015 New Revision: 292874 URL: https://svnweb.freebsd.org/changeset/base/292874 Log: MFC r292620: Show the actual error code when interpreter cannot be loaded. Modified: stable/10/sys/kern/imgact_elf.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/imgact_elf.c ============================================================================== --- stable/10/sys/kern/imgact_elf.c Tue Dec 29 15:54:34 2015 (r292873) +++ stable/10/sys/kern/imgact_elf.c Tue Dec 29 16:09:15 2015 (r292874) @@ -993,7 +993,8 @@ __CONCAT(exec_, __elfN(imgact))(struct i } vn_lock(imgp->vp, LK_EXCLUSIVE | LK_RETRY); if (error != 0) { - uprintf("ELF interpreter %s not found\n", interp); + uprintf("ELF interpreter %s not found, error %d\n", + interp, error); goto ret; } } else From owner-svn-src-all@freebsd.org Tue Dec 29 16:11:45 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 38C74A54B08; Tue, 29 Dec 2015 16:11:45 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E3D0F1574; Tue, 29 Dec 2015 16:11:44 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTGBidE087660; Tue, 29 Dec 2015 16:11:44 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTGBisg087659; Tue, 29 Dec 2015 16:11:44 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201512291611.tBTGBisg087659@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 29 Dec 2015 16:11:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292875 - stable/10/sys/fs/devfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 16:11:45 -0000 Author: kib Date: Tue Dec 29 16:11:43 2015 New Revision: 292875 URL: https://svnweb.freebsd.org/changeset/base/292875 Log: MFC r292621: Keep devfs mount locked for the whole duration of the devfs_setattr(), and ensure that our dirent is instantiated. Modified: stable/10/sys/fs/devfs/devfs_vnops.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/devfs/devfs_vnops.c ============================================================================== --- stable/10/sys/fs/devfs/devfs_vnops.c Tue Dec 29 16:09:15 2015 (r292874) +++ stable/10/sys/fs/devfs/devfs_vnops.c Tue Dec 29 16:11:43 2015 (r292875) @@ -1533,11 +1533,15 @@ devfs_setattr(struct vop_setattr_args *a return (EINVAL); } + error = devfs_populate_vp(vp); + if (error != 0) + return (error); + de = vp->v_data; if (vp->v_type == VDIR) de = de->de_dir; - error = c = 0; + c = 0; if (vap->va_uid == (uid_t)VNOVAL) uid = de->de_uid; else @@ -1550,8 +1554,8 @@ devfs_setattr(struct vop_setattr_args *a if ((ap->a_cred->cr_uid != de->de_uid) || uid != de->de_uid || (gid != de->de_gid && !groupmember(gid, ap->a_cred))) { error = priv_check(td, PRIV_VFS_CHOWN); - if (error) - return (error); + if (error != 0) + goto ret; } de->de_uid = uid; de->de_gid = gid; @@ -1561,8 +1565,8 @@ devfs_setattr(struct vop_setattr_args *a if (vap->va_mode != (mode_t)VNOVAL) { if (ap->a_cred->cr_uid != de->de_uid) { error = priv_check(td, PRIV_VFS_ADMIN); - if (error) - return (error); + if (error != 0) + goto ret; } de->de_mode = vap->va_mode; c = 1; @@ -1571,7 +1575,7 @@ devfs_setattr(struct vop_setattr_args *a if (vap->va_atime.tv_sec != VNOVAL || vap->va_mtime.tv_sec != VNOVAL) { error = vn_utimes_perm(vp, vap, ap->a_cred, td); if (error != 0) - return (error); + goto ret; if (vap->va_atime.tv_sec != VNOVAL) { if (vp->v_type == VCHR) vp->v_rdev->si_atime = vap->va_atime; @@ -1593,7 +1597,10 @@ devfs_setattr(struct vop_setattr_args *a else vfs_timestamp(&de->de_mtime); } - return (0); + +ret: + sx_xunlock(&VFSTODEVFS(vp->v_mount)->dm_lock); + return (error); } #ifdef MAC From owner-svn-src-all@freebsd.org Tue Dec 29 16:29:44 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 77992A5523C; Tue, 29 Dec 2015 16:29:44 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 44112111D; Tue, 29 Dec 2015 16:29:44 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTGThpv093345; Tue, 29 Dec 2015 16:29:43 GMT (envelope-from theraven@FreeBSD.org) Received: (from theraven@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTGTgf8093337; Tue, 29 Dec 2015 16:29:42 GMT (envelope-from theraven@FreeBSD.org) Message-Id: <201512291629.tBTGTgf8093337@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: theraven set sender to theraven@FreeBSD.org using -f From: David Chisnall Date: Tue, 29 Dec 2015 16:29:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292876 - head/usr.bin/dtc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 16:29:44 -0000 Author: theraven Date: Tue Dec 29 16:29:42 2015 New Revision: 292876 URL: https://svnweb.freebsd.org/changeset/base/292876 Log: Improvements to BSD-licensed DTC. - Added an expression parser so that expressions from headers are now working - Fixed missing null terminators on cross references - Disabled exceptions / RTTI in the build for smaller binaries - Changed phandle order generation to be identical to GPL'd dtc Modified: head/usr.bin/dtc/Makefile head/usr.bin/dtc/checking.cc head/usr.bin/dtc/checking.hh head/usr.bin/dtc/dtb.hh head/usr.bin/dtc/fdt.cc head/usr.bin/dtc/fdt.hh head/usr.bin/dtc/input_buffer.cc head/usr.bin/dtc/input_buffer.hh Modified: head/usr.bin/dtc/Makefile ============================================================================== --- head/usr.bin/dtc/Makefile Tue Dec 29 16:11:43 2015 (r292875) +++ head/usr.bin/dtc/Makefile Tue Dec 29 16:29:42 2015 (r292876) @@ -6,7 +6,7 @@ MAN= dtc.1 WARNS?= 3 -CXXFLAGS+= -std=c++11 +CXXFLAGS+= -std=c++11 -fno-rtti -fno-exceptions NO_SHARED?=NO Modified: head/usr.bin/dtc/checking.cc ============================================================================== --- head/usr.bin/dtc/checking.cc Tue Dec 29 16:11:43 2015 (r292875) +++ head/usr.bin/dtc/checking.cc Tue Dec 29 16:29:42 2015 (r292876) @@ -51,7 +51,7 @@ namespace struct address_cells_checker : public checker { address_cells_checker(const char *name) : checker(name) {} - virtual bool check_node(device_tree *tree, const node_ptr &n) + virtual bool check_node(device_tree *, const node_ptr &n) { // If this has no children, it trivially meets the // conditions. @@ -151,7 +151,7 @@ property_checker::check_property(device_ } bool -property_size_checker::check(device_tree *tree, const node_ptr &n, property_ptr p) +property_size_checker::check(device_tree *, const node_ptr &, property_ptr p) { uint32_t psize = 0; for (property::value_iterator i=p->begin(),e=p->end() ; i!=e ; ++i) Modified: head/usr.bin/dtc/checking.hh ============================================================================== --- head/usr.bin/dtc/checking.hh Tue Dec 29 16:11:43 2015 (r292875) +++ head/usr.bin/dtc/checking.hh Tue Dec 29 16:29:42 2015 (r292876) @@ -86,7 +86,7 @@ class checker * Method for checking that a node is valid. The root class version * does nothing, subclasses should override this. */ - virtual bool check_node(device_tree *tree, const node_ptr &n) + virtual bool check_node(device_tree *, const node_ptr &) { return true; } @@ -94,7 +94,7 @@ class checker * Method for checking that a property is valid. The root class * version does nothing, subclasses should override this. */ - virtual bool check_property(device_tree *tree, const node_ptr &n, property_ptr p) + virtual bool check_property(device_tree *, const node_ptr &, property_ptr ) { return true; } @@ -160,7 +160,7 @@ struct property_type_checker begin() == p->end(); } @@ -175,7 +175,7 @@ struct property_type_checker begin() + 1 == p->end()) && p->begin()->is_string(); } @@ -190,7 +190,7 @@ struct property_type_checker begin(),e=p->end() ; i!=e ; ++i) @@ -213,7 +213,7 @@ struct property_type_checker begin() + 1 == p->end()) && (tree->referenced_node(*p->begin()) != 0); Modified: head/usr.bin/dtc/dtb.hh ============================================================================== --- head/usr.bin/dtc/dtb.hh Tue Dec 29 16:11:43 2015 (r292875) +++ head/usr.bin/dtc/dtb.hh Tue Dec 29 16:29:42 2015 (r292876) @@ -186,11 +186,11 @@ class binary_writer : public output_writ * The binary format does not support labels, so this method * does nothing. */ - virtual void write_label(string name) {} + virtual void write_label(string) {} /** * Comments are ignored by the binary writer. */ - virtual void write_comment(string name) {} + virtual void write_comment(string) {} virtual void write_string(string name); virtual void write_data(uint8_t v); virtual void write_data(uint32_t v); Modified: head/usr.bin/dtc/fdt.cc ============================================================================== --- head/usr.bin/dtc/fdt.cc Tue Dec 29 16:11:43 2015 (r292875) +++ head/usr.bin/dtc/fdt.cc Tue Dec 29 16:29:42 2015 (r292876) @@ -264,24 +264,6 @@ property::parse_string(input_buffer &inp void property::parse_cells(input_buffer &input, int cell_size) { - unsigned long long cell_max; - switch (cell_size) - { - case 8: - cell_max = UINT8_MAX; - break; - case 16: - cell_max = UINT16_MAX; - break; - case 32: - cell_max = UINT32_MAX; - break; - case 64: - cell_max = UINT64_MAX; - break; - default: - assert(0 && "Invalid cell size!"); - } assert(input[0] == '<'); ++input; property_value v; @@ -327,19 +309,12 @@ property::parse_cells(input_buffer &inpu //FIXME: We should support labels in the middle //of these, but we don't. unsigned long long val; - if (!input.consume_integer(val)) + if (!input.consume_integer_expression(val)) { input.parse_error("Expected numbers in array of cells"); valid = false; return; } - if (val > cell_max) - { - fprintf(stderr, "%lld > %lld\n", val, cell_max); - input.parse_error("Value out of range"); - valid = false; - return; - } switch (cell_size) { case 8: @@ -685,6 +660,16 @@ node::parse_name(input_buffer &input, bo return n; } +void +node::visit(std::function fn) +{ + fn(*this); + for (auto &&c : children) + { + c->visit(fn); + } +} + node::node(input_buffer &structs, input_buffer &strings) : valid(true) { const char *name_start = (const char*)structs; @@ -742,7 +727,7 @@ node::node(input_buffer &structs, input_ valid = false; return; } - properties.push_back(prop); + props.push_back(prop); break; } break; @@ -806,7 +791,7 @@ node::node(input_buffer &input, string n } else { - properties.push_back(p); + props.push_back(p); } } else if (!is_property && input[0] == ('{')) @@ -824,7 +809,7 @@ node::node(input_buffer &input, string n } else if (input.consume(';')) { - properties.push_back(property_ptr(new property(child_name, child_label))); + props.push_back(property_ptr(new property(child_name, child_label))); } else { @@ -857,9 +842,9 @@ node::sort() { std::sort(property_begin(), property_end(), cmp_properties); std::sort(child_begin(), child_end(), cmp_children); - for (child_iterator i=child_begin(), e=child_end() ; i!=e ; ++i) + for (auto &c : child_nodes()) { - (*i)->sort(); + c->sort(); } } @@ -892,7 +877,7 @@ node::parse_dtb(input_buffer &structs, i property_ptr node::get_property(string key) { - for (auto &i : properties) + for (auto &i : props) { if (i->get_key() == key) { @@ -914,14 +899,14 @@ node::merge_node(node_ptr other) // large numbers of properties, but for typical usage the // entire vector will fit (easily) into cache, so iterating // over it repeatedly isn't that expensive. - for (auto &p : other->properties) + for (auto &p : other->properties()) { bool found = false; - for (auto i=property_begin(), e=property_end() ; i!=e ; ++i) + for (auto &mp : properties()) { - if ((*i)->get_key() == p->get_key()) + if (mp->get_key() == p->get_key()) { - *i = p; + mp = p; found = true; break; } @@ -964,13 +949,13 @@ node::write(dtb::output_writer &writer, writer.write_comment(name); writer.write_data(name_buffer); writer.write_data((uint8_t)0); - for (auto i=property_begin(), e=property_end() ; i!=e ; ++i) + for (auto p : properties()) { - (*i)->write(writer, strings); + p->write(writer, strings); } - for (child_iterator i=child_begin(), e=child_end() ; i!=e ; ++i) + for (auto &c : child_nodes()) { - (*i)->write(writer, strings); + c->write(writer, strings); } writer.write_token(dtb::FDT_END_NODE); } @@ -999,13 +984,13 @@ node::write_dts(FILE *file, int indent) unit_address.print(file); } fputs(" {\n\n", file); - for (auto i=property_begin(), e=property_end() ; i!=e ; ++i) + for (auto p : properties()) { - (*i)->write_dts(file, indent+1); + p->write_dts(file, indent+1); } - for (child_iterator i=child_begin(), e=child_end() ; i!=e ; ++i) + for (auto &c : child_nodes()) { - (*i)->write_dts(file, indent+1); + c->write_dts(file, indent+1); } for (int i=0 ; ichild_begin(), e=n->child_end() ; i!=e ; ++i) + for (auto &c : n->child_nodes()) { - collect_names_recursive(*i, path); + collect_names_recursive(c, path); } path.pop_back(); // Now we collect the phandles and properties that reference // other nodes. - for (auto i=n->property_begin(), e=n->property_end() ; i!=e ; ++i) + for (auto &p : n->properties()) { - for (property::value_iterator p=(*i)->begin(),pe=(*i)->end() ; p!=pe ; ++p) + for (auto &v : *p) { - if (p->is_phandle()) + if (v.is_phandle()) { - phandles.push_back(&*p); + phandles.push_back(&v); } - if (p->is_cross_reference()) + if (v.is_cross_reference()) { - cross_references.push_back(&*p); + cross_references.push_back(&v); } } - if ((*i)->get_key() == string("phandle") || - (*i)->get_key() == string("linux,phandle")) + if (p->get_key() == string("phandle") || + p->get_key() == string("linux,phandle")) { - if ((*i)->begin()->byte_data.size() != 4) + if (p->begin()->byte_data.size() != 4) { fprintf(stderr, "Invalid phandle value for node "); n->name.dump(); @@ -1071,7 +1056,7 @@ device_tree::collect_names_recursive(nod } else { - uint32_t phandle = (*i)->begin()->get_as_uint32(); + uint32_t phandle = p->begin()->get_as_uint32(); used_phandles.insert(std::make_pair(phandle, n.get())); } } @@ -1104,12 +1089,33 @@ device_tree::resolve_cross_references() { pv->byte_data.push_back('@'); p->second.push_to_buffer(pv->byte_data); + pv->byte_data.push_back(0); } } } - uint32_t phandle = 1; + std::unordered_set phandle_set; for (auto &i : phandles) { + phandle_set.insert(i); + } + std::vector sorted_phandles; + root->visit([&](node &n) { + for (auto &p : n.properties()) + { + for (auto &v : *p) + { + if (phandle_set.count(&v)) + { + sorted_phandles.push_back(&v); + } + } + } + }); + assert(sorted_phandles.size() == phandles.size()); + + uint32_t phandle = 1; + for (auto &i : sorted_phandles) + { string target_name = i->string_data; node *target = node_names[target_name]; if (target == 0) @@ -1163,94 +1169,111 @@ device_tree::resolve_cross_references() } } -void -device_tree::parse_file(input_buffer &input, +bool +device_tree::parse_include(input_buffer &input, const std::string &dir, std::vector &roots, FILE *depfile, bool &read_header) { - input.next_token(); - // Read the header - if (input.consume("/dts-v1/;")) + if (!input.consume("/include/")) { - read_header = true; + return false; } - input.next_token(); - while(input.consume("/include/")) + bool reallyInclude = true; + if (input.consume("if ")) { - bool reallyInclude = true; - if (input.consume("if ")) - { - input.next_token(); - string name = string::parse_property_name(input); - // XXX: Error handling - if (defines.find(name) == defines.end()) - { - reallyInclude = false; - } - input.consume('/'); - } input.next_token(); - if (!input.consume('"')) + string name = string::parse_property_name(input); + // XXX: Error handling + if (defines.find(name) == defines.end()) { - input.parse_error("Expected quoted filename"); - valid = false; - return; + reallyInclude = false; } - int length = 0; - while (input[length] != '"') length++; + input.consume('/'); + } + input.next_token(); + if (!input.consume('"')) + { + input.parse_error("Expected quoted filename"); + valid = false; + return false; + } + int length = 0; + while (input[length] != '"') length++; - std::string file((const char*)input, length); - std::string include_file = dir + '/' + file; - assert(input.consume(file.c_str())); + std::string file((const char*)input, length); + std::string include_file = dir + '/' + file; + input.consume(file.c_str()); + if (!reallyInclude) + { input.consume('"'); input.next_token(); - if (!reallyInclude) - { - continue; - } + return true; + } - input_buffer *include_buffer = buffer_for_file(include_file.c_str()); + input_buffer *include_buffer = buffer_for_file(include_file.c_str(), false); - if (include_buffer == 0) + if (include_buffer == 0) + { + for (auto i : include_paths) { - for (auto i : include_paths) + include_file = i + '/' + file; + include_buffer = buffer_for_file(include_file.c_str()); + if (include_buffer != 0) { - include_file = i + '/' + file; - include_buffer = buffer_for_file(include_file.c_str()); - if (include_buffer != 0) - { - break; - } + break; } } - if (depfile != 0) - { - putc(' ', depfile); - fputs(include_file.c_str(), depfile); - } - if (include_buffer == 0) - { - valid = false; - return; - } - parse_file(*include_buffer, dir, roots, depfile, read_header); } + if (depfile != 0) + { + putc(' ', depfile); + fputs(include_file.c_str(), depfile); + } + if (include_buffer == 0) + { + input.parse_error("Unable to locate input file"); + input.consume('"'); + input.next_token(); + valid = false; + return true; + } + input.consume('"'); + input.next_token(); + parse_file(*include_buffer, dir, roots, depfile, read_header); + return true; +} + +void +device_tree::parse_file(input_buffer &input, + const std::string &dir, + std::vector &roots, + FILE *depfile, + bool &read_header) +{ + input.next_token(); + // Read the header + if (input.consume("/dts-v1/;")) + { + read_header = true; + } + input.next_token(); input.next_token(); if (!read_header) { input.parse_error("Expected /dts-v1/; version string"); } + while(parse_include(input, dir, roots, depfile, read_header)) {} // Read any memory reservations while(input.consume("/memreserve/")) { unsigned long long start, len; input.next_token(); // Read the start and length. - if (!(input.consume_integer(start) && + if (!(input.consume_integer_expression(start) && (input.next_token(), - input.consume_integer(len)))) + input.consume_integer_expression(len)))) { input.parse_error("Expected size on /memreserve/ node."); } @@ -1259,6 +1282,7 @@ device_tree::parse_file(input_buffer &in reservations.push_back(reservation(start, len)); } input.next_token(); + while(parse_include(input, dir, roots, depfile, read_header)) {} while (valid && !input.finished()) { node_ptr n; @@ -1287,11 +1311,12 @@ device_tree::parse_file(input_buffer &in valid = false; } input.next_token(); + while(parse_include(input, dir, roots, depfile, read_header)) {} } } input_buffer* -device_tree::buffer_for_file(const char *path) +device_tree::buffer_for_file(const char *path, bool warn) { if (string(path) == string("-")) { @@ -1306,7 +1331,10 @@ device_tree::buffer_for_file(const char int source = open(path, O_RDONLY); if (source == -1) { - fprintf(stderr, "Unable to open file '%s'. %s\n", path, strerror(errno)); + if (warn) + { + fprintf(stderr, "Unable to open file '%s'. %s\n", path, strerror(errno)); + } return 0; } struct stat st; @@ -1447,7 +1475,7 @@ device_tree::write_dts(int fd) } void -device_tree::parse_dtb(const char *fn, FILE *depfile) +device_tree::parse_dtb(const char *fn, FILE *) { input_buffer *in = buffer_for_file(fn); if (in == 0) Modified: head/usr.bin/dtc/fdt.hh ============================================================================== --- head/usr.bin/dtc/fdt.hh Tue Dec 29 16:11:43 2015 (r292875) +++ head/usr.bin/dtc/fdt.hh Tue Dec 29 16:29:42 2015 (r292876) @@ -36,6 +36,7 @@ #include #include #include +#include #include "util.hh" #include "string.hh" @@ -402,11 +403,37 @@ class node * The type for the property vector. */ typedef std::vector property_vector; + /** + * Iterator type for child nodes. + */ + typedef std::vector::iterator child_iterator; private: /** + * Adaptor to use children in range-based for loops. + */ + struct child_range + { + child_range(node &nd) : n(nd) {} + child_iterator begin() { return n.child_begin(); } + child_iterator end() { return n.child_end(); } + private: + node &n; + }; + /** + * Adaptor to use properties in range-based for loops. + */ + struct property_range + { + property_range(node &nd) : n(nd) {} + property_vector::iterator begin() { return n.property_begin(); } + property_vector::iterator end() { return n.property_end(); } + private: + node &n; + }; + /** * The properties contained within this node. */ - property_vector properties; + property_vector props; /** * The children of this node. */ @@ -458,10 +485,6 @@ class node */ void sort(); /** - * Iterator type for child nodes. - */ - typedef std::vector::iterator child_iterator; - /** * Returns an iterator for the first child of this node. */ inline child_iterator child_begin() @@ -475,19 +498,27 @@ class node { return children.end(); } + inline child_range child_nodes() + { + return child_range(*this); + } + inline property_range properties() + { + return property_range(*this); + } /** * Returns an iterator after the last property of this node. */ inline property_vector::iterator property_begin() { - return properties.begin(); + return props.begin(); } /** * Returns an iterator for the first property of this node. */ inline property_vector::iterator property_end() { - return properties.end(); + return props.end(); } /** * Factory method for constructing a new node. Attempts to parse a @@ -519,7 +550,7 @@ class node */ inline void add_property(property_ptr &p) { - properties.push_back(p); + props.push_back(p); } /** * Merges a node into this one. Any properties present in both are @@ -539,6 +570,10 @@ class node * with this number of tabs. */ void write_dts(FILE *file, int indent); + /** + * Recursively visit this node and then its children. + */ + void visit(std::function); }; /** @@ -683,6 +718,14 @@ class device_tree */ void resolve_cross_references(); /** + * Parse a top-level include directive. + */ + bool parse_include(input_buffer &input, + const std::string &dir, + std::vector &roots, + FILE *depfile, + bool &read_header); + /** * Parses a dts file in the given buffer and adds the roots to the parsed * set. The `read_header` argument indicates whether the header has * already been read. Some dts files place the header in an include, @@ -698,7 +741,7 @@ class device_tree * object then keeps a reference to it, ensuring that it is not * deallocated until the device tree is destroyed. */ - input_buffer *buffer_for_file(const char *path); + input_buffer *buffer_for_file(const char *path, bool warn=true); /** * Template function that writes a dtb blob using the specified writer. * The writer defines the output format (assembly, blob). Modified: head/usr.bin/dtc/input_buffer.cc ============================================================================== --- head/usr.bin/dtc/input_buffer.cc Tue Dec 29 16:11:43 2015 (r292875) +++ head/usr.bin/dtc/input_buffer.cc Tue Dec 29 16:29:42 2015 (r292876) @@ -37,6 +37,10 @@ #include #include #include +#include +#ifndef NDEBUG +#include +#endif #include @@ -49,7 +53,6 @@ namespace dtc { - void input_buffer::skip_spaces() { @@ -131,6 +134,563 @@ input_buffer::consume_integer(unsigned l return true; } +namespace { + +/** + * Convenience typedef for the type that we use for all values. + */ +typedef unsigned long long valty; + +/** + * Expression tree currently being parsed. + */ +struct expression +{ + /** + * Evaluate this node, taking into account operator precedence. + */ + virtual valty operator()() = 0; + /** + * Returns the precedence of this node. Lower values indicate higher + * precedence. + */ + virtual int precedence() = 0; + virtual ~expression() {} +#ifndef NDEBUG + /** + * Dumps this expression to `std::cerr`, appending a newline if `nl` is + * `true`. + */ + void dump(bool nl=false) + { + if (this == nullptr) + { + std::cerr << "{nullptr}\n"; + return; + } + dump_impl(); + if (nl) + { + std::cerr << '\n'; + } + } + private: + /** + * Method that sublcasses override to implement the behaviour of `dump()`. + */ + virtual void dump_impl() = 0; +#endif +}; + +/** + * Expression wrapping a single integer. Leaf nodes in the expression tree. + */ +class terminal_expr : public expression +{ + /** + * The value that this wraps. + */ + valty val; + /** + * Evaluate. Trivially returns the value that this class wraps. + */ + valty operator()() override + { + return val; + } + int precedence() override + { + return 0; + } + public: + /** + * Constructor. + */ + terminal_expr(valty v) : val(v) {} +#ifndef NDEBUG + void dump_impl() override { std::cerr << val; } +#endif +}; + +/** + * Parenthetical expression. Exists to make the contents opaque. + */ +struct paren_expression : public expression +{ + /** + * The expression within the parentheses. + */ + expression_ptr subexpr; + /** + * Constructor. Takes the child expression as the only argument. + */ + paren_expression(expression_ptr p) : subexpr(std::move(p)) {} + int precedence() override + { + return 0; + } + /** + * Evaluate - just forwards to the underlying expression. + */ + valty operator()() override + { + return (*subexpr)(); + } +#ifndef NDEBUG + void dump_impl() override + { + std::cerr << " ("; + subexpr->dump(); + std::cerr << ") "; + } +#endif +}; + +/** + * Template class for unary operators. The `OpChar` template parameter is + * solely for debugging and makes it easy to print the expression. The `Op` + * template parameter is a function object that implements the operator that + * this class provides. Most of these are provided by the `` + * header. + */ +template +class unary_operator : public expression +{ + /** + * The subexpression for this unary operator. + */ + expression_ptr subexpr; + valty operator()() override + { + Op op; + return op((*subexpr)()); + } + /** + * All unary operators have the same precedence. They are all evaluated + * before binary expressions, but after parentheses. + */ + int precedence() override + { + return 3; + } + public: + unary_operator(expression_ptr p) : subexpr(std::move(p)) {} +#ifndef NDEBUG + void dump_impl() override + { + std::cerr << OpChar; + subexpr->dump(); + } +#endif +}; + +/** + * Abstract base class for binary operators. Allows the tree to be modified + * without knowing what the operations actually are. + */ +struct binary_operator_base : public expression +{ + /** + * The left side of the expression. + */ + expression_ptr lhs; + /** + * The right side of the expression. + */ + expression_ptr rhs; + /** + * Insert a node somewhere down the path of left children, until it would + * be preempting something that should execute first. + */ + void insert_left(binary_operator_base *new_left) + { + if (lhs->precedence() < new_left->precedence()) + { + new_left->rhs = std::move(lhs); + lhs.reset(new_left); + } + else + { + static_cast(lhs.get())->insert_left(new_left); + } + } +}; + +/** + * Template class for binary operators. The precedence and the operation are + * provided as template parameters. + */ +template +struct binary_operator : public binary_operator_base +{ + valty operator()() override + { + Op op; + return op((*lhs)(), (*rhs)()); + } + int precedence() override + { + return Precedence; + } +#ifdef NDEBUG + /** + * Constructor. Takes the name of the operator as an argument, for + * debugging. Only stores it in debug mode. + */ + binary_operator(const char *) {} +#else + const char *opName; + binary_operator(const char *o) : opName(o) {} + void dump_impl() override + { + lhs->dump(); + std::cerr << opName; + rhs->dump(); + } +#endif +}; + +/** + * Ternary conditional operators (`cond ? true : false`) are a special case - + * there are no other ternary operators. + */ +class ternary_conditional_operator : public expression +{ + /** + * The condition for the clause. + */ + expression_ptr cond; + /** + * The expression that this evaluates to if the condition is true. + */ + expression_ptr lhs; + /** + * The expression that this evaluates to if the condition is false. + */ + expression_ptr rhs; + valty operator()() override + { + return (*cond)() ? (*lhs)() : (*rhs)(); + } + int precedence() override + { + // The actual precedence of a ternary conditional operator is 15, but + // its associativity is the opposite way around to the other operators, + // so we fudge it slightly. + return 3; + } +#ifndef NDEBUG + void dump_impl() override + { + cond->dump(); + std::cerr << " ? "; + lhs->dump(); + std::cerr << " : "; + rhs->dump(); + } +#endif + public: + ternary_conditional_operator(expression_ptr c, + expression_ptr l, + expression_ptr r) : + cond(std::move(c)), lhs(std::move(l)), rhs(std::move(r)) {} +}; + +template +struct lshift +{ + constexpr T operator()(const T &lhs, const T &rhs) const + { + return lhs << rhs; + } +}; +template +struct rshift +{ + constexpr T operator()(const T &lhs, const T &rhs) const *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Dec 29 16:31:29 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7021DA552E2; Tue, 29 Dec 2015 16:31:29 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3A663145A; Tue, 29 Dec 2015 16:31:29 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTGVS9C093455; Tue, 29 Dec 2015 16:31:28 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTGVS6F093454; Tue, 29 Dec 2015 16:31:28 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201512291631.tBTGVS6F093454@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Tue, 29 Dec 2015 16:31:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292877 - head/bin/pax X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 16:31:29 -0000 Author: pfg Date: Tue Dec 29 16:31:28 2015 New Revision: 292877 URL: https://svnweb.freebsd.org/changeset/base/292877 Log: pax: prevent possible buffer overflow Or at least quiet down some static analyzers about it. CID: 978835 MFC after: 1 week Obtained from: OpenBSD Modified: head/bin/pax/pat_rep.c Modified: head/bin/pax/pat_rep.c ============================================================================== --- head/bin/pax/pat_rep.c Tue Dec 29 16:29:42 2015 (r292876) +++ head/bin/pax/pat_rep.c Tue Dec 29 16:31:28 2015 (r292877) @@ -878,7 +878,7 @@ rep_name(char *name, int *nlen, int prnt * (the user already saw that substitution go by) */ pt = rephead; - (void)strcpy(buf1, name); + (void)strlcpy(buf1, name, sizeof(buf1)); inpt = buf1; outpt = nname; endpt = outpt + PAXPATHLEN; From owner-svn-src-all@freebsd.org Tue Dec 29 17:07:29 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79BF4A55FFD; Tue, 29 Dec 2015 17:07:29 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3B3D81A15; Tue, 29 Dec 2015 17:07:29 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTH7ShF005434; Tue, 29 Dec 2015 17:07:28 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTH7SvA005433; Tue, 29 Dec 2015 17:07:28 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512291707.tBTH7SvA005433@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Tue, 29 Dec 2015 17:07:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292878 - head/sys/dev/puc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 17:07:29 -0000 Author: marius Date: Tue Dec 29 17:07:28 2015 New Revision: 292878 URL: https://svnweb.freebsd.org/changeset/base/292878 Log: - Add entries for the more prominent members of the Digi International Neo series, which are based on Exar PCI chips. - Mark some unused parameters as such. - Fix style MFC after: 3 days Modified: head/sys/dev/puc/pucdata.c Modified: head/sys/dev/puc/pucdata.c ============================================================================== --- head/sys/dev/puc/pucdata.c Tue Dec 29 16:31:28 2015 (r292877) +++ head/sys/dev/puc/pucdata.c Tue Dec 29 17:07:28 2015 (r292878) @@ -64,7 +64,6 @@ static puc_config_f puc_config_timedia; static puc_config_f puc_config_titan; const struct puc_cfg puc_pci_devices[] = { - { 0x0009, 0x7168, 0xffff, 0, "Sunix SUN1889", DEFAULT_RCLK * 8, @@ -179,6 +178,55 @@ const struct puc_cfg puc_pci_devices[] = .config_function = puc_config_amc }, + /* + * The following members of the Digi International Neo series are + * based on Exar PCI chips, f. e. the 8 port variants on XR17V258IV. + * Accordingly, the PCIe versions of these cards incorporate a PLX + * PCIe-PCI-bridge. + */ + + { 0x114f, 0x00b0, 0xffff, 0, + "Digi Neo PCI 4 Port", + DEFAULT_RCLK * 8, + PUC_PORT_4S, 0x10, 0, -1, + .config_function = puc_config_exar + }, + + { 0x114f, 0x00b1, 0xffff, 0, + "Digi Neo PCI 8 Port", + DEFAULT_RCLK * 8, + PUC_PORT_8S, 0x10, 0, -1, + .config_function = puc_config_exar + }, + + { 0x114f, 0x00f0, 0xffff, 0, + "Digi Neo PCIe 8 Port", + DEFAULT_RCLK * 8, + PUC_PORT_8S, 0x10, 0, -1, + .config_function = puc_config_exar + }, + + { 0x114f, 0x00f1, 0xffff, 0, + "Digi Neo PCIe 4 Port", + DEFAULT_RCLK * 8, + PUC_PORT_4S, 0x10, 0, -1, + .config_function = puc_config_exar + }, + + { 0x114f, 0x00f2, 0xffff, 0, + "Digi Neo PCIe 4 Port RJ45", + DEFAULT_RCLK * 8, + PUC_PORT_4S, 0x10, 0, -1, + .config_function = puc_config_exar + }, + + { 0x114f, 0x00f3, 0xffff, 0, + "Digi Neo PCIe 8 Port RJ45", + DEFAULT_RCLK * 8, + PUC_PORT_8S, 0x10, 0, -1, + .config_function = puc_config_exar + }, + { 0x11fe, 0x8010, 0xffff, 0, "Comtrol RocketPort 550/8 RJ11 part A", DEFAULT_RCLK * 4, @@ -1208,9 +1256,10 @@ const struct puc_cfg puc_pci_devices[] = }; static int -puc_config_amc(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, +puc_config_amc(struct puc_softc *sc __unused, enum puc_cfg_cmd cmd, int port, intptr_t *res) { + switch (cmd) { case PUC_CFG_GET_OFS: *res = 8 * (port & 1); @@ -1242,9 +1291,10 @@ puc_config_diva(struct puc_softc *sc, en } static int -puc_config_exar(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, - intptr_t *res) +puc_config_exar(struct puc_softc *sc __unused, enum puc_cfg_cmd cmd, + int port, intptr_t *res) { + if (cmd == PUC_CFG_GET_OFS) { *res = port * 0x200; return (0); @@ -1253,9 +1303,10 @@ puc_config_exar(struct puc_softc *sc, en } static int -puc_config_exar_pcie(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, - intptr_t *res) +puc_config_exar_pcie(struct puc_softc *sc __unused, enum puc_cfg_cmd cmd, + int port, intptr_t *res) { + if (cmd == PUC_CFG_GET_OFS) { *res = port * 0x400; return (0); @@ -1264,9 +1315,10 @@ puc_config_exar_pcie(struct puc_softc *s } static int -puc_config_icbook(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, - intptr_t *res) +puc_config_icbook(struct puc_softc *sc __unused, enum puc_cfg_cmd cmd, + int port __unused, intptr_t *res) { + if (cmd == PUC_CFG_GET_ILR) { *res = PUC_ILR_DIGI; return (0); @@ -1278,9 +1330,9 @@ static int puc_config_moxa(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, intptr_t *res) { - if (cmd == PUC_CFG_GET_OFS) { - const struct puc_cfg *cfg = sc->sc_cfg; + const struct puc_cfg *cfg = sc->sc_cfg; + if (cmd == PUC_CFG_GET_OFS) { if (port == 3 && (cfg->device == 0x1045 || cfg->device == 0x1144)) port = 7; @@ -1292,8 +1344,8 @@ puc_config_moxa(struct puc_softc *sc, en } static int -puc_config_quatech(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, - intptr_t *res) +puc_config_quatech(struct puc_softc *sc, enum puc_cfg_cmd cmd, + int port __unused, intptr_t *res) { const struct puc_cfg *cfg = sc->sc_cfg; struct puc_bar *bar; @@ -1381,8 +1433,8 @@ puc_config_quatech(struct puc_softc *sc, case PUC_CFG_GET_ILR: v0 = (sc->sc_cfg_data >> 8) & 0xff; v1 = sc->sc_cfg_data & 0xff; - *res = (v0 == 0 && v1 == 0x80 + -cfg->clock) - ? PUC_ILR_NONE : PUC_ILR_QUATECH; + *res = (v0 == 0 && v1 == 0x80 + -cfg->clock) ? + PUC_ILR_NONE : PUC_ILR_QUATECH; return (0); default: break; @@ -1694,9 +1746,10 @@ puc_config_sunix(struct puc_softc *sc, e } static int -puc_config_titan(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, - intptr_t *res) +puc_config_titan(struct puc_softc *sc __unused, enum puc_cfg_cmd cmd, + int port, intptr_t *res) { + switch (cmd) { case PUC_CFG_GET_OFS: *res = (port < 3) ? 0 : (port - 2) << 3; From owner-svn-src-all@freebsd.org Tue Dec 29 18:22:07 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CAEC7A548B6; Tue, 29 Dec 2015 18:22:07 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A255C12B6; Tue, 29 Dec 2015 18:22:07 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTIM6XJ030396; Tue, 29 Dec 2015 18:22:06 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTIM6dx030394; Tue, 29 Dec 2015 18:22:06 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512291822.tBTIM6dx030394@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 29 Dec 2015 18:22:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292879 - stable/10 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 18:22:08 -0000 Author: ngie Date: Tue Dec 29 18:22:06 2015 New Revision: 292879 URL: https://svnweb.freebsd.org/changeset/base/292879 Log: MFC r265842,r266120,r266121,r266959,r267148,r269985,r281789,r282261,r285064: r265842 (by eadler): arcconfig: add one Add a .arcconfig to allow arc to work in its usual way. r266120 (by bapt): Add project name to the arc config it is still required when arcanist is used with SVN r266121 (by bapt): Add the missing coma r266959 (by eadler): arc: add linting for python files r267148 (by bapt): Prevent arc commands from overwriting history r269985 (by gjb): Update the URL to the phabricator instance. Sponsored by: The FreeBSD Foundation r281789 (by eadler): phabricator related changes: - don't lint either contrib or crypto: these are both externally written directories - add additional linters for spelling (check common typos like teh -> the) - chmod linter checks for executible bit on bad files - merge-conflict checks for merge conflict tokens then may have been resolved incorrectly - filename checks for back characters in filenames - json for json syntax correctness - remove history.immutable: it is meaningless on subversion, and causes workflow problems when trying to use git. It it set to 'true' by default with hg r282261 (by eadler): Phabricator: enable "history.immutable": With certain arc workflows leaving history.immutable as false results in using the upstream template instead of our usual commit template. Since the git workflow issues alluded to in my prior commit message can be worked around, set history.immutable once again. r285064 (by mat): Add repository.callsign, to help arcanist figure out what repo it's doing things on when not using Subversion. With hat: phabric-admin@ Sponsored by: Absolight Added: stable/10/.arcconfig - copied, changed from r265842, head/.arcconfig stable/10/.arclint - copied, changed from r266959, head/.arclint Modified: Directory Properties: stable/10/ (props changed) Copied and modified: stable/10/.arcconfig (from r265842, head/.arcconfig) ============================================================================== --- head/.arcconfig Sat May 10 16:59:15 2014 (r265842, copy source) +++ stable/10/.arcconfig Tue Dec 29 18:22:06 2015 (r292879) @@ -1,3 +1,6 @@ { - "phabricator.uri" : "https://phabric.freebsd.org/" + "project.name": "S", + "repository.callsign" : "S", + "phabricator.uri" : "https://reviews.freebsd.org/", + "history.immutable" : true } Copied and modified: stable/10/.arclint (from r266959, head/.arclint) ============================================================================== --- head/.arclint Mon Jun 2 00:21:42 2014 (r266959, copy source) +++ stable/10/.arclint Tue Dec 29 18:22:06 2015 (r292879) @@ -1,9 +1,25 @@ { + "exclude": "(contrib|crypto)", "linters": { "python": { "type": "pep8", - "exclude": "(contrib)", "include": "(\\.py$)" + }, + "spelling": { + "type": "spelling" + }, + "chmod": { + "type": "chmod" + }, + "merge-conflict": { + "type": "merge-conflict" + }, + "filename": { + "type": "filename" + }, + "json": { + "type": "json", + "include": "(\\.arclint|\\.json$)" } } } From owner-svn-src-all@freebsd.org Tue Dec 29 18:33:45 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3BFBDA54ECE; Tue, 29 Dec 2015 18:33:45 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 133EF1A9F; Tue, 29 Dec 2015 18:33:44 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTIXid2033412; Tue, 29 Dec 2015 18:33:44 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTIXiCP033410; Tue, 29 Dec 2015 18:33:44 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512291833.tBTIXiCP033410@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 29 Dec 2015 18:33:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292880 - stable/9 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 18:33:45 -0000 Author: ngie Date: Tue Dec 29 18:33:43 2015 New Revision: 292880 URL: https://svnweb.freebsd.org/changeset/base/292880 Log: MFstable/10 r292879: MFC r265842,r266120,r266121,r266959,r267148,r269985,r281789,r282261,r285064: r265842 (by eadler): arcconfig: add one Add a .arcconfig to allow arc to work in its usual way. r266120 (by bapt): Add project name to the arc config it is still required when arcanist is used with SVN r266121 (by bapt): Add the missing coma r266959 (by eadler): arc: add linting for python files r267148 (by bapt): Prevent arc commands from overwriting history r269985 (by gjb): Update the URL to the phabricator instance. Sponsored by: The FreeBSD Foundation r281789 (by eadler): phabricator related changes: - don't lint either contrib or crypto: these are both externally written directories - add additional linters for spelling (check common typos like teh -> the) - chmod linter checks for executible bit on bad files - merge-conflict checks for merge conflict tokens then may have been resolved incorrectly - filename checks for back characters in filenames - json for json syntax correctness - remove history.immutable: it is meaningless on subversion, and causes workflow problems when trying to use git. It it set to 'true' by default with hg r282261 (by eadler): Phabricator: enable "history.immutable": With certain arc workflows leaving history.immutable as false results in using the upstream template instead of our usual commit template. Since the git workflow issues alluded to in my prior commit message can be worked around, set history.immutable once again. r285064 (by mat): Add repository.callsign, to help arcanist figure out what repo it's doing things on when not using Subversion. With hat: phabric-admin@ Sponsored by: Absolight Added: stable/9/.arcconfig - copied unchanged from r292879, stable/10/.arcconfig stable/9/.arclint - copied unchanged from r292879, stable/10/.arclint Modified: Directory Properties: stable/9/ (props changed) Copied: stable/9/.arcconfig (from r292879, stable/10/.arcconfig) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/9/.arcconfig Tue Dec 29 18:33:43 2015 (r292880, copy of r292879, stable/10/.arcconfig) @@ -0,0 +1,6 @@ +{ + "project.name": "S", + "repository.callsign" : "S", + "phabricator.uri" : "https://reviews.freebsd.org/", + "history.immutable" : true +} Copied: stable/9/.arclint (from r292879, stable/10/.arclint) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/9/.arclint Tue Dec 29 18:33:43 2015 (r292880, copy of r292879, stable/10/.arclint) @@ -0,0 +1,25 @@ +{ + "exclude": "(contrib|crypto)", + "linters": { + "python": { + "type": "pep8", + "include": "(\\.py$)" + }, + "spelling": { + "type": "spelling" + }, + "chmod": { + "type": "chmod" + }, + "merge-conflict": { + "type": "merge-conflict" + }, + "filename": { + "type": "filename" + }, + "json": { + "type": "json", + "include": "(\\.arclint|\\.json$)" + } + } +} From owner-svn-src-all@freebsd.org Tue Dec 29 19:20:40 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 591CBA550EC; Tue, 29 Dec 2015 19:20:40 +0000 (UTC) (envelope-from jtl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2C4B019BE; Tue, 29 Dec 2015 19:20:40 +0000 (UTC) (envelope-from jtl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTJKdfr046069; Tue, 29 Dec 2015 19:20:39 GMT (envelope-from jtl@FreeBSD.org) Received: (from jtl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTJKdSY046068; Tue, 29 Dec 2015 19:20:39 GMT (envelope-from jtl@FreeBSD.org) Message-Id: <201512291920.tBTJKdSY046068@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jtl set sender to jtl@FreeBSD.org using -f From: "Jonathan T. Looney" Date: Tue, 29 Dec 2015 19:20:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292881 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 19:20:40 -0000 Author: jtl Date: Tue Dec 29 19:20:39 2015 New Revision: 292881 URL: https://svnweb.freebsd.org/changeset/base/292881 Log: When checking the inp_ip_minttl restriction for IPv6 packets, don't check the IPv4 header. CID: 1017920 Differential Revision: https://reviews.freebsd.org/D4727 Reviewed by: bz MFC after: 2 weeks Sponsored by: Juniper Networks Modified: head/sys/netinet/tcp_input.c Modified: head/sys/netinet/tcp_input.c ============================================================================== --- head/sys/netinet/tcp_input.c Tue Dec 29 18:33:43 2015 (r292880) +++ head/sys/netinet/tcp_input.c Tue Dec 29 19:20:39 2015 (r292881) @@ -919,9 +919,10 @@ findpcb: */ if (inp->inp_ip_minttl != 0) { #ifdef INET6 - if (isipv6 && inp->inp_ip_minttl > ip6->ip6_hlim) - goto dropunlock; - else + if (isipv6) { + if (inp->inp_ip_minttl > ip6->ip6_hlim) + goto dropunlock; + } else #endif if (inp->inp_ip_minttl > ip->ip_ttl) goto dropunlock; From owner-svn-src-all@freebsd.org Tue Dec 29 20:17:42 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 48A18A5436B; Tue, 29 Dec 2015 20:17:42 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 16FC31870; Tue, 29 Dec 2015 20:17:42 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTKHft8063689; Tue, 29 Dec 2015 20:17:41 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTKHfrG063688; Tue, 29 Dec 2015 20:17:41 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512292017.tBTKHfrG063688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 29 Dec 2015 20:17:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292884 - head/usr.sbin/makefs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 20:17:42 -0000 Author: ngie Date: Tue Dec 29 20:17:40 2015 New Revision: 292884 URL: https://svnweb.freebsd.org/changeset/base/292884 Log: Fix getopt(3) argument after r290180; I forgot to change -r to -R by accident MFC after: 3 days Pointyhat to: ngie Reported by: vangyzen Sponsored by: EMC / Isilon Storage Division Modified: head/usr.sbin/makefs/makefs.c Modified: head/usr.sbin/makefs/makefs.c ============================================================================== --- head/usr.sbin/makefs/makefs.c Tue Dec 29 19:56:26 2015 (r292883) +++ head/usr.sbin/makefs/makefs.c Tue Dec 29 20:17:40 2015 (r292884) @@ -116,7 +116,7 @@ main(int argc, char *argv[]) start_time.tv_sec = start.tv_sec; start_time.tv_nsec = start.tv_usec * 1000; - while ((ch = getopt(argc, argv, "B:b:Dd:f:F:M:m:N:o:pr:s:S:t:xZ")) != -1) { + while ((ch = getopt(argc, argv, "B:b:Dd:f:F:M:m:N:o:pR:s:S:t:xZ")) != -1) { switch (ch) { case 'B': From owner-svn-src-all@freebsd.org Tue Dec 29 20:36:12 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 43A19A54B9D; Tue, 29 Dec 2015 20:36:12 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 152D310D6; Tue, 29 Dec 2015 20:36:12 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTKaBEJ069362; Tue, 29 Dec 2015 20:36:11 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTKaBPp069361; Tue, 29 Dec 2015 20:36:11 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201512292036.tBTKaBPp069361@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 29 Dec 2015 20:36:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292885 - stable/10/usr.sbin/crunch/crunchide X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 20:36:12 -0000 Author: emaste Date: Tue Dec 29 20:36:11 2015 New Revision: 292885 URL: https://svnweb.freebsd.org/changeset/base/292885 Log: crunchide: Restore IA-64 support accidentally lost in r292421 mismerge Reported by: ngie Modified: stable/10/usr.sbin/crunch/crunchide/exec_elf32.c Modified: stable/10/usr.sbin/crunch/crunchide/exec_elf32.c ============================================================================== --- stable/10/usr.sbin/crunch/crunchide/exec_elf32.c Tue Dec 29 20:17:40 2015 (r292884) +++ stable/10/usr.sbin/crunch/crunchide/exec_elf32.c Tue Dec 29 20:36:11 2015 (r292885) @@ -183,6 +183,7 @@ ELFNAMEEND(check)(int fd, const char *fn #endif case EM_AARCH64: break; case EM_ARM: break; + case EM_IA_64: break; case EM_MIPS: break; case /* EM_MIPS_RS3_LE */ EM_MIPS_RS4_BE: break; case EM_PPC: break; From owner-svn-src-all@freebsd.org Tue Dec 29 20:51:30 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BFC22A551E3; Tue, 29 Dec 2015 20:51:30 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 97F951CD5; Tue, 29 Dec 2015 20:51:30 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTKpT4p073761; Tue, 29 Dec 2015 20:51:29 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTKpTF8073760; Tue, 29 Dec 2015 20:51:29 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201512292051.tBTKpTF8073760@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Tue, 29 Dec 2015 20:51:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292887 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 20:51:30 -0000 Author: jilles Date: Tue Dec 29 20:51:29 2015 New Revision: 292887 URL: https://svnweb.freebsd.org/changeset/base/292887 Log: sh: Split subevalvar() in #/##/%/%% and =/? parts. Modified: head/bin/sh/expand.c Modified: head/bin/sh/expand.c ============================================================================== --- head/bin/sh/expand.c Tue Dec 29 20:42:42 2015 (r292886) +++ head/bin/sh/expand.c Tue Dec 29 20:51:29 2015 (r292887) @@ -101,7 +101,8 @@ static char *argstr(char *, int); static char *exptilde(char *, int); static char *expari(char *); static void expbackq(union node *, int, int); -static int subevalvar(char *, char *, int, int, int, int, int); +static int subevalvar_trim(char *, int, int, int, int); +static int subevalvar_misc(char *, const char *, int, int, int); static char *evalvar(char *, int); static int varisset(const char *, int); static void strtodest(const char *, int, int, int); @@ -521,42 +522,23 @@ recordleft(const char *str, const char * } static int -subevalvar(char *p, char *str, int strloc, int subtype, int startloc, - int varflags, int quotes) +subevalvar_trim(char *p, int strloc, int subtype, int startloc, int quotes) { char *startp; char *loc = NULL; char *q; + char *str; int c = 0; struct nodelist *saveargbackq = argbackq; int amount; - argstr(p, (subtype == VSTRIMLEFT || subtype == VSTRIMLEFTMAX || - subtype == VSTRIMRIGHT || subtype == VSTRIMRIGHTMAX ? - EXP_CASE : 0) | EXP_TILDE); + argstr(p, EXP_CASE | EXP_TILDE); STACKSTRNUL(expdest); argbackq = saveargbackq; startp = stackblock() + startloc; - if (str == NULL) - str = stackblock() + strloc; + str = stackblock() + strloc; switch (subtype) { - case VSASSIGN: - setvar(str, startp, 0); - amount = startp - expdest; - STADJUST(amount, expdest); - varflags &= ~VSNUL; - return 1; - - case VSQUESTION: - if (*p != CTLENDVAR) { - outfmt(out2, "%s\n", startp); - error((char *)NULL); - } - error("%.*s: parameter %snot set", (int)(p - str - 1), - str, (varflags & VSNUL) ? "null or " : ""); - return 0; - case VSTRIMLEFT: for (loc = startp; loc < str; loc++) { c = *loc; @@ -630,6 +612,41 @@ subevalvar(char *p, char *str, int strlo } +static int +subevalvar_misc(char *p, const char *var, int subtype, int startloc, + int varflags) +{ + char *startp; + struct nodelist *saveargbackq = argbackq; + int amount; + + argstr(p, EXP_TILDE); + STACKSTRNUL(expdest); + argbackq = saveargbackq; + startp = stackblock() + startloc; + + switch (subtype) { + case VSASSIGN: + setvar(var, startp, 0); + amount = startp - expdest; + STADJUST(amount, expdest); + return 1; + + case VSQUESTION: + if (*p != CTLENDVAR) { + outfmt(out2, "%s\n", startp); + error((char *)NULL); + } + error("%.*s: parameter %snot set", (int)(p - var - 1), + var, (varflags & VSNUL) ? "null or " : ""); + return 0; + + default: + abort(); + } +} + + /* * Expand a variable, and return a pointer to the next character in the * input string. @@ -760,8 +777,8 @@ again: /* jump here after setting a vari */ STPUTC('\0', expdest); patloc = expdest - stackblock(); - if (subevalvar(p, NULL, patloc, subtype, - startloc, varflags, quotes) == 0) { + if (subevalvar_trim(p, patloc, subtype, + startloc, quotes) == 0) { int amount = (expdest - stackblock() - patloc) + 1; STADJUST(-amount, expdest); } @@ -773,8 +790,8 @@ again: /* jump here after setting a vari case VSASSIGN: case VSQUESTION: if (!set) { - if (subevalvar(p, var, 0, subtype, startloc, varflags, - quotes)) { + if (subevalvar_misc(p, var, subtype, startloc, + varflags)) { varflags &= ~VSNUL; /* * Remove any recorded regions beyond From owner-svn-src-all@freebsd.org Tue Dec 29 20:55:31 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4405A553B7; Tue, 29 Dec 2015 20:55:31 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7F8F91F15; Tue, 29 Dec 2015 20:55:31 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 978D4B983; Tue, 29 Dec 2015 15:55:30 -0500 (EST) From: John Baldwin To: Warner Losh Cc: src-committers , svn-src-head@freebsd.org, svn-src-all@freebsd.org, Warner Losh Subject: Re: svn commit: r292809 - head/lib/libc/stdio Date: Tue, 29 Dec 2015 11:37:42 -0800 Message-ID: <2345870.SHMMVrpc1D@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.2-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: References: <201512272304.tBRN4C5D034464@repo.freebsd.org> <41508412.yspAtSoPCD@ralph.baldwin.cx> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Tue, 29 Dec 2015 15:55:30 -0500 (EST) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 20:55:31 -0000 On Monday, December 28, 2015 01:01:26 PM Warner Losh wrote: > I'll look at that, but I don't think posix_memalign is the right way to go. > The alignment of FILE is more strict than posix_memalign will return. Ian's > idea of __alignof__ is the way to go. We allocate them in one block on > purpose for performance, and posix_memalign would be a one at a time affair. posix_memalign gives you whatever alignment you ask for. Using __alignof__ to determine the alignment instead of hardcoding sizeof(int64_t) would certainly be an improvement. If you move the glue after the FILE objects then you can use posix_memalign() directly as so: void *mem; int error; error = posix_memalign(&mem, MAX(ALIGNBYTES, __alignof__(mbstate_t)), n * sizeof(FILE) + sizeof(*g)); if (error) return (NULL); p = (FILE *)mem; g = (struct glue *)(p + n); g->next = NULL; g->niobs = n; g->iobs = p; ... (This presumes that the requested alignment of 'struct glue' is less than the alignment needed by FILE which should be true.) -- John Baldwin From owner-svn-src-all@freebsd.org Tue Dec 29 20:59:57 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9731DA554FF; Tue, 29 Dec 2015 20:59:57 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebius.int.ru", Issuer "cell.glebius.int.ru" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 1F13A1149; Tue, 29 Dec 2015 20:59:56 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.15.2/8.15.2) with ESMTPS id tBTKxrLX046375 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 29 Dec 2015 23:59:53 +0300 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.15.2/8.15.2/Submit) id tBTKxqCM046374; Tue, 29 Dec 2015 23:59:52 +0300 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Tue, 29 Dec 2015 23:59:52 +0300 From: Gleb Smirnoff To: Konstantin Belousov Cc: Shawn Webb , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292772 - head/sys/vm Message-ID: <20151229205952.GV7277@FreeBSD.org> References: <201512271442.tBREgdRr079655@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201512271442.tBREgdRr079655@repo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 20:59:57 -0000 On Sun, Dec 27, 2015 at 02:42:39PM +0000, Konstantin Belousov wrote: K> Author: kib K> Date: Sun Dec 27 14:42:39 2015 K> New Revision: 292772 K> URL: https://svnweb.freebsd.org/changeset/base/292772 K> K> Log: K> Add missed relpbuf() for a smallfs page-in. K> K> Reported by: Shawn Webb K> Tested by: pho K> Sponsored by: The FreeBSD Foundation K> K> Modified: K> head/sys/vm/vnode_pager.c K> K> Modified: head/sys/vm/vnode_pager.c K> ============================================================================== K> --- head/sys/vm/vnode_pager.c Sun Dec 27 14:39:47 2015 (r292771) K> +++ head/sys/vm/vnode_pager.c Sun Dec 27 14:42:39 2015 (r292772) K> @@ -806,6 +806,7 @@ vnode_pager_generic_getpages(struct vnod K> * than a page size, then use special small filesystem code. K> */ K> if (pagesperblock == 0) { K> + relpbuf(bp, freecnt); K> for (i = 0; i < count; i++) { K> PCPU_INC(cnt.v_vnodein); K> PCPU_INC(cnt.v_vnodepgsin); The reason for this bug is that I tried to move the (pagesperblock == 0) block above the call to getpbuf(). We actually know that filesystem is "small" at the very beginning of the function and we can branch into "small filesystem" pager immediately. Later I moved the block back to its place, simply because new place wasn't tested properly. And forgot to restore relpbuf. What filesystem did you use to show up the bug? I'm about to test the variant with immediate branching. Shawn, would you be able to test a patch if I produce one? -- Totus tuus, Glebius. From owner-svn-src-all@freebsd.org Tue Dec 29 21:29:07 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 26E03A55D3F; Tue, 29 Dec 2015 21:29:07 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E82241D3B; Tue, 29 Dec 2015 21:29:06 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTLT5Zr085130; Tue, 29 Dec 2015 21:29:06 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTLT5w7085129; Tue, 29 Dec 2015 21:29:05 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201512292129.tBTLT5w7085129@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Tue, 29 Dec 2015 21:29:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292888 - head/sys/boot/uboot/common X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 21:29:07 -0000 Author: ian Date: Tue Dec 29 21:29:05 2015 New Revision: 292888 URL: https://svnweb.freebsd.org/changeset/base/292888 Log: Fix the error checking for the ubenv command. This moves the check for an empty ldvar (which amounts to the varname string starting with '=') into the if block that manipulates ldvar, which avoids later referencing ldvar when it was never initialized. Submitted by: Thomas Skibo Pointy hat: ian Modified: head/sys/boot/uboot/common/main.c Modified: head/sys/boot/uboot/common/main.c ============================================================================== --- head/sys/boot/uboot/common/main.c Tue Dec 29 20:51:29 2015 (r292887) +++ head/sys/boot/uboot/common/main.c Tue Dec 29 21:29:05 2015 (r292888) @@ -585,6 +585,10 @@ handle_uboot_env_var(enum ubenv_action a */ if (action == UBENV_IMPORT) { len = strcspn(var, "="); + if (len == 0) { + printf("name cannot start with '=': '%s'\n", var); + return; + } if (var[len] == 0) { strcpy(ldvar, "uboot."); strncat(ldvar, var, sizeof(ldvar) - 7); @@ -604,9 +608,11 @@ handle_uboot_env_var(enum ubenv_action a var = &var[6]; } - /* If ldvar is malformed or there's no variable name left, punt. */ - if (ldvar[0] == 0 || var[0] == 0) + /* If there is no variable name left, punt. */ + if (var[0] == 0) { + printf("empty variable name\n"); return; + } val = ub_env_get(var); if (action == UBENV_SHOW) { From owner-svn-src-all@freebsd.org Tue Dec 29 21:35:23 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3910DA55FCF for ; Tue, 29 Dec 2015 21:35:23 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-wm0-x231.google.com (mail-wm0-x231.google.com [IPv6:2a00:1450:400c:c09::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BC79F1242 for ; Tue, 29 Dec 2015 21:35:22 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-wm0-x231.google.com with SMTP id b14so28040168wmb.1 for ; Tue, 29 Dec 2015 13:35:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=poDq6psWOTFHrJVg1s4dP53O1uq1c2aNDgunoX4Y1Ts=; b=KGb3l6nw6EVEgOpqMEE1sifaQ76uFJTEtlZD/EhmE6/3YvYMKmtdO67tuQtghUFz9o CW+a4AmDR/J6GCjZM8YRT3o8y3sy/OKyFd2HCr5U1kKsZqiw4XkfCBtwwuKKMX4UPv45 Lrpqjn5PH3BJLjT48/WmYlLtqqK7O57iRqiRx1ZLuAt1zb25ZJZwsasEJ2lD/8WamA0C SupCtTNkSZO7K5yz3k0M6jN/CU05lUeesTTiLmTeVoG1Z0dcJBfq6fngp2eYQx0CTne3 PZ6DKv9XoQy9lM0ZHvjHXKKhkej9gCrHmhkGZXqurb0MQ5veD57YtnuHesyBwd/kcocJ Wqug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=poDq6psWOTFHrJVg1s4dP53O1uq1c2aNDgunoX4Y1Ts=; b=g+D6fNgXbPqaF1H27CcbA6pOM/5K+3JbPVUv/g5WI/yJfkknId3V9D8gZnTtrc4d3M h9XyoPJnbh2tsdvvI4YcnjpcLQpb2rJzvi7b/5/SCH+V2XsFnvLkmI5jLHX9SE6SCL0A AiDF2xgT0cdh392YYcvMsWaQQpXl/3r4ZV8JAlX/EpsfaA09mOzY0ZI1EjOK4KgTjcj5 yB5zKyg7rS5+7N6yivQXzZwKVl9U0TnbKeRFJCR9IYvWwJRs3OnwNgWOEmUlBp0+98Um sXFjYlbrjPvGcrb8umr2mkU3H3KqUgCJotRzrvm4C9lCcsoRcLauQkvI4vVhtyR32iFA akrA== X-Gm-Message-State: ALoCoQkopxzh1hcXaoXmGI+zjZldd11BSNvugQcV9ZbuEB90M1/EtfPNp1w+T/YnEWIR4pJIHqr5mwV3MU4H2ow5R5tMVLzdOocZ++GZO/RF0BoBjBdQM8g= MIME-Version: 1.0 X-Received: by 10.28.171.134 with SMTP id u128mr70122652wme.22.1451424920582; Tue, 29 Dec 2015 13:35:20 -0800 (PST) Received: by 10.194.85.167 with HTTP; Tue, 29 Dec 2015 13:35:20 -0800 (PST) In-Reply-To: <20151229205952.GV7277@FreeBSD.org> References: <201512271442.tBREgdRr079655@repo.freebsd.org> <20151229205952.GV7277@FreeBSD.org> Date: Tue, 29 Dec 2015 22:35:20 +0100 Message-ID: Subject: Re: svn commit: r292772 - head/sys/vm From: Oliver Pinter To: Gleb Smirnoff Cc: Konstantin Belousov , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Shawn Webb Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 21:35:23 -0000 On Tuesday, December 29, 2015, Gleb Smirnoff wrote: > On Sun, Dec 27, 2015 at 02:42:39PM +0000, Konstantin Belousov wrote: > K> Author: kib > K> Date: Sun Dec 27 14:42:39 2015 > K> New Revision: 292772 > K> URL: https://svnweb.freebsd.org/changeset/base/292772 > K> > K> Log: > K> Add missed relpbuf() for a smallfs page-in. > K> > K> Reported by: Shawn Webb > K> Tested by: pho > K> Sponsored by: The FreeBSD Foundation > K> > K> Modified: > K> head/sys/vm/vnode_pager.c > K> > K> Modified: head/sys/vm/vnode_pager.c > K> > ============================================================================== > K> --- head/sys/vm/vnode_pager.c Sun Dec 27 14:39:47 2015 > (r292771) > K> +++ head/sys/vm/vnode_pager.c Sun Dec 27 14:42:39 2015 > (r292772) > K> @@ -806,6 +806,7 @@ vnode_pager_generic_getpages(struct vnod > K> * than a page size, then use special small filesystem code. > K> */ > K> if (pagesperblock == 0) { > K> + relpbuf(bp, freecnt); > K> for (i = 0; i < count; i++) { > K> PCPU_INC(cnt.v_vnodein); > K> PCPU_INC(cnt.v_vnodepgsin); > > The reason for this bug is that I tried to move the (pagesperblock == 0) > block above the call to getpbuf(). > > We actually know that filesystem is "small" at the very beginning of the > function and we can branch into "small filesystem" pager immediately. > > Later I moved the block back to its place, simply because new place > wasn't tested properly. And forgot to restore relpbuf. > > What filesystem did you use to show up the bug? I'm about to test the > variant with immediate branching. Shawn, would you be able to test > a patch if I produce one? > > Isofs, and just take the snapshot from Dec. 17. > -- > Totus tuus, Glebius. > _______________________________________________ > svn-src-head@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org > " > From owner-svn-src-all@freebsd.org Tue Dec 29 22:14:22 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7CFA4A55C6A; Tue, 29 Dec 2015 22:14:22 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4A9A4174B; Tue, 29 Dec 2015 22:14:22 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTMEL5f001592; Tue, 29 Dec 2015 22:14:21 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTMELG1001590; Tue, 29 Dec 2015 22:14:21 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201512292214.tBTMELG1001590@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 29 Dec 2015 22:14:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292890 - in head/sys/x86: include x86 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 22:14:22 -0000 Author: kib Date: Tue Dec 29 22:14:21 2015 New Revision: 292890 URL: https://svnweb.freebsd.org/changeset/base/292890 Log: Add standard extended feature bit 6 from the Intel SDM rev. 57, which indicates that data-pointer in the saved x87 FPU state is only updated on FPU exceptions. Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/x86/include/specialreg.h head/sys/x86/x86/identcpu.c Modified: head/sys/x86/include/specialreg.h ============================================================================== --- head/sys/x86/include/specialreg.h Tue Dec 29 21:54:43 2015 (r292889) +++ head/sys/x86/include/specialreg.h Tue Dec 29 22:14:21 2015 (r292890) @@ -335,6 +335,7 @@ #define CPUID_STDEXT_BMI1 0x00000008 #define CPUID_STDEXT_HLE 0x00000010 #define CPUID_STDEXT_AVX2 0x00000020 +#define CPUID_STDEXT_FDP_EXC 0x00000040 #define CPUID_STDEXT_SMEP 0x00000080 #define CPUID_STDEXT_BMI2 0x00000100 #define CPUID_STDEXT_ERMS 0x00000200 Modified: head/sys/x86/x86/identcpu.c ============================================================================== --- head/sys/x86/x86/identcpu.c Tue Dec 29 21:54:43 2015 (r292889) +++ head/sys/x86/x86/identcpu.c Tue Dec 29 22:14:21 2015 (r292890) @@ -932,6 +932,8 @@ printcpuinfo(void) "\005HLE" /* Advanced Vector Instructions 2 */ "\006AVX2" + /* FDP_EXCPTN_ONLY */ + "\007FDPEXC" /* Supervisor Mode Execution Prot. */ "\010SMEP" /* Bit Manipulation Instructions */ From owner-svn-src-all@freebsd.org Tue Dec 29 22:18:37 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E7F5BA55DBA; Tue, 29 Dec 2015 22:18:36 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BA6BD1A68; Tue, 29 Dec 2015 22:18:36 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTMIZoD001896; Tue, 29 Dec 2015 22:18:35 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTMIZQj001895; Tue, 29 Dec 2015 22:18:35 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201512292218.tBTMIZQj001895@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Tue, 29 Dec 2015 22:18:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292891 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 22:18:37 -0000 Author: ian Date: Tue Dec 29 22:18:35 2015 New Revision: 292891 URL: https://svnweb.freebsd.org/changeset/base/292891 Log: Bring some of the recent locore-v4.S improvements into locore-V6... - Map all 4GB as VA=PA so that args passed in from a bootloader can be accessed regardless of where they are. - Figure out the kernel load address by directly masking the PC rather then by doing pc-relative math on the _start symbol. - For EARLY_PRINTF support, map device memory as uncacheable (no-op for ARM_NEW_PMAP because all TEX types resolve to uncacheable). Modified: head/sys/arm/arm/locore-v6.S Modified: head/sys/arm/arm/locore-v6.S ============================================================================== --- head/sys/arm/arm/locore-v6.S Tue Dec 29 22:14:21 2015 (r292890) +++ head/sys/arm/arm/locore-v6.S Tue Dec 29 22:18:35 2015 (r292891) @@ -153,46 +153,49 @@ ASENTRY_NP(_start) * Build page table from scratch. */ - /* Calculate the physical address of the startup pagetable. */ + /* + * Figure out the physical address we're loaded at by assuming this + * entry point code is in the first L1 section and so if we clear the + * offset bits of the pc that will give us the section-aligned load + * address, which remains in r5 throughout all the following code. + */ + ldr r2, =(L1_S_OFFSET) + bic r5, pc, r2 + + /* Find the delta between VA and PA, result stays in r0 throughout. */ adr r0, Lpagetable bl translate_va_to_pa - /* Clear boot page table */ - mov r1, r0 - mov r2, L1_TABLE_SIZE - mov r3,#0 -1: str r3, [r1], #4 - subs r2, #4 - bgt 1b - - /* - * Map PA == VA + /* + * First map the entire 4GB address space as VA=PA. It's mapped as + * normal (cached) memory because it's for things like accessing the + * parameters passed in from the bootloader, which might be at any + * physical address, different for every platform. */ - /* Find the start kernels load address */ - adr r5, _start - ldr r2, =(PTE1_OFFSET) - bic r5, r2 - mov r1, r5 - mov r2, r5 - /* Map 64MiB, preserved over calls to build_pagetables */ - mov r3, #64 + mov r1, #0 + mov r2, #0 + mov r3, #4096 bl build_pagetables - /* Create the kernel map to jump to */ + /* + * Next we do 64MiB starting at the physical load address, mapped to + * the VA the kernel is linked for. + */ mov r1, r5 ldr r2, =(KERNVIRTADDR) + mov r3, #64 bl build_pagetables + /* Create a device mapping for early_printf if specified. */ #if defined(SOCDEV_PA) && defined(SOCDEV_VA) - /* Create the custom map (1MB) used for early_printf(). */ ldr r1, =SOCDEV_PA ldr r2, =SOCDEV_VA mov r3, #1 - bl build_pagetables + bl build_device_pagetables #endif bl init_mmu - /* Switch to virtual addresses. */ + /* Transition the PC from physical to virtual addressing. */ ldr pc, =1f 1: @@ -394,6 +397,15 @@ END(reinit_mmu) * * Addresses must be 1MiB aligned */ +build_device_pagetables: +#if defined(ARM_NEW_PMAP) + ldr r4, =PTE1_V|PTE1_A|PTE1_AP_KRW|TEX1_CLASS_0 +#elif defined(SMP) + ldr r4, =(L1_TYPE_S|L1_S_AP(AP_KRW)|L1_SHARED) +#else + ldr r4, =(L1_TYPE_S|L1_S_AP(AP_KRW)) +#endif + b 1f build_pagetables: /* Set the required page attributed */ #if defined(ARM_NEW_PMAP) @@ -403,18 +415,19 @@ build_pagetables: #else ldr r4, =(L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW)) #endif +1: orr r1, r4 /* Move the virtual address to the correct bit location */ lsr r2, #(PTE1_SHIFT - 2) mov r4, r3 -1: +2: str r1, [r0, r2] add r2, r2, #4 add r1, r1, #(PTE1_SIZE) adds r4, r4, #-1 - bhi 1b + bhi 2b mov pc, lr From owner-svn-src-all@freebsd.org Tue Dec 29 22:51:37 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B82B4A539CB for ; Tue, 29 Dec 2015 22:51:37 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from erouter6.ore.mailhop.org (erouter6.ore.mailhop.org [54.187.213.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9773418E6 for ; Tue, 29 Dec 2015 22:51:37 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound3.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Tue, 29 Dec 2015 22:50:48 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id tBTMpTIj017140; Tue, 29 Dec 2015 15:51:29 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1451429489.1369.35.camel@freebsd.org> Subject: Re: svn commit: r292809 - head/lib/libc/stdio From: Ian Lepore To: John Baldwin , Warner Losh Cc: src-committers , svn-src-head@freebsd.org, svn-src-all@freebsd.org, Warner Losh Date: Tue, 29 Dec 2015 15:51:29 -0700 In-Reply-To: <2345870.SHMMVrpc1D@ralph.baldwin.cx> References: <201512272304.tBRN4C5D034464@repo.freebsd.org> <41508412.yspAtSoPCD@ralph.baldwin.cx> <2345870.SHMMVrpc1D@ralph.baldwin.cx> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 22:51:37 -0000 On Tue, 2015-12-29 at 11:37 -0800, John Baldwin wrote: > On Monday, December 28, 2015 01:01:26 PM Warner Losh wrote: > > I'll look at that, but I don't think posix_memalign is the right > > way to go. > > The alignment of FILE is more strict than posix_memalign will > > return. Ian's > > idea of __alignof__ is the way to go. We allocate them in one block > > on > > purpose for performance, and posix_memalign would be a one at a > > time affair. > > posix_memalign gives you whatever alignment you ask for. Using > __alignof__ > to determine the alignment instead of hardcoding sizeof(int64_t) > would > certainly be an improvement. If you move the glue after the FILE > objects > then you can use posix_memalign() directly as so: > > void *mem; > int error; > > error = posix_memalign(&mem, MAX(ALIGNBYTES, > __alignof__(mbstate_t)), > n * sizeof(FILE) + sizeof(*g)); > if (error) > return (NULL); > p = (FILE *)mem; > g = (struct glue *)(p + n); > g->next = NULL; > g->niobs = n; > g->iobs = p; > ... > > (This presumes that the requested alignment of 'struct glue' is less > than > the alignment needed by FILE which should be true.) > If there's going to be an assumption that __alignof__(glue) <= __alignof__(FILE), it might be nice to have a static_assert() of that to prevent a future time bomb similar to the one that exploded on arm when it turned out the opposite assumption was wrong. -- Ian From owner-svn-src-all@freebsd.org Tue Dec 29 23:16:21 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC132A5426C; Tue, 29 Dec 2015 23:16:21 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9A89B1291; Tue, 29 Dec 2015 23:16:21 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTNGKxA019664; Tue, 29 Dec 2015 23:16:20 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTNGKhM019663; Tue, 29 Dec 2015 23:16:20 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201512292316.tBTNGKhM019663@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 29 Dec 2015 23:16:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292892 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 23:16:21 -0000 Author: jhb Date: Tue Dec 29 23:16:20 2015 New Revision: 292892 URL: https://svnweb.freebsd.org/changeset/base/292892 Log: Call kern_thr_exit() instead of duplicating it. This code is missing the racct_subr() call from kern_thr_exit() and would require further code duplication in future changes. Reviewed by: kib MFC after: 1 week Modified: head/sys/kern/kern_thread.c Modified: head/sys/kern/kern_thread.c ============================================================================== --- head/sys/kern/kern_thread.c Tue Dec 29 22:18:35 2015 (r292891) +++ head/sys/kern/kern_thread.c Tue Dec 29 23:16:20 2015 (r292892) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -942,7 +943,6 @@ thread_suspend_check(int return_instead) */ if ((p->p_flag & P_SINGLE_EXIT) && (p->p_singlethread != td)) { PROC_UNLOCK(p); - tidhash_remove(td); /* * Allow Linux emulation layer to do some work @@ -950,13 +950,8 @@ thread_suspend_check(int return_instead) */ if (__predict_false(p->p_sysent->sv_thread_detach != NULL)) (p->p_sysent->sv_thread_detach)(td); - - PROC_LOCK(p); - tdsigcleanup(td); - umtx_thread_exit(td); - PROC_SLOCK(p); - thread_stopped(p); - thread_exit(); + kern_thr_exit(td); + panic("stopped thread did not exit"); } PROC_SLOCK(p); From owner-svn-src-all@freebsd.org Tue Dec 29 23:22:53 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 07978A5461C; Tue, 29 Dec 2015 23:22:53 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DCA6419C2; Tue, 29 Dec 2015 23:22:52 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 0CA95B93E; Tue, 29 Dec 2015 18:22:51 -0500 (EST) From: John Baldwin To: Ian Lepore Cc: Warner Losh , src-committers , svn-src-head@freebsd.org, svn-src-all@freebsd.org, Warner Losh Subject: Re: svn commit: r292809 - head/lib/libc/stdio Date: Tue, 29 Dec 2015 15:22:32 -0800 Message-ID: <4400685.QN9T0cbN9C@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.2-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <1451429489.1369.35.camel@freebsd.org> References: <201512272304.tBRN4C5D034464@repo.freebsd.org> <2345870.SHMMVrpc1D@ralph.baldwin.cx> <1451429489.1369.35.camel@freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Tue, 29 Dec 2015 18:22:51 -0500 (EST) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 23:22:53 -0000 On Tuesday, December 29, 2015 03:51:29 PM Ian Lepore wrote: > On Tue, 2015-12-29 at 11:37 -0800, John Baldwin wrote: > > On Monday, December 28, 2015 01:01:26 PM Warner Losh wrote: > > > I'll look at that, but I don't think posix_memalign is the right > > > way to go. > > > The alignment of FILE is more strict than posix_memalign will > > > return. Ian's > > > idea of __alignof__ is the way to go. We allocate them in one block > > > on > > > purpose for performance, and posix_memalign would be a one at a > > > time affair. > > > > posix_memalign gives you whatever alignment you ask for. Using > > __alignof__ > > to determine the alignment instead of hardcoding sizeof(int64_t) > > would > > certainly be an improvement. If you move the glue after the FILE > > objects > > then you can use posix_memalign() directly as so: > > > > void *mem; > > int error; > > > > error = posix_memalign(&mem, MAX(ALIGNBYTES, > > __alignof__(mbstate_t)), > > n * sizeof(FILE) + sizeof(*g)); > > if (error) > > return (NULL); > > p = (FILE *)mem; > > g = (struct glue *)(p + n); > > g->next = NULL; > > g->niobs = n; > > g->iobs = p; > > ... > > > > (This presumes that the requested alignment of 'struct glue' is less > > than > > the alignment needed by FILE which should be true.) > > > > If there's going to be an assumption that __alignof__(glue) <= > __alignof__(FILE), it might be nice to have a static_assert() of that > to prevent a future time bomb similar to the one that exploded on arm > when it turned out the opposite assumption was wrong. A static assert seems sensible, yes. -- John Baldwin From owner-svn-src-all@freebsd.org Tue Dec 29 23:25:27 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9A92A54749; Tue, 29 Dec 2015 23:25:27 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AD4991C47; Tue, 29 Dec 2015 23:25:27 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBTNPQPi022788; Tue, 29 Dec 2015 23:25:26 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBTNPQd5022781; Tue, 29 Dec 2015 23:25:26 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201512292325.tBTNPQd5022781@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 29 Dec 2015 23:25:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292894 - in head: sys/kern sys/sys tests/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 23:25:27 -0000 Author: jhb Date: Tue Dec 29 23:25:26 2015 New Revision: 292894 URL: https://svnweb.freebsd.org/changeset/base/292894 Log: Add ptrace(2) reporting for LWP events. Add two new LWPINFO flags: PL_FLAG_BORN and PL_FLAG_EXITED for reporting thread creation and destruction. Newly created threads will stop to report PL_FLAG_BORN before returning to userland and exiting threads will stop to report PL_FLAG_EXIT before exiting completely. Both of these events are only enabled and reported if PT_LWP_EVENTS is enabled on a process. Modified: head/sys/kern/kern_fork.c head/sys/kern/kern_sig.c head/sys/kern/kern_thr.c head/sys/kern/sys_process.c head/sys/sys/proc.h head/sys/sys/ptrace.h head/tests/sys/kern/ptrace_test.c Modified: head/sys/kern/kern_fork.c ============================================================================== --- head/sys/kern/kern_fork.c Tue Dec 29 23:24:10 2015 (r292893) +++ head/sys/kern/kern_fork.c Tue Dec 29 23:25:26 2015 (r292894) @@ -1066,7 +1066,7 @@ fork_return(struct thread *td, struct tr cv_broadcast(&p->p_dbgwait); } PROC_UNLOCK(p); - } else if (p->p_flag & P_TRACED) { + } else if (p->p_flag & P_TRACED || td->td_dbgflags & TDB_BORN) { /* * This is the start of a new thread in a traced * process. Report a system call exit event. @@ -1074,9 +1074,10 @@ fork_return(struct thread *td, struct tr PROC_LOCK(p); td->td_dbgflags |= TDB_SCX; _STOPEVENT(p, S_SCX, td->td_dbg_sc_code); - if ((p->p_stops & S_PT_SCX) != 0) + if ((p->p_stops & S_PT_SCX) != 0 || + (td->td_dbgflags & TDB_BORN) != 0) ptracestop(td, SIGTRAP); - td->td_dbgflags &= ~TDB_SCX; + td->td_dbgflags &= ~(TDB_SCX | TDB_BORN); PROC_UNLOCK(p); } Modified: head/sys/kern/kern_sig.c ============================================================================== --- head/sys/kern/kern_sig.c Tue Dec 29 23:24:10 2015 (r292893) +++ head/sys/kern/kern_sig.c Tue Dec 29 23:25:26 2015 (r292894) @@ -2501,7 +2501,12 @@ ptracestop(struct thread *td, int sig) td->td_tid, p->p_pid, td->td_dbgflags, sig); PROC_SLOCK(p); while ((p->p_flag & P_TRACED) && (td->td_dbgflags & TDB_XSIG)) { - if (p->p_flag & P_SINGLE_EXIT) { + if (p->p_flag & P_SINGLE_EXIT && + !(td->td_dbgflags & TDB_EXIT)) { + /* + * Ignore ptrace stops except for thread exit + * events when the process exits. + */ td->td_dbgflags &= ~TDB_XSIG; PROC_SUNLOCK(p); return (sig); Modified: head/sys/kern/kern_thr.c ============================================================================== --- head/sys/kern/kern_thr.c Tue Dec 29 23:24:10 2015 (r292893) +++ head/sys/kern/kern_thr.c Tue Dec 29 23:25:26 2015 (r292894) @@ -253,6 +253,8 @@ thread_create(struct thread *td, struct thread_unlock(td); if (P_SHOULDSTOP(p)) newtd->td_flags |= TDF_ASTPENDING | TDF_NEEDSUSPCHK; + if (p->p_flag2 & P2_LWP_EVENTS) + newtd->td_dbgflags |= TDB_BORN; /* * Copy the existing thread VM policy into the new thread. @@ -322,29 +324,54 @@ kern_thr_exit(struct thread *td) p = td->td_proc; - rw_wlock(&tidhash_lock); + /* + * If all of the threads in a process call this routine to + * exit (e.g. all threads call pthread_exit()), exactly one + * thread should return to the caller to terminate the process + * instead of the thread. + * + * Checking p_numthreads alone is not sufficient since threads + * might be committed to terminating while the PROC_LOCK is + * dropped in either ptracestop() or while removing this thread + * from the tidhash. Instead, the p_pendingexits field holds + * the count of threads in either of those states and a thread + * is considered the "last" thread if all of the other threads + * in a process are already terminating. + */ PROC_LOCK(p); - - if (p->p_numthreads != 1) { - racct_sub(p, RACCT_NTHR, 1); - LIST_REMOVE(td, td_hash); - rw_wunlock(&tidhash_lock); - tdsigcleanup(td); - umtx_thread_exit(td); - PROC_SLOCK(p); - thread_stopped(p); - thread_exit(); - /* NOTREACHED */ + if (p->p_numthreads == p->p_pendingexits + 1) { + /* + * Ignore attempts to shut down last thread in the + * proc. This will actually call _exit(2) in the + * usermode trampoline when it returns. + */ + PROC_UNLOCK(p); + return (0); } + p->p_pendingexits++; + td->td_dbgflags |= TDB_EXIT; + if (p->p_flag & P_TRACED && p->p_flag2 & P2_LWP_EVENTS) + ptracestop(td, SIGTRAP); + PROC_UNLOCK(p); + tidhash_remove(td); + PROC_LOCK(p); + p->p_pendingexits--; + /* - * Ignore attempts to shut down last thread in the proc. This - * will actually call _exit(2) in the usermode trampoline when - * it returns. + * The check above should prevent all other threads from this + * process from exiting while the PROC_LOCK is dropped, so + * there must be at least one other thread other than the + * current thread. */ - PROC_UNLOCK(p); - rw_wunlock(&tidhash_lock); - return (0); + KASSERT(p->p_numthreads > 1, ("too few threads")); + racct_sub(p, RACCT_NTHR, 1); + tdsigcleanup(td); + umtx_thread_exit(td); + PROC_SLOCK(p); + thread_stopped(p); + thread_exit(); + /* NOTREACHED */ } int Modified: head/sys/kern/sys_process.c ============================================================================== --- head/sys/kern/sys_process.c Tue Dec 29 23:24:10 2015 (r292893) +++ head/sys/kern/sys_process.c Tue Dec 29 23:25:26 2015 (r292894) @@ -710,6 +710,7 @@ kern_ptrace(struct thread *td, int req, case PT_TO_SCX: case PT_SYSCALL: case PT_FOLLOW_FORK: + case PT_LWP_EVENTS: case PT_DETACH: sx_xlock(&proctree_lock); proctree_locked = 1; @@ -948,6 +949,16 @@ kern_ptrace(struct thread *td, int req, p->p_flag &= ~P_FOLLOWFORK; break; + case PT_LWP_EVENTS: + CTR3(KTR_PTRACE, "PT_LWP_EVENTS: pid %d %s -> %s", p->p_pid, + p->p_flag2 & P2_LWP_EVENTS ? "enabled" : "disabled", + data ? "enabled" : "disabled"); + if (data) + p->p_flag2 |= P2_LWP_EVENTS; + else + p->p_flag2 &= ~P2_LWP_EVENTS; + break; + case PT_STEP: case PT_CONTINUE: case PT_TO_SCE: @@ -1252,6 +1263,10 @@ kern_ptrace(struct thread *td, int req, } if (td2->td_dbgflags & TDB_CHILD) pl->pl_flags |= PL_FLAG_CHILD; + if (td2->td_dbgflags & TDB_BORN) + pl->pl_flags |= PL_FLAG_BORN; + if (td2->td_dbgflags & TDB_EXIT) + pl->pl_flags |= PL_FLAG_EXITED; pl->pl_sigmask = td2->td_sigmask; pl->pl_siglist = td2->td_siglist; strcpy(pl->pl_tdname, td2->td_name); Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Tue Dec 29 23:24:10 2015 (r292893) +++ head/sys/sys/proc.h Tue Dec 29 23:25:26 2015 (r292894) @@ -412,6 +412,8 @@ do { \ #define TDB_STOPATFORK 0x00000080 /* Stop at the return from fork (child only) */ #define TDB_CHILD 0x00000100 /* New child indicator for ptrace() */ +#define TDB_BORN 0x00000200 /* New LWP indicator for ptrace() */ +#define TDB_EXIT 0x00000400 /* Exiting LWP indicator for ptrace() */ /* * "Private" flags kept in td_pflags: @@ -577,6 +579,7 @@ struct proc { struct itimers *p_itimers; /* (c) POSIX interval timers. */ struct procdesc *p_procdesc; /* (e) Process descriptor, if any. */ u_int p_treeflag; /* (e) P_TREE flags */ + int p_pendingexits; /* (c) Count of pending thread exits. */ /* End area that is zeroed on creation. */ #define p_endzero p_magic @@ -695,6 +698,7 @@ struct proc { #define P2_NOTRACE 0x00000002 /* No ptrace(2) attach or coredumps. */ #define P2_NOTRACE_EXEC 0x00000004 /* Keep P2_NOPTRACE on exec(2). */ #define P2_AST_SU 0x00000008 /* Handles SU ast for kthreads. */ +#define P2_LWP_EVENTS 0x00000010 /* Report LWP events via ptrace(2). */ /* Flags protected by proctree_lock, kept in p_treeflags. */ #define P_TREE_ORPHANED 0x00000001 /* Reparented, on orphan list */ Modified: head/sys/sys/ptrace.h ============================================================================== --- head/sys/sys/ptrace.h Tue Dec 29 23:24:10 2015 (r292893) +++ head/sys/sys/ptrace.h Tue Dec 29 23:25:26 2015 (r292894) @@ -64,6 +64,7 @@ #define PT_SYSCALL 22 #define PT_FOLLOW_FORK 23 +#define PT_LWP_EVENTS 24 /* report LWP birth and exit */ #define PT_GETREGS 33 /* get general-purpose registers */ #define PT_SETREGS 34 /* set general-purpose registers */ @@ -108,6 +109,8 @@ struct ptrace_lwpinfo { #define PL_FLAG_SI 0x20 /* siginfo is valid */ #define PL_FLAG_FORKED 0x40 /* new child */ #define PL_FLAG_CHILD 0x80 /* I am from child */ +#define PL_FLAG_BORN 0x100 /* new LWP */ +#define PL_FLAG_EXITED 0x200 /* exiting LWP */ sigset_t pl_sigmask; /* LWP signal mask */ sigset_t pl_siglist; /* LWP pending signal */ struct __siginfo pl_siginfo; /* siginfo for signal */ Modified: head/tests/sys/kern/ptrace_test.c ============================================================================== --- head/tests/sys/kern/ptrace_test.c Tue Dec 29 23:24:10 2015 (r292893) +++ head/tests/sys/kern/ptrace_test.c Tue Dec 29 23:25:26 2015 (r292894) @@ -1094,6 +1094,16 @@ simple_thread(void *arg __unused) pthread_exit(NULL); } +static __dead2 void +simple_thread_main(void) +{ + pthread_t thread; + + CHILD_REQUIRE(pthread_create(&thread, NULL, simple_thread, NULL) == 0); + CHILD_REQUIRE(pthread_join(thread, NULL) == 0); + exit(1); +} + /* * Verify that pl_syscall_code in struct ptrace_lwpinfo for a new * thread reports the correct value. @@ -1108,14 +1118,8 @@ ATF_TC_BODY(ptrace__new_child_pl_syscall ATF_REQUIRE((fpid = fork()) != -1); if (fpid == 0) { - pthread_t thread; - trace_me(); - - CHILD_REQUIRE(pthread_create(&thread, NULL, simple_thread, - NULL) == 0); - CHILD_REQUIRE(pthread_join(thread, NULL) == 0); - exit(1); + simple_thread_main(); } /* The first wait() should report the stop from SIGSTOP. */ @@ -1178,6 +1182,179 @@ ATF_TC_BODY(ptrace__new_child_pl_syscall ATF_REQUIRE(errno == ECHILD); } +/* + * Verify that the expected LWP events are reported for a child thread. + */ +ATF_TC_WITHOUT_HEAD(ptrace__lwp_events); +ATF_TC_BODY(ptrace__lwp_events, tc) +{ + struct ptrace_lwpinfo pl; + pid_t fpid, wpid; + lwpid_t lwps[2]; + int status; + + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + trace_me(); + simple_thread_main(); + } + + /* The first wait() should report the stop from SIGSTOP. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGSTOP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, + sizeof(pl)) != -1); + lwps[0] = pl.pl_lwpid; + + ATF_REQUIRE(ptrace(PT_LWP_EVENTS, wpid, NULL, 1) == 0); + + /* Continue the child ignoring the SIGSTOP. */ + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* The first event should be for the child thread's birth. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE((pl.pl_flags & (PL_FLAG_BORN | PL_FLAG_SCX)) == + (PL_FLAG_BORN | PL_FLAG_SCX)); + ATF_REQUIRE(pl.pl_lwpid != lwps[0]); + lwps[1] = pl.pl_lwpid; + + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* The next event should be for the child thread's death. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE((pl.pl_flags & (PL_FLAG_EXITED | PL_FLAG_SCE)) == + (PL_FLAG_EXITED | PL_FLAG_SCE)); + ATF_REQUIRE(pl.pl_lwpid == lwps[1]); + + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* The last event should be for the child process's exit. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(WIFEXITED(status)); + ATF_REQUIRE(WEXITSTATUS(status) == 1); + + wpid = wait(&status); + ATF_REQUIRE(wpid == -1); + ATF_REQUIRE(errno == ECHILD); +} + +static void * +exec_thread(void *arg __unused) +{ + + execl("/usr/bin/true", "true", NULL); + exit(127); +} + +static __dead2 void +exec_thread_main(void) +{ + pthread_t thread; + + CHILD_REQUIRE(pthread_create(&thread, NULL, exec_thread, NULL) == 0); + for (;;) + sleep(60); + exit(1); +} + +/* + * Verify that the expected LWP events are reported for a multithreaded + * process that calls execve(2). + */ +ATF_TC_WITHOUT_HEAD(ptrace__lwp_events_exec); +ATF_TC_BODY(ptrace__lwp_events_exec, tc) +{ + struct ptrace_lwpinfo pl; + pid_t fpid, wpid; + lwpid_t lwps[2]; + int status; + + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + trace_me(); + exec_thread_main(); + } + + /* The first wait() should report the stop from SIGSTOP. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGSTOP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, + sizeof(pl)) != -1); + lwps[0] = pl.pl_lwpid; + + ATF_REQUIRE(ptrace(PT_LWP_EVENTS, wpid, NULL, 1) == 0); + + /* Continue the child ignoring the SIGSTOP. */ + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* The first event should be for the child thread's birth. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE((pl.pl_flags & (PL_FLAG_BORN | PL_FLAG_SCX)) == + (PL_FLAG_BORN | PL_FLAG_SCX)); + ATF_REQUIRE(pl.pl_lwpid != lwps[0]); + lwps[1] = pl.pl_lwpid; + + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* + * The next event should be for the main thread's death due to + * single threading from execve(). + */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE((pl.pl_flags & (PL_FLAG_EXITED | PL_FLAG_SCE)) == + (PL_FLAG_EXITED)); + ATF_REQUIRE(pl.pl_lwpid == lwps[0]); + + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* The next event should be for the child process's exec. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE((pl.pl_flags & (PL_FLAG_EXEC | PL_FLAG_SCX)) == + (PL_FLAG_EXEC | PL_FLAG_SCX)); + ATF_REQUIRE(pl.pl_lwpid == lwps[1]); + + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* The last event should be for the child process's exit. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(WIFEXITED(status)); + ATF_REQUIRE(WEXITSTATUS(status) == 0); + + wpid = wait(&status); + ATF_REQUIRE(wpid == -1); + ATF_REQUIRE(errno == ECHILD); +} + ATF_TP_ADD_TCS(tp) { @@ -1197,6 +1374,8 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, ptrace__new_child_pl_syscall_code_fork); ATF_TP_ADD_TC(tp, ptrace__new_child_pl_syscall_code_vfork); ATF_TP_ADD_TC(tp, ptrace__new_child_pl_syscall_code_thread); + ATF_TP_ADD_TC(tp, ptrace__lwp_events); + ATF_TP_ADD_TC(tp, ptrace__lwp_events_exec); return (atf_no_error()); } From owner-svn-src-all@freebsd.org Tue Dec 29 23:28:49 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 00D27A54824; Tue, 29 Dec 2015 23:28:49 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D79761DFF; Tue, 29 Dec 2015 23:28:48 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id E86CEB93E; Tue, 29 Dec 2015 18:28:47 -0500 (EST) From: John Baldwin To: src-committers@freebsd.org Cc: svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292894 - in head: sys/kern sys/sys tests/sys/kern Date: Tue, 29 Dec 2015 15:28:44 -0800 Message-ID: <1596028.4ekdSm0miH@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.2-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <201512292325.tBTNPQd5022781@repo.freebsd.org> References: <201512292325.tBTNPQd5022781@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Tue, 29 Dec 2015 18:28:48 -0500 (EST) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 23:28:49 -0000 On Tuesday, December 29, 2015 11:25:26 PM John Baldwin wrote: > Author: jhb > Date: Tue Dec 29 23:25:26 2015 > New Revision: 292894 > URL: https://svnweb.freebsd.org/changeset/base/292894 > > Log: > Add ptrace(2) reporting for LWP events. > > Add two new LWPINFO flags: PL_FLAG_BORN and PL_FLAG_EXITED for reporting > thread creation and destruction. Newly created threads will stop to report > PL_FLAG_BORN before returning to userland and exiting threads will stop to > report PL_FLAG_EXIT before exiting completely. Both of these events are > only enabled and reported if PT_LWP_EVENTS is enabled on a process. Bah, should have included: Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D4703 I also noticed right after committing that this is missing the manpage updates. Those will come shortly. -- John Baldwin From owner-svn-src-all@freebsd.org Tue Dec 29 23:32:01 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 94796A54A25 for ; Tue, 29 Dec 2015 23:32:01 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: from mail-qg0-x230.google.com (mail-qg0-x230.google.com [IPv6:2607:f8b0:400d:c04::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ED27106F for ; Tue, 29 Dec 2015 23:32:01 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: by mail-qg0-x230.google.com with SMTP id 6so96583875qgy.1 for ; Tue, 29 Dec 2015 15:32:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=+CioRSG98vrrXNB/A4RUnhyspPEIlj6aO9Kr7jVtkfs=; b=0Jpb7hXaZ/oNFk4fynHhJnSp3aGaPF2CPS4WH/Nbt92xzAfqaKQU/7mryeTL7yXQ20 9bFU37XT1loIztADVihzyFlrk16TbLatKaVXJmBm6Bo+EGjRfuXryeA4rCo4bdPLL6Zc 5mn3SGeLSVgJsmKh1huOsAcpGZPBPVcps85WbIsLXJ/sC5MQbj8cGZ/N/LBOSqdMLPOb /v7P18xpI6wqzqiAHGr6Ul+FCNjQvti9oWsgYkZDiLQYoX/2fDAB46rDFIoLmb3Dzkxe cZw+CbZai6jvGXvarF8sf54UyOsC1JdMS1b0gXGfPb+FKEHriJxeWb79F5GynPHuCbeU aUUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-type:content-disposition:in-reply-to :user-agent; bh=+CioRSG98vrrXNB/A4RUnhyspPEIlj6aO9Kr7jVtkfs=; b=lW9CPERWS0pZb3v4lEosJyRphpMwT+T+w8dlYrZH+yNsxrF1H/RSG2FVda/f9Bd5kG EXgKLXJn6qYQNpe8ZsqNMyi9fPO7/g2nsipTg58bOsVOG1RxSp/qyQfSPLQ5v4U52GJf UVcERBlbjH3yDz7GtCErbMGRRK3Cl+2XhEYEXz6Jbw2z6nLbhlCNQ8WAtvk4/SAVdWxn ZdMZeR8oj7yfNOVlasIM8HDigsMD6otiR315k1qKc8/4P8q/tLZNNS8k0XGz4jlb1pwr dHX9yZHI/sFwsVICbFNDXldYQM+Boym+R2JL2LL4DzjzBfAHNlkz+LmbpKZfstJBQWie kbfQ== X-Gm-Message-State: ALoCoQnP9ewEMZnMLu+iEqcGauJ+zSDPiTislY8bUrA5VK99ghuaeZqwxTzrbJIbd6ib0L4NkZUCK7H7ocNDSRFGzdhFVordcg== X-Received: by 10.140.165.16 with SMTP id l16mr86704008qhl.101.1451431920430; Tue, 29 Dec 2015 15:32:00 -0800 (PST) Received: from mutt-hardenedbsd (c-73-135-80-144.hsd1.md.comcast.net. [73.135.80.144]) by smtp.gmail.com with ESMTPSA id f7sm29873746qhf.7.2015.12.29.15.31.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 Dec 2015 15:31:58 -0800 (PST) Date: Tue, 29 Dec 2015 18:31:56 -0500 From: Shawn Webb To: Gleb Smirnoff Cc: Konstantin Belousov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292772 - head/sys/vm Message-ID: <20151229233156.GA4032@mutt-hardenedbsd> References: <201512271442.tBREgdRr079655@repo.freebsd.org> <20151229205952.GV7277@FreeBSD.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="LZvS9be/3tNcYl/X" Content-Disposition: inline In-Reply-To: <20151229205952.GV7277@FreeBSD.org> X-Operating-System: FreeBSD mutt-hardenedbsd 11.0-CURRENT-HBSD FreeBSD 11.0-CURRENT-HBSD X-PGP-Key: http://pgp.mit.edu/pks/lookup?op=vindex&search=0x6A84658F52456EEE User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2015 23:32:01 -0000 --LZvS9be/3tNcYl/X Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Dec 29, 2015 at 11:59:52PM +0300, Gleb Smirnoff wrote: > On Sun, Dec 27, 2015 at 02:42:39PM +0000, Konstantin Belousov wrote: > K> Author: kib > K> Date: Sun Dec 27 14:42:39 2015 > K> New Revision: 292772 > K> URL: https://svnweb.freebsd.org/changeset/base/292772 > K>=20 > K> Log: > K> Add missed relpbuf() for a smallfs page-in. > K> =20 > K> Reported by: Shawn Webb > K> Tested by: pho > K> Sponsored by: The FreeBSD Foundation > K>=20 > K> Modified: > K> head/sys/vm/vnode_pager.c > K>=20 > K> Modified: head/sys/vm/vnode_pager.c > K> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > K> --- head/sys/vm/vnode_pager.c Sun Dec 27 14:39:47 2015 (r292771) > K> +++ head/sys/vm/vnode_pager.c Sun Dec 27 14:42:39 2015 (r292772) > K> @@ -806,6 +806,7 @@ vnode_pager_generic_getpages(struct vnod > K> * than a page size, then use special small filesystem code. > K> */ > K> if (pagesperblock =3D=3D 0) { > K> + relpbuf(bp, freecnt); > K> for (i =3D 0; i < count; i++) { > K> PCPU_INC(cnt.v_vnodein); > K> PCPU_INC(cnt.v_vnodepgsin); >=20 > The reason for this bug is that I tried to move the (pagesperblock =3D=3D= 0) > block above the call to getpbuf(). >=20 > We actually know that filesystem is "small" at the very beginning of the > function and we can branch into "small filesystem" pager immediately. >=20 > Later I moved the block back to its place, simply because new place > wasn't tested properly. And forgot to restore relpbuf. >=20 > What filesystem did you use to show up the bug? I'm about to test the > variant with immediate branching. Shawn, would you be able to test > a patch if I produce one? Definitely. Send me a patch and I can spin up an ISO with it and boot it up in bhyve. Thanks, --=20 Shawn Webb HardenedBSD GPG Key ID: 0x6A84658F52456EEE GPG Key Fingerprint: 2ABA B6BD EF6A F486 BE89 3D9E 6A84 658F 5245 6EEE --LZvS9be/3tNcYl/X Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJWgxfqAAoJEGqEZY9SRW7uutAQAJmqARHqy6hjngzgxktCyGv4 nkZBcGj6UEZKUre3b4jH1Kq7AeD/Ymog+8NUQG5Dusy9JyoEI+ykSLVcZFy5Io6B NflOLVzefbEaJz/dkaWasDgfZHSpFzsAaGgjb1BdRNnD1AVZSQCGHw8uuMPVYhWV /IH/VIxz4eOcrsEDr+rkU5bKkmPmQpPQ9aLPWhxGZ0NNm9pBYhbY6LS/cDrJnP1T fp33rtI1PWB4+ZDuiiiNE44A7mzffUpSm9WH54B2y3BqkfUoD1qducTwMn8lsKbJ NJQWYG/o0DeLVtra/LT/5+OY2mTP+b3vmX1lT/E2wFKHHUjWzMJRHP8E7uQQQ3BB iLJGaO8QGAqjTmHunaGFC9N9qw0/0nXWLhcRq7+4bWkpm9zxQy3YCE8mt2gqFgaW yxqi24658dLejS/WiLhKoPZp9tFwt54EXUxcLZZYge25ckBzAwziJxoKDWKS3PzJ 4ZtzLWlSAT35ff3OmdiTPfoFL7Sxrv9SO6Zgv2MNj1RylwMkvTD/6ewFBQObDGCB q/DIqwmNBB/9lbnTgbO6YusfoZHijhw1qhHijefwSfqeMEZ9BQSh0AIyUHHQ4Mpp MMiFE3uvlZCRjg9u2Er7r8Fw4rTdx31wBS9kBv/CbgCYNqIfpY+WotemlFHEBiEi uEsL8t3BpNU3+fV99aMK =6R4R -----END PGP SIGNATURE----- --LZvS9be/3tNcYl/X-- From owner-svn-src-all@freebsd.org Wed Dec 30 00:04:34 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9373A5572C; Wed, 30 Dec 2015 00:04:34 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9E4D01F25; Wed, 30 Dec 2015 00:04:34 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU04XDX037383; Wed, 30 Dec 2015 00:04:33 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU04X1t037377; Wed, 30 Dec 2015 00:04:33 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <201512300004.tBU04X1t037377@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Wed, 30 Dec 2015 00:04:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292895 - in stable/10/sys: fs/nfs fs/nfsclient kern ufs/ffs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 00:04:35 -0000 Author: mckusick Date: Wed Dec 30 00:04:33 2015 New Revision: 292895 URL: https://svnweb.freebsd.org/changeset/base/292895 Log: MFC of 291244, 291380, 291459, 291460, 291671, and 291743: This MFC includes changes to better manage the vnode freelist and to streamline the allocation and freeing of vnodes. Note that to maintain the KPI the VI_AGE flag is left defined in sys/vnode.h though its use is dropped as described in 291380. To maintain KBI the vfs.vlru_alloc_cache_src sysctl variable remains though it no longer has any effect as described in 291244. MFC of 291244: Move the comment about resident pages preventing vnode from leaving active list, into the header comment for vdrop(), which is the function that decides whether to leave the vnode on the list. Note that dirty page write-out in vinactive() is asynchronous. Discussed with: alc Sponsored by: The FreeBSD Foundation MFC of 291380: Remove VI_AGE vnode iflag, it is unused. Noted by: bde Sponsored by: The FreeBSD Foundation MFC of 291459: For performance reasons, it is useful to have a single string used as the name of a filesystem when setting it as the first parameter to the getnewvnode() function. Most filesystems call getnewvnode from just one place so can use a literal string as the first parameter. However, NFS calls getnewvnode from two places, so we create a global constant string that can be used by the two instances. This change also collapses two instances of getnewvnode() in the UFS filesystem to a single call. Reviewed by: kib Tested by: Peter Holm MFC of 291460: As the kernel allocates and frees vnodes, it fully initializes them on every allocation and fully releases them on every free. These are not trivial costs: it starts by zeroing a large structure then initializes a mutex, a lock manager lock, an rw lock, four lists, and six pointers. And looking at vfs.vnodes_created, these operations are being done millions of times an hour on a busy machine. As a performance optimization, this code update uses the uma_init and uma_fini routines to do these initializations and cleanups only as the vnodes enter and leave the vnode_zone. With this change the initializations are only done kern.maxvnodes times at system startup and then only rarely again. The frees are done only if the vnode_zone shrinks which never happens in practice. For those curious about the avoided work, look at the vnode_init() and vnode_fini() functions in kern/vfs_subr.c to see the code that has been removed from the main vnode allocation/free path. Reviewed by: kib Tested by: Peter Holm MFC of 291671: We need to zero out the union of pointers in a freed vnode structure. Fix from: Mateusz Guzik Tested by: Jason Unovitch MFC of 291743: We need to zero out the clustering variables in a freed vnode structure. For completeness add a VNASSERT that there are no threads waiting on a range lock (this was previously checked on every vnode free). Reported by; Rick Macklem Fix from: Mateusz Guzik Modified: stable/10/sys/fs/nfs/nfsport.h stable/10/sys/fs/nfsclient/nfs_clnode.c stable/10/sys/fs/nfsclient/nfs_clport.c stable/10/sys/kern/vfs_subr.c stable/10/sys/ufs/ffs/ffs_vfsops.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/nfs/nfsport.h ============================================================================== --- stable/10/sys/fs/nfs/nfsport.h Tue Dec 29 23:25:26 2015 (r292894) +++ stable/10/sys/fs/nfs/nfsport.h Wed Dec 30 00:04:33 2015 (r292895) @@ -981,6 +981,13 @@ struct nfsreq { #define NFSVNO_DELEGOK(v) (1) #endif +/* + * Name used by getnewvnode() to describe filesystem, "newnfs". + * For perfomance reasons it is useful to have the same string + * used in both places that call getnewvnode(). + */ +extern const char nfs_vnode_tag[]; + #endif /* _KERNEL */ #endif /* _NFS_NFSPORT_H */ Modified: stable/10/sys/fs/nfsclient/nfs_clnode.c ============================================================================== --- stable/10/sys/fs/nfsclient/nfs_clnode.c Tue Dec 29 23:25:26 2015 (r292894) +++ stable/10/sys/fs/nfsclient/nfs_clnode.c Wed Dec 30 00:04:33 2015 (r292895) @@ -66,6 +66,8 @@ MALLOC_DECLARE(M_NEWNFSREQ); uma_zone_t newnfsnode_zone; +const char nfs_vnode_tag[] = "newnfs"; + static void nfs_freesillyrename(void *arg, __unused int pending); void @@ -124,7 +126,7 @@ ncl_nget(struct mount *mntp, u_int8_t *f } np = uma_zalloc(newnfsnode_zone, M_WAITOK | M_ZERO); - error = getnewvnode("newnfs", mntp, &newnfs_vnodeops, &nvp); + error = getnewvnode(nfs_vnode_tag, mntp, &newnfs_vnodeops, &nvp); if (error) { uma_zfree(newnfsnode_zone, np); return (error); @@ -332,4 +334,3 @@ ncl_invalcaches(struct vnode *vp) KDTRACE_NFS_ATTRCACHE_FLUSH_DONE(vp); mtx_unlock(&np->n_mtx); } - Modified: stable/10/sys/fs/nfsclient/nfs_clport.c ============================================================================== --- stable/10/sys/fs/nfsclient/nfs_clport.c Tue Dec 29 23:25:26 2015 (r292894) +++ stable/10/sys/fs/nfsclient/nfs_clport.c Wed Dec 30 00:04:33 2015 (r292895) @@ -199,7 +199,7 @@ nfscl_nget(struct mount *mntp, struct vn } np = uma_zalloc(newnfsnode_zone, M_WAITOK | M_ZERO); - error = getnewvnode("newnfs", mntp, &newnfs_vnodeops, &nvp); + error = getnewvnode(nfs_vnode_tag, mntp, &newnfs_vnodeops, &nvp); if (error) { uma_zfree(newnfsnode_zone, np); FREE((caddr_t)nfhp, M_NFSFH); Modified: stable/10/sys/kern/vfs_subr.c ============================================================================== --- stable/10/sys/kern/vfs_subr.c Tue Dec 29 23:25:26 2015 (r292894) +++ stable/10/sys/kern/vfs_subr.c Wed Dec 30 00:04:33 2015 (r292895) @@ -145,24 +145,51 @@ int vttoif_tab[10] = { static TAILQ_HEAD(freelst, vnode) vnode_free_list; /* - * Free vnode target. Free vnodes may simply be files which have been stat'd - * but not read. This is somewhat common, and a small cache of such files - * should be kept to avoid recreation costs. + * "Free" vnode target. Free vnodes are rarely completely free, but are + * just ones that are cheap to recycle. Usually they are for files which + * have been stat'd but not read; these usually have inode and namecache + * data attached to them. This target is the preferred minimum size of a + * sub-cache consisting mostly of such files. The system balances the size + * of this sub-cache with its complement to try to prevent either from + * thrashing while the other is relatively inactive. The targets express + * a preference for the best balance. + * + * "Above" this target there are 2 further targets (watermarks) related + * to recyling of free vnodes. In the best-operating case, the cache is + * exactly full, the free list has size between vlowat and vhiwat above the + * free target, and recycling from it and normal use maintains this state. + * Sometimes the free list is below vlowat or even empty, but this state + * is even better for immediate use provided the cache is not full. + * Otherwise, vnlru_proc() runs to reclaim enough vnodes (usually non-free + * ones) to reach one of these states. The watermarks are currently hard- + * coded as 4% and 9% of the available space higher. These and the default + * of 25% for wantfreevnodes are too large if the memory size is large. + * E.g., 9% of 75% of MAXVNODES is more than 566000 vnodes to reclaim + * whenever vnlru_proc() becomes active. */ static u_long wantfreevnodes; -SYSCTL_ULONG(_vfs, OID_AUTO, wantfreevnodes, CTLFLAG_RW, &wantfreevnodes, 0, ""); -/* Number of vnodes in the free list. */ +SYSCTL_ULONG(_vfs, OID_AUTO, wantfreevnodes, CTLFLAG_RW, + &wantfreevnodes, 0, "Target for minimum number of \"free\" vnodes"); static u_long freevnodes; -SYSCTL_ULONG(_vfs, OID_AUTO, freevnodes, CTLFLAG_RD, &freevnodes, 0, - "Number of vnodes in the free list"); +SYSCTL_ULONG(_vfs, OID_AUTO, freevnodes, CTLFLAG_RD, + &freevnodes, 0, "Number of \"free\" vnodes"); +/* + * The vfs.vlru_allow_cache_src sysctl variable is no longer used but + * the sysctl remains to provide ABI compatibility. The new code frees + * namecache sources as the last chance to satisfy the highest watermark, + * instead of selecting the source vnodes randomly. This provides good + * enough behaviour to keep vn_fullpath() working in most situations. + * The filesystem layout with deep trees, where the depricated knob was + * required, is thus handled automatically. + */ static int vlru_allow_cache_src; SYSCTL_INT(_vfs, OID_AUTO, vlru_allow_cache_src, CTLFLAG_RW, - &vlru_allow_cache_src, 0, "Allow vlru to reclaim source vnode"); + &vlru_allow_cache_src, 0, "Placeholder for API compatibility (unused)"); static u_long recycles_count; SYSCTL_ULONG(_vfs, OID_AUTO, recycles, CTLFLAG_RD, &recycles_count, 0, - "Number of vnodes recycled to avoid exceding kern.maxvnodes"); + "Number of vnodes recycled to meet vnode cache targets"); /* * Various variables used for debugging the new implementation of @@ -272,14 +299,13 @@ static int syncer_worklist_len; static enum { SYNCER_RUNNING, SYNCER_SHUTTING_DOWN, SYNCER_FINAL_DELAY } syncer_state; -/* - * Number of vnodes we want to exist at any one time. This is mostly used - * to size hash tables in vnode-related code. It is normally not used in - * getnewvnode(), as wantfreevnodes is normally nonzero.) - * - * XXX desiredvnodes is historical cruft and should not exist. - */ +/* Target for maximum number of vnodes. */ int desiredvnodes; +static int gapvnodes; /* gap between wanted and desired */ +static int vhiwat; /* enough extras after expansion */ +static int vlowat; /* minimal extras before expansion */ +static int vstir; /* nonzero to stir non-free vnodes */ +static volatile int vsmalltrigger = 8; /* pref to keep if > this many pages */ static int sysctl_update_desiredvnodes(SYSCTL_HANDLER_ARGS) @@ -290,6 +316,8 @@ sysctl_update_desiredvnodes(SYSCTL_HANDL if ((error = sysctl_handle_int(oidp, arg1, arg2, req)) != 0) return (error); if (old_desiredvnodes != desiredvnodes) { + wantfreevnodes = desiredvnodes / 4; + /* XXX locking seems to be incomplete. */ vfs_hash_changesize(desiredvnodes); cache_changesize(desiredvnodes); } @@ -298,9 +326,9 @@ sysctl_update_desiredvnodes(SYSCTL_HANDL SYSCTL_PROC(_kern, KERN_MAXVNODES, maxvnodes, CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RW, &desiredvnodes, 0, - sysctl_update_desiredvnodes, "I", "Maximum number of vnodes"); + sysctl_update_desiredvnodes, "I", "Target for maximum number of vnodes"); SYSCTL_ULONG(_kern, OID_AUTO, minvnodes, CTLFLAG_RW, - &wantfreevnodes, 0, "Minimum number of vnodes (legacy)"); + &wantfreevnodes, 0, "Old name for vfs.wantfreevnodes (legacy)"); static int vnlru_nowhere; SYSCTL_INT(_debug, OID_AUTO, vnlru_nowhere, CTLFLAG_RW, &vnlru_nowhere, 0, "Number of times the vnlru process ran without success"); @@ -331,11 +359,71 @@ PCTRIE_DEFINE(BUF, buf, b_lblkno, buf_tr * * Reevaluate the following cap on the number of vnodes after the physical * memory size exceeds 512GB. In the limit, as the physical memory size - * grows, the ratio of physical pages to vnodes approaches sixteen to one. + * grows, the ratio of the memory size in KB to to vnodes approaches 64:1. */ #ifndef MAXVNODES_MAX -#define MAXVNODES_MAX (512 * (1024 * 1024 * 1024 / (int)PAGE_SIZE / 16)) +#define MAXVNODES_MAX (512 * 1024 * 1024 / 64) /* 8M */ #endif + +/* + * Initialize a vnode as it first enters the zone. + */ +static int +vnode_init(void *mem, int size, int flags) +{ + struct vnode *vp; + struct bufobj *bo; + + vp = mem; + bzero(vp, size); + /* + * Setup locks. + */ + vp->v_vnlock = &vp->v_lock; + mtx_init(&vp->v_interlock, "vnode interlock", NULL, MTX_DEF); + /* + * By default, don't allow shared locks unless filesystems opt-in. + */ + lockinit(vp->v_vnlock, PVFS, "vnode", VLKTIMEOUT, + LK_NOSHARE | LK_IS_VNODE); + /* + * Initialize bufobj. + */ + bo = &vp->v_bufobj; + bo->__bo_vnode = vp; + rw_init(BO_LOCKPTR(bo), "bufobj interlock"); + bo->bo_private = vp; + TAILQ_INIT(&bo->bo_clean.bv_hd); + TAILQ_INIT(&bo->bo_dirty.bv_hd); + /* + * Initialize namecache. + */ + LIST_INIT(&vp->v_cache_src); + TAILQ_INIT(&vp->v_cache_dst); + /* + * Initialize rangelocks. + */ + rangelock_init(&vp->v_rl); + return (0); +} + +/* + * Free a vnode when it is cleared from the zone. + */ +static void +vnode_fini(void *mem, int size) +{ + struct vnode *vp; + struct bufobj *bo; + + vp = mem; + rangelock_destroy(&vp->v_rl); + lockdestroy(vp->v_vnlock); + mtx_destroy(&vp->v_interlock); + bo = &vp->v_bufobj; + rw_destroy(BO_LOCKPTR(bo)); +} + static void vntblinit(void *dummy __unused) { @@ -345,15 +433,16 @@ vntblinit(void *dummy __unused) /* * Desiredvnodes is a function of the physical memory size and the * kernel's heap size. Generally speaking, it scales with the - * physical memory size. The ratio of desiredvnodes to physical pages - * is one to four until desiredvnodes exceeds 98,304. Thereafter, the - * marginal ratio of desiredvnodes to physical pages is one to - * sixteen. However, desiredvnodes is limited by the kernel's heap + * physical memory size. The ratio of desiredvnodes to the physical + * memory size is 1:16 until desiredvnodes exceeds 98,304. + * Thereafter, the + * marginal ratio of desiredvnodes to the physical memory size is + * 1:64. However, desiredvnodes is limited by the kernel's heap * size. The memory required by desiredvnodes vnodes and vm objects - * may not exceed one seventh of the kernel's heap size. + * must not exceed 1/7th of the kernel's heap size. */ - physvnodes = maxproc + cnt.v_page_count / 16 + 3 * min(98304 * 4, - cnt.v_page_count) / 16; + physvnodes = maxproc + pgtok(cnt.v_page_count) / 64 + + 3 * min(98304 * 16, pgtok(cnt.v_page_count)) / 64; virtvnodes = vm_kmem_size / (7 * (sizeof(struct vm_object) + sizeof(struct vnode))); desiredvnodes = min(physvnodes, virtvnodes); @@ -368,7 +457,7 @@ vntblinit(void *dummy __unused) TAILQ_INIT(&vnode_free_list); mtx_init(&vnode_free_list_mtx, "vnode_free_list", NULL, MTX_DEF); vnode_zone = uma_zcreate("VNODE", sizeof (struct vnode), NULL, NULL, - NULL, NULL, UMA_ALIGN_PTR, 0); + vnode_init, vnode_fini, UMA_ALIGN_PTR, 0); vnodepoll_zone = uma_zcreate("VNODEPOLL", sizeof (struct vpollinfo), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); /* @@ -742,35 +831,41 @@ vattr_null(struct vattr *vap) * you set kern.maxvnodes to. Do not set kern.maxvnodes too low. */ static int -vlrureclaim(struct mount *mp) +vlrureclaim(struct mount *mp, int reclaim_nc_src, int trigger) { struct vnode *vp; - int done; - int trigger; - int usevnodes; - int count; + int count, done, target; - /* - * Calculate the trigger point, don't allow user - * screwups to blow us up. This prevents us from - * recycling vnodes with lots of resident pages. We - * aren't trying to free memory, we are trying to - * free vnodes. - */ - usevnodes = desiredvnodes; - if (usevnodes <= 0) - usevnodes = 1; - trigger = cnt.v_page_count * 2 / usevnodes; done = 0; vn_start_write(NULL, &mp, V_WAIT); MNT_ILOCK(mp); - count = mp->mnt_nvnodelistsize / 10 + 1; - while (count != 0) { + count = mp->mnt_nvnodelistsize; + target = count * (int64_t)gapvnodes / imax(desiredvnodes, 1); + target = target / 10 + 1; + while (count != 0 && done < target) { vp = TAILQ_FIRST(&mp->mnt_nvnodelist); while (vp != NULL && vp->v_type == VMARKER) vp = TAILQ_NEXT(vp, v_nmntvnodes); if (vp == NULL) break; + /* + * XXX LRU is completely broken for non-free vnodes. First + * by calling here in mountpoint order, then by moving + * unselected vnodes to the end here, and most grossly by + * removing the vlruvp() function that was supposed to + * maintain the order. (This function was born broken + * since syncer problems prevented it doing anything.) The + * order is closer to LRC (C = Created). + * + * LRU reclaiming of vnodes seems to have last worked in + * FreeBSD-3 where LRU wasn't mentioned under any spelling. + * Then there was no hold count, and inactive vnodes were + * simply put on the free list in LRU order. The separate + * lists also break LRU. We prefer to reclaim from the + * free list for technical reasons. This tends to thrash + * the free list to keep very unrecently used held vnodes. + * The problem is mitigated by keeping the free list large. + */ TAILQ_REMOVE(&mp->mnt_nvnodelist, vp, v_nmntvnodes); TAILQ_INSERT_TAIL(&mp->mnt_nvnodelist, vp, v_nmntvnodes); --count; @@ -779,10 +874,12 @@ vlrureclaim(struct mount *mp) /* * If it's been deconstructed already, it's still * referenced, or it exceeds the trigger, skip it. + * Also skip free vnodes. We are trying to make space + * to expand the free list, not reduce it. */ if (vp->v_usecount || - (!vlru_allow_cache_src && - !LIST_EMPTY(&(vp)->v_cache_src)) || + (!reclaim_nc_src && !LIST_EMPTY(&vp->v_cache_src)) || + ((vp->v_iflag & VI_FREE) != 0) || (vp->v_iflag & VI_DOOMED) != 0 || (vp->v_object != NULL && vp->v_object->resident_page_count > trigger)) { VI_UNLOCK(vp); @@ -808,8 +905,8 @@ vlrureclaim(struct mount *mp) * vnode lock before our VOP_LOCK() call fails. */ if (vp->v_usecount || - (!vlru_allow_cache_src && - !LIST_EMPTY(&(vp)->v_cache_src)) || + (!reclaim_nc_src && !LIST_EMPTY(&vp->v_cache_src)) || + (vp->v_iflag & VI_FREE) != 0 || (vp->v_object != NULL && vp->v_object->resident_page_count > trigger)) { VOP_UNLOCK(vp, LK_INTERLOCK); @@ -842,7 +939,7 @@ relock_mnt: } /* - * Attempt to keep the free list at wantfreevnodes length. + * Attempt to reduce the free list by the requested amount. */ static void vnlru_free(int count) @@ -899,6 +996,24 @@ vnlru_free(int count) mtx_lock(&vnode_free_list_mtx); } } + +/* XXX some names and initialization are bad for limits and watermarks. */ +static int +vspace(void) +{ + int space; + + gapvnodes = imax(desiredvnodes - wantfreevnodes, 100); + vhiwat = gapvnodes / 11; /* 9% -- just under the 10% in vlrureclaim() */ + vlowat = vhiwat / 2; + if (numvnodes > desiredvnodes) + return (0); + space = desiredvnodes - numvnodes; + if (freevnodes > wantfreevnodes) + space += freevnodes - wantfreevnodes; + return (space); +} + /* * Attempt to recycle vnodes in a context that is always safe to block. * Calling vlrurecycle() from the bowels of filesystem code has some @@ -911,18 +1026,36 @@ static void vnlru_proc(void) { struct mount *mp, *nmp; - int done; - struct proc *p = vnlruproc; + unsigned long ofreevnodes, onumvnodes; + int done, force, reclaim_nc_src, trigger, usevnodes; - EVENTHANDLER_REGISTER(shutdown_pre_sync, kproc_shutdown, p, + EVENTHANDLER_REGISTER(shutdown_pre_sync, kproc_shutdown, vnlruproc, SHUTDOWN_PRI_FIRST); + force = 0; for (;;) { - kproc_suspend_check(p); + kproc_suspend_check(vnlruproc); mtx_lock(&vnode_free_list_mtx); - if (freevnodes > wantfreevnodes) - vnlru_free(freevnodes - wantfreevnodes); - if (numvnodes <= desiredvnodes * 9 / 10) { + /* + * If numvnodes is too large (due to desiredvnodes being + * adjusted using its sysctl, or emergency growth), first + * try to reduce it by discarding from the free list. + */ + if (numvnodes > desiredvnodes && freevnodes > 0) + vnlru_free(ulmin(numvnodes - desiredvnodes, + freevnodes)); + /* + * Sleep if the vnode cache is in a good state. This is + * when it is not over-full and has space for about a 4% + * or 9% expansion (by growing its size or inexcessively + * reducing its free list). Otherwise, try to reclaim + * space for a 10% expansion. + */ + if (vstir && force == 0) { + force = 1; + vstir = 0; + } + if (vspace() >= vlowat && force == 0) { vnlruproc_sig = 0; wakeup(&vnlruproc_sig); msleep(vnlruproc, &vnode_free_list_mtx, @@ -931,30 +1064,66 @@ vnlru_proc(void) } mtx_unlock(&vnode_free_list_mtx); done = 0; + ofreevnodes = freevnodes; + onumvnodes = numvnodes; + /* + * Calculate parameters for recycling. These are the same + * throughout the loop to give some semblance of fairness. + * The trigger point is to avoid recycling vnodes with lots + * of resident pages. We aren't trying to free memory; we + * are trying to recycle or at least free vnodes. + */ + if (numvnodes <= desiredvnodes) + usevnodes = numvnodes - freevnodes; + else + usevnodes = numvnodes; + if (usevnodes <= 0) + usevnodes = 1; + /* + * The trigger value is is chosen to give a conservatively + * large value to ensure that it alone doesn't prevent + * making progress. The value can easily be so large that + * it is effectively infinite in some congested and + * misconfigured cases, and this is necessary. Normally + * it is about 8 to 100 (pages), which is quite large. + */ + trigger = cnt.v_page_count * 2 / usevnodes; + if (force < 2) + trigger = vsmalltrigger; + reclaim_nc_src = force >= 3; mtx_lock(&mountlist_mtx); for (mp = TAILQ_FIRST(&mountlist); mp != NULL; mp = nmp) { if (vfs_busy(mp, MBF_NOWAIT | MBF_MNTLSTLOCK)) { nmp = TAILQ_NEXT(mp, mnt_list); continue; } - done += vlrureclaim(mp); + done += vlrureclaim(mp, reclaim_nc_src, trigger); mtx_lock(&mountlist_mtx); nmp = TAILQ_NEXT(mp, mnt_list); vfs_unbusy(mp); } mtx_unlock(&mountlist_mtx); + if (onumvnodes > desiredvnodes && numvnodes <= desiredvnodes) + uma_reclaim(); if (done == 0) { -#if 0 - /* These messages are temporary debugging aids */ - if (vnlru_nowhere < 5) - printf("vnlru process getting nowhere..\n"); - else if (vnlru_nowhere == 5) - printf("vnlru process messages stopped.\n"); -#endif + if (force == 0 || force == 1) { + force = 2; + continue; + } + if (force == 2) { + force = 3; + continue; + } + force = 0; vnlru_nowhere++; tsleep(vnlruproc, PPAUSE, "vlrup", hz * 3); } else kern_yield(PRI_USER); + /* + * After becoming active to expand above low water, keep + * active until above high water. + */ + force = vspace() < vhiwat; } } @@ -1028,22 +1197,31 @@ vtryrecycle(struct vnode *vp) return (0); } +static void +vcheckspace(void) +{ + + if (vspace() < vlowat && vnlruproc_sig == 0) { + vnlruproc_sig = 1; + wakeup(vnlruproc); + } +} + /* - * Wait for available vnodes. + * Wait if necessary for space for a new vnode. */ static int getnewvnode_wait(int suspended) { mtx_assert(&vnode_free_list_mtx, MA_OWNED); - if (numvnodes > desiredvnodes) { + if (numvnodes >= desiredvnodes) { if (suspended) { /* - * File system is beeing suspended, we cannot risk a - * deadlock here, so allocate new vnode anyway. + * The file system is being suspended. We cannot + * risk a deadlock here, so allow allocation of + * another vnode even if this would give too many. */ - if (freevnodes > wantfreevnodes) - vnlru_free(freevnodes - wantfreevnodes); return (0); } if (vnlruproc_sig == 0) { @@ -1053,18 +1231,34 @@ getnewvnode_wait(int suspended) msleep(&vnlruproc_sig, &vnode_free_list_mtx, PVFS, "vlruwk", hz); } - return (numvnodes > desiredvnodes ? ENFILE : 0); + /* Post-adjust like the pre-adjust in getnewvnode(). */ + if (numvnodes + 1 > desiredvnodes && freevnodes > 1) + vnlru_free(1); + return (numvnodes >= desiredvnodes ? ENFILE : 0); } +/* + * This hack is fragile, and probably not needed any more now that the + * watermark handling works. + */ void getnewvnode_reserve(u_int count) { struct thread *td; + /* Pre-adjust like the pre-adjust in getnewvnode(), with any count. */ + /* XXX no longer so quick, but this part is not racy. */ + mtx_lock(&vnode_free_list_mtx); + if (numvnodes + count > desiredvnodes && freevnodes > wantfreevnodes) + vnlru_free(ulmin(numvnodes + count - desiredvnodes, + freevnodes - wantfreevnodes)); + mtx_unlock(&vnode_free_list_mtx); + td = curthread; /* First try to be quick and racy. */ if (atomic_fetchadd_long(&numvnodes, count) + count <= desiredvnodes) { td->td_vp_reserv += count; + vcheckspace(); /* XXX no longer so quick, but more racy */ return; } else atomic_subtract_long(&numvnodes, count); @@ -1077,9 +1271,18 @@ getnewvnode_reserve(u_int count) atomic_add_long(&numvnodes, 1); } } + vcheckspace(); mtx_unlock(&vnode_free_list_mtx); } +/* + * This hack is fragile, especially if desiredvnodes or wantvnodes are + * misconfgured or changed significantly. Reducing desiredvnodes below + * the reserved amount should cause bizarre behaviour like reducing it + * below the number of active vnodes -- the system will try to reduce + * numvnodes to match, but should fail, so the subtraction below should + * not overflow. + */ void getnewvnode_drop_reserve(void) { @@ -1098,8 +1301,9 @@ getnewvnode(const char *tag, struct moun struct vnode **vpp) { struct vnode *vp; - struct bufobj *bo; struct thread *td; + struct lock_object *lo; + static int cyclecount; int error; CTR3(KTR_VFS, "%s: mp %p with tag %s", __func__, mp, tag); @@ -1110,57 +1314,77 @@ getnewvnode(const char *tag, struct moun goto alloc; } mtx_lock(&vnode_free_list_mtx); - /* - * Lend our context to reclaim vnodes if they've exceeded the max. - */ - if (freevnodes > wantfreevnodes) + if (numvnodes < desiredvnodes) + cyclecount = 0; + else if (cyclecount++ >= freevnodes) { + cyclecount = 0; + vstir = 1; + } + /* + * Grow the vnode cache if it will not be above its target max + * after growing. Otherwise, if the free list is nonempty, try + * to reclaim 1 item from it before growing the cache (possibly + * above its target max if the reclamation failed or is delayed). + * Otherwise, wait for some space. In all cases, schedule + * vnlru_proc() if we are getting short of space. The watermarks + * should be chosen so that we never wait or even reclaim from + * the free list to below its target minimum. + */ + if (numvnodes + 1 <= desiredvnodes) + ; + else if (freevnodes > 0) vnlru_free(1); - error = getnewvnode_wait(mp != NULL && (mp->mnt_kern_flag & - MNTK_SUSPEND)); + else { + error = getnewvnode_wait(mp != NULL && (mp->mnt_kern_flag & + MNTK_SUSPEND)); #if 0 /* XXX Not all VFS_VGET/ffs_vget callers check returns. */ - if (error != 0) { - mtx_unlock(&vnode_free_list_mtx); - return (error); - } + if (error != 0) { + mtx_unlock(&vnode_free_list_mtx); + return (error); + } #endif + } + vcheckspace(); atomic_add_long(&numvnodes, 1); mtx_unlock(&vnode_free_list_mtx); alloc: atomic_add_long(&vnodes_created, 1); - vp = (struct vnode *) uma_zalloc(vnode_zone, M_WAITOK|M_ZERO); - /* - * Setup locks. - */ - vp->v_vnlock = &vp->v_lock; - mtx_init(&vp->v_interlock, "vnode interlock", NULL, MTX_DEF); - /* - * By default, don't allow shared locks unless filesystems - * opt-in. - */ - lockinit(vp->v_vnlock, PVFS, tag, VLKTIMEOUT, LK_NOSHARE | LK_IS_VNODE); + vp = (struct vnode *) uma_zalloc(vnode_zone, M_WAITOK); /* - * Initialize bufobj. + * Locks are given the generic name "vnode" when created. + * Follow the historic practice of using the filesystem + * name when they allocated, e.g., "zfs", "ufs", "nfs, etc. + * + * Locks live in a witness group keyed on their name. Thus, + * when a lock is renamed, it must also move from the witness + * group of its old name to the witness group of its new name. + * + * The change only needs to be made when the vnode moves + * from one filesystem type to another. We ensure that each + * filesystem use a single static name pointer for its tag so + * that we can compare pointers rather than doing a strcmp(). */ - bo = &vp->v_bufobj; - bo->__bo_vnode = vp; - rw_init(BO_LOCKPTR(bo), "bufobj interlock"); - bo->bo_ops = &buf_ops_bio; - bo->bo_private = vp; - TAILQ_INIT(&bo->bo_clean.bv_hd); - TAILQ_INIT(&bo->bo_dirty.bv_hd); + lo = &vp->v_vnlock->lock_object; + if (lo->lo_name != tag) { + lo->lo_name = tag; + WITNESS_DESTROY(lo); + WITNESS_INIT(lo, tag); + } /* - * Initialize namecache. + * By default, don't allow shared locks unless filesystems opt-in. */ - LIST_INIT(&vp->v_cache_src); - TAILQ_INIT(&vp->v_cache_dst); + vp->v_vnlock->lock_object.lo_flags |= LK_NOSHARE; /* * Finalize various vnode identity bits. */ + KASSERT(vp->v_object == NULL, ("stale v_object %p", vp)); + KASSERT(vp->v_lockf == NULL, ("stale v_lockf %p", vp)); + KASSERT(vp->v_pollinfo == NULL, ("stale v_pollinfo %p", vp)); vp->v_type = VNON; vp->v_tag = tag; vp->v_op = vops; v_incr_usecount(vp); - vp->v_data = NULL; + vp->v_bufobj.bo_ops = &buf_ops_bio; #ifdef MAC mac_vnode_init(vp); if (mp != NULL && (mp->mnt_flag & MNT_MULTILABEL) == 0) @@ -1169,11 +1393,10 @@ alloc: printf("NULL mp in getnewvnode()\n"); #endif if (mp != NULL) { - bo->bo_bsize = mp->mnt_stat.f_iosize; + vp->v_bufobj.bo_bsize = mp->mnt_stat.f_iosize; if ((mp->mnt_kern_flag & MNTK_NOKNOTE) != 0) vp->v_vflag |= VV_NOKNOTE; } - rangelock_init(&vp->v_rl); /* * For the filesystems which do not use vfs_hash_insert(), @@ -2399,7 +2622,7 @@ vholdl(struct vnode *vp) mtx_lock(&vnode_free_list_mtx); TAILQ_REMOVE(&vnode_free_list, vp, v_actfreelist); freevnodes--; - vp->v_iflag &= ~(VI_FREE|VI_AGE); + vp->v_iflag &= ~VI_FREE; KASSERT((vp->v_iflag & VI_ACTIVE) == 0, ("Activating already active vnode")); vp->v_iflag |= VI_ACTIVE; @@ -2467,15 +2690,9 @@ vdropl(struct vnode *vp) v_actfreelist); mp->mnt_activevnodelistsize--; } - if (vp->v_iflag & VI_AGE) { - TAILQ_INSERT_HEAD(&vnode_free_list, vp, - v_actfreelist); - } else { - TAILQ_INSERT_TAIL(&vnode_free_list, vp, - v_actfreelist); - } + TAILQ_INSERT_TAIL(&vnode_free_list, vp, + v_actfreelist); freevnodes++; - vp->v_iflag &= ~VI_AGE; vp->v_iflag |= VI_FREE; mtx_unlock(&vnode_free_list_mtx); } else { @@ -2486,6 +2703,12 @@ vdropl(struct vnode *vp) } /* * The vnode has been marked for destruction, so free it. + * + * The vnode will be returned to the zone where it will + * normally remain until it is needed for another vnode. We + * need to cleanup (or verify that the cleanup has already + * been done) any residual data left from its current use + * so as not to contaminate the freshly allocated vnode. */ CTR2(KTR_VFS, "%s: destroying the vnode %p", __func__, vp); atomic_subtract_long(&numvnodes, 1); @@ -2506,20 +2729,25 @@ vdropl(struct vnode *vp) VNASSERT(TAILQ_EMPTY(&vp->v_cache_dst), vp, ("vp has namecache dst")); VNASSERT(LIST_EMPTY(&vp->v_cache_src), vp, ("vp has namecache src")); VNASSERT(vp->v_cache_dd == NULL, vp, ("vp has namecache for ..")); + VNASSERT(TAILQ_EMPTY(&vp->v_rl.rl_waiters), vp, + ("Dangling rangelock waiters")); VI_UNLOCK(vp); #ifdef MAC mac_vnode_destroy(vp); #endif - if (vp->v_pollinfo != NULL) + if (vp->v_pollinfo != NULL) { destroy_vpollinfo(vp->v_pollinfo); + vp->v_pollinfo = NULL; + } #ifdef INVARIANTS /* XXX Elsewhere we detect an already freed vnode via NULL v_op. */ vp->v_op = NULL; #endif - rangelock_destroy(&vp->v_rl); - lockdestroy(vp->v_vnlock); - mtx_destroy(&vp->v_interlock); - rw_destroy(BO_LOCKPTR(bo)); + bzero(&vp->v_un, sizeof(vp->v_un)); + vp->v_lasta = vp->v_clen = vp->v_cstart = vp->v_lastw = 0; + vp->v_iflag = 0; + vp->v_vflag = 0; + bo->bo_flag = 0; uma_zfree(vnode_zone, vp); } @@ -2884,6 +3112,7 @@ vgonel(struct vnode *vp) * Clear the advisory locks and wake up waiting threads. */ (void)VOP_ADVLOCKPURGE(vp); + vp->v_lockf = NULL; /* * Delete from old mount point vnode list. */ @@ -2986,8 +3215,6 @@ vn_printf(struct vnode *vp, const char * } if (vp->v_iflag & VI_MOUNT) strlcat(buf, "|VI_MOUNT", sizeof(buf)); - if (vp->v_iflag & VI_AGE) - strlcat(buf, "|VI_AGE", sizeof(buf)); if (vp->v_iflag & VI_DOOMED) strlcat(buf, "|VI_DOOMED", sizeof(buf)); if (vp->v_iflag & VI_FREE) @@ -2998,7 +3225,7 @@ vn_printf(struct vnode *vp, const char * strlcat(buf, "|VI_DOINGINACT", sizeof(buf)); if (vp->v_iflag & VI_OWEINACT) strlcat(buf, "|VI_OWEINACT", sizeof(buf)); - flags = vp->v_iflag & ~(VI_MOUNT | VI_AGE | VI_DOOMED | VI_FREE | + flags = vp->v_iflag & ~(VI_MOUNT | VI_DOOMED | VI_FREE | VI_ACTIVE | VI_DOINGINACT | VI_OWEINACT); if (flags != 0) { snprintf(buf2, sizeof(buf2), "|VI(0x%lx)", flags); Modified: stable/10/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- stable/10/sys/ufs/ffs/ffs_vfsops.c Tue Dec 29 23:25:26 2015 (r292894) +++ stable/10/sys/ufs/ffs/ffs_vfsops.c Wed Dec 30 00:04:33 2015 (r292895) @@ -1670,10 +1670,8 @@ ffs_vgetf(mp, ino, flags, vpp, ffs_flags ip = uma_zalloc(uma_inode, M_WAITOK | M_ZERO); /* Allocate a new vnode/inode. */ - if (fs->fs_magic == FS_UFS1_MAGIC) - error = getnewvnode("ufs", mp, &ffs_vnodeops1, &vp); - else - error = getnewvnode("ufs", mp, &ffs_vnodeops2, &vp); + error = getnewvnode("ufs", mp, fs->fs_magic == FS_UFS1_MAGIC ? + &ffs_vnodeops1 : &ffs_vnodeops2, &vp); if (error) { *vpp = NULL; uma_zfree(uma_inode, ip); From owner-svn-src-all@freebsd.org Wed Dec 30 00:04:59 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4FD47A5578A; Wed, 30 Dec 2015 00:04:59 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 092CC10A4; Wed, 30 Dec 2015 00:04:58 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU04woG037479; Wed, 30 Dec 2015 00:04:58 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU04wb8037478; Wed, 30 Dec 2015 00:04:58 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201512300004.tBU04wb8037478@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 30 Dec 2015 00:04:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292896 - head/lib/libc/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 00:04:59 -0000 Author: jhb Date: Wed Dec 30 00:04:57 2015 New Revision: 292896 URL: https://svnweb.freebsd.org/changeset/base/292896 Log: Document the recently added support for ptrace(2) LWP events. Modified: head/lib/libc/sys/ptrace.2 Modified: head/lib/libc/sys/ptrace.2 ============================================================================== --- head/lib/libc/sys/ptrace.2 Wed Dec 30 00:04:33 2015 (r292895) +++ head/lib/libc/sys/ptrace.2 Wed Dec 30 00:04:57 2015 (r292896) @@ -2,7 +2,7 @@ .\" $NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $ .\" .\" This file is in the public domain. -.Dd October 20, 2015 +.Dd December 29, 2015 .Dt PTRACE 2 .Os .Sh NAME @@ -372,6 +372,20 @@ The flag is set for first event reported automatically attached due to .Dv PT_FOLLOW_FORK enabled. +.It PL_FLAG_BORN +This flag is set for the first event reported from a new LWP when LWP +events are enabled via +.Dv PT_LWP_EVENTS . +It is reported along with +.Dv PL_FLAG_SCX +and is always reported if LWP events are enabled. +.It PL_FLAG_EXITED +This flag is set for the last event reported by an exiting LWP when +LWP events are enabled via +.Dv PT_LWP_EVENTS . +Note that this event is not reported when the last LWP in a process exits. +The termination of the last thread is reported via a normal process exit +event. .El .It pl_sigmask The current signal mask of the LWP @@ -463,6 +477,29 @@ Child processes do not inherit this prop The traced process will set the .Dv PL_FLAG_FORKED flag upon exit from a system call that creates a new process. +.It PT_LWP_EVENTS +This request controls tracing of LWP creation and destruction. +If +.Fa data +is non-zero, +then LWPs will stop to report creation and destruction events. +If +.Fa data +is zero, +then LWP creation and destruction events will not be reported. +By default, tracing is not enabled for LWP events. +Child processes do not inherit this property. +New LWPs will stop to report an event with +.Dv PL_FLAG_BORN +set before executing their first instruction. +Exiting LWPs will stop to report an event with +.Dv PL_FLAG_EXITED +set before completing their termination. +.Pp +Note that new processes do not report an event for the creation of their +initial thread, +and exiting processes do not report an event for the termination of the +last thread. .It PT_VM_TIMESTAMP This request returns the generation number or timestamp of the memory map of the traced process as the return value from From owner-svn-src-all@freebsd.org Wed Dec 30 00:08:27 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B3978A55851; Wed, 30 Dec 2015 00:08:27 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail106.syd.optusnet.com.au (mail106.syd.optusnet.com.au [211.29.132.42]) by mx1.freebsd.org (Postfix) with ESMTP id 7B04912AA; Wed, 30 Dec 2015 00:08:26 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail106.syd.optusnet.com.au (Postfix) with ESMTPS id 159E73C7721; Wed, 30 Dec 2015 10:48:16 +1100 (AEDT) Date: Wed, 30 Dec 2015 10:48:15 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: John Baldwin cc: Warner Losh , src-committers , svn-src-head@freebsd.org, svn-src-all@freebsd.org, Warner Losh Subject: Re: svn commit: r292809 - head/lib/libc/stdio In-Reply-To: <2345870.SHMMVrpc1D@ralph.baldwin.cx> Message-ID: <20151230102454.P1079@besplex.bde.org> References: <201512272304.tBRN4C5D034464@repo.freebsd.org> <41508412.yspAtSoPCD@ralph.baldwin.cx> <2345870.SHMMVrpc1D@ralph.baldwin.cx> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=PfoC/XVd c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=QuU-y7UVB-eSIWs7EHUA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 00:08:27 -0000 On Tue, 29 Dec 2015, John Baldwin wrote: > On Monday, December 28, 2015 01:01:26 PM Warner Losh wrote: >> I'll look at that, but I don't think posix_memalign is the right way to go. >> The alignment of FILE is more strict than posix_memalign will return. Ian's >> idea of __alignof__ is the way to go. We allocate them in one block on >> purpose for performance, and posix_memalign would be a one at a time affair. > > posix_memalign gives you whatever alignment you ask for. Using __alignof__ > to determine the alignment instead of hardcoding sizeof(int64_t) would > certainly be an improvement. If you move the glue after the FILE objects > then you can use posix_memalign() directly as so: > > void *mem; > int error; > > error = posix_memalign(&mem, MAX(ALIGNBYTES, __alignof__(mbstate_t)), > n * sizeof(FILE) + sizeof(*g)); Using __alignof__() involves 2 or 3 layers of style bugs: - it is a gnu-ish spelling (full gnu would also have a space before the left parentheses). The FreeBSD spelling is __alignof(). FreeBSD defines a macro for this, but only for compatiblity with gcc < 2.95. Later versions apparently support both __alignof and __alignof__() - C++ apparently spells this as both _Alignof() and alignof() after 2011/03 - FreeBSD defines _Alignof() unconditionally. The only difference for C++ after 2011/03 is it is less careful about namespaces and depends on alignof() existing and being part of the language. The general definition using __alignof() should work in this case too. So it seems that the correct spelling is _Alignof(). _Alignof(), __alignof() and __alignof__() are all in the implementation namespace except possibly _Alignof() for C++ after 2011/03, so any use of them gives undefined behaviour which might be to do the right thing. But no one knows what that is or when it is done since none of this is documented in a man page. sys/cdefs.h is now about 8.5 times as large and more than that many times as complicated and ugly as an FreeBSD-1 where it only had __P(()) and a few other portability macros to hide the differences between K&R and C90. It should be 8.5 times smaller (11 lines). It contains a mixture of old and new portability macros and perhaps some standard macros for newer C++ and C. I checked that it doesn't define anything without at least 1 leading underscore except for const, inline, signed and volatile in old compatibility modes. Bruce From owner-svn-src-all@freebsd.org Wed Dec 30 00:17:38 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5291FA55BFA; Wed, 30 Dec 2015 00:17:38 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 22C4F184A; Wed, 30 Dec 2015 00:17:38 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU0HbnQ041601; Wed, 30 Dec 2015 00:17:37 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU0Hb6T041600; Wed, 30 Dec 2015 00:17:37 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512300017.tBU0Hb6T041600@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Wed, 30 Dec 2015 00:17:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292897 - head/sys/sparc64/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 00:17:38 -0000 Author: marius Date: Wed Dec 30 00:17:37 2015 New Revision: 292897 URL: https://svnweb.freebsd.org/changeset/base/292897 Log: Adapt CATR() to r283283. Modified: head/sys/sparc64/include/ktr.h Modified: head/sys/sparc64/include/ktr.h ============================================================================== --- head/sys/sparc64/include/ktr.h Wed Dec 30 00:04:57 2015 (r292896) +++ head/sys/sparc64/include/ktr.h Wed Dec 30 00:17:37 2015 (r292897) @@ -74,9 +74,9 @@ l2: add r2, 1, r3 ; \ * NB: this clobbers %y. */ #define CATR(mask, desc, r1, r2, r3, l1, l2, l3) \ - set mask, r1 ; \ - SET(ktr_mask, r3, r2) ; \ - lduw [r2], r2 ; \ + setx mask, r3, r1 ; \ + setx ktr_mask, r3, r2 ; \ + ldx [r2], r2 ; \ and r2, r1, r1 ; \ brz r1, l3 ## f ; \ nop ; \ From owner-svn-src-all@freebsd.org Wed Dec 30 01:02:23 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C60BEA55C80; Wed, 30 Dec 2015 01:02:23 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8E62D1F07; Wed, 30 Dec 2015 01:02:23 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU12Mj3055787; Wed, 30 Dec 2015 01:02:22 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU12M1f055786; Wed, 30 Dec 2015 01:02:22 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201512300102.tBU12M1f055786@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 30 Dec 2015 01:02:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292898 - stable/10/gnu/usr.bin/binutils/ld X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 01:02:23 -0000 Author: emaste Date: Wed Dec 30 01:02:22 2015 New Revision: 292898 URL: https://svnweb.freebsd.org/changeset/base/292898 Log: MFC r292658: Install ld also as ld.bfd, for use with cc -fuse-ld=bfd Modified: stable/10/gnu/usr.bin/binutils/ld/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/gnu/usr.bin/binutils/ld/Makefile ============================================================================== --- stable/10/gnu/usr.bin/binutils/ld/Makefile Wed Dec 30 00:17:37 2015 (r292897) +++ stable/10/gnu/usr.bin/binutils/ld/Makefile Wed Dec 30 01:02:22 2015 (r292898) @@ -52,6 +52,7 @@ CLEANFILES+= ldemul-list.h stringify.sed FILES= ${LDSCRIPTS:S|^|ldscripts/|} FILESDIR= ${SCRIPTDIR} +LINKS= ${BINDIR}/ld ${BINDIR}/ld.bfd HOST= ${TARGET_TUPLE} LIBSEARCHPATH= \"=/lib\":\"=/usr/lib\" From owner-svn-src-all@freebsd.org Wed Dec 30 02:15:13 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2FC2A54379; Wed, 30 Dec 2015 02:15:13 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9E9F51624; Wed, 30 Dec 2015 02:15:13 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU2FCSt076921; Wed, 30 Dec 2015 02:15:12 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU2FCAB076920; Wed, 30 Dec 2015 02:15:12 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201512300215.tBU2FCAB076920@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Wed, 30 Dec 2015 02:15:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292899 - head/sys/boot/forth X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 02:15:14 -0000 Author: dteske Date: Wed Dec 30 02:15:12 2015 New Revision: 292899 URL: https://svnweb.freebsd.org/changeset/base/292899 Log: Fix stack leak introduced by SVN r97201 (nextboot_conf support). Fix erroneous error path in error messages when processing boot_conf. Fixup stack comments for functions introduced by SVN r97201. Remove a questioning stack comment introduced by SVN r186789. NB: Comment removed because strdup usage here is correct/not a leak. MFC after: 1 week Modified: head/sys/boot/forth/support.4th Modified: head/sys/boot/forth/support.4th ============================================================================== --- head/sys/boot/forth/support.4th Wed Dec 30 01:02:22 2015 (r292898) +++ head/sys/boot/forth/support.4th Wed Dec 30 02:15:12 2015 (r292899) @@ -833,7 +833,7 @@ get-current ( -- wid ) previous definiti repeat ; -: peek_file +: peek_file ( addr len -- ) 0 to end_of_file? reset_line_reading O_RDONLY fopen fd ! @@ -844,6 +844,7 @@ get-current ( -- wid ) previous definiti ['] process_assignment catch ['] free_buffers catch fd @ fclose + swap throw throw ; only forth also support-functions definitions @@ -1021,25 +1022,26 @@ string current_file_name_ref \ used to p ; : get_nextboot_conf_file ( -- addr len ) - nextboot_conf_file strget strdup \ XXX is the strdup a leak ? + nextboot_conf_file strget strdup ; : rewrite_nextboot_file ( -- ) get_nextboot_conf_file O_WRONLY fopen fd ! fd @ -1 = if EOPEN throw then - fd @ s' nextboot_enable="NO" ' fwrite + fd @ s' nextboot_enable="NO" ' fwrite ( fd buf len -- nwritten ) drop fd @ fclose ; -: include_nextboot_file +: include_nextboot_file ( -- ) get_nextboot_conf_file - ['] peek_file catch + ['] peek_file catch if 2drop then nextboot? if get_nextboot_conf_file + current_file_name_ref strref ['] load_conf catch process_conf_errors - ['] rewrite_nextboot_file catch + ['] rewrite_nextboot_file catch if 2drop then then ; From owner-svn-src-all@freebsd.org Wed Dec 30 02:23:15 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7C5E5A5468D; Wed, 30 Dec 2015 02:23:15 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3FE811B05; Wed, 30 Dec 2015 02:23:15 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU2NE1P079676; Wed, 30 Dec 2015 02:23:14 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU2NEGk079674; Wed, 30 Dec 2015 02:23:14 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201512300223.tBU2NEGk079674@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Wed, 30 Dec 2015 02:23:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292900 - head/sys/powerpc/booke X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 02:23:15 -0000 Author: jhibbits Date: Wed Dec 30 02:23:14 2015 New Revision: 292900 URL: https://svnweb.freebsd.org/changeset/base/292900 Log: Rewrite tid_flush() in C. There's no need for it to be in asm. Also, by writing in C, and marking it static in pmap.c, it saves a branch to the function itself, as it's only used in one location. The generated asm is virtually identical to the handwritten code. Modified: head/sys/powerpc/booke/locore.S head/sys/powerpc/booke/pmap.c Modified: head/sys/powerpc/booke/locore.S ============================================================================== --- head/sys/powerpc/booke/locore.S Wed Dec 30 02:15:12 2015 (r292899) +++ head/sys/powerpc/booke/locore.S Wed Dec 30 02:23:14 2015 (r292900) @@ -658,77 +658,6 @@ __boot_page_padding: /************************************************************************/ /* - * void tid_flush(tlbtid_t tid); - * - * Invalidate all TLB0 entries which match the given TID. Note this is - * dedicated for cases when invalidation(s) should NOT be propagated to other - * CPUs. - * - * void tid_flush(tlbtid_t tid, int tlb0_ways, int tlb0_entries_per_way); - * - * XXX: why isn't this in C? - */ -ENTRY(tid_flush) - cmpwi %r3, TID_KERNEL - beq tid_flush_end /* don't evict kernel translations */ - - /* Disable interrupts */ - mfmsr %r10 - wrteei 0 - - li %r6, 0 /* ways counter */ -loop_ways: - li %r7, 0 /* entries [per way] counter */ -loop_entries: - /* Select TLB0 and ESEL (way) */ - lis %r8, MAS0_TLBSEL0@h - rlwimi %r8, %r6, 16, 14, 15 - mtspr SPR_MAS0, %r8 - isync - - /* Select EPN (entry within the way) */ - rlwinm %r8, %r7, 12, 13, 19 - mtspr SPR_MAS2, %r8 - isync - tlbre - - /* Check if valid entry */ - mfspr %r8, SPR_MAS1 - andis. %r9, %r8, MAS1_VALID@h - beq next_entry /* invalid entry */ - - /* Check if this is our TID */ - rlwinm %r9, %r8, 16, 24, 31 - - cmplw %r9, %r3 - bne next_entry /* not our TID */ - - /* Clear VALID bit */ - rlwinm %r8, %r8, 0, 1, 31 - mtspr SPR_MAS1, %r8 - isync - tlbwe - isync - msync - -next_entry: - addi %r7, %r7, 1 - cmpw %r7, %r5 - bne loop_entries - - /* Next way */ - addi %r6, %r6, 1 - cmpw %r6, %r4 - bne loop_ways - - /* Restore MSR (possibly re-enable interrupts) */ - mtmsr %r10 - isync - -tid_flush_end: - blr - -/* * Cache disable/enable/inval sequences according * to section 2.16 of E500CORE RM. */ Modified: head/sys/powerpc/booke/pmap.c ============================================================================== --- head/sys/powerpc/booke/pmap.c Wed Dec 30 02:15:12 2015 (r292899) +++ head/sys/powerpc/booke/pmap.c Wed Dec 30 02:23:14 2015 (r292900) @@ -161,7 +161,6 @@ unsigned int kernel_ptbls; /* Number of #define PMAP_REMOVE_DONE(pmap) \ ((pmap) != kernel_pmap && (pmap)->pm_stats.resident_count == 0) -extern void tid_flush(tlbtid_t tid, int tlb0_ways, int tlb0_entries_per_way); extern int elf32_nxstack; /**************************************************************************/ @@ -195,6 +194,7 @@ static unsigned int tlb1_idx; static vm_offset_t tlb1_map_base = VM_MAX_KERNEL_ADDRESS; static tlbtid_t tid_alloc(struct pmap *); +static void tid_flush(tlbtid_t tid); static void tlb_print_entry(int, uint32_t, uint32_t, uint32_t, uint32_t); @@ -2915,7 +2915,7 @@ tid_alloc(pmap_t pmap) tidbusy[thiscpu][tid]->pm_tid[thiscpu] = TID_NONE; /* Flush all entries from TLB0 matching this TID. */ - tid_flush(tid, tlb0_ways, tlb0_entries_per_way); + tid_flush(tid); } tidbusy[thiscpu][tid] = pmap; @@ -3426,3 +3426,48 @@ tlb1_iomapped(int i, vm_paddr_t pa, vm_s *va = (tlb1[i].mas2 & MAS2_EPN_MASK) + (pa - pa_start); return (0); } + +/* + * Invalidate all TLB0 entries which match the given TID. Note this is + * dedicated for cases when invalidations should NOT be propagated to other + * CPUs. + */ +static void +tid_flush(tlbtid_t tid) +{ + register_t msr; + uint32_t mas0, mas1, mas2; + int entry, way; + + + /* Don't evict kernel translations */ + if (tid == TID_KERNEL) + return; + + msr = mfmsr(); + __asm __volatile("wrteei 0"); + + for (way = 0; way < TLB0_WAYS; way++) + for (entry = 0; entry < TLB0_ENTRIES_PER_WAY; entry++) { + + mas0 = MAS0_TLBSEL(0) | MAS0_ESEL(way); + mtspr(SPR_MAS0, mas0); + __asm __volatile("isync"); + + mas2 = entry << MAS2_TLB0_ENTRY_IDX_SHIFT; + mtspr(SPR_MAS2, mas2); + + __asm __volatile("isync; tlbre"); + + mas1 = mfspr(SPR_MAS1); + + if (!(mas1 & MAS1_VALID)) + continue; + if (((mas1 & MAS1_TID_MASK) >> MAS1_TID_SHIFT) != tid) + continue; + mas1 &= ~MAS1_VALID; + mtspr(SPR_MAS1, mas1); + __asm __volatile("isync; tlbwe; isync; msync"); + } + mtmsr(msr); +} From owner-svn-src-all@freebsd.org Wed Dec 30 02:26:05 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A90AA547F9; Wed, 30 Dec 2015 02:26:05 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5CB491D0D; Wed, 30 Dec 2015 02:26:05 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU2Q48k079805; Wed, 30 Dec 2015 02:26:04 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU2Q473079804; Wed, 30 Dec 2015 02:26:04 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201512300226.tBU2Q473079804@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Wed, 30 Dec 2015 02:26:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292901 - head/sys/powerpc/booke X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 02:26:05 -0000 Author: jhibbits Date: Wed Dec 30 02:26:04 2015 New Revision: 292901 URL: https://svnweb.freebsd.org/changeset/base/292901 Log: Optimize zero_page for book-e mmu. Instead of indirectly calling bzero() through mmu_booke_zero_page_area, zero the full page the same way as the AIM pmap logic does: using dcbz. Modified: head/sys/powerpc/booke/pmap.c Modified: head/sys/powerpc/booke/pmap.c ============================================================================== --- head/sys/powerpc/booke/pmap.c Wed Dec 30 02:23:14 2015 (r292900) +++ head/sys/powerpc/booke/pmap.c Wed Dec 30 02:26:04 2015 (r292901) @@ -2235,8 +2235,17 @@ mmu_booke_zero_page_area(mmu_t mmu, vm_p static void mmu_booke_zero_page(mmu_t mmu, vm_page_t m) { + vm_offset_t off, va; - mmu_booke_zero_page_area(mmu, m, 0, PAGE_SIZE); + mtx_lock(&zero_page_mutex); + va = zero_page_va; + + mmu_booke_kenter(mmu, va, VM_PAGE_TO_PHYS(m)); + for (off = 0; off < PAGE_SIZE; off += cacheline_size) + __asm __volatile("dcbzl 0,%0" :: "r"(va + off)); + mmu_booke_kremove(mmu, va); + + mtx_unlock(&zero_page_mutex); } /* From owner-svn-src-all@freebsd.org Wed Dec 30 03:36:23 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B8EA4A55B14; Wed, 30 Dec 2015 03:36:23 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7B4EE173F; Wed, 30 Dec 2015 03:36:23 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU3aMZN000640; Wed, 30 Dec 2015 03:36:22 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU3aMQT000639; Wed, 30 Dec 2015 03:36:22 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201512300336.tBU3aMQT000639@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 30 Dec 2015 03:36:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292902 - head/lib/libc/stdio X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 03:36:23 -0000 Author: imp Date: Wed Dec 30 03:36:22 2015 New Revision: 292902 URL: https://svnweb.freebsd.org/changeset/base/292902 Log: Use __alignof__ instead of assuming int64_t to get the right alignment. Differential Revision: https://reviews.freebsd.org/D4708 Modified: head/lib/libc/stdio/findfp.c Modified: head/lib/libc/stdio/findfp.c ============================================================================== --- head/lib/libc/stdio/findfp.c Wed Dec 30 02:26:04 2015 (r292901) +++ head/lib/libc/stdio/findfp.c Wed Dec 30 03:36:22 2015 (r292902) @@ -99,16 +99,7 @@ moreglue(int n) FILE *p; size_t align; - /* - * FILE has a mbstate_t variable. This variable tries to be int64_t - * aligned through its definition. int64_t may be larger than void *, - * which is the size traditionally used for ALIGNBYTES. So, use our own - * rounding instead of the MI ALIGN macros. If for some reason - * ALIGNBYTES is larger than int64_t, respect that too. There appears to - * be no portable way to ask for FILE's alignment requirements other - * than just knowing here. - */ - align = MAX(ALIGNBYTES, sizeof(int64_t)); + align = __alignof__(FILE); g = (struct glue *)malloc(sizeof(*g) + align + n * sizeof(FILE)); if (g == NULL) return (NULL); From owner-svn-src-all@freebsd.org Wed Dec 30 03:43:27 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0742A55DB5; Wed, 30 Dec 2015 03:43:27 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 82DF11BBE; Wed, 30 Dec 2015 03:43:27 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU3hQVi003548; Wed, 30 Dec 2015 03:43:26 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU3hQEt003542; Wed, 30 Dec 2015 03:43:26 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201512300343.tBU3hQEt003542@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Wed, 30 Dec 2015 03:43:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292903 - in head/sys/powerpc: booke mpc85xx X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 03:43:27 -0000 Author: jhibbits Date: Wed Dec 30 03:43:25 2015 New Revision: 292903 URL: https://svnweb.freebsd.org/changeset/base/292903 Log: Add platform support for QorIQ SoCs. This includes the following changes: * SMP kickoff for QorIQ (tested on P5020) * Errata fixes for some silicon revisions * Enables L2 (and L3 if available) caches Obtained from: Semihalf Sponsored by: Alex Perez/Inertial Computing Modified: head/sys/powerpc/booke/booke_machdep.c head/sys/powerpc/booke/locore.S head/sys/powerpc/booke/machdep_e500.c head/sys/powerpc/mpc85xx/mpc85xx.c head/sys/powerpc/mpc85xx/mpc85xx.h head/sys/powerpc/mpc85xx/platform_mpc85xx.c Modified: head/sys/powerpc/booke/booke_machdep.c ============================================================================== --- head/sys/powerpc/booke/booke_machdep.c Wed Dec 30 03:36:22 2015 (r292902) +++ head/sys/powerpc/booke/booke_machdep.c Wed Dec 30 03:43:25 2015 (r292903) @@ -316,8 +316,20 @@ booke_init(uint32_t arg1, uint32_t arg2) ret = powerpc_init(dtbp, 0, 0, mdp); - /* Enable L1 caches */ + /* Default to 32 byte cache line size. */ + switch ((mfpvr()) >> 16) { + case FSL_E500mc: + case FSL_E5500: + case FSL_E6500: + cacheline_size = 64; + break; + } + + /* Enable caches */ booke_enable_l1_cache(); + booke_enable_l2_cache(); + + booke_enable_bpred(); return (ret); } Modified: head/sys/powerpc/booke/locore.S ============================================================================== --- head/sys/powerpc/booke/locore.S Wed Dec 30 03:36:22 2015 (r292902) +++ head/sys/powerpc/booke/locore.S Wed Dec 30 03:43:25 2015 (r292903) @@ -301,7 +301,7 @@ bp_ntlb1s: .globl bp_tlb1 bp_tlb1: - .space 4 * 3 * 16 + .space 4 * 3 * 64 .globl bp_tlb1_end bp_tlb1_end: @@ -731,6 +731,113 @@ ENTRY(icache_enable) blr /* + * L2 cache disable/enable/inval sequences for E500mc. + */ + +ENTRY(l2cache_inval) + mfspr %r3, SPR_L2CSR0 + oris %r3, %r3, (L2CSR0_L2FI | L2CSR0_L2LFC)@h + ori %r3, %r3, (L2CSR0_L2FI | L2CSR0_L2LFC)@l + isync + mtspr SPR_L2CSR0, %r3 + isync +1: mfspr %r3, SPR_L2CSR0 + andis. %r3, %r3, L2CSR0_L2FI@h + bne 1b + blr + +ENTRY(l2cache_enable) + mfspr %r3, SPR_L2CSR0 + oris %r3, %r3, (L2CSR0_L2E | L2CSR0_L2PE)@h + isync + mtspr SPR_L2CSR0, %r3 + isync + blr + +/* + * Branch predictor setup. + */ +ENTRY(bpred_enable) + mfspr %r3, SPR_BUCSR + ori %r3, %r3, BUCSR_BBFI + isync + mtspr SPR_BUCSR, %r3 + isync + ori %r3, %r3, BUCSR_BPEN + isync + mtspr SPR_BUCSR, %r3 + isync + blr + +ENTRY(dataloss_erratum_access) + /* Lock two cache lines into I-Cache */ + sync + mfspr %r11, SPR_L1CSR1 + rlwinm %r11, %r11, 0, ~L1CSR1_ICUL + sync + isync + mtspr SPR_L1CSR1, %r11 + isync + + mflr %r9 + bl 1f + .long 2f-. +1: + mflr %r5 + lwz %r8, 0(%r5) + mtlr %r9 + add %r8, %r8, %r5 + icbtls 0, 0, %r8 + addi %r9, %r8, 64 + + sync + mfspr %r11, SPR_L1CSR1 +3: andi. %r11, %r11, L1CSR1_ICUL + bne 3b + + icbtls 0, 0, %r9 + + sync + mfspr %r11, SPR_L1CSR1 +3: andi. %r11, %r11, L1CSR1_ICUL + bne 3b + + b 2f + .align 6 + /* Inside a locked cacheline, wait a while, write, then wait a while */ +2: sync + + mfspr %r5, TBR_TBL +4: addis %r11, %r5, 0x100000@h /* wait around one million timebase ticks */ + mfspr %r5, TBR_TBL + subf. %r5, %r5, %r11 + bgt 4b + + stw %r4, 0(%r3) + + mfspr %r5, TBR_TBL +4: addis %r11, %r5, 0x100000@h /* wait around one million timebase ticks */ + mfspr %r5, TBR_TBL + subf. %r5, %r5, %r11 + bgt 4b + + sync + + /* + * Fill out the rest of this cache line and the next with nops, + * to ensure that nothing outside the locked area will be + * fetched due to a branch. + */ + .rept 19 + nop + .endr + + icblc 0, 0, %r8 + icblc 0, 0, %r9 + + blr + +/* * int setfault() * * Similar to setjmp to setup for handling faults on accesses to user memory. Modified: head/sys/powerpc/booke/machdep_e500.c ============================================================================== --- head/sys/powerpc/booke/machdep_e500.c Wed Dec 30 03:36:22 2015 (r292902) +++ head/sys/powerpc/booke/machdep_e500.c Wed Dec 30 03:43:25 2015 (r292903) @@ -27,9 +27,15 @@ #include __FBSDID("$FreeBSD$"); +#include #include +#include +#include #include +#include +#include + #include #include @@ -42,6 +48,7 @@ extern void icache_enable(void); extern void icache_inval(void); extern void l2cache_enable(void); extern void l2cache_inval(void); +extern void bpred_enable(void); void booke_init_tlb(vm_paddr_t fdt_immr_pa) @@ -79,7 +86,6 @@ booke_enable_l1_cache(void) (csr & L1CSR1_ICE) ? "en" : "dis"); } -#if 0 void booke_enable_l2_cache(void) { @@ -102,55 +108,18 @@ booke_enable_l2_cache(void) } void -booke_enable_l3_cache(void) +booke_enable_bpred(void) { - uint32_t csr, size, ver; - - /* Enable L3 CoreNet Platform Cache (CPC) */ - ver = SVR_VER(mfspr(SPR_SVR)); - if (ver == SVR_P2041 || ver == SVR_P2041E || ver == SVR_P3041 || - ver == SVR_P3041E || ver == SVR_P5020 || ver == SVR_P5020E) { - csr = ccsr_read4(OCP85XX_CPC_CSR0); - if ((csr & OCP85XX_CPC_CSR0_CE) == 0) { - l3cache_inval(); - l3cache_enable(); - } + uint32_t csr; - csr = ccsr_read4(OCP85XX_CPC_CSR0); - if ((boothowto & RB_VERBOSE) != 0 || - (csr & OCP85XX_CPC_CSR0_CE) == 0) { - size = OCP85XX_CPC_CFG0_SZ_K(ccsr_read4(OCP85XX_CPC_CFG0)); - printf("L3 Corenet Platform Cache: %d KB %sabled\n", - size, (csr & OCP85XX_CPC_CSR0_CE) == 0 ? - "dis" : "en"); - } - } + bpred_enable(); + csr = mfspr(SPR_BUCSR); + if ((boothowto & RB_VERBOSE) != 0 || (csr & BUCSR_BPEN) == 0) + printf("Branch Predictor %sabled\n", + (csr & BUCSR_BPEN) ? "en" : "dis"); } void booke_disable_l2_cache(void) { } - -static void -l3cache_inval(void) -{ - - /* Flash invalidate the CPC and clear all the locks */ - ccsr_write4(OCP85XX_CPC_CSR0, OCP85XX_CPC_CSR0_FI | - OCP85XX_CPC_CSR0_LFC); - while (ccsr_read4(OCP85XX_CPC_CSR0) & (OCP85XX_CPC_CSR0_FI | - OCP85XX_CPC_CSR0_LFC)) - ; -} - -static void -l3cache_enable(void) -{ - - ccsr_write4(OCP85XX_CPC_CSR0, OCP85XX_CPC_CSR0_CE | - OCP85XX_CPC_CSR0_PE); - /* Read back to sync write */ - ccsr_read4(OCP85XX_CPC_CSR0); -} -#endif Modified: head/sys/powerpc/mpc85xx/mpc85xx.c ============================================================================== --- head/sys/powerpc/mpc85xx/mpc85xx.c Wed Dec 30 03:36:22 2015 (r292902) +++ head/sys/powerpc/mpc85xx/mpc85xx.c Wed Dec 30 03:43:25 2015 (r292903) @@ -32,18 +32,26 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include +#include #include #include +#include #include #include #include +#include +#include +#include +#include + #include @@ -249,3 +257,166 @@ law_pci_target(struct resource *res, int return (rv); } +static void +l3cache_inval(void) +{ + + /* Flash invalidate the CPC and clear all the locks */ + ccsr_write4(OCP85XX_CPC_CSR0, OCP85XX_CPC_CSR0_FI | + OCP85XX_CPC_CSR0_LFC); + while (ccsr_read4(OCP85XX_CPC_CSR0) & (OCP85XX_CPC_CSR0_FI | + OCP85XX_CPC_CSR0_LFC)) + ; +} + +static void +l3cache_enable(void) +{ + + ccsr_write4(OCP85XX_CPC_CSR0, OCP85XX_CPC_CSR0_CE | + OCP85XX_CPC_CSR0_PE); + /* Read back to sync write */ + ccsr_read4(OCP85XX_CPC_CSR0); +} + +void +mpc85xx_enable_l3_cache(void) +{ + uint32_t csr, size, ver; + + /* Enable L3 CoreNet Platform Cache (CPC) */ + ver = SVR_VER(mfspr(SPR_SVR)); + if (ver == SVR_P2041 || ver == SVR_P2041E || ver == SVR_P3041 || + ver == SVR_P3041E || ver == SVR_P5020 || ver == SVR_P5020E) { + csr = ccsr_read4(OCP85XX_CPC_CSR0); + if ((csr & OCP85XX_CPC_CSR0_CE) == 0) { + l3cache_inval(); + l3cache_enable(); + } + + csr = ccsr_read4(OCP85XX_CPC_CSR0); + if ((boothowto & RB_VERBOSE) != 0 || + (csr & OCP85XX_CPC_CSR0_CE) == 0) { + size = OCP85XX_CPC_CFG0_SZ_K(ccsr_read4(OCP85XX_CPC_CFG0)); + printf("L3 Corenet Platform Cache: %d KB %sabled\n", + size, (csr & OCP85XX_CPC_CSR0_CE) == 0 ? + "dis" : "en"); + } + } +} + +static void +mpc85xx_dataloss_erratum_spr976(void) +{ + uint32_t svr = SVR_VER(mfspr(SPR_SVR)); + + /* Ignore whether it's the E variant */ + svr &= ~0x8; + + if (svr != SVR_P3041 && svr != SVR_P4040 && + svr != SVR_P4080 && svr != SVR_P5020) + return; + + mb(); + isync(); + mtspr(976, (mfspr(976) & ~0x1f8) | 0x48); + isync(); +} + +static vm_offset_t +mpc85xx_map_dcsr(void) +{ + phandle_t node; + u_long b, s; + int err; + + /* + * Try to access the dcsr node directly i.e. through /aliases/. + */ + if ((node = OF_finddevice("dcsr")) != -1) + if (fdt_is_compatible_strict(node, "fsl,dcsr")) + goto moveon; + /* + * Find the node the long way. + */ + if ((node = OF_finddevice("/")) == -1) + return (ENXIO); + + if ((node = ofw_bus_find_compatible(node, "fsl,dcsr")) == 0) + return (ENXIO); + +moveon: + err = fdt_get_range(node, 0, &b, &s); + + if (err != 0) + return (err); + +#ifdef QORIQ_DPAA + law_enable(OCP85XX_TGTIF_DCSR, b, 0x400000); +#endif + return pmap_early_io_map(b, 0x400000); +} + + + +void +mpc85xx_fix_errata(vm_offset_t va_ccsr) +{ + uint32_t svr = SVR_VER(mfspr(SPR_SVR)); + vm_offset_t va_dcsr; + + /* Ignore whether it's the E variant */ + svr &= ~0x8; + + if (svr != SVR_P3041 && svr != SVR_P4040 && + svr != SVR_P4080 && svr != SVR_P5020) + return; + + if (mfmsr() & PSL_EE) + return; + + /* + * dcsr region need to be mapped thus patch can refer to. + * Align dcsr right after ccsbar. + */ + va_dcsr = mpc85xx_map_dcsr(); + if (va_dcsr == 0) + goto err; + + /* + * As A004510 errata specify, special purpose register 976 + * SPR976[56:60] = 6'b001001 must be set. e500mc core reference manual + * does not document SPR976 register. + */ + mpc85xx_dataloss_erratum_spr976(); + + /* + * Specific settings in the CCF and core platform cache (CPC) + * are required to reconfigure the CoreNet coherency fabric. + * The register settings that should be updated are described + * in errata and relay on base address, offset and updated value. + * Special conditions must be used to update these registers correctly. + */ + dataloss_erratum_access(va_dcsr + 0xb0e08, 0xe0201800); + dataloss_erratum_access(va_dcsr + 0xb0e18, 0xe0201800); + dataloss_erratum_access(va_dcsr + 0xb0e38, 0xe0400000); + dataloss_erratum_access(va_dcsr + 0xb0008, 0x00900000); + dataloss_erratum_access(va_dcsr + 0xb0e40, 0xe00a0000); + + switch (svr) { + case SVR_P5020: + dataloss_erratum_access(va_ccsr + 0x18600, 0xc0000000); + break; + case SVR_P4040: + case SVR_P4080: + dataloss_erratum_access(va_ccsr + 0x18600, 0xff000000); + break; + case SVR_P3041: + dataloss_erratum_access(va_ccsr + 0x18600, 0xf0000000); + } + dataloss_erratum_access(va_ccsr + 0x10f00, 0x415e5000); + dataloss_erratum_access(va_ccsr + 0x11f00, 0x415e5000); + +err: + return; +} Modified: head/sys/powerpc/mpc85xx/mpc85xx.h ============================================================================== --- head/sys/powerpc/mpc85xx/mpc85xx.h Wed Dec 30 03:36:22 2015 (r292902) +++ head/sys/powerpc/mpc85xx/mpc85xx.h Wed Dec 30 03:43:25 2015 (r292903) @@ -40,6 +40,25 @@ extern vm_offset_t ccsrbar_va; #define OCP85XX_CCSRBAR (CCSRBAR_VA + 0x0) #define OCP85XX_BPTR (CCSRBAR_VA + 0x20) +#define OCP85XX_BSTRH (CCSRBAR_VA + 0x20) +#define OCP85XX_BSTRL (CCSRBAR_VA + 0x24) +#define OCP85XX_BSTAR (CCSRBAR_VA + 0x28) + +#define OCP85XX_COREDISR (CCSRBAR_VA + 0xE0094) +#define OCP85XX_BRR (CCSRBAR_VA + 0xE00E4) + +/* + * Run Control and Power Management registers + */ +#define CCSR_CTBENR (CCSRBAR_VA + 0xE2084) +#define CCSR_CTBCKSELR (CCSRBAR_VA + 0xE208C) +#define CCSR_CTBCHLTCR (CCSRBAR_VA + 0xE2094) + +/* + * DDR Memory controller. + */ +#define OCP85XX_DDR1_CS0_CONFIG (CCSRBAR_VA + 0x8080) + /* * E500 Coherency Module registers */ @@ -68,6 +87,7 @@ extern vm_offset_t ccsrbar_va; #define OCP85XX_TGTIF_RAM1 0x10 #define OCP85XX_TGTIF_RAM2 0x11 #define OCP85XX_TGTIF_BMAN 0x18 +#define OCP85XX_TGTIF_DCSR 0x1D #define OCP85XX_TGTIF_QMAN 0x3C #define OCP85XX_TRGT_SHIFT 20 #else @@ -84,6 +104,20 @@ extern vm_offset_t ccsrbar_va; #define OCP85XX_L2CTL (CCSRBAR_VA + 0x20000) /* + * L3 CoreNet platform cache (CPC) registers + */ +#define OCP85XX_CPC_CSR0 (CCSRBAR_VA + 0x10000) +#define OCP85XX_CPC_CSR0_CE 0x80000000 +#define OCP85XX_CPC_CSR0_PE 0x40000000 +#define OCP85XX_CPC_CSR0_FI 0x00200000 +#define OCP85XX_CPC_CSR0_WT 0x00080000 +#define OCP85XX_CPC_CSR0_FL 0x00000800 +#define OCP85XX_CPC_CSR0_LFC 0x00000400 +#define OCP85XX_CPC_CFG0 (CCSRBAR_VA + 0x10008) +#define OCP85XX_CPC_CFG_SZ_MASK 0x00003fff +#define OCP85XX_CPC_CFG0_SZ_K(x) (((x) & OCP85XX_CPC_CFG_SZ_MASK) << 6) + +/* * Power-On Reset configuration */ #define OCP85XX_PORDEVSR (CCSRBAR_VA + 0xe000c) @@ -110,4 +144,8 @@ int law_pci_target(struct resource *, in DECLARE_CLASS(mpc85xx_platform); int mpc85xx_attach(platform_t); +void mpc85xx_enable_l3_cache(void); +void mpc85xx_fix_errata(vm_offset_t); +void dataloss_erratum_access(vm_offset_t, uint32_t); + #endif /* _MPC85XX_H_ */ Modified: head/sys/powerpc/mpc85xx/platform_mpc85xx.c ============================================================================== --- head/sys/powerpc/mpc85xx/platform_mpc85xx.c Wed Dec 30 03:36:22 2015 (r292902) +++ head/sys/powerpc/mpc85xx/platform_mpc85xx.c Wed Dec 30 03:43:25 2015 (r292903) @@ -24,6 +24,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include "opt_platform.h" #include __FBSDID("$FreeBSD$"); @@ -38,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -175,6 +177,9 @@ mpc85xx_attach(platform_t plat) } ccsrbar_va = pmap_early_io_map(ccsrbar, ccsrsize); + mpc85xx_fix_errata(ccsrbar_va); + mpc85xx_enable_l3_cache(); + /* * Clear local access windows. Skip DRAM entries, so we don't shoot * ourselves in the foot. @@ -182,14 +187,14 @@ mpc85xx_attach(platform_t plat) law_max = law_getmax(); for (i = 0; i < law_max; i++) { sr = ccsr_read4(OCP85XX_LAWSR(i)); - if ((sr & 0x80000000) == 0) + if ((sr & OCP85XX_ENA_MASK) == 0) continue; tgt = (sr & 0x01f00000) >> 20; if (tgt == OCP85XX_TGTIF_RAM1 || tgt == OCP85XX_TGTIF_RAM2 || tgt == OCP85XX_TGTIF_RAM_INTL) continue; - ccsr_write4(OCP85XX_LAWSR(i), sr & 0x7fffffff); + ccsr_write4(OCP85XX_LAWSR(i), sr & OCP85XX_DIS_MASK); } return (0); @@ -256,7 +261,11 @@ mpc85xx_timebase_freq(platform_t plat, s * HID0[SEL_TBCLK] = 0 */ if (freq != 0) +#ifdef QORIQ_DPAA + ticks = freq / 32; +#else ticks = freq / 8; +#endif out: if (ticks <= 0) @@ -309,17 +318,37 @@ mpc85xx_smp_start_cpu(platform_t plat, s { #ifdef SMP uint32_t *tlb1; - uint32_t bptr, eebpcr; + vm_paddr_t bptr; + uint32_t reg; int i, timeout; + uintptr_t brr; + int cpuid; + +#ifdef QORIQ_DPAA + uint32_t tgt; - eebpcr = ccsr_read4(OCP85XX_EEBPCR); - if ((eebpcr & (1 << (pc->pc_cpuid + 24))) != 0) { + reg = ccsr_read4(OCP85XX_COREDISR); + cpuid = pc->pc_cpuid; + + if ((reg & cpuid) != 0) { + printf("%s: CPU %d is disabled!\n", __func__, pc->pc_cpuid); + return (-1); + } + + brr = OCP85XX_BRR; +#else /* QORIQ_DPAA */ + brr = OCP85XX_EEBPCR; + cpuid = pc->pc_cpuid + 24; +#endif + reg = ccsr_read4(brr); + if ((reg & (1 << cpuid)) != 0) { printf("SMP: CPU %d already out of hold-off state!\n", pc->pc_cpuid); return (ENXIO); } ap_pcpu = pc; + __asm __volatile("msync; isync"); i = 0; tlb1 = bp_tlb1; @@ -335,24 +364,67 @@ mpc85xx_smp_start_cpu(platform_t plat, s if (i < bp_ntlb1s) bp_ntlb1s = i; + /* Flush caches to have our changes hit DRAM. */ + cpu_flush_dcache(__boot_page, 4096); + + bptr = ((vm_paddr_t)(uintptr_t)__boot_page - KERNBASE) + kernload; + KASSERT((bptr & 0xfff) == 0, + ("%s: boot page is not aligned (%#jx)", __func__, (uintmax_t)bptr)); +#ifdef QORIQ_DPAA + + /* + * Read DDR controller configuration to select proper BPTR target ID. + * + * On P5020 bit 29 of DDR1_CS0_CONFIG enables DDR controllers + * interleaving. If this bit is set, we have to use + * OCP85XX_TGTIF_RAM_INTL as BPTR target ID. On other QorIQ DPAA SoCs, + * this bit is reserved and always 0. + */ + + reg = ccsr_read4(OCP85XX_DDR1_CS0_CONFIG); + if (reg & (1 << 29)) + tgt = OCP85XX_TGTIF_RAM_INTL; + else + tgt = OCP85XX_TGTIF_RAM1; + + /* + * Set BSTR to the physical address of the boot page + */ + ccsr_write4(OCP85XX_BSTRH, bptr >> 32); + ccsr_write4(OCP85XX_BSTRL, bptr); + ccsr_write4(OCP85XX_BSTAR, OCP85XX_ENA_MASK | + (tgt << OCP85XX_TRGT_SHIFT) | (ffsl(PAGE_SIZE) - 2)); + + /* Read back OCP85XX_BSTAR to synchronize write */ + ccsr_read4(OCP85XX_BSTAR); + + /* + * Enable and configure time base on new CPU. + */ + + /* Set TB clock source to platform clock / 32 */ + reg = ccsr_read4(CCSR_CTBCKSELR); + ccsr_write4(CCSR_CTBCKSELR, reg & ~(1 << pc->pc_cpuid)); + + /* Enable TB */ + reg = ccsr_read4(CCSR_CTBENR); + ccsr_write4(CCSR_CTBENR, reg | (1 << pc->pc_cpuid)); +#else + /* * Set BPTR to the physical address of the boot page */ - bptr = ((uint32_t)__boot_page - KERNBASE) + kernload; - KASSERT((bptr & 0xfff) == 0, - ("%s: boot page is not aligned (%#x)", __func__, bptr)); bptr = (bptr >> 12) | 0x80000000u; ccsr_write4(OCP85XX_BPTR, bptr); __asm __volatile("isync; msync"); - /* Flush caches to have our changes hit DRAM. */ - cpu_flush_dcache(__boot_page, 4096); +#endif /* QORIQ_DPAA */ /* * Release AP from hold-off state */ - eebpcr |= (1 << (pc->pc_cpuid + 24)); - ccsr_write4(OCP85XX_EEBPCR, eebpcr); + reg = ccsr_read4(brr); + ccsr_write4(brr, reg | (1 << cpuid)); __asm __volatile("isync; msync"); timeout = 500; @@ -364,7 +436,11 @@ mpc85xx_smp_start_cpu(platform_t plat, s * address (= 0xfffff000) isn't permanently remapped and thus not * usable otherwise. */ +#ifdef QORIQ_DPAA + ccsr_write4(OCP85XX_BSTAR, 0); +#else ccsr_write4(OCP85XX_BPTR, 0); +#endif __asm __volatile("isync; msync"); if (!pc->pc_awake) From owner-svn-src-all@freebsd.org Wed Dec 30 05:56:23 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C36BEA55508 for ; Wed, 30 Dec 2015 05:56:23 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from theravensnest.org (theraven.freebsd.your.org [216.14.102.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cloud.theravensnest.org", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 9867C180A; Wed, 30 Dec 2015 05:56:23 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from pc40.home (ABordeaux-259-1-3-200.w92-162.abo.wanadoo.fr [92.162.178.200]) (authenticated bits=0) by theravensnest.org (8.15.2/8.15.2) with ESMTPSA id tBU5uGpg046680 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 30 Dec 2015 05:56:19 GMT (envelope-from theraven@FreeBSD.org) X-Authentication-Warning: theravensnest.org: Host ABordeaux-259-1-3-200.w92-162.abo.wanadoo.fr [92.162.178.200] claimed to be pc40.home Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r292809 - head/lib/libc/stdio From: David Chisnall In-Reply-To: <20151230102454.P1079@besplex.bde.org> Date: Wed, 30 Dec 2015 06:56:16 +0100 Cc: John Baldwin , Warner Losh , src-committers , svn-src-head@freebsd.org, svn-src-all@freebsd.org, Warner Losh Content-Transfer-Encoding: quoted-printable Message-Id: <12F59E6B-137C-4B53-B86C-E111E512CCFF@FreeBSD.org> References: <201512272304.tBRN4C5D034464@repo.freebsd.org> <41508412.yspAtSoPCD@ralph.baldwin.cx> <2345870.SHMMVrpc1D@ralph.baldwin.cx> <20151230102454.P1079@besplex.bde.org> To: Bruce Evans X-Mailer: Apple Mail (2.2104) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 05:56:23 -0000 On 30 Dec 2015, at 00:48, Bruce Evans wrote: >=20 > - C++ apparently spells this as both _Alignof() and alignof() after = 2011/03 This is not correct. C++ spells it alignof. C spells it _Alignof, = unless you include , in which case C spells it alignof and = defines _ _alignof_is_defined. On FreeBSD, we define _Alignof in C++ mode, because it=E2=80=99s in the = reserved identifier space and gives us something that works in C and = C++. David From owner-svn-src-all@freebsd.org Wed Dec 30 06:44:55 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E333BA532DE; Wed, 30 Dec 2015 06:44:55 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail106.syd.optusnet.com.au (mail106.syd.optusnet.com.au [211.29.132.42]) by mx1.freebsd.org (Postfix) with ESMTP id A6AD21860; Wed, 30 Dec 2015 06:44:55 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail106.syd.optusnet.com.au (Postfix) with ESMTPS id DFC783C511D; Wed, 30 Dec 2015 17:44:50 +1100 (AEDT) Date: Wed, 30 Dec 2015 17:44:49 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: David Chisnall cc: Bruce Evans , John Baldwin , Warner Losh , src-committers , svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, Warner Losh Subject: Re: svn commit: r292809 - head/lib/libc/stdio In-Reply-To: <12F59E6B-137C-4B53-B86C-E111E512CCFF@FreeBSD.org> Message-ID: <20151230172556.R2352@besplex.bde.org> References: <201512272304.tBRN4C5D034464@repo.freebsd.org> <41508412.yspAtSoPCD@ralph.baldwin.cx> <2345870.SHMMVrpc1D@ralph.baldwin.cx> <20151230102454.P1079@besplex.bde.org> <12F59E6B-137C-4B53-B86C-E111E512CCFF@FreeBSD.org> MIME-Version: 1.0 X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=PfoC/XVd c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=nlC_4_pT8q9DhB4Ho9EA:9 a=XgqxBOR3v6g9Ku1U93UA:9 a=45ClL6m2LaAA:10 Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 06:44:56 -0000 On Wed, 30 Dec 2015, David Chisnall wrote: > On 30 Dec 2015, at 00:48, Bruce Evans wrote: >> >> - C++ apparently spells this as both _Alignof() and alignof() after 2011= /03 > > This is not correct. C++ spells it alignof. C spells it _Alignof, unles= s you include , in which case C spells it alignof and defines _= _alignof_is_defined. > > On FreeBSD, we define _Alignof in C++ mode, because it=E2=80=99s in the r= eserved identifier space and gives us something that works in C and C++. So it is more broken than first appeared :-). Extra spellings are a bug since users don't know which one to use and prefer the worst one unless they are experts in at least 3 versions of 3 standards (C-K&R, C90, C99, C11, C++-mumble, gnu89, gnu99, gnu11) and FreeBSD variations on these. There are also syntactical problems. stdalign.h uses _Alignas and _Alignof= , but FreeBSD only defines _Alignas(x) and _Alignof(x). The former is becaus= e alignof is like sizeof so it doesn't need parentheses. However, alignof(typename) needs the parentheses and 'alignof expression' is=20 apparently only a gnu extension, so it is difficult to construct an example of Standard code without the parentheses. _Alignas is more broken than _Alignof. In the C case, _Alignas(x) is as __aligned(x), but this only works if x is an expression. __aligned(x) is often used in FreeBSD code, but the same code in C++ with __aligned(x) replaced by alignas(x) with any spelling is a syntax error. Bruce From owner-svn-src-all@freebsd.org Wed Dec 30 08:15:45 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 698E1A55B36; Wed, 30 Dec 2015 08:15:45 +0000 (UTC) (envelope-from royger@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3A8FD119C; Wed, 30 Dec 2015 08:15:45 +0000 (UTC) (envelope-from royger@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU8Fifq082370; Wed, 30 Dec 2015 08:15:44 GMT (envelope-from royger@FreeBSD.org) Received: (from royger@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU8Fins082368; Wed, 30 Dec 2015 08:15:44 GMT (envelope-from royger@FreeBSD.org) Message-Id: <201512300815.tBU8Fins082368@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: royger set sender to royger@FreeBSD.org using -f From: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Date: Wed, 30 Dec 2015 08:15:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292906 - in stable/10/sys/dev: virtio/balloon xen/balloon X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 08:15:45 -0000 Author: royger Date: Wed Dec 30 08:15:43 2015 New Revision: 292906 URL: https://svnweb.freebsd.org/changeset/base/292906 Log: MFC r267858: xen/virtio: fix balloon drivers to not mark pages as WIRED In the Xen case make sure pages are zeroed before giving them back to the hypervisor, or else we might be leaking data. Also remove the balloon_{append/retrieve} and link pages directly into the ballooned_pages queue using the plinks.q field in the page struct. Sponsored by: Citrix Systems R&D Requested by: bapt Modified: stable/10/sys/dev/virtio/balloon/virtio_balloon.c stable/10/sys/dev/xen/balloon/balloon.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/virtio/balloon/virtio_balloon.c ============================================================================== --- stable/10/sys/dev/virtio/balloon/virtio_balloon.c Wed Dec 30 08:02:11 2015 (r292905) +++ stable/10/sys/dev/virtio/balloon/virtio_balloon.c Wed Dec 30 08:15:43 2015 (r292906) @@ -438,8 +438,7 @@ vtballoon_alloc_page(struct vtballoon_so { vm_page_t m; - m = vm_page_alloc(NULL, 0, VM_ALLOC_NORMAL | VM_ALLOC_WIRED | - VM_ALLOC_NOOBJ); + m = vm_page_alloc(NULL, 0, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); if (m != NULL) sc->vtballoon_current_npages++; @@ -450,7 +449,6 @@ static void vtballoon_free_page(struct vtballoon_softc *sc, vm_page_t m) { - vm_page_unwire(m, 0); vm_page_free(m); sc->vtballoon_current_npages--; } Modified: stable/10/sys/dev/xen/balloon/balloon.c ============================================================================== --- stable/10/sys/dev/xen/balloon/balloon.c Wed Dec 30 08:02:11 2015 (r292905) +++ stable/10/sys/dev/xen/balloon/balloon.c Wed Dec 30 08:15:43 2015 (r292906) @@ -94,13 +94,8 @@ SYSCTL_ULONG(_dev_xen_balloon, OID_AUTO, SYSCTL_ULONG(_dev_xen_balloon, OID_AUTO, high_mem, CTLFLAG_RD, &bs.balloon_high, 0, "High-mem balloon"); -struct balloon_entry { - vm_page_t page; - STAILQ_ENTRY(balloon_entry) list; -}; - /* List of ballooned pages, threaded through the mem_map array. */ -static STAILQ_HEAD(,balloon_entry) ballooned_pages; +static TAILQ_HEAD(,vm_page) ballooned_pages; /* Main work function, always executed in process context. */ static void balloon_process(void *unused); @@ -110,47 +105,6 @@ static void balloon_process(void *unused #define WPRINTK(fmt, args...) \ printk(KERN_WARNING "xen_mem: " fmt, ##args) -/* balloon_append: add the given page to the balloon. */ -static int -balloon_append(vm_page_t page) -{ - struct balloon_entry *entry; - - mtx_assert(&balloon_mutex, MA_OWNED); - - entry = malloc(sizeof(struct balloon_entry), M_BALLOON, M_NOWAIT); - if (!entry) - return (ENOMEM); - entry->page = page; - STAILQ_INSERT_HEAD(&ballooned_pages, entry, list); - bs.balloon_low++; - - return (0); -} - -/* balloon_retrieve: rescue a page from the balloon, if it is not empty. */ -static vm_page_t -balloon_retrieve(void) -{ - vm_page_t page; - struct balloon_entry *entry; - - mtx_assert(&balloon_mutex, MA_OWNED); - - if (STAILQ_EMPTY(&ballooned_pages)) - return (NULL); - - entry = STAILQ_FIRST(&ballooned_pages); - STAILQ_REMOVE_HEAD(&ballooned_pages, list); - - page = entry->page; - free(entry, M_BALLOON); - - bs.balloon_low--; - - return (page); -} - static unsigned long current_target(void) { @@ -203,7 +157,6 @@ static int increase_reservation(unsigned long nr_pages) { unsigned long pfn, i; - struct balloon_entry *entry; vm_page_t page; long rc; struct xen_memory_reservation reservation = { @@ -217,10 +170,9 @@ increase_reservation(unsigned long nr_pa if (nr_pages > nitems(frame_list)) nr_pages = nitems(frame_list); - for (entry = STAILQ_FIRST(&ballooned_pages), i = 0; - i < nr_pages; i++, entry = STAILQ_NEXT(entry, list)) { - KASSERT(entry, ("ballooned_pages list corrupt")); - page = entry->page; + for (page = TAILQ_FIRST(&ballooned_pages), i = 0; + i < nr_pages; i++, page = TAILQ_NEXT(page, plinks.q)) { + KASSERT(page != NULL, ("ballooned_pages list corrupt")); frame_list[i] = (VM_PAGE_TO_PHYS(page) >> PAGE_SHIFT); } @@ -245,8 +197,10 @@ increase_reservation(unsigned long nr_pa } for (i = 0; i < nr_pages; i++) { - page = balloon_retrieve(); - KASSERT(page, ("balloon_retrieve failed")); + page = TAILQ_FIRST(&ballooned_pages); + KASSERT(page != NULL, ("Unable to get ballooned page")); + TAILQ_REMOVE(&ballooned_pages, page, plinks.q); + bs.balloon_low--; pfn = (VM_PAGE_TO_PHYS(page) >> PAGE_SHIFT); KASSERT((xen_feature(XENFEAT_auto_translated_physmap) || @@ -255,7 +209,6 @@ increase_reservation(unsigned long nr_pa set_phys_to_machine(pfn, frame_list[i]); - vm_page_unwire(page, 0); vm_page_free(page); } @@ -286,24 +239,29 @@ decrease_reservation(unsigned long nr_pa for (i = 0; i < nr_pages; i++) { if ((page = vm_page_alloc(NULL, 0, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ | - VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL) { + VM_ALLOC_ZERO)) == NULL) { nr_pages = i; need_sleep = 1; break; } + if ((page->flags & PG_ZERO) == 0) { + /* + * Zero the page, or else we might be leaking + * important data to other domains on the same + * host. Xen doesn't scrub ballooned out memory + * pages, the guest is in charge of making + * sure that no information is leaked. + */ + pmap_zero_page(page); + } + pfn = (VM_PAGE_TO_PHYS(page) >> PAGE_SHIFT); frame_list[i] = PFNTOMFN(pfn); set_phys_to_machine(pfn, INVALID_P2M_ENTRY); - if (balloon_append(page) != 0) { - vm_page_unwire(page, 0); - vm_page_free(page); - - nr_pages = i; - need_sleep = 1; - break; - } + TAILQ_INSERT_HEAD(&ballooned_pages, page, plinks.q); + bs.balloon_low++; } set_xen_guest_handle(reservation.extent_start, frame_list); @@ -438,7 +396,8 @@ balloon_init(void *arg) /* Initialise the balloon with excess memory space. */ for (pfn = xen_start_info->nr_pages; pfn < max_pfn; pfn++) { page = PHYS_TO_VM_PAGE(pfn << PAGE_SHIFT); - balloon_append(page); + TAILQ_INSERT_HEAD(&ballooned_pages, page, plinks.q); + bs.balloon_low++; } #undef max_pfn #endif From owner-svn-src-all@freebsd.org Wed Dec 30 08:52:05 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B3220A5594E; Wed, 30 Dec 2015 08:52:05 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6DBC612A5; Wed, 30 Dec 2015 08:52:05 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU8q4bZ095375; Wed, 30 Dec 2015 08:52:04 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU8q4Y5095369; Wed, 30 Dec 2015 08:52:04 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512300852.tBU8q4Y5095369@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 30 Dec 2015 08:52:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292907 - in stable/10/sys: dev/pci ofed/include/linux X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 08:52:05 -0000 Author: ngie Date: Wed Dec 30 08:52:03 2015 New Revision: 292907 URL: https://svnweb.freebsd.org/changeset/base/292907 Log: MFC r270212,r270332: This helps reduce the diff in pci(4) between head and stable/10 to help pave the way for bringing in IOV/nv(9) more cleanly Differential Revision: https://reviews.freebsd.org/D4728 Relnotes: yes Reviewed by: hselasky (ofed piece), royger (overall change) Sponsored by: EMC / Isilon Storage Division r270212 (by royger): pci: make MSI(-X) enable and disable methods of the PCI bus Make the functions pci_disable_msi, pci_enable_msi and pci_enable_msix methods of the newbus PCI bus. This code should not include any functional change. Sponsored by: Citrix Systems R&D Reviewed by: imp, jhb Differential Revision: https://reviews.freebsd.org/D354 dev/pci/pci.c: - Convert the mentioned functions to newbus methods. - Fix the callers of the converted functions. sys/dev/pci/pci_private.h: dev/pci/pci_if.m: - Declare the new methods. dev/pci/pcivar.h: - Add helpers to call the newbus methods. ofed/include/linux/pci.h: - Add define to prevent the ofed version of pci_enable_msix from clashing with the FreeBSD native version. r270332 (by royger): pci: add a new pci_child_added newbus method. This is needed so when running under Xen the calls to pci_child_added can be intercepted and a custom Xen method can be used to register those devices with Xen. This should not include any functional change, since the Xen implementation will be added in a following patch and the native implementation is a noop. Sponsored by: Citrix Systems R&D Reviewed by: jhb dev/pci/pci.c: dev/pci/pci_if.m: dev/pci/pci_private.h: dev/pci/pcivar.h: - Add the pci_child_added newbus method. Modified: stable/10/sys/dev/pci/pci.c stable/10/sys/dev/pci/pci_if.m stable/10/sys/dev/pci/pci_private.h stable/10/sys/dev/pci/pcivar.h stable/10/sys/ofed/include/linux/pci.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/pci/pci.c ============================================================================== --- stable/10/sys/dev/pci/pci.c Wed Dec 30 08:15:43 2015 (r292906) +++ stable/10/sys/dev/pci/pci.c Wed Dec 30 08:52:03 2015 (r292907) @@ -110,11 +110,6 @@ static int pci_write_vpd_reg(device_t p int reg, uint32_t data); #endif static void pci_read_vpd(device_t pcib, pcicfgregs *cfg); -static void pci_disable_msi(device_t dev); -static void pci_enable_msi(device_t dev, uint64_t address, - uint16_t data); -static void pci_enable_msix(device_t dev, u_int index, - uint64_t address, uint32_t data); static void pci_mask_msix(device_t dev, u_int index); static void pci_unmask_msix(device_t dev, u_int index); static int pci_msi_blacklisted(void); @@ -180,11 +175,15 @@ static device_method_t pci_methods[] = { DEVMETHOD(pci_find_htcap, pci_find_htcap_method), DEVMETHOD(pci_alloc_msi, pci_alloc_msi_method), DEVMETHOD(pci_alloc_msix, pci_alloc_msix_method), + DEVMETHOD(pci_enable_msi, pci_enable_msi_method), + DEVMETHOD(pci_enable_msix, pci_enable_msix_method), + DEVMETHOD(pci_disable_msi, pci_disable_msi_method), DEVMETHOD(pci_remap_msix, pci_remap_msix_method), DEVMETHOD(pci_release_msi, pci_release_msi_method), DEVMETHOD(pci_msi_count, pci_msi_count_method), DEVMETHOD(pci_msix_count, pci_msix_count_method), DEVMETHOD(pci_get_rid, pci_get_rid_method), + DEVMETHOD(pci_child_added, pci_child_added_method), DEVMETHOD_END }; @@ -1374,9 +1373,10 @@ pci_find_extcap_method(device_t dev, dev * Support for MSI-X message interrupts. */ void -pci_enable_msix(device_t dev, u_int index, uint64_t address, uint32_t data) +pci_enable_msix_method(device_t dev, device_t child, u_int index, + uint64_t address, uint32_t data) { - struct pci_devinfo *dinfo = device_get_ivars(dev); + struct pci_devinfo *dinfo = device_get_ivars(child); struct pcicfg_msix *msix = &dinfo->cfg.msix; uint32_t offset; @@ -1387,7 +1387,7 @@ pci_enable_msix(device_t dev, u_int inde bus_write_4(msix->msix_table_res, offset + 8, data); /* Enable MSI -> HT mapping. */ - pci_ht_map_msi(dev, address); + pci_ht_map_msi(child, address); } void @@ -1956,45 +1956,46 @@ pcie_adjust_config(device_t dev, int reg * Support for MSI message signalled interrupts. */ void -pci_enable_msi(device_t dev, uint64_t address, uint16_t data) +pci_enable_msi_method(device_t dev, device_t child, uint64_t address, + uint16_t data) { - struct pci_devinfo *dinfo = device_get_ivars(dev); + struct pci_devinfo *dinfo = device_get_ivars(child); struct pcicfg_msi *msi = &dinfo->cfg.msi; /* Write data and address values. */ - pci_write_config(dev, msi->msi_location + PCIR_MSI_ADDR, + pci_write_config(child, msi->msi_location + PCIR_MSI_ADDR, address & 0xffffffff, 4); if (msi->msi_ctrl & PCIM_MSICTRL_64BIT) { - pci_write_config(dev, msi->msi_location + PCIR_MSI_ADDR_HIGH, + pci_write_config(child, msi->msi_location + PCIR_MSI_ADDR_HIGH, address >> 32, 4); - pci_write_config(dev, msi->msi_location + PCIR_MSI_DATA_64BIT, + pci_write_config(child, msi->msi_location + PCIR_MSI_DATA_64BIT, data, 2); } else - pci_write_config(dev, msi->msi_location + PCIR_MSI_DATA, data, + pci_write_config(child, msi->msi_location + PCIR_MSI_DATA, data, 2); /* Enable MSI in the control register. */ msi->msi_ctrl |= PCIM_MSICTRL_MSI_ENABLE; - pci_write_config(dev, msi->msi_location + PCIR_MSI_CTRL, msi->msi_ctrl, - 2); + pci_write_config(child, msi->msi_location + PCIR_MSI_CTRL, + msi->msi_ctrl, 2); /* Enable MSI -> HT mapping. */ - pci_ht_map_msi(dev, address); + pci_ht_map_msi(child, address); } void -pci_disable_msi(device_t dev) +pci_disable_msi_method(device_t dev, device_t child) { - struct pci_devinfo *dinfo = device_get_ivars(dev); + struct pci_devinfo *dinfo = device_get_ivars(child); struct pcicfg_msi *msi = &dinfo->cfg.msi; /* Disable MSI -> HT mapping. */ - pci_ht_map_msi(dev, 0); + pci_ht_map_msi(child, 0); /* Disable MSI in the control register. */ msi->msi_ctrl &= ~PCIM_MSICTRL_MSI_ENABLE; - pci_write_config(dev, msi->msi_location + PCIR_MSI_CTRL, msi->msi_ctrl, - 2); + pci_write_config(child, msi->msi_location + PCIR_MSI_CTRL, + msi->msi_ctrl, 2); } /* @@ -3604,6 +3605,13 @@ pci_add_child(device_t bus, struct pci_d pci_cfg_restore(dinfo->cfg.dev, dinfo); pci_print_verbose(dinfo); pci_add_resources(bus, dinfo->cfg.dev, 0, 0); + pci_child_added(dinfo->cfg.dev); +} + +void +pci_child_added_method(device_t dev, device_t child) +{ + } static int Modified: stable/10/sys/dev/pci/pci_if.m ============================================================================== --- stable/10/sys/dev/pci/pci_if.m Wed Dec 30 08:15:43 2015 (r292906) +++ stable/10/sys/dev/pci/pci_if.m Wed Dec 30 08:52:03 2015 (r292907) @@ -138,6 +138,26 @@ METHOD int alloc_msix { int *count; }; +METHOD void enable_msi { + device_t dev; + device_t child; + uint64_t address; + uint16_t data; +}; + +METHOD void enable_msix { + device_t dev; + device_t child; + u_int index; + uint64_t address; + uint32_t data; +}; + +METHOD void disable_msi { + device_t dev; + device_t child; +}; + METHOD int remap_msix { device_t dev; device_t child; @@ -165,3 +185,7 @@ METHOD uint16_t get_rid { device_t child; }; +METHOD void child_added { + device_t dev; + device_t child; +}; Modified: stable/10/sys/dev/pci/pci_private.h ============================================================================== --- stable/10/sys/dev/pci/pci_private.h Wed Dec 30 08:15:43 2015 (r292906) +++ stable/10/sys/dev/pci/pci_private.h Wed Dec 30 08:52:03 2015 (r292907) @@ -90,6 +90,11 @@ int pci_find_htcap_method(device_t dev, int capability, int *capreg); int pci_alloc_msi_method(device_t dev, device_t child, int *count); int pci_alloc_msix_method(device_t dev, device_t child, int *count); +void pci_enable_msi_method(device_t dev, device_t child, + uint64_t address, uint16_t data); +void pci_enable_msix_method(device_t dev, device_t child, + u_int index, uint64_t address, uint32_t data); +void pci_disable_msi_method(device_t dev, device_t child); int pci_remap_msix_method(device_t dev, device_t child, int count, const u_int *vectors); int pci_release_msi_method(device_t dev, device_t child); @@ -120,6 +125,7 @@ int pci_assign_interrupt_method(device_ int pci_resume(device_t dev); int pci_suspend(device_t dev); bus_dma_tag_t pci_get_dma_tag(device_t bus, device_t dev); +void pci_child_added_method(device_t dev, device_t child); /** Restore the config register state. The state must be previously * saved with pci_cfg_save. However, the pci bus driver takes care of Modified: stable/10/sys/dev/pci/pcivar.h ============================================================================== --- stable/10/sys/dev/pci/pcivar.h Wed Dec 30 08:15:43 2015 (r292906) +++ stable/10/sys/dev/pci/pcivar.h Wed Dec 30 08:52:03 2015 (r292907) @@ -458,6 +458,24 @@ pci_alloc_msix(device_t dev, int *count) return (PCI_ALLOC_MSIX(device_get_parent(dev), dev, count)); } +static __inline void +pci_enable_msi(device_t dev, uint64_t address, uint16_t data) +{ + PCI_ENABLE_MSI(device_get_parent(dev), dev, address, data); +} + +static __inline void +pci_enable_msix(device_t dev, u_int index, uint64_t address, uint32_t data) +{ + PCI_ENABLE_MSIX(device_get_parent(dev), dev, index, address, data); +} + +static __inline void +pci_disable_msi(device_t dev) +{ + PCI_DISABLE_MSI(device_get_parent(dev), dev); +} + static __inline int pci_remap_msix(device_t dev, int count, const u_int *vectors) { @@ -488,6 +506,13 @@ pci_get_rid(device_t dev) return (PCI_GET_RID(device_get_parent(dev), dev)); } +static __inline void +pci_child_added(device_t dev) +{ + + return (PCI_CHILD_ADDED(device_get_parent(dev), dev)); +} + device_t pci_find_bsf(uint8_t, uint8_t, uint8_t); device_t pci_find_dbsf(uint32_t, uint8_t, uint8_t, uint8_t); device_t pci_find_device(uint16_t, uint16_t); Modified: stable/10/sys/ofed/include/linux/pci.h ============================================================================== --- stable/10/sys/ofed/include/linux/pci.h Wed Dec 30 08:15:43 2015 (r292906) +++ stable/10/sys/ofed/include/linux/pci.h Wed Dec 30 08:52:03 2015 (r292907) @@ -566,7 +566,11 @@ struct msix_entry { /* * Enable msix, positive errors indicate actual number of available * vectors. Negative errors are failures. + * + * NB: define added to prevent this definition of pci_enable_msix from + * clashing with the native FreeBSD version. */ +#define pci_enable_msix linux_pci_enable_msix static inline int pci_enable_msix(struct pci_dev *pdev, struct msix_entry *entries, int nreq) { From owner-svn-src-all@freebsd.org Wed Dec 30 08:53:13 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6F3BFA55AA1; Wed, 30 Dec 2015 08:53:13 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 41AB71488; Wed, 30 Dec 2015 08:53:13 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU8rCg5095455; Wed, 30 Dec 2015 08:53:12 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU8rCww095454; Wed, 30 Dec 2015 08:53:12 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512300853.tBU8rCww095454@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 30 Dec 2015 08:53:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292908 - stable/10/sys/sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 08:53:13 -0000 Author: ngie Date: Wed Dec 30 08:53:12 2015 New Revision: 292908 URL: https://svnweb.freebsd.org/changeset/base/292908 Log: Bump __FreeBSD_version per pci(4) changes made in r292907 Sponsored by: EMC / Isilon Storage Division Modified: stable/10/sys/sys/param.h Modified: stable/10/sys/sys/param.h ============================================================================== --- stable/10/sys/sys/param.h Wed Dec 30 08:52:03 2015 (r292907) +++ stable/10/sys/sys/param.h Wed Dec 30 08:53:12 2015 (r292908) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1002504 /* Master, propagated to newvers */ +#define __FreeBSD_version 1002505 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Wed Dec 30 09:15:04 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 34BDEA563EC; Wed, 30 Dec 2015 09:15:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0A1CE1068; Wed, 30 Dec 2015 09:15:03 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBU9F34L001704; Wed, 30 Dec 2015 09:15:03 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBU9F3LM001703; Wed, 30 Dec 2015 09:15:03 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512300915.tBU9F3LM001703@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 09:15:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292911 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 09:15:04 -0000 Author: dim Date: Wed Dec 30 09:15:02 2015 New Revision: 292911 URL: https://svnweb.freebsd.org/changeset/base/292911 Log: Add some more obsolete files, left over from the clang 3.7.0 -> 3.7.1 upgrade. Noticed by: Nikolai Lifanov , jtl Modified: head/ObsoleteFiles.inc Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Wed Dec 30 09:02:03 2015 (r292910) +++ head/ObsoleteFiles.inc Wed Dec 30 09:15:02 2015 (r292911) @@ -105,6 +105,8 @@ OLD_FILES+=usr/lib/clang/3.7.0/include/x OLD_FILES+=usr/lib/clang/3.7.0/include/xtestintrin.h OLD_DIRS+=usr/lib/clang/3.7.0/include OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a From owner-svn-src-all@freebsd.org Wed Dec 30 11:15:09 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 041C4A5690C; Wed, 30 Dec 2015 11:15:09 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C12C51448; Wed, 30 Dec 2015 11:15:08 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBF8Uc038404; Wed, 30 Dec 2015 11:15:08 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBF7Wr038402; Wed, 30 Dec 2015 11:15:07 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512301115.tBUBF7Wr038402@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 30 Dec 2015 11:15:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292914 - in head: tests/sys/kern tools/regression/sockets/unix_passfd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:15:09 -0000 Author: ngie Date: Wed Dec 30 11:15:07 2015 New Revision: 292914 URL: https://svnweb.freebsd.org/changeset/base/292914 Log: Integrate tools/regression/sockets/unix_passfd into the FreeBSD test suite as tests/sys/kern/unix_passfd_test - Convert testcases to ATF - Fix an alignment issues - Mark rights_creds_payload(..) as an expected failure (see PR # 181741) Based [in part] on the following Differential Revision: https://reviews.freebsd.org/D689 MFC after: 1 week Submitted by: markj Sponsored by: EMC / Isilon Storage Division Added: head/tests/sys/kern/unix_passfd_test.c - copied, changed from r292913, head/tools/regression/sockets/unix_passfd/unix_passfd.c Deleted: head/tools/regression/sockets/unix_passfd/ Modified: head/tests/sys/kern/Makefile Modified: head/tests/sys/kern/Makefile ============================================================================== --- head/tests/sys/kern/Makefile Wed Dec 30 10:23:25 2015 (r292913) +++ head/tests/sys/kern/Makefile Wed Dec 30 11:15:07 2015 (r292914) @@ -8,6 +8,7 @@ ATF_TESTS_C+= kern_copyin ATF_TESTS_C+= kern_descrip_test ATF_TESTS_C+= ptrace_test ATF_TESTS_C+= unix_seqpacket_test +ATF_TESTS_C+= unix_passfd_test TEST_METADATA.unix_seqpacket_test+= timeout="15" LIBADD.ptrace_test+= pthread Copied and modified: head/tests/sys/kern/unix_passfd_test.c (from r292913, head/tools/regression/sockets/unix_passfd/unix_passfd.c) ============================================================================== --- head/tools/regression/sockets/unix_passfd/unix_passfd.c Wed Dec 30 10:23:25 2015 (r292913, copy source) +++ head/tests/sys/kern/unix_passfd_test.c Wed Dec 30 11:15:07 2015 (r292914) @@ -33,7 +33,7 @@ #include #include -#include +#include #include #include #include @@ -41,6 +41,8 @@ #include #include +#include + /* * UNIX domain sockets allow file descriptors to be passed via "ancillary * data", or control messages. This regression test is intended to exercise @@ -51,11 +53,11 @@ */ static void -domainsocketpair(const char *test, int *fdp) +domainsocketpair(int *fdp) { - if (socketpair(PF_UNIX, SOCK_STREAM, 0, fdp) < 0) - err(-1, "%s: socketpair(PF_UNIX, SOCK_STREAM)", test); + ATF_REQUIRE_MSG(socketpair(PF_UNIX, SOCK_STREAM, 0, fdp) != -1, + "socketpair(PF_UNIX, SOCK_STREAM) failed: %s", strerror(errno)); } static void @@ -67,51 +69,47 @@ closesocketpair(int *fdp) } static void -devnull(const char *test, int *fdp) +devnull(int *fdp) { int fd; fd = open("/dev/null", O_RDONLY); - if (fd < 0) - err(-1, "%s: open(/dev/null)", test); + ATF_REQUIRE_MSG(fd != -1, "open failed: %s", strerror(errno)); *fdp = fd; } static void -tempfile(const char *test, int *fdp) +tempfile(int *fdp) { char path[PATH_MAX]; int fd; - snprintf(path, PATH_MAX, "/tmp/unix_passfd.XXXXXXXXXXXXXXX"); + snprintf(path, PATH_MAX, "%s/unix_passfd.XXXXXXXXXXXXXXX", + getenv("TMPDIR") == NULL ? "/tmp" : getenv("TMPDIR")); fd = mkstemp(path); - if (fd < 0) - err(-1, "%s: mkstemp(%s)", test, path); + ATF_REQUIRE_MSG(fd != -1, "mkstemp(%s) failed", path); (void)unlink(path); *fdp = fd; } static void -dofstat(const char *test, int fd, struct stat *sb) +dofstat(int fd, struct stat *sb) { - if (fstat(fd, sb) < 0) - err(-1, "%s: fstat", test); + ATF_REQUIRE_MSG(fstat(fd, sb) == 0, + "fstat failed: %s", strerror(errno)); } static void -samefile(const char *test, struct stat *sb1, struct stat *sb2) +samefile(struct stat *sb1, struct stat *sb2) { - if (sb1->st_dev != sb2->st_dev) - errx(-1, "%s: samefile: different device", test); - if (sb1->st_ino != sb2->st_ino) - errx(-1, "%s: samefile: different inode", test); + ATF_REQUIRE_MSG(sb1->st_dev == sb2->st_dev, "different device"); + ATF_REQUIRE_MSG(sb1->st_ino == sb2->st_ino, "different inode"); } static void -sendfd_payload(const char *test, int sockfd, int sendfd, - void *payload, size_t paylen) +sendfd_payload(int sockfd, int sendfd, void *payload, size_t paylen) { struct iovec iovec; char message[CMSG_SPACE(sizeof(int))]; @@ -131,30 +129,29 @@ sendfd_payload(const char *test, int soc msghdr.msg_iov = &iovec; msghdr.msg_iovlen = 1; - cmsghdr = (struct cmsghdr *)message; + cmsghdr = (struct cmsghdr *)(void*)message; cmsghdr->cmsg_len = CMSG_LEN(sizeof(int)); cmsghdr->cmsg_level = SOL_SOCKET; cmsghdr->cmsg_type = SCM_RIGHTS; - *(int *)CMSG_DATA(cmsghdr) = sendfd; + memcpy(CMSG_DATA(cmsghdr), &sendfd, sizeof(int)); len = sendmsg(sockfd, &msghdr, 0); - if (len < 0) - err(-1, "%s: sendmsg", test); - if ((size_t)len != paylen) - errx(-1, "%s: sendmsg: %zd bytes sent", test, len); + ATF_REQUIRE_MSG(len != -1, "sendmsg failed: %s", strerror(errno)); + ATF_REQUIRE_MSG((size_t)len == paylen, + "sendmsg: %zd messages sent; expected: %zu; %s", len, paylen, + strerror(errno)); } static void -sendfd(const char *test, int sockfd, int sendfd) +sendfd(int sockfd, int sendfd) { char ch = 0; - return (sendfd_payload(test, sockfd, sendfd, &ch, sizeof(ch))); + return (sendfd_payload(sockfd, sendfd, &ch, sizeof(ch))); } static void -recvfd_payload(const char *test, int sockfd, int *recvfd, - void *buf, size_t buflen) +recvfd_payload(int sockfd, int *recvfd, void *buf, size_t buflen) { struct cmsghdr *cmsghdr; char message[CMSG_SPACE(SOCKCREDSIZE(CMGROUP_MAX)) + sizeof(int)]; @@ -174,217 +171,226 @@ recvfd_payload(const char *test, int soc msghdr.msg_iovlen = 1; len = recvmsg(sockfd, &msghdr, 0); - if (len < 0) - err(-1, "%s: recvmsg", test); - if ((size_t)len != buflen) - errx(-1, "%s: recvmsg: %zd bytes received", test, len); + ATF_REQUIRE_MSG(len != -1, "recvmsg failed: %s", strerror(errno)); + ATF_REQUIRE_MSG((size_t)len == buflen, + "recvmsg: %zd bytes received; expected %zd", len, buflen); cmsghdr = CMSG_FIRSTHDR(&msghdr); - if (cmsghdr == NULL) - errx(-1, "%s: recvmsg: did not receive control message", test); + ATF_REQUIRE_MSG(cmsghdr != NULL, + "recvmsg: did not receive control message"); *recvfd = -1; for (; cmsghdr != NULL; cmsghdr = CMSG_NXTHDR(&msghdr, cmsghdr)) { if (cmsghdr->cmsg_level == SOL_SOCKET && cmsghdr->cmsg_type == SCM_RIGHTS && cmsghdr->cmsg_len == CMSG_LEN(sizeof(int))) { - *recvfd = *(int *)CMSG_DATA(cmsghdr); - if (*recvfd == -1) - errx(-1, "%s: recvmsg: received fd -1", test); + memcpy(recvfd, CMSG_DATA(cmsghdr), sizeof(int)); + ATF_REQUIRE(*recvfd != -1); } } - if (*recvfd == -1) - errx(-1, "%s: recvmsg: did not receive single-fd message", - test); + ATF_REQUIRE_MSG(*recvfd != -1, + "recvmsg: did not receive single-fd message"); } static void -recvfd(const char *test, int sockfd, int *recvfd) +recvfd(int sockfd, int *recvfd) { char ch = 0; - return (recvfd_payload(test, sockfd, recvfd, &ch, sizeof(ch))); + return (recvfd_payload(sockfd, recvfd, &ch, sizeof(ch))); } -int -main(void) +/* + * Put a temporary file into a UNIX domain socket, then take it out and make + * sure it's the same file. First time around, don't close the reference + * after sending. + */ +ATF_TC_WITHOUT_HEAD(simple_send_fd); +ATF_TC_BODY(simple_send_fd, tc) { - struct stat putfd_1_stat, putfd_2_stat, getfd_1_stat, getfd_2_stat; - int fd[2], putfd_1, putfd_2, getfd_1, getfd_2; - const char *test; - - /* - * First test: put a temporary file into a UNIX domain socket, then - * take it out and make sure it's the same file. First time around, - * don't close the reference after sending. - */ - test = "test1-simplesendfd"; - printf("beginning %s\n", test); - - domainsocketpair(test, fd); - tempfile(test, &putfd_1); - dofstat(test, putfd_1, &putfd_1_stat); - sendfd(test, fd[0], putfd_1); - recvfd(test, fd[1], &getfd_1); - dofstat(test, getfd_1, &getfd_1_stat); - samefile(test, &putfd_1_stat, &getfd_1_stat); - close(putfd_1); - close(getfd_1); + struct stat getfd_stat, putfd_stat; + int fd[2], getfd, putfd; + + domainsocketpair(fd); + tempfile(&putfd); + dofstat(putfd, &putfd_stat); + sendfd(fd[0], putfd); + recvfd(fd[1], &getfd); + dofstat(getfd, &getfd_stat); + samefile(&putfd_stat, &getfd_stat); + close(putfd); + close(getfd); closesocketpair(fd); +} - printf("%s passed\n", test); +/* + * Same as simple_send_fd, only close the file reference after sending, so that + * the only reference is the descriptor in the UNIX domain socket buffer. + */ +ATF_TC_WITHOUT_HEAD(send_and_close); +ATF_TC_BODY(send_and_close, tc) +{ + struct stat getfd_stat, putfd_stat; + int fd[2], getfd, putfd; - /* - * Second test: same as first, only close the file reference after - * sending, so that the only reference is the descriptor in the UNIX - * domain socket buffer. - */ - test = "test2-sendandclose"; - printf("beginning %s\n", test); - - domainsocketpair(test, fd); - tempfile(test, &putfd_1); - dofstat(test, putfd_1, &putfd_1_stat); - sendfd(test, fd[0], putfd_1); - close(putfd_1); - recvfd(test, fd[1], &getfd_1); - dofstat(test, getfd_1, &getfd_1_stat); - samefile(test, &putfd_1_stat, &getfd_1_stat); - close(getfd_1); + domainsocketpair(fd); + tempfile(&putfd); + dofstat(putfd, &putfd_stat); + sendfd(fd[0], putfd); + close(putfd); + recvfd(fd[1], &getfd); + dofstat(getfd, &getfd_stat); + samefile(&putfd_stat, &getfd_stat); + close(getfd); closesocketpair(fd); +} - printf("%s passed\n", test); +/* + * Put a temporary file into a UNIX domain socket, then close both endpoints + * causing garbage collection to kick off. + */ +ATF_TC_WITHOUT_HEAD(send_and_cancel); +ATF_TC_BODY(send_and_cancel, tc) +{ + int fd[2], putfd; - /* - * Third test: put a temporary file into a UNIX domain socket, then - * close both endpoints causing garbage collection to kick off. - */ - test = "test3-sendandcancel"; - printf("beginning %s\n", test); - - domainsocketpair(test, fd); - tempfile(test, &putfd_1); - sendfd(test, fd[0], putfd_1); - close(putfd_1); + domainsocketpair(fd); + tempfile(&putfd); + sendfd(fd[0], putfd); + close(putfd); closesocketpair(fd); +} - printf("%s passed\n", test); +/* + * Send two files. Then receive them. Make sure they are returned in the + * right order, and both get there. + */ +ATF_TC_WITHOUT_HEAD(two_files); +ATF_TC_BODY(two_files, tc) +{ + struct stat getfd_1_stat, getfd_2_stat, putfd_1_stat, putfd_2_stat; + int fd[2], getfd_1, getfd_2, putfd_1, putfd_2; - /* - * Send two files. Then receive them. Make sure they are returned - * in the right order, and both get there. - */ - - test = "test4-twofile"; - printf("beginning %s\n", test); - - domainsocketpair(test, fd); - tempfile(test, &putfd_1); - tempfile(test, &putfd_2); - dofstat(test, putfd_1, &putfd_1_stat); - dofstat(test, putfd_2, &putfd_2_stat); - sendfd(test, fd[0], putfd_1); - sendfd(test, fd[0], putfd_2); + domainsocketpair(fd); + tempfile(&putfd_1); + tempfile(&putfd_2); + dofstat(putfd_1, &putfd_1_stat); + dofstat(putfd_2, &putfd_2_stat); + sendfd(fd[0], putfd_1); + sendfd(fd[0], putfd_2); close(putfd_1); close(putfd_2); - recvfd(test, fd[1], &getfd_1); - recvfd(test, fd[1], &getfd_2); - dofstat(test, getfd_1, &getfd_1_stat); - dofstat(test, getfd_2, &getfd_2_stat); - samefile(test, &putfd_1_stat, &getfd_1_stat); - samefile(test, &putfd_2_stat, &getfd_2_stat); + recvfd(fd[1], &getfd_1); + recvfd(fd[1], &getfd_2); + dofstat(getfd_1, &getfd_1_stat); + dofstat(getfd_2, &getfd_2_stat); + samefile(&putfd_1_stat, &getfd_1_stat); + samefile(&putfd_2_stat, &getfd_2_stat); close(getfd_1); close(getfd_2); closesocketpair(fd); +} - printf("%s passed\n", test); - - /* - * Big bundling test. Send an endpoint of the UNIX domain socket - * over itself, closing the door behind it. - */ - - test = "test5-bundle"; - printf("beginning %s\n", test); +/* + * Big bundling test. Send an endpoint of the UNIX domain socket over itself, + * closing the door behind it. + */ +ATF_TC_WITHOUT_HEAD(bundle); +ATF_TC_BODY(bundle, tc) +{ + int fd[2], getfd; - domainsocketpair(test, fd); + domainsocketpair(fd); - sendfd(test, fd[0], fd[0]); + sendfd(fd[0], fd[0]); close(fd[0]); - recvfd(test, fd[1], &getfd_1); - close(getfd_1); + recvfd(fd[1], &getfd); + close(getfd); close(fd[1]); +} - printf("%s passed\n", test); +/* + * Big bundling test part two: Send an endpoint of the UNIX domain socket over + * itself, close the door behind it, and never remove it from the other end. + */ +ATF_TC_WITHOUT_HEAD(bundle_cancel); +ATF_TC_BODY(bundle_cancel, tc) +{ + int fd[2]; - /* - * Big bundling test part two: Send an endpoint of the UNIX domain - * socket over itself, close the door behind it, and never remove it - * from the other end. - */ - - test = "test6-bundlecancel"; - printf("beginning %s\n", test); - - domainsocketpair(test, fd); - sendfd(test, fd[0], fd[0]); - sendfd(test, fd[1], fd[0]); + domainsocketpair(fd); + sendfd(fd[0], fd[0]); + sendfd(fd[1], fd[0]); closesocketpair(fd); +} - printf("%s passed\n", test); +/* + * Test for PR 151758: Send an character device over the UNIX domain socket + * and then close both sockets to orphan the device. + */ +ATF_TC_WITHOUT_HEAD(devfs_orphan); +ATF_TC_BODY(devfs_orphan, tc) +{ + int fd[2], putfd; - /* - * Test for PR 151758: Send an character device over the UNIX - * domain socket and then close both sockets to orphan the - * device. - */ - - test = "test7-devfsorphan"; - printf("beginning %s\n", test); - - domainsocketpair(test, fd); - devnull(test, &putfd_1); - sendfd(test, fd[0], putfd_1); - close(putfd_1); + domainsocketpair(fd); + devnull(&putfd); + sendfd(fd[0], putfd); + close(putfd); closesocketpair(fd); +} - printf("%s passed\n", test); +#define LOCAL_SENDSPACE_SYSCTL "net.local.stream.sendspace" - /* - * Test for PR 181741. Receiver sets LOCAL_CREDS, and kernel - * prepends a control message to the data. Sender sends large - * payload. Payload + SCM_RIGHTS + LOCAL_CREDS hit socket buffer - * limit, and receiver receives truncated data. - */ - test = "test8-rights+creds+payload"; - printf("beginning %s\n", test); - - { - const int on = 1; - u_long sendspace; - size_t len; - void *buf; - - len = sizeof(sendspace); - if (sysctlbyname("net.local.stream.sendspace", &sendspace, - &len, NULL, 0) < 0) - err(-1, "%s: sysctlbyname(net.local.stream.sendspace)", - test); - - if ((buf = calloc(1, sendspace)) == NULL) - err(-1, "%s: calloc", test); - - domainsocketpair(test, fd); - if (setsockopt(fd[1], 0, LOCAL_CREDS, &on, sizeof(on)) < 0) - err(-1, "%s: setsockopt(LOCAL_CREDS)", test); - tempfile(test, &putfd_1); - sendfd_payload(test, fd[0], putfd_1, buf, sendspace); - recvfd_payload(test, fd[1], &getfd_1, buf, sendspace); - close(putfd_1); - close(getfd_1); - closesocketpair(fd); - } +/* + * Test for PR 181741. Receiver sets LOCAL_CREDS, and kernel prepends a + * control message to the data. Sender sends large payload. + * Payload + SCM_RIGHTS + LOCAL_CREDS hit socket buffer limit, and receiver + * receives truncated data. + */ +ATF_TC_WITHOUT_HEAD(rights_creds_payload); +ATF_TC_BODY(rights_creds_payload, tc) +{ + const int on = 1; + u_long sendspace; + size_t len; + void *buf; + int fd[2], getfd, putfd, rc; + + atf_tc_expect_fail("PR 181741: Packet loss when 'control' messages " + "are present with large data"); + + len = sizeof(sendspace); + rc = sysctlbyname(LOCAL_SENDSPACE_SYSCTL, &sendspace, + &len, NULL, 0); + ATF_REQUIRE_MSG(rc != -1, + "sysctl %s failed: %s", LOCAL_SENDSPACE_SYSCTL, strerror(errno)); + + buf = calloc(1, sendspace); + ATF_REQUIRE(buf != NULL); + + domainsocketpair(fd); + rc = setsockopt(fd[1], 0, LOCAL_CREDS, &on, sizeof(on)); + ATF_REQUIRE_MSG(rc != -1, "setsockopt(LOCAL_CREDS) failed: %s", + strerror(errno)); + tempfile(&putfd); + sendfd_payload(fd[0], putfd, buf, sendspace); + recvfd_payload(fd[1], &getfd, buf, sendspace); + close(putfd); + close(getfd); + closesocketpair(fd); +} + +ATF_TP_ADD_TCS(tp) +{ - printf("%s passed\n", test); + ATF_TP_ADD_TC(tp, simple_send_fd); + ATF_TP_ADD_TC(tp, send_and_close); + ATF_TP_ADD_TC(tp, send_and_cancel); + ATF_TP_ADD_TC(tp, two_files); + ATF_TP_ADD_TC(tp, bundle); + ATF_TP_ADD_TC(tp, bundle_cancel); + ATF_TP_ADD_TC(tp, devfs_orphan); + ATF_TP_ADD_TC(tp, rights_creds_payload); - return (0); + return (atf_no_error()); } From owner-svn-src-all@freebsd.org Wed Dec 30 11:46:25 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EDB13A551D9; Wed, 30 Dec 2015 11:46:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8C3471776; Wed, 30 Dec 2015 11:46:23 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBkMV7047793; Wed, 30 Dec 2015 11:46:22 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBkJDV047764; Wed, 30 Dec 2015 11:46:19 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301146.tBUBkJDV047764@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:46:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292915 - in vendor/llvm/dist: . autoconf autoconf/m4 bindings/go/llvm bindings/ocaml bindings/ocaml/bitreader bindings/ocaml/linker bindings/ocaml/llvm bindings/python/llvm cmake cmake... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:46:25 -0000 Author: dim Date: Wed Dec 30 11:46:15 2015 New Revision: 292915 URL: https://svnweb.freebsd.org/changeset/base/292915 Log: Vendor import of llvm trunk r256633: https://llvm.org/svn/llvm-project/llvm/trunk@256633 Added: vendor/llvm/dist/cmake/dummy.cpp (contents, props changed) vendor/llvm/dist/cmake/modules/DetermineGCCCompatible.cmake vendor/llvm/dist/cmake/modules/LLVMExternalProjectUtils.cmake vendor/llvm/dist/cmake/modules/LLVMInstallSymlink.cmake vendor/llvm/dist/docs/CommandGuide/llvm-lib.rst vendor/llvm/dist/docs/CompileCudaWithLLVM.rst vendor/llvm/dist/docs/MIRLangRef.rst vendor/llvm/dist/docs/_ocamldoc/ vendor/llvm/dist/docs/_ocamldoc/style.css (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/include/ vendor/llvm/dist/examples/Kaleidoscope/include/KaleidoscopeJIT.h (contents, props changed) vendor/llvm/dist/include/llvm-c/ErrorHandling.h (contents, props changed) vendor/llvm/dist/include/llvm-c/OrcBindings.h (contents, props changed) vendor/llvm/dist/include/llvm-c/Types.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/BasicAliasAnalysis.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/CFLAliasAnalysis.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/DemandedBits.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/DivergenceAnalysis.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/EHPersonalities.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/GlobalsModRef.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/ObjCARCAliasAnalysis.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/ObjCARCAnalysisUtils.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/ObjCARCInstKind.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/OrderedBasicBlock.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/ScopedNoAliasAA.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/TypeBasedAliasAnalysis.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/AtomicExpandUtils.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/ParallelCG.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeView.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewOStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/FieldListRecordBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/FunctionId.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/Line.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ListRecordBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/MemoryTypeTableBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/MethodListRecordBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeIndex.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecord.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecordBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/ vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/DIPrinter.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/Symbolize.h (contents, props changed) vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h (contents, props changed) vendor/llvm/dist/include/llvm/IR/Attributes.td vendor/llvm/dist/include/llvm/IR/FunctionInfo.h (contents, props changed) vendor/llvm/dist/include/llvm/Linker/IRMover.h (contents, props changed) vendor/llvm/dist/include/llvm/MC/MCFragment.h (contents, props changed) vendor/llvm/dist/include/llvm/Object/COFFImportFile.h (contents, props changed) vendor/llvm/dist/include/llvm/Object/FunctionIndexObjectFile.h (contents, props changed) vendor/llvm/dist/include/llvm/ProfileData/InstrProfData.inc (contents, props changed) vendor/llvm/dist/include/llvm/Support/ARMTargetParser.def vendor/llvm/dist/include/llvm/Support/ELFRelocs/AVR.def vendor/llvm/dist/include/llvm/Support/JamCRC.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/Printable.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/ThreadPool.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/TrailingObjects.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/thread.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/ForceFunctionAttrs.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/FunctionImport.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/InferFunctionAttrs.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/StripDeadPrototypes.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/ADCE.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/SROA.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/SplitModule.h (contents, props changed) vendor/llvm/dist/lib/Analysis/CallGraph.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/CallGraphSCCPass.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/CallPrinter.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/DemandedBits.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/EHPersonalities.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/GlobalsModRef.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/InlineCost.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/ObjCARCAliasAnalysis.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/ObjCARCAnalysisUtils.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/ObjCARCInstKind.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/OrderedBasicBlock.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/FuncletLayout.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/LiveDebugValues.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/ParallelCG.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/ vendor/llvm/dist/lib/DebugInfo/CodeView/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/FieldListRecordBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/Line.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/ListRecordBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/Makefile (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/MemoryTypeTableBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/MethodListRecordBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/TypeRecordBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/TypeTableBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/Symbolize/ vendor/llvm/dist/lib/DebugInfo/Symbolize/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/DebugInfo/Symbolize/DIPrinter.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/Symbolize/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/DebugInfo/Symbolize/Makefile (contents, props changed) vendor/llvm/dist/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h (contents, props changed) vendor/llvm/dist/lib/DebugInfo/Symbolize/Symbolize.cpp (contents, props changed) vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcCBindings.cpp (contents, props changed) vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcCBindingsStack.cpp (contents, props changed) vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcCBindingsStack.h (contents, props changed) vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h (contents, props changed) vendor/llvm/dist/lib/Fuzzer/FuzzerDFSan.h (contents, props changed) vendor/llvm/dist/lib/Fuzzer/cxx.dict vendor/llvm/dist/lib/Fuzzer/test/CallerCalleeTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/MemcmpTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/SimpleCmpTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/SimpleDictionaryTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/SimpleHashTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/StrcmpTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/StrncmpTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/SwitchTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/UninstrumentedTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/dict1.txt (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/fuzzer-dfsan.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-drill.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-timeout.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-traces.test vendor/llvm/dist/lib/Fuzzer/test/hi.txt (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/merge.test vendor/llvm/dist/lib/Fuzzer/test/trace-bb/ vendor/llvm/dist/lib/Fuzzer/test/trace-bb/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/uninstrumented/ vendor/llvm/dist/lib/Fuzzer/test/uninstrumented/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/IR/AttributesCompatFunc.td vendor/llvm/dist/lib/IR/FunctionInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Linker/IRMover.cpp (contents, props changed) vendor/llvm/dist/lib/Linker/LinkDiagnosticInfo.h (contents, props changed) vendor/llvm/dist/lib/MC/MCFragment.cpp (contents, props changed) vendor/llvm/dist/lib/Object/FunctionIndexObjectFile.cpp (contents, props changed) vendor/llvm/dist/lib/Support/JamCRC.cpp (contents, props changed) vendor/llvm/dist/lib/Support/ThreadPool.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUOpenCLImageTypeLoweringPass.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/ vendor/llvm/dist/lib/Target/AVR/AVR.td vendor/llvm/dist/lib/Target/AVR/AVRCallingConv.td vendor/llvm/dist/lib/Target/AVR/AVRConfig.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/AVRMachineFunctionInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/AVRRegisterInfo.td vendor/llvm/dist/lib/Target/AVR/AVRTargetMachine.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AVR/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Target/AVR/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/Target/AVR/Makefile (contents, props changed) vendor/llvm/dist/lib/Target/AVR/TargetInfo/ vendor/llvm/dist/lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AVR/TargetInfo/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Target/AVR/TargetInfo/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/Target/AVR/TargetInfo/Makefile (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/AsmParser/ vendor/llvm/dist/lib/Target/Hexagon/AsmParser/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/AsmParser/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/AsmParser/Makefile (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonBitSimplify.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonEarlyIfConv.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonGenMux.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrAlias.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrEnc.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormatsV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIntrinsicsV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV55.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonSplitDouble.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonStoreWidening.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetTransformInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonVLIWPacketizer.h (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.h (contents, props changed) vendor/llvm/dist/lib/Target/Mips/MicroMips64r6InstrFormats.td vendor/llvm/dist/lib/Target/Mips/MicroMips64r6InstrInfo.td vendor/llvm/dist/lib/Target/Mips/MicroMipsDSPInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MicroMipsDSPInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsEVAInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MipsEVAInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsScheduleP5600.td vendor/llvm/dist/lib/Target/PowerPC/PPCBoolRetToInt.cpp (contents, props changed) vendor/llvm/dist/lib/Target/PowerPC/PPCMIPeephole.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyELFObjectWriter.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/Relooper.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/Relooper.h (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFastISel.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISD.def vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrControl.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMCInstLower.h (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyPEI.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyPeephole.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyStoreResults.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/known_gcc_test_failures.txt (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86OptimizeLEAs.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/IPO/CrossDSOCFI.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/IPO/ForceFunctionAttrs.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/IPO/FunctionImport.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/IPO/InferFunctionAttrs.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/IPO/SampleProfile.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Instrumentation/CFGMST.h (contents, props changed) vendor/llvm/dist/lib/Transforms/Instrumentation/PGOInstrumentation.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Scalar/LoopLoadElimination.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Utils/SplitModule.cpp (contents, props changed) vendor/llvm/dist/test/Analysis/BasicAA/bug.23540.ll vendor/llvm/dist/test/Analysis/BasicAA/bug.23626.ll vendor/llvm/dist/test/Analysis/BasicAA/phi-loop.ll vendor/llvm/dist/test/Analysis/BasicAA/q.bad.ll vendor/llvm/dist/test/Analysis/BasicAA/sequential-gep.ll vendor/llvm/dist/test/Analysis/BasicAA/zext.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/irreducible_loop_crash.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/opaque-call-alias.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/ vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/br.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/extractelement.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/lit.local.cfg vendor/llvm/dist/test/Analysis/CostModel/PowerPC/unal-vec-ldst.ll vendor/llvm/dist/test/Analysis/CostModel/X86/sse-itoi.ll vendor/llvm/dist/test/Analysis/CostModel/X86/vector_gep.ll vendor/llvm/dist/test/Analysis/CostModel/X86/vshift-ashr-cost.ll vendor/llvm/dist/test/Analysis/CostModel/X86/vshift-lshr-cost.ll vendor/llvm/dist/test/Analysis/CostModel/X86/vshift-shl-cost.ll vendor/llvm/dist/test/Analysis/Delinearization/parameter_addrec_product.ll vendor/llvm/dist/test/Analysis/DemandedBits/ vendor/llvm/dist/test/Analysis/DemandedBits/basic.ll vendor/llvm/dist/test/Analysis/DependenceAnalysis/NonAffineExpr.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/ vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/kernel-args.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/lit.local.cfg vendor/llvm/dist/test/Analysis/GlobalsModRef/argmemonly-escape.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/atomic-instrs.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/memset-escape.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/nocapture.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/nonescaping-noalias.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/pr25309.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/weak-interposition.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/forward-loop-carried.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/forward-loop-independent.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/nullptr.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/reverse-memcheck-bounds.ll vendor/llvm/dist/test/Analysis/MemoryDependenceAnalysis/memdep-block-scan-limit.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/avoid-assume-hang.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/constant_condition.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/flags-from-poison.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/no-wrap-add-exprs.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/non-IV-phi.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/pr24757.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/pr25369.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/shift-op.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/smax-br-phi-idioms.ll vendor/llvm/dist/test/Analysis/ValueTracking/known-bits-from-range-md.ll vendor/llvm/dist/test/Analysis/ValueTracking/known-non-equal.ll vendor/llvm/dist/test/Analysis/ValueTracking/knownnonzero-shift.ll vendor/llvm/dist/test/Analysis/ValueTracking/knownzero-shift.ll vendor/llvm/dist/test/Analysis/ValueTracking/monotonic-phi.ll vendor/llvm/dist/test/Analysis/ValueTracking/pr24866.ll vendor/llvm/dist/test/Assembler/incorrect-tdep-attrs-parsing.ll vendor/llvm/dist/test/Assembler/invalid-alias-mismatched-explicit-type.ll vendor/llvm/dist/test/Assembler/invalid-dicompileunit-uniqued.ll vendor/llvm/dist/test/Assembler/invalid-disubprogram-uniqued-definition.ll vendor/llvm/dist/test/Assembler/invalid-fp80hex.ll vendor/llvm/dist/test/Assembler/invalid-inline-constraint.ll (contents, props changed) vendor/llvm/dist/test/Assembler/invalid-untyped-metadata.ll vendor/llvm/dist/test/Assembler/token.ll vendor/llvm/dist/test/Bitcode/DILocalVariable-explicit-tags.ll vendor/llvm/dist/test/Bitcode/DILocalVariable-explicit-tags.ll.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/DISubprogram-distinct-definitions.ll vendor/llvm/dist/test/Bitcode/DISubprogram-distinct-definitions.ll.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/Inputs/invalid-cast.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/Inputs/invalid-name-with-0-byte.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/Inputs/invalid-no-function-block.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/anon-functions.ll vendor/llvm/dist/test/Bitcode/compatibility-3.6.ll vendor/llvm/dist/test/Bitcode/compatibility-3.6.ll.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/compatibility-3.7.ll vendor/llvm/dist/test/Bitcode/compatibility-3.7.ll.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/compatibility.ll vendor/llvm/dist/test/Bitcode/identification.ll vendor/llvm/dist/test/Bitcode/operand-bundles.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary.ll vendor/llvm/dist/test/Bitcode/upgrade-subprogram.ll vendor/llvm/dist/test/Bitcode/upgrade-subprogram.ll.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/use-list-order2.ll vendor/llvm/dist/test/Bitcode/vst-forward-declaration.ll vendor/llvm/dist/test/BugPoint/named-md.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-addv.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-deferred-spilling.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-loop-gep-opt.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-minmaxv.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-smax-constantfold.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-builtins-linux.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-coalescing-MOVi32imm.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fmax-safe.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-ld-from-st.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-narrow-ldst-merge.ll vendor/llvm/dist/test/CodeGen/AArch64/bitreverse.ll vendor/llvm/dist/test/CodeGen/AArch64/cxx-tlscc.ll vendor/llvm/dist/test/CodeGen/AArch64/dag-combine-select.ll vendor/llvm/dist/test/CodeGen/AArch64/divrem.ll vendor/llvm/dist/test/CodeGen/AArch64/emutls.ll vendor/llvm/dist/test/CodeGen/AArch64/emutls_generic.ll vendor/llvm/dist/test/CodeGen/AArch64/eon.ll vendor/llvm/dist/test/CodeGen/AArch64/fast-isel-branch-cond-mask.ll vendor/llvm/dist/test/CodeGen/AArch64/fast-isel-cmp-vec.ll vendor/llvm/dist/test/CodeGen/AArch64/fast-isel-folded-shift.ll vendor/llvm/dist/test/CodeGen/AArch64/fcvt_combine.ll vendor/llvm/dist/test/CodeGen/AArch64/fdiv_combine.ll vendor/llvm/dist/test/CodeGen/AArch64/misched-fusion.ll vendor/llvm/dist/test/CodeGen/AArch64/nontemporal.ll vendor/llvm/dist/test/CodeGen/AArch64/readcyclecounter.ll vendor/llvm/dist/test/CodeGen/AArch64/rotate.ll vendor/llvm/dist/test/CodeGen/AArch64/round-conv.ll vendor/llvm/dist/test/CodeGen/AArch64/shrink-wrap.ll (contents, props changed) vendor/llvm/dist/test/CodeGen/AArch64/stackmap-frame-setup.ll vendor/llvm/dist/test/CodeGen/AArch64/tbi.ll vendor/llvm/dist/test/CodeGen/AArch64/vector-fcopysign.ll vendor/llvm/dist/test/CodeGen/AMDGPU/addrspacecast.ll vendor/llvm/dist/test/CodeGen/AMDGPU/annotate-kernel-features.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bitreverse.ll vendor/llvm/dist/test/CodeGen/AMDGPU/calling-conventions.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cgp-addressing-modes-flat.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ci-use-flat-for-global.ll vendor/llvm/dist/test/CodeGen/AMDGPU/drop-mem-operand-move-smrd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds-sub-offset.ll vendor/llvm/dist/test/CodeGen/AMDGPU/dynamic_stackalloc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract-vector-elt-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat-scratch-reg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmul-2-combine-multi-use.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-globals.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-group-segment.ll vendor/llvm/dist/test/CodeGen/AMDGPU/image-attributes.ll vendor/llvm/dist/test/CodeGen/AMDGPU/image-resource-id.ll vendor/llvm/dist/test/CodeGen/AMDGPU/inline-constraints.ll vendor/llvm/dist/test/CodeGen/AMDGPU/large-alloca-compute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/large-alloca-graphics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.read.workdim.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.packf16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.wbinvl1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.wbinvl1.sc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.wbinvl1.vol.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.ptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.interp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.mbcnt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.inv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.inv.vol.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.wb.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.wb.vol.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.read.local.size.ll vendor/llvm/dist/test/CodeGen/AMDGPU/move-addr64-rsrc-dead-subreg-writes.ll vendor/llvm/dist/test/CodeGen/AMDGPU/move-to-valu-atomicrmw.ll vendor/llvm/dist/test/CodeGen/AMDGPU/no-hsa-graphics-shaders.ll vendor/llvm/dist/test/CodeGen/AMDGPU/opencl-image-metadata.ll vendor/llvm/dist/test/CodeGen/AMDGPU/partially-dead-super-register-immediate.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sampler-resource-id.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-instr-info-correct-implicit-operands.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-literal-folding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sminmax.ll vendor/llvm/dist/test/CodeGen/AMDGPU/split-vector-memoperand-offsets.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store_typed.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot-compute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot.ll vendor/llvm/dist/test/CodeGen/ARM/MachO-subtypes.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/division.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/libcalls.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/no-eabi.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/no-frame-register.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/overflow.ll vendor/llvm/dist/test/CodeGen/ARM/align-sp-adjustment.ll vendor/llvm/dist/test/CodeGen/ARM/apcs-vfp.ll vendor/llvm/dist/test/CodeGen/ARM/arm-eabi.ll vendor/llvm/dist/test/CodeGen/ARM/arm-shrink-wrapping-linux.ll vendor/llvm/dist/test/CodeGen/ARM/arm-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/ARM/build-attributes-optimization-minsize.ll vendor/llvm/dist/test/CodeGen/ARM/build-attributes-optimization-mixed.ll vendor/llvm/dist/test/CodeGen/ARM/build-attributes-optimization-optnone.ll vendor/llvm/dist/test/CodeGen/ARM/build-attributes-optimization-optsize.ll vendor/llvm/dist/test/CodeGen/ARM/build-attributes-optimization.ll vendor/llvm/dist/test/CodeGen/ARM/cfi-alignment.ll vendor/llvm/dist/test/CodeGen/ARM/combine-vmovdrr.ll vendor/llvm/dist/test/CodeGen/ARM/debugtrap.ll vendor/llvm/dist/test/CodeGen/ARM/emutls.ll vendor/llvm/dist/test/CodeGen/ARM/emutls1.ll vendor/llvm/dist/test/CodeGen/ARM/emutls_generic.ll vendor/llvm/dist/test/CodeGen/ARM/fp16-args.ll vendor/llvm/dist/test/CodeGen/ARM/gep-optimization.ll vendor/llvm/dist/test/CodeGen/ARM/global-merge-external.ll vendor/llvm/dist/test/CodeGen/ARM/ldm-stm-base-materialization.ll vendor/llvm/dist/test/CodeGen/ARM/legalize-unaligned-load.ll vendor/llvm/dist/test/CodeGen/ARM/memcpy-ldm-stm.ll vendor/llvm/dist/test/CodeGen/ARM/minmax.ll vendor/llvm/dist/test/CodeGen/ARM/neon_vshl_minint.ll vendor/llvm/dist/test/CodeGen/ARM/pr25317.ll vendor/llvm/dist/test/CodeGen/ARM/pr25838.ll vendor/llvm/dist/test/CodeGen/ARM/rotate.ll vendor/llvm/dist/test/CodeGen/ARM/sat-arith.ll vendor/llvm/dist/test/CodeGen/ARM/setjmp_longjmp.ll vendor/llvm/dist/test/CodeGen/ARM/softfp-fabs-fneg.ll vendor/llvm/dist/test/CodeGen/ARM/ssat-lower.ll vendor/llvm/dist/test/CodeGen/ARM/ssat-upper.ll vendor/llvm/dist/test/CodeGen/ARM/subtarget-no-movt.ll vendor/llvm/dist/test/CodeGen/ARM/thumb1-ldst-opt.ll vendor/llvm/dist/test/CodeGen/ARM/unaligned_load_store_vfp.ll vendor/llvm/dist/test/CodeGen/ARM/usat-lower.ll vendor/llvm/dist/test/CodeGen/ARM/usat-upper.ll vendor/llvm/dist/test/CodeGen/ARM/v7k-abi-align.ll vendor/llvm/dist/test/CodeGen/ARM/v7k-libcalls.ll vendor/llvm/dist/test/CodeGen/ARM/v7k-sincos.ll vendor/llvm/dist/test/CodeGen/ARM/vfp-reg-stride.ll vendor/llvm/dist/test/CodeGen/ARM/vld-vst-upgrade.ll vendor/llvm/dist/test/CodeGen/ARM/vminmaxnm-safe.ll vendor/llvm/dist/test/CodeGen/CPP/gep.ll vendor/llvm/dist/test/CodeGen/Generic/ForceStackAlign.ll vendor/llvm/dist/test/CodeGen/Generic/lit.local.cfg vendor/llvm/dist/test/CodeGen/Hexagon/NVJumpCmp.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-eval.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-loop.ll vendor/llvm/dist/test/CodeGen/Hexagon/cfi-late.ll vendor/llvm/dist/test/CodeGen/Hexagon/early-if-conversion-bug1.ll vendor/llvm/dist/test/CodeGen/Hexagon/early-if-phi-i1.ll vendor/llvm/dist/test/CodeGen/Hexagon/early-if-spare.ll vendor/llvm/dist/test/CodeGen/Hexagon/early-if.ll vendor/llvm/dist/test/CodeGen/Hexagon/ifcvt-edge-weight.ll vendor/llvm/dist/test/CodeGen/Hexagon/memcpy-likely-aligned.ll vendor/llvm/dist/test/CodeGen/Hexagon/mux-basic.ll vendor/llvm/dist/test/CodeGen/Hexagon/pic-jumptables.ll vendor/llvm/dist/test/CodeGen/Hexagon/pic-simple.ll vendor/llvm/dist/test/CodeGen/Hexagon/pic-static.ll vendor/llvm/dist/test/CodeGen/Hexagon/sdr-basic.ll vendor/llvm/dist/test/CodeGen/Hexagon/sdr-shr32.ll vendor/llvm/dist/test/CodeGen/Hexagon/store-widen-aliased-load.ll vendor/llvm/dist/test/CodeGen/Hexagon/store-widen-negv.ll vendor/llvm/dist/test/CodeGen/Hexagon/store-widen-negv2.ll vendor/llvm/dist/test/CodeGen/Hexagon/store-widen.ll vendor/llvm/dist/test/CodeGen/Hexagon/tail-dup-subreg-abort.ll vendor/llvm/dist/test/CodeGen/Hexagon/v60Intrins.ll vendor/llvm/dist/test/CodeGen/Hexagon/v60Vasr.ll vendor/llvm/dist/test/CodeGen/Hexagon/v60small.ll vendor/llvm/dist/test/CodeGen/MIR/AArch64/ vendor/llvm/dist/test/CodeGen/MIR/AArch64/cfi-def-cfa.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/expected-target-flag-name.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/invalid-target-flag-name.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/lit.local.cfg vendor/llvm/dist/test/CodeGen/MIR/AArch64/multiple-lhs-operands.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/stack-object-local-offset.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/target-flags.mir vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/ vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/expected-target-index-name.mir vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/invalid-target-index-operand.mir vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/lit.local.cfg vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/target-index-operands.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/ vendor/llvm/dist/test/CodeGen/MIR/ARM/ARMLoadStoreDBG.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/bundled-instructions.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/cfi-same-value.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/expected-closing-brace.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/extraneous-closing-brace-error.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/lit.local.cfg vendor/llvm/dist/test/CodeGen/MIR/ARM/nested-instruction-bundle-error.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/sched-it-debug-nodes.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/ vendor/llvm/dist/test/CodeGen/MIR/Generic/basic-blocks.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/expected-colon-after-basic-block.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/expected-mbb-reference-for-successor-mbb.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/frame-info.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/function-missing-machine-function.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/invalid-jump-table-kind.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/lit.local.cfg vendor/llvm/dist/test/CodeGen/MIR/Generic/llvm-ir-error-reported.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/llvmIR.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/llvmIRMissing.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-basic-block-ir-block-reference.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-basic-block-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-basic-block-undefined-ir-block.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-basic-block-unknown-name.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function-missing-body-error.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function-missing-function.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function-missing-name.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/register-info.mir vendor/llvm/dist/test/CodeGen/MIR/Mips/ vendor/llvm/dist/test/CodeGen/MIR/Mips/expected-global-value-or-symbol-after-call-entry.mir vendor/llvm/dist/test/CodeGen/MIR/Mips/lit.local.cfg vendor/llvm/dist/test/CodeGen/MIR/Mips/memory-operands.mir vendor/llvm/dist/test/CodeGen/MIR/NVPTX/ vendor/llvm/dist/test/CodeGen/MIR/NVPTX/expected-floating-point-literal.mir vendor/llvm/dist/test/CodeGen/MIR/NVPTX/floating-point-immediate-operands.mir vendor/llvm/dist/test/CodeGen/MIR/NVPTX/floating-point-invalid-type-error.mir vendor/llvm/dist/test/CodeGen/MIR/NVPTX/lit.local.cfg vendor/llvm/dist/test/CodeGen/MIR/PowerPC/ vendor/llvm/dist/test/CodeGen/MIR/PowerPC/lit.local.cfg vendor/llvm/dist/test/CodeGen/MIR/PowerPC/unordered-implicit-registers.mir vendor/llvm/dist/test/CodeGen/MIR/X86/basic-block-not-at-start-of-line-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/block-address-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/callee-saved-info.mir vendor/llvm/dist/test/CodeGen/MIR/X86/cfi-def-cfa-offset.mir vendor/llvm/dist/test/CodeGen/MIR/X86/cfi-def-cfa-register.mir vendor/llvm/dist/test/CodeGen/MIR/X86/cfi-offset.mir vendor/llvm/dist/test/CodeGen/MIR/X86/constant-pool-item-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/constant-pool.mir vendor/llvm/dist/test/CodeGen/MIR/X86/constant-value-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/def-register-already-tied-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/duplicate-memory-operand-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/duplicate-register-flag-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/early-clobber-register-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-align-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-alignment-after-align-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-basic-block-at-start-of-body.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-block-reference-in-blockaddress.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-comma-after-cfi-register.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-comma-after-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-from-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-function-reference-after-blockaddress.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-global-value-after-blockaddress.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-integer-after-offset-sign.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-integer-after-tied-def.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-integer-in-successor-weight.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-load-or-store-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-metadata-node-after-debug-location.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-metadata-node-after-exclaim.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-metadata-node-in-stack-object.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-named-register-in-allocation-hint.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-named-register-in-callee-saved-register.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-named-register-in-functions-livein.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-newline-at-end-of-list.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-offset-after-cfi-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-pointer-value-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-positive-alignment-after-align.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-register-after-cfi-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-size-integer-after-memory-operation.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-stack-object.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-target-flag-name.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-tied-def-after-lparen.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-value-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-virtual-register-in-functions-livein.mir vendor/llvm/dist/test/CodeGen/MIR/X86/external-symbol-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/fixed-stack-memory-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/fixed-stack-object-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/frame-info-save-restore-points.mir vendor/llvm/dist/test/CodeGen/MIR/X86/frame-info-stack-references.mir vendor/llvm/dist/test/CodeGen/MIR/X86/frame-setup-instruction-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/function-liveins.mir vendor/llvm/dist/test/CodeGen/MIR/X86/inline-asm-registers.mir vendor/llvm/dist/test/CodeGen/MIR/X86/instructions-debug-location.mir vendor/llvm/dist/test/CodeGen/MIR/X86/invalid-constant-pool-item.mir vendor/llvm/dist/test/CodeGen/MIR/X86/invalid-metadata-node-type.mir vendor/llvm/dist/test/CodeGen/MIR/X86/invalid-target-flag-name.mir vendor/llvm/dist/test/CodeGen/MIR/X86/invalid-tied-def-index-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/jump-table-info.mir vendor/llvm/dist/test/CodeGen/MIR/X86/jump-table-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/large-cfi-offset-number-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/large-immediate-operand-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/large-offset-number-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/large-size-in-memory-operand-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/liveout-register-mask.mir vendor/llvm/dist/test/CodeGen/MIR/X86/machine-verifier.mir vendor/llvm/dist/test/CodeGen/MIR/X86/memory-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/metadata-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/missing-closing-quote.mir vendor/llvm/dist/test/CodeGen/MIR/X86/newline-handling.mir vendor/llvm/dist/test/CodeGen/MIR/X86/register-operands-target-flag-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/simple-register-allocation-hints.mir vendor/llvm/dist/test/CodeGen/MIR/X86/stack-object-debug-info.mir vendor/llvm/dist/test/CodeGen/MIR/X86/stack-object-invalid-name.mir vendor/llvm/dist/test/CodeGen/MIR/X86/stack-object-operand-name-mismatch-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/stack-object-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/stack-object-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/standalone-register-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/successor-basic-blocks-weights.mir vendor/llvm/dist/test/CodeGen/MIR/X86/successor-basic-blocks.mir vendor/llvm/dist/test/CodeGen/MIR/X86/tied-def-operand-invalid.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-fixed-stack-object.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-ir-block-in-blockaddress.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-ir-block-slot-in-blockaddress.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-jump-table-id.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-stack-object.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-value-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-metadata-keyword.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-metadata-node.mir vendor/llvm/dist/test/CodeGen/MIR/X86/used-physical-register-info.mir vendor/llvm/dist/test/CodeGen/MIR/X86/virtual-register-redefinition-error.mir vendor/llvm/dist/test/CodeGen/Mips/Fast-ISel/check-disabled-mcpus.ll vendor/llvm/dist/test/CodeGen/Mips/emutls_generic.ll vendor/llvm/dist/test/CodeGen/Mips/interrupt-attr-64-error.ll vendor/llvm/dist/test/CodeGen/Mips/interrupt-attr-args-error.ll vendor/llvm/dist/test/CodeGen/Mips/interrupt-attr-error.ll vendor/llvm/dist/test/CodeGen/Mips/interrupt-attr.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/atomicrmx.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/load-atomic.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/sqrt.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/store-atomic.ll vendor/llvm/dist/test/CodeGen/NVPTX/branch-fold.ll vendor/llvm/dist/test/CodeGen/NVPTX/bypass-div.ll vendor/llvm/dist/test/CodeGen/NVPTX/combine-min-max.ll vendor/llvm/dist/test/CodeGen/NVPTX/global-addrspace.ll vendor/llvm/dist/test/CodeGen/NVPTX/load-with-non-coherent-cache.ll vendor/llvm/dist/test/CodeGen/NVPTX/reg-copy.ll vendor/llvm/dist/test/CodeGen/PowerPC/BoolRetToIntTest.ll vendor/llvm/dist/test/CodeGen/PowerPC/BreakableToken-reduced.ll vendor/llvm/dist/test/CodeGen/PowerPC/aantidep-def-ec.mir vendor/llvm/dist/test/CodeGen/PowerPC/aantidep-inline-asm-use.ll vendor/llvm/dist/test/CodeGen/PowerPC/addisdtprelha-nonr3.mir vendor/llvm/dist/test/CodeGen/PowerPC/bitcasts-direct-move.ll vendor/llvm/dist/test/CodeGen/PowerPC/bitreverse.ll vendor/llvm/dist/test/CodeGen/PowerPC/branch-hint.ll vendor/llvm/dist/test/CodeGen/PowerPC/coal-sections.ll vendor/llvm/dist/test/CodeGen/PowerPC/crbit-asm-disabled.ll vendor/llvm/dist/test/CodeGen/PowerPC/dyn-alloca-offset.ll vendor/llvm/dist/test/CodeGen/PowerPC/e500-1.ll vendor/llvm/dist/test/CodeGen/PowerPC/emutls_generic.ll vendor/llvm/dist/test/CodeGen/PowerPC/fma-mutate-register-constraint.ll vendor/llvm/dist/test/CodeGen/PowerPC/fp128-bitcast-after-operation.ll vendor/llvm/dist/test/CodeGen/PowerPC/machine-combiner.ll vendor/llvm/dist/test/CodeGen/PowerPC/mc-instrlat.ll vendor/llvm/dist/test/CodeGen/PowerPC/mcm-13.ll vendor/llvm/dist/test/CodeGen/PowerPC/merge-st-chain-op.ll vendor/llvm/dist/test/CodeGen/PowerPC/p8-scalar_vector_conversions.ll vendor/llvm/dist/test/CodeGen/PowerPC/peephole-align.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppcsoftops.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr24636.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr25157-peephole.ll vendor/llvm/dist/test/CodeGen/PowerPC/preincprep-nontrans-crash.ll vendor/llvm/dist/test/CodeGen/PowerPC/qpx-unal-cons-lds.ll vendor/llvm/dist/test/CodeGen/PowerPC/rotl-rotr-crash.ll vendor/llvm/dist/test/CodeGen/PowerPC/selectiondag-extload-computeknownbits.ll vendor/llvm/dist/test/CodeGen/PowerPC/stackmap-frame-setup.ll vendor/llvm/dist/test/CodeGen/PowerPC/swaps-le-6.ll vendor/llvm/dist/test/CodeGen/PowerPC/unal-vec-ldst.ll vendor/llvm/dist/test/CodeGen/PowerPC/unal-vec-negarith.ll vendor/llvm/dist/test/CodeGen/PowerPC/variable_elem_vec_extracts.ll vendor/llvm/dist/test/CodeGen/PowerPC/vec-asm-disabled.ll vendor/llvm/dist/test/CodeGen/PowerPC/vector-merge-store-fp-constants.ll vendor/llvm/dist/test/CodeGen/SPARC/32abi.ll vendor/llvm/dist/test/CodeGen/SPARC/float-constants.ll vendor/llvm/dist/test/CodeGen/SPARC/missing-sret.ll vendor/llvm/dist/test/CodeGen/SPARC/reserved-regs.ll vendor/llvm/dist/test/CodeGen/SPARC/select-mask.ll vendor/llvm/dist/test/CodeGen/SPARC/spill.ll vendor/llvm/dist/test/CodeGen/SPARC/stack-align.ll vendor/llvm/dist/test/CodeGen/SystemZ/alloca-03.ll vendor/llvm/dist/test/CodeGen/SystemZ/alloca-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/dag-combine-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-cmp-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-libcall.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-sincos-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-51.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-52.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-perm-12.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-perm-13.ll vendor/llvm/dist/test/CodeGen/Thumb/ldm-stm-base-materialization-thumb2.ll vendor/llvm/dist/test/CodeGen/Thumb/thumb-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/Thumb2/emit-unwinding.ll vendor/llvm/dist/test/CodeGen/Thumb2/setjmp_longjmp.ll vendor/llvm/dist/test/CodeGen/WebAssembly/call.ll vendor/llvm/dist/test/CodeGen/WebAssembly/cfg-stackify.ll vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_f32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_f64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_i32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_i64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/conv.ll vendor/llvm/dist/test/CodeGen/WebAssembly/copysign-casts.ll vendor/llvm/dist/test/CodeGen/WebAssembly/cpus.ll vendor/llvm/dist/test/CodeGen/WebAssembly/dead-vreg.ll vendor/llvm/dist/test/CodeGen/WebAssembly/f32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/f64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/fast-isel.ll vendor/llvm/dist/test/CodeGen/WebAssembly/frem.ll vendor/llvm/dist/test/CodeGen/WebAssembly/func.ll vendor/llvm/dist/test/CodeGen/WebAssembly/global.ll vendor/llvm/dist/test/CodeGen/WebAssembly/globl.ll vendor/llvm/dist/test/CodeGen/WebAssembly/i32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/i64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/ident.ll vendor/llvm/dist/test/CodeGen/WebAssembly/immediates.ll vendor/llvm/dist/test/CodeGen/WebAssembly/inline-asm.ll vendor/llvm/dist/test/CodeGen/WebAssembly/legalize.ll vendor/llvm/dist/test/CodeGen/WebAssembly/load-ext.ll vendor/llvm/dist/test/CodeGen/WebAssembly/load-store-i1.ll vendor/llvm/dist/test/CodeGen/WebAssembly/load.ll vendor/llvm/dist/test/CodeGen/WebAssembly/loop-idiom.ll vendor/llvm/dist/test/CodeGen/WebAssembly/memory-addr32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/memory-addr64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/offset-folding.ll vendor/llvm/dist/test/CodeGen/WebAssembly/offset.ll vendor/llvm/dist/test/CodeGen/WebAssembly/phi.ll vendor/llvm/dist/test/CodeGen/WebAssembly/reg-stackify.ll vendor/llvm/dist/test/CodeGen/WebAssembly/return-int32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/return-void.ll vendor/llvm/dist/test/CodeGen/WebAssembly/returned.ll vendor/llvm/dist/test/CodeGen/WebAssembly/select.ll vendor/llvm/dist/test/CodeGen/WebAssembly/signext-zeroext.ll vendor/llvm/dist/test/CodeGen/WebAssembly/store-results.ll vendor/llvm/dist/test/CodeGen/WebAssembly/store-trunc.ll vendor/llvm/dist/test/CodeGen/WebAssembly/store.ll vendor/llvm/dist/test/CodeGen/WebAssembly/switch.ll vendor/llvm/dist/test/CodeGen/WebAssembly/unreachable.ll vendor/llvm/dist/test/CodeGen/WebAssembly/unused-argument.ll vendor/llvm/dist/test/CodeGen/WebAssembly/userstack.ll vendor/llvm/dist/test/CodeGen/WebAssembly/varargs.ll vendor/llvm/dist/test/CodeGen/WebAssembly/vtable.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-cloning.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-demotion.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-intrinsics-invalid.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-intrinsics.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-no-demotion.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-statenumbering-cleanups.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-statenumbering.ll vendor/llvm/dist/test/CodeGen/X86/add-nsw-sext.ll vendor/llvm/dist/test/CodeGen/X86/and-encoding.ll vendor/llvm/dist/test/CodeGen/X86/atomic-flags.ll vendor/llvm/dist/test/CodeGen/X86/atomic-non-integer.ll vendor/llvm/dist/test/CodeGen/X86/avg.ll vendor/llvm/dist/test/CodeGen/X86/avx-isa-check.ll vendor/llvm/dist/test/CodeGen/X86/avx512-bugfix-25270.ll vendor/llvm/dist/test/CodeGen/X86/avx512-ext.ll vendor/llvm/dist/test/CodeGen/X86/avx512-extract-subvector.ll vendor/llvm/dist/test/CodeGen/X86/avx512-skx-insert-subvec.ll vendor/llvm/dist/test/CodeGen/X86/avx512-trunc.ll vendor/llvm/dist/test/CodeGen/X86/avx512cd-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512cdvl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512dq-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/bit-piece-comment.ll vendor/llvm/dist/test/CodeGen/X86/bitreverse.ll vendor/llvm/dist/test/CodeGen/X86/branchfolding-catchpads.ll vendor/llvm/dist/test/CodeGen/X86/catchpad-realign-savexmm.ll vendor/llvm/dist/test/CodeGen/X86/catchpad-regmask.ll vendor/llvm/dist/test/CodeGen/X86/catchpad-weight.ll vendor/llvm/dist/test/CodeGen/X86/catchret-empty-fallthrough.ll vendor/llvm/dist/test/CodeGen/X86/catchret-fallthrough.ll vendor/llvm/dist/test/CodeGen/X86/cleanuppad-inalloca.ll vendor/llvm/dist/test/CodeGen/X86/cleanuppad-large-codemodel.ll vendor/llvm/dist/test/CodeGen/X86/cleanuppad-realign.ll vendor/llvm/dist/test/CodeGen/X86/coal-sections.ll vendor/llvm/dist/test/CodeGen/X86/coalescer-win64.ll vendor/llvm/dist/test/CodeGen/X86/code_placement_cold_loop_blocks.ll vendor/llvm/dist/test/CodeGen/X86/code_placement_ignore_succ_in_inner_loop.ll vendor/llvm/dist/test/CodeGen/X86/code_placement_loop_rotation.ll vendor/llvm/dist/test/CodeGen/X86/code_placement_loop_rotation2.ll vendor/llvm/dist/test/CodeGen/X86/combine-multiplies.ll vendor/llvm/dist/test/CodeGen/X86/constant-hoisting-and.ll vendor/llvm/dist/test/CodeGen/X86/constant-hoisting-cmp.ll vendor/llvm/dist/test/CodeGen/X86/cxx_tlscc64.ll vendor/llvm/dist/test/CodeGen/X86/dag-fmf-cse.ll vendor/llvm/dist/test/CodeGen/X86/dag-merge-fast-accesses.ll vendor/llvm/dist/test/CodeGen/X86/darwin-tls.ll vendor/llvm/dist/test/CodeGen/X86/debugloc-argsize.ll vendor/llvm/dist/test/CodeGen/X86/eh-null-personality.ll vendor/llvm/dist/test/CodeGen/X86/emutls-pic.ll vendor/llvm/dist/test/CodeGen/X86/emutls-pie.ll vendor/llvm/dist/test/CodeGen/X86/emutls.ll vendor/llvm/dist/test/CodeGen/X86/emutls_generic.ll vendor/llvm/dist/test/CodeGen/X86/expand-vr64-gr64-copy.mir vendor/llvm/dist/test/CodeGen/X86/extractelement-legalization-cycle.ll vendor/llvm/dist/test/CodeGen/X86/fadd-combines.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-bitcasts-avx.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-bitcasts.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-deadcode.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-emutls.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-nontemporal.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-stackcheck.ll vendor/llvm/dist/test/CodeGen/X86/fixup-lea.ll vendor/llvm/dist/test/CodeGen/X86/fma-commute-x86.ll vendor/llvm/dist/test/CodeGen/X86/fma-scalar-memfold.ll vendor/llvm/dist/test/CodeGen/X86/fold-push.ll vendor/llvm/dist/test/CodeGen/X86/fp-logic.ll vendor/llvm/dist/test/CodeGen/X86/fp128-calling-conv.ll vendor/llvm/dist/test/CodeGen/X86/fp128-cast.ll vendor/llvm/dist/test/CodeGen/X86/fp128-compare.ll vendor/llvm/dist/test/CodeGen/X86/fp128-i128.ll vendor/llvm/dist/test/CodeGen/X86/fp128-libcalls.ll vendor/llvm/dist/test/CodeGen/X86/fp128-load.ll vendor/llvm/dist/test/CodeGen/X86/fp128-store.ll vendor/llvm/dist/test/CodeGen/X86/fpcmp-soft-fp.ll vendor/llvm/dist/test/CodeGen/X86/frem-msvc32.ll vendor/llvm/dist/test/CodeGen/X86/funclet-layout.ll vendor/llvm/dist/test/CodeGen/X86/function-alias.ll vendor/llvm/dist/test/CodeGen/X86/hhvm-cc.ll vendor/llvm/dist/test/CodeGen/X86/i386-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/X86/immediate_merging.ll vendor/llvm/dist/test/CodeGen/X86/inconsistent_landingpad.ll vendor/llvm/dist/test/CodeGen/X86/inline-sse.ll vendor/llvm/dist/test/CodeGen/X86/insertps-from-constantpool.ll vendor/llvm/dist/test/CodeGen/X86/insertps-unfold-load-bug.ll vendor/llvm/dist/test/CodeGen/X86/late-address-taken.ll vendor/llvm/dist/test/CodeGen/X86/lea-opt.ll vendor/llvm/dist/test/CodeGen/X86/localescape.ll vendor/llvm/dist/test/CodeGen/X86/machine-combiner-int-vec.ll vendor/llvm/dist/test/CodeGen/X86/machine-combiner-int.ll vendor/llvm/dist/test/CodeGen/X86/materialize.ll vendor/llvm/dist/test/CodeGen/X86/mcu-abi.ll vendor/llvm/dist/test/CodeGen/X86/merge-store-partially-alias-loads.ll vendor/llvm/dist/test/CodeGen/X86/mmx-coalescing.ll vendor/llvm/dist/test/CodeGen/X86/mmx-only.ll vendor/llvm/dist/test/CodeGen/X86/movpc32-check.ll vendor/llvm/dist/test/CodeGen/X86/or-lea.ll vendor/llvm/dist/test/CodeGen/X86/patchpoint-verifiable.mir vendor/llvm/dist/test/CodeGen/X86/peephole-na-phys-copy-folding.ll vendor/llvm/dist/test/CodeGen/X86/pop-stack-cleanup.ll vendor/llvm/dist/test/CodeGen/X86/pr24139.ll vendor/llvm/dist/test/CodeGen/X86/pr24602.ll vendor/llvm/dist/test/CodeGen/X86/pr25828.ll vendor/llvm/dist/test/CodeGen/X86/prolog-push-seq.ll vendor/llvm/dist/test/CodeGen/X86/pseudo_cmov_lower.ll vendor/llvm/dist/test/CodeGen/X86/pseudo_cmov_lower1.ll vendor/llvm/dist/test/CodeGen/X86/pseudo_cmov_lower2.ll vendor/llvm/dist/test/CodeGen/X86/push-cfi-debug.ll vendor/llvm/dist/test/CodeGen/X86/push-cfi-obj.ll vendor/llvm/dist/test/CodeGen/X86/push-cfi.ll vendor/llvm/dist/test/CodeGen/X86/rem_crash.ll vendor/llvm/dist/test/CodeGen/X86/safestack.ll vendor/llvm/dist/test/CodeGen/X86/sar_fold.ll vendor/llvm/dist/test/CodeGen/X86/sar_fold64.ll vendor/llvm/dist/test/CodeGen/X86/scalar-fp-to-i64.ll vendor/llvm/dist/test/CodeGen/X86/scalar-int-to-fp.ll vendor/llvm/dist/test/CodeGen/X86/sdiv-pow2.ll vendor/llvm/dist/test/CodeGen/X86/seh-catchpad.ll vendor/llvm/dist/test/CodeGen/X86/seh-exception-code.ll vendor/llvm/dist/test/CodeGen/X86/shrink-wrap-chkstk.ll vendor/llvm/dist/test/CodeGen/X86/slow-unaligned-mem.ll vendor/llvm/dist/test/CodeGen/X86/soft-sitofp.ll vendor/llvm/dist/test/CodeGen/X86/sse-only.ll vendor/llvm/dist/test/CodeGen/X86/sse3-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/sse4a-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/ssse3-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-adx-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/stackmap-frame-setup.ll vendor/llvm/dist/test/CodeGen/X86/switch-edge-weight.ll vendor/llvm/dist/test/CodeGen/X86/system-intrinsics-64-xsave.ll vendor/llvm/dist/test/CodeGen/X86/system-intrinsics-64-xsavec.ll vendor/llvm/dist/test/CodeGen/X86/system-intrinsics-64-xsaveopt.ll vendor/llvm/dist/test/CodeGen/X86/system-intrinsics-64-xsaves.ll vendor/llvm/dist/test/CodeGen/X86/system-intrinsics-xsave.ll vendor/llvm/dist/test/CodeGen/X86/system-intrinsics-xsavec.ll vendor/llvm/dist/test/CodeGen/X86/system-intrinsics-xsaveopt.ll vendor/llvm/dist/test/CodeGen/X86/system-intrinsics-xsaves.ll vendor/llvm/dist/test/CodeGen/X86/tail-dup-catchret.ll vendor/llvm/dist/test/CodeGen/X86/tail-merge-wineh.ll vendor/llvm/dist/test/CodeGen/X86/tailcall-msvc-conventions.ll vendor/llvm/dist/test/CodeGen/X86/tailcall-readnone.ll vendor/llvm/dist/test/CodeGen/X86/tls-android-negative.ll vendor/llvm/dist/test/CodeGen/X86/tls-android.ll vendor/llvm/dist/test/CodeGen/X86/token_landingpad.ll vendor/llvm/dist/test/CodeGen/X86/trunc-store.ll vendor/llvm/dist/test/CodeGen/X86/vec_cmp_sint-128.ll vendor/llvm/dist/test/CodeGen/X86/vec_cmp_uint-128.ll vendor/llvm/dist/test/CodeGen/X86/vec_minmax_sint.ll vendor/llvm/dist/test/CodeGen/X86/vec_minmax_uint.ll vendor/llvm/dist/test/CodeGen/X86/vec_uint_to_fp-fastmath.ll vendor/llvm/dist/test/CodeGen/X86/vector-lzcnt-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-merge-store-fp-constants.ll vendor/llvm/dist/test/CodeGen/X86/vector-popcnt-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-rotate-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-rotate-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-lshr-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-shl-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-512-v32.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-v1.ll vendor/llvm/dist/test/CodeGen/X86/vector-tzcnt-512.ll vendor/llvm/dist/test/CodeGen/X86/virtual-registers-cleared-in-machine-functions-liveins.ll vendor/llvm/dist/test/CodeGen/X86/vmovq.ll vendor/llvm/dist/test/CodeGen/X86/wide-integer-cmp.ll vendor/llvm/dist/test/CodeGen/X86/win-catchpad-csrs.ll vendor/llvm/dist/test/CodeGen/X86/win-catchpad-nested-cxx.ll vendor/llvm/dist/test/CodeGen/X86/win-catchpad-nested.ll vendor/llvm/dist/test/CodeGen/X86/win-catchpad-varargs.ll vendor/llvm/dist/test/CodeGen/X86/win-catchpad.ll vendor/llvm/dist/test/CodeGen/X86/win-cleanuppad.ll vendor/llvm/dist/test/CodeGen/X86/win-funclet-cfi.ll vendor/llvm/dist/test/CodeGen/X86/win-mixed-ehpersonality.ll vendor/llvm/dist/test/CodeGen/X86/win32-seh-catchpad-realign.ll vendor/llvm/dist/test/CodeGen/X86/win32-seh-catchpad.ll vendor/llvm/dist/test/CodeGen/X86/win32-seh-nested-finally.ll vendor/llvm/dist/test/CodeGen/X86/win32-spill-xmm.ll vendor/llvm/dist/test/CodeGen/X86/win64_sibcall.ll vendor/llvm/dist/test/CodeGen/X86/win_coreclr_chkstk.ll vendor/llvm/dist/test/CodeGen/X86/wineh-coreclr.ll vendor/llvm/dist/test/CodeGen/X86/wineh-exceptionpointer.ll vendor/llvm/dist/test/CodeGen/X86/wineh-no-ehpads.ll vendor/llvm/dist/test/CodeGen/X86/x32-indirectbr.ll vendor/llvm/dist/test/CodeGen/X86/x32-landingpad.ll vendor/llvm/dist/test/CodeGen/X86/x32-va_start.ll vendor/llvm/dist/test/CodeGen/X86/x86-32-intrcc.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-intrcc.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-ms_abi-vararg.ll vendor/llvm/dist/test/CodeGen/X86/x86-sanitizer-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/X86/x86-shrink-wrap-unwind.ll vendor/llvm/dist/test/CodeGen/X86/x86-win64-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/X86/xop-pcmov.ll vendor/llvm/dist/test/DebugInfo/AArch64/prologue_end.ll vendor/llvm/dist/test/DebugInfo/ARM/float-args.ll vendor/llvm/dist/test/DebugInfo/ARM/prologue_end.ll vendor/llvm/dist/test/DebugInfo/Generic/ vendor/llvm/dist/test/DebugInfo/Generic/2009-10-16-Phi.ll vendor/llvm/dist/test/DebugInfo/Generic/2009-11-03-InsertExtractValue.ll vendor/llvm/dist/test/DebugInfo/Generic/2009-11-05-DeadGlobalVariable.ll vendor/llvm/dist/test/DebugInfo/Generic/2009-11-06-NamelessGlobalVariable.ll vendor/llvm/dist/test/DebugInfo/Generic/2009-11-10-CurrentFn.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-01-05-DbgScope.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-03-12-llc-crash.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-03-19-DbgDeclare.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-03-24-MemberFn.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-04-06-NestedFnDbgInfo.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-04-19-FramePtr.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-05-03-DisableFramePtr.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-05-03-OriginDIE.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-05-10-MultipleCU.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-07-19-Crash.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-10-01-crash.ll vendor/llvm/dist/test/DebugInfo/Generic/Inputs/ vendor/llvm/dist/test/DebugInfo/Generic/Inputs/gmlt.ll vendor/llvm/dist/test/DebugInfo/Generic/PR20038.ll vendor/llvm/dist/test/DebugInfo/Generic/accel-table-hash-collisions.ll vendor/llvm/dist/test/DebugInfo/Generic/array.ll vendor/llvm/dist/test/DebugInfo/Generic/block-asan.ll vendor/llvm/dist/test/DebugInfo/Generic/bug_null_debuginfo.ll vendor/llvm/dist/test/DebugInfo/Generic/constant-pointers.ll vendor/llvm/dist/test/DebugInfo/Generic/constant-sdnodes-have-dbg-location.ll vendor/llvm/dist/test/DebugInfo/Generic/constantfp-sdnodes-have-dbg-location.ll vendor/llvm/dist/test/DebugInfo/Generic/cross-cu-inlining.ll vendor/llvm/dist/test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll vendor/llvm/dist/test/DebugInfo/Generic/cross-cu-linkonce.ll vendor/llvm/dist/test/DebugInfo/Generic/cu-range-hole.ll vendor/llvm/dist/test/DebugInfo/Generic/cu-ranges.ll vendor/llvm/dist/test/DebugInfo/Generic/dbg-at-specficiation.ll vendor/llvm/dist/test/DebugInfo/Generic/dead-argument-order.ll vendor/llvm/dist/test/DebugInfo/Generic/debug-info-always-inline.ll vendor/llvm/dist/test/DebugInfo/Generic/debug-info-qualifiers.ll vendor/llvm/dist/test/DebugInfo/Generic/debuginfofinder-forward-declaration.ll vendor/llvm/dist/test/DebugInfo/Generic/debuginfofinder-multiple-cu.ll vendor/llvm/dist/test/DebugInfo/Generic/def-line.ll vendor/llvm/dist/test/DebugInfo/Generic/discriminator.ll vendor/llvm/dist/test/DebugInfo/Generic/dwarf-public-names.ll vendor/llvm/dist/test/DebugInfo/Generic/empty.ll vendor/llvm/dist/test/DebugInfo/Generic/enum-types.ll vendor/llvm/dist/test/DebugInfo/Generic/enum.ll vendor/llvm/dist/test/DebugInfo/Generic/global.ll vendor/llvm/dist/test/DebugInfo/Generic/gmlt.test vendor/llvm/dist/test/DebugInfo/Generic/gvn.ll vendor/llvm/dist/test/DebugInfo/Generic/incorrect-variable-debugloc.ll vendor/llvm/dist/test/DebugInfo/Generic/incorrect-variable-debugloc1.ll vendor/llvm/dist/test/DebugInfo/Generic/inheritance.ll vendor/llvm/dist/test/DebugInfo/Generic/inline-debug-info-multiret.ll vendor/llvm/dist/test/DebugInfo/Generic/inline-debug-info.ll vendor/llvm/dist/test/DebugInfo/Generic/inline-no-debug-info.ll vendor/llvm/dist/test/DebugInfo/Generic/inline-scopes.ll vendor/llvm/dist/test/DebugInfo/Generic/inlined-arguments.ll vendor/llvm/dist/test/DebugInfo/Generic/inlined-vars.ll vendor/llvm/dist/test/DebugInfo/Generic/lit.local.cfg vendor/llvm/dist/test/DebugInfo/Generic/location-verifier.ll vendor/llvm/dist/test/DebugInfo/Generic/lto-comp-dir.ll vendor/llvm/dist/test/DebugInfo/Generic/member-order.ll vendor/llvm/dist/test/DebugInfo/Generic/member-pointers.ll vendor/llvm/dist/test/DebugInfo/Generic/missing-abstract-variable.ll vendor/llvm/dist/test/DebugInfo/Generic/multiline.ll vendor/llvm/dist/test/DebugInfo/Generic/namespace.ll vendor/llvm/dist/test/DebugInfo/Generic/namespace_function_definition.ll vendor/llvm/dist/test/DebugInfo/Generic/namespace_inline_function_definition.ll vendor/llvm/dist/test/DebugInfo/Generic/nodebug.ll vendor/llvm/dist/test/DebugInfo/Generic/piece-verifier.ll vendor/llvm/dist/test/DebugInfo/Generic/ptrsize.ll (contents, props changed) vendor/llvm/dist/test/DebugInfo/Generic/recursive_inlining.ll vendor/llvm/dist/test/DebugInfo/Generic/restrict.ll vendor/llvm/dist/test/DebugInfo/Generic/skeletoncu.ll vendor/llvm/dist/test/DebugInfo/Generic/sugared-constants.ll vendor/llvm/dist/test/DebugInfo/Generic/template-recursive-void.ll vendor/llvm/dist/test/DebugInfo/Generic/tu-composite.ll vendor/llvm/dist/test/DebugInfo/Generic/tu-member-pointer.ll vendor/llvm/dist/test/DebugInfo/Generic/two-cus-from-same-file.ll vendor/llvm/dist/test/DebugInfo/Generic/typedef.ll vendor/llvm/dist/test/DebugInfo/Generic/unconditional-branch.ll vendor/llvm/dist/test/DebugInfo/Generic/varargs.ll vendor/llvm/dist/test/DebugInfo/Generic/version.ll vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-dwp.x86_64.o (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macho-relocs.macho.x86_64.o (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro-cmd.h (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro.cc (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro.h (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro.o (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-test.macho-i386.o (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/fat-test.o (contents, props changed) vendor/llvm/dist/test/DebugInfo/MIR/ vendor/llvm/dist/test/DebugInfo/MIR/X86/ vendor/llvm/dist/test/DebugInfo/MIR/X86/lit.local.cfg vendor/llvm/dist/test/DebugInfo/MIR/X86/live-debug-values-3preds.mir vendor/llvm/dist/test/DebugInfo/MIR/X86/live-debug-values.mir vendor/llvm/dist/test/DebugInfo/MIR/lit.local.cfg vendor/llvm/dist/test/DebugInfo/Mips/dsr-fixed-objects.ll vendor/llvm/dist/test/DebugInfo/Mips/dsr-non-fixed-objects.ll vendor/llvm/dist/test/DebugInfo/Mips/prologue_end.ll vendor/llvm/dist/test/DebugInfo/PDB/DIA/ vendor/llvm/dist/test/DebugInfo/PDB/DIA/lit.local.cfg vendor/llvm/dist/test/DebugInfo/PDB/DIA/pdbdump-flags.test vendor/llvm/dist/test/DebugInfo/PDB/DIA/pdbdump-symbol-format.test vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-headers.test vendor/llvm/dist/test/DebugInfo/Sparc/prologue_end.ll vendor/llvm/dist/test/DebugInfo/SystemZ/prologue_end.ll vendor/llvm/dist/test/DebugInfo/X86/DIModuleContext.ll vendor/llvm/dist/test/DebugInfo/X86/bbjoin.ll vendor/llvm/dist/test/DebugInfo/X86/debugger-tune.ll vendor/llvm/dist/test/DebugInfo/X86/dw_op_minus.ll vendor/llvm/dist/test/DebugInfo/X86/dwarf-linkage-names.ll vendor/llvm/dist/test/DebugInfo/X86/externaltyperef.ll vendor/llvm/dist/test/DebugInfo/X86/live-debug-values.ll vendor/llvm/dist/test/DebugInfo/X86/safestack-byval.ll vendor/llvm/dist/test/DebugInfo/debugmacinfo.test vendor/llvm/dist/test/DebugInfo/dwarfdump-dwp.test vendor/llvm/dist/test/DebugInfo/dwarfdump-macho-relocs.test vendor/llvm/dist/test/DebugInfo/dwarfdump-macho-universal.test vendor/llvm/dist/test/DebugInfo/dwo.ll vendor/llvm/dist/test/DebugInfo/skeletoncu.ll vendor/llvm/dist/test/Examples/ vendor/llvm/dist/test/Examples/Kaleidoscope/ vendor/llvm/dist/test/Examples/Kaleidoscope/Chapter3.test vendor/llvm/dist/test/Examples/Kaleidoscope/Chapter4.test vendor/llvm/dist/test/Examples/Kaleidoscope/Chapter5.test vendor/llvm/dist/test/Examples/Kaleidoscope/Chapter6.test vendor/llvm/dist/test/Examples/Kaleidoscope/Chapter7.test vendor/llvm/dist/test/Examples/lit.local.cfg vendor/llvm/dist/test/ExecutionEngine/OrcLazy/global_aliases.ll vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/Mips/ELF_N64R6_relocations.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/PowerPC/ vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/PowerPC/lit.local.cfg vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/PowerPC/ppc32_elf_rel_addr16.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/COFF_i386.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/COFF_x86_64.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/ELF_STT_FILE.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/ELF_x64-64_PC8_relocations.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/ELF_x86_64_StubBuf.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/Inputs/ELF_STT_FILE_FILE.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/Inputs/ELF_STT_FILE_GLOBAL.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/Inputs/ELF_x86_64_StubBuf.ll vendor/llvm/dist/test/Feature/OperandBundles/ vendor/llvm/dist/test/Feature/OperandBundles/adce.ll vendor/llvm/dist/test/Feature/OperandBundles/basic-aa-argmemonly.ll vendor/llvm/dist/test/Feature/OperandBundles/dse.ll vendor/llvm/dist/test/Feature/OperandBundles/early-cse.ll vendor/llvm/dist/test/Feature/OperandBundles/function-attrs.ll vendor/llvm/dist/test/Feature/OperandBundles/inliner-conservative.ll vendor/llvm/dist/test/Feature/OperandBundles/merge-func.ll vendor/llvm/dist/test/Feature/OperandBundles/special-state.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/debug_info_noninstrumented_alloca.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/do-not-instrument-globals-darwin.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/do-not-instrument-globals-linux.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/keep_going.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/localescape.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/twice.ll vendor/llvm/dist/test/Instrumentation/DataFlowSanitizer/external_mask.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/AArch64/ vendor/llvm/dist/test/Instrumentation/MemorySanitizer/AArch64/vararg.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/seh.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/switch-tracing.ll vendor/llvm/dist/test/LTO/X86/disable-verify.ll vendor/llvm/dist/test/LTO/X86/llvm-lto-output.ll vendor/llvm/dist/test/LTO/X86/parallel.ll vendor/llvm/dist/test/LibDriver/thin.test vendor/llvm/dist/test/Linker/Inputs/available_externally_over_decl.ll vendor/llvm/dist/test/Linker/Inputs/comdat11.ll vendor/llvm/dist/test/Linker/Inputs/comdat13.ll vendor/llvm/dist/test/Linker/Inputs/comdat14.ll vendor/llvm/dist/test/Linker/Inputs/comdat15.ll vendor/llvm/dist/test/Linker/Inputs/ctors2.ll vendor/llvm/dist/test/Linker/Inputs/ctors3.ll vendor/llvm/dist/test/Linker/Inputs/funcimport.ll vendor/llvm/dist/test/Linker/Inputs/funcimport_appending_global.ll vendor/llvm/dist/test/Linker/Inputs/internalize-lazy.ll vendor/llvm/dist/test/Linker/Inputs/linkage.c.ll vendor/llvm/dist/test/Linker/Inputs/only-needed-debug-metadata.ll vendor/llvm/dist/test/Linker/Inputs/only-needed-named-metadata.ll vendor/llvm/dist/test/Linker/Inputs/thinlto_funcimport_debug.ll vendor/llvm/dist/test/Linker/available_externally_over_decl.ll vendor/llvm/dist/test/Linker/comdat11.ll vendor/llvm/dist/test/Linker/comdat12.ll vendor/llvm/dist/test/Linker/comdat13.ll vendor/llvm/dist/test/Linker/comdat14.ll vendor/llvm/dist/test/Linker/comdat15.ll vendor/llvm/dist/test/Linker/comdat_group.ll vendor/llvm/dist/test/Linker/ctors2.ll vendor/llvm/dist/test/Linker/ctors3.ll vendor/llvm/dist/test/Linker/ctors4.ll vendor/llvm/dist/test/Linker/ctors5.ll vendor/llvm/dist/test/Linker/funcimport.ll vendor/llvm/dist/test/Linker/funcimport_appending_global.ll vendor/llvm/dist/test/Linker/internalize-lazy.ll vendor/llvm/dist/test/Linker/link-flags.ll vendor/llvm/dist/test/Linker/only-needed-debug-metadata.ll vendor/llvm/dist/test/Linker/only-needed-named-metadata.ll vendor/llvm/dist/test/Linker/thinlto_funcimport_debug.ll vendor/llvm/dist/test/Linker/uniqued-distinct-cycles.ll vendor/llvm/dist/test/MC/AArch64/armv8.2a-at.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/armv8.2a-mmfr2.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/armv8.2a-persistent-memory.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/armv8.2a-statistical-profiling.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/armv8.2a-uao.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/error-location-ldr-pseudo.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/error-location.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/fullfp16-diagnostics.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/fullfp16-neon-neg.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/buffer_wbinv1l_vol_vi.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/flat-scratch.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/hsa-text.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/out-of-range-registers.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/smem.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/smrd-err.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/vop3-vop1-nosrc.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/vopc-errs.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/directive-arch-armv8.2-a.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/error-location-ldr-pseudo.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/error-location.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/fullfp16-neon-neg.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/fullfp16-neon.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/neon-vcvt-fp16.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/thumb-branches.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/thumb1-relax.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/v7k-dsp.s (contents, props changed) vendor/llvm/dist/test/MC/AsmParser/reassign.s (contents, props changed) vendor/llvm/dist/test/MC/AsmParser/undefined-local-symbol.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/label-undefined.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/stdin.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/temporary-alias.s (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AArch64/armv8.2a-at.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AArch64/armv8.2a-mmfr2.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AArch64/armv8.2a-persistent-memory.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AArch64/armv8.2a-statistical-profiling.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AArch64/armv8.2a-uao.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AArch64/fullfp16-neg.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AArch64/fullfp16-neon-neg.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/ARM/fullfp16-neon-arm-neg.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/ARM/fullfp16-neon-arm.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/ARM/fullfp16-neon-thumb-neg.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/ARM/fullfp16-neon-thumb.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Hexagon/invalid_packet.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Hexagon/too_many_instructions.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Hexagon/too_many_loop_ends.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Hexagon/unextendable.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/dsp/ vendor/llvm/dist/test/MC/Disassembler/Mips/dsp/valid-el.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/dsp/valid.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/dspr2/ vendor/llvm/dist/test/MC/Disassembler/Mips/dspr2/valid.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/eva/ vendor/llvm/dist/test/MC/Disassembler/Mips/eva/valid_R6-eva.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/eva/valid_preR6-eva.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/micromips-dsp/ vendor/llvm/dist/test/MC/Disassembler/Mips/micromips-dsp/valid.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/micromips-dspr2/ vendor/llvm/dist/test/MC/Disassembler/Mips/micromips-dspr2/valid.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/micromips32r3/ vendor/llvm/dist/test/MC/Disassembler/Mips/micromips32r3/invalid.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/micromips32r3/valid-el.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/micromips32r3/valid.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/micromips32r6/ vendor/llvm/dist/test/MC/Disassembler/Mips/micromips32r6/valid.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/micromips64r6/ vendor/llvm/dist/test/MC/Disassembler/Mips/micromips64r6/valid.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips1/invalid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips1/invalid.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips2/invalid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips2/valid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips3/invalid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips3/valid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips32/invalid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips32/valid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r2/invalid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r2/valid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r3/invalid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r3/valid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r5/invalid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r5/valid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips4/invalid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips4/valid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips64/invalid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips64/valid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r2/invalid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r2/valid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r3/invalid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r3/valid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r5/invalid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r5/valid-xfail.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Sparc/sparc-v9.txt (contents, props changed) vendor/llvm/dist/test/MC/ELF/ARM/directive-type-diagnostics.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/align-zero.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/div-by-zero.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/empty-twice.ll vendor/llvm/dist/test/MC/Hexagon/asmMap.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/capitalizedEndloop.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/dcfetch.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/empty_asm.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/endloop.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/got.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/ vendor/llvm/dist/test/MC/Hexagon/instructions/alu32_alu.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/alu32_perm.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/alu32_pred.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/cr.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/j.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/jr.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/ld.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/memop.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/nv_j.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/nv_st.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/st.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/system_user.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/xtype_alu.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/xtype_bit.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/xtype_complex.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/xtype_fp.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/xtype_mpy.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/xtype_perm.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/xtype_pred.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/instructions/xtype_shift.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/jumpdoublepound.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/labels.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/new-value-check.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/out_of_range.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/pcrel.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/relaxed_newvalue.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/test.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/two_ext.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v60-alu.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v60-permute.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v60-shift.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v60-vcmp.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v60-vmem.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v60-vmpy-acc.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v60-vmpy1.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v60lookup.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/AArch64/reloc-errors.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/ARM/compact-unwind-armv7k.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/ARM/tvos-version-min-load-command.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/ARM/version-min-diagnostics2.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/ARM/watchos-version-min-load-command.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/PowerPC/ vendor/llvm/dist/test/MC/MachO/PowerPC/coal-sections-powerpc.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/PowerPC/lit.local.cfg vendor/llvm/dist/test/MC/MachO/coal-sections-x86_64.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/darwin-version-min-load-command.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/empty-twice.ll vendor/llvm/dist/test/MC/Mips/cnmips/ vendor/llvm/dist/test/MC/Mips/cnmips/invalid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/cprestore-bad.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/cprestore-noreorder.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/cprestore-reorder.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/cprestore-warning-unused.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/directive-ent.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/dsp/ vendor/llvm/dist/test/MC/Mips/dsp/invalid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/dsp/valid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/dspr2/ vendor/llvm/dist/test/MC/Mips/dspr2/invalid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/dspr2/valid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/eva/ vendor/llvm/dist/test/MC/Mips/eva/invalid-noeva-wrong-error.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/eva/invalid-noeva.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/eva/invalid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/eva/invalid_R6.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/eva/valid_R6.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/eva/valid_preR6.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/expansion-jal-sym-pic.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/instalias-imm-expanding.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-bcc-imm-bad.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-bcc-imm.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-ddiv-bad.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-ddiv.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-ddivu-bad.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-ddivu.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-div-bad.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-div.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-divu-bad.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-divu.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-dla.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-dli.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips/ vendor/llvm/dist/test/MC/Mips/micromips-dsp/ vendor/llvm/dist/test/MC/Mips/micromips-dsp/invalid-wrong-error.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips-dsp/invalid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips-dsp/valid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips-dspr2/ vendor/llvm/dist/test/MC/Mips/micromips-dspr2/invalid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips-dspr2/valid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips/invalid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips64r6/ vendor/llvm/dist/test/MC/Mips/micromips64r6/invalid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips64r6/valid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/mips32r2/invalid-dsp.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/mips32r2/invalid-dspr2.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/mips32r2/invalid-msa.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/mips32r5/invalid-mips32.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/mips32r5/invalid-mips32r2.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/mips32r5/invalid-mips32r3.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/mips64r5/invalid-mips64.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/mips64r5/invalid-mips64r2.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/mips64r5/invalid-mips64r3.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/msa/invalid-64.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/msa/invalid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/reloc-directive-bad.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/reloc-directive.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/rotations32-bad.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/rotations32.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/rotations64.s (contents, props changed) vendor/llvm/dist/test/MC/PowerPC/pr24686.s (contents, props changed) vendor/llvm/dist/test/MC/Sparc/sparc-asm-errors.s (contents, props changed) vendor/llvm/dist/test/MC/X86/X86_64-pku.s (contents, props changed) vendor/llvm/dist/test/MC/X86/encoder-fail.s (contents, props changed) vendor/llvm/dist/test/MC/X86/intel-syntax-print.ll vendor/llvm/dist/test/MC/X86/large-bss.s (contents, props changed) vendor/llvm/dist/test/MC/X86/macho-reloc-errors-x86.s (contents, props changed) vendor/llvm/dist/test/MC/X86/macho-reloc-errors-x86_64.s (contents, props changed) vendor/llvm/dist/test/MC/X86/x86-64-avx512cd.s (contents, props changed) vendor/llvm/dist/test/MC/X86/x86-64-avx512cd_vl.s (contents, props changed) vendor/llvm/dist/test/MC/X86/x86-evenDirective.s (contents, props changed) vendor/llvm/dist/test/Object/AMDGPU/ vendor/llvm/dist/test/Object/AMDGPU/elf-definitios.yaml vendor/llvm/dist/test/Object/Inputs/coff-short-import-code (contents, props changed) vendor/llvm/dist/test/Object/Inputs/coff-short-import-data (contents, props changed) vendor/llvm/dist/test/Object/Inputs/corrupt-invalid-dynamic-table-offset.elf.x86-64 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/corrupt-invalid-dynamic-table-size.elf.x86-64 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/corrupt-invalid-dynamic-table-too-large.elf.x86-64 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/corrupt-invalid-phentsize.elf.x86-64 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/corrupt-invalid-relocation-size.elf.x86-64 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/corrupt-invalid-strtab.elf.x86-64 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/corrupt-invalid-virtual-addr.elf.x86-64 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/invalid-symbol-table-size.elf (contents, props changed) vendor/llvm/dist/test/Object/Inputs/invalid-xindex-size.elf (contents, props changed) vendor/llvm/dist/test/Object/Inputs/main-ret-zero-pe-i386.dll (contents, props changed) vendor/llvm/dist/test/Object/Inputs/main-ret-zero-pe-i386.exe (contents, props changed) vendor/llvm/dist/test/Object/Inputs/no-section-header-string-table.elf-x86-64 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/pr25877.lib (contents, props changed) vendor/llvm/dist/test/Object/Inputs/rel-no-sec-table.elf-x86-64 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/shndx.elf (contents, props changed) vendor/llvm/dist/test/Object/Inputs/trivial-object-test.elf-avr (contents, props changed) vendor/llvm/dist/test/Object/nm-pe-image.test vendor/llvm/dist/test/Object/no-section-header-string-table.test vendor/llvm/dist/test/Object/objdump-shndx.test vendor/llvm/dist/test/Object/pr25877.test vendor/llvm/dist/test/Object/readobj-absent.test vendor/llvm/dist/test/Other/opt-twice.ll vendor/llvm/dist/test/TableGen/cast-list-initializer.td vendor/llvm/dist/test/TableGen/trydecode-emission.td vendor/llvm/dist/test/TableGen/trydecode-emission2.td vendor/llvm/dist/test/TableGen/trydecode-emission3.td vendor/llvm/dist/test/Transforms/AddDiscriminators/call.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/dbg-declare-discriminator.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/diamond.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/oneline.ll vendor/llvm/dist/test/Transforms/AtomicExpand/X86/ vendor/llvm/dist/test/Transforms/AtomicExpand/X86/expand-atomic-non-integer.ll vendor/llvm/dist/test/Transforms/AtomicExpand/X86/expand-atomic-rmw-initial-load.ll vendor/llvm/dist/test/Transforms/AtomicExpand/X86/lit.local.cfg vendor/llvm/dist/test/Transforms/CodeGenPrepare/AArch64/free-zext.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/AArch64/widen_switch.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/catchpad-phi-cast.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/cttz-ctlz.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/select.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/widen_switch.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/invariant.group.ll vendor/llvm/dist/test/Transforms/CrossDSOCFI/ vendor/llvm/dist/test/Transforms/CrossDSOCFI/basic.ll vendor/llvm/dist/test/Transforms/DeadArgElim/naked_functions.ll vendor/llvm/dist/test/Transforms/DeadArgElim/operandbundle.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/calloc-store.ll vendor/llvm/dist/test/Transforms/EarlyCSE/AArch64/ldstN.ll vendor/llvm/dist/test/Transforms/EarlyCSE/atomics.ll vendor/llvm/dist/test/Transforms/EarlyCSE/fence.ll vendor/llvm/dist/test/Transforms/ForcedFunctionAttrs/ vendor/llvm/dist/test/Transforms/ForcedFunctionAttrs/forced.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/nonnull.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/norecurse.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/out-of-bounds-iterator-bug.ll vendor/llvm/dist/test/Transforms/FunctionImport/ vendor/llvm/dist/test/Transforms/FunctionImport/Inputs/ vendor/llvm/dist/test/Transforms/FunctionImport/Inputs/funcimport.ll vendor/llvm/dist/test/Transforms/FunctionImport/Inputs/funcimport_debug.ll vendor/llvm/dist/test/Transforms/FunctionImport/funcimport.ll vendor/llvm/dist/test/Transforms/FunctionImport/funcimport_debug.ll vendor/llvm/dist/test/Transforms/GVN/assume-equal.ll vendor/llvm/dist/test/Transforms/GVN/funclet.ll vendor/llvm/dist/test/Transforms/GVN/invariant.group.ll vendor/llvm/dist/test/Transforms/GVN/no_speculative_loads_with_asan.ll vendor/llvm/dist/test/Transforms/GVN/pr24426.ll vendor/llvm/dist/test/Transforms/GVN/pr25440.ll vendor/llvm/dist/test/Transforms/GlobalOpt/assume.ll vendor/llvm/dist/test/Transforms/GlobalOpt/available_externally_global_ctors.ll vendor/llvm/dist/test/Transforms/GlobalOpt/externally-initialized-aggregate.ll vendor/llvm/dist/test/Transforms/GlobalOpt/externally-initialized.ll vendor/llvm/dist/test/Transforms/GlobalOpt/global-demotion.ll vendor/llvm/dist/test/Transforms/GlobalOpt/invariant.group.barrier.ll vendor/llvm/dist/test/Transforms/GlobalOpt/localize-constexpr.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/bec-cmp.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/const_phi.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/loop-invariant-conditions.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr24356.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr24783.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr24804.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr24952.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr24956.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr25047.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr25051.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr25060.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr25360.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr25421.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr25578.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/zext-nuw.ll vendor/llvm/dist/test/Transforms/InferFunctionAttrs/ vendor/llvm/dist/test/Transforms/InferFunctionAttrs/annotate.ll vendor/llvm/dist/test/Transforms/Inline/alloca-dbgdeclare-merge.ll vendor/llvm/dist/test/Transforms/Inline/deopt-bundles.ll vendor/llvm/dist/test/Transforms/Inline/inline-assume.ll vendor/llvm/dist/test/Transforms/Inline/inline-cold-callee.ll vendor/llvm/dist/test/Transforms/Inline/inline-constexpr-addrspacecast-argument.ll vendor/llvm/dist/test/Transforms/Inline/inline-hot-callee.ll vendor/llvm/dist/test/Transforms/Inline/zero-cost.ll vendor/llvm/dist/test/Transforms/InstCombine/all-bits-shift.ll vendor/llvm/dist/test/Transforms/InstCombine/apint-or.ll vendor/llvm/dist/test/Transforms/InstCombine/bitcast-bitcast.ll vendor/llvm/dist/test/Transforms/InstCombine/bitreverse-fold.ll vendor/llvm/dist/test/Transforms/InstCombine/bitreverse-recognize.ll vendor/llvm/dist/test/Transforms/InstCombine/bswap-known-bits.ll vendor/llvm/dist/test/Transforms/InstCombine/call_nonnull_arg.ll vendor/llvm/dist/test/Transforms/InstCombine/cast-callee-deopt-bundles.ll vendor/llvm/dist/test/Transforms/InstCombine/compare-alloca.ll vendor/llvm/dist/test/Transforms/InstCombine/ctpop.ll vendor/llvm/dist/test/Transforms/InstCombine/demorgan-zext.ll vendor/llvm/dist/test/Transforms/InstCombine/fold-phi-load-metadata.ll vendor/llvm/dist/test/Transforms/InstCombine/lifetime.ll vendor/llvm/dist/test/Transforms/InstCombine/load-combine-metadata-2.ll vendor/llvm/dist/test/Transforms/InstCombine/load-combine-metadata-3.ll vendor/llvm/dist/test/Transforms/InstCombine/load-combine-metadata-4.ll vendor/llvm/dist/test/Transforms/InstCombine/log-pow-nofastmath.ll vendor/llvm/dist/test/Transforms/InstCombine/log-pow.ll vendor/llvm/dist/test/Transforms/InstCombine/minmax-fp.ll vendor/llvm/dist/test/Transforms/InstCombine/nonnull-attribute.ll vendor/llvm/dist/test/Transforms/InstCombine/phi-load-metadata-2.ll vendor/llvm/dist/test/Transforms/InstCombine/phi-load-metadata-3.ll vendor/llvm/dist/test/Transforms/InstCombine/phi-load-metadata.ll vendor/llvm/dist/test/Transforms/InstCombine/pow-4.ll vendor/llvm/dist/test/Transforms/InstCombine/pow-exp-nofastmath.ll vendor/llvm/dist/test/Transforms/InstCombine/pow-exp.ll vendor/llvm/dist/test/Transforms/InstCombine/pow-exp2.ll vendor/llvm/dist/test/Transforms/InstCombine/pow-sqrt.ll vendor/llvm/dist/test/Transforms/InstCombine/pr24605.ll vendor/llvm/dist/test/Transforms/InstCombine/pr25745.ll vendor/llvm/dist/test/Transforms/InstCombine/sqrt-nofast.ll vendor/llvm/dist/test/Transforms/InstCombine/tan-nofastmath.ll vendor/llvm/dist/test/Transforms/InstCombine/tan.ll vendor/llvm/dist/test/Transforms/InstCombine/token.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-f16c.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-pmovsx.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-pmovzx.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-pshufb.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-sse4a.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-vector-shifts.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-xop.ll vendor/llvm/dist/test/Transforms/InstSimplify/add-mask.ll vendor/llvm/dist/test/Transforms/InstSimplify/bswap.ll vendor/llvm/dist/test/Transforms/InstSimplify/implies.ll vendor/llvm/dist/test/Transforms/InstSimplify/shift-128-kb.ll vendor/llvm/dist/test/Transforms/Internalize/comdat.ll vendor/llvm/dist/test/Transforms/JumpThreading/implied-cond.ll vendor/llvm/dist/test/Transforms/JumpThreading/phi-known.ll vendor/llvm/dist/test/Transforms/JumpThreading/update-edge-weight.ll vendor/llvm/dist/test/Transforms/LCSSA/mixed-catch.ll vendor/llvm/dist/test/Transforms/LICM/argmemonly-call.ll vendor/llvm/dist/test/Transforms/LoopDistribute/bounds-expansion-bug.ll vendor/llvm/dist/test/Transforms/LoopDistribute/unknown-bounds-for-memchecks.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/ vendor/llvm/dist/test/Transforms/LoopLoadElim/backward.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/def-store-before-load.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/forward.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/memcheck.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/multiple-stores-same-block.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/unknown-dep.ll vendor/llvm/dist/test/Transforms/LoopReroll/negative.ll vendor/llvm/dist/test/Transforms/LoopReroll/reroll_with_dbg.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/AMDGPU/ vendor/llvm/dist/test/Transforms/LoopStrengthReduce/AMDGPU/different-addrspace-addressing-mode-loops.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/AMDGPU/lit.local.cfg vendor/llvm/dist/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-postinc-pos-addrspace.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/NVPTX/ vendor/llvm/dist/test/Transforms/LoopStrengthReduce/NVPTX/lit.local.cfg vendor/llvm/dist/test/Transforms/LoopStrengthReduce/NVPTX/trunc.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/funclet.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/pr25541.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/sext-ind-var.ll vendor/llvm/dist/test/Transforms/LoopUnroll/AMDGPU/ vendor/llvm/dist/test/Transforms/LoopUnroll/AMDGPU/lit.local.cfg vendor/llvm/dist/test/Transforms/LoopUnroll/AMDGPU/unroll-barrier.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-crashers.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-2.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-cast.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-cmp.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-phi-prop.ll vendor/llvm/dist/test/Transforms/LoopUnroll/rebuild_lcssa.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/2015-09-18-Addrspace.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/LIV-loop-condtion.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/cleanuppad.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/cold-loop.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/copy-metadata.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/trivial-unswitch.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/deterministic-type-shrinkage.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/loop-vectorization-factors.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/reduction-small-size.ll vendor/llvm/dist/test/Transforms/LoopVectorize/ARM/interleaved_cost.ll vendor/llvm/dist/test/Transforms/LoopVectorize/ARM/vector_cast.ll vendor/llvm/dist/test/Transforms/LoopVectorize/PowerPC/agg-interleave-a2.ll vendor/llvm/dist/test/Transforms/LoopVectorize/PowerPC/stride-vectorization.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/no_fpmath.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/reg-usage.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vector_max_bandwidth.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vectorization-remarks-profitable.ll vendor/llvm/dist/test/Transforms/LoopVectorize/gep_with_bitcast.ll vendor/llvm/dist/test/Transforms/LoopVectorize/miniters.ll vendor/llvm/dist/test/Transforms/LoopVectorize/nontemporal.ll vendor/llvm/dist/test/Transforms/LoopVectorize/ptr-induction.ll vendor/llvm/dist/test/Transforms/LowerBitSets/function-ext.ll vendor/llvm/dist/test/Transforms/LowerBitSets/function.ll vendor/llvm/dist/test/Transforms/LowerBitSets/nonstring.ll vendor/llvm/dist/test/Transforms/LowerBitSets/pr25902.ll vendor/llvm/dist/test/Transforms/LowerSwitch/delete-default-block-crash.ll vendor/llvm/dist/test/Transforms/Mem2Reg/optnone.ll vendor/llvm/dist/test/Transforms/Mem2Reg/pr24179.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/nontemporal.ll vendor/llvm/dist/test/Transforms/MergeFunc/apply_function_attributes.ll vendor/llvm/dist/test/Transforms/MergeFunc/constant-entire-value.ll vendor/llvm/dist/test/Transforms/MergeFunc/crash2.ll vendor/llvm/dist/test/Transforms/MergeFunc/gep-base-type.ll vendor/llvm/dist/test/Transforms/MergeFunc/merge-block-address-other-function.ll vendor/llvm/dist/test/Transforms/MergeFunc/merge-block-address.ll vendor/llvm/dist/test/Transforms/MergeFunc/merge-const-ptr-and-int.ll vendor/llvm/dist/test/Transforms/MergeFunc/merge-different-vector-types.ll vendor/llvm/dist/test/Transforms/MergeFunc/no-merge-block-address-different-labels.ll vendor/llvm/dist/test/Transforms/MergeFunc/no-merge-block-address-other-function.ll vendor/llvm/dist/test/Transforms/MergeFunc/no-merge-ptr-different-sizes.ll vendor/llvm/dist/test/Transforms/MergeFunc/no-merge-ptr-int-different-values.ll vendor/llvm/dist/test/Transforms/MergeFunc/ranges-multiple.ll vendor/llvm/dist/test/Transforms/MergeFunc/self-referential-global.ll vendor/llvm/dist/test/Transforms/MergeFunc/undef-different-types.ll vendor/llvm/dist/test/Transforms/NaryReassociate/nary-mul.ll vendor/llvm/dist/test/Transforms/NaryReassociate/pr24301.ll vendor/llvm/dist/test/Transforms/PGOProfile/ vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/ vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/branch1.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/branch2.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/criticaledge.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/diag.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/landingpad.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/loop1.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/loop2.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/switch.proftext vendor/llvm/dist/test/Transforms/PGOProfile/branch1.ll vendor/llvm/dist/test/Transforms/PGOProfile/branch2.ll vendor/llvm/dist/test/Transforms/PGOProfile/criticaledge.ll vendor/llvm/dist/test/Transforms/PGOProfile/diag_mismatch.ll vendor/llvm/dist/test/Transforms/PGOProfile/diag_no_funcprofdata.ll vendor/llvm/dist/test/Transforms/PGOProfile/diag_no_profile.ll vendor/llvm/dist/test/Transforms/PGOProfile/landingpad.ll vendor/llvm/dist/test/Transforms/PGOProfile/loop1.ll vendor/llvm/dist/test/Transforms/PGOProfile/loop2.ll vendor/llvm/dist/test/Transforms/PGOProfile/single_bb.ll vendor/llvm/dist/test/Transforms/PGOProfile/switch.ll vendor/llvm/dist/test/Transforms/PruneEH/operand-bundles.ll vendor/llvm/dist/test/Transforms/Reassociate/fp-expr.ll vendor/llvm/dist/test/Transforms/Reassociate/reassoc-intermediate-fnegs.ll vendor/llvm/dist/test/Transforms/Reassociate/vaarg_movable.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-12.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-13.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-vector.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/codegen-cond.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/ vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-1.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-10.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-11.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-2.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-3.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-4.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-5.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-6.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-7.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-8.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-9.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-vector.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/basic.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/basics.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/codegen-cond.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/constants.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/deref-pointers.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/gc-relocate-creation.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/live-vector.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/liveness-basics.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/patchable-statepoints.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/preprocess.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/relocate-invoke-result.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/relocation.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/rematerialize-derived-pointers.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/rewrite-invoke.ll vendor/llvm/dist/test/Transforms/SCCP/global-alias-constprop.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/AArch64/horizontal.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/AArch64/nontemporal.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/commutativity.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/pr23510.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/schedule_budget.ll vendor/llvm/dist/test/Transforms/SafeStack/AArch64/ vendor/llvm/dist/test/Transforms/SafeStack/AArch64/abi.ll vendor/llvm/dist/test/Transforms/SafeStack/AArch64/lit.local.cfg vendor/llvm/dist/test/Transforms/SafeStack/ARM/ vendor/llvm/dist/test/Transforms/SafeStack/ARM/abi.ll vendor/llvm/dist/test/Transforms/SafeStack/ARM/lit.local.cfg vendor/llvm/dist/test/Transforms/SafeStack/ARM/setjmp.ll vendor/llvm/dist/test/Transforms/SafeStack/X86/ vendor/llvm/dist/test/Transforms/SafeStack/X86/abi.ll vendor/llvm/dist/test/Transforms/SafeStack/X86/lit.local.cfg vendor/llvm/dist/test/Transforms/SafeStack/byval.ll vendor/llvm/dist/test/Transforms/SafeStack/debug-loc.ll vendor/llvm/dist/test/Transforms/SafeStack/ret.ll vendor/llvm/dist/test/Transforms/SafeStack/store.ll vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/cov-zero-samples.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/coverage-warning.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/gcc-simple.afdo (contents, props changed) vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/inline-coverage.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/inline-hint.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/inline.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/nolocinfo.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/offset.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/remarks.prof vendor/llvm/dist/test/Transforms/SampleProfile/cov-zero-samples.ll vendor/llvm/dist/test/Transforms/SampleProfile/coverage-warning.ll vendor/llvm/dist/test/Transforms/SampleProfile/gcc-simple.ll vendor/llvm/dist/test/Transforms/SampleProfile/inline-coverage.ll vendor/llvm/dist/test/Transforms/SampleProfile/inline-hint.ll vendor/llvm/dist/test/Transforms/SampleProfile/inline.ll vendor/llvm/dist/test/Transforms/SampleProfile/nolocinfo.ll vendor/llvm/dist/test/Transforms/SampleProfile/offset.ll vendor/llvm/dist/test/Transforms/SampleProfile/remarks.ll vendor/llvm/dist/test/Transforms/Scalarizer/store-bug.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/AArch64/cttz-ctlz.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/ARM/ vendor/llvm/dist/test/Transforms/SimplifyCFG/ARM/cttz-ctlz.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/ARM/lit.local.cfg vendor/llvm/dist/test/Transforms/SimplifyCFG/Mips/ vendor/llvm/dist/test/Transforms/SimplifyCFG/Mips/cttz-ctlz.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/Mips/lit.local.cfg vendor/llvm/dist/test/Transforms/SimplifyCFG/PR25267.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/empty-cleanuppad.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/implied-cond.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/merge-cond-stores-2.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/merge-cond-stores.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/no_speculative_loads_with_asan.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/preserve-load-metadata-2.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/preserve-load-metadata-3.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/preserve-load-metadata.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/preserve-make-implicit-on-switch-to-br.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/switch-dead-default.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/wineh-unreachable.ll vendor/llvm/dist/test/Transforms/Sink/catchswitch.ll vendor/llvm/dist/test/Transforms/Sink/landingpad.ll vendor/llvm/dist/test/Transforms/StraightLineStrengthReduce/NVPTX/speculative-slsr.ll vendor/llvm/dist/test/Transforms/StripDeadPrototypes/ vendor/llvm/dist/test/Transforms/StripDeadPrototypes/basic.ll vendor/llvm/dist/test/Transforms/TailCallElim/notail.ll vendor/llvm/dist/test/Transforms/Util/simplify-dbg-declare-load.ll vendor/llvm/dist/test/Verifier/align-md.ll vendor/llvm/dist/test/Verifier/atomics.ll vendor/llvm/dist/test/Verifier/dbg-null-retained-type.ll vendor/llvm/dist/test/Verifier/dereferenceable-md.ll vendor/llvm/dist/test/Verifier/func-dbg.ll vendor/llvm/dist/test/Verifier/invalid-eh.ll vendor/llvm/dist/test/Verifier/metadata-function-dbg.ll vendor/llvm/dist/test/Verifier/operand-bundles.ll vendor/llvm/dist/test/Verifier/token1.ll vendor/llvm/dist/test/Verifier/token2.ll vendor/llvm/dist/test/Verifier/token3.ll vendor/llvm/dist/test/Verifier/token4.ll vendor/llvm/dist/test/Verifier/token5.ll vendor/llvm/dist/test/Verifier/token6.ll vendor/llvm/dist/test/Verifier/token7.ll vendor/llvm/dist/test/tools/dsymutil/ARM/ vendor/llvm/dist/test/tools/dsymutil/ARM/dummy-debug-map-amr64.map vendor/llvm/dist/test/tools/dsymutil/ARM/empty-map.test vendor/llvm/dist/test/tools/dsymutil/ARM/fat-arch-name.test vendor/llvm/dist/test/tools/dsymutil/ARM/fat-arch-not-found.test vendor/llvm/dist/test/tools/dsymutil/ARM/inlined-low_pc.c (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/ARM/lit.local.cfg vendor/llvm/dist/test/tools/dsymutil/Inputs/absolute_sym.macho.i386 (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/absolute_sym.macho.i386.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/basic.macho.i386 (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/basic2-custom-linetable.macho.x86_64.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/dead-stripped/ vendor/llvm/dist/test/tools/dsymutil/Inputs/dead-stripped/1.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/empty_range/ vendor/llvm/dist/test/tools/dsymutil/Inputs/empty_range/1.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/fat-test.arm.dylib (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/fat-test.arm.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/fat-test.c (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/fat-test.dylib (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/fat-test.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/inlined-low_pc/ vendor/llvm/dist/test/tools/dsymutil/Inputs/inlined-low_pc/1.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/libfat-test.a (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/mismatch/ vendor/llvm/dist/test/tools/dsymutil/Inputs/mismatch/1.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/mismatch/mismatch.pcm (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/modules/ vendor/llvm/dist/test/tools/dsymutil/Inputs/modules/1.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/modules/Bar.pcm (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/modules/Foo.pcm (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/odr-anon-namespace/ vendor/llvm/dist/test/tools/dsymutil/Inputs/odr-anon-namespace/1.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/odr-anon-namespace/2.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/odr-member-functions/ vendor/llvm/dist/test/tools/dsymutil/Inputs/odr-member-functions/1.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/odr-member-functions/2.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/odr-member-functions/3.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/odr-uniquing/ vendor/llvm/dist/test/tools/dsymutil/Inputs/odr-uniquing/1.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/odr-uniquing/2.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/submodules/ vendor/llvm/dist/test/tools/dsymutil/Inputs/submodules/1.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/submodules/Parent.pcm (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/X86/basic-linking-bundle.test vendor/llvm/dist/test/tools/dsymutil/X86/custom-line-table.test vendor/llvm/dist/test/tools/dsymutil/X86/dead-stripped.cpp (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/X86/dsym-companion.test vendor/llvm/dist/test/tools/dsymutil/X86/dummy-debug-map.map vendor/llvm/dist/test/tools/dsymutil/X86/empty_range.s (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/X86/fat-archive-input-i386.test vendor/llvm/dist/test/tools/dsymutil/X86/fat-object-input-x86_64.test vendor/llvm/dist/test/tools/dsymutil/X86/fat-object-input-x86_64h.test vendor/llvm/dist/test/tools/dsymutil/X86/mismatch.m vendor/llvm/dist/test/tools/dsymutil/X86/modules.m vendor/llvm/dist/test/tools/dsymutil/X86/multiple-inputs.test vendor/llvm/dist/test/tools/dsymutil/X86/odr-anon-namespace.cpp (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/X86/odr-member-functions.cpp (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/X86/odr-uniquing.cpp (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/X86/submodules.m vendor/llvm/dist/test/tools/dsymutil/absolute_symbol.test vendor/llvm/dist/test/tools/dsymutil/arch-option.test vendor/llvm/dist/test/tools/dsymutil/archive-timestamp.test vendor/llvm/dist/test/tools/dsymutil/dump-symtab.test vendor/llvm/dist/test/tools/dsymutil/fat-binary-output.test vendor/llvm/dist/test/tools/gold/PowerPC/ vendor/llvm/dist/test/tools/gold/PowerPC/lit.local.cfg vendor/llvm/dist/test/tools/gold/PowerPC/mtriple.ll vendor/llvm/dist/test/tools/gold/X86/ vendor/llvm/dist/test/tools/gold/X86/Inputs/ vendor/llvm/dist/test/tools/gold/X86/Inputs/alias-1.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/available-externally.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/bcsection.s (contents, props changed) vendor/llvm/dist/test/tools/gold/X86/Inputs/comdat.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/comdat2.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/common.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/ctors2.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/drop-debug.bc (contents, props changed) vendor/llvm/dist/test/tools/gold/X86/Inputs/drop-linkage.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/invalid.bc (contents, props changed) vendor/llvm/dist/test/tools/gold/X86/Inputs/linker-script.export vendor/llvm/dist/test/tools/gold/X86/Inputs/linkonce-weak.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/pr19901-1.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/resolve-to-alias.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/thinlto.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/type-merge.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/type-merge2.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/weak.ll vendor/llvm/dist/test/tools/gold/X86/alias.ll vendor/llvm/dist/test/tools/gold/X86/alias2.ll vendor/llvm/dist/test/tools/gold/X86/available-externally.ll vendor/llvm/dist/test/tools/gold/X86/bad-alias.ll vendor/llvm/dist/test/tools/gold/X86/bcsection.ll vendor/llvm/dist/test/tools/gold/X86/coff.ll vendor/llvm/dist/test/tools/gold/X86/comdat.ll vendor/llvm/dist/test/tools/gold/X86/comdat2.ll vendor/llvm/dist/test/tools/gold/X86/common.ll vendor/llvm/dist/test/tools/gold/X86/ctors.ll vendor/llvm/dist/test/tools/gold/X86/ctors2.ll vendor/llvm/dist/test/tools/gold/X86/disable-verify.ll vendor/llvm/dist/test/tools/gold/X86/drop-debug.ll vendor/llvm/dist/test/tools/gold/X86/drop-linkage.ll vendor/llvm/dist/test/tools/gold/X86/emit-llvm.ll vendor/llvm/dist/test/tools/gold/X86/invalid.ll vendor/llvm/dist/test/tools/gold/X86/linker-script.ll vendor/llvm/dist/test/tools/gold/X86/linkonce-weak.ll vendor/llvm/dist/test/tools/gold/X86/lit.local.cfg vendor/llvm/dist/test/tools/gold/X86/no-map-whole-file.ll vendor/llvm/dist/test/tools/gold/X86/opt-level.ll vendor/llvm/dist/test/tools/gold/X86/parallel.ll vendor/llvm/dist/test/tools/gold/X86/pr19901.ll vendor/llvm/dist/test/tools/gold/X86/pr25907.ll vendor/llvm/dist/test/tools/gold/X86/pr25915.ll vendor/llvm/dist/test/tools/gold/X86/remarks.ll vendor/llvm/dist/test/tools/gold/X86/resolve-to-alias.ll vendor/llvm/dist/test/tools/gold/X86/slp-vectorize.ll vendor/llvm/dist/test/tools/gold/X86/stats.ll vendor/llvm/dist/test/tools/gold/X86/thinlto.ll vendor/llvm/dist/test/tools/gold/X86/type-merge.ll vendor/llvm/dist/test/tools/gold/X86/type-merge2.ll vendor/llvm/dist/test/tools/gold/X86/unnamed-addr.ll vendor/llvm/dist/test/tools/gold/X86/vectorize.ll vendor/llvm/dist/test/tools/gold/X86/weak.ll vendor/llvm/dist/test/tools/llvm-dwp/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/simple/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/simple/notypes/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/simple/notypes/a.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/simple/notypes/b.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/simple/types/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/simple/types/a.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/simple/types/b.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/type_dedup/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/type_dedup/a.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/type_dedup/b.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/X86/ vendor/llvm/dist/test/tools/llvm-dwp/X86/lit.local.cfg vendor/llvm/dist/test/tools/llvm-dwp/X86/simple.test vendor/llvm/dist/test/tools/llvm-dwp/X86/type_dedup.test vendor/llvm/dist/test/tools/llvm-lto/ vendor/llvm/dist/test/tools/llvm-lto/Inputs/ vendor/llvm/dist/test/tools/llvm-lto/Inputs/thinlto.ll vendor/llvm/dist/test/tools/llvm-lto/thinlto.ll vendor/llvm/dist/test/tools/llvm-mc/basic.test vendor/llvm/dist/test/tools/llvm-mc/fatal_warnings.test vendor/llvm/dist/test/tools/llvm-mc/lit.local.cfg vendor/llvm/dist/test/tools/llvm-mc/no_warnings.test vendor/llvm/dist/test/tools/llvm-nm/ vendor/llvm/dist/test/tools/llvm-nm/X86/ vendor/llvm/dist/test/tools/llvm-nm/X86/IRobj.test vendor/llvm/dist/test/tools/llvm-nm/X86/Inputs/ vendor/llvm/dist/test/tools/llvm-nm/X86/Inputs/hello.obj.macho-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-nm/X86/Inputs/test.IRobj-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-nm/X86/externalonly.test vendor/llvm/dist/test/tools/llvm-nm/X86/groupingflags.test vendor/llvm/dist/test/tools/llvm-nm/X86/posixMachO.test vendor/llvm/dist/test/tools/llvm-nm/lit.local.cfg vendor/llvm/dist/test/tools/llvm-objdump/AArch64/elf-aarch64-mapping-symbols.test vendor/llvm/dist/test/tools/llvm-objdump/Inputs/eh_frame.macho-arm64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/libbogus1.a (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/libbogus2.a (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/libbogus3.a (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/section-filter.obj (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/disassemble-data.obj (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/disassemble.dll.coff-i386 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/internal.exe.coff-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/malformed-machos/ vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/malformed-machos/00000031.a (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0001.macho (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0006.macho (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0010.macho (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0040.macho (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0080.macho (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0261.macho (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0337.macho (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/coff-dis-internal.test vendor/llvm/dist/test/tools/llvm-objdump/X86/coff-disassemble-export.test vendor/llvm/dist/test/tools/llvm-objdump/X86/disassemble-data.test vendor/llvm/dist/test/tools/llvm-objdump/X86/malformed-machos.test vendor/llvm/dist/test/tools/llvm-objdump/eh_frame-arm64.test vendor/llvm/dist/test/tools/llvm-objdump/malformed-archives.test vendor/llvm/dist/test/tools/llvm-objdump/section-filter.test vendor/llvm/dist/test/tools/llvm-profdata/Inputs/basic.proftext vendor/llvm/dist/test/tools/llvm-profdata/Inputs/compat.profdata.v2 (contents, props changed) vendor/llvm/dist/test/tools/llvm-profdata/Inputs/gcc-sample-profile.gcov (contents, props changed) vendor/llvm/dist/test/tools/llvm-profdata/Inputs/inline-samples.afdo vendor/llvm/dist/test/tools/llvm-profdata/Inputs/overflow-instr.proftext vendor/llvm/dist/test/tools/llvm-profdata/Inputs/overflow-sample.proftext vendor/llvm/dist/test/tools/llvm-profdata/Inputs/text-format-errors.text.bin (contents, props changed) vendor/llvm/dist/test/tools/llvm-profdata/Inputs/vp-malform.proftext vendor/llvm/dist/test/tools/llvm-profdata/Inputs/vp-malform2.proftext vendor/llvm/dist/test/tools/llvm-profdata/Inputs/vp-truncate.proftext vendor/llvm/dist/test/tools/llvm-profdata/Inputs/weight-instr-bar.profdata (contents, props changed) vendor/llvm/dist/test/tools/llvm-profdata/Inputs/weight-instr-foo.profdata (contents, props changed) vendor/llvm/dist/test/tools/llvm-profdata/Inputs/weight-sample-bar.proftext vendor/llvm/dist/test/tools/llvm-profdata/Inputs/weight-sample-foo.proftext vendor/llvm/dist/test/tools/llvm-profdata/gcc-gcov-sample-profile.test vendor/llvm/dist/test/tools/llvm-profdata/inline-samples.test vendor/llvm/dist/test/tools/llvm-profdata/overflow-instr.test vendor/llvm/dist/test/tools/llvm-profdata/overflow-sample.test vendor/llvm/dist/test/tools/llvm-profdata/text-dump.test vendor/llvm/dist/test/tools/llvm-profdata/value-prof.proftext vendor/llvm/dist/test/tools/llvm-profdata/weight-instr.test vendor/llvm/dist/test/tools/llvm-profdata/weight-sample.test vendor/llvm/dist/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-i386 (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-ppc (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-ppc64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/mips-rld-map-rel.elf-mipsel (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/trivial.elf-amdhsa-kaveri (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/verdef.elf-x86-64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/amdgpu-elf-defs.test vendor/llvm/dist/test/tools/llvm-readobj/basic.test vendor/llvm/dist/test/tools/llvm-readobj/elf-gnuhash.test vendor/llvm/dist/test/tools/llvm-readobj/elf-versioninfo.test vendor/llvm/dist/test/tools/llvm-readobj/mips-rld-map-rel.test vendor/llvm/dist/test/tools/llvm-size/ vendor/llvm/dist/test/tools/llvm-size/basic.test vendor/llvm/dist/test/tools/llvm-split/ vendor/llvm/dist/test/tools/llvm-split/alias.ll vendor/llvm/dist/test/tools/llvm-split/comdat.ll vendor/llvm/dist/test/tools/llvm-split/function.ll vendor/llvm/dist/test/tools/llvm-split/global.ll vendor/llvm/dist/test/tools/llvm-split/internal.ll vendor/llvm/dist/test/tools/llvm-split/unnamed.ll vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/addr.exe (contents, props changed) vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/addr.inp vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/coff-dwarf.cpp (contents, props changed) vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/coff-dwarf.exe (contents, props changed) vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/coff-exports.cpp (contents, props changed) vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/coff-exports.exe (contents, props changed) vendor/llvm/dist/test/tools/llvm-symbolizer/coff-dwarf.test vendor/llvm/dist/test/tools/llvm-symbolizer/coff-exports.test vendor/llvm/dist/test/tools/llvm-symbolizer/sym.test vendor/llvm/dist/test/tools/sancov/ vendor/llvm/dist/test/tools/sancov/Inputs/ vendor/llvm/dist/test/tools/sancov/Inputs/blacklist.txt (contents, props changed) vendor/llvm/dist/test/tools/sancov/Inputs/foo.cpp (contents, props changed) vendor/llvm/dist/test/tools/sancov/Inputs/test-linux_x86_64 (contents, props changed) vendor/llvm/dist/test/tools/sancov/Inputs/test-linux_x86_64-1.sancov (contents, props changed) vendor/llvm/dist/test/tools/sancov/Inputs/test-linux_x86_64.sancov (contents, props changed) vendor/llvm/dist/test/tools/sancov/Inputs/test.cpp (contents, props changed) vendor/llvm/dist/test/tools/sancov/blacklist.test vendor/llvm/dist/test/tools/sancov/covered_functions.test vendor/llvm/dist/test/tools/sancov/not_covered_functions.test vendor/llvm/dist/test/tools/sancov/print.test vendor/llvm/dist/tools/dsymutil/MachOUtils.cpp (contents, props changed) vendor/llvm/dist/tools/dsymutil/MachOUtils.h (contents, props changed) vendor/llvm/dist/tools/dsymutil/NonRelocatableStringpool.h (contents, props changed) vendor/llvm/dist/tools/llvm-as-fuzzer/ vendor/llvm/dist/tools/llvm-as-fuzzer/CMakeLists.txt (contents, props changed) vendor/llvm/dist/tools/llvm-as-fuzzer/llvm-as-fuzzer.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-as-parasitic-coverage-repro/ vendor/llvm/dist/tools/llvm-dwp/ vendor/llvm/dist/tools/llvm-dwp/CMakeLists.txt (contents, props changed) vendor/llvm/dist/tools/llvm-dwp/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/tools/llvm-dwp/Makefile (contents, props changed) vendor/llvm/dist/tools/llvm-dwp/llvm-dwp.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-mc-fuzzer/ vendor/llvm/dist/tools/llvm-mc-fuzzer/CMakeLists.txt (contents, props changed) vendor/llvm/dist/tools/llvm-mc-fuzzer/llvm-mc-fuzzer.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-readobj/COFFImportDumper.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-split/ vendor/llvm/dist/tools/llvm-split/CMakeLists.txt (contents, props changed) vendor/llvm/dist/tools/llvm-split/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/tools/llvm-split/Makefile (contents, props changed) vendor/llvm/dist/tools/llvm-split/llvm-split.cpp (contents, props changed) vendor/llvm/dist/tools/sancov/ vendor/llvm/dist/tools/sancov/CMakeLists.txt (contents, props changed) vendor/llvm/dist/tools/sancov/Makefile (contents, props changed) vendor/llvm/dist/tools/sancov/sancov.cc (contents, props changed) vendor/llvm/dist/tools/xcode-toolchain/ vendor/llvm/dist/tools/xcode-toolchain/CMakeLists.txt (contents, props changed) vendor/llvm/dist/unittests/ADT/RangeAdapterTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Analysis/ValueTrackingTest.cpp (contents, props changed) vendor/llvm/dist/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp (contents, props changed) vendor/llvm/dist/unittests/ExecutionEngine/Orc/GlobalMappingLayerTest.cpp (contents, props changed) vendor/llvm/dist/unittests/ExecutionEngine/Orc/ObjectLinkingLayerTest.cpp (contents, props changed) vendor/llvm/dist/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp (contents, props changed) vendor/llvm/dist/unittests/ProfileData/SampleProfTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Support/ReplaceFileTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Support/ThreadPool.cpp (contents, props changed) vendor/llvm/dist/unittests/Support/TimerTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Support/TrailingObjectsTest.cpp (contents, props changed) vendor/llvm/dist/utils/TableGen/Attributes.cpp (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/googletest-timeout/ vendor/llvm/dist/utils/lit/tests/Inputs/googletest-timeout/DummySubDir/ vendor/llvm/dist/utils/lit/tests/Inputs/googletest-timeout/DummySubDir/OneTest (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/googletest-timeout/lit.cfg vendor/llvm/dist/utils/lit/tests/Inputs/shtest-timeout/ vendor/llvm/dist/utils/lit/tests/Inputs/shtest-timeout/infinite_loop.py (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-timeout/lit.cfg vendor/llvm/dist/utils/lit/tests/Inputs/shtest-timeout/quick_then_slow.py (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-timeout/short.py (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-timeout/slow.py (contents, props changed) vendor/llvm/dist/utils/lit/tests/googletest-timeout.py (contents, props changed) vendor/llvm/dist/utils/lit/tests/shtest-timeout.py (contents, props changed) vendor/llvm/dist/utils/release/build_llvm_package.bat (contents, props changed) vendor/llvm/dist/utils/schedcover.py (contents, props changed) Deleted: vendor/llvm/dist/autoconf/m4/rand48.m4 vendor/llvm/dist/include/llvm/Analysis/LibCallAliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/LibCallSemantics.h vendor/llvm/dist/include/llvm/IR/MetadataTracking.h vendor/llvm/dist/include/llvm/Support/OutputBuffer.h vendor/llvm/dist/lib/Analysis/AliasAnalysisCounter.cpp vendor/llvm/dist/lib/Analysis/AliasDebugger.cpp vendor/llvm/dist/lib/Analysis/IPA/ vendor/llvm/dist/lib/Analysis/LibCallAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/LibCallSemantics.cpp vendor/llvm/dist/lib/Analysis/NoAliasAnalysis.cpp vendor/llvm/dist/lib/Fuzzer/cxx_fuzzer_tokens.txt vendor/llvm/dist/lib/Fuzzer/test/CxxTokensTest.cpp vendor/llvm/dist/lib/Fuzzer/test/DFSanMemcmpTest.cpp vendor/llvm/dist/lib/Fuzzer/test/DFSanSimpleCmpTest.cpp vendor/llvm/dist/lib/Fuzzer/test/InfiniteTest.cpp vendor/llvm/dist/lib/IR/MetadataTracking.cpp vendor/llvm/dist/lib/ProfileData/InstrProfIndexed.h vendor/llvm/dist/lib/Target/AArch64/AArch64MachineCombinerPattern.h vendor/llvm/dist/lib/Target/AMDGPU/SIPrepareScratchRegs.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonRemoveSZExtArgs.cpp vendor/llvm/dist/lib/Target/X86/X86CompilationCallback_Win64.asm vendor/llvm/dist/lib/Transforms/ObjCARC/ARCInstKind.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ARCInstKind.h vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h vendor/llvm/dist/lib/Transforms/Scalar/SampleProfile.cpp vendor/llvm/dist/test/Analysis/CostModel/X86/vshift-cost.ll vendor/llvm/dist/test/Analysis/Lint/cppeh-catch-intrinsics.ll vendor/llvm/dist/test/Assembler/invalid-dilocalvariable-missing-tag.ll vendor/llvm/dist/test/CodeGen/AMDGPU/large-alloca.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.brev.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/integer-floating-point-conversion.ll vendor/llvm/dist/test/CodeGen/ARM/sched-it-debug-nodes.ll vendor/llvm/dist/test/CodeGen/MIR/X86/missing-instruction.mir vendor/llvm/dist/test/CodeGen/MIR/basic-blocks.mir vendor/llvm/dist/test/CodeGen/MIR/expected-eof-after-successor-mbb.mir vendor/llvm/dist/test/CodeGen/MIR/expected-mbb-reference-for-successor-mbb.mir vendor/llvm/dist/test/CodeGen/MIR/frame-info.mir vendor/llvm/dist/test/CodeGen/MIR/function-missing-machine-function.mir vendor/llvm/dist/test/CodeGen/MIR/llvm-ir-error-reported.mir vendor/llvm/dist/test/CodeGen/MIR/llvmIR.mir vendor/llvm/dist/test/CodeGen/MIR/llvmIRMissing.mir vendor/llvm/dist/test/CodeGen/MIR/machine-basic-block-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/machine-basic-block-unknown-name.mir vendor/llvm/dist/test/CodeGen/MIR/machine-function-missing-body-error.mir vendor/llvm/dist/test/CodeGen/MIR/machine-function-missing-function.mir vendor/llvm/dist/test/CodeGen/MIR/machine-function-missing-name.mir vendor/llvm/dist/test/CodeGen/MIR/machine-function-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/machine-function.mir vendor/llvm/dist/test/CodeGen/MIR/register-info.mir vendor/llvm/dist/test/CodeGen/MIR/successor-basic-blocks.mir vendor/llvm/dist/test/CodeGen/Thumb/thumb-memcpy-ldm-stm.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-alloca-sink.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-catch-all-win32.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-catch-all.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-catch-and-throw.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-catch-scalar.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-catch-unwind.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-cleanup-invoke.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-demote-liveout.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-frame-vars.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-inalloca.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-min-unwind.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-mixed-catch-and-cleanup.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-multi-catch.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-nested-1.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-nested-2.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-nested-3.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-nested-rethrow.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-nonalloca-frame-values.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-prepared-catch-all.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-prepared-catch-reordered.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-prepared-catch.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-prepared-cleanups.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-shared-empty-catch.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-similar-catch-blocks.ll vendor/llvm/dist/test/CodeGen/WinEH/cppeh-state-calc-1.ll vendor/llvm/dist/test/CodeGen/WinEH/seh-catch-all.ll vendor/llvm/dist/test/CodeGen/WinEH/seh-exception-code.ll vendor/llvm/dist/test/CodeGen/WinEH/seh-exception-code2.ll vendor/llvm/dist/test/CodeGen/WinEH/seh-inlined-finally.ll vendor/llvm/dist/test/CodeGen/WinEH/seh-outlined-finally-win32.ll vendor/llvm/dist/test/CodeGen/WinEH/seh-outlined-finally.ll vendor/llvm/dist/test/CodeGen/WinEH/seh-prepared-basic.ll vendor/llvm/dist/test/CodeGen/WinEH/seh-resume-phi.ll vendor/llvm/dist/test/CodeGen/WinEH/seh-simple.ll vendor/llvm/dist/test/CodeGen/X86/avx512-trunc-ext.ll vendor/llvm/dist/test/CodeGen/X86/combine-sse2-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/cppeh-nounwind.ll vendor/llvm/dist/test/CodeGen/X86/frameescape.ll vendor/llvm/dist/test/CodeGen/X86/pr21529.ll vendor/llvm/dist/test/CodeGen/X86/pr23900.ll vendor/llvm/dist/test/CodeGen/X86/remat-invalid-liveness.ll vendor/llvm/dist/test/CodeGen/X86/seh-filter.ll vendor/llvm/dist/test/CodeGen/X86/seh-stack-realign-win32.ll vendor/llvm/dist/test/CodeGen/X86/win_eh_prepare.ll vendor/llvm/dist/test/CodeGen/X86/win_ftol2.ll vendor/llvm/dist/test/DebugInfo/2009-10-16-Phi.ll vendor/llvm/dist/test/DebugInfo/2009-11-03-InsertExtractValue.ll vendor/llvm/dist/test/DebugInfo/2009-11-05-DeadGlobalVariable.ll vendor/llvm/dist/test/DebugInfo/2009-11-06-NamelessGlobalVariable.ll vendor/llvm/dist/test/DebugInfo/2009-11-10-CurrentFn.ll vendor/llvm/dist/test/DebugInfo/2010-01-05-DbgScope.ll vendor/llvm/dist/test/DebugInfo/2010-03-12-llc-crash.ll vendor/llvm/dist/test/DebugInfo/2010-03-19-DbgDeclare.ll vendor/llvm/dist/test/DebugInfo/2010-03-24-MemberFn.ll vendor/llvm/dist/test/DebugInfo/2010-04-06-NestedFnDbgInfo.ll vendor/llvm/dist/test/DebugInfo/2010-04-19-FramePtr.ll vendor/llvm/dist/test/DebugInfo/2010-05-03-DisableFramePtr.ll vendor/llvm/dist/test/DebugInfo/2010-05-03-OriginDIE.ll vendor/llvm/dist/test/DebugInfo/2010-05-10-MultipleCU.ll vendor/llvm/dist/test/DebugInfo/2010-06-29-InlinedFnLocalVar.ll vendor/llvm/dist/test/DebugInfo/2010-07-19-Crash.ll vendor/llvm/dist/test/DebugInfo/2010-10-01-crash.ll vendor/llvm/dist/test/DebugInfo/PDB/lit.local.cfg vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-flags.test vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-symbol-format.test vendor/llvm/dist/test/DebugInfo/PR20038.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-at-specficiation.ll vendor/llvm/dist/test/DebugInfo/X86/recursive_inlining.ll vendor/llvm/dist/test/DebugInfo/accel-table-hash-collisions.ll vendor/llvm/dist/test/DebugInfo/array.ll vendor/llvm/dist/test/DebugInfo/block-asan.ll vendor/llvm/dist/test/DebugInfo/bug_null_debuginfo.ll vendor/llvm/dist/test/DebugInfo/constant-pointers.ll vendor/llvm/dist/test/DebugInfo/constant-sdnodes-have-dbg-location.ll vendor/llvm/dist/test/DebugInfo/constantfp-sdnodes-have-dbg-location.ll vendor/llvm/dist/test/DebugInfo/cross-cu-inlining.ll vendor/llvm/dist/test/DebugInfo/cross-cu-linkonce-distinct.ll vendor/llvm/dist/test/DebugInfo/cross-cu-linkonce.ll vendor/llvm/dist/test/DebugInfo/cu-range-hole.ll vendor/llvm/dist/test/DebugInfo/cu-ranges.ll vendor/llvm/dist/test/DebugInfo/dead-argument-order.ll vendor/llvm/dist/test/DebugInfo/debug-info-always-inline.ll vendor/llvm/dist/test/DebugInfo/debug-info-qualifiers.ll vendor/llvm/dist/test/DebugInfo/debuginfofinder-forward-declaration.ll vendor/llvm/dist/test/DebugInfo/debuginfofinder-multiple-cu.ll vendor/llvm/dist/test/DebugInfo/dwarf-public-names.ll vendor/llvm/dist/test/DebugInfo/empty.ll vendor/llvm/dist/test/DebugInfo/enum-types.ll vendor/llvm/dist/test/DebugInfo/enum.ll vendor/llvm/dist/test/DebugInfo/global.ll vendor/llvm/dist/test/DebugInfo/gmlt.test vendor/llvm/dist/test/DebugInfo/gvn.ll vendor/llvm/dist/test/DebugInfo/incorrect-variable-debugloc.ll vendor/llvm/dist/test/DebugInfo/incorrect-variable-debugloc1.ll vendor/llvm/dist/test/DebugInfo/inheritance.ll vendor/llvm/dist/test/DebugInfo/inline-debug-info-multiret.ll vendor/llvm/dist/test/DebugInfo/inline-debug-info.ll vendor/llvm/dist/test/DebugInfo/inline-no-debug-info.ll vendor/llvm/dist/test/DebugInfo/inline-scopes.ll vendor/llvm/dist/test/DebugInfo/inlined-arguments.ll vendor/llvm/dist/test/DebugInfo/inlined-vars.ll vendor/llvm/dist/test/DebugInfo/location-verifier.ll vendor/llvm/dist/test/DebugInfo/lto-comp-dir.ll vendor/llvm/dist/test/DebugInfo/member-order.ll vendor/llvm/dist/test/DebugInfo/member-pointers.ll vendor/llvm/dist/test/DebugInfo/missing-abstract-variable.ll vendor/llvm/dist/test/DebugInfo/multiline.ll vendor/llvm/dist/test/DebugInfo/namespace.ll vendor/llvm/dist/test/DebugInfo/namespace_function_definition.ll vendor/llvm/dist/test/DebugInfo/namespace_inline_function_definition.ll vendor/llvm/dist/test/DebugInfo/nodebug.ll vendor/llvm/dist/test/DebugInfo/piece-verifier.ll vendor/llvm/dist/test/DebugInfo/restrict.ll vendor/llvm/dist/test/DebugInfo/sugared-constants.ll vendor/llvm/dist/test/DebugInfo/template-recursive-void.ll vendor/llvm/dist/test/DebugInfo/tu-composite.ll vendor/llvm/dist/test/DebugInfo/tu-member-pointer.ll vendor/llvm/dist/test/DebugInfo/two-cus-from-same-file.ll vendor/llvm/dist/test/DebugInfo/typedef.ll vendor/llvm/dist/test/DebugInfo/unconditional-branch.ll vendor/llvm/dist/test/DebugInfo/varargs.ll vendor/llvm/dist/test/DebugInfo/version.ll vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/COFF_x86_64 vendor/llvm/dist/test/Instrumentation/AddressSanitizer/do-not-instrument-cstring.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/do-not-instrument-llvm-metadata-darwin.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/do-not-instrument-llvm-metadata.ll vendor/llvm/dist/test/Linker/Inputs/subprogram-linkonce-weak-odr.ll vendor/llvm/dist/test/Linker/subprogram-linkonce-weak-odr.ll vendor/llvm/dist/test/MC/ARM/directive-arch-armv6j.s vendor/llvm/dist/test/MC/ARM/directive-arch-armv6zk.s vendor/llvm/dist/test/MC/COFF/ARM/directive-type-diagnostics.s vendor/llvm/dist/test/MC/Disassembler/Mips/micromips.txt vendor/llvm/dist/test/MC/Disassembler/Mips/micromips32r6.txt vendor/llvm/dist/test/MC/Disassembler/Mips/micromips_le.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips-dsp.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32_le.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r2_le.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64_le.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r2_le.txt vendor/llvm/dist/test/MC/MachO/bad-darwin-x86_64-reloc-expr1.s vendor/llvm/dist/test/MC/MachO/bad-darwin-x86_64-reloc-expr2.s vendor/llvm/dist/test/MC/Mips/mips-dsp-instructions.s vendor/llvm/dist/test/Transforms/FunctionAttrs/2009-01-04-Annotate.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/annotate-1.ll vendor/llvm/dist/test/Transforms/InstCombine/apint-or1.ll vendor/llvm/dist/test/Transforms/InstCombine/apint-or2.ll vendor/llvm/dist/test/Transforms/InstCombine/pr20059.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-bad-geps.ll vendor/llvm/dist/test/Verifier/invalid-patchable-statepoint.ll vendor/llvm/dist/test/tools/gold/Inputs/alias-1.ll vendor/llvm/dist/test/tools/gold/Inputs/bcsection.s vendor/llvm/dist/test/tools/gold/Inputs/comdat.ll vendor/llvm/dist/test/tools/gold/Inputs/common.ll vendor/llvm/dist/test/tools/gold/Inputs/drop-debug.bc vendor/llvm/dist/test/tools/gold/Inputs/invalid.bc vendor/llvm/dist/test/tools/gold/Inputs/linker-script.export vendor/llvm/dist/test/tools/gold/Inputs/linkonce-weak.ll vendor/llvm/dist/test/tools/gold/Inputs/pr19901-1.ll vendor/llvm/dist/test/tools/gold/Inputs/weak.ll vendor/llvm/dist/test/tools/gold/alias.ll vendor/llvm/dist/test/tools/gold/bad-alias.ll vendor/llvm/dist/test/tools/gold/bcsection.ll vendor/llvm/dist/test/tools/gold/coff.ll vendor/llvm/dist/test/tools/gold/comdat.ll vendor/llvm/dist/test/tools/gold/common.ll vendor/llvm/dist/test/tools/gold/drop-debug.ll vendor/llvm/dist/test/tools/gold/emit-llvm.ll vendor/llvm/dist/test/tools/gold/invalid.ll vendor/llvm/dist/test/tools/gold/linker-script.ll vendor/llvm/dist/test/tools/gold/linkonce-weak.ll vendor/llvm/dist/test/tools/gold/lit.local.cfg vendor/llvm/dist/test/tools/gold/mtriple.ll vendor/llvm/dist/test/tools/gold/no-map-whole-file.ll vendor/llvm/dist/test/tools/gold/opt-level.ll vendor/llvm/dist/test/tools/gold/pr19901.ll vendor/llvm/dist/test/tools/gold/remarks.ll vendor/llvm/dist/test/tools/gold/slp-vectorize.ll vendor/llvm/dist/test/tools/gold/stats.ll vendor/llvm/dist/test/tools/gold/vectorize.ll vendor/llvm/dist/test/tools/gold/weak.ll vendor/llvm/dist/test/tools/llvm-profdata/overflow.proftext vendor/llvm/dist/test/tools/llvm-symbolizer/pdb/Inputs/test.exe.input vendor/llvm/dist/tools/llvm-ar/install_symlink.cmake vendor/llvm/dist/tools/llvm-symbolizer/LLVMSymbolize.cpp vendor/llvm/dist/tools/llvm-symbolizer/LLVMSymbolize.h vendor/llvm/dist/tools/macho-dump/ Modified: vendor/llvm/dist/.clang-tidy vendor/llvm/dist/CMakeLists.txt vendor/llvm/dist/CODE_OWNERS.TXT vendor/llvm/dist/CREDITS.TXT vendor/llvm/dist/Makefile.config.in vendor/llvm/dist/Makefile.rules vendor/llvm/dist/README.txt vendor/llvm/dist/autoconf/configure.ac vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.cpp vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.h vendor/llvm/dist/bindings/go/llvm/IRBindings.cpp vendor/llvm/dist/bindings/go/llvm/IRBindings.h vendor/llvm/dist/bindings/go/llvm/analysis.go vendor/llvm/dist/bindings/go/llvm/bitreader.go vendor/llvm/dist/bindings/go/llvm/dibuilder.go vendor/llvm/dist/bindings/go/llvm/executionengine.go vendor/llvm/dist/bindings/go/llvm/ir.go vendor/llvm/dist/bindings/go/llvm/linker.go vendor/llvm/dist/bindings/go/llvm/target.go vendor/llvm/dist/bindings/ocaml/Makefile.ocaml vendor/llvm/dist/bindings/ocaml/bitreader/bitreader_ocaml.c vendor/llvm/dist/bindings/ocaml/linker/linker_ocaml.c vendor/llvm/dist/bindings/ocaml/linker/llvm_linker.ml vendor/llvm/dist/bindings/ocaml/linker/llvm_linker.mli vendor/llvm/dist/bindings/ocaml/llvm/llvm.ml vendor/llvm/dist/bindings/ocaml/llvm/llvm.mli vendor/llvm/dist/bindings/ocaml/llvm/llvm_ocaml.c vendor/llvm/dist/bindings/python/llvm/bit_reader.py vendor/llvm/dist/bindings/python/llvm/core.py vendor/llvm/dist/cmake/config-ix.cmake vendor/llvm/dist/cmake/modules/AddLLVM.cmake vendor/llvm/dist/cmake/modules/AddLLVMDefinitions.cmake vendor/llvm/dist/cmake/modules/CrossCompile.cmake vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake vendor/llvm/dist/cmake/modules/HandleLLVMStdlib.cmake vendor/llvm/dist/cmake/modules/LLVM-Config.cmake vendor/llvm/dist/cmake/modules/LLVMConfig.cmake.in vendor/llvm/dist/cmake/modules/Makefile vendor/llvm/dist/cmake/modules/TableGen.cmake vendor/llvm/dist/configure vendor/llvm/dist/docs/AliasAnalysis.rst vendor/llvm/dist/docs/Atomics.rst vendor/llvm/dist/docs/BitCodeFormat.rst vendor/llvm/dist/docs/BitSets.rst vendor/llvm/dist/docs/BranchWeightMetadata.rst vendor/llvm/dist/docs/BuildingLLVMWithAutotools.rst vendor/llvm/dist/docs/CMake.rst vendor/llvm/dist/docs/CMakeLists.txt vendor/llvm/dist/docs/CodeGenerator.rst vendor/llvm/dist/docs/CodingStandards.rst vendor/llvm/dist/docs/CommandGuide/index.rst vendor/llvm/dist/docs/CommandGuide/lit.rst vendor/llvm/dist/docs/CommandGuide/llc.rst vendor/llvm/dist/docs/CommandGuide/lli.rst vendor/llvm/dist/docs/CommandGuide/llvm-profdata.rst vendor/llvm/dist/docs/CommandGuide/llvm-symbolizer.rst vendor/llvm/dist/docs/CommandLine.rst vendor/llvm/dist/docs/CompilerWriterInfo.rst vendor/llvm/dist/docs/CoverageMappingFormat.rst vendor/llvm/dist/docs/DeveloperPolicy.rst vendor/llvm/dist/docs/ExceptionHandling.rst vendor/llvm/dist/docs/ExtendingLLVM.rst vendor/llvm/dist/docs/Frontend/PerformanceTips.rst vendor/llvm/dist/docs/GettingStarted.rst vendor/llvm/dist/docs/HowToBuildOnARM.rst vendor/llvm/dist/docs/HowToReleaseLLVM.rst vendor/llvm/dist/docs/LangRef.rst vendor/llvm/dist/docs/LibFuzzer.rst vendor/llvm/dist/docs/Phabricator.rst vendor/llvm/dist/docs/ProgrammersManual.rst vendor/llvm/dist/docs/README.txt vendor/llvm/dist/docs/ReleaseNotes.rst vendor/llvm/dist/docs/ReleaseProcess.rst vendor/llvm/dist/docs/SourceLevelDebugging.rst vendor/llvm/dist/docs/StackMaps.rst vendor/llvm/dist/docs/Statepoints.rst vendor/llvm/dist/docs/TestingGuide.rst vendor/llvm/dist/docs/WritingAnLLVMPass.rst vendor/llvm/dist/docs/conf.py vendor/llvm/dist/docs/doxygen.cfg.in vendor/llvm/dist/docs/index.rst vendor/llvm/dist/docs/tutorial/LangImpl1.rst vendor/llvm/dist/docs/tutorial/LangImpl2.rst vendor/llvm/dist/docs/tutorial/LangImpl3.rst vendor/llvm/dist/docs/tutorial/LangImpl4.rst vendor/llvm/dist/docs/tutorial/LangImpl5.rst vendor/llvm/dist/docs/tutorial/LangImpl6.rst vendor/llvm/dist/docs/tutorial/LangImpl7.rst vendor/llvm/dist/docs/tutorial/LangImpl8.rst vendor/llvm/dist/docs/tutorial/LangImpl9.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl1.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl2.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl3.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl4.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl5.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl6.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl7.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl8.rst vendor/llvm/dist/docs/yaml2obj.rst vendor/llvm/dist/examples/BrainF/BrainF.cpp vendor/llvm/dist/examples/BrainF/BrainFDriver.cpp vendor/llvm/dist/examples/CMakeLists.txt vendor/llvm/dist/examples/ExceptionDemo/CMakeLists.txt vendor/llvm/dist/examples/ExceptionDemo/ExceptionDemo.cpp vendor/llvm/dist/examples/Fibonacci/fibonacci.cpp vendor/llvm/dist/examples/HowToUseJIT/HowToUseJIT.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter2/CMakeLists.txt vendor/llvm/dist/examples/Kaleidoscope/Chapter2/Makefile vendor/llvm/dist/examples/Kaleidoscope/Chapter2/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter3/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter4/CMakeLists.txt vendor/llvm/dist/examples/Kaleidoscope/Chapter4/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter5/CMakeLists.txt vendor/llvm/dist/examples/Kaleidoscope/Chapter5/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter6/CMakeLists.txt vendor/llvm/dist/examples/Kaleidoscope/Chapter6/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter7/CMakeLists.txt vendor/llvm/dist/examples/Kaleidoscope/Chapter7/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter8/CMakeLists.txt vendor/llvm/dist/examples/Kaleidoscope/Chapter8/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Orc/initial/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Orc/lazy_codegen/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Orc/lazy_irgen/toy.cpp vendor/llvm/dist/examples/ParallelJIT/ParallelJIT.cpp vendor/llvm/dist/include/llvm-c/Analysis.h vendor/llvm/dist/include/llvm-c/BitReader.h vendor/llvm/dist/include/llvm-c/BitWriter.h vendor/llvm/dist/include/llvm-c/Core.h vendor/llvm/dist/include/llvm-c/ExecutionEngine.h vendor/llvm/dist/include/llvm-c/IRReader.h vendor/llvm/dist/include/llvm-c/Initialization.h vendor/llvm/dist/include/llvm-c/Linker.h vendor/llvm/dist/include/llvm-c/Object.h vendor/llvm/dist/include/llvm-c/Support.h vendor/llvm/dist/include/llvm-c/Target.h vendor/llvm/dist/include/llvm-c/TargetMachine.h vendor/llvm/dist/include/llvm-c/Transforms/IPO.h vendor/llvm/dist/include/llvm-c/Transforms/PassManagerBuilder.h vendor/llvm/dist/include/llvm-c/Transforms/Scalar.h vendor/llvm/dist/include/llvm-c/Transforms/Vectorize.h vendor/llvm/dist/include/llvm-c/lto.h vendor/llvm/dist/include/llvm/ADT/APFloat.h vendor/llvm/dist/include/llvm/ADT/APInt.h vendor/llvm/dist/include/llvm/ADT/APSInt.h vendor/llvm/dist/include/llvm/ADT/ArrayRef.h vendor/llvm/dist/include/llvm/ADT/BitVector.h vendor/llvm/dist/include/llvm/ADT/DeltaAlgorithm.h vendor/llvm/dist/include/llvm/ADT/DenseMap.h vendor/llvm/dist/include/llvm/ADT/DenseMapInfo.h vendor/llvm/dist/include/llvm/ADT/DenseSet.h vendor/llvm/dist/include/llvm/ADT/DepthFirstIterator.h vendor/llvm/dist/include/llvm/ADT/FoldingSet.h vendor/llvm/dist/include/llvm/ADT/ImmutableList.h vendor/llvm/dist/include/llvm/ADT/ImmutableMap.h vendor/llvm/dist/include/llvm/ADT/IntrusiveRefCntPtr.h vendor/llvm/dist/include/llvm/ADT/Optional.h vendor/llvm/dist/include/llvm/ADT/PackedVector.h vendor/llvm/dist/include/llvm/ADT/PointerIntPair.h vendor/llvm/dist/include/llvm/ADT/PointerUnion.h vendor/llvm/dist/include/llvm/ADT/PostOrderIterator.h vendor/llvm/dist/include/llvm/ADT/STLExtras.h vendor/llvm/dist/include/llvm/ADT/ScopedHashTable.h vendor/llvm/dist/include/llvm/ADT/SetOperations.h vendor/llvm/dist/include/llvm/ADT/SetVector.h vendor/llvm/dist/include/llvm/ADT/SmallBitVector.h vendor/llvm/dist/include/llvm/ADT/SmallPtrSet.h vendor/llvm/dist/include/llvm/ADT/SmallSet.h vendor/llvm/dist/include/llvm/ADT/SmallVector.h vendor/llvm/dist/include/llvm/ADT/SparseBitVector.h vendor/llvm/dist/include/llvm/ADT/Statistic.h vendor/llvm/dist/include/llvm/ADT/StringMap.h vendor/llvm/dist/include/llvm/ADT/StringRef.h vendor/llvm/dist/include/llvm/ADT/StringSet.h vendor/llvm/dist/include/llvm/ADT/StringSwitch.h vendor/llvm/dist/include/llvm/ADT/TinyPtrVector.h vendor/llvm/dist/include/llvm/ADT/Triple.h vendor/llvm/dist/include/llvm/ADT/UniqueVector.h vendor/llvm/dist/include/llvm/ADT/ilist.h vendor/llvm/dist/include/llvm/ADT/ilist_node.h vendor/llvm/dist/include/llvm/ADT/iterator_range.h vendor/llvm/dist/include/llvm/Analysis/AliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/AliasSetTracker.h vendor/llvm/dist/include/llvm/Analysis/AssumptionCache.h vendor/llvm/dist/include/llvm/Analysis/BlockFrequencyInfo.h vendor/llvm/dist/include/llvm/Analysis/BlockFrequencyInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/BranchProbabilityInfo.h vendor/llvm/dist/include/llvm/Analysis/CFG.h vendor/llvm/dist/include/llvm/Analysis/CGSCCPassManager.h vendor/llvm/dist/include/llvm/Analysis/CallGraph.h vendor/llvm/dist/include/llvm/Analysis/CallGraphSCCPass.h vendor/llvm/dist/include/llvm/Analysis/CaptureTracking.h vendor/llvm/dist/include/llvm/Analysis/DOTGraphTraitsPass.h vendor/llvm/dist/include/llvm/Analysis/DependenceAnalysis.h vendor/llvm/dist/include/llvm/Analysis/IVUsers.h vendor/llvm/dist/include/llvm/Analysis/InlineCost.h vendor/llvm/dist/include/llvm/Analysis/InstructionSimplify.h vendor/llvm/dist/include/llvm/Analysis/IteratedDominanceFrontier.h vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h vendor/llvm/dist/include/llvm/Analysis/LazyValueInfo.h vendor/llvm/dist/include/llvm/Analysis/Loads.h vendor/llvm/dist/include/llvm/Analysis/LoopAccessAnalysis.h vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h vendor/llvm/dist/include/llvm/Analysis/LoopInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/LoopPass.h vendor/llvm/dist/include/llvm/Analysis/MemoryBuiltins.h vendor/llvm/dist/include/llvm/Analysis/MemoryDependenceAnalysis.h vendor/llvm/dist/include/llvm/Analysis/PHITransAddr.h vendor/llvm/dist/include/llvm/Analysis/Passes.h vendor/llvm/dist/include/llvm/Analysis/RegionInfo.h vendor/llvm/dist/include/llvm/Analysis/RegionInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/RegionPrinter.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h vendor/llvm/dist/include/llvm/Analysis/SparsePropagation.h vendor/llvm/dist/include/llvm/Analysis/TargetLibraryInfo.def vendor/llvm/dist/include/llvm/Analysis/TargetLibraryInfo.h vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfo.h vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/ValueTracking.h vendor/llvm/dist/include/llvm/Analysis/VectorUtils.h vendor/llvm/dist/include/llvm/AsmParser/Parser.h vendor/llvm/dist/include/llvm/AsmParser/SlotMapping.h vendor/llvm/dist/include/llvm/Bitcode/BitcodeWriterPass.h vendor/llvm/dist/include/llvm/Bitcode/BitstreamReader.h vendor/llvm/dist/include/llvm/Bitcode/BitstreamWriter.h vendor/llvm/dist/include/llvm/Bitcode/LLVMBitCodes.h vendor/llvm/dist/include/llvm/Bitcode/ReaderWriter.h vendor/llvm/dist/include/llvm/CodeGen/Analysis.h vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h vendor/llvm/dist/include/llvm/CodeGen/BasicTTIImpl.h vendor/llvm/dist/include/llvm/CodeGen/CalcSpillWeights.h vendor/llvm/dist/include/llvm/CodeGen/CallingConvLower.h vendor/llvm/dist/include/llvm/CodeGen/CommandFlags.h vendor/llvm/dist/include/llvm/CodeGen/DFAPacketizer.h vendor/llvm/dist/include/llvm/CodeGen/DIE.h vendor/llvm/dist/include/llvm/CodeGen/FastISel.h vendor/llvm/dist/include/llvm/CodeGen/FunctionLoweringInfo.h vendor/llvm/dist/include/llvm/CodeGen/GCMetadata.h vendor/llvm/dist/include/llvm/CodeGen/GCStrategy.h vendor/llvm/dist/include/llvm/CodeGen/ISDOpcodes.h vendor/llvm/dist/include/llvm/CodeGen/IntrinsicLowering.h vendor/llvm/dist/include/llvm/CodeGen/LiveInterval.h vendor/llvm/dist/include/llvm/CodeGen/LiveIntervalAnalysis.h vendor/llvm/dist/include/llvm/CodeGen/LivePhysRegs.h vendor/llvm/dist/include/llvm/CodeGen/LiveRangeEdit.h vendor/llvm/dist/include/llvm/CodeGen/LiveRegMatrix.h vendor/llvm/dist/include/llvm/CodeGen/LiveStackAnalysis.h vendor/llvm/dist/include/llvm/CodeGen/MIRParser/MIRParser.h vendor/llvm/dist/include/llvm/CodeGen/MIRYamlMapping.h vendor/llvm/dist/include/llvm/CodeGen/MachineBasicBlock.h vendor/llvm/dist/include/llvm/CodeGen/MachineBranchProbabilityInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineCombinerPattern.h vendor/llvm/dist/include/llvm/CodeGen/MachineConstantPool.h vendor/llvm/dist/include/llvm/CodeGen/MachineDominators.h vendor/llvm/dist/include/llvm/CodeGen/MachineFrameInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineFunction.h vendor/llvm/dist/include/llvm/CodeGen/MachineInstr.h vendor/llvm/dist/include/llvm/CodeGen/MachineInstrBuilder.h vendor/llvm/dist/include/llvm/CodeGen/MachineInstrBundle.h vendor/llvm/dist/include/llvm/CodeGen/MachineMemOperand.h vendor/llvm/dist/include/llvm/CodeGen/MachineModuleInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineModuleInfoImpls.h vendor/llvm/dist/include/llvm/CodeGen/MachineRegisterInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineScheduler.h vendor/llvm/dist/include/llvm/CodeGen/MachineValueType.h vendor/llvm/dist/include/llvm/CodeGen/Passes.h vendor/llvm/dist/include/llvm/CodeGen/PseudoSourceValue.h vendor/llvm/dist/include/llvm/CodeGen/RegAllocPBQP.h vendor/llvm/dist/include/llvm/CodeGen/RegAllocRegistry.h vendor/llvm/dist/include/llvm/CodeGen/RegisterPressure.h vendor/llvm/dist/include/llvm/CodeGen/RegisterScavenging.h vendor/llvm/dist/include/llvm/CodeGen/RuntimeLibcalls.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAG.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAGInstrs.h vendor/llvm/dist/include/llvm/CodeGen/SchedulerRegistry.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h vendor/llvm/dist/include/llvm/CodeGen/SlotIndexes.h vendor/llvm/dist/include/llvm/CodeGen/StackMaps.h vendor/llvm/dist/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h vendor/llvm/dist/include/llvm/CodeGen/TargetSchedule.h vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.h vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.td vendor/llvm/dist/include/llvm/CodeGen/WinEHFuncInfo.h vendor/llvm/dist/include/llvm/Config/config.h.cmake vendor/llvm/dist/include/llvm/Config/config.h.in vendor/llvm/dist/include/llvm/DebugInfo/DIContext.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFContext.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFFormValue.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFUnit.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBContext.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBTypes.h vendor/llvm/dist/include/llvm/ExecutionEngine/ExecutionEngine.h vendor/llvm/dist/include/llvm/ExecutionEngine/Interpreter.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/CompileUtils.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/LogicalDylib.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcTargetSupport.h vendor/llvm/dist/include/llvm/ExecutionEngine/RuntimeDyld.h vendor/llvm/dist/include/llvm/ExecutionEngine/SectionMemoryManager.h vendor/llvm/dist/include/llvm/IR/Argument.h vendor/llvm/dist/include/llvm/IR/AssemblyAnnotationWriter.h vendor/llvm/dist/include/llvm/IR/Attributes.h vendor/llvm/dist/include/llvm/IR/BasicBlock.h vendor/llvm/dist/include/llvm/IR/CFG.h vendor/llvm/dist/include/llvm/IR/CMakeLists.txt vendor/llvm/dist/include/llvm/IR/CallSite.h vendor/llvm/dist/include/llvm/IR/CallingConv.h vendor/llvm/dist/include/llvm/IR/Comdat.h vendor/llvm/dist/include/llvm/IR/Constant.h vendor/llvm/dist/include/llvm/IR/ConstantRange.h vendor/llvm/dist/include/llvm/IR/Constants.h vendor/llvm/dist/include/llvm/IR/DIBuilder.h vendor/llvm/dist/include/llvm/IR/DataLayout.h vendor/llvm/dist/include/llvm/IR/DebugInfo.h vendor/llvm/dist/include/llvm/IR/DebugInfoFlags.def vendor/llvm/dist/include/llvm/IR/DebugInfoMetadata.h vendor/llvm/dist/include/llvm/IR/DerivedTypes.h vendor/llvm/dist/include/llvm/IR/DiagnosticInfo.h vendor/llvm/dist/include/llvm/IR/DiagnosticPrinter.h vendor/llvm/dist/include/llvm/IR/Dominators.h vendor/llvm/dist/include/llvm/IR/Function.h vendor/llvm/dist/include/llvm/IR/GVMaterializer.h vendor/llvm/dist/include/llvm/IR/GetElementPtrTypeIterator.h vendor/llvm/dist/include/llvm/IR/GlobalAlias.h vendor/llvm/dist/include/llvm/IR/GlobalObject.h vendor/llvm/dist/include/llvm/IR/GlobalValue.h vendor/llvm/dist/include/llvm/IR/GlobalVariable.h vendor/llvm/dist/include/llvm/IR/IRBuilder.h vendor/llvm/dist/include/llvm/IR/IRPrintingPasses.h vendor/llvm/dist/include/llvm/IR/InlineAsm.h vendor/llvm/dist/include/llvm/IR/InstIterator.h vendor/llvm/dist/include/llvm/IR/InstVisitor.h vendor/llvm/dist/include/llvm/IR/InstrTypes.h vendor/llvm/dist/include/llvm/IR/Instruction.def vendor/llvm/dist/include/llvm/IR/Instruction.h vendor/llvm/dist/include/llvm/IR/Instructions.h vendor/llvm/dist/include/llvm/IR/IntrinsicInst.h vendor/llvm/dist/include/llvm/IR/Intrinsics.h vendor/llvm/dist/include/llvm/IR/Intrinsics.td vendor/llvm/dist/include/llvm/IR/IntrinsicsAArch64.td vendor/llvm/dist/include/llvm/IR/IntrinsicsAMDGPU.td vendor/llvm/dist/include/llvm/IR/IntrinsicsARM.td vendor/llvm/dist/include/llvm/IR/IntrinsicsHexagon.td vendor/llvm/dist/include/llvm/IR/IntrinsicsPowerPC.td vendor/llvm/dist/include/llvm/IR/IntrinsicsWebAssembly.td vendor/llvm/dist/include/llvm/IR/IntrinsicsX86.td vendor/llvm/dist/include/llvm/IR/LLVMContext.h vendor/llvm/dist/include/llvm/IR/LegacyPassManagers.h vendor/llvm/dist/include/llvm/IR/MDBuilder.h vendor/llvm/dist/include/llvm/IR/Mangler.h vendor/llvm/dist/include/llvm/IR/Metadata.def vendor/llvm/dist/include/llvm/IR/Metadata.h vendor/llvm/dist/include/llvm/IR/Module.h vendor/llvm/dist/include/llvm/IR/ModuleSlotTracker.h vendor/llvm/dist/include/llvm/IR/PassManager.h vendor/llvm/dist/include/llvm/IR/PatternMatch.h vendor/llvm/dist/include/llvm/IR/Statepoint.h vendor/llvm/dist/include/llvm/IR/SymbolTableListTraits.h vendor/llvm/dist/include/llvm/IR/TrackingMDRef.h vendor/llvm/dist/include/llvm/IR/Type.h vendor/llvm/dist/include/llvm/IR/TypeFinder.h vendor/llvm/dist/include/llvm/IR/Use.h vendor/llvm/dist/include/llvm/IR/UseListOrder.h vendor/llvm/dist/include/llvm/IR/User.h vendor/llvm/dist/include/llvm/IR/Value.def vendor/llvm/dist/include/llvm/IR/Value.h vendor/llvm/dist/include/llvm/IR/ValueHandle.h vendor/llvm/dist/include/llvm/IR/ValueMap.h vendor/llvm/dist/include/llvm/IR/ValueSymbolTable.h vendor/llvm/dist/include/llvm/IRReader/IRReader.h vendor/llvm/dist/include/llvm/InitializePasses.h vendor/llvm/dist/include/llvm/LTO/LTOCodeGenerator.h vendor/llvm/dist/include/llvm/LTO/LTOModule.h vendor/llvm/dist/include/llvm/LibDriver/LibDriver.h vendor/llvm/dist/include/llvm/LinkAllPasses.h vendor/llvm/dist/include/llvm/Linker/Linker.h vendor/llvm/dist/include/llvm/MC/ConstantPools.h vendor/llvm/dist/include/llvm/MC/MCAsmBackend.h vendor/llvm/dist/include/llvm/MC/MCAsmInfo.h vendor/llvm/dist/include/llvm/MC/MCAssembler.h vendor/llvm/dist/include/llvm/MC/MCContext.h vendor/llvm/dist/include/llvm/MC/MCDirectives.h vendor/llvm/dist/include/llvm/MC/MCDwarf.h vendor/llvm/dist/include/llvm/MC/MCELFObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCELFStreamer.h vendor/llvm/dist/include/llvm/MC/MCExpr.h vendor/llvm/dist/include/llvm/MC/MCFixedLenDisassembler.h vendor/llvm/dist/include/llvm/MC/MCInstrDesc.h vendor/llvm/dist/include/llvm/MC/MCInstrItineraries.h vendor/llvm/dist/include/llvm/MC/MCLinkerOptimizationHint.h vendor/llvm/dist/include/llvm/MC/MCMachObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCObjectFileInfo.h vendor/llvm/dist/include/llvm/MC/MCObjectStreamer.h vendor/llvm/dist/include/llvm/MC/MCObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCParser/AsmLexer.h vendor/llvm/dist/include/llvm/MC/MCParser/MCAsmLexer.h vendor/llvm/dist/include/llvm/MC/MCParser/MCAsmParserExtension.h vendor/llvm/dist/include/llvm/MC/MCParser/MCParsedAsmOperand.h vendor/llvm/dist/include/llvm/MC/MCRegisterInfo.h vendor/llvm/dist/include/llvm/MC/MCSchedule.h vendor/llvm/dist/include/llvm/MC/MCSection.h vendor/llvm/dist/include/llvm/MC/MCSectionCOFF.h vendor/llvm/dist/include/llvm/MC/MCSectionELF.h vendor/llvm/dist/include/llvm/MC/MCSectionMachO.h vendor/llvm/dist/include/llvm/MC/MCStreamer.h vendor/llvm/dist/include/llvm/MC/MCSubtargetInfo.h vendor/llvm/dist/include/llvm/MC/MCSymbol.h vendor/llvm/dist/include/llvm/MC/MCTargetAsmParser.h vendor/llvm/dist/include/llvm/MC/MCTargetOptions.h vendor/llvm/dist/include/llvm/MC/MCTargetOptionsCommandFlags.h vendor/llvm/dist/include/llvm/MC/MCValue.h vendor/llvm/dist/include/llvm/MC/MCWinCOFFStreamer.h vendor/llvm/dist/include/llvm/MC/MachineLocation.h vendor/llvm/dist/include/llvm/MC/SectionKind.h vendor/llvm/dist/include/llvm/MC/StringTableBuilder.h vendor/llvm/dist/include/llvm/MC/SubtargetFeature.h vendor/llvm/dist/include/llvm/Object/Archive.h vendor/llvm/dist/include/llvm/Object/ArchiveWriter.h vendor/llvm/dist/include/llvm/Object/Binary.h vendor/llvm/dist/include/llvm/Object/COFF.h vendor/llvm/dist/include/llvm/Object/ELF.h vendor/llvm/dist/include/llvm/Object/ELFObjectFile.h vendor/llvm/dist/include/llvm/Object/ELFTypes.h vendor/llvm/dist/include/llvm/Object/Error.h vendor/llvm/dist/include/llvm/Object/MachO.h vendor/llvm/dist/include/llvm/Object/ObjectFile.h vendor/llvm/dist/include/llvm/Object/SymbolicFile.h vendor/llvm/dist/include/llvm/Option/Arg.h vendor/llvm/dist/include/llvm/Option/ArgList.h vendor/llvm/dist/include/llvm/Option/OptTable.h vendor/llvm/dist/include/llvm/Option/Option.h vendor/llvm/dist/include/llvm/PassAnalysisSupport.h vendor/llvm/dist/include/llvm/PassInfo.h vendor/llvm/dist/include/llvm/PassRegistry.h vendor/llvm/dist/include/llvm/PassSupport.h vendor/llvm/dist/include/llvm/ProfileData/CoverageMapping.h vendor/llvm/dist/include/llvm/ProfileData/InstrProf.h vendor/llvm/dist/include/llvm/ProfileData/InstrProfReader.h vendor/llvm/dist/include/llvm/ProfileData/InstrProfWriter.h vendor/llvm/dist/include/llvm/ProfileData/SampleProf.h vendor/llvm/dist/include/llvm/ProfileData/SampleProfReader.h vendor/llvm/dist/include/llvm/ProfileData/SampleProfWriter.h vendor/llvm/dist/include/llvm/Support/AlignOf.h vendor/llvm/dist/include/llvm/Support/Allocator.h vendor/llvm/dist/include/llvm/Support/BlockFrequency.h vendor/llvm/dist/include/llvm/Support/BranchProbability.h vendor/llvm/dist/include/llvm/Support/CBindingWrapping.h vendor/llvm/dist/include/llvm/Support/COFF.h vendor/llvm/dist/include/llvm/Support/CommandLine.h vendor/llvm/dist/include/llvm/Support/Compiler.h vendor/llvm/dist/include/llvm/Support/CrashRecoveryContext.h vendor/llvm/dist/include/llvm/Support/DOTGraphTraits.h vendor/llvm/dist/include/llvm/Support/Debug.h vendor/llvm/dist/include/llvm/Support/Dwarf.def vendor/llvm/dist/include/llvm/Support/Dwarf.h vendor/llvm/dist/include/llvm/Support/ELF.h vendor/llvm/dist/include/llvm/Support/ELFRelocs/PowerPC.def vendor/llvm/dist/include/llvm/Support/ELFRelocs/PowerPC64.def vendor/llvm/dist/include/llvm/Support/Endian.h vendor/llvm/dist/include/llvm/Support/ErrorHandling.h vendor/llvm/dist/include/llvm/Support/ErrorOr.h vendor/llvm/dist/include/llvm/Support/FileOutputBuffer.h vendor/llvm/dist/include/llvm/Support/FileSystem.h vendor/llvm/dist/include/llvm/Support/Format.h vendor/llvm/dist/include/llvm/Support/GCOV.h vendor/llvm/dist/include/llvm/Support/GenericDomTree.h vendor/llvm/dist/include/llvm/Support/GenericDomTreeConstruction.h vendor/llvm/dist/include/llvm/Support/GraphWriter.h vendor/llvm/dist/include/llvm/Support/MachO.h vendor/llvm/dist/include/llvm/Support/ManagedStatic.h vendor/llvm/dist/include/llvm/Support/MathExtras.h vendor/llvm/dist/include/llvm/Support/Memory.h vendor/llvm/dist/include/llvm/Support/MemoryBuffer.h vendor/llvm/dist/include/llvm/Support/OnDiskHashTable.h vendor/llvm/dist/include/llvm/Support/Options.h vendor/llvm/dist/include/llvm/Support/Path.h vendor/llvm/dist/include/llvm/Support/PointerLikeTypeTraits.h vendor/llvm/dist/include/llvm/Support/PrettyStackTrace.h vendor/llvm/dist/include/llvm/Support/Program.h vendor/llvm/dist/include/llvm/Support/Recycler.h vendor/llvm/dist/include/llvm/Support/Registry.h vendor/llvm/dist/include/llvm/Support/SMLoc.h vendor/llvm/dist/include/llvm/Support/ScaledNumber.h vendor/llvm/dist/include/llvm/Support/Signals.h vendor/llvm/dist/include/llvm/Support/StreamingMemoryObject.h vendor/llvm/dist/include/llvm/Support/StringSaver.h vendor/llvm/dist/include/llvm/Support/TargetParser.h vendor/llvm/dist/include/llvm/Support/TargetRegistry.h vendor/llvm/dist/include/llvm/Support/TargetSelect.h vendor/llvm/dist/include/llvm/Support/Threading.h vendor/llvm/dist/include/llvm/Support/Timer.h vendor/llvm/dist/include/llvm/Support/UnicodeCharRanges.h vendor/llvm/dist/include/llvm/Support/Valgrind.h vendor/llvm/dist/include/llvm/Support/YAMLParser.h vendor/llvm/dist/include/llvm/Support/YAMLTraits.h vendor/llvm/dist/include/llvm/Support/circular_raw_ostream.h vendor/llvm/dist/include/llvm/Support/raw_ostream.h vendor/llvm/dist/include/llvm/Support/type_traits.h vendor/llvm/dist/include/llvm/TableGen/Record.h vendor/llvm/dist/include/llvm/Target/CostTable.h vendor/llvm/dist/include/llvm/Target/Target.td vendor/llvm/dist/include/llvm/Target/TargetCallingConv.h vendor/llvm/dist/include/llvm/Target/TargetFrameLowering.h vendor/llvm/dist/include/llvm/Target/TargetInstrInfo.h vendor/llvm/dist/include/llvm/Target/TargetItinerary.td vendor/llvm/dist/include/llvm/Target/TargetLowering.h vendor/llvm/dist/include/llvm/Target/TargetLoweringObjectFile.h vendor/llvm/dist/include/llvm/Target/TargetMachine.h vendor/llvm/dist/include/llvm/Target/TargetOpcodes.h vendor/llvm/dist/include/llvm/Target/TargetOptions.h vendor/llvm/dist/include/llvm/Target/TargetRecip.h vendor/llvm/dist/include/llvm/Target/TargetRegisterInfo.h vendor/llvm/dist/include/llvm/Target/TargetSelectionDAG.td vendor/llvm/dist/include/llvm/Target/TargetSelectionDAGInfo.h vendor/llvm/dist/include/llvm/Target/TargetSubtargetInfo.h vendor/llvm/dist/include/llvm/Transforms/IPO.h vendor/llvm/dist/include/llvm/Transforms/IPO/InlinerPass.h vendor/llvm/dist/include/llvm/Transforms/IPO/LowerBitSets.h vendor/llvm/dist/include/llvm/Transforms/IPO/PassManagerBuilder.h vendor/llvm/dist/include/llvm/Transforms/InstCombine/InstCombineWorklist.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation.h vendor/llvm/dist/include/llvm/Transforms/Scalar.h vendor/llvm/dist/include/llvm/Transforms/Utils/BasicBlockUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/Cloning.h vendor/llvm/dist/include/llvm/Transforms/Utils/Local.h vendor/llvm/dist/include/llvm/Transforms/Utils/LoopUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/LoopVersioning.h vendor/llvm/dist/include/llvm/Transforms/Utils/ModuleUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/SSAUpdaterImpl.h vendor/llvm/dist/include/llvm/Transforms/Utils/SimplifyIndVar.h vendor/llvm/dist/include/llvm/Transforms/Utils/SimplifyLibCalls.h vendor/llvm/dist/include/llvm/Transforms/Utils/UnrollLoop.h vendor/llvm/dist/include/llvm/Transforms/Utils/ValueMapper.h vendor/llvm/dist/include/llvm/module.modulemap vendor/llvm/dist/lib/Analysis/AliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/AliasAnalysisEvaluator.cpp vendor/llvm/dist/lib/Analysis/AliasSetTracker.cpp vendor/llvm/dist/lib/Analysis/Analysis.cpp vendor/llvm/dist/lib/Analysis/BasicAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/BlockFrequencyInfo.cpp vendor/llvm/dist/lib/Analysis/BlockFrequencyInfoImpl.cpp vendor/llvm/dist/lib/Analysis/BranchProbabilityInfo.cpp vendor/llvm/dist/lib/Analysis/CFG.cpp vendor/llvm/dist/lib/Analysis/CFLAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/CMakeLists.txt vendor/llvm/dist/lib/Analysis/CaptureTracking.cpp vendor/llvm/dist/lib/Analysis/CodeMetrics.cpp vendor/llvm/dist/lib/Analysis/ConstantFolding.cpp vendor/llvm/dist/lib/Analysis/CostModel.cpp vendor/llvm/dist/lib/Analysis/Delinearization.cpp vendor/llvm/dist/lib/Analysis/DependenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/DivergenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/IVUsers.cpp vendor/llvm/dist/lib/Analysis/InstructionSimplify.cpp vendor/llvm/dist/lib/Analysis/LLVMBuild.txt vendor/llvm/dist/lib/Analysis/LazyCallGraph.cpp vendor/llvm/dist/lib/Analysis/LazyValueInfo.cpp vendor/llvm/dist/lib/Analysis/Lint.cpp vendor/llvm/dist/lib/Analysis/Loads.cpp vendor/llvm/dist/lib/Analysis/LoopAccessAnalysis.cpp vendor/llvm/dist/lib/Analysis/LoopInfo.cpp vendor/llvm/dist/lib/Analysis/LoopPass.cpp vendor/llvm/dist/lib/Analysis/Makefile vendor/llvm/dist/lib/Analysis/MemDepPrinter.cpp vendor/llvm/dist/lib/Analysis/MemDerefPrinter.cpp vendor/llvm/dist/lib/Analysis/MemoryBuiltins.cpp vendor/llvm/dist/lib/Analysis/MemoryDependenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/RegionInfo.cpp vendor/llvm/dist/lib/Analysis/RegionPrinter.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolutionExpander.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolutionNormalization.cpp vendor/llvm/dist/lib/Analysis/ScopedNoAliasAA.cpp vendor/llvm/dist/lib/Analysis/SparsePropagation.cpp vendor/llvm/dist/lib/Analysis/TargetLibraryInfo.cpp vendor/llvm/dist/lib/Analysis/TargetTransformInfo.cpp vendor/llvm/dist/lib/Analysis/TypeBasedAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/ValueTracking.cpp vendor/llvm/dist/lib/Analysis/VectorUtils.cpp vendor/llvm/dist/lib/AsmParser/LLLexer.cpp vendor/llvm/dist/lib/AsmParser/LLParser.cpp vendor/llvm/dist/lib/AsmParser/LLParser.h vendor/llvm/dist/lib/AsmParser/LLToken.h vendor/llvm/dist/lib/AsmParser/Parser.cpp vendor/llvm/dist/lib/Bitcode/Reader/BitReader.cpp vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.cpp vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriter.cpp vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriterPass.cpp vendor/llvm/dist/lib/Bitcode/Writer/ValueEnumerator.cpp vendor/llvm/dist/lib/Bitcode/Writer/ValueEnumerator.h vendor/llvm/dist/lib/CodeGen/AggressiveAntiDepBreaker.cpp vendor/llvm/dist/lib/CodeGen/AllocationOrder.cpp vendor/llvm/dist/lib/CodeGen/AllocationOrder.h vendor/llvm/dist/lib/CodeGen/Analysis.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/ARMException.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinterHandler.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/ByteStreamer.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIE.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIEHash.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIEHash.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DebugLocEntry.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfExpression.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfUnit.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfUnit.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/EHStreamer.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/EHStreamer.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/WinException.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/WinException.h vendor/llvm/dist/lib/CodeGen/AtomicExpandPass.cpp vendor/llvm/dist/lib/CodeGen/BasicTargetTransformInfo.cpp vendor/llvm/dist/lib/CodeGen/BranchFolding.cpp vendor/llvm/dist/lib/CodeGen/BranchFolding.h vendor/llvm/dist/lib/CodeGen/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/CalcSpillWeights.cpp vendor/llvm/dist/lib/CodeGen/CallingConvLower.cpp vendor/llvm/dist/lib/CodeGen/CodeGen.cpp vendor/llvm/dist/lib/CodeGen/CodeGenPrepare.cpp vendor/llvm/dist/lib/CodeGen/CoreCLRGC.cpp vendor/llvm/dist/lib/CodeGen/CriticalAntiDepBreaker.cpp vendor/llvm/dist/lib/CodeGen/DFAPacketizer.cpp vendor/llvm/dist/lib/CodeGen/DeadMachineInstructionElim.cpp vendor/llvm/dist/lib/CodeGen/DwarfEHPrepare.cpp vendor/llvm/dist/lib/CodeGen/EarlyIfConversion.cpp vendor/llvm/dist/lib/CodeGen/ExecutionDepsFix.cpp vendor/llvm/dist/lib/CodeGen/ExpandISelPseudos.cpp vendor/llvm/dist/lib/CodeGen/GCRootLowering.cpp vendor/llvm/dist/lib/CodeGen/GlobalMerge.cpp vendor/llvm/dist/lib/CodeGen/IfConversion.cpp vendor/llvm/dist/lib/CodeGen/ImplicitNullChecks.cpp vendor/llvm/dist/lib/CodeGen/InlineSpiller.cpp vendor/llvm/dist/lib/CodeGen/InterferenceCache.cpp vendor/llvm/dist/lib/CodeGen/InterleavedAccessPass.cpp vendor/llvm/dist/lib/CodeGen/IntrinsicLowering.cpp vendor/llvm/dist/lib/CodeGen/LLVMBuild.txt vendor/llvm/dist/lib/CodeGen/LLVMTargetMachine.cpp vendor/llvm/dist/lib/CodeGen/LiveDebugVariables.cpp vendor/llvm/dist/lib/CodeGen/LiveDebugVariables.h vendor/llvm/dist/lib/CodeGen/LiveInterval.cpp vendor/llvm/dist/lib/CodeGen/LiveIntervalAnalysis.cpp vendor/llvm/dist/lib/CodeGen/LivePhysRegs.cpp vendor/llvm/dist/lib/CodeGen/LiveRangeCalc.cpp vendor/llvm/dist/lib/CodeGen/LiveRangeCalc.h vendor/llvm/dist/lib/CodeGen/LiveRangeEdit.cpp vendor/llvm/dist/lib/CodeGen/LiveRegMatrix.cpp vendor/llvm/dist/lib/CodeGen/LiveVariables.cpp vendor/llvm/dist/lib/CodeGen/LocalStackSlotAllocation.cpp vendor/llvm/dist/lib/CodeGen/MIRParser/LLVMBuild.txt vendor/llvm/dist/lib/CodeGen/MIRParser/MILexer.cpp vendor/llvm/dist/lib/CodeGen/MIRParser/MILexer.h vendor/llvm/dist/lib/CodeGen/MIRParser/MIParser.cpp vendor/llvm/dist/lib/CodeGen/MIRParser/MIParser.h vendor/llvm/dist/lib/CodeGen/MIRParser/MIRParser.cpp vendor/llvm/dist/lib/CodeGen/MIRPrinter.cpp vendor/llvm/dist/lib/CodeGen/MIRPrintingPass.cpp vendor/llvm/dist/lib/CodeGen/MachineBasicBlock.cpp vendor/llvm/dist/lib/CodeGen/MachineBlockFrequencyInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineBlockPlacement.cpp vendor/llvm/dist/lib/CodeGen/MachineBranchProbabilityInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineCSE.cpp vendor/llvm/dist/lib/CodeGen/MachineCombiner.cpp vendor/llvm/dist/lib/CodeGen/MachineFunction.cpp vendor/llvm/dist/lib/CodeGen/MachineFunctionPass.cpp vendor/llvm/dist/lib/CodeGen/MachineInstr.cpp vendor/llvm/dist/lib/CodeGen/MachineInstrBundle.cpp vendor/llvm/dist/lib/CodeGen/MachineLICM.cpp vendor/llvm/dist/lib/CodeGen/MachineLoopInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineModuleInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineRegisterInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineScheduler.cpp vendor/llvm/dist/lib/CodeGen/MachineSink.cpp vendor/llvm/dist/lib/CodeGen/MachineTraceMetrics.cpp vendor/llvm/dist/lib/CodeGen/MachineVerifier.cpp vendor/llvm/dist/lib/CodeGen/PHIElimination.cpp vendor/llvm/dist/lib/CodeGen/PHIEliminationUtils.cpp vendor/llvm/dist/lib/CodeGen/Passes.cpp vendor/llvm/dist/lib/CodeGen/PeepholeOptimizer.cpp vendor/llvm/dist/lib/CodeGen/PostRASchedulerList.cpp vendor/llvm/dist/lib/CodeGen/ProcessImplicitDefs.cpp vendor/llvm/dist/lib/CodeGen/PrologEpilogInserter.cpp vendor/llvm/dist/lib/CodeGen/PseudoSourceValue.cpp vendor/llvm/dist/lib/CodeGen/RegAllocBasic.cpp vendor/llvm/dist/lib/CodeGen/RegAllocFast.cpp vendor/llvm/dist/lib/CodeGen/RegAllocGreedy.cpp vendor/llvm/dist/lib/CodeGen/RegAllocPBQP.cpp vendor/llvm/dist/lib/CodeGen/RegisterCoalescer.cpp vendor/llvm/dist/lib/CodeGen/RegisterPressure.cpp vendor/llvm/dist/lib/CodeGen/RegisterScavenging.cpp vendor/llvm/dist/lib/CodeGen/ScheduleDAG.cpp vendor/llvm/dist/lib/CodeGen/ScheduleDAGInstrs.cpp vendor/llvm/dist/lib/CodeGen/ScheduleDAGPrinter.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/DAGCombiner.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/FastISel.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/InstrEmitter.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypes.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/StatepointLowering.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/TargetLowering.cpp vendor/llvm/dist/lib/CodeGen/ShadowStackGCLowering.cpp vendor/llvm/dist/lib/CodeGen/ShrinkWrap.cpp vendor/llvm/dist/lib/CodeGen/SjLjEHPrepare.cpp vendor/llvm/dist/lib/CodeGen/SlotIndexes.cpp vendor/llvm/dist/lib/CodeGen/SpillPlacement.cpp vendor/llvm/dist/lib/CodeGen/SplitKit.cpp vendor/llvm/dist/lib/CodeGen/StackMaps.cpp vendor/llvm/dist/lib/CodeGen/StackProtector.cpp vendor/llvm/dist/lib/CodeGen/StackSlotColoring.cpp vendor/llvm/dist/lib/CodeGen/StatepointExampleGC.cpp vendor/llvm/dist/lib/CodeGen/TailDuplication.cpp vendor/llvm/dist/lib/CodeGen/TargetFrameLoweringImpl.cpp vendor/llvm/dist/lib/CodeGen/TargetInstrInfo.cpp vendor/llvm/dist/lib/CodeGen/TargetLoweringBase.cpp vendor/llvm/dist/lib/CodeGen/TargetLoweringObjectFileImpl.cpp vendor/llvm/dist/lib/CodeGen/TargetRegisterInfo.cpp vendor/llvm/dist/lib/CodeGen/TargetSchedule.cpp vendor/llvm/dist/lib/CodeGen/TwoAddressInstructionPass.cpp vendor/llvm/dist/lib/CodeGen/UnreachableBlockElim.cpp vendor/llvm/dist/lib/CodeGen/VirtRegMap.cpp vendor/llvm/dist/lib/CodeGen/WinEHPrepare.cpp vendor/llvm/dist/lib/DebugInfo/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/DWARF/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFContext.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFFormValue.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFUnit.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/SyntaxHighlighting.h vendor/llvm/dist/lib/DebugInfo/LLVMBuild.txt vendor/llvm/dist/lib/DebugInfo/Makefile vendor/llvm/dist/lib/DebugInfo/PDB/PDB.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBContext.cpp vendor/llvm/dist/lib/ExecutionEngine/ExecutionEngine.cpp vendor/llvm/dist/lib/ExecutionEngine/ExecutionEngineBindings.cpp vendor/llvm/dist/lib/ExecutionEngine/Interpreter/Execution.cpp vendor/llvm/dist/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp vendor/llvm/dist/lib/ExecutionEngine/Interpreter/Interpreter.cpp vendor/llvm/dist/lib/ExecutionEngine/Interpreter/Interpreter.h vendor/llvm/dist/lib/ExecutionEngine/MCJIT/MCJIT.cpp vendor/llvm/dist/lib/ExecutionEngine/MCJIT/MCJIT.h vendor/llvm/dist/lib/ExecutionEngine/Orc/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/Orc/IndirectionUtils.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcTargetSupport.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h vendor/llvm/dist/lib/ExecutionEngine/SectionMemoryManager.cpp vendor/llvm/dist/lib/Fuzzer/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/FuzzerCrossOver.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerDriver.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerFlags.def vendor/llvm/dist/lib/Fuzzer/FuzzerIO.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerInterface.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerInterface.h vendor/llvm/dist/lib/Fuzzer/FuzzerInternal.h vendor/llvm/dist/lib/Fuzzer/FuzzerLoop.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerMain.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerMutate.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerTraceState.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerUtil.cpp vendor/llvm/dist/lib/Fuzzer/test/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/test/CounterTest.cpp vendor/llvm/dist/lib/Fuzzer/test/FourIndependentBranchesTest.cpp vendor/llvm/dist/lib/Fuzzer/test/FullCoverageSetTest.cpp vendor/llvm/dist/lib/Fuzzer/test/FuzzerUnittest.cpp vendor/llvm/dist/lib/Fuzzer/test/NullDerefTest.cpp vendor/llvm/dist/lib/Fuzzer/test/SimpleTest.cpp vendor/llvm/dist/lib/Fuzzer/test/TimeoutTest.cpp vendor/llvm/dist/lib/Fuzzer/test/UserSuppliedFuzzerTest.cpp vendor/llvm/dist/lib/Fuzzer/test/fuzzer.test vendor/llvm/dist/lib/Fuzzer/test/lit.cfg vendor/llvm/dist/lib/IR/AsmWriter.cpp vendor/llvm/dist/lib/IR/AttributeImpl.h vendor/llvm/dist/lib/IR/Attributes.cpp vendor/llvm/dist/lib/IR/AutoUpgrade.cpp vendor/llvm/dist/lib/IR/BasicBlock.cpp vendor/llvm/dist/lib/IR/CMakeLists.txt vendor/llvm/dist/lib/IR/ConstantFold.cpp vendor/llvm/dist/lib/IR/ConstantRange.cpp vendor/llvm/dist/lib/IR/Constants.cpp vendor/llvm/dist/lib/IR/ConstantsContext.h vendor/llvm/dist/lib/IR/Core.cpp vendor/llvm/dist/lib/IR/DIBuilder.cpp vendor/llvm/dist/lib/IR/DataLayout.cpp vendor/llvm/dist/lib/IR/DebugInfo.cpp vendor/llvm/dist/lib/IR/DebugInfoMetadata.cpp vendor/llvm/dist/lib/IR/DiagnosticInfo.cpp vendor/llvm/dist/lib/IR/Dominators.cpp vendor/llvm/dist/lib/IR/Function.cpp vendor/llvm/dist/lib/IR/GCOV.cpp vendor/llvm/dist/lib/IR/Globals.cpp vendor/llvm/dist/lib/IR/IRBuilder.cpp vendor/llvm/dist/lib/IR/InlineAsm.cpp vendor/llvm/dist/lib/IR/Instruction.cpp vendor/llvm/dist/lib/IR/Instructions.cpp vendor/llvm/dist/lib/IR/LLVMContext.cpp vendor/llvm/dist/lib/IR/LLVMContextImpl.cpp vendor/llvm/dist/lib/IR/LLVMContextImpl.h vendor/llvm/dist/lib/IR/LegacyPassManager.cpp vendor/llvm/dist/lib/IR/MDBuilder.cpp vendor/llvm/dist/lib/IR/Makefile vendor/llvm/dist/lib/IR/Metadata.cpp vendor/llvm/dist/lib/IR/MetadataImpl.h vendor/llvm/dist/lib/IR/Module.cpp vendor/llvm/dist/lib/IR/Statepoint.cpp vendor/llvm/dist/lib/IR/SymbolTableListTraitsImpl.h vendor/llvm/dist/lib/IR/Type.cpp vendor/llvm/dist/lib/IR/TypeFinder.cpp vendor/llvm/dist/lib/IR/User.cpp vendor/llvm/dist/lib/IR/Value.cpp vendor/llvm/dist/lib/IR/ValueSymbolTable.cpp vendor/llvm/dist/lib/IR/ValueTypes.cpp vendor/llvm/dist/lib/IR/Verifier.cpp vendor/llvm/dist/lib/IRReader/IRReader.cpp vendor/llvm/dist/lib/LTO/LLVMBuild.txt vendor/llvm/dist/lib/LTO/LTOCodeGenerator.cpp vendor/llvm/dist/lib/LTO/LTOModule.cpp vendor/llvm/dist/lib/LibDriver/LibDriver.cpp vendor/llvm/dist/lib/LibDriver/Options.td vendor/llvm/dist/lib/Linker/CMakeLists.txt vendor/llvm/dist/lib/Linker/LinkModules.cpp vendor/llvm/dist/lib/MC/CMakeLists.txt vendor/llvm/dist/lib/MC/ConstantPools.cpp vendor/llvm/dist/lib/MC/ELFObjectWriter.cpp vendor/llvm/dist/lib/MC/MCAsmBackend.cpp vendor/llvm/dist/lib/MC/MCAsmInfo.cpp vendor/llvm/dist/lib/MC/MCAsmInfoCOFF.cpp vendor/llvm/dist/lib/MC/MCAsmInfoDarwin.cpp vendor/llvm/dist/lib/MC/MCAsmStreamer.cpp vendor/llvm/dist/lib/MC/MCAssembler.cpp vendor/llvm/dist/lib/MC/MCContext.cpp vendor/llvm/dist/lib/MC/MCDisassembler/Disassembler.cpp vendor/llvm/dist/lib/MC/MCDwarf.cpp vendor/llvm/dist/lib/MC/MCELFObjectTargetWriter.cpp vendor/llvm/dist/lib/MC/MCELFStreamer.cpp vendor/llvm/dist/lib/MC/MCExpr.cpp vendor/llvm/dist/lib/MC/MCInst.cpp vendor/llvm/dist/lib/MC/MCInstrDesc.cpp vendor/llvm/dist/lib/MC/MCMachOStreamer.cpp vendor/llvm/dist/lib/MC/MCObjectFileInfo.cpp vendor/llvm/dist/lib/MC/MCObjectStreamer.cpp vendor/llvm/dist/lib/MC/MCObjectWriter.cpp vendor/llvm/dist/lib/MC/MCParser/AsmLexer.cpp vendor/llvm/dist/lib/MC/MCParser/AsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/COFFAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/DarwinAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/ELFAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/MCAsmLexer.cpp vendor/llvm/dist/lib/MC/MCParser/MCTargetAsmParser.cpp vendor/llvm/dist/lib/MC/MCSection.cpp vendor/llvm/dist/lib/MC/MCSectionCOFF.cpp vendor/llvm/dist/lib/MC/MCSectionELF.cpp vendor/llvm/dist/lib/MC/MCSectionMachO.cpp vendor/llvm/dist/lib/MC/MCStreamer.cpp vendor/llvm/dist/lib/MC/MCSubtargetInfo.cpp vendor/llvm/dist/lib/MC/MCSymbol.cpp vendor/llvm/dist/lib/MC/MCTargetOptions.cpp vendor/llvm/dist/lib/MC/MCWinEH.cpp vendor/llvm/dist/lib/MC/MachObjectWriter.cpp vendor/llvm/dist/lib/MC/StringTableBuilder.cpp vendor/llvm/dist/lib/MC/SubtargetFeature.cpp vendor/llvm/dist/lib/MC/WinCOFFObjectWriter.cpp vendor/llvm/dist/lib/MC/WinCOFFStreamer.cpp vendor/llvm/dist/lib/Object/Archive.cpp vendor/llvm/dist/lib/Object/ArchiveWriter.cpp vendor/llvm/dist/lib/Object/CMakeLists.txt vendor/llvm/dist/lib/Object/COFFObjectFile.cpp vendor/llvm/dist/lib/Object/COFFYAML.cpp vendor/llvm/dist/lib/Object/ELF.cpp vendor/llvm/dist/lib/Object/ELFYAML.cpp vendor/llvm/dist/lib/Object/Error.cpp vendor/llvm/dist/lib/Object/IRObjectFile.cpp vendor/llvm/dist/lib/Object/MachOObjectFile.cpp vendor/llvm/dist/lib/Object/MachOUniversal.cpp vendor/llvm/dist/lib/Object/Object.cpp vendor/llvm/dist/lib/Object/ObjectFile.cpp vendor/llvm/dist/lib/Object/SymbolicFile.cpp vendor/llvm/dist/lib/Option/Arg.cpp vendor/llvm/dist/lib/Option/ArgList.cpp vendor/llvm/dist/lib/Option/OptTable.cpp vendor/llvm/dist/lib/Option/Option.cpp vendor/llvm/dist/lib/Passes/LLVMBuild.txt vendor/llvm/dist/lib/Passes/PassBuilder.cpp vendor/llvm/dist/lib/Passes/PassRegistry.def vendor/llvm/dist/lib/ProfileData/CoverageMapping.cpp vendor/llvm/dist/lib/ProfileData/CoverageMappingReader.cpp vendor/llvm/dist/lib/ProfileData/InstrProf.cpp vendor/llvm/dist/lib/ProfileData/InstrProfReader.cpp vendor/llvm/dist/lib/ProfileData/InstrProfWriter.cpp vendor/llvm/dist/lib/ProfileData/SampleProf.cpp vendor/llvm/dist/lib/ProfileData/SampleProfReader.cpp vendor/llvm/dist/lib/ProfileData/SampleProfWriter.cpp vendor/llvm/dist/lib/Support/APFloat.cpp vendor/llvm/dist/lib/Support/BlockFrequency.cpp vendor/llvm/dist/lib/Support/BranchProbability.cpp vendor/llvm/dist/lib/Support/CMakeLists.txt vendor/llvm/dist/lib/Support/CommandLine.cpp vendor/llvm/dist/lib/Support/CrashRecoveryContext.cpp vendor/llvm/dist/lib/Support/Dwarf.cpp vendor/llvm/dist/lib/Support/ErrorHandling.cpp vendor/llvm/dist/lib/Support/FileOutputBuffer.cpp vendor/llvm/dist/lib/Support/FoldingSet.cpp vendor/llvm/dist/lib/Support/GraphWriter.cpp vendor/llvm/dist/lib/Support/Host.cpp vendor/llvm/dist/lib/Support/Locale.cpp vendor/llvm/dist/lib/Support/ManagedStatic.cpp vendor/llvm/dist/lib/Support/MemoryBuffer.cpp vendor/llvm/dist/lib/Support/Path.cpp vendor/llvm/dist/lib/Support/PrettyStackTrace.cpp vendor/llvm/dist/lib/Support/Signals.cpp vendor/llvm/dist/lib/Support/Statistic.cpp vendor/llvm/dist/lib/Support/StringRef.cpp vendor/llvm/dist/lib/Support/StringSaver.cpp vendor/llvm/dist/lib/Support/TargetParser.cpp vendor/llvm/dist/lib/Support/TimeValue.cpp vendor/llvm/dist/lib/Support/Timer.cpp vendor/llvm/dist/lib/Support/Triple.cpp vendor/llvm/dist/lib/Support/Unix/Memory.inc vendor/llvm/dist/lib/Support/Unix/Path.inc vendor/llvm/dist/lib/Support/Unix/Process.inc vendor/llvm/dist/lib/Support/Unix/Program.inc vendor/llvm/dist/lib/Support/Unix/Signals.inc vendor/llvm/dist/lib/Support/Unix/Unix.h vendor/llvm/dist/lib/Support/Valgrind.cpp vendor/llvm/dist/lib/Support/Windows/COM.inc vendor/llvm/dist/lib/Support/Windows/DynamicLibrary.inc vendor/llvm/dist/lib/Support/Windows/Memory.inc vendor/llvm/dist/lib/Support/Windows/Path.inc vendor/llvm/dist/lib/Support/Windows/Process.inc vendor/llvm/dist/lib/Support/Windows/Program.inc vendor/llvm/dist/lib/Support/Windows/Signals.inc vendor/llvm/dist/lib/Support/Windows/WindowsSupport.h vendor/llvm/dist/lib/Support/YAMLParser.cpp vendor/llvm/dist/lib/Support/YAMLTraits.cpp vendor/llvm/dist/lib/Support/raw_ostream.cpp vendor/llvm/dist/lib/TableGen/Record.cpp vendor/llvm/dist/lib/TableGen/SetTheory.cpp vendor/llvm/dist/lib/TableGen/TGParser.cpp vendor/llvm/dist/lib/TableGen/TGParser.h vendor/llvm/dist/lib/Target/AArch64/AArch64.td vendor/llvm/dist/lib/Target/AArch64/AArch64A53Fix835769.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64AddressTypePromotion.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64BranchRelaxation.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64CallingConvention.h vendor/llvm/dist/lib/Target/AArch64/AArch64CallingConvention.td vendor/llvm/dist/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64CollectLOH.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ConditionOptimizer.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ConditionalCompares.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64FastISel.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64FrameLowering.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64FrameLowering.h vendor/llvm/dist/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.h vendor/llvm/dist/lib/Target/AArch64/AArch64InstrFormats.td vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.td vendor/llvm/dist/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64MCInstLower.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64MachineFunctionInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64PromoteConstant.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterInfo.td vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.h vendor/llvm/dist/lib/Target/AArch64/AArch64TargetMachine.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64TargetTransformInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64TargetTransformInfo.h vendor/llvm/dist/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp vendor/llvm/dist/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp vendor/llvm/dist/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp vendor/llvm/dist/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h vendor/llvm/dist/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp vendor/llvm/dist/lib/Target/AArch64/Utils/AArch64BaseInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUFrameLowering.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUIntrinsics.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMachineFunction.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp vendor/llvm/dist/lib/Target/AMDGPU/CIInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/CaymanInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/EvergreenInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp vendor/llvm/dist/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUFixupKinds.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/AMDGPU/Processors.td vendor/llvm/dist/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600ISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600InstrInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600InstrInfo.h vendor/llvm/dist/lib/Target/AMDGPU/R600Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600Packetizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600RegisterInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIDefines.h vendor/llvm/dist/lib/Target/AMDGPU/SIFixControlFlowLiveIntervals.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFixSGPRCopies.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFixSGPRLiveRanges.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFoldOperands.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.h vendor/llvm/dist/lib/Target/AMDGPU/SIInsertWaits.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIInstrFormats.td vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.td vendor/llvm/dist/lib/Target/AMDGPU/SIInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/SILowerControlFlow.cpp vendor/llvm/dist/lib/Target/AMDGPU/SILowerI1Copies.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.td vendor/llvm/dist/lib/Target/AMDGPU/SISchedule.td vendor/llvm/dist/lib/Target/AMDGPU/SIShrinkInstructions.cpp vendor/llvm/dist/lib/Target/AMDGPU/SITypeRewriter.cpp vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h vendor/llvm/dist/lib/Target/AMDGPU/Utils/LLVMBuild.txt vendor/llvm/dist/lib/Target/AMDGPU/VIInstructions.td vendor/llvm/dist/lib/Target/ARM/ARM.h vendor/llvm/dist/lib/Target/ARM/ARM.td vendor/llvm/dist/lib/Target/ARM/ARMAsmPrinter.cpp vendor/llvm/dist/lib/Target/ARM/ARMAsmPrinter.h vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.h vendor/llvm/dist/lib/Target/ARM/ARMBaseRegisterInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMBaseRegisterInfo.h vendor/llvm/dist/lib/Target/ARM/ARMCallingConv.h vendor/llvm/dist/lib/Target/ARM/ARMCallingConv.td vendor/llvm/dist/lib/Target/ARM/ARMConstantIslandPass.cpp vendor/llvm/dist/lib/Target/ARM/ARMConstantPoolValue.cpp vendor/llvm/dist/lib/Target/ARM/ARMConstantPoolValue.h vendor/llvm/dist/lib/Target/ARM/ARMExpandPseudoInsts.cpp vendor/llvm/dist/lib/Target/ARM/ARMFastISel.cpp vendor/llvm/dist/lib/Target/ARM/ARMFrameLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMFrameLowering.h vendor/llvm/dist/lib/Target/ARM/ARMISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.h vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.td vendor/llvm/dist/lib/Target/ARM/ARMInstrNEON.td vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb.td vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb2.td vendor/llvm/dist/lib/Target/ARM/ARMInstrVFP.td vendor/llvm/dist/lib/Target/ARM/ARMLoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/ARM/ARMMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMMachineFunctionInfo.h vendor/llvm/dist/lib/Target/ARM/ARMRegisterInfo.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleSwift.td vendor/llvm/dist/lib/Target/ARM/ARMSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.cpp vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.h vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.h vendor/llvm/dist/lib/Target/ARM/ARMTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetTransformInfo.h vendor/llvm/dist/lib/Target/ARM/AsmParser/ARMAsmParser.cpp vendor/llvm/dist/lib/Target/ARM/Disassembler/ARMDisassembler.cpp vendor/llvm/dist/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp vendor/llvm/dist/lib/Target/ARM/InstPrinter/ARMInstPrinter.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMCExpr.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp vendor/llvm/dist/lib/Target/ARM/README.txt vendor/llvm/dist/lib/Target/ARM/Thumb1FrameLowering.cpp vendor/llvm/dist/lib/Target/ARM/Thumb1FrameLowering.h vendor/llvm/dist/lib/Target/ARM/Thumb1InstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2ITBlockPass.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2InstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2SizeReduction.cpp vendor/llvm/dist/lib/Target/BPF/BPF.td vendor/llvm/dist/lib/Target/BPF/BPFISelLowering.cpp vendor/llvm/dist/lib/Target/BPF/InstPrinter/BPFInstPrinter.h vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h vendor/llvm/dist/lib/Target/CppBackend/CPPBackend.cpp vendor/llvm/dist/lib/Target/Hexagon/BitTracker.cpp vendor/llvm/dist/lib/Target/Hexagon/BitTracker.h vendor/llvm/dist/lib/Target/Hexagon/CMakeLists.txt vendor/llvm/dist/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp vendor/llvm/dist/lib/Target/Hexagon/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/Hexagon/Hexagon.h vendor/llvm/dist/lib/Target/Hexagon/Hexagon.td vendor/llvm/dist/lib/Target/Hexagon/HexagonAsmPrinter.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonAsmPrinter.h vendor/llvm/dist/lib/Target/Hexagon/HexagonBitTracker.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonCFGOptimizer.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonCommonGEP.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonExpandPredSpillCode.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonFrameLowering.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonFrameLowering.h vendor/llvm/dist/lib/Target/Hexagon/HexagonGenExtract.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonGenInsert.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonGenPredicate.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonHardwareLoops.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.h vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormats.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormatsV4.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV4.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV5.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoVector.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIntrinsics.td vendor/llvm/dist/lib/Target/Hexagon/HexagonMCInstLower.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonMachineScheduler.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonNewValueJump.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonOperands.td vendor/llvm/dist/lib/Target/Hexagon/HexagonPeephole.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonRegisterInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonRegisterInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonRegisterInfo.td vendor/llvm/dist/lib/Target/Hexagon/HexagonSchedule.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV4.td vendor/llvm/dist/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonSubtarget.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonSubtarget.h vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetMachine.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetMachine.h vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetObjectFile.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp vendor/llvm/dist/lib/Target/Hexagon/LLVMBuild.txt vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCCompound.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h vendor/llvm/dist/lib/Target/Hexagon/Makefile vendor/llvm/dist/lib/Target/LLVMBuild.txt vendor/llvm/dist/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h vendor/llvm/dist/lib/Target/MSP430/MSP430BranchSelector.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430ISelLowering.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430InstrInfo.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430MCInstLower.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430MachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430MachineFunctionInfo.h vendor/llvm/dist/lib/Target/MSP430/README.txt vendor/llvm/dist/lib/Target/Mips/AsmParser/MipsAsmParser.cpp vendor/llvm/dist/lib/Target/Mips/Disassembler/MipsDisassembler.cpp vendor/llvm/dist/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp vendor/llvm/dist/lib/Target/Mips/InstPrinter/MipsInstPrinter.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp vendor/llvm/dist/lib/Target/Mips/MicroMips32r6InstrFormats.td vendor/llvm/dist/lib/Target/Mips/MicroMips32r6InstrInfo.td vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrFPU.td vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrInfo.td vendor/llvm/dist/lib/Target/Mips/Mips.td vendor/llvm/dist/lib/Target/Mips/Mips16FrameLowering.cpp vendor/llvm/dist/lib/Target/Mips/Mips16HardFloat.cpp vendor/llvm/dist/lib/Target/Mips/Mips16ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Mips/Mips16ISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/Mips16InstrInfo.cpp vendor/llvm/dist/lib/Target/Mips/Mips16InstrInfo.td vendor/llvm/dist/lib/Target/Mips/Mips32r6InstrInfo.td vendor/llvm/dist/lib/Target/Mips/Mips64InstrInfo.td vendor/llvm/dist/lib/Target/Mips/Mips64r6InstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.cpp vendor/llvm/dist/lib/Target/Mips/MipsCCState.cpp vendor/llvm/dist/lib/Target/Mips/MipsCallingConv.td vendor/llvm/dist/lib/Target/Mips/MipsConstantIslandPass.cpp vendor/llvm/dist/lib/Target/Mips/MipsDSPInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MipsDSPInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsDelaySlotFiller.cpp vendor/llvm/dist/lib/Target/Mips/MipsFastISel.cpp vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.h vendor/llvm/dist/lib/Target/Mips/MipsInstrFPU.td vendor/llvm/dist/lib/Target/Mips/MipsInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsLongBranch.cpp vendor/llvm/dist/lib/Target/Mips/MipsMSAInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MipsMSAInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsMachineFunction.cpp vendor/llvm/dist/lib/Target/Mips/MipsMachineFunction.h vendor/llvm/dist/lib/Target/Mips/MipsRegisterInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsRegisterInfo.h vendor/llvm/dist/lib/Target/Mips/MipsSEFrameLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEFrameLowering.h vendor/llvm/dist/lib/Target/Mips/MipsSEISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEInstrInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEInstrInfo.h vendor/llvm/dist/lib/Target/Mips/MipsSERegisterInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsSchedule.td vendor/llvm/dist/lib/Target/Mips/MipsSubtarget.cpp vendor/llvm/dist/lib/Target/Mips/MipsSubtarget.h vendor/llvm/dist/lib/Target/Mips/MipsTargetMachine.cpp vendor/llvm/dist/lib/Target/Mips/MipsTargetObjectFile.cpp vendor/llvm/dist/lib/Target/Mips/MipsTargetObjectFile.h vendor/llvm/dist/lib/Target/Mips/MipsTargetStreamer.h vendor/llvm/dist/lib/Target/NVPTX/InstPrinter/NVPTXInstPrinter.h vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.h vendor/llvm/dist/lib/Target/NVPTX/NVPTX.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXAsmPrinter.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXAsmPrinter.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelLowering.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelLowering.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXInstrInfo.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXInstrInfo.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXLowerAlloca.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXMCExpr.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXSection.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetMachine.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetObjectFile.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetTransformInfo.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXUtilities.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXUtilities.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXVector.td vendor/llvm/dist/lib/Target/NVPTX/NVVMReflect.cpp vendor/llvm/dist/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp vendor/llvm/dist/lib/Target/PowerPC/CMakeLists.txt vendor/llvm/dist/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp vendor/llvm/dist/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h vendor/llvm/dist/lib/Target/PowerPC/PPC.h vendor/llvm/dist/lib/Target/PowerPC/PPC.td vendor/llvm/dist/lib/Target/PowerPC/PPCAsmPrinter.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCBranchSelector.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCCTRLoops.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCEarlyReturn.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCFastISel.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCFrameLowering.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCFrameLowering.h vendor/llvm/dist/lib/Target/PowerPC/PPCISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.h vendor/llvm/dist/lib/Target/PowerPC/PPCInstr64Bit.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrQPX.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrVSX.td vendor/llvm/dist/lib/Target/PowerPC/PPCLoopDataPrefetch.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMCInstLower.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCSubtarget.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCSubtarget.h vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetObjectFile.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetTransformInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCVSXCopy.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCVSXFMAMutate.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp vendor/llvm/dist/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp vendor/llvm/dist/lib/Target/Sparc/DelaySlotFiller.cpp vendor/llvm/dist/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp vendor/llvm/dist/lib/Target/Sparc/InstPrinter/SparcInstPrinter.h vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h vendor/llvm/dist/lib/Target/Sparc/SparcAsmPrinter.cpp vendor/llvm/dist/lib/Target/Sparc/SparcCallingConv.td vendor/llvm/dist/lib/Target/Sparc/SparcFrameLowering.cpp vendor/llvm/dist/lib/Target/Sparc/SparcFrameLowering.h vendor/llvm/dist/lib/Target/Sparc/SparcISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Sparc/SparcISelLowering.cpp vendor/llvm/dist/lib/Target/Sparc/SparcISelLowering.h vendor/llvm/dist/lib/Target/Sparc/SparcInstrAliases.td vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.cpp vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.td vendor/llvm/dist/lib/Target/Sparc/SparcRegisterInfo.cpp vendor/llvm/dist/lib/Target/Sparc/SparcRegisterInfo.h vendor/llvm/dist/lib/Target/Sparc/SparcRegisterInfo.td vendor/llvm/dist/lib/Target/Sparc/SparcSubtarget.cpp vendor/llvm/dist/lib/Target/Sparc/SparcSubtarget.h vendor/llvm/dist/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp vendor/llvm/dist/lib/Target/SystemZ/InstPrinter/SystemZInstPrinter.cpp vendor/llvm/dist/lib/Target/SystemZ/InstPrinter/SystemZInstPrinter.h vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp vendor/llvm/dist/lib/Target/SystemZ/README.txt vendor/llvm/dist/lib/Target/SystemZ/SystemZAsmPrinter.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZConstantPoolValue.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZConstantPoolValue.h vendor/llvm/dist/lib/Target/SystemZ/SystemZElimCompare.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZFrameLowering.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZFrameLowering.h vendor/llvm/dist/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZISelLowering.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZISelLowering.h vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrBuilder.h vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrFP.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrFormats.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.h vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.td vendor/llvm/dist/lib/Target/SystemZ/SystemZMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZMachineFunctionInfo.h vendor/llvm/dist/lib/Target/SystemZ/SystemZRegisterInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZRegisterInfo.td vendor/llvm/dist/lib/Target/SystemZ/SystemZShortenInst.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetMachine.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetMachine.h vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetTransformInfo.h vendor/llvm/dist/lib/Target/TargetLoweringObjectFile.cpp vendor/llvm/dist/lib/Target/TargetMachine.cpp vendor/llvm/dist/lib/Target/TargetMachineC.cpp vendor/llvm/dist/lib/Target/TargetRecip.cpp vendor/llvm/dist/lib/Target/WebAssembly/CMakeLists.txt vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h vendor/llvm/dist/lib/Target/WebAssembly/LLVMBuild.txt vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.h vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h vendor/llvm/dist/lib/Target/WebAssembly/Makefile vendor/llvm/dist/lib/Target/WebAssembly/README.txt vendor/llvm/dist/lib/Target/WebAssembly/WebAssembly.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssembly.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFrameLowering.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISelLowering.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrCall.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrConv.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrFloat.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrFormats.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrInfo.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrInfo.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrInteger.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrMemory.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegisterInfo.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegisterInfo.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblySubtarget.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblySubtarget.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h vendor/llvm/dist/lib/Target/X86/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/X86/AsmParser/Makefile vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmInstrumentation.h vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmParser.cpp vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmParserCommon.h vendor/llvm/dist/lib/Target/X86/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/Disassembler/X86Disassembler.cpp vendor/llvm/dist/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp vendor/llvm/dist/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h vendor/llvm/dist/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp vendor/llvm/dist/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h vendor/llvm/dist/lib/Target/X86/InstPrinter/X86InstComments.cpp vendor/llvm/dist/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86BaseInfo.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp vendor/llvm/dist/lib/Target/X86/Utils/X86ShuffleDecode.cpp vendor/llvm/dist/lib/Target/X86/Utils/X86ShuffleDecode.h vendor/llvm/dist/lib/Target/X86/X86.h vendor/llvm/dist/lib/Target/X86/X86.td vendor/llvm/dist/lib/Target/X86/X86AsmPrinter.cpp vendor/llvm/dist/lib/Target/X86/X86AsmPrinter.h vendor/llvm/dist/lib/Target/X86/X86CallFrameOptimization.cpp vendor/llvm/dist/lib/Target/X86/X86CallingConv.h vendor/llvm/dist/lib/Target/X86/X86CallingConv.td vendor/llvm/dist/lib/Target/X86/X86ExpandPseudo.cpp vendor/llvm/dist/lib/Target/X86/X86FastISel.cpp vendor/llvm/dist/lib/Target/X86/X86FixupLEAs.cpp vendor/llvm/dist/lib/Target/X86/X86FloatingPoint.cpp vendor/llvm/dist/lib/Target/X86/X86FrameLowering.cpp vendor/llvm/dist/lib/Target/X86/X86FrameLowering.h vendor/llvm/dist/lib/Target/X86/X86ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.h vendor/llvm/dist/lib/Target/X86/X86InstrAVX512.td vendor/llvm/dist/lib/Target/X86/X86InstrArithmetic.td vendor/llvm/dist/lib/Target/X86/X86InstrBuilder.h vendor/llvm/dist/lib/Target/X86/X86InstrCMovSetCC.td vendor/llvm/dist/lib/Target/X86/X86InstrCompiler.td vendor/llvm/dist/lib/Target/X86/X86InstrControl.td vendor/llvm/dist/lib/Target/X86/X86InstrFMA.td vendor/llvm/dist/lib/Target/X86/X86InstrFPStack.td vendor/llvm/dist/lib/Target/X86/X86InstrFragmentsSIMD.td vendor/llvm/dist/lib/Target/X86/X86InstrInfo.cpp vendor/llvm/dist/lib/Target/X86/X86InstrInfo.h vendor/llvm/dist/lib/Target/X86/X86InstrInfo.td vendor/llvm/dist/lib/Target/X86/X86InstrMMX.td vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td vendor/llvm/dist/lib/Target/X86/X86InstrShiftRotate.td vendor/llvm/dist/lib/Target/X86/X86InstrSystem.td vendor/llvm/dist/lib/Target/X86/X86InstrXOP.td vendor/llvm/dist/lib/Target/X86/X86IntrinsicsInfo.h vendor/llvm/dist/lib/Target/X86/X86MCInstLower.cpp vendor/llvm/dist/lib/Target/X86/X86MachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/X86/X86MachineFunctionInfo.h vendor/llvm/dist/lib/Target/X86/X86PadShortFunction.cpp vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.cpp vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.h vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.td vendor/llvm/dist/lib/Target/X86/X86SelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/X86/X86Subtarget.cpp vendor/llvm/dist/lib/Target/X86/X86Subtarget.h vendor/llvm/dist/lib/Target/X86/X86TargetMachine.cpp vendor/llvm/dist/lib/Target/X86/X86TargetObjectFile.cpp vendor/llvm/dist/lib/Target/X86/X86TargetObjectFile.h vendor/llvm/dist/lib/Target/X86/X86TargetTransformInfo.cpp vendor/llvm/dist/lib/Target/X86/X86TargetTransformInfo.h vendor/llvm/dist/lib/Target/X86/X86WinEHState.cpp vendor/llvm/dist/lib/Target/XCore/Disassembler/XCoreDisassembler.cpp vendor/llvm/dist/lib/Target/XCore/InstPrinter/XCoreInstPrinter.h vendor/llvm/dist/lib/Target/XCore/XCoreAsmPrinter.cpp vendor/llvm/dist/lib/Target/XCore/XCoreFrameLowering.cpp vendor/llvm/dist/lib/Target/XCore/XCoreISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/XCore/XCoreISelLowering.cpp vendor/llvm/dist/lib/Target/XCore/XCoreISelLowering.h vendor/llvm/dist/lib/Target/XCore/XCoreInstrInfo.cpp vendor/llvm/dist/lib/Target/XCore/XCoreLowerThreadLocal.cpp vendor/llvm/dist/lib/Target/XCore/XCoreMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/XCore/XCoreMachineFunctionInfo.h vendor/llvm/dist/lib/Target/XCore/XCoreTargetMachine.cpp vendor/llvm/dist/lib/Target/XCore/XCoreTargetObjectFile.cpp vendor/llvm/dist/lib/Target/XCore/XCoreTargetObjectFile.h vendor/llvm/dist/lib/Target/XCore/XCoreTargetTransformInfo.h vendor/llvm/dist/lib/Transforms/IPO/ArgumentPromotion.cpp vendor/llvm/dist/lib/Transforms/IPO/CMakeLists.txt vendor/llvm/dist/lib/Transforms/IPO/ConstantMerge.cpp vendor/llvm/dist/lib/Transforms/IPO/DeadArgumentElimination.cpp vendor/llvm/dist/lib/Transforms/IPO/ElimAvailExtern.cpp vendor/llvm/dist/lib/Transforms/IPO/ExtractGV.cpp vendor/llvm/dist/lib/Transforms/IPO/FunctionAttrs.cpp vendor/llvm/dist/lib/Transforms/IPO/GlobalDCE.cpp vendor/llvm/dist/lib/Transforms/IPO/GlobalOpt.cpp vendor/llvm/dist/lib/Transforms/IPO/IPO.cpp vendor/llvm/dist/lib/Transforms/IPO/InlineAlways.cpp vendor/llvm/dist/lib/Transforms/IPO/InlineSimple.cpp vendor/llvm/dist/lib/Transforms/IPO/Inliner.cpp vendor/llvm/dist/lib/Transforms/IPO/Internalize.cpp vendor/llvm/dist/lib/Transforms/IPO/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/IPO/LoopExtractor.cpp vendor/llvm/dist/lib/Transforms/IPO/LowerBitSets.cpp vendor/llvm/dist/lib/Transforms/IPO/MergeFunctions.cpp vendor/llvm/dist/lib/Transforms/IPO/PartialInlining.cpp vendor/llvm/dist/lib/Transforms/IPO/PassManagerBuilder.cpp vendor/llvm/dist/lib/Transforms/IPO/PruneEH.cpp vendor/llvm/dist/lib/Transforms/IPO/StripDeadPrototypes.cpp vendor/llvm/dist/lib/Transforms/IPO/StripSymbols.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineAddSub.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCalls.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCasts.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCompares.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineInternal.h vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombinePHI.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineSelect.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineShifts.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineVectorOps.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstructionCombining.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/AddressSanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/BoundsChecking.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/GCOVProfiling.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/InstrProfiling.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/Instrumentation.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/Instrumentation/MemorySanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/SafeStack.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/SanitizerCoverage.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/ThreadSanitizer.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/CMakeLists.txt vendor/llvm/dist/lib/Transforms/ObjCARC/DependencyAnalysis.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARC.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARC.h vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARCContract.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARCOpts.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ProvenanceAnalysis.h vendor/llvm/dist/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/PtrState.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/PtrState.h vendor/llvm/dist/lib/Transforms/Scalar/ADCE.cpp vendor/llvm/dist/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp vendor/llvm/dist/lib/Transforms/Scalar/BDCE.cpp vendor/llvm/dist/lib/Transforms/Scalar/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Scalar/ConstantHoisting.cpp vendor/llvm/dist/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp vendor/llvm/dist/lib/Transforms/Scalar/DCE.cpp vendor/llvm/dist/lib/Transforms/Scalar/DeadStoreElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/EarlyCSE.cpp vendor/llvm/dist/lib/Transforms/Scalar/FlattenCFGPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/Float2Int.cpp vendor/llvm/dist/lib/Transforms/Scalar/GVN.cpp vendor/llvm/dist/lib/Transforms/Scalar/IndVarSimplify.cpp vendor/llvm/dist/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/JumpThreading.cpp vendor/llvm/dist/lib/Transforms/Scalar/LICM.cpp vendor/llvm/dist/lib/Transforms/Scalar/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/Scalar/LoadCombine.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopDeletion.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopDistribute.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopIdiomRecognize.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopInstSimplify.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopInterchange.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopRerollPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopRotation.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopStrengthReduce.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopUnrollPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopUnswitch.cpp vendor/llvm/dist/lib/Transforms/Scalar/LowerAtomic.cpp vendor/llvm/dist/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp vendor/llvm/dist/lib/Transforms/Scalar/MemCpyOptimizer.cpp vendor/llvm/dist/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp vendor/llvm/dist/lib/Transforms/Scalar/NaryReassociate.cpp vendor/llvm/dist/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp vendor/llvm/dist/lib/Transforms/Scalar/PlaceSafepoints.cpp vendor/llvm/dist/lib/Transforms/Scalar/Reassociate.cpp vendor/llvm/dist/lib/Transforms/Scalar/Reg2Mem.cpp vendor/llvm/dist/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp vendor/llvm/dist/lib/Transforms/Scalar/SCCP.cpp vendor/llvm/dist/lib/Transforms/Scalar/SROA.cpp vendor/llvm/dist/lib/Transforms/Scalar/Scalar.cpp vendor/llvm/dist/lib/Transforms/Scalar/ScalarReplAggregates.cpp vendor/llvm/dist/lib/Transforms/Scalar/Scalarizer.cpp vendor/llvm/dist/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp vendor/llvm/dist/lib/Transforms/Scalar/SimplifyCFGPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/Sink.cpp vendor/llvm/dist/lib/Transforms/Scalar/SpeculativeExecution.cpp vendor/llvm/dist/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp vendor/llvm/dist/lib/Transforms/Scalar/StructurizeCFG.cpp vendor/llvm/dist/lib/Transforms/Scalar/TailRecursionElimination.cpp vendor/llvm/dist/lib/Transforms/Utils/ASanStackFrameLayout.cpp vendor/llvm/dist/lib/Transforms/Utils/AddDiscriminators.cpp vendor/llvm/dist/lib/Transforms/Utils/BasicBlockUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/BreakCriticalEdges.cpp vendor/llvm/dist/lib/Transforms/Utils/BuildLibCalls.cpp vendor/llvm/dist/lib/Transforms/Utils/BypassSlowDivision.cpp vendor/llvm/dist/lib/Transforms/Utils/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Utils/CloneFunction.cpp vendor/llvm/dist/lib/Transforms/Utils/CloneModule.cpp vendor/llvm/dist/lib/Transforms/Utils/CodeExtractor.cpp vendor/llvm/dist/lib/Transforms/Utils/CtorUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/DemoteRegToStack.cpp vendor/llvm/dist/lib/Transforms/Utils/FlattenCFG.cpp vendor/llvm/dist/lib/Transforms/Utils/GlobalStatus.cpp vendor/llvm/dist/lib/Transforms/Utils/InlineFunction.cpp vendor/llvm/dist/lib/Transforms/Utils/IntegerDivision.cpp vendor/llvm/dist/lib/Transforms/Utils/LCSSA.cpp vendor/llvm/dist/lib/Transforms/Utils/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/Utils/Local.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopSimplify.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUnroll.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUnrollRuntime.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopVersioning.cpp vendor/llvm/dist/lib/Transforms/Utils/LowerInvoke.cpp vendor/llvm/dist/lib/Transforms/Utils/LowerSwitch.cpp vendor/llvm/dist/lib/Transforms/Utils/Mem2Reg.cpp vendor/llvm/dist/lib/Transforms/Utils/MetaRenamer.cpp vendor/llvm/dist/lib/Transforms/Utils/ModuleUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/PromoteMemoryToRegister.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyIndVar.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyInstructions.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyLibCalls.cpp vendor/llvm/dist/lib/Transforms/Utils/SymbolRewriter.cpp vendor/llvm/dist/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp vendor/llvm/dist/lib/Transforms/Utils/ValueMapper.cpp vendor/llvm/dist/lib/Transforms/Vectorize/BBVectorize.cpp vendor/llvm/dist/lib/Transforms/Vectorize/LoopVectorize.cpp vendor/llvm/dist/lib/Transforms/Vectorize/SLPVectorizer.cpp vendor/llvm/dist/llvm.spec.in vendor/llvm/dist/projects/CMakeLists.txt vendor/llvm/dist/test/Analysis/BasicAA/2007-11-05-SizeCrash.ll vendor/llvm/dist/test/Analysis/BasicAA/2007-12-08-OutOfBoundsCrash.ll vendor/llvm/dist/test/Analysis/BasicAA/cs-cs.ll vendor/llvm/dist/test/Analysis/BasicAA/full-store-partial-alias.ll vendor/llvm/dist/test/Analysis/BasicAA/intrinsics.ll vendor/llvm/dist/test/Analysis/BasicAA/modref.ll vendor/llvm/dist/test/Analysis/BasicAA/noalias-bugs.ll vendor/llvm/dist/test/Analysis/BasicAA/phi-aa.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/bad_input.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/basic.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/loops_with_profile_info.ll vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/basic.ll vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/loop.ll vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/noreturn.ll vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/pr18705.ll vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/pr22718.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/arguments-globals.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/basic-interproc.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/branch-alias.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/const-expr-gep.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/full-store-partial-alias.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/gep-signed-arithmetic.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/multilevel-combine.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/must-and-partial.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/va.ll vendor/llvm/dist/test/Analysis/CallGraph/non-leaf-intrinsics.ll vendor/llvm/dist/test/Analysis/CostModel/AArch64/select.ll vendor/llvm/dist/test/Analysis/CostModel/ARM/cast.ll vendor/llvm/dist/test/Analysis/CostModel/ARM/gep.ll vendor/llvm/dist/test/Analysis/CostModel/ARM/select.ll vendor/llvm/dist/test/Analysis/CostModel/PowerPC/load_store.ll vendor/llvm/dist/test/Analysis/CostModel/X86/arith.ll vendor/llvm/dist/test/Analysis/CostModel/X86/cast.ll vendor/llvm/dist/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll vendor/llvm/dist/test/Analysis/CostModel/X86/reduction.ll vendor/llvm/dist/test/Analysis/CostModel/X86/sitofp.ll vendor/llvm/dist/test/Analysis/CostModel/X86/testshiftashr.ll vendor/llvm/dist/test/Analysis/CostModel/X86/testshiftlshr.ll vendor/llvm/dist/test/Analysis/CostModel/X86/testshiftshl.ll vendor/llvm/dist/test/Analysis/CostModel/X86/uitofp.ll vendor/llvm/dist/test/Analysis/CostModel/no_info.ll vendor/llvm/dist/test/Analysis/Delinearization/a.ll vendor/llvm/dist/test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_3d.ll vendor/llvm/dist/test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_nts_3d.ll vendor/llvm/dist/test/Analysis/Delinearization/multidim_ivs_and_parameteric_offsets_3d.ll vendor/llvm/dist/test/Analysis/DependenceAnalysis/GCD.ll vendor/llvm/dist/test/Analysis/DependenceAnalysis/PR21585.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/NVPTX/diverge.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/2008-09-03-ReadGlobals.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/aliastest.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/chaining-analysis.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/indirect-global.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/modreftest.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/pr12351.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/purecse.ll vendor/llvm/dist/test/Analysis/LazyCallGraph/non-leaf-intrinsics.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/number-of-memchecks.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/pointer-with-unknown-bounds.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/resort-to-memchecks-only.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/safe-no-checks.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/stride-access-dependence.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/underlying-objects-2.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/infer-prestart-no-wrap.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/min-max-exprs.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/scev-aa.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/trip-count.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/zext-wrap.ll vendor/llvm/dist/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll vendor/llvm/dist/test/Analysis/TypeBasedAliasAnalysis/intrinsics.ll vendor/llvm/dist/test/Analysis/TypeBasedAliasAnalysis/licm.ll vendor/llvm/dist/test/Analysis/TypeBasedAliasAnalysis/precedence.ll vendor/llvm/dist/test/Analysis/ValueTracking/memory-dereferenceable.ll vendor/llvm/dist/test/Assembler/2007-09-10-AliasFwdRef.ll vendor/llvm/dist/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll vendor/llvm/dist/test/Assembler/ConstantExprFoldCast.ll vendor/llvm/dist/test/Assembler/ConstantExprNoFold.ll vendor/llvm/dist/test/Assembler/addrspacecast-alias.ll vendor/llvm/dist/test/Assembler/alias-redefinition.ll vendor/llvm/dist/test/Assembler/alias-use-list-order.ll vendor/llvm/dist/test/Assembler/anon-functions.ll vendor/llvm/dist/test/Assembler/debug-info.ll vendor/llvm/dist/test/Assembler/dicompileunit.ll vendor/llvm/dist/test/Assembler/diimportedentity.ll vendor/llvm/dist/test/Assembler/dilexicalblock.ll vendor/llvm/dist/test/Assembler/dilocalvariable-arg-large.ll vendor/llvm/dist/test/Assembler/dilocalvariable.ll vendor/llvm/dist/test/Assembler/dilocation.ll vendor/llvm/dist/test/Assembler/disubprogram.ll vendor/llvm/dist/test/Assembler/drop-debug-info.ll vendor/llvm/dist/test/Assembler/global-addrspace-forwardref.ll vendor/llvm/dist/test/Assembler/internal-hidden-alias.ll vendor/llvm/dist/test/Assembler/internal-protected-alias.ll vendor/llvm/dist/test/Assembler/invalid-dicompileunit-language-bad.ll vendor/llvm/dist/test/Assembler/invalid-dicompileunit-language-overflow.ll vendor/llvm/dist/test/Assembler/invalid-dicompileunit-missing-language.ll vendor/llvm/dist/test/Assembler/invalid-dicompileunit-null-file.ll vendor/llvm/dist/test/Assembler/invalid-dilocalvariable-arg-large.ll vendor/llvm/dist/test/Assembler/invalid-dilocalvariable-arg-negative.ll vendor/llvm/dist/test/Assembler/invalid-dilocalvariable-missing-scope.ll vendor/llvm/dist/test/Assembler/invalid-fwdref2.ll vendor/llvm/dist/test/Assembler/invalid-uselistorder-indexes-duplicated.ll vendor/llvm/dist/test/Assembler/invalid-uselistorder-indexes-one.ll vendor/llvm/dist/test/Assembler/invalid-uselistorder-indexes-ordered.ll vendor/llvm/dist/test/Assembler/invalid-uselistorder-indexes-range.ll vendor/llvm/dist/test/Assembler/invalid-uselistorder-indexes-toofew.ll vendor/llvm/dist/test/Assembler/invalid-uselistorder-indexes-toomany.ll vendor/llvm/dist/test/Assembler/metadata.ll vendor/llvm/dist/test/Assembler/private-hidden-alias.ll vendor/llvm/dist/test/Assembler/private-protected-alias.ll vendor/llvm/dist/test/Assembler/unnamed-alias.ll vendor/llvm/dist/test/Assembler/uselistorder.ll vendor/llvm/dist/test/Bindings/Go/go.test vendor/llvm/dist/test/Bindings/Go/lit.local.cfg vendor/llvm/dist/test/Bindings/OCaml/analysis.ml vendor/llvm/dist/test/Bindings/OCaml/bitreader.ml vendor/llvm/dist/test/Bindings/OCaml/bitwriter.ml vendor/llvm/dist/test/Bindings/OCaml/core.ml vendor/llvm/dist/test/Bindings/OCaml/executionengine.ml vendor/llvm/dist/test/Bindings/OCaml/ext_exc.ml vendor/llvm/dist/test/Bindings/OCaml/ipo.ml vendor/llvm/dist/test/Bindings/OCaml/irreader.ml vendor/llvm/dist/test/Bindings/OCaml/linker.ml vendor/llvm/dist/test/Bindings/OCaml/passmgr_builder.ml vendor/llvm/dist/test/Bindings/OCaml/scalar_opts.ml vendor/llvm/dist/test/Bindings/OCaml/target.ml vendor/llvm/dist/test/Bindings/OCaml/transform_utils.ml vendor/llvm/dist/test/Bindings/OCaml/vectorize.ml vendor/llvm/dist/test/Bindings/llvm-c/Inputs/invalid.ll.bc vendor/llvm/dist/test/Bindings/llvm-c/functions.ll vendor/llvm/dist/test/Bindings/llvm-c/invalid-bitcode.test vendor/llvm/dist/test/Bitcode/DICompileUnit-no-DWOId.ll vendor/llvm/dist/test/Bitcode/Inputs/invalid-abbrev.bc vendor/llvm/dist/test/Bitcode/attributes.ll vendor/llvm/dist/test/Bitcode/debug-loc-again.ll vendor/llvm/dist/test/Bitcode/highLevelStructure.3.2.ll vendor/llvm/dist/test/Bitcode/invalid.ll vendor/llvm/dist/test/Bitcode/invalid.ll.bc vendor/llvm/dist/test/Bitcode/invalid.test vendor/llvm/dist/test/Bitcode/local-linkage-default-visibility.3.4.ll vendor/llvm/dist/test/Bitcode/old-aliases.ll vendor/llvm/dist/test/Bitcode/select.ll vendor/llvm/dist/test/Bitcode/tailcall.ll vendor/llvm/dist/test/Bitcode/use-list-order.ll vendor/llvm/dist/test/BugPoint/metadata.ll vendor/llvm/dist/test/BugPoint/remove_arguments_test.ll vendor/llvm/dist/test/BugPoint/replace-funcs-with-null.ll vendor/llvm/dist/test/CMakeLists.txt vendor/llvm/dist/test/CodeGen/AArch64/aarch64-2014-08-11-MachineCombinerCrash.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-dynamic-stack-layout.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-interleaved-accesses.ll vendor/llvm/dist/test/CodeGen/AArch64/addsub_ext.ll vendor/llvm/dist/test/CodeGen/AArch64/alloca.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-2011-03-17-AsmPrinterCrash.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-aapcs-be.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-aapcs.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-abi_align.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-addr-type-promotion.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-alloca-frame-pointer-offset.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-arith.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-atomic-128.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-atomic.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-ccmp-heuristics.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-ccmp.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-collect-loh.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fast-isel-br.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fmax.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fp128.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-hello.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-indexed-memory.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-indexed-vector-ldst.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-inline-asm.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-join-reserved.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-large-frame.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-ldp.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-long-shift.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-misaligned-memcpy-inline.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-neon-2velem.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-neon-copy.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-patchpoint-webkit_jscc.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-platform-reg.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-popcnt.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-rounding.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-spill-lr.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-stackmap.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-stp.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-strict-align.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-tls-dynamic-together.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-trunc-store.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-vabs.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-variadic-aapcs.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-vector-ext.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-vminmaxnm.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-xaluo.ll vendor/llvm/dist/test/CodeGen/AArch64/atomic-ops.ll vendor/llvm/dist/test/CodeGen/AArch64/bitcast-v2i8.ll vendor/llvm/dist/test/CodeGen/AArch64/bitfield-insert.ll vendor/llvm/dist/test/CodeGen/AArch64/bitfield.ll vendor/llvm/dist/test/CodeGen/AArch64/combine-comparisons-by-cse.ll vendor/llvm/dist/test/CodeGen/AArch64/cpus.ll vendor/llvm/dist/test/CodeGen/AArch64/f16-instructions.ll vendor/llvm/dist/test/CodeGen/AArch64/fast-isel-branch-cond-split.ll vendor/llvm/dist/test/CodeGen/AArch64/fast-isel-logic-op.ll vendor/llvm/dist/test/CodeGen/AArch64/fastcc-reserved.ll vendor/llvm/dist/test/CodeGen/AArch64/fastcc.ll vendor/llvm/dist/test/CodeGen/AArch64/fold-constants.ll vendor/llvm/dist/test/CodeGen/AArch64/fp16-v4-instructions.ll vendor/llvm/dist/test/CodeGen/AArch64/fp16-v8-instructions.ll vendor/llvm/dist/test/CodeGen/AArch64/free-zext.ll vendor/llvm/dist/test/CodeGen/AArch64/func-argpassing.ll vendor/llvm/dist/test/CodeGen/AArch64/func-calls.ll vendor/llvm/dist/test/CodeGen/AArch64/global-alignment.ll vendor/llvm/dist/test/CodeGen/AArch64/global-merge-1.ll vendor/llvm/dist/test/CodeGen/AArch64/global-merge-2.ll vendor/llvm/dist/test/CodeGen/AArch64/global-merge-3.ll vendor/llvm/dist/test/CodeGen/AArch64/global-merge-4.ll vendor/llvm/dist/test/CodeGen/AArch64/global-merge-group-by-use.ll vendor/llvm/dist/test/CodeGen/AArch64/global-merge-ignore-single-use-minsize.ll vendor/llvm/dist/test/CodeGen/AArch64/global-merge-ignore-single-use.ll vendor/llvm/dist/test/CodeGen/AArch64/ldst-opt.ll vendor/llvm/dist/test/CodeGen/AArch64/merge-store.ll vendor/llvm/dist/test/CodeGen/AArch64/mul-lohi.ll vendor/llvm/dist/test/CodeGen/AArch64/nest-register.ll vendor/llvm/dist/test/CodeGen/AArch64/pic-eh-stubs.ll vendor/llvm/dist/test/CodeGen/AArch64/regress-tblgen-chains.ll vendor/llvm/dist/test/CodeGen/AArch64/remat.ll vendor/llvm/dist/test/CodeGen/AArch64/tail-call.ll vendor/llvm/dist/test/CodeGen/AArch64/tailcall-explicit-sret.ll vendor/llvm/dist/test/CodeGen/AArch64/xbfiz.ll vendor/llvm/dist/test/CodeGen/AMDGPU/add.ll vendor/llvm/dist/test/CodeGen/AMDGPU/address-space.ll vendor/llvm/dist/test/CodeGen/AMDGPU/and.ll vendor/llvm/dist/test/CodeGen/AMDGPU/array-ptr-calc-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cgp-addressing-modes.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctpop64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds-negative-offset-addressing-mode-loop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_read2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_read2_superreg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_read2st64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_write2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_write2st64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fadd64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fceil64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcmp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat-address-space.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fma-combine.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmax_legacy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmin_legacy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg-fabs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ftrunc.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/gep-address-space.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-extload-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global_atomics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/half.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa.ll vendor/llvm/dist/test/CodeGen/AMDGPU/imm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/indirect-addressing-si.ll vendor/llvm/dist/test/CodeGen/AMDGPU/indirect-private-64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/insert_vector_elt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/kernel-args.ll vendor/llvm/dist/test/CodeGen/AMDGPU/literals.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.abs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.bfe.i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.class.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.div_fmas.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.trunc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgpu.lrp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.dbg.value.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.memcpy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.round.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-memory-two-objects.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-memory.ll vendor/llvm/dist/test/CodeGen/AMDGPU/max.ll vendor/llvm/dist/test/CodeGen/AMDGPU/merge-stores.ll vendor/llvm/dist/test/CodeGen/AMDGPU/min.ll vendor/llvm/dist/test/CodeGen/AMDGPU/no-shrink-extloads.ll vendor/llvm/dist/test/CodeGen/AMDGPU/operand-folding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/or.ll vendor/llvm/dist/test/CodeGen/AMDGPU/private-memory.ll vendor/llvm/dist/test/CodeGen/AMDGPU/register-count-comments.ll vendor/llvm/dist/test/CodeGen/AMDGPU/reorder-stores.ll vendor/llvm/dist/test/CodeGen/AMDGPU/s_movk_i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/salu-to-valu.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-vs-if-nested-loop-failure.ll vendor/llvm/dist/test/CodeGen/AMDGPU/scratch-buffer.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/set-dx10.ll vendor/llvm/dist/test/CodeGen/AMDGPU/setcc-opt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sext-in-reg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shl.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shl_add_constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shl_add_ptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-sgpr-spill.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-triv-disjoint-mem-access.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sint_to_fp.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/smrd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/split-scalar-i64-add.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sra.ll vendor/llvm/dist/test/CodeGen/AMDGPU/srl.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store-barrier.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sub.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udivrem.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uint_to_fp.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/unsupported-cc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/use-sgpr-multiple-times.ll vendor/llvm/dist/test/CodeGen/AMDGPU/valu-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vop-shrink.ll vendor/llvm/dist/test/CodeGen/AMDGPU/wait.ll vendor/llvm/dist/test/CodeGen/AMDGPU/work-item-intrinsics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/xor.ll vendor/llvm/dist/test/CodeGen/AMDGPU/zero_extend.ll vendor/llvm/dist/test/CodeGen/ARM/2007-03-13-InstrSched.ll vendor/llvm/dist/test/CodeGen/ARM/2009-10-16-Scope.ll vendor/llvm/dist/test/CodeGen/ARM/2010-04-15-ScavengerDebugValue.ll vendor/llvm/dist/test/CodeGen/ARM/2010-05-20-NEONSpillCrash.ll vendor/llvm/dist/test/CodeGen/ARM/2010-05-21-BuildVector.ll vendor/llvm/dist/test/CodeGen/ARM/2010-06-11-vmovdrr-bitcast.ll vendor/llvm/dist/test/CodeGen/ARM/2010-06-21-nondarwin-tc.ll vendor/llvm/dist/test/CodeGen/ARM/2010-06-25-Thumb2ITInvalidIterator.ll vendor/llvm/dist/test/CodeGen/ARM/2010-06-29-PartialRedefFastAlloc.ll vendor/llvm/dist/test/CodeGen/ARM/2010-08-04-StackVariable.ll vendor/llvm/dist/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll vendor/llvm/dist/test/CodeGen/ARM/2011-06-29-MergeGlobalsAlign.ll vendor/llvm/dist/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll vendor/llvm/dist/test/CodeGen/ARM/2011-08-12-vmovqqqq-pseudo.ll vendor/llvm/dist/test/CodeGen/ARM/2011-10-26-memset-inline.ll vendor/llvm/dist/test/CodeGen/ARM/2012-01-24-RegSequenceLiveRange.ll vendor/llvm/dist/test/CodeGen/ARM/2012-05-10-PreferVMOVtoVDUP32.ll vendor/llvm/dist/test/CodeGen/ARM/2012-08-27-CopyPhysRegCrash.ll vendor/llvm/dist/test/CodeGen/ARM/2012-11-14-subs_carry.ll vendor/llvm/dist/test/CodeGen/ARM/2013-10-11-select-stalls.ll vendor/llvm/dist/test/CodeGen/ARM/2014-01-09-pseudo_expand_implicit_reg.ll vendor/llvm/dist/test/CodeGen/ARM/adv-copy-opt.ll vendor/llvm/dist/test/CodeGen/ARM/aliases.ll vendor/llvm/dist/test/CodeGen/ARM/arm-interleaved-accesses.ll vendor/llvm/dist/test/CodeGen/ARM/atomic-64bit.ll vendor/llvm/dist/test/CodeGen/ARM/atomic-cmp.ll vendor/llvm/dist/test/CodeGen/ARM/atomic-cmpxchg.ll vendor/llvm/dist/test/CodeGen/ARM/atomic-op.ll vendor/llvm/dist/test/CodeGen/ARM/atomic-ops-v8.ll vendor/llvm/dist/test/CodeGen/ARM/avoid-cpsr-rmw.ll vendor/llvm/dist/test/CodeGen/ARM/bfi.ll vendor/llvm/dist/test/CodeGen/ARM/build-attributes.ll vendor/llvm/dist/test/CodeGen/ARM/call-tc.ll vendor/llvm/dist/test/CodeGen/ARM/cmpxchg-idioms.ll vendor/llvm/dist/test/CodeGen/ARM/cmpxchg-weak.ll vendor/llvm/dist/test/CodeGen/ARM/coalesce-dbgvalue.ll vendor/llvm/dist/test/CodeGen/ARM/coalesce-subregs.ll vendor/llvm/dist/test/CodeGen/ARM/constants.ll vendor/llvm/dist/test/CodeGen/ARM/dagcombine-concatvector.ll vendor/llvm/dist/test/CodeGen/ARM/debug-frame-vararg.ll vendor/llvm/dist/test/CodeGen/ARM/debug-frame.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-arg.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-blocks.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-branch-folding.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-d16-reg.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-no-frame.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-qreg.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-s16-reg.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-sreg2.ll vendor/llvm/dist/test/CodeGen/ARM/debug-segmented-stacks.ll vendor/llvm/dist/test/CodeGen/ARM/div.ll vendor/llvm/dist/test/CodeGen/ARM/divmod-eabi.ll vendor/llvm/dist/test/CodeGen/ARM/eh-resume-darwin.ll vendor/llvm/dist/test/CodeGen/ARM/fast-isel-align.ll vendor/llvm/dist/test/CodeGen/ARM/fast-isel-ext.ll vendor/llvm/dist/test/CodeGen/ARM/fast-isel-mvn.ll vendor/llvm/dist/test/CodeGen/ARM/fast-isel-pic.ll vendor/llvm/dist/test/CodeGen/ARM/fold-stack-adjust.ll vendor/llvm/dist/test/CodeGen/ARM/fp16-promote.ll vendor/llvm/dist/test/CodeGen/ARM/fp16.ll vendor/llvm/dist/test/CodeGen/ARM/fparith.ll vendor/llvm/dist/test/CodeGen/ARM/global-merge-1.ll vendor/llvm/dist/test/CodeGen/ARM/globals.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt-branch-weight-bug.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt-branch-weight.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt-iter-indbr.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt4.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt5.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt6.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt8.ll vendor/llvm/dist/test/CodeGen/ARM/inlineasm-switch-mode.ll vendor/llvm/dist/test/CodeGen/ARM/ldrd.ll vendor/llvm/dist/test/CodeGen/ARM/load-global.ll vendor/llvm/dist/test/CodeGen/ARM/load-store-flags.ll vendor/llvm/dist/test/CodeGen/ARM/load.ll vendor/llvm/dist/test/CodeGen/ARM/machine-cse-cmp.ll vendor/llvm/dist/test/CodeGen/ARM/memcpy-inline.ll vendor/llvm/dist/test/CodeGen/ARM/memfunc.ll vendor/llvm/dist/test/CodeGen/ARM/neon_minmax.ll vendor/llvm/dist/test/CodeGen/ARM/neon_spill.ll vendor/llvm/dist/test/CodeGen/ARM/neon_vabs.ll vendor/llvm/dist/test/CodeGen/ARM/out-of-registers.ll vendor/llvm/dist/test/CodeGen/ARM/rbit.ll vendor/llvm/dist/test/CodeGen/ARM/reg_sequence.ll vendor/llvm/dist/test/CodeGen/ARM/shifter_operand.ll vendor/llvm/dist/test/CodeGen/ARM/sjlj-prepare-critical-edge.ll vendor/llvm/dist/test/CodeGen/ARM/sjljehprepare-lower-empty-struct.ll vendor/llvm/dist/test/CodeGen/ARM/special-reg-mcore.ll vendor/llvm/dist/test/CodeGen/ARM/spill-q.ll vendor/llvm/dist/test/CodeGen/ARM/tail-merge-branch-weight.ll vendor/llvm/dist/test/CodeGen/ARM/taildup-branch-weight.ll vendor/llvm/dist/test/CodeGen/ARM/test-sharedidx.ll vendor/llvm/dist/test/CodeGen/ARM/thumb-alignment.ll vendor/llvm/dist/test/CodeGen/ARM/thumb1_return_sequence.ll vendor/llvm/dist/test/CodeGen/ARM/thumb2-it-block.ll vendor/llvm/dist/test/CodeGen/ARM/thumb_indirect_calls.ll vendor/llvm/dist/test/CodeGen/ARM/tls-models.ll vendor/llvm/dist/test/CodeGen/ARM/tls3.ll vendor/llvm/dist/test/CodeGen/ARM/unaligned_load_store.ll vendor/llvm/dist/test/CodeGen/ARM/vcge.ll vendor/llvm/dist/test/CodeGen/ARM/vcombine.ll vendor/llvm/dist/test/CodeGen/ARM/vcvt_combine.ll vendor/llvm/dist/test/CodeGen/ARM/vdiv_combine.ll vendor/llvm/dist/test/CodeGen/ARM/vdup.ll vendor/llvm/dist/test/CodeGen/ARM/vector-DAGCombine.ll vendor/llvm/dist/test/CodeGen/ARM/vector-load.ll vendor/llvm/dist/test/CodeGen/ARM/vector-store.ll vendor/llvm/dist/test/CodeGen/ARM/vext.ll vendor/llvm/dist/test/CodeGen/ARM/vfp-regs-dwarf.ll vendor/llvm/dist/test/CodeGen/ARM/vld1.ll vendor/llvm/dist/test/CodeGen/ARM/vld2.ll vendor/llvm/dist/test/CodeGen/ARM/vld3.ll vendor/llvm/dist/test/CodeGen/ARM/vld4.ll vendor/llvm/dist/test/CodeGen/ARM/vlddup.ll vendor/llvm/dist/test/CodeGen/ARM/vldlane.ll vendor/llvm/dist/test/CodeGen/ARM/vminmaxnm.ll vendor/llvm/dist/test/CodeGen/ARM/vmov.ll vendor/llvm/dist/test/CodeGen/ARM/vmul.ll vendor/llvm/dist/test/CodeGen/ARM/vpadd.ll vendor/llvm/dist/test/CodeGen/ARM/vselect_imax.ll vendor/llvm/dist/test/CodeGen/ARM/vst1.ll vendor/llvm/dist/test/CodeGen/ARM/vst2.ll vendor/llvm/dist/test/CodeGen/ARM/vst3.ll vendor/llvm/dist/test/CodeGen/ARM/vst4.ll vendor/llvm/dist/test/CodeGen/ARM/vstlane.ll vendor/llvm/dist/test/CodeGen/ARM/vtrn.ll vendor/llvm/dist/test/CodeGen/ARM/vuzp.ll vendor/llvm/dist/test/CodeGen/ARM/vzip.ll vendor/llvm/dist/test/CodeGen/BPF/sockex2.ll vendor/llvm/dist/test/CodeGen/Generic/2009-03-17-LSR-APInt.ll vendor/llvm/dist/test/CodeGen/Generic/MachineBranchProb.ll vendor/llvm/dist/test/CodeGen/Generic/dbg_value.ll vendor/llvm/dist/test/CodeGen/Generic/overloaded-intrinsic-name.ll vendor/llvm/dist/test/CodeGen/Generic/vector.ll vendor/llvm/dist/test/CodeGen/Hexagon/absaddr-store.ll vendor/llvm/dist/test/CodeGen/Hexagon/adde.ll vendor/llvm/dist/test/CodeGen/Hexagon/alu64.ll vendor/llvm/dist/test/CodeGen/Hexagon/clr_set_toggle.ll vendor/llvm/dist/test/CodeGen/Hexagon/combine.ll vendor/llvm/dist/test/CodeGen/Hexagon/combine_ir.ll vendor/llvm/dist/test/CodeGen/Hexagon/extload-combine.ll vendor/llvm/dist/test/CodeGen/Hexagon/hwloop-dbg.ll vendor/llvm/dist/test/CodeGen/Hexagon/i16_VarArg.ll vendor/llvm/dist/test/CodeGen/Hexagon/i1_VarArg.ll vendor/llvm/dist/test/CodeGen/Hexagon/i8_VarArg.ll vendor/llvm/dist/test/CodeGen/Hexagon/opt-fabs.ll vendor/llvm/dist/test/CodeGen/Hexagon/relax.ll vendor/llvm/dist/test/CodeGen/Hexagon/simple_addend.ll vendor/llvm/dist/test/CodeGen/Hexagon/struct_args.ll vendor/llvm/dist/test/CodeGen/Hexagon/sube.ll vendor/llvm/dist/test/CodeGen/Hexagon/tfr-to-combine.ll vendor/llvm/dist/test/CodeGen/Hexagon/union-1.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-cst-v4i32.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-loadv4i16.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-shuffle.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-splat.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-xor.ll vendor/llvm/dist/test/CodeGen/Inputs/DbgValueOtherTargets.ll vendor/llvm/dist/test/CodeGen/MIR/X86/basic-block-liveins.mir vendor/llvm/dist/test/CodeGen/MIR/X86/dead-register-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-different-implicit-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-different-implicit-register-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-machine-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-named-register-livein.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-number-after-bb.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-register-after-flags.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-subregister-after-colon.mir vendor/llvm/dist/test/CodeGen/MIR/X86/fixed-stack-objects.mir vendor/llvm/dist/test/CodeGen/MIR/X86/global-value-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/immediate-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/implicit-register-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/killed-register-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/large-index-number-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/machine-basic-block-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/machine-instructions.mir vendor/llvm/dist/test/CodeGen/MIR/X86/missing-comma.mir vendor/llvm/dist/test/CodeGen/MIR/X86/missing-implicit-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/named-registers.mir vendor/llvm/dist/test/CodeGen/MIR/X86/null-register-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/register-mask-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/spill-slot-fixed-stack-object-aliased.mir vendor/llvm/dist/test/CodeGen/MIR/X86/spill-slot-fixed-stack-object-immutable.mir vendor/llvm/dist/test/CodeGen/MIR/X86/spill-slot-fixed-stack-objects.mir vendor/llvm/dist/test/CodeGen/MIR/X86/stack-objects.mir vendor/llvm/dist/test/CodeGen/MIR/X86/subregister-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undef-register-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-global-value.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-named-global-value.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-register-class.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-virtual-register.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-instruction.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-machine-basic-block.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-named-machine-basic-block.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-register.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-subregister-index.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unrecognized-character.mir vendor/llvm/dist/test/CodeGen/MIR/X86/variable-sized-stack-object-size-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/variable-sized-stack-objects.mir vendor/llvm/dist/test/CodeGen/MIR/X86/virtual-registers.mir vendor/llvm/dist/test/CodeGen/Mips/addi.ll vendor/llvm/dist/test/CodeGen/Mips/adjust-callstack-sp.ll vendor/llvm/dist/test/CodeGen/Mips/align16.ll vendor/llvm/dist/test/CodeGen/Mips/alloca16.ll vendor/llvm/dist/test/CodeGen/Mips/and1.ll vendor/llvm/dist/test/CodeGen/Mips/asm-large-immediate.ll vendor/llvm/dist/test/CodeGen/Mips/atomicops.ll vendor/llvm/dist/test/CodeGen/Mips/beqzc.ll vendor/llvm/dist/test/CodeGen/Mips/beqzc1.ll vendor/llvm/dist/test/CodeGen/Mips/br-jmp.ll vendor/llvm/dist/test/CodeGen/Mips/brconeq.ll vendor/llvm/dist/test/CodeGen/Mips/brconeqk.ll vendor/llvm/dist/test/CodeGen/Mips/brconeqz.ll vendor/llvm/dist/test/CodeGen/Mips/brconge.ll vendor/llvm/dist/test/CodeGen/Mips/brcongt.ll vendor/llvm/dist/test/CodeGen/Mips/brconle.ll vendor/llvm/dist/test/CodeGen/Mips/brconlt.ll vendor/llvm/dist/test/CodeGen/Mips/brconne.ll vendor/llvm/dist/test/CodeGen/Mips/brconnek.ll vendor/llvm/dist/test/CodeGen/Mips/brconnez.ll vendor/llvm/dist/test/CodeGen/Mips/brind.ll vendor/llvm/dist/test/CodeGen/Mips/brsize3.ll vendor/llvm/dist/test/CodeGen/Mips/brsize3a.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-varargs.ll vendor/llvm/dist/test/CodeGen/Mips/ci2.ll vendor/llvm/dist/test/CodeGen/Mips/cmplarge.ll vendor/llvm/dist/test/CodeGen/Mips/const1.ll vendor/llvm/dist/test/CodeGen/Mips/const4a.ll vendor/llvm/dist/test/CodeGen/Mips/const6.ll vendor/llvm/dist/test/CodeGen/Mips/const6a.ll vendor/llvm/dist/test/CodeGen/Mips/div.ll vendor/llvm/dist/test/CodeGen/Mips/div_rem.ll vendor/llvm/dist/test/CodeGen/Mips/divu.ll vendor/llvm/dist/test/CodeGen/Mips/divu_remu.ll vendor/llvm/dist/test/CodeGen/Mips/eh.ll vendor/llvm/dist/test/CodeGen/Mips/emergency-spill-slot-near-fp.ll vendor/llvm/dist/test/CodeGen/Mips/ex2.ll vendor/llvm/dist/test/CodeGen/Mips/extins.ll vendor/llvm/dist/test/CodeGen/Mips/f16abs.ll vendor/llvm/dist/test/CodeGen/Mips/fixdfsf.ll vendor/llvm/dist/test/CodeGen/Mips/fp16instrinsmc.ll vendor/llvm/dist/test/CodeGen/Mips/fp16mix.ll vendor/llvm/dist/test/CodeGen/Mips/fp16static.ll vendor/llvm/dist/test/CodeGen/Mips/helloworld.ll vendor/llvm/dist/test/CodeGen/Mips/hf16_1.ll vendor/llvm/dist/test/CodeGen/Mips/hf16call32.ll vendor/llvm/dist/test/CodeGen/Mips/hf16call32_body.ll vendor/llvm/dist/test/CodeGen/Mips/hf1_body.ll vendor/llvm/dist/test/CodeGen/Mips/hfptrcall.ll vendor/llvm/dist/test/CodeGen/Mips/i32k.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasm-assembler-directives.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasm-cnstrnt-reg.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasm-cnstrnt-reg64.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasm-operand-code.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasm_constraint.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasmmemop.ll vendor/llvm/dist/test/CodeGen/Mips/insn-zero-size-bb.ll vendor/llvm/dist/test/CodeGen/Mips/jtstat.ll vendor/llvm/dist/test/CodeGen/Mips/l3mc.ll vendor/llvm/dist/test/CodeGen/Mips/lb1.ll vendor/llvm/dist/test/CodeGen/Mips/lbu1.ll vendor/llvm/dist/test/CodeGen/Mips/lcb2.ll vendor/llvm/dist/test/CodeGen/Mips/lcb3c.ll vendor/llvm/dist/test/CodeGen/Mips/lcb4a.ll vendor/llvm/dist/test/CodeGen/Mips/lcb5.ll vendor/llvm/dist/test/CodeGen/Mips/lh1.ll vendor/llvm/dist/test/CodeGen/Mips/lhu1.ll vendor/llvm/dist/test/CodeGen/Mips/llcarry.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/call.ll vendor/llvm/dist/test/CodeGen/Mips/madd-msub.ll vendor/llvm/dist/test/CodeGen/Mips/mbrsize4a.ll vendor/llvm/dist/test/CodeGen/Mips/mips16-hf-attr-2.ll vendor/llvm/dist/test/CodeGen/Mips/mips16-hf-attr.ll vendor/llvm/dist/test/CodeGen/Mips/mips16_32_1.ll vendor/llvm/dist/test/CodeGen/Mips/mips16_32_10.ll vendor/llvm/dist/test/CodeGen/Mips/mips16_32_3.ll vendor/llvm/dist/test/CodeGen/Mips/mips16_32_4.ll vendor/llvm/dist/test/CodeGen/Mips/mips16_32_5.ll vendor/llvm/dist/test/CodeGen/Mips/mips16_32_6.ll vendor/llvm/dist/test/CodeGen/Mips/mips16_32_7.ll vendor/llvm/dist/test/CodeGen/Mips/mips16_fpret.ll vendor/llvm/dist/test/CodeGen/Mips/mips16ex.ll vendor/llvm/dist/test/CodeGen/Mips/mips16fpe.ll vendor/llvm/dist/test/CodeGen/Mips/misha.ll vendor/llvm/dist/test/CodeGen/Mips/msa/elm_copy.ll vendor/llvm/dist/test/CodeGen/Mips/mul.ll vendor/llvm/dist/test/CodeGen/Mips/mulll.ll vendor/llvm/dist/test/CodeGen/Mips/mulull.ll vendor/llvm/dist/test/CodeGen/Mips/nacl-align.ll vendor/llvm/dist/test/CodeGen/Mips/neg1.ll vendor/llvm/dist/test/CodeGen/Mips/no-odd-spreg-msa.ll vendor/llvm/dist/test/CodeGen/Mips/nomips16.ll vendor/llvm/dist/test/CodeGen/Mips/not1.ll vendor/llvm/dist/test/CodeGen/Mips/null.ll vendor/llvm/dist/test/CodeGen/Mips/or1.ll vendor/llvm/dist/test/CodeGen/Mips/powif64_16.ll vendor/llvm/dist/test/CodeGen/Mips/rem.ll vendor/llvm/dist/test/CodeGen/Mips/remu.ll vendor/llvm/dist/test/CodeGen/Mips/s2rem.ll vendor/llvm/dist/test/CodeGen/Mips/sb1.ll vendor/llvm/dist/test/CodeGen/Mips/sel1c.ll vendor/llvm/dist/test/CodeGen/Mips/sel2c.ll vendor/llvm/dist/test/CodeGen/Mips/selTBteqzCmpi.ll vendor/llvm/dist/test/CodeGen/Mips/selTBtnezCmpi.ll vendor/llvm/dist/test/CodeGen/Mips/selTBtnezSlti.ll vendor/llvm/dist/test/CodeGen/Mips/seleq.ll vendor/llvm/dist/test/CodeGen/Mips/seleqk.ll vendor/llvm/dist/test/CodeGen/Mips/selgek.ll vendor/llvm/dist/test/CodeGen/Mips/selgt.ll vendor/llvm/dist/test/CodeGen/Mips/selle.ll vendor/llvm/dist/test/CodeGen/Mips/selltk.ll vendor/llvm/dist/test/CodeGen/Mips/selne.ll vendor/llvm/dist/test/CodeGen/Mips/selnek.ll vendor/llvm/dist/test/CodeGen/Mips/selpat.ll vendor/llvm/dist/test/CodeGen/Mips/seteq.ll vendor/llvm/dist/test/CodeGen/Mips/seteqz.ll vendor/llvm/dist/test/CodeGen/Mips/setge.ll vendor/llvm/dist/test/CodeGen/Mips/setgek.ll vendor/llvm/dist/test/CodeGen/Mips/setle.ll vendor/llvm/dist/test/CodeGen/Mips/setlt.ll vendor/llvm/dist/test/CodeGen/Mips/setltk.ll vendor/llvm/dist/test/CodeGen/Mips/setne.ll vendor/llvm/dist/test/CodeGen/Mips/setuge.ll vendor/llvm/dist/test/CodeGen/Mips/setugt.ll vendor/llvm/dist/test/CodeGen/Mips/setule.ll vendor/llvm/dist/test/CodeGen/Mips/setult.ll vendor/llvm/dist/test/CodeGen/Mips/setultk.ll vendor/llvm/dist/test/CodeGen/Mips/sh1.ll vendor/llvm/dist/test/CodeGen/Mips/simplebr.ll vendor/llvm/dist/test/CodeGen/Mips/sitofp-selectcc-opt.ll vendor/llvm/dist/test/CodeGen/Mips/sll1.ll vendor/llvm/dist/test/CodeGen/Mips/sll2.ll vendor/llvm/dist/test/CodeGen/Mips/sr1.ll vendor/llvm/dist/test/CodeGen/Mips/sra1.ll vendor/llvm/dist/test/CodeGen/Mips/sra2.ll vendor/llvm/dist/test/CodeGen/Mips/srl1.ll vendor/llvm/dist/test/CodeGen/Mips/srl2.ll vendor/llvm/dist/test/CodeGen/Mips/stchar.ll vendor/llvm/dist/test/CodeGen/Mips/stldst.ll vendor/llvm/dist/test/CodeGen/Mips/sub1.ll vendor/llvm/dist/test/CodeGen/Mips/sub2.ll vendor/llvm/dist/test/CodeGen/Mips/tail16.ll vendor/llvm/dist/test/CodeGen/Mips/tailcall.ll vendor/llvm/dist/test/CodeGen/Mips/tls-alias.ll vendor/llvm/dist/test/CodeGen/Mips/tls16.ll vendor/llvm/dist/test/CodeGen/Mips/tls16_2.ll vendor/llvm/dist/test/CodeGen/Mips/trap1.ll vendor/llvm/dist/test/CodeGen/Mips/ul1.ll vendor/llvm/dist/test/CodeGen/Mips/xor1.ll vendor/llvm/dist/test/CodeGen/NVPTX/fma-assoc.ll vendor/llvm/dist/test/CodeGen/NVPTX/lower-aggr-copies.ll vendor/llvm/dist/test/CodeGen/NVPTX/lower-kernel-ptr-arg.ll vendor/llvm/dist/test/CodeGen/NVPTX/symbol-naming.ll vendor/llvm/dist/test/CodeGen/NVPTX/vector-call.ll vendor/llvm/dist/test/CodeGen/PowerPC/2006-01-20-ShiftPartsCrash.ll vendor/llvm/dist/test/CodeGen/PowerPC/2006-08-15-SelectionCrash.ll vendor/llvm/dist/test/CodeGen/PowerPC/2006-12-07-LargeAlloca.ll vendor/llvm/dist/test/CodeGen/PowerPC/2006-12-07-SelectCrash.ll vendor/llvm/dist/test/CodeGen/PowerPC/2007-11-19-VectorSplitting.ll vendor/llvm/dist/test/CodeGen/PowerPC/alias.ll vendor/llvm/dist/test/CodeGen/PowerPC/crbit-asm.ll vendor/llvm/dist/test/CodeGen/PowerPC/cttz.ll vendor/llvm/dist/test/CodeGen/PowerPC/dbg.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-binary.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-br-const.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-call.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-cmp-imm.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-const.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-conversion-p5.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-conversion.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-crash.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-ext.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-fold.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-indirectbr.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-load-store.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-redefinition.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-ret.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-shifter.ll vendor/llvm/dist/test/CodeGen/PowerPC/fastisel-gep-promote-before-add.ll vendor/llvm/dist/test/CodeGen/PowerPC/fp-int-conversions-direct-moves.ll vendor/llvm/dist/test/CodeGen/PowerPC/load-shift-combine.ll vendor/llvm/dist/test/CodeGen/PowerPC/long-compare.ll vendor/llvm/dist/test/CodeGen/PowerPC/memcpy-vec.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc32-i1-vaarg.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-icbt-pwr7.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr17168.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr24546.ll vendor/llvm/dist/test/CodeGen/PowerPC/retaddr2.ll vendor/llvm/dist/test/CodeGen/PowerPC/rm-zext.ll vendor/llvm/dist/test/CodeGen/PowerPC/sdiv-pow2.ll vendor/llvm/dist/test/CodeGen/PowerPC/seteq-0.ll vendor/llvm/dist/test/CodeGen/PowerPC/sjlj.ll vendor/llvm/dist/test/CodeGen/PowerPC/stack-realign.ll vendor/llvm/dist/test/CodeGen/PowerPC/swaps-le-5.ll vendor/llvm/dist/test/CodeGen/PowerPC/unwind-dw2-g.ll vendor/llvm/dist/test/CodeGen/PowerPC/vec_add_sub_quadword.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx_insert_extract_le.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx_scalar_ld_st.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx_shuffle_le.ll vendor/llvm/dist/test/CodeGen/SPARC/2011-01-22-SRet.ll vendor/llvm/dist/test/CodeGen/SPARC/64abi.ll vendor/llvm/dist/test/CodeGen/SPARC/basictest.ll vendor/llvm/dist/test/CodeGen/SPARC/float.ll vendor/llvm/dist/test/CodeGen/SPARC/fp128.ll vendor/llvm/dist/test/CodeGen/SPARC/inlineasm.ll vendor/llvm/dist/test/CodeGen/SPARC/tls.ll vendor/llvm/dist/test/CodeGen/SPARC/varargs.ll vendor/llvm/dist/test/CodeGen/SystemZ/args-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/args-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/args-03.ll vendor/llvm/dist/test/CodeGen/SystemZ/args-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/args-07.ll vendor/llvm/dist/test/CodeGen/SystemZ/asm-17.ll vendor/llvm/dist/test/CodeGen/SystemZ/asm-18.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-abs-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-abs-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-add-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-cmp-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-const-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-move-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-neg-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/insert-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-44.ll vendor/llvm/dist/test/CodeGen/SystemZ/memchr-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/spill-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-args-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-args-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/xor-01.ll vendor/llvm/dist/test/CodeGen/Thumb/2010-07-15-debugOrdering.ll vendor/llvm/dist/test/CodeGen/Thumb/cortex-m0-unaligned-access.ll vendor/llvm/dist/test/CodeGen/Thumb/large-stack.ll vendor/llvm/dist/test/CodeGen/Thumb/ldm-stm-base-materialization.ll vendor/llvm/dist/test/CodeGen/Thumb/pop.ll vendor/llvm/dist/test/CodeGen/Thumb/segmented-stacks.ll vendor/llvm/dist/test/CodeGen/Thumb/vargs.ll vendor/llvm/dist/test/CodeGen/Thumb2/crash.ll vendor/llvm/dist/test/CodeGen/Thumb2/float-cmp.ll vendor/llvm/dist/test/CodeGen/Thumb2/float-intrinsics-double.ll vendor/llvm/dist/test/CodeGen/Thumb2/float-intrinsics-float.ll vendor/llvm/dist/test/CodeGen/Thumb2/ifcvt-compare.ll vendor/llvm/dist/test/CodeGen/Thumb2/machine-licm.ll vendor/llvm/dist/test/CodeGen/Thumb2/pic-load.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ifcvt1.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ifcvt2.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-mulhi.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-smla.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-smul.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-spill-q.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-uxt_rot.ll vendor/llvm/dist/test/CodeGen/Thumb2/v8_IT_1.ll vendor/llvm/dist/test/CodeGen/Thumb2/v8_IT_3.ll vendor/llvm/dist/test/CodeGen/Thumb2/v8_IT_5.ll vendor/llvm/dist/test/CodeGen/X86/2006-10-02-BoolRetCrash.ll vendor/llvm/dist/test/CodeGen/X86/2006-10-19-SwitchUnnecessaryBranching.ll vendor/llvm/dist/test/CodeGen/X86/2007-09-06-ExtWeakAliasee.ll vendor/llvm/dist/test/CodeGen/X86/2008-03-12-ThreadLocalAlias.ll vendor/llvm/dist/test/CodeGen/X86/2008-03-14-SpillerCrash.ll vendor/llvm/dist/test/CodeGen/X86/2008-06-13-NotVolatileLoadStore.ll vendor/llvm/dist/test/CodeGen/X86/2008-09-05-sinttofp-2xi32.ll vendor/llvm/dist/test/CodeGen/X86/2009-02-12-DebugInfoVLA.ll vendor/llvm/dist/test/CodeGen/X86/2009-05-23-dagcombine-shifts.ll vendor/llvm/dist/test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll vendor/llvm/dist/test/CodeGen/X86/2009-06-05-VariableIndexInsert.ll vendor/llvm/dist/test/CodeGen/X86/2009-06-06-ConcatVectors.ll vendor/llvm/dist/test/CodeGen/X86/2009-10-16-Scope.ll vendor/llvm/dist/test/CodeGen/X86/2010-01-18-DbgValue.ll vendor/llvm/dist/test/CodeGen/X86/2010-02-01-DbgValueCrash.ll vendor/llvm/dist/test/CodeGen/X86/2010-05-25-DotDebugLoc.ll vendor/llvm/dist/test/CodeGen/X86/2010-05-26-DotDebugLoc.ll vendor/llvm/dist/test/CodeGen/X86/2010-05-28-Crash.ll vendor/llvm/dist/test/CodeGen/X86/2010-06-01-DeadArg-DbgInfo.ll vendor/llvm/dist/test/CodeGen/X86/2010-07-06-DbgCrash.ll vendor/llvm/dist/test/CodeGen/X86/2010-08-04-StackVariable.ll vendor/llvm/dist/test/CodeGen/X86/2010-09-16-EmptyFilename.ll vendor/llvm/dist/test/CodeGen/X86/2010-11-02-DbgParameter.ll vendor/llvm/dist/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll vendor/llvm/dist/test/CodeGen/X86/2011-10-21-widen-cmp.ll vendor/llvm/dist/test/CodeGen/X86/2011-12-06-AVXVectorExtractCombine.ll vendor/llvm/dist/test/CodeGen/X86/2011-20-21-zext-ui2fp.ll vendor/llvm/dist/test/CodeGen/X86/2012-01-12-extract-sv.ll vendor/llvm/dist/test/CodeGen/X86/2012-08-17-legalizer-crash.ll vendor/llvm/dist/test/CodeGen/X86/2012-1-10-buildvector.ll vendor/llvm/dist/test/CodeGen/X86/2012-11-30-handlemove-dbg.ll vendor/llvm/dist/test/CodeGen/X86/2012-11-30-misched-dbg.ll vendor/llvm/dist/test/CodeGen/X86/2012-11-30-regpres-dbg.ll vendor/llvm/dist/test/CodeGen/X86/3dnow-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/GC/alloc_loop.ll vendor/llvm/dist/test/CodeGen/X86/GC/cg-O0.ll vendor/llvm/dist/test/CodeGen/X86/GC/dynamic-frame-size.ll vendor/llvm/dist/test/CodeGen/X86/GC/lower_gcroot.ll vendor/llvm/dist/test/CodeGen/X86/MachineBranchProb.ll vendor/llvm/dist/test/CodeGen/X86/MachineSink-DbgValue.ll vendor/llvm/dist/test/CodeGen/X86/MergeConsecutiveStores.ll vendor/llvm/dist/test/CodeGen/X86/StackColoring-dbg.ll vendor/llvm/dist/test/CodeGen/X86/aliases.ll vendor/llvm/dist/test/CodeGen/X86/atomic-minmax-i6432.ll vendor/llvm/dist/test/CodeGen/X86/atomic128.ll vendor/llvm/dist/test/CodeGen/X86/atomic_mi.ll vendor/llvm/dist/test/CodeGen/X86/avx-cvt-2.ll vendor/llvm/dist/test/CodeGen/X86/avx-cvt.ll vendor/llvm/dist/test/CodeGen/X86/avx-intrinsics-x86-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/avx-load-store.ll vendor/llvm/dist/test/CodeGen/X86/avx-logic.ll vendor/llvm/dist/test/CodeGen/X86/avx-shift.ll vendor/llvm/dist/test/CodeGen/X86/avx-shuffle-x86_32.ll vendor/llvm/dist/test/CodeGen/X86/avx-splat.ll vendor/llvm/dist/test/CodeGen/X86/avx-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/avx-vperm2x128.ll vendor/llvm/dist/test/CodeGen/X86/avx-win64.ll vendor/llvm/dist/test/CodeGen/X86/avx.ll vendor/llvm/dist/test/CodeGen/X86/avx2-conversions.ll vendor/llvm/dist/test/CodeGen/X86/avx2-intrinsics-x86-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx2-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/avx2-nontemporal.ll vendor/llvm/dist/test/CodeGen/X86/avx2-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/avx512-arith.ll vendor/llvm/dist/test/CodeGen/X86/avx512-build-vector.ll vendor/llvm/dist/test/CodeGen/X86/avx512-calling-conv.ll vendor/llvm/dist/test/CodeGen/X86/avx512-cvt.ll vendor/llvm/dist/test/CodeGen/X86/avx512-fma.ll vendor/llvm/dist/test/CodeGen/X86/avx512-gather-scatter-intrin.ll vendor/llvm/dist/test/CodeGen/X86/avx512-insert-extract.ll vendor/llvm/dist/test/CodeGen/X86/avx512-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512-logic.ll vendor/llvm/dist/test/CodeGen/X86/avx512-mask-op.ll vendor/llvm/dist/test/CodeGen/X86/avx512-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/avx512-vec-cmp.ll vendor/llvm/dist/test/CodeGen/X86/avx512bw-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512bwvl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512dqvl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/buildvec-insertvec.ll vendor/llvm/dist/test/CodeGen/X86/clz.ll vendor/llvm/dist/test/CodeGen/X86/cmp.ll vendor/llvm/dist/test/CodeGen/X86/cmpxchg-clobber-flags.ll vendor/llvm/dist/test/CodeGen/X86/codegen-prepare-cast.ll vendor/llvm/dist/test/CodeGen/X86/coff-comdat.ll vendor/llvm/dist/test/CodeGen/X86/combine-and.ll vendor/llvm/dist/test/CodeGen/X86/combine-avx-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/combine-avx2-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/combine-or.ll vendor/llvm/dist/test/CodeGen/X86/combine-sse41-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/commute-two-addr.ll vendor/llvm/dist/test/CodeGen/X86/copysign-constant-magnitude.ll vendor/llvm/dist/test/CodeGen/X86/dbg-changes-codegen-branch-folding.ll vendor/llvm/dist/test/CodeGen/X86/dbg-changes-codegen.ll vendor/llvm/dist/test/CodeGen/X86/dbg-combine.ll vendor/llvm/dist/test/CodeGen/X86/divide-by-constant.ll vendor/llvm/dist/test/CodeGen/X86/dllexport-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/dllexport.ll vendor/llvm/dist/test/CodeGen/X86/dwarf-comp-dir.ll vendor/llvm/dist/test/CodeGen/X86/dynamic-allocas-VLAs.ll vendor/llvm/dist/test/CodeGen/X86/eh_frame.ll vendor/llvm/dist/test/CodeGen/X86/exedeps-movq.ll vendor/llvm/dist/test/CodeGen/X86/extractelement-shuffle.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-cmp-branch.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-tls.ll vendor/llvm/dist/test/CodeGen/X86/fdiv-combine.ll vendor/llvm/dist/test/CodeGen/X86/fdiv.ll vendor/llvm/dist/test/CodeGen/X86/float-asmprint.ll vendor/llvm/dist/test/CodeGen/X86/floor-soft-float.ll vendor/llvm/dist/test/CodeGen/X86/fma-do-not-commute.ll vendor/llvm/dist/test/CodeGen/X86/fma-intrinsics-phi-213-to-231.ll vendor/llvm/dist/test/CodeGen/X86/fma-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/fma_patterns.ll vendor/llvm/dist/test/CodeGen/X86/fma_patterns_wide.ll vendor/llvm/dist/test/CodeGen/X86/fmaxnum.ll vendor/llvm/dist/test/CodeGen/X86/fminnum.ll vendor/llvm/dist/test/CodeGen/X86/fmul-combines.ll vendor/llvm/dist/test/CodeGen/X86/fold-load-binops.ll vendor/llvm/dist/test/CodeGen/X86/fold-load-unops.ll vendor/llvm/dist/test/CodeGen/X86/force-align-stack-alloca.ll vendor/llvm/dist/test/CodeGen/X86/force-align-stack.ll vendor/llvm/dist/test/CodeGen/X86/fp-fast.ll vendor/llvm/dist/test/CodeGen/X86/fpstack-debuginstr-kill.ll vendor/llvm/dist/test/CodeGen/X86/gcc_except_table.ll vendor/llvm/dist/test/CodeGen/X86/global-sections.ll vendor/llvm/dist/test/CodeGen/X86/h-register-store.ll vendor/llvm/dist/test/CodeGen/X86/h-registers-0.ll vendor/llvm/dist/test/CodeGen/X86/h-registers-1.ll vendor/llvm/dist/test/CodeGen/X86/h-registers-3.ll vendor/llvm/dist/test/CodeGen/X86/half.ll vendor/llvm/dist/test/CodeGen/X86/implicit-null-check.ll vendor/llvm/dist/test/CodeGen/X86/imul.ll vendor/llvm/dist/test/CodeGen/X86/inalloca-stdcall.ll vendor/llvm/dist/test/CodeGen/X86/inalloca.ll vendor/llvm/dist/test/CodeGen/X86/inline-asm-2addr.ll vendor/llvm/dist/test/CodeGen/X86/inline-asm-sp-clobber-memcpy.ll vendor/llvm/dist/test/CodeGen/X86/int-intrinsic.ll vendor/llvm/dist/test/CodeGen/X86/lit.local.cfg vendor/llvm/dist/test/CodeGen/X86/lower-vec-shift-2.ll vendor/llvm/dist/test/CodeGen/X86/lsr-static-addr.ll vendor/llvm/dist/test/CodeGen/X86/machine-combiner.ll vendor/llvm/dist/test/CodeGen/X86/machine-cp.ll vendor/llvm/dist/test/CodeGen/X86/machine-trace-metrics-crash.ll vendor/llvm/dist/test/CodeGen/X86/masked_gather_scatter.ll vendor/llvm/dist/test/CodeGen/X86/masked_memop.ll vendor/llvm/dist/test/CodeGen/X86/memcpy-2.ll vendor/llvm/dist/test/CodeGen/X86/memcpy.ll vendor/llvm/dist/test/CodeGen/X86/misched-code-difference-with-debug.ll vendor/llvm/dist/test/CodeGen/X86/mmx-arg-passing-x86-64.ll vendor/llvm/dist/test/CodeGen/X86/mmx-arg-passing.ll vendor/llvm/dist/test/CodeGen/X86/mmx-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/movntdq-no-avx.ll vendor/llvm/dist/test/CodeGen/X86/movtopush.ll vendor/llvm/dist/test/CodeGen/X86/mult-alt-x86.ll vendor/llvm/dist/test/CodeGen/X86/musttail-varargs.ll vendor/llvm/dist/test/CodeGen/X86/nontemporal-2.ll vendor/llvm/dist/test/CodeGen/X86/nontemporal.ll vendor/llvm/dist/test/CodeGen/X86/null-streamer.ll vendor/llvm/dist/test/CodeGen/X86/opt-ext-uses.ll vendor/llvm/dist/test/CodeGen/X86/or-branch.ll vendor/llvm/dist/test/CodeGen/X86/palignr.ll vendor/llvm/dist/test/CodeGen/X86/pmul.ll vendor/llvm/dist/test/CodeGen/X86/powi.ll vendor/llvm/dist/test/CodeGen/X86/pr11415.ll vendor/llvm/dist/test/CodeGen/X86/pr11468.ll vendor/llvm/dist/test/CodeGen/X86/pr11985.ll vendor/llvm/dist/test/CodeGen/X86/pr13577.ll vendor/llvm/dist/test/CodeGen/X86/pr15267.ll vendor/llvm/dist/test/CodeGen/X86/pr17631.ll vendor/llvm/dist/test/CodeGen/X86/pr22019.ll vendor/llvm/dist/test/CodeGen/X86/psubus.ll vendor/llvm/dist/test/CodeGen/X86/ragreedy-hoist-spill.ll vendor/llvm/dist/test/CodeGen/X86/rodata-relocs.ll vendor/llvm/dist/test/CodeGen/X86/rounding-ops.ll vendor/llvm/dist/test/CodeGen/X86/seh-catch-all-win32.ll vendor/llvm/dist/test/CodeGen/X86/seh-catch-all.ll vendor/llvm/dist/test/CodeGen/X86/seh-except-finally.ll vendor/llvm/dist/test/CodeGen/X86/seh-finally.ll vendor/llvm/dist/test/CodeGen/X86/seh-safe-div-win32.ll vendor/llvm/dist/test/CodeGen/X86/seh-safe-div.ll vendor/llvm/dist/test/CodeGen/X86/seh-stack-realign.ll vendor/llvm/dist/test/CodeGen/X86/setcc-lowering.ll vendor/llvm/dist/test/CodeGen/X86/setcc.ll vendor/llvm/dist/test/CodeGen/X86/shift-bmi2.ll vendor/llvm/dist/test/CodeGen/X86/slow-div.ll vendor/llvm/dist/test/CodeGen/X86/soft-fp.ll vendor/llvm/dist/test/CodeGen/X86/splat-for-size.ll vendor/llvm/dist/test/CodeGen/X86/sqrt-fastmath.ll vendor/llvm/dist/test/CodeGen/X86/sse-align-12.ll vendor/llvm/dist/test/CodeGen/X86/sse-minmax.ll vendor/llvm/dist/test/CodeGen/X86/sse-scalar-fp-arith-unary.ll vendor/llvm/dist/test/CodeGen/X86/sse2-vector-shifts.ll vendor/llvm/dist/test/CodeGen/X86/sse2.ll vendor/llvm/dist/test/CodeGen/X86/sse3-avx-addsub-2.ll vendor/llvm/dist/test/CodeGen/X86/sse3-avx-addsub.ll vendor/llvm/dist/test/CodeGen/X86/sse3.ll vendor/llvm/dist/test/CodeGen/X86/sse41-intrinsics-x86-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/sse41-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/sse41-pmovxrm-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/sse41.ll vendor/llvm/dist/test/CodeGen/X86/sse_partial_update.ll vendor/llvm/dist/test/CodeGen/X86/stack-align-memcpy.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-fp-avx1.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-fp-sse42.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-int-avx1.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-int-avx2.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-int-sse42.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-mmx.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-xop.ll vendor/llvm/dist/test/CodeGen/X86/stack-probe-size.ll vendor/llvm/dist/test/CodeGen/X86/stack-protector-dbginfo.ll vendor/llvm/dist/test/CodeGen/X86/stack-protector-weight.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-allocas.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-call-lowering.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-far-call.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-forward.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-gctransition-call-lowering.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-invoke.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-stack-usage.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-stackmap-format.ll vendor/llvm/dist/test/CodeGen/X86/stdarg.ll vendor/llvm/dist/test/CodeGen/X86/stores-merging.ll vendor/llvm/dist/test/CodeGen/X86/switch-bt.ll vendor/llvm/dist/test/CodeGen/X86/switch-jump-table.ll vendor/llvm/dist/test/CodeGen/X86/switch-order-weight.ll vendor/llvm/dist/test/CodeGen/X86/switch.ll vendor/llvm/dist/test/CodeGen/X86/swizzle-2.ll vendor/llvm/dist/test/CodeGen/X86/system-intrinsics-64.ll vendor/llvm/dist/test/CodeGen/X86/system-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/tail-opts.ll vendor/llvm/dist/test/CodeGen/X86/tailcall-mem-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/tls-models.ll vendor/llvm/dist/test/CodeGen/X86/tls-pie.ll vendor/llvm/dist/test/CodeGen/X86/unaligned-32-byte-memops.ll vendor/llvm/dist/test/CodeGen/X86/unaligned-spill-folding.ll vendor/llvm/dist/test/CodeGen/X86/unknown-location.ll vendor/llvm/dist/test/CodeGen/X86/v2f32.ll vendor/llvm/dist/test/CodeGen/X86/vec_cast2.ll vendor/llvm/dist/test/CodeGen/X86/vec_ctbits.ll vendor/llvm/dist/test/CodeGen/X86/vec_extract-avx.ll vendor/llvm/dist/test/CodeGen/X86/vec_fabs.ll vendor/llvm/dist/test/CodeGen/X86/vec_fp_to_int.ll vendor/llvm/dist/test/CodeGen/X86/vec_insert-5.ll vendor/llvm/dist/test/CodeGen/X86/vec_int_to_fp.ll vendor/llvm/dist/test/CodeGen/X86/vec_sdiv_to_shift.ll vendor/llvm/dist/test/CodeGen/X86/vec_trunc_sext.ll vendor/llvm/dist/test/CodeGen/X86/vec_uint_to_fp.ll vendor/llvm/dist/test/CodeGen/X86/vector-blend.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv.ll vendor/llvm/dist/test/CodeGen/X86/vector-lzcnt-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-lzcnt-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-popcnt-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-popcnt-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-sext.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-lshr-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-lshr-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-shl-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-shl-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-128-v16.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-128-v2.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-128-v4.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-128-v8.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-256-v16.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-256-v32.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-256-v4.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-256-v8.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-512-v16.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-512-v8.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-mmx.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-sse1.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-sse4a.ll vendor/llvm/dist/test/CodeGen/X86/vector-trunc.ll vendor/llvm/dist/test/CodeGen/X86/vector-tzcnt-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-tzcnt-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-zext.ll vendor/llvm/dist/test/CodeGen/X86/vector-zmov.ll vendor/llvm/dist/test/CodeGen/X86/vselect-2.ll vendor/llvm/dist/test/CodeGen/X86/vselect-avx.ll vendor/llvm/dist/test/CodeGen/X86/vselect-minmax.ll vendor/llvm/dist/test/CodeGen/X86/vselect.ll vendor/llvm/dist/test/CodeGen/X86/vshift_scalar.ll vendor/llvm/dist/test/CodeGen/X86/widen_load-2.ll vendor/llvm/dist/test/CodeGen/X86/widen_shuffle-1.ll vendor/llvm/dist/test/CodeGen/X86/win32-eh-states.ll vendor/llvm/dist/test/CodeGen/X86/win32-eh.ll vendor/llvm/dist/test/CodeGen/X86/win32-pic-jumptable.ll vendor/llvm/dist/test/CodeGen/X86/win64_frame.ll vendor/llvm/dist/test/CodeGen/X86/x32-function_pointer-3.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-baseptr.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-double-precision-shift-left.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-double-precision-shift-right.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-double-shifts-Oz-Os-O2.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-pic-10.ll vendor/llvm/dist/test/CodeGen/X86/x86-fold-pshufb.ll vendor/llvm/dist/test/CodeGen/X86/x86-setcc-int-to-fp-combine.ll vendor/llvm/dist/test/CodeGen/X86/x86-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/X86/xop-intrinsics-x86_64.ll vendor/llvm/dist/test/CodeGen/XCore/aliases.ll vendor/llvm/dist/test/CodeGen/XCore/dwarf_debug.ll vendor/llvm/dist/test/DebugInfo/AArch64/big-endian.ll vendor/llvm/dist/test/DebugInfo/AArch64/bitfields.ll vendor/llvm/dist/test/DebugInfo/AArch64/cfi-eof-prologue.ll vendor/llvm/dist/test/DebugInfo/AArch64/coalescing.ll vendor/llvm/dist/test/DebugInfo/AArch64/constant-dbgloc.ll vendor/llvm/dist/test/DebugInfo/AArch64/dwarfdump.ll vendor/llvm/dist/test/DebugInfo/AArch64/frameindices.ll vendor/llvm/dist/test/DebugInfo/AArch64/struct_by_value.ll vendor/llvm/dist/test/DebugInfo/ARM/PR16736.ll vendor/llvm/dist/test/DebugInfo/ARM/bitfield.ll vendor/llvm/dist/test/DebugInfo/ARM/cfi-eof-prologue.ll vendor/llvm/dist/test/DebugInfo/ARM/constant-dbgloc.ll vendor/llvm/dist/test/DebugInfo/ARM/header.ll vendor/llvm/dist/test/DebugInfo/ARM/lowerbdgdeclare_vla.ll vendor/llvm/dist/test/DebugInfo/ARM/multiple-constant-uses-drops-dbgloc.ll vendor/llvm/dist/test/DebugInfo/ARM/s-super-register.ll vendor/llvm/dist/test/DebugInfo/ARM/selectiondag-deadcode.ll vendor/llvm/dist/test/DebugInfo/ARM/single-constant-use-preserves-dbgloc.ll vendor/llvm/dist/test/DebugInfo/ARM/tls.ll vendor/llvm/dist/test/DebugInfo/COFF/asan-module-ctor.ll vendor/llvm/dist/test/DebugInfo/COFF/asan-module-without-functions.ll vendor/llvm/dist/test/DebugInfo/COFF/asm.ll vendor/llvm/dist/test/DebugInfo/COFF/cpp-mangling.ll vendor/llvm/dist/test/DebugInfo/COFF/multifile.ll vendor/llvm/dist/test/DebugInfo/COFF/multifunction.ll vendor/llvm/dist/test/DebugInfo/COFF/simple.ll vendor/llvm/dist/test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-test.cc vendor/llvm/dist/test/DebugInfo/Inputs/gmlt.ll vendor/llvm/dist/test/DebugInfo/Inputs/line.ll vendor/llvm/dist/test/DebugInfo/Mips/InlinedFnLocalVar.ll vendor/llvm/dist/test/DebugInfo/Mips/delay-slot.ll vendor/llvm/dist/test/DebugInfo/Mips/fn-call-line.ll vendor/llvm/dist/test/DebugInfo/PowerPC/tls-fission.ll vendor/llvm/dist/test/DebugInfo/PowerPC/tls.ll vendor/llvm/dist/test/DebugInfo/Sparc/gnu-window-save.ll vendor/llvm/dist/test/DebugInfo/SystemZ/variable-loc.ll vendor/llvm/dist/test/DebugInfo/X86/2010-04-13-PubType.ll vendor/llvm/dist/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll vendor/llvm/dist/test/DebugInfo/X86/2011-12-16-BadStructRef.ll vendor/llvm/dist/test/DebugInfo/X86/DW_AT_byte_size.ll vendor/llvm/dist/test/DebugInfo/X86/DW_AT_linkage_name.ll vendor/llvm/dist/test/DebugInfo/X86/DW_AT_location-reference.ll vendor/llvm/dist/test/DebugInfo/X86/DW_AT_object_pointer.ll vendor/llvm/dist/test/DebugInfo/X86/DW_AT_specification.ll vendor/llvm/dist/test/DebugInfo/X86/DW_AT_stmt_list_sec_offset.ll vendor/llvm/dist/test/DebugInfo/X86/DW_TAG_friend.ll vendor/llvm/dist/test/DebugInfo/X86/InlinedFnLocalVar.ll vendor/llvm/dist/test/DebugInfo/X86/aligned_stack_var.ll vendor/llvm/dist/test/DebugInfo/X86/arange-and-stub.ll vendor/llvm/dist/test/DebugInfo/X86/arange.ll vendor/llvm/dist/test/DebugInfo/X86/arguments.ll vendor/llvm/dist/test/DebugInfo/X86/array.ll vendor/llvm/dist/test/DebugInfo/X86/array2.ll vendor/llvm/dist/test/DebugInfo/X86/bitfields.ll vendor/llvm/dist/test/DebugInfo/X86/block-capture.ll vendor/llvm/dist/test/DebugInfo/X86/byvalstruct.ll vendor/llvm/dist/test/DebugInfo/X86/c-type-units.ll vendor/llvm/dist/test/DebugInfo/X86/coff_debug_info_type.ll vendor/llvm/dist/test/DebugInfo/X86/coff_relative_names.ll vendor/llvm/dist/test/DebugInfo/X86/concrete_out_of_line.ll vendor/llvm/dist/test/DebugInfo/X86/constant-aggregate.ll vendor/llvm/dist/test/DebugInfo/X86/cu-ranges-odr.ll vendor/llvm/dist/test/DebugInfo/X86/cu-ranges.ll vendor/llvm/dist/test/DebugInfo/X86/data_member_location.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-byval-parameter.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-const-int.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-const.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-declare-arg.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-declare.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-file-name.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-i128-const.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-merge-loc-entry.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-prolog-end.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-subrange.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-const-byref.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-dag-combine.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-inlined-parameter.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-isel.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-location.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-range.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-terminator.ll vendor/llvm/dist/test/DebugInfo/X86/dbg_value_direct.ll vendor/llvm/dist/test/DebugInfo/X86/debug-dead-local-var.ll vendor/llvm/dist/test/DebugInfo/X86/debug-info-access.ll vendor/llvm/dist/test/DebugInfo/X86/debug-info-block-captured-self.ll vendor/llvm/dist/test/DebugInfo/X86/debug-info-blocks.ll vendor/llvm/dist/test/DebugInfo/X86/debug-info-packed-struct.ll vendor/llvm/dist/test/DebugInfo/X86/debug-info-static-member.ll vendor/llvm/dist/test/DebugInfo/X86/debug-loc-asan.ll vendor/llvm/dist/test/DebugInfo/X86/debug-loc-empty-entries.ll vendor/llvm/dist/test/DebugInfo/X86/debug-loc-offset.ll vendor/llvm/dist/test/DebugInfo/X86/debug-ranges-offset.ll vendor/llvm/dist/test/DebugInfo/X86/debug_frame.ll vendor/llvm/dist/test/DebugInfo/X86/decl-derived-member.ll vendor/llvm/dist/test/DebugInfo/X86/deleted-bit-piece.ll vendor/llvm/dist/test/DebugInfo/X86/discriminator.ll vendor/llvm/dist/test/DebugInfo/X86/dwarf-aranges-no-dwarf-labels.ll vendor/llvm/dist/test/DebugInfo/X86/dwarf-aranges.ll vendor/llvm/dist/test/DebugInfo/X86/dwarf-public-names.ll vendor/llvm/dist/test/DebugInfo/X86/dwarf-pubnames-split.ll vendor/llvm/dist/test/DebugInfo/X86/earlydup-crash.ll vendor/llvm/dist/test/DebugInfo/X86/elf-names.ll vendor/llvm/dist/test/DebugInfo/X86/empty-and-one-elem-array.ll vendor/llvm/dist/test/DebugInfo/X86/empty-array.ll vendor/llvm/dist/test/DebugInfo/X86/empty.ll vendor/llvm/dist/test/DebugInfo/X86/ending-run.ll vendor/llvm/dist/test/DebugInfo/X86/enum-class.ll vendor/llvm/dist/test/DebugInfo/X86/enum-fwd-decl.ll vendor/llvm/dist/test/DebugInfo/X86/fission-cu.ll vendor/llvm/dist/test/DebugInfo/X86/fission-hash.ll vendor/llvm/dist/test/DebugInfo/X86/fission-inline.ll vendor/llvm/dist/test/DebugInfo/X86/fission-ranges.ll vendor/llvm/dist/test/DebugInfo/X86/float_const.ll vendor/llvm/dist/test/DebugInfo/X86/formal_parameter.ll vendor/llvm/dist/test/DebugInfo/X86/frame-register.ll vendor/llvm/dist/test/DebugInfo/X86/generate-odr-hash.ll vendor/llvm/dist/test/DebugInfo/X86/ghost-sdnode-dbgvalues.ll vendor/llvm/dist/test/DebugInfo/X86/gnu-public-names-empty.ll vendor/llvm/dist/test/DebugInfo/X86/gnu-public-names.ll vendor/llvm/dist/test/DebugInfo/X86/header.ll vendor/llvm/dist/test/DebugInfo/X86/inline-member-function.ll vendor/llvm/dist/test/DebugInfo/X86/inline-seldag-test.ll vendor/llvm/dist/test/DebugInfo/X86/inlined-formal-parameter.ll vendor/llvm/dist/test/DebugInfo/X86/inlined-indirect-value.ll vendor/llvm/dist/test/DebugInfo/X86/instcombine-instrinsics.ll vendor/llvm/dist/test/DebugInfo/X86/lexical_block.ll vendor/llvm/dist/test/DebugInfo/X86/line-info.ll vendor/llvm/dist/test/DebugInfo/X86/linkage-name.ll vendor/llvm/dist/test/DebugInfo/X86/low-pc-cu.ll vendor/llvm/dist/test/DebugInfo/X86/memberfnptr.ll vendor/llvm/dist/test/DebugInfo/X86/mi-print.ll vendor/llvm/dist/test/DebugInfo/X86/misched-dbg-value.ll vendor/llvm/dist/test/DebugInfo/X86/missing-file-line.ll vendor/llvm/dist/test/DebugInfo/X86/multiple-aranges.ll vendor/llvm/dist/test/DebugInfo/X86/multiple-at-const-val.ll vendor/llvm/dist/test/DebugInfo/X86/nodebug_with_debug_loc.ll vendor/llvm/dist/test/DebugInfo/X86/nondefault-subrange-array.ll vendor/llvm/dist/test/DebugInfo/X86/nophysreg.ll vendor/llvm/dist/test/DebugInfo/X86/objc-fwd-decl.ll vendor/llvm/dist/test/DebugInfo/X86/objc-property-void.ll vendor/llvm/dist/test/DebugInfo/X86/op_deref.ll vendor/llvm/dist/test/DebugInfo/X86/parameters.ll vendor/llvm/dist/test/DebugInfo/X86/pieces-1.ll vendor/llvm/dist/test/DebugInfo/X86/pieces-2.ll vendor/llvm/dist/test/DebugInfo/X86/pieces-3.ll vendor/llvm/dist/test/DebugInfo/X86/pointer-type-size.ll vendor/llvm/dist/test/DebugInfo/X86/pr11300.ll vendor/llvm/dist/test/DebugInfo/X86/pr12831.ll vendor/llvm/dist/test/DebugInfo/X86/pr13303.ll vendor/llvm/dist/test/DebugInfo/X86/pr19307.ll vendor/llvm/dist/test/DebugInfo/X86/processes-relocations.ll vendor/llvm/dist/test/DebugInfo/X86/prologue-stack.ll vendor/llvm/dist/test/DebugInfo/X86/ref_addr_relocation.ll vendor/llvm/dist/test/DebugInfo/X86/reference-argument.ll vendor/llvm/dist/test/DebugInfo/X86/rvalue-ref.ll vendor/llvm/dist/test/DebugInfo/X86/sret.ll vendor/llvm/dist/test/DebugInfo/X86/sroasplit-1.ll vendor/llvm/dist/test/DebugInfo/X86/sroasplit-2.ll vendor/llvm/dist/test/DebugInfo/X86/sroasplit-3.ll vendor/llvm/dist/test/DebugInfo/X86/sroasplit-4.ll vendor/llvm/dist/test/DebugInfo/X86/sroasplit-5.ll vendor/llvm/dist/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll vendor/llvm/dist/test/DebugInfo/X86/stmt-list.ll vendor/llvm/dist/test/DebugInfo/X86/stringpool.ll vendor/llvm/dist/test/DebugInfo/X86/struct-loc.ll vendor/llvm/dist/test/DebugInfo/X86/subrange-type.ll vendor/llvm/dist/test/DebugInfo/X86/subreg.ll vendor/llvm/dist/test/DebugInfo/X86/subregisters.ll vendor/llvm/dist/test/DebugInfo/X86/template.ll vendor/llvm/dist/test/DebugInfo/X86/tls.ll vendor/llvm/dist/test/DebugInfo/X86/type_units_with_addresses.ll vendor/llvm/dist/test/DebugInfo/X86/union-const.ll vendor/llvm/dist/test/DebugInfo/X86/union-template.ll vendor/llvm/dist/test/DebugInfo/X86/vector.ll vendor/llvm/dist/test/DebugInfo/X86/vla.ll vendor/llvm/dist/test/DebugInfo/dwarfdump-accel.test vendor/llvm/dist/test/DebugInfo/dwarfdump-dump-flags.test vendor/llvm/dist/test/DebugInfo/llvm-symbolizer.test vendor/llvm/dist/test/ExecutionEngine/MCJIT/eh-lg-pic.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/eh-sm-pic.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/eh.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/multi-module-eh-a.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/eh.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/multi-module-eh-a.ll vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/AArch64/MachO_ARM64_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/ARM/MachO_ARM_PIC_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/Mips/ELF_Mips64r2N64_PIC_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/Mips/ELF_O32_PIC_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/MachO_x86-64_PIC_relocations.s vendor/llvm/dist/test/ExecutionEngine/lit.local.cfg vendor/llvm/dist/test/Feature/alias2.ll vendor/llvm/dist/test/Feature/aliases.ll vendor/llvm/dist/test/Feature/callingconventions.ll vendor/llvm/dist/test/Feature/comdat.ll vendor/llvm/dist/test/Feature/exception.ll vendor/llvm/dist/test/Feature/optnone-llc.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/basic.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/debug_info.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/do-not-touch-comdat-global.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/instrument-dynamic-allocas.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/stack_dynamic_alloca.ll vendor/llvm/dist/test/Instrumentation/DataFlowSanitizer/abilist.ll vendor/llvm/dist/test/Instrumentation/DataFlowSanitizer/debug.ll vendor/llvm/dist/test/Instrumentation/DataFlowSanitizer/prefix-rename.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/PR23499.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/linkage.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/no-counters.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/noruntime.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/platform.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/profiling.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/atomics.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/check_access_address.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/msan_basic.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/mul_by_constant.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/origin-alignment.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/return_from_main.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/store-origin.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/unreachable.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/vector_cvt.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/vector_shift.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/coverage-dbg.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/coverage.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/coverage2-dbg.ll vendor/llvm/dist/test/Instrumentation/ThreadSanitizer/atomic.ll vendor/llvm/dist/test/JitListener/multiple.ll vendor/llvm/dist/test/JitListener/simple.ll vendor/llvm/dist/test/LTO/X86/Inputs/invalid.ll.bc vendor/llvm/dist/test/LTO/X86/bcsection.ll vendor/llvm/dist/test/LTO/X86/current-section.ll vendor/llvm/dist/test/LTO/X86/diagnostic-handler-noexit.ll vendor/llvm/dist/test/LTO/X86/diagnostic-handler-remarks.ll vendor/llvm/dist/test/LTO/X86/invalid.ll vendor/llvm/dist/test/LTO/X86/list-symbols.ll vendor/llvm/dist/test/Linker/2003-01-30-LinkerRename.ll vendor/llvm/dist/test/Linker/2003-04-23-LinkOnceLost.ll vendor/llvm/dist/test/Linker/2003-05-31-LinkerRename.ll vendor/llvm/dist/test/Linker/2008-03-05-AliasReference.ll vendor/llvm/dist/test/Linker/2008-07-06-AliasFnDecl.ll vendor/llvm/dist/test/Linker/2008-07-06-AliasWeakDest.ll vendor/llvm/dist/test/Linker/2009-09-03-mdnode.ll vendor/llvm/dist/test/Linker/2009-09-03-mdnode2.ll vendor/llvm/dist/test/Linker/2011-08-04-DebugLoc.ll vendor/llvm/dist/test/Linker/2011-08-04-DebugLoc2.ll vendor/llvm/dist/test/Linker/2011-08-04-Metadata.ll vendor/llvm/dist/test/Linker/2011-08-04-Metadata2.ll vendor/llvm/dist/test/Linker/2011-08-18-unique-class-type.ll vendor/llvm/dist/test/Linker/2011-08-18-unique-class-type2.ll vendor/llvm/dist/test/Linker/2011-08-18-unique-debug-type.ll vendor/llvm/dist/test/Linker/2011-08-18-unique-debug-type2.ll vendor/llvm/dist/test/Linker/ConstantGlobals.ll vendor/llvm/dist/test/Linker/DbgDeclare.ll vendor/llvm/dist/test/Linker/DbgDeclare2.ll vendor/llvm/dist/test/Linker/Inputs/PR8300.b.ll vendor/llvm/dist/test/Linker/Inputs/alias.ll vendor/llvm/dist/test/Linker/Inputs/comdat5.ll vendor/llvm/dist/test/Linker/Inputs/comdat8.ll vendor/llvm/dist/test/Linker/Inputs/mdlocation.ll vendor/llvm/dist/test/Linker/Inputs/opaque.ll vendor/llvm/dist/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll vendor/llvm/dist/test/Linker/Inputs/subprogram-linkonce-weak.ll vendor/llvm/dist/test/Linker/Inputs/testlink.ll vendor/llvm/dist/test/Linker/Inputs/type-unique-alias.ll vendor/llvm/dist/test/Linker/Inputs/type-unique-dst-types2.ll vendor/llvm/dist/test/Linker/Inputs/type-unique-dst-types3.ll vendor/llvm/dist/test/Linker/Inputs/type-unique-inheritance-a.ll vendor/llvm/dist/test/Linker/Inputs/type-unique-inheritance-b.ll vendor/llvm/dist/test/Linker/Inputs/type-unique-simple2-a.ll vendor/llvm/dist/test/Linker/Inputs/type-unique-simple2-b.ll vendor/llvm/dist/test/Linker/Inputs/visibility.ll vendor/llvm/dist/test/Linker/alias.ll vendor/llvm/dist/test/Linker/comdat6.ll vendor/llvm/dist/test/Linker/comdat8.ll vendor/llvm/dist/test/Linker/comdat9.ll vendor/llvm/dist/test/Linker/constructor-comdat.ll vendor/llvm/dist/test/Linker/ctors.ll vendor/llvm/dist/test/Linker/debug-info-version-a.ll vendor/llvm/dist/test/Linker/debug-info-version-b.ll vendor/llvm/dist/test/Linker/distinct.ll vendor/llvm/dist/test/Linker/drop-debug.ll vendor/llvm/dist/test/Linker/global_ctors.ll vendor/llvm/dist/test/Linker/mdlocation.ll vendor/llvm/dist/test/Linker/opaque.ll vendor/llvm/dist/test/Linker/override-with-internal-linkage.ll vendor/llvm/dist/test/Linker/pr21494.ll vendor/llvm/dist/test/Linker/prologuedata.ll vendor/llvm/dist/test/Linker/replaced-function-matches-first-subprogram.ll vendor/llvm/dist/test/Linker/subprogram-linkonce-weak.ll vendor/llvm/dist/test/Linker/testlink.ll vendor/llvm/dist/test/Linker/type-unique-alias.ll vendor/llvm/dist/test/Linker/type-unique-dst-types.ll vendor/llvm/dist/test/Linker/type-unique-odr-a.ll vendor/llvm/dist/test/Linker/type-unique-odr-b.ll vendor/llvm/dist/test/Linker/type-unique-simple-a.ll vendor/llvm/dist/test/Linker/type-unique-simple-b.ll vendor/llvm/dist/test/Linker/type-unique-simple2-a.ll vendor/llvm/dist/test/Linker/type-unique-simple2-b.ll vendor/llvm/dist/test/Linker/type-unique-simple2.ll vendor/llvm/dist/test/Linker/type-unique-src-type.ll vendor/llvm/dist/test/Linker/type-unique-type-array-a.ll vendor/llvm/dist/test/Linker/type-unique-type-array-b.ll vendor/llvm/dist/test/Linker/unnamed-addr1-a.ll vendor/llvm/dist/test/Linker/unnamed-addr1-b.ll vendor/llvm/dist/test/Linker/visibility.ll vendor/llvm/dist/test/Linker/weakextern.ll vendor/llvm/dist/test/MC/AArch64/arm64-advsimd.s vendor/llvm/dist/test/MC/AArch64/arm64-diags.s vendor/llvm/dist/test/MC/AArch64/arm64-fp-encoding.s vendor/llvm/dist/test/MC/AArch64/arm64-leaf-compact-unwind.s vendor/llvm/dist/test/MC/AArch64/arm64-small-data-fixups.s vendor/llvm/dist/test/MC/AArch64/armv8.1a-pan.s vendor/llvm/dist/test/MC/AArch64/armv8.1a-rdma.s vendor/llvm/dist/test/MC/AArch64/basic-a64-diagnostics.s vendor/llvm/dist/test/MC/AArch64/elf_osabi_flags.s vendor/llvm/dist/test/MC/AArch64/ldr-pseudo-diagnostics.s vendor/llvm/dist/test/MC/AArch64/neon-2velem.s vendor/llvm/dist/test/MC/AArch64/neon-aba-abd.s vendor/llvm/dist/test/MC/AArch64/neon-across.s vendor/llvm/dist/test/MC/AArch64/neon-add-pairwise.s vendor/llvm/dist/test/MC/AArch64/neon-add-sub-instructions.s vendor/llvm/dist/test/MC/AArch64/neon-compare-instructions.s vendor/llvm/dist/test/MC/AArch64/neon-diagnostics.s vendor/llvm/dist/test/MC/AArch64/neon-facge-facgt.s vendor/llvm/dist/test/MC/AArch64/neon-frsqrt-frecp.s vendor/llvm/dist/test/MC/AArch64/neon-max-min-pairwise.s vendor/llvm/dist/test/MC/AArch64/neon-max-min.s vendor/llvm/dist/test/MC/AArch64/neon-mla-mls-instructions.s vendor/llvm/dist/test/MC/AArch64/neon-scalar-abs.s vendor/llvm/dist/test/MC/AArch64/neon-scalar-by-elem-mla.s vendor/llvm/dist/test/MC/AArch64/neon-scalar-by-elem-mul.s vendor/llvm/dist/test/MC/AArch64/neon-scalar-cvt.s vendor/llvm/dist/test/MC/AArch64/neon-scalar-fp-compare.s vendor/llvm/dist/test/MC/AArch64/neon-scalar-mul.s vendor/llvm/dist/test/MC/AArch64/neon-scalar-recip.s vendor/llvm/dist/test/MC/AArch64/neon-scalar-reduce-pairwise.s vendor/llvm/dist/test/MC/AArch64/neon-simd-misc.s vendor/llvm/dist/test/MC/AArch64/neon-simd-shift.s vendor/llvm/dist/test/MC/AArch64/noneon-diagnostics.s vendor/llvm/dist/test/MC/AMDGPU/flat.s vendor/llvm/dist/test/MC/AMDGPU/hsa.s vendor/llvm/dist/test/MC/AMDGPU/mubuf.s vendor/llvm/dist/test/MC/AMDGPU/smrd.s vendor/llvm/dist/test/MC/AMDGPU/sop1-err.s vendor/llvm/dist/test/MC/AMDGPU/sop1.s vendor/llvm/dist/test/MC/AMDGPU/sop2.s vendor/llvm/dist/test/MC/AMDGPU/vop1.s vendor/llvm/dist/test/MC/AMDGPU/vop2-err.s vendor/llvm/dist/test/MC/AMDGPU/vop2.s vendor/llvm/dist/test/MC/AMDGPU/vop3.s vendor/llvm/dist/test/MC/AMDGPU/vopc.s vendor/llvm/dist/test/MC/ARM/Windows/invalid-relocation.s vendor/llvm/dist/test/MC/ARM/arm-elf-relocation-diagnostics.s vendor/llvm/dist/test/MC/ARM/arm-thumb-trustzone.s vendor/llvm/dist/test/MC/ARM/arm-trustzone.s vendor/llvm/dist/test/MC/ARM/arm11-hint-instr.s vendor/llvm/dist/test/MC/ARM/basic-arm-instructions-v8.1a.s vendor/llvm/dist/test/MC/ARM/basic-arm-instructions.s vendor/llvm/dist/test/MC/ARM/basic-thumb2-instructions-v8.s vendor/llvm/dist/test/MC/ARM/big-endian-thumb2-fixup.s vendor/llvm/dist/test/MC/ARM/coff-debugging-secrel.ll vendor/llvm/dist/test/MC/ARM/data-in-code.ll vendor/llvm/dist/test/MC/ARM/diagnostics.s vendor/llvm/dist/test/MC/ARM/directive-arch-armv6z.s vendor/llvm/dist/test/MC/ARM/directive-arch-semantic-action.s vendor/llvm/dist/test/MC/ARM/directive-arch_extension-sec.s vendor/llvm/dist/test/MC/ARM/dwarf-asm-multiple-sections-dwarf-2.s vendor/llvm/dist/test/MC/ARM/dwarf-asm-multiple-sections.s vendor/llvm/dist/test/MC/ARM/dwarf-asm-nonstandard-section.s vendor/llvm/dist/test/MC/ARM/dwarf-asm-single-section.s vendor/llvm/dist/test/MC/ARM/eh-compact-pr0.s vendor/llvm/dist/test/MC/ARM/eh-compact-pr1.s vendor/llvm/dist/test/MC/ARM/eh-directive-handlerdata.s vendor/llvm/dist/test/MC/ARM/eh-directive-personalityindex.s vendor/llvm/dist/test/MC/ARM/eh-directive-section-comdat.s vendor/llvm/dist/test/MC/ARM/eh-directive-section-multiple-func.s vendor/llvm/dist/test/MC/ARM/eh-directive-section.s vendor/llvm/dist/test/MC/ARM/eh-directive-text-section.s vendor/llvm/dist/test/MC/ARM/eh-link.s vendor/llvm/dist/test/MC/ARM/thumb-shift-encoding.s vendor/llvm/dist/test/MC/ARM/thumb2-diagnostics.s vendor/llvm/dist/test/MC/AsmParser/dot-symbol-non-absolute.s vendor/llvm/dist/test/MC/AsmParser/expr-shr.s vendor/llvm/dist/test/MC/AsmParser/exprs-invalid.s vendor/llvm/dist/test/MC/AsmParser/exprs.s vendor/llvm/dist/test/MC/AsmParser/macros-darwin-vararg.s vendor/llvm/dist/test/MC/AsmParser/vararg.s vendor/llvm/dist/test/MC/COFF/alias.s vendor/llvm/dist/test/MC/COFF/bad-expr.s vendor/llvm/dist/test/MC/COFF/basic-coff-64.s vendor/llvm/dist/test/MC/COFF/basic-coff.s vendor/llvm/dist/test/MC/COFF/invalid-def.s vendor/llvm/dist/test/MC/COFF/invalid-endef.s vendor/llvm/dist/test/MC/COFF/invalid-scl-range.s vendor/llvm/dist/test/MC/COFF/invalid-scl.s vendor/llvm/dist/test/MC/COFF/invalid-type.s vendor/llvm/dist/test/MC/COFF/secidx-diagnostic.s vendor/llvm/dist/test/MC/COFF/simple-fixups.s vendor/llvm/dist/test/MC/COFF/symbol-fragment-offset-64.s vendor/llvm/dist/test/MC/COFF/symbol-fragment-offset.s vendor/llvm/dist/test/MC/COFF/timestamp.s vendor/llvm/dist/test/MC/Disassembler/AArch64/arm64-scalar-fp.txt vendor/llvm/dist/test/MC/Disassembler/AArch64/armv8.1a-pan.txt vendor/llvm/dist/test/MC/Disassembler/AArch64/basic-a64-instructions.txt vendor/llvm/dist/test/MC/Disassembler/ARM/invalid-thumbv7.txt vendor/llvm/dist/test/MC/Disassembler/ARM/thumb-v8.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/j.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/ld.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/lit.local.cfg vendor/llvm/dist/test/MC/Disassembler/Hexagon/nv_j.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/nv_st.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/st.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips1/valid-mips1-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips1/valid-mips1.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips1/valid-xfail.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips2/valid-mips2-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips2/valid-mips2.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips3/valid-mips3-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips3/valid-mips3.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32/valid-mips32-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32/valid-mips32.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r3/valid-mips32r3.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r5/valid-mips32r5.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips4/valid-mips4-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips4/valid-mips4.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64/valid-mips64-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64/valid-mips64.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r2/valid-mips64r2-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r2/valid-mips64r2.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r3/valid-mips64r3-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r3/valid-mips64r3.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r5/valid-mips64r5-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r5/valid-mips64r5.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt vendor/llvm/dist/test/MC/Disassembler/Mips/msa/test_elm.txt vendor/llvm/dist/test/MC/Disassembler/Mips/msa/test_elm_msa64.txt vendor/llvm/dist/test/MC/Disassembler/PowerPC/ppc64-encoding.txt vendor/llvm/dist/test/MC/Disassembler/PowerPC/ppc64le-encoding.txt vendor/llvm/dist/test/MC/Disassembler/PowerPC/vsx.txt vendor/llvm/dist/test/MC/Disassembler/Sparc/sparc-mem.txt vendor/llvm/dist/test/MC/Disassembler/SystemZ/insns.txt vendor/llvm/dist/test/MC/Disassembler/X86/x86-64.txt vendor/llvm/dist/test/MC/ELF/align.s vendor/llvm/dist/test/MC/ELF/cfi-adjust-cfa-offset.s vendor/llvm/dist/test/MC/ELF/cfi-advance-loc2.s vendor/llvm/dist/test/MC/ELF/cfi-def-cfa-offset.s vendor/llvm/dist/test/MC/ELF/cfi-def-cfa-register.s vendor/llvm/dist/test/MC/ELF/cfi-def-cfa.s vendor/llvm/dist/test/MC/ELF/cfi-escape.s vendor/llvm/dist/test/MC/ELF/cfi-large-model.s vendor/llvm/dist/test/MC/ELF/cfi-offset.s vendor/llvm/dist/test/MC/ELF/cfi-register.s vendor/llvm/dist/test/MC/ELF/cfi-rel-offset.s vendor/llvm/dist/test/MC/ELF/cfi-rel-offset2.s vendor/llvm/dist/test/MC/ELF/cfi-remember.s vendor/llvm/dist/test/MC/ELF/cfi-restore.s vendor/llvm/dist/test/MC/ELF/cfi-same-value.s vendor/llvm/dist/test/MC/ELF/cfi-signal-frame.s vendor/llvm/dist/test/MC/ELF/cfi-undefined.s vendor/llvm/dist/test/MC/ELF/cfi-version.ll vendor/llvm/dist/test/MC/ELF/cfi-window-save.s vendor/llvm/dist/test/MC/ELF/cfi-zero-addr-delta.s vendor/llvm/dist/test/MC/ELF/cfi.s vendor/llvm/dist/test/MC/ELF/comdat-dup-group-name.s vendor/llvm/dist/test/MC/ELF/comdat-reloc.s vendor/llvm/dist/test/MC/ELF/comdat.s vendor/llvm/dist/test/MC/ELF/common-error1.s vendor/llvm/dist/test/MC/ELF/common-error2.s vendor/llvm/dist/test/MC/ELF/common2.s vendor/llvm/dist/test/MC/ELF/debug-loc.s vendor/llvm/dist/test/MC/ELF/dot-symbol-assignment.s vendor/llvm/dist/test/MC/ELF/empty.s vendor/llvm/dist/test/MC/ELF/many-sections-2.s vendor/llvm/dist/test/MC/ELF/many-sections-3.s vendor/llvm/dist/test/MC/ELF/many-sections.s vendor/llvm/dist/test/MC/ELF/popsection.s vendor/llvm/dist/test/MC/ELF/relax-arith.s vendor/llvm/dist/test/MC/ELF/relocation-386.s vendor/llvm/dist/test/MC/ELF/relocation-pc.s vendor/llvm/dist/test/MC/ELF/relocation.s vendor/llvm/dist/test/MC/ELF/section-sym.s vendor/llvm/dist/test/MC/ELF/section-unique.s vendor/llvm/dist/test/MC/ELF/section.s vendor/llvm/dist/test/MC/ELF/sleb.s vendor/llvm/dist/test/MC/ELF/strtab-suffix-opt.s vendor/llvm/dist/test/MC/ELF/uleb.s vendor/llvm/dist/test/MC/Hexagon/inst_and64.ll vendor/llvm/dist/test/MC/Hexagon/inst_or64.ll vendor/llvm/dist/test/MC/Hexagon/inst_xor64.ll vendor/llvm/dist/test/MC/MachO/AArch64/darwin-ARM64-local-label-diff.s vendor/llvm/dist/test/MC/MachO/ARM/bad-darwin-ARM-reloc.s vendor/llvm/dist/test/MC/MachO/ARM/darwin-ARM-reloc.s vendor/llvm/dist/test/MC/MachO/ARM/darwin-Thumb-reloc.s vendor/llvm/dist/test/MC/MachO/ARM/data-in-code.s vendor/llvm/dist/test/MC/MachO/ARM/empty-function-nop.ll vendor/llvm/dist/test/MC/MachO/ARM/ios-version-min-load-command.s vendor/llvm/dist/test/MC/MachO/ARM/long-call-branch-island-relocation.s vendor/llvm/dist/test/MC/MachO/ARM/no-subsections-reloc.s vendor/llvm/dist/test/MC/MachO/ARM/nop-armv4-padding.s vendor/llvm/dist/test/MC/MachO/ARM/nop-armv6t2-padding.s vendor/llvm/dist/test/MC/MachO/ARM/nop-thumb-padding.s vendor/llvm/dist/test/MC/MachO/ARM/nop-thumb2-padding.s vendor/llvm/dist/test/MC/MachO/ARM/relax-thumb-ldr-literal.s vendor/llvm/dist/test/MC/MachO/ARM/relax-thumb2-branches.s vendor/llvm/dist/test/MC/MachO/ARM/thumb-bl-jbits.s vendor/llvm/dist/test/MC/MachO/ARM/thumb2-function-relative-load.s vendor/llvm/dist/test/MC/MachO/ARM/thumb2-movt-fixup.s vendor/llvm/dist/test/MC/MachO/ARM/thumb2-movw-fixup.s vendor/llvm/dist/test/MC/MachO/ARM/version-min-diagnostics.s vendor/llvm/dist/test/MC/MachO/ARM/version-min.s vendor/llvm/dist/test/MC/MachO/absolute.s vendor/llvm/dist/test/MC/MachO/absolutize.s vendor/llvm/dist/test/MC/MachO/bad-darwin-x86_64-diff-relocs.s vendor/llvm/dist/test/MC/MachO/comm-1.s vendor/llvm/dist/test/MC/MachO/cstexpr-gotpcrel-64.ll vendor/llvm/dist/test/MC/MachO/darwin-complex-difference.s vendor/llvm/dist/test/MC/MachO/darwin-x86_64-diff-reloc-assign.s vendor/llvm/dist/test/MC/MachO/darwin-x86_64-diff-relocs.s vendor/llvm/dist/test/MC/MachO/darwin-x86_64-nobase-relocs.s vendor/llvm/dist/test/MC/MachO/darwin-x86_64-reloc-offsets.s vendor/llvm/dist/test/MC/MachO/data.s vendor/llvm/dist/test/MC/MachO/debug_frame.s vendor/llvm/dist/test/MC/MachO/diff-with-two-sections.s vendor/llvm/dist/test/MC/MachO/direction_labels.s vendor/llvm/dist/test/MC/MachO/file.s vendor/llvm/dist/test/MC/MachO/gen-dwarf.s vendor/llvm/dist/test/MC/MachO/i386-large-relocations.s vendor/llvm/dist/test/MC/MachO/indirect-symbols.s vendor/llvm/dist/test/MC/MachO/jcc.s vendor/llvm/dist/test/MC/MachO/lcomm-attributes.s vendor/llvm/dist/test/MC/MachO/linker-option-2.s vendor/llvm/dist/test/MC/MachO/linker-options.ll vendor/llvm/dist/test/MC/MachO/loc.s vendor/llvm/dist/test/MC/MachO/osx-version-min-load-command.s vendor/llvm/dist/test/MC/MachO/pcrel-to-other-section.s vendor/llvm/dist/test/MC/MachO/relax-jumps.s vendor/llvm/dist/test/MC/MachO/relax-recompute-align.s vendor/llvm/dist/test/MC/MachO/reloc-diff.s vendor/llvm/dist/test/MC/MachO/reloc-pcrel-offset.s vendor/llvm/dist/test/MC/MachO/reloc-pcrel.s vendor/llvm/dist/test/MC/MachO/section-align-1.s vendor/llvm/dist/test/MC/MachO/section-align-2.s vendor/llvm/dist/test/MC/MachO/section-attributes.s vendor/llvm/dist/test/MC/MachO/section-flags.s vendor/llvm/dist/test/MC/MachO/string-table.s vendor/llvm/dist/test/MC/MachO/symbol-diff.s vendor/llvm/dist/test/MC/MachO/symbol-flags.s vendor/llvm/dist/test/MC/MachO/symbol-indirect.s vendor/llvm/dist/test/MC/MachO/symbols-1.s vendor/llvm/dist/test/MC/MachO/tbss.s vendor/llvm/dist/test/MC/MachO/tdata.s vendor/llvm/dist/test/MC/MachO/temp-labels.s vendor/llvm/dist/test/MC/MachO/thread_init_func.s vendor/llvm/dist/test/MC/MachO/tls.s vendor/llvm/dist/test/MC/MachO/tlv-bss.ll vendor/llvm/dist/test/MC/MachO/tlv-reloc.s vendor/llvm/dist/test/MC/MachO/tlv.s vendor/llvm/dist/test/MC/MachO/values.s vendor/llvm/dist/test/MC/MachO/variable-exprs.s vendor/llvm/dist/test/MC/MachO/weakdef.s vendor/llvm/dist/test/MC/MachO/x86-data-in-code.ll vendor/llvm/dist/test/MC/MachO/x86_32-optimal_nop.s vendor/llvm/dist/test/MC/MachO/x86_32-scattered-reloc-fallback.s vendor/llvm/dist/test/MC/MachO/x86_32-sections.s vendor/llvm/dist/test/MC/MachO/x86_32-symbols.s vendor/llvm/dist/test/MC/MachO/x86_64-reloc-arithmetic.s vendor/llvm/dist/test/MC/MachO/x86_64-sections.s vendor/llvm/dist/test/MC/MachO/zerofill-1.s vendor/llvm/dist/test/MC/MachO/zerofill-2.s vendor/llvm/dist/test/MC/MachO/zerofill-3.s vendor/llvm/dist/test/MC/MachO/zerofill-4.s vendor/llvm/dist/test/MC/MachO/zerofill-5.s vendor/llvm/dist/test/MC/MachO/zerofill-sect-align.s vendor/llvm/dist/test/MC/Mips/branch-pseudos-bad.s vendor/llvm/dist/test/MC/Mips/branch-pseudos.s vendor/llvm/dist/test/MC/Mips/cpsetup.s vendor/llvm/dist/test/MC/Mips/elf_basic.s vendor/llvm/dist/test/MC/Mips/macro-la-bad.s vendor/llvm/dist/test/MC/Mips/macro-la.s vendor/llvm/dist/test/MC/Mips/micromips-control-instructions.s vendor/llvm/dist/test/MC/Mips/micromips-diagnostic-fixup.s vendor/llvm/dist/test/MC/Mips/micromips-invalid.s vendor/llvm/dist/test/MC/Mips/micromips-loadstore-instructions.s vendor/llvm/dist/test/MC/Mips/micromips-pc16-fixup.s vendor/llvm/dist/test/MC/Mips/micromips32r6/invalid.s vendor/llvm/dist/test/MC/Mips/micromips32r6/valid.s vendor/llvm/dist/test/MC/Mips/mips-alu-instructions.s vendor/llvm/dist/test/MC/Mips/mips-diagnostic-fixup.s vendor/llvm/dist/test/MC/Mips/mips-expansions-bad.s vendor/llvm/dist/test/MC/Mips/mips-expansions.s vendor/llvm/dist/test/MC/Mips/mips-pc16-fixup.s vendor/llvm/dist/test/MC/Mips/mips-pdr.s vendor/llvm/dist/test/MC/Mips/mips1/valid.s vendor/llvm/dist/test/MC/Mips/mips2/valid.s vendor/llvm/dist/test/MC/Mips/mips3/valid.s vendor/llvm/dist/test/MC/Mips/mips32/valid.s vendor/llvm/dist/test/MC/Mips/mips32r2/invalid.s vendor/llvm/dist/test/MC/Mips/mips32r2/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips32r2/valid.s vendor/llvm/dist/test/MC/Mips/mips32r3/invalid.s vendor/llvm/dist/test/MC/Mips/mips32r3/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips32r3/valid.s vendor/llvm/dist/test/MC/Mips/mips32r5/invalid.s vendor/llvm/dist/test/MC/Mips/mips32r5/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips32r5/valid.s vendor/llvm/dist/test/MC/Mips/mips32r6/invalid-mips1-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips32r6/invalid-mips4-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips32r6/invalid-mips4.s vendor/llvm/dist/test/MC/Mips/mips32r6/invalid.s vendor/llvm/dist/test/MC/Mips/mips32r6/valid.s vendor/llvm/dist/test/MC/Mips/mips4/valid.s vendor/llvm/dist/test/MC/Mips/mips5/valid.s vendor/llvm/dist/test/MC/Mips/mips64-alu-instructions.s vendor/llvm/dist/test/MC/Mips/mips64-expansions.s vendor/llvm/dist/test/MC/Mips/mips64/valid.s vendor/llvm/dist/test/MC/Mips/mips64r2/invalid.s vendor/llvm/dist/test/MC/Mips/mips64r2/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips64r2/valid.s vendor/llvm/dist/test/MC/Mips/mips64r3/invalid.s vendor/llvm/dist/test/MC/Mips/mips64r3/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips64r3/valid.s vendor/llvm/dist/test/MC/Mips/mips64r5/invalid.s vendor/llvm/dist/test/MC/Mips/mips64r5/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips64r5/valid.s vendor/llvm/dist/test/MC/Mips/mips64r6/invalid-mips1-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips64r6/invalid-mips3-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips64r6/invalid-mips4-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips64r6/invalid-mips4.s vendor/llvm/dist/test/MC/Mips/mips64r6/invalid.s vendor/llvm/dist/test/MC/Mips/mips64r6/valid.s vendor/llvm/dist/test/MC/Mips/msa/test_elm.s vendor/llvm/dist/test/MC/Mips/msa/test_elm_msa64.s vendor/llvm/dist/test/MC/Mips/set-nomacro.s vendor/llvm/dist/test/MC/PowerPC/ppc-llong.s vendor/llvm/dist/test/MC/PowerPC/ppc-word.s vendor/llvm/dist/test/MC/PowerPC/ppc64-encoding.s vendor/llvm/dist/test/MC/PowerPC/ppc64-fixup-apply.s vendor/llvm/dist/test/MC/PowerPC/st-other-crash.s vendor/llvm/dist/test/MC/PowerPC/vsx.s vendor/llvm/dist/test/MC/Sparc/sparc-alu-instructions.s vendor/llvm/dist/test/MC/Sparc/sparc-assembly-exprs.s vendor/llvm/dist/test/MC/Sparc/sparc-atomic-instructions.s vendor/llvm/dist/test/MC/Sparc/sparc-ctrl-instructions.s vendor/llvm/dist/test/MC/Sparc/sparc-fp-instructions.s vendor/llvm/dist/test/MC/Sparc/sparc-mem-instructions.s vendor/llvm/dist/test/MC/Sparc/sparc-pic.s vendor/llvm/dist/test/MC/Sparc/sparc-relocations.s vendor/llvm/dist/test/MC/Sparc/sparc-special-registers.s vendor/llvm/dist/test/MC/Sparc/sparc-synthetic-instructions.s vendor/llvm/dist/test/MC/Sparc/sparcv9-instructions.s vendor/llvm/dist/test/MC/SystemZ/fixups.s vendor/llvm/dist/test/MC/SystemZ/insn-good-z13.s vendor/llvm/dist/test/MC/SystemZ/insn-good.s vendor/llvm/dist/test/MC/SystemZ/lit.local.cfg vendor/llvm/dist/test/MC/X86/avx512-encodings.s vendor/llvm/dist/test/MC/X86/avx512vl-encoding.s vendor/llvm/dist/test/MC/X86/cfi_def_cfa-crash.s vendor/llvm/dist/test/MC/X86/expand-var.s vendor/llvm/dist/test/MC/X86/i386-darwin-frame-register.ll vendor/llvm/dist/test/MC/X86/intel-syntax-2.s vendor/llvm/dist/test/MC/X86/intel-syntax-ambiguous.s vendor/llvm/dist/test/MC/X86/intel-syntax-avx512.s vendor/llvm/dist/test/MC/X86/intel-syntax.s vendor/llvm/dist/test/MC/X86/validate-inst-att.s vendor/llvm/dist/test/MC/X86/validate-inst-intel.s vendor/llvm/dist/test/MC/X86/x86-32-coverage.s vendor/llvm/dist/test/MC/X86/x86-64-avx512bw.s vendor/llvm/dist/test/MC/X86/x86-64-avx512bw_vl.s vendor/llvm/dist/test/MC/X86/x86-64-avx512dq.s vendor/llvm/dist/test/MC/X86/x86-64-avx512dq_vl.s vendor/llvm/dist/test/MC/X86/x86-64-avx512f_vl.s vendor/llvm/dist/test/MC/X86/x86-64.s vendor/llvm/dist/test/MC/X86/x86_nop.s vendor/llvm/dist/test/Makefile vendor/llvm/dist/test/Object/X86/nm-ir.ll vendor/llvm/dist/test/Object/archive-format.test vendor/llvm/dist/test/Object/archive-symtab.test vendor/llvm/dist/test/Object/archive-update.test vendor/llvm/dist/test/Object/corrupt.test vendor/llvm/dist/test/Object/invalid.test vendor/llvm/dist/test/Object/nm-archive.test vendor/llvm/dist/test/Object/obj2yaml.test vendor/llvm/dist/test/Object/readobj-shared-object.test vendor/llvm/dist/test/Object/relocation-executable.test vendor/llvm/dist/test/Other/2010-05-06-Printer.ll vendor/llvm/dist/test/Other/extract-alias.ll vendor/llvm/dist/test/Other/llvm-nm-without-aliases.ll vendor/llvm/dist/test/SymbolRewriter/rewrite.ll vendor/llvm/dist/test/TableGen/intrinsic-varargs.td vendor/llvm/dist/test/Transforms/ADCE/basictest.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/basic.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/first-only.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/multiple.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/no-discriminators.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/dbg.ll vendor/llvm/dist/test/Transforms/AtomicExpand/ARM/atomic-expansion-v7.ll vendor/llvm/dist/test/Transforms/AtomicExpand/ARM/atomic-expansion-v8.ll vendor/llvm/dist/test/Transforms/AtomicExpand/ARM/cmpxchg-weak.ll vendor/llvm/dist/test/Transforms/BBVectorize/X86/wr-aliases.ll vendor/llvm/dist/test/Transforms/BBVectorize/simple3.ll vendor/llvm/dist/test/Transforms/BranchFolding/2007-10-19-InlineAsmDirectives.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/statepoint-relocate.ll vendor/llvm/dist/test/Transforms/ConstProp/calls.ll vendor/llvm/dist/test/Transforms/ConstProp/insertvalue.ll vendor/llvm/dist/test/Transforms/ConstProp/loads.ll vendor/llvm/dist/test/Transforms/ConstantMerge/merge-both.ll vendor/llvm/dist/test/Transforms/CorrelatedValuePropagation/non-null.ll vendor/llvm/dist/test/Transforms/CorrelatedValuePropagation/range.ll vendor/llvm/dist/test/Transforms/CorrelatedValuePropagation/select.ll vendor/llvm/dist/test/Transforms/DeadArgElim/2010-04-30-DbgInfo.ll vendor/llvm/dist/test/Transforms/DeadArgElim/aggregates.ll vendor/llvm/dist/test/Transforms/DeadArgElim/dbginfo.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/inst-limits.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/simple.ll vendor/llvm/dist/test/Transforms/EarlyCSE/basic.ll vendor/llvm/dist/test/Transforms/Float2Int/basic.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/2008-09-03-ReadNone.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/2010-10-30-volatile.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/atomic.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/optnone.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/readattrs.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/function-numbering.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/global-ctor.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/linezero.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/linkagename.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/return-block.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/version.ll vendor/llvm/dist/test/Transforms/GVN/2009-03-10-PREOnVoid.ll vendor/llvm/dist/test/Transforms/GVN/crash-no-aa.ll vendor/llvm/dist/test/Transforms/GVN/invariant-load.ll vendor/llvm/dist/test/Transforms/GVN/load-pre-nonlocal.ll vendor/llvm/dist/test/Transforms/GVN/phi-translate.ll vendor/llvm/dist/test/Transforms/GVN/pr14166.ll vendor/llvm/dist/test/Transforms/GVN/pre-gep-load.ll vendor/llvm/dist/test/Transforms/GVN/pre-load.ll vendor/llvm/dist/test/Transforms/GVN/range.ll vendor/llvm/dist/test/Transforms/GlobalDCE/2009-01-05-DeadAliases.ll vendor/llvm/dist/test/Transforms/GlobalDCE/2009-02-17-AliasUsesAliasee.ll vendor/llvm/dist/test/Transforms/GlobalDCE/pr20981.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2009-03-05-dbg.ll vendor/llvm/dist/test/Transforms/GlobalOpt/alias-resolve.ll vendor/llvm/dist/test/Transforms/GlobalOpt/alias-used-address-space.ll vendor/llvm/dist/test/Transforms/GlobalOpt/alias-used-section.ll vendor/llvm/dist/test/Transforms/GlobalOpt/alias-used.ll vendor/llvm/dist/test/Transforms/GlobalOpt/deadglobal.ll vendor/llvm/dist/test/Transforms/GlobalOpt/metadata.ll vendor/llvm/dist/test/Transforms/GlobalOpt/tls.ll vendor/llvm/dist/test/Transforms/GlobalOpt/unnamed-addr.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/eliminate-comparison.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/iv-widen.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/tripcount_infinite.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/widen-loop-comp.ll vendor/llvm/dist/test/Transforms/Inline/alloca-dbgdeclare.ll vendor/llvm/dist/test/Transforms/Inline/debug-info-duplicate-calls.ll vendor/llvm/dist/test/Transforms/Inline/debug-invoke.ll vendor/llvm/dist/test/Transforms/Inline/ignore-debug-info.ll vendor/llvm/dist/test/Transforms/Inline/inline-optsize.ll vendor/llvm/dist/test/Transforms/Inline/inline_dbg_declare.ll vendor/llvm/dist/test/Transforms/Inline/inline_invoke.ll vendor/llvm/dist/test/Transforms/Inline/noalias-calls.ll vendor/llvm/dist/test/Transforms/Inline/noalias-cs.ll vendor/llvm/dist/test/Transforms/Inline/noalias2.ll vendor/llvm/dist/test/Transforms/InstCombine/2007-09-10-AliasConstFold.ll vendor/llvm/dist/test/Transforms/InstCombine/2007-09-17-AliasConstFold2.ll vendor/llvm/dist/test/Transforms/InstCombine/LandingPadClauses.ll vendor/llvm/dist/test/Transforms/InstCombine/add2.ll vendor/llvm/dist/test/Transforms/InstCombine/alias-recursion.ll vendor/llvm/dist/test/Transforms/InstCombine/alloca.ll vendor/llvm/dist/test/Transforms/InstCombine/and-compare.ll vendor/llvm/dist/test/Transforms/InstCombine/and2.ll vendor/llvm/dist/test/Transforms/InstCombine/assume-redundant.ll vendor/llvm/dist/test/Transforms/InstCombine/bitcast-alias-function.ll vendor/llvm/dist/test/Transforms/InstCombine/bitcast-vec-canon.ll vendor/llvm/dist/test/Transforms/InstCombine/bitcast.ll vendor/llvm/dist/test/Transforms/InstCombine/blend_x86.ll vendor/llvm/dist/test/Transforms/InstCombine/bswap-fold.ll vendor/llvm/dist/test/Transforms/InstCombine/bswap.ll vendor/llvm/dist/test/Transforms/InstCombine/cast-int-fcmp-eq-0.ll vendor/llvm/dist/test/Transforms/InstCombine/cast-set.ll vendor/llvm/dist/test/Transforms/InstCombine/cast.ll vendor/llvm/dist/test/Transforms/InstCombine/compare-signs.ll vendor/llvm/dist/test/Transforms/InstCombine/constant-fold-alias.ll vendor/llvm/dist/test/Transforms/InstCombine/debug-line.ll vendor/llvm/dist/test/Transforms/InstCombine/debuginfo.ll vendor/llvm/dist/test/Transforms/InstCombine/div.ll vendor/llvm/dist/test/Transforms/InstCombine/exp2-1.ll vendor/llvm/dist/test/Transforms/InstCombine/extractvalue.ll vendor/llvm/dist/test/Transforms/InstCombine/fabs.ll vendor/llvm/dist/test/Transforms/InstCombine/fast-math.ll vendor/llvm/dist/test/Transforms/InstCombine/ffs-1.ll vendor/llvm/dist/test/Transforms/InstCombine/gc.relocate.ll vendor/llvm/dist/test/Transforms/InstCombine/gepphigep.ll vendor/llvm/dist/test/Transforms/InstCombine/icmp-range.ll vendor/llvm/dist/test/Transforms/InstCombine/icmp-shr.ll vendor/llvm/dist/test/Transforms/InstCombine/icmp.ll vendor/llvm/dist/test/Transforms/InstCombine/inline-intrinsic-assert.ll vendor/llvm/dist/test/Transforms/InstCombine/insert-extract-shuffle.ll vendor/llvm/dist/test/Transforms/InstCombine/intrinsics.ll vendor/llvm/dist/test/Transforms/InstCombine/load-cmp.ll vendor/llvm/dist/test/Transforms/InstCombine/load-combine-metadata.ll vendor/llvm/dist/test/Transforms/InstCombine/loadstore-metadata.ll vendor/llvm/dist/test/Transforms/InstCombine/malloc-free-delete.ll vendor/llvm/dist/test/Transforms/InstCombine/memcmp-1.ll vendor/llvm/dist/test/Transforms/InstCombine/memset_chk-1.ll vendor/llvm/dist/test/Transforms/InstCombine/neon-intrinsics.ll vendor/llvm/dist/test/Transforms/InstCombine/no_cgscc_assert.ll vendor/llvm/dist/test/Transforms/InstCombine/not.ll vendor/llvm/dist/test/Transforms/InstCombine/objsize-address-space.ll vendor/llvm/dist/test/Transforms/InstCombine/objsize.ll vendor/llvm/dist/test/Transforms/InstCombine/or.ll vendor/llvm/dist/test/Transforms/InstCombine/phi.ll vendor/llvm/dist/test/Transforms/InstCombine/pow-1.ll vendor/llvm/dist/test/Transforms/InstCombine/shift.ll vendor/llvm/dist/test/Transforms/InstCombine/sincospi.ll vendor/llvm/dist/test/Transforms/InstCombine/statepoint.ll vendor/llvm/dist/test/Transforms/InstCombine/store.ll vendor/llvm/dist/test/Transforms/InstCombine/strto-1.ll vendor/llvm/dist/test/Transforms/InstCombine/trunc.ll vendor/llvm/dist/test/Transforms/InstCombine/unpack-fca.ll vendor/llvm/dist/test/Transforms/InstCombine/vec_demanded_elts.ll vendor/llvm/dist/test/Transforms/InstCombine/vec_shuffle.ll vendor/llvm/dist/test/Transforms/InstCombine/vector_gep2.ll vendor/llvm/dist/test/Transforms/InstCombine/xor.ll vendor/llvm/dist/test/Transforms/InstSimplify/apint-or.ll vendor/llvm/dist/test/Transforms/InstSimplify/compare.ll vendor/llvm/dist/test/Transforms/InstSimplify/shr-nop.ll vendor/llvm/dist/test/Transforms/Internalize/2009-01-05-InternalizeAliases.ll vendor/llvm/dist/test/Transforms/Internalize/local-visibility.ll vendor/llvm/dist/test/Transforms/JumpThreading/basic.ll vendor/llvm/dist/test/Transforms/JumpThreading/select.ll vendor/llvm/dist/test/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.ll vendor/llvm/dist/test/Transforms/LICM/debug-value.ll vendor/llvm/dist/test/Transforms/LICM/hoist-deref-load.ll vendor/llvm/dist/test/Transforms/LICM/hoist-invariant-load.ll vendor/llvm/dist/test/Transforms/LICM/pr23608.ll vendor/llvm/dist/test/Transforms/LoopDistribute/basic-with-memchecks.ll vendor/llvm/dist/test/Transforms/LoopIdiom/basic.ll vendor/llvm/dist/test/Transforms/LoopIdiom/debug-line.ll vendor/llvm/dist/test/Transforms/LoopRotate/dbgvalue.ll vendor/llvm/dist/test/Transforms/LoopSimplify/dbg-loc.ll vendor/llvm/dist/test/Transforms/LoopSimplify/single-backedge.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/ARM/ivchain-ARM.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/X86/ivchain-stress-X86.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/pr12018.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll vendor/llvm/dist/test/Transforms/LoopUnroll/X86/partial.ll vendor/llvm/dist/test/Transforms/LoopUnroll/pr18861.ll vendor/llvm/dist/test/Transforms/LoopUnroll/runtime-loop1.ll vendor/llvm/dist/test/Transforms/LoopUnroll/unroll-pragmas.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/2011-11-18-SimpleSwitch.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/2011-11-18-TwoSwitches.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/basictest.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/infinite-loop.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/arbitrary-induction-step.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/masked_load_store.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/metadata-enable.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/powof2div.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/reduction-crash.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vector_ptr_load_store.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vectorization-remarks-missed.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vectorization-remarks.ll vendor/llvm/dist/test/Transforms/LoopVectorize/conditional-assignment.ll vendor/llvm/dist/test/Transforms/LoopVectorize/control-flow.ll vendor/llvm/dist/test/Transforms/LoopVectorize/dbg.value.ll vendor/llvm/dist/test/Transforms/LoopVectorize/debugloc.ll vendor/llvm/dist/test/Transforms/LoopVectorize/if-pred-stores.ll vendor/llvm/dist/test/Transforms/LoopVectorize/induction.ll vendor/llvm/dist/test/Transforms/LoopVectorize/minmax_reduction.ll vendor/llvm/dist/test/Transforms/LoopVectorize/no_array_bounds.ll vendor/llvm/dist/test/Transforms/LoopVectorize/no_outside_user.ll vendor/llvm/dist/test/Transforms/LoopVectorize/no_switch.ll vendor/llvm/dist/test/Transforms/LoopVectorize/optsize.ll vendor/llvm/dist/test/Transforms/LoopVectorize/reduction.ll vendor/llvm/dist/test/Transforms/LoopVectorize/reverse_induction.ll vendor/llvm/dist/test/Transforms/LoopVectorize/runtime-check.ll vendor/llvm/dist/test/Transforms/LoopVectorize/runtime-limit.ll vendor/llvm/dist/test/Transforms/LowerBitSets/simple.ll vendor/llvm/dist/test/Transforms/LowerExpectIntrinsic/basic.ll vendor/llvm/dist/test/Transforms/LowerSwitch/feature.ll vendor/llvm/dist/test/Transforms/Mem2Reg/ConvertDebugInfo.ll vendor/llvm/dist/test/Transforms/Mem2Reg/ConvertDebugInfo2.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/memcpy.ll vendor/llvm/dist/test/Transforms/MergeFunc/call-and-invoke-with-ranges.ll vendor/llvm/dist/test/Transforms/MergeFunc/inttoptr-address-space.ll vendor/llvm/dist/test/Transforms/MergeFunc/inttoptr.ll vendor/llvm/dist/test/Transforms/MergeFunc/ranges.ll vendor/llvm/dist/test/Transforms/MetaRenamer/metarenamer.ll vendor/llvm/dist/test/Transforms/NaryReassociate/NVPTX/nary-gep.ll vendor/llvm/dist/test/Transforms/NaryReassociate/nary-add.ll vendor/llvm/dist/test/Transforms/ObjCARC/basic.ll vendor/llvm/dist/test/Transforms/ObjCARC/ensure-that-exception-unwind-path-is-visited.ll vendor/llvm/dist/test/Transforms/ObjCARC/nested.ll vendor/llvm/dist/test/Transforms/ObjCARC/provenance.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/basic.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/call_gc_result.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/finite-loops.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/patchable-statepoints.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/statepoint-calling-conventions.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/statepoint-format.ll vendor/llvm/dist/test/Transforms/Reassociate/fast-ReassociateVector.ll vendor/llvm/dist/test/Transforms/Reassociate/fast-basictest.ll vendor/llvm/dist/test/Transforms/Reassociate/fast-fp-commute.ll vendor/llvm/dist/test/Transforms/Reassociate/fast-multistep.ll vendor/llvm/dist/test/Transforms/Reassociate/multistep.ll vendor/llvm/dist/test/Transforms/Reassociate/secondary.ll vendor/llvm/dist/test/Transforms/Reassociate/xor_reassoc.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-1.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-10.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-11.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-2.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-3.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-4.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-5.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-6.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-7.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-8.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-9.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/basics.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/constants.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deref-pointers.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/gc_relocate_creation.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/live-vector.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/liveness-basics.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/preprocess.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/relocate_invoke_result.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/relocation.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/rematerialize-derived-pointers.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/AArch64/commute.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/bad_types.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/debug_info.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/horizontal.ll vendor/llvm/dist/test/Transforms/SROA/basictest.ll vendor/llvm/dist/test/Transforms/SROA/big-endian.ll vendor/llvm/dist/test/Transforms/SROA/fca.ll vendor/llvm/dist/test/Transforms/SafeStack/array.ll vendor/llvm/dist/test/Transforms/SafeStack/call.ll vendor/llvm/dist/test/Transforms/SafeStack/cast.ll vendor/llvm/dist/test/Transforms/SafeStack/setjmp2.ll vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/bad_discriminator_value.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/bad_fn_header.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/bad_mangle.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/bad_sample_line.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/bad_samples.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/branch.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/calls.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/discriminator.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/entry_counts.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/fnptr.binprof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/fnptr.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/propagate.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/syntax.prof vendor/llvm/dist/test/Transforms/SampleProfile/branch.ll vendor/llvm/dist/test/Transforms/SampleProfile/calls.ll vendor/llvm/dist/test/Transforms/SampleProfile/discriminator.ll vendor/llvm/dist/test/Transforms/SampleProfile/entry_counts.ll vendor/llvm/dist/test/Transforms/SampleProfile/fnptr.ll vendor/llvm/dist/test/Transforms/SampleProfile/propagate.ll vendor/llvm/dist/test/Transforms/SampleProfile/syntax.ll vendor/llvm/dist/test/Transforms/ScalarRepl/debuginfo-preserved.ll vendor/llvm/dist/test/Transforms/Scalarizer/dbginfo.ll vendor/llvm/dist/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU/split-gep-and-gvn-addrspace-addressing-modes.ll vendor/llvm/dist/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/split-gep-and-gvn.ll vendor/llvm/dist/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/split-gep.ll vendor/llvm/dist/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/value-tracking-domtree.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/SpeculativeExec.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/X86/speculate-cttz-ctlz.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/basictest.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/branch-fold-dbg.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/hoist-dbgvalue.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/invoke_unwind.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/speculate-math.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/statepoint-invoke-unwind.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/trap-debugloc.ll vendor/llvm/dist/test/Transforms/StraightLineStrengthReduce/AMDGPU/reassociate-geps-and-slsr-addrspace.ll vendor/llvm/dist/test/Transforms/StripSymbols/2010-06-30-StripDebug.ll vendor/llvm/dist/test/Transforms/StripSymbols/2010-08-25-crash.ll vendor/llvm/dist/test/Transforms/StripSymbols/strip-dead-debug-info.ll vendor/llvm/dist/test/Transforms/StructurizeCFG/nested-loop-order.ll vendor/llvm/dist/test/Transforms/TailCallElim/basic.ll vendor/llvm/dist/test/Transforms/Util/lowerswitch.ll vendor/llvm/dist/test/Verifier/alias.ll vendor/llvm/dist/test/Verifier/bitcast-alias-address-space.ll vendor/llvm/dist/test/Verifier/dbg-typerefs.ll vendor/llvm/dist/test/Verifier/dbg.ll vendor/llvm/dist/test/Verifier/gc_relocate_addrspace.ll vendor/llvm/dist/test/Verifier/gc_relocate_operand.ll vendor/llvm/dist/test/Verifier/gc_relocate_return.ll vendor/llvm/dist/test/Verifier/invalid-statepoint.ll vendor/llvm/dist/test/Verifier/invalid-statepoint2.ll vendor/llvm/dist/test/Verifier/invoke.ll vendor/llvm/dist/test/Verifier/llvm.dbg.declare-address.ll vendor/llvm/dist/test/Verifier/llvm.dbg.declare-expression.ll vendor/llvm/dist/test/Verifier/llvm.dbg.declare-variable.ll vendor/llvm/dist/test/Verifier/llvm.dbg.intrinsic-dbg-attachment.ll vendor/llvm/dist/test/Verifier/llvm.dbg.value-expression.ll vendor/llvm/dist/test/Verifier/llvm.dbg.value-value.ll vendor/llvm/dist/test/Verifier/llvm.dbg.value-variable.ll vendor/llvm/dist/test/Verifier/statepoint.ll vendor/llvm/dist/test/lit.cfg vendor/llvm/dist/test/lit.site.cfg.in vendor/llvm/dist/test/tools/dsymutil/Inputs/basic2.c vendor/llvm/dist/test/tools/dsymutil/Inputs/frame-dw2.ll vendor/llvm/dist/test/tools/dsymutil/Inputs/frame-dw4.ll vendor/llvm/dist/test/tools/dsymutil/X86/basic-linking-x86.test vendor/llvm/dist/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test vendor/llvm/dist/test/tools/dsymutil/X86/basic-lto-linking-x86.test vendor/llvm/dist/test/tools/dsymutil/X86/frame-1.test vendor/llvm/dist/test/tools/dsymutil/X86/frame-2.test vendor/llvm/dist/test/tools/dsymutil/X86/lit.local.cfg vendor/llvm/dist/test/tools/dsymutil/basic-linking.test vendor/llvm/dist/test/tools/dsymutil/debug-map-parsing.test vendor/llvm/dist/test/tools/dsymutil/yaml-object-address-rewrite.test vendor/llvm/dist/test/tools/llvm-cxxdump/trivial.test vendor/llvm/dist/test/tools/llvm-mc/line_end_with_space.test vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-symbol-table.test vendor/llvm/dist/test/tools/llvm-pdbdump/regex-filter.test vendor/llvm/dist/test/tools/llvm-profdata/Inputs/c-general.profraw vendor/llvm/dist/test/tools/llvm-profdata/Inputs/sample-profile.proftext vendor/llvm/dist/test/tools/llvm-profdata/c-general.test vendor/llvm/dist/test/tools/llvm-profdata/compat.proftext vendor/llvm/dist/test/tools/llvm-profdata/count-mismatch.proftext vendor/llvm/dist/test/tools/llvm-profdata/raw-32-bits-be.test vendor/llvm/dist/test/tools/llvm-profdata/raw-32-bits-le.test vendor/llvm/dist/test/tools/llvm-profdata/raw-64-bits-be.test vendor/llvm/dist/test/tools/llvm-profdata/raw-64-bits-le.test vendor/llvm/dist/test/tools/llvm-profdata/raw-magic-but-no-header.test vendor/llvm/dist/test/tools/llvm-profdata/raw-two-profiles.test vendor/llvm/dist/test/tools/llvm-profdata/sample-profile-basic.test vendor/llvm/dist/test/tools/llvm-profdata/text-format-errors.test vendor/llvm/dist/test/tools/llvm-readobj/ARM/attribute-4.s vendor/llvm/dist/test/tools/llvm-readobj/codeview-linetables.test vendor/llvm/dist/test/tools/llvm-readobj/file-headers.test vendor/llvm/dist/test/tools/llvm-readobj/sections-ext.test vendor/llvm/dist/test/tools/llvm-readobj/sections.test vendor/llvm/dist/test/tools/llvm-symbolizer/pdb/Inputs/test.cpp vendor/llvm/dist/test/tools/llvm-symbolizer/pdb/Inputs/test.exe vendor/llvm/dist/test/tools/llvm-symbolizer/pdb/Inputs/test.pdb vendor/llvm/dist/test/tools/llvm-symbolizer/pdb/pdb.test vendor/llvm/dist/test/tools/lto/opt-level.ll vendor/llvm/dist/tools/CMakeLists.txt vendor/llvm/dist/tools/LLVMBuild.txt vendor/llvm/dist/tools/Makefile vendor/llvm/dist/tools/bugpoint-passes/TestPasses.cpp vendor/llvm/dist/tools/bugpoint/BugDriver.cpp vendor/llvm/dist/tools/bugpoint/BugDriver.h vendor/llvm/dist/tools/bugpoint/CMakeLists.txt vendor/llvm/dist/tools/bugpoint/CrashDebugger.cpp vendor/llvm/dist/tools/bugpoint/ExecutionDriver.cpp vendor/llvm/dist/tools/bugpoint/ExtractFunction.cpp vendor/llvm/dist/tools/bugpoint/ListReducer.h vendor/llvm/dist/tools/bugpoint/Miscompilation.cpp vendor/llvm/dist/tools/bugpoint/ToolRunner.cpp vendor/llvm/dist/tools/bugpoint/ToolRunner.h vendor/llvm/dist/tools/bugpoint/bugpoint.cpp vendor/llvm/dist/tools/dsymutil/BinaryHolder.cpp vendor/llvm/dist/tools/dsymutil/BinaryHolder.h vendor/llvm/dist/tools/dsymutil/CMakeLists.txt vendor/llvm/dist/tools/dsymutil/DebugMap.cpp vendor/llvm/dist/tools/dsymutil/DebugMap.h vendor/llvm/dist/tools/dsymutil/DwarfLinker.cpp vendor/llvm/dist/tools/dsymutil/MachODebugMapParser.cpp vendor/llvm/dist/tools/dsymutil/dsymutil.cpp vendor/llvm/dist/tools/dsymutil/dsymutil.h vendor/llvm/dist/tools/gold/gold-plugin.cpp vendor/llvm/dist/tools/llc/CMakeLists.txt vendor/llvm/dist/tools/llc/LLVMBuild.txt vendor/llvm/dist/tools/llc/Makefile vendor/llvm/dist/tools/llc/llc.cpp vendor/llvm/dist/tools/lli/OrcLazyJIT.cpp vendor/llvm/dist/tools/lli/OrcLazyJIT.h vendor/llvm/dist/tools/lli/RemoteTarget.cpp vendor/llvm/dist/tools/lli/lli.cpp vendor/llvm/dist/tools/llvm-ar/CMakeLists.txt vendor/llvm/dist/tools/llvm-ar/llvm-ar.cpp vendor/llvm/dist/tools/llvm-as/llvm-as.cpp vendor/llvm/dist/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp vendor/llvm/dist/tools/llvm-c-test/llvm-c-test.h vendor/llvm/dist/tools/llvm-c-test/main.c vendor/llvm/dist/tools/llvm-c-test/module.c vendor/llvm/dist/tools/llvm-c-test/object.c vendor/llvm/dist/tools/llvm-config/BuildVariables.inc.in vendor/llvm/dist/tools/llvm-config/CMakeLists.txt vendor/llvm/dist/tools/llvm-config/Makefile vendor/llvm/dist/tools/llvm-config/llvm-config.cpp vendor/llvm/dist/tools/llvm-cov/CoverageReport.cpp vendor/llvm/dist/tools/llvm-cov/CoverageViewOptions.h vendor/llvm/dist/tools/llvm-cov/gcov.cpp vendor/llvm/dist/tools/llvm-cxxdump/llvm-cxxdump.cpp vendor/llvm/dist/tools/llvm-diff/DiffLog.cpp vendor/llvm/dist/tools/llvm-diff/DiffLog.h vendor/llvm/dist/tools/llvm-diff/DifferenceEngine.cpp vendor/llvm/dist/tools/llvm-dis/llvm-dis.cpp vendor/llvm/dist/tools/llvm-dwarfdump/llvm-dwarfdump.cpp vendor/llvm/dist/tools/llvm-extract/llvm-extract.cpp vendor/llvm/dist/tools/llvm-go/llvm-go.go vendor/llvm/dist/tools/llvm-link/CMakeLists.txt vendor/llvm/dist/tools/llvm-link/LLVMBuild.txt vendor/llvm/dist/tools/llvm-link/Makefile vendor/llvm/dist/tools/llvm-link/llvm-link.cpp vendor/llvm/dist/tools/llvm-lto/CMakeLists.txt vendor/llvm/dist/tools/llvm-lto/LLVMBuild.txt vendor/llvm/dist/tools/llvm-lto/Makefile vendor/llvm/dist/tools/llvm-lto/llvm-lto.cpp vendor/llvm/dist/tools/llvm-mc/llvm-mc.cpp vendor/llvm/dist/tools/llvm-nm/CMakeLists.txt vendor/llvm/dist/tools/llvm-nm/llvm-nm.cpp vendor/llvm/dist/tools/llvm-objdump/CMakeLists.txt vendor/llvm/dist/tools/llvm-objdump/COFFDump.cpp vendor/llvm/dist/tools/llvm-objdump/ELFDump.cpp vendor/llvm/dist/tools/llvm-objdump/MachODump.cpp vendor/llvm/dist/tools/llvm-objdump/llvm-objdump.cpp vendor/llvm/dist/tools/llvm-objdump/llvm-objdump.h vendor/llvm/dist/tools/llvm-pdbdump/BuiltinDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/BuiltinDumper.h vendor/llvm/dist/tools/llvm-pdbdump/LinePrinter.cpp vendor/llvm/dist/tools/llvm-pdbdump/LinePrinter.h vendor/llvm/dist/tools/llvm-pdbdump/llvm-pdbdump.cpp vendor/llvm/dist/tools/llvm-pdbdump/llvm-pdbdump.h vendor/llvm/dist/tools/llvm-profdata/llvm-profdata.cpp vendor/llvm/dist/tools/llvm-readobj/ARMAttributeParser.cpp vendor/llvm/dist/tools/llvm-readobj/ARMEHABIPrinter.h vendor/llvm/dist/tools/llvm-readobj/ARMWinEHPrinter.cpp vendor/llvm/dist/tools/llvm-readobj/CMakeLists.txt vendor/llvm/dist/tools/llvm-readobj/COFFDumper.cpp vendor/llvm/dist/tools/llvm-readobj/ELFDumper.cpp vendor/llvm/dist/tools/llvm-readobj/MachODumper.cpp vendor/llvm/dist/tools/llvm-readobj/ObjDumper.h vendor/llvm/dist/tools/llvm-readobj/StreamWriter.h vendor/llvm/dist/tools/llvm-readobj/Win64EHDumper.cpp vendor/llvm/dist/tools/llvm-readobj/llvm-readobj.cpp vendor/llvm/dist/tools/llvm-readobj/llvm-readobj.h vendor/llvm/dist/tools/llvm-rtdyld/llvm-rtdyld.cpp vendor/llvm/dist/tools/llvm-shlib/CMakeLists.txt vendor/llvm/dist/tools/llvm-shlib/Makefile vendor/llvm/dist/tools/llvm-size/llvm-size.cpp vendor/llvm/dist/tools/llvm-stress/CMakeLists.txt vendor/llvm/dist/tools/llvm-stress/llvm-stress.cpp vendor/llvm/dist/tools/llvm-symbolizer/CMakeLists.txt vendor/llvm/dist/tools/llvm-symbolizer/Makefile vendor/llvm/dist/tools/llvm-symbolizer/llvm-symbolizer.cpp vendor/llvm/dist/tools/lto/CMakeLists.txt vendor/llvm/dist/tools/lto/lto.cpp vendor/llvm/dist/tools/obj2yaml/elf2yaml.cpp vendor/llvm/dist/tools/obj2yaml/obj2yaml.cpp vendor/llvm/dist/tools/opt/CMakeLists.txt vendor/llvm/dist/tools/opt/opt.cpp vendor/llvm/dist/tools/verify-uselistorder/verify-uselistorder.cpp vendor/llvm/dist/tools/yaml2obj/yaml2elf.cpp vendor/llvm/dist/unittests/ADT/APFloatTest.cpp vendor/llvm/dist/unittests/ADT/APIntTest.cpp vendor/llvm/dist/unittests/ADT/ArrayRefTest.cpp vendor/llvm/dist/unittests/ADT/BitVectorTest.cpp vendor/llvm/dist/unittests/ADT/CMakeLists.txt vendor/llvm/dist/unittests/ADT/DenseMapTest.cpp vendor/llvm/dist/unittests/ADT/FoldingSet.cpp vendor/llvm/dist/unittests/ADT/OptionalTest.cpp vendor/llvm/dist/unittests/ADT/PackedVectorTest.cpp vendor/llvm/dist/unittests/ADT/PointerIntPairTest.cpp vendor/llvm/dist/unittests/ADT/SmallStringTest.cpp vendor/llvm/dist/unittests/ADT/SparseBitVectorTest.cpp vendor/llvm/dist/unittests/ADT/StringRefTest.cpp vendor/llvm/dist/unittests/ADT/TripleTest.cpp vendor/llvm/dist/unittests/ADT/ilistTest.cpp vendor/llvm/dist/unittests/Analysis/AliasAnalysisTest.cpp vendor/llvm/dist/unittests/Analysis/CFGTest.cpp vendor/llvm/dist/unittests/Analysis/CMakeLists.txt vendor/llvm/dist/unittests/Analysis/Makefile vendor/llvm/dist/unittests/Analysis/MixedTBAATest.cpp vendor/llvm/dist/unittests/Analysis/ScalarEvolutionTest.cpp vendor/llvm/dist/unittests/AsmParser/AsmParserTest.cpp vendor/llvm/dist/unittests/Bitcode/BitReaderTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp vendor/llvm/dist/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/MCJIT/MCJITObjectCacheTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/MCJIT/MCJITTestAPICommon.h vendor/llvm/dist/unittests/ExecutionEngine/MCJIT/MCJITTestBase.h vendor/llvm/dist/unittests/ExecutionEngine/Orc/CMakeLists.txt vendor/llvm/dist/unittests/ExecutionEngine/Orc/IndirectionUtilsTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/OrcTestCommon.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/OrcTestCommon.h vendor/llvm/dist/unittests/IR/CMakeLists.txt vendor/llvm/dist/unittests/IR/ConstantRangeTest.cpp vendor/llvm/dist/unittests/IR/ConstantsTest.cpp vendor/llvm/dist/unittests/IR/DominatorTreeTest.cpp vendor/llvm/dist/unittests/IR/IRBuilderTest.cpp vendor/llvm/dist/unittests/IR/LegacyPassManagerTest.cpp vendor/llvm/dist/unittests/IR/Makefile vendor/llvm/dist/unittests/IR/MetadataTest.cpp vendor/llvm/dist/unittests/IR/TypesTest.cpp vendor/llvm/dist/unittests/IR/UserTest.cpp vendor/llvm/dist/unittests/IR/ValueHandleTest.cpp vendor/llvm/dist/unittests/IR/ValueTest.cpp vendor/llvm/dist/unittests/IR/VerifierTest.cpp vendor/llvm/dist/unittests/Linker/LinkModulesTest.cpp vendor/llvm/dist/unittests/MC/StringTableBuilderTest.cpp vendor/llvm/dist/unittests/Option/OptionParsingTest.cpp vendor/llvm/dist/unittests/ProfileData/CMakeLists.txt vendor/llvm/dist/unittests/ProfileData/CoverageMappingTest.cpp vendor/llvm/dist/unittests/ProfileData/InstrProfTest.cpp vendor/llvm/dist/unittests/Support/AlignOfTest.cpp vendor/llvm/dist/unittests/Support/BlockFrequencyTest.cpp vendor/llvm/dist/unittests/Support/BranchProbabilityTest.cpp vendor/llvm/dist/unittests/Support/CMakeLists.txt vendor/llvm/dist/unittests/Support/CommandLineTest.cpp vendor/llvm/dist/unittests/Support/EndianTest.cpp vendor/llvm/dist/unittests/Support/FileOutputBufferTest.cpp vendor/llvm/dist/unittests/Support/MathExtrasTest.cpp vendor/llvm/dist/unittests/Support/MemoryBufferTest.cpp vendor/llvm/dist/unittests/Support/Path.cpp vendor/llvm/dist/unittests/Support/ProgramTest.cpp vendor/llvm/dist/unittests/Transforms/Utils/Cloning.cpp vendor/llvm/dist/unittests/Transforms/Utils/IntegerDivision.cpp vendor/llvm/dist/unittests/Transforms/Utils/ValueMapperTest.cpp vendor/llvm/dist/utils/FileCheck/FileCheck.cpp vendor/llvm/dist/utils/PerfectShuffle/PerfectShuffle.cpp vendor/llvm/dist/utils/TableGen/AsmMatcherEmitter.cpp vendor/llvm/dist/utils/TableGen/AsmWriterEmitter.cpp vendor/llvm/dist/utils/TableGen/CMakeLists.txt vendor/llvm/dist/utils/TableGen/CallingConvEmitter.cpp vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.cpp vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.h vendor/llvm/dist/utils/TableGen/CodeGenInstruction.cpp vendor/llvm/dist/utils/TableGen/CodeGenIntrinsics.h vendor/llvm/dist/utils/TableGen/CodeGenMapTable.cpp vendor/llvm/dist/utils/TableGen/CodeGenRegisters.cpp vendor/llvm/dist/utils/TableGen/CodeGenSchedule.cpp vendor/llvm/dist/utils/TableGen/CodeGenSchedule.h vendor/llvm/dist/utils/TableGen/CodeGenTarget.cpp vendor/llvm/dist/utils/TableGen/CodeGenTarget.h vendor/llvm/dist/utils/TableGen/DAGISelMatcherEmitter.cpp vendor/llvm/dist/utils/TableGen/DFAPacketizerEmitter.cpp vendor/llvm/dist/utils/TableGen/DisassemblerEmitter.cpp vendor/llvm/dist/utils/TableGen/FixedLenDecoderEmitter.cpp vendor/llvm/dist/utils/TableGen/InstrInfoEmitter.cpp vendor/llvm/dist/utils/TableGen/IntrinsicEmitter.cpp vendor/llvm/dist/utils/TableGen/OptParserEmitter.cpp vendor/llvm/dist/utils/TableGen/RegisterInfoEmitter.cpp vendor/llvm/dist/utils/TableGen/SubtargetEmitter.cpp vendor/llvm/dist/utils/TableGen/TableGen.cpp vendor/llvm/dist/utils/TableGen/TableGenBackends.h vendor/llvm/dist/utils/TableGen/X86RecognizableInstr.cpp vendor/llvm/dist/utils/emacs/llvm-mode.el vendor/llvm/dist/utils/lit/TODO vendor/llvm/dist/utils/lit/lit/LitConfig.py vendor/llvm/dist/utils/lit/lit/Test.py vendor/llvm/dist/utils/lit/lit/TestRunner.py vendor/llvm/dist/utils/lit/lit/TestingConfig.py vendor/llvm/dist/utils/lit/lit/formats/googletest.py vendor/llvm/dist/utils/lit/lit/main.py vendor/llvm/dist/utils/lit/lit/util.py vendor/llvm/dist/utils/lit/tests/discovery.py vendor/llvm/dist/utils/lit/tests/lit.cfg vendor/llvm/dist/utils/llvm-build/llvmbuild/main.py vendor/llvm/dist/utils/release/merge.sh vendor/llvm/dist/utils/release/test-release.sh vendor/llvm/dist/utils/shuffle_fuzz.py vendor/llvm/dist/utils/unittest/googletest/src/gtest-internal-inl.h vendor/llvm/dist/utils/update_llc_test_checks.py vendor/llvm/dist/utils/vim/ftplugin/llvm.vim vendor/llvm/dist/utils/vim/syntax/llvm.vim Modified: vendor/llvm/dist/.clang-tidy ============================================================================== --- vendor/llvm/dist/.clang-tidy Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/.clang-tidy Wed Dec 30 11:46:15 2015 (r292915) @@ -1 +1,13 @@ -Checks: '-*,clang-diagnostic-*,llvm-*,misc-*' +Checks: '-*,clang-diagnostic-*,llvm-*,misc-*,readability-identifier-naming' +CheckOptions: + - key: readability-identifier-naming.ClassCase + value: CamelCase + - key: readability-identifier-naming.EnumCase + value: CamelCase + - key: readability-identifier-naming.FunctionCase + value: lowerCase + - key: readability-identifier-naming.UnionCase + value: CamelCase + - key: readability-identifier-naming.VariableCase + value: CamelCase + Modified: vendor/llvm/dist/CMakeLists.txt ============================================================================== --- vendor/llvm/dist/CMakeLists.txt Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/CMakeLists.txt Wed Dec 30 11:46:15 2015 (r292915) @@ -26,13 +26,41 @@ else() set(cmake_3_2_USES_TERMINAL USES_TERMINAL) endif() -project(LLVM) +if(NOT DEFINED LLVM_VERSION_MAJOR) + set(LLVM_VERSION_MAJOR 3) +endif() +if(NOT DEFINED LLVM_VERSION_MINOR) + set(LLVM_VERSION_MINOR 8) +endif() +if(NOT DEFINED LLVM_VERSION_PATCH) + set(LLVM_VERSION_PATCH 0) +endif() +if(NOT DEFINED LLVM_VERSION_SUFFIX) + set(LLVM_VERSION_SUFFIX svn) +endif() + +if (POLICY CMP0048) + cmake_policy(SET CMP0048 NEW) + set(cmake_3_0_PROJ_VERSION + VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}) + set(cmake_3_0_LANGUAGES LANGUAGES) +endif() + +if (NOT PACKAGE_VERSION) + set(PACKAGE_VERSION + "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX}") +endif() + +project(LLVM + ${cmake_3_0_PROJ_VERSION} + ${cmake_3_0_LANGUAGES} + C CXX ASM) # The following only works with the Ninja generator in CMake >= 3.0. set(LLVM_PARALLEL_COMPILE_JOBS "" CACHE STRING "Define the maximum number of concurrent compilation jobs.") if(LLVM_PARALLEL_COMPILE_JOBS) - if(CMAKE_VERSION VERSION_LESS 3.0 OR NOT CMAKE_MAKE_PROGRAM MATCHES "ninja$") + if(CMAKE_VERSION VERSION_LESS 3.0 OR NOT CMAKE_MAKE_PROGRAM MATCHES "ninja") message(WARNING "Job pooling is only available with Ninja generators and CMake 3.0 and later.") else() set_property(GLOBAL APPEND PROPERTY JOB_POOLS compile_job_pool=${LLVM_PARALLEL_COMPILE_JOBS}) @@ -43,7 +71,7 @@ endif() set(LLVM_PARALLEL_LINK_JOBS "" CACHE STRING "Define the maximum number of concurrent link jobs.") if(LLVM_PARALLEL_LINK_JOBS) - if(CMAKE_VERSION VERSION_LESS 3.0 OR NOT CMAKE_MAKE_PROGRAM MATCHES "ninja$") + if(CMAKE_VERSION VERSION_LESS 3.0 OR NOT CMAKE_MAKE_PROGRAM MATCHES "ninja") message(WARNING "Job pooling is only available with Ninja generators and CMake 3.0 and later.") else() set_property(GLOBAL APPEND PROPERTY JOB_POOLS link_job_pool=${LLVM_PARALLEL_LINK_JOBS}) @@ -58,15 +86,9 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ) -set(LLVM_VERSION_MAJOR 3) -set(LLVM_VERSION_MINOR 7) -set(LLVM_VERSION_PATCH 1) -set(LLVM_VERSION_SUFFIX "") - -if (NOT PACKAGE_VERSION) - set(PACKAGE_VERSION - "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX}") -endif() +# Generate a CompilationDatabase (compile_commands.json file) for our build, +# for use by clang_complete, YouCompleteMe, etc. +set(CMAKE_EXPORT_COMPILE_COMMANDS 1) option(LLVM_INSTALL_UTILS "Include utility binaries in the 'install' target." OFF) @@ -152,6 +174,11 @@ endif() string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE) +if (CMAKE_BUILD_TYPE AND + NOT uppercase_CMAKE_BUILD_TYPE MATCHES "^(DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL)$") + message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") +endif() + set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" ) # They are used as destination of target generators. @@ -278,6 +305,9 @@ endif( LLVM_USE_INTEL_JITEVENTS ) option(LLVM_USE_OPROFILE "Use opagent JIT interface to inform OProfile about JIT code" OFF) +option(LLVM_EXTERNALIZE_DEBUGINFO + "Generate dSYM files and strip executables and libraries (Darwin Only)" OFF) + # If enabled, verify we are on a platform that supports oprofile. if( LLVM_USE_OPROFILE ) if( NOT CMAKE_SYSTEM_NAME MATCHES "Linux" ) @@ -304,7 +334,7 @@ endif() # Define the default arguments to use with 'lit', and an option for the user to # override. set(LIT_ARGS_DEFAULT "-sv") -if (MSVC OR XCODE) +if (MSVC_IDE OR XCODE) set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar") endif() set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit") @@ -333,6 +363,7 @@ option(LLVM_INCLUDE_EXAMPLES "Generate b option(LLVM_BUILD_TESTS "Build LLVM unit tests. If OFF, just generate build targets." OFF) option(LLVM_INCLUDE_TESTS "Generate build targets for the LLVM unit tests." ON) +option(LLVM_INCLUDE_GO_TESTS "Include the Go bindings tests in test build targets." ON) option (LLVM_BUILD_DOCS "Build the llvm documentation." OFF) option (LLVM_INCLUDE_DOCS "Generate build targets for llvm documentation." ON) @@ -342,9 +373,25 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx t option (LLVM_BUILD_EXTERNAL_COMPILER_RT "Build compiler-rt as an external project." OFF) -option(LLVM_BUILD_LLVM_DYLIB "Build libllvm dynamic library" OFF) -option(LLVM_DYLIB_EXPORT_ALL "Export all symbols from libLLVM.dylib (default is C API only" OFF) -option(LLVM_DISABLE_LLVM_DYLIB_ATEXIT "Disable llvm-shlib's atexit destructors." ON) +# You can configure which libraries from LLVM you want to include in the +# shared library by setting LLVM_DYLIB_COMPONENTS to a semi-colon delimited +# list of LLVM components. All component names handled by llvm-config are valid. +if(NOT DEFINED LLVM_DYLIB_COMPONENTS) + set(LLVM_DYLIB_COMPONENTS "all" CACHE STRING + "Semicolon-separated list of components to include in libLLVM, or \"all\".") +endif() +option(LLVM_LINK_LLVM_DYLIB "Link tools against the libllvm dynamic library" OFF) +option(LLVM_BUILD_LLVM_C_DYLIB "Build libllvm-c re-export library (Darwin Only)" OFF) +set(LLVM_BUILD_LLVM_DYLIB_default OFF) +if(LLVM_LINK_LLVM_DYLIB OR LLVM_BUILD_LLVM_C_DYLIB) + set(LLVM_BUILD_LLVM_DYLIB_default ON) +endif() +option(LLVM_BUILD_LLVM_DYLIB "Build libllvm dynamic library" ${LLVM_BUILD_LLVM_DYLIB_default}) +set(LLVM_DISABLE_LLVM_DYLIB_ATEXIT_DEFAULT ON) +if (LLVM_LINK_LLVM_DYLIB) + set(LLVM_DISABLE_LLVM_DYLIB_ATEXIT_DEFAULT OFF) +endif() +option(LLVM_DISABLE_LLVM_DYLIB_ATEXIT "Disable llvm-shlib's atexit destructors." ${LLVM_DISABLE_LLVM_DYLIB_ATEXIT_DEFAULT}) if(LLVM_DISABLE_LLVM_DYLIB_ATEXIT) set(DISABLE_LLVM_DYLIB_ATEXIT 1) endif() @@ -525,6 +572,15 @@ else(UNIX) endif(NOT DEFINED CMAKE_INSTALL_RPATH) endif() +if(APPLE AND DARWIN_LTO_LIBRARY) + set(CMAKE_EXE_LINKER_FLAGS + "${CMAKE_EXE_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}") + set(CMAKE_SHARED_LINKER_FLAGS + "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}") + set(CMAKE_MODULE_LINKER_FLAGS + "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}") +endif() + # Work around a broken bfd ld behavior. When linking a binary with a # foo.so library, it will try to find any library that foo.so uses and # check its symbols. This is wasteful (the check was done when foo.so @@ -543,6 +599,10 @@ include_directories( ${LLVM_INCLUDE_DIR} if(LLVM_USE_HOST_TOOLS) include(CrossCompile) endif(LLVM_USE_HOST_TOOLS) +if(LLVM_TARGET_IS_CROSSCOMPILE_HOST) +# Dummy use to avoid CMake Wraning: Manually-specified variables were not used +# (this is a variable that CrossCompile sets on recursive invocations) +endif() if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") # On FreeBSD, /usr/local/* is not used by default. In order to build LLVM @@ -559,6 +619,17 @@ endif( ${CMAKE_SYSTEM_NAME} MATCHES SunO # use export_executable_symbols(target). set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") +set(LLVM_PROFDATA_FILE "" CACHE FILEPATH + "Profiling data file to use when compiling in order to improve runtime performance.") + +if(LLVM_PROFDATA_FILE AND EXISTS ${LLVM_PROFDATA_FILE}) + if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" ) + add_definitions("-fprofile-instr-use=${LLVM_PROFDATA_FILE}") + else() + message(FATAL_ERROR "LLVM_PROFDATA_FILE can only be specified when compiling with clang") + endif() +endif() + include(AddLLVM) include(TableGen) @@ -619,6 +690,13 @@ if( LLVM_INCLUDE_EXAMPLES ) endif() if( LLVM_INCLUDE_TESTS ) + if(EXISTS ${LLVM_MAIN_SRC_DIR}/projects/test-suite AND TARGET clang) + include(LLVMExternalProjectUtils) + llvm_ExternalProject_Add(test-suite ${LLVM_MAIN_SRC_DIR}/projects/test-suite + USE_TOOLCHAIN + EXCLUDE_FROM_ALL + NO_INSTALL) + endif() add_subdirectory(test) add_subdirectory(unittests) if (MSVC) Modified: vendor/llvm/dist/CODE_OWNERS.TXT ============================================================================== --- vendor/llvm/dist/CODE_OWNERS.TXT Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/CODE_OWNERS.TXT Wed Dec 30 11:46:15 2015 (r292915) @@ -31,7 +31,7 @@ D: Config, ADT, Support, inlining & rela N: Evan Cheng E: evan.cheng@apple.com -D: ARM target, parts of code generator not covered by someone else +D: parts of code generator not covered by someone else N: Eric Christopher E: echristo@gmail.com @@ -53,10 +53,6 @@ N: Quentin Colombet E: qcolombet@apple.com D: Register allocators -N: Anshuman Dasgupta -E: adasgupt@codeaurora.org -D: Hexagon Backend - N: Duncan P. N. Exon Smith E: dexonsmith@apple.com D: Branch weights and BlockFrequencyInfo @@ -93,10 +89,6 @@ N: Lang Hames E: lhames@gmail.com D: MCJIT, RuntimeDyld and JIT event listeners -N: David Majnemer -E: david.majnemer@gmail.com -D: IR Constant Folder - N: Galina Kistanova E: gkistanova@gmail.com D: LLVM Buildbot @@ -118,9 +110,17 @@ E: sabre@nondot.org W: http://nondot.org/~sabre/ D: Everything not covered by someone else +N: David Majnemer +E: david.majnemer@gmail.com +D: IR Constant Folder, InstCombine + +N: Dylan McKay +E: dylanmckay34@gmail.com +D: AVR Backend + N: Tim Northover E: t.p.northover@gmail.com -D: AArch64 backend +D: AArch64 backend, misc ARM backend N: Diego Novillo E: dnovillo@google.com @@ -134,14 +134,18 @@ N: Richard Osborne E: richard@xmos.com D: XCore Backend +N: Krzysztof Parzyszek +E: kparzysz@codeaurora.org +D: Hexagon Backend + +N: Paul Robinson +E: paul_robinson@playstation.sony.com +D: Sony PlayStation®4 support + N: Chad Rosier E: mcrosier@codeaurora.org D: Fast-Isel -N: Alex Rosenberg -E: alexr@leftfield.org -D: Sony PlayStation®4 support - N: Nadav Rotem E: nrotem@apple.com D: X86 Backend, Loop Vectorizer Modified: vendor/llvm/dist/CREDITS.TXT ============================================================================== --- vendor/llvm/dist/CREDITS.TXT Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/CREDITS.TXT Wed Dec 30 11:46:15 2015 (r292915) @@ -465,54 +465,3 @@ N: Bob Wilson E: bob.wilson@acm.org D: Advanced SIMD (NEON) support in the ARM backend. -N: Alexey Bataev -E: a.bataev@hotmail.com -D: Clang OpenMP implementation - -N: Andrey Bokhanko -E: andreybokhanko@gmail.com -D: Clang OpenMP implementation - -N: Carlo Bertolli -E: cbertol@us.ibm.com -D: Clang OpenMP implementation - -N: Eric Stotzer -E: estotzer@ti.com -D: Clang OpenMP implementation - -N: Kelvin Li -E: kkwli0@gmail.com -D: Clang OpenMP implementation - -N: Samuel Antao -E: sfantao@us.ibm.com -D: Clang OpenMP implementation - -N: Sergey Ostanevich -E: sergos.gnu@gmail.com -D: Clang OpenMP implementation - -N: Alexandre Eichenberger -E: alexe@us.ibm.com -D: Clang OpenMP implementation - -N: Guansong Zhang -E: guansong.zhang@amd.com -D: Clang OpenMP implementation - -N: Sunita Chandrasekaran -E: sunisg123@gmail.com -D: Clang OpenMP implementation - -N: Michael Wong -E: fraggamuffin@gmail.com -D: Clang OpenMP implementation - -N: Alexander Mussman -E: alexander.musman@intel.com -D: Clang OpenMP implementation - -N: Kevin O'Brien -E: caomhin@us.ibm.com -D: Clang OpenMP implementation \ No newline at end of file Modified: vendor/llvm/dist/Makefile.config.in ============================================================================== --- vendor/llvm/dist/Makefile.config.in Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/Makefile.config.in Wed Dec 30 11:46:15 2015 (r292915) @@ -396,8 +396,8 @@ endif BINUTILS_INCDIR := @BINUTILS_INCDIR@ # Optional flags supported by the compiler -# -Wno-missing-field-initializers -NO_MISSING_FIELD_INITIALIZERS = @NO_MISSING_FIELD_INITIALIZERS@ +# -Wmissing-field-initializers +MISSING_FIELD_INITIALIZERS = @MISSING_FIELD_INITIALIZERS@ # -Wno-variadic-macros NO_VARIADIC_MACROS = @NO_VARIADIC_MACROS@ # -Wcovered-switch-default Modified: vendor/llvm/dist/Makefile.rules ============================================================================== --- vendor/llvm/dist/Makefile.rules Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/Makefile.rules Wed Dec 30 11:46:15 2015 (r292915) @@ -486,6 +486,8 @@ endif ObjRootDir := $(PROJ_OBJ_DIR)/$(BuildMode) ObjDir := $(ObjRootDir) LibDir := $(PROJ_OBJ_ROOT)/$(BuildMode)/lib +LibexecDir := $(PROJ_OBJ_ROOT)/$(BuildMode)/libexec +ShareDir := $(PROJ_OBJ_ROOT)/$(BuildMode)/share ToolDir := $(PROJ_OBJ_ROOT)/$(BuildMode)/bin ExmplDir := $(PROJ_OBJ_ROOT)/$(BuildMode)/examples LLVMLibDir := $(LLVM_OBJ_ROOT)/$(BuildMode)/lib @@ -686,7 +688,7 @@ endif CompileCommonOpts += -Wall -W -Wno-unused-parameter -Wwrite-strings \ $(EXTRA_OPTIONS) $(COVERED_SWITCH_DEFAULT) \ $(NO_UNINITIALIZED) $(NO_MAYBE_UNINITIALIZED) \ - $(NO_MISSING_FIELD_INITIALIZERS) $(NO_COMMENT) + $(MISSING_FIELD_INITIALIZERS) $(NO_COMMENT) # Enable cast-qual for C++; the workaround is to use const_cast. CXX.Flags += -Wcast-qual @@ -857,6 +859,7 @@ $(DESTDIR)$(PROJ_bindir) $(DESTDIR)$(PRO .PRECIOUS: $(LibDir)/.dir $(ToolDir)/.dir $(ExmplDir)/.dir .PRECIOUS: $(LLVMLibDir)/.dir $(LLVMToolDir)/.dir $(LLVMExmplDir)/.dir +.PRECIOUS: $(LibexecDir)/.dir $(ShareDir)/.dir #--------------------------------------------------------- # Collect the object directories (as there may be more @@ -2144,6 +2147,8 @@ printvars:: $(Echo) "SrcMakefiles : " '$(SrcMakefiles)' $(Echo) "ObjDir : " '$(ObjDir)' $(Echo) "LibDir : " '$(LibDir)' + $(Echo) "LibexecDir : " '$(LibexecDir)' + $(Echo) "ShareDir : " '$(ShareDir)' $(Echo) "ToolDir : " '$(ToolDir)' $(Echo) "ExmplDir : " '$(ExmplDir)' $(Echo) "Sources : " '$(Sources)' Modified: vendor/llvm/dist/README.txt ============================================================================== --- vendor/llvm/dist/README.txt Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/README.txt Wed Dec 30 11:46:15 2015 (r292915) @@ -13,5 +13,5 @@ assistance with LLVM, and in particular started with LLVM and docs/README.txt for an overview of LLVM's documentation setup. -If you're writing a package for LLVM, see docs/Packaging.rst for our +If you are writing a package for LLVM, see docs/Packaging.rst for our suggestions. Modified: vendor/llvm/dist/autoconf/configure.ac ============================================================================== --- vendor/llvm/dist/autoconf/configure.ac Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/autoconf/configure.ac Wed Dec 30 11:46:15 2015 (r292915) @@ -32,12 +32,12 @@ dnl===---------------------------------- dnl Initialize autoconf and define the package name, version number and dnl address for reporting bugs. -AC_INIT([LLVM],[3.7.1],[http://llvm.org/bugs/]) +AC_INIT([LLVM],[3.8.0svn],[http://llvm.org/bugs/]) LLVM_VERSION_MAJOR=3 -LLVM_VERSION_MINOR=7 -LLVM_VERSION_PATCH=1 -LLVM_VERSION_SUFFIX= +LLVM_VERSION_MINOR=8 +LLVM_VERSION_PATCH=0 +LLVM_VERSION_SUFFIX=svn AC_DEFINE_UNQUOTED([LLVM_VERSION_MAJOR], $LLVM_VERSION_MAJOR, [Major version of the LLVM API]) AC_DEFINE_UNQUOTED([LLVM_VERSION_MINOR], $LLVM_VERSION_MINOR, [Minor version of the LLVM API]) @@ -74,7 +74,7 @@ if test ${srcdir} != "." ; then fi dnl Quit if it is an in-source build -if test ${srcdir} == "." ; then +if test ${srcdir} = "." ; then AC_MSG_ERROR([In-source builds are not allowed. Please configure from a separate build directory!]) fi @@ -133,6 +133,7 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#if llvm_cv_cxx_compiler=gcc, [])]) AC_LANG_POP([C++]) AC_MSG_RESULT([${llvm_cv_cxx_compiler}]) +AC_SUBST(CXX_COMPILER,$llvm_cv_cxx_compiler) dnl Configure all of the projects present in our source tree. While we could dnl just AC_CONFIG_SUBDIRS on the set of directories in projects that have a @@ -430,6 +431,7 @@ AC_CACHE_CHECK([target architecture],[ll arm64*-*) llvm_cv_target_arch="AArch64" ;; arm*-*) llvm_cv_target_arch="ARM" ;; aarch64*-*) llvm_cv_target_arch="AArch64" ;; + avr-*) llvm_cv_target_arch="AVR" ;; mips-* | mips64-*) llvm_cv_target_arch="Mips" ;; mipsel-* | mips64el-*) llvm_cv_target_arch="Mips" ;; xcore-*) llvm_cv_target_arch="XCore" ;; @@ -467,6 +469,7 @@ case $host in arm64*-*) host_arch="AArch64" ;; arm*-*) host_arch="ARM" ;; aarch64*-*) host_arch="AArch64" ;; + avr-*) host_arch="AVR" ;; mips-* | mips64-*) host_arch="Mips" ;; mipsel-* | mips64el-*) host_arch="Mips" ;; xcore-*) host_arch="XCore" ;; @@ -800,6 +803,7 @@ else PowerPC) AC_SUBST(TARGET_HAS_JIT,1) ;; x86_64) AC_SUBST(TARGET_HAS_JIT,1) ;; ARM) AC_SUBST(TARGET_HAS_JIT,1) ;; + AVR) AC_SUBST(TARGET_HAS_JIT,0) ;; Mips) AC_SUBST(TARGET_HAS_JIT,1) ;; XCore) AC_SUBST(TARGET_HAS_JIT,0) ;; MSP430) AC_SUBST(TARGET_HAS_JIT,0) ;; @@ -1339,7 +1343,7 @@ AC_DEFINE_UNQUOTED(DEFAULT_SYSROOT,"$wit AC_ARG_WITH(clang-default-openmp-runtime, AS_HELP_STRING([--with-clang-default-openmp-runtime], [The default OpenMP runtime for Clang.]),, - withval="libgomp") + withval="libomp") AC_DEFINE_UNQUOTED(CLANG_DEFAULT_OPENMP_RUNTIME,"$withval", [Default OpenMP runtime used by -fopenmp.]) @@ -1548,25 +1552,31 @@ AC_MSG_RESULT([ok]) dnl Check optional compiler flags. AC_MSG_CHECKING([optional compiler flags]) -CXX_FLAG_CHECK(NO_VARIADIC_MACROS, [-Wno-variadic-macros]) -CXX_FLAG_CHECK(NO_MISSING_FIELD_INITIALIZERS, [-Wno-missing-field-initializers]) -CXX_FLAG_CHECK(COVERED_SWITCH_DEFAULT, [-Wcovered-switch-default]) - -dnl GCC's potential uninitialized use analysis is weak and presents lots of -dnl false positives, so disable it. -NO_UNINITIALIZED= -NO_MAYBE_UNINITIALIZED= -if test "$GXX" = "yes" -then - CXX_FLAG_CHECK(NO_MAYBE_UNINITIALIZED, [-Wno-maybe-uninitialized]) - dnl gcc 4.7 introduced -Wmaybe-uninitialized to distinguish cases which are - dnl known to be uninitialized from cases which might be uninitialized. We - dnl still want to catch the first kind of errors. - if test -z "$NO_MAYBE_UNINITIALIZED" - then - CXX_FLAG_CHECK(NO_UNINITIALIZED, [-Wno-uninitialized]) - fi -fi +case "$llvm_cv_cxx_compiler" in + clang) + CXX_FLAG_CHECK(NO_VARIADIC_MACROS, [-Wno-variadic-macros]) + CXX_FLAG_CHECK(MISSING_FIELD_INITIALIZERS, [-Wmissing-field-initializers]) + CXX_FLAG_CHECK(COVERED_SWITCH_DEFAULT, [-Wcovered-switch-default]) + ;; + gcc) + dnl If we're using gcc check for -Wno-missing-field-initializers as gcc will warn + dnl on plain open brace initializations. clang won't so use -Wmissing-field-initializers + dnl there. + CXX_FLAG_CHECK(MISSING_FIELD_INITIALIZERS, [-Wno-missing-field-initializers]) + CXX_FLAG_CHECK(NO_VARIADIC_MACROS, [-Wno-variadic-macros]) + CXX_FLAG_CHECK(COVERED_SWITCH_DEFAULT, [-Wcovered-switch-default]) + CXX_FLAG_CHECK(NO_MAYBE_UNINITIALIZED, [-Wno-maybe-uninitialized]) + dnl gcc 4.7 introduced -Wmaybe-uninitialized to distinguish cases which are + dnl known to be uninitialized from cases which might be uninitialized. We + dnl still want to catch the first kind of errors. + if test -z "$NO_MAYBE_UNINITIALIZED" + then + CXX_FLAG_CHECK(NO_UNINITIALIZED, [-Wno-uninitialized]) + fi + ;; + unknown) + ;; +esac dnl Check for misbehaving -Wcomment (gcc-4.7 has this) and maybe add dnl -Wno-comment to the flags. @@ -1587,7 +1597,7 @@ int main() { return 0; } AC_SUBST(NO_COMMENT, [$no_comment]) CXXFLAGS="$llvm_cv_old_cxxflags" -AC_MSG_RESULT([$NO_VARIADIC_MACROS $NO_MISSING_FIELD_INITIALIZERS $COVERED_SWITCH_DEFAULT $NO_UNINITIALIZED $NO_MAYBE_UNINITIALIZED $NO_COMMENT]) +AC_MSG_RESULT([$NO_VARIADIC_MACROS $MISSING_FIELD_INITIALIZERS $COVERED_SWITCH_DEFAULT $NO_UNINITIALIZED $NO_MAYBE_UNINITIALIZED $NO_COMMENT]) AC_ARG_WITH([python], [AS_HELP_STRING([--with-python], [path to python])], @@ -1628,9 +1638,12 @@ dnl===---------------------------------- AC_CHECK_LIB(m,sin) if test "$llvm_cv_os_type" = "MingW" ; then + dnl mingw-gcc's driver doesn't imply -lole32 by default so we may need this + dnl when being built with gcc for bootstrapping purposes. AC_CHECK_LIB(ole32, main) AC_CHECK_LIB(psapi, main) AC_CHECK_LIB(shell32, main) + AC_CHECK_LIB(uuid,main) fi dnl dlopen() is required for plugin support. @@ -1786,7 +1799,6 @@ dnl Generally we're looking for POSIX he AC_HEADER_DIRENT AC_HEADER_MMAP_ANONYMOUS AC_HEADER_STAT -AC_HEADER_SYS_WAIT AC_HEADER_TIME AC_LANG_PUSH([C++]) @@ -1798,7 +1810,6 @@ AC_LANG_POP([C++]) AC_CHECK_HEADERS([dlfcn.h execinfo.h fcntl.h inttypes.h link.h]) AC_CHECK_HEADERS([malloc.h setjmp.h signal.h stdint.h termios.h unistd.h]) -AC_CHECK_HEADERS([utime.h]) AC_CHECK_HEADERS([sys/mman.h sys/param.h sys/resource.h sys/time.h sys/uio.h]) AC_CHECK_HEADERS([sys/ioctl.h malloc/malloc.h mach/mach.h]) AC_CHECK_HEADERS([valgrind/valgrind.h]) @@ -1876,10 +1887,9 @@ AC_CHECK_FUNCS([isatty mkdtemp mkstemp ] AC_CHECK_FUNCS([mktemp posix_spawn pread realpath sbrk setrlimit ]) AC_CHECK_FUNCS([strerror strerror_r setenv ]) AC_CHECK_FUNCS([strtoll strtoq sysconf malloc_zone_statistics ]) -AC_CHECK_FUNCS([setjmp longjmp sigsetjmp siglongjmp writev]) +AC_CHECK_FUNCS([setjmp longjmp writev]) AC_CHECK_FUNCS([futimes futimens]) AC_C_PRINTF_A -AC_FUNC_RAND48 dnl Check for arc4random accessible via AC_INCLUDES_DEFAULT. AC_CHECK_DECLS([arc4random]) @@ -2232,3 +2242,14 @@ AC_CONFIG_MAKEFILE(bindings/ocaml/Makefi dnl Finally, crank out the output AC_OUTPUT +echo "" +echo "" +echo "################################################################################" +echo "################################################################################" +echo "The LLVM project has deprecated building with configure & make." +echo "The autoconf-based makefile build system will be removed in the 3.9 release." +echo "" +echo "Please migrate to the CMake-based build system." +echo "For more information see: http://llvm.org/docs/CMake.html" +echo "################################################################################" +echo "################################################################################" Modified: vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.cpp ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.cpp Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.cpp Wed Dec 30 11:46:15 2015 (r292915) @@ -74,23 +74,34 @@ LLVMMetadataRef LLVMDIBuilderCreateFunct LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name, const char *LinkageName, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef CompositeType, int IsLocalToUnit, int IsDefinition, - unsigned ScopeLine, unsigned Flags, int IsOptimized, LLVMValueRef Func) { + unsigned ScopeLine, unsigned Flags, int IsOptimized) { DIBuilder *D = unwrap(Dref); return wrap(D->createFunction(unwrap(Scope), Name, LinkageName, File ? unwrap(File) : nullptr, Line, unwrap(CompositeType), IsLocalToUnit, IsDefinition, ScopeLine, Flags, - IsOptimized, unwrap(Func))); + IsOptimized)); } -LLVMMetadataRef LLVMDIBuilderCreateLocalVariable( - LLVMDIBuilderRef Dref, unsigned Tag, LLVMMetadataRef Scope, - const char *Name, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty, - int AlwaysPreserve, unsigned Flags, unsigned ArgNo) { +LLVMMetadataRef +LLVMDIBuilderCreateAutoVariable(LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, + const char *Name, LLVMMetadataRef File, + unsigned Line, LLVMMetadataRef Ty, + int AlwaysPreserve, unsigned Flags) { + DIBuilder *D = unwrap(Dref); + return wrap(D->createAutoVariable(unwrap(Scope), Name, + unwrap(File), Line, + unwrap(Ty), AlwaysPreserve, Flags)); +} + +LLVMMetadataRef LLVMDIBuilderCreateParameterVariable( + LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name, + unsigned ArgNo, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty, + int AlwaysPreserve, unsigned Flags) { DIBuilder *D = unwrap(Dref); - return wrap(D->createLocalVariable( - Tag, unwrap(Scope), Name, unwrap(File), Line, - unwrap(Ty), AlwaysPreserve, Flags, ArgNo)); + return wrap(D->createParameterVariable( + unwrap(Scope), Name, ArgNo, unwrap(File), Line, + unwrap(Ty), AlwaysPreserve, Flags)); } LLVMMetadataRef LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef Dref, @@ -117,8 +128,7 @@ LLVMDIBuilderCreateSubroutineType(LLVMDI LLVMMetadataRef ParameterTypes) { DIBuilder *D = unwrap(Dref); return wrap( - D->createSubroutineType(File ? unwrap(File) : nullptr, - DITypeRefArray(unwrap(ParameterTypes)))); + D->createSubroutineType(DITypeRefArray(unwrap(ParameterTypes)))); } LLVMMetadataRef LLVMDIBuilderCreateStructType( Modified: vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.h ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.h Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.h Wed Dec 30 11:46:15 2015 (r292915) @@ -55,12 +55,18 @@ LLVMMetadataRef LLVMDIBuilderCreateFunct LLVMDIBuilderRef D, LLVMMetadataRef Scope, const char *Name, const char *LinkageName, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef CompositeType, int IsLocalToUnit, int IsDefinition, - unsigned ScopeLine, unsigned Flags, int IsOptimized, LLVMValueRef Function); + unsigned ScopeLine, unsigned Flags, int IsOptimized); -LLVMMetadataRef LLVMDIBuilderCreateLocalVariable( - LLVMDIBuilderRef D, unsigned Tag, LLVMMetadataRef Scope, const char *Name, +LLVMMetadataRef +LLVMDIBuilderCreateAutoVariable(LLVMDIBuilderRef D, LLVMMetadataRef Scope, + const char *Name, LLVMMetadataRef File, + unsigned Line, LLVMMetadataRef Ty, + int AlwaysPreserve, unsigned Flags); + +LLVMMetadataRef LLVMDIBuilderCreateParameterVariable( + LLVMDIBuilderRef D, LLVMMetadataRef Scope, const char *Name, unsigned ArgNo, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty, int AlwaysPreserve, - unsigned Flags, unsigned ArgNo); + unsigned Flags); LLVMMetadataRef LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef D, const char *Name, Modified: vendor/llvm/dist/bindings/go/llvm/IRBindings.cpp ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/IRBindings.cpp Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/go/llvm/IRBindings.cpp Wed Dec 30 11:46:15 2015 (r292915) @@ -98,3 +98,7 @@ void LLVMSetCurrentDebugLocation2(LLVMBu DebugLoc::get(Line, Col, Scope ? unwrap(Scope) : nullptr, InlinedAt ? unwrap(InlinedAt) : nullptr)); } + +void LLVMSetSubprogram(LLVMValueRef Func, LLVMMetadataRef SP) { + unwrap(Func)->setSubprogram(unwrap(SP)); +} Modified: vendor/llvm/dist/bindings/go/llvm/IRBindings.h ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/IRBindings.h Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/go/llvm/IRBindings.h Wed Dec 30 11:46:15 2015 (r292915) @@ -55,6 +55,8 @@ void LLVMSetCurrentDebugLocation2(LLVMBu unsigned Col, LLVMMetadataRef Scope, LLVMMetadataRef InlinedAt); +void LLVMSetSubprogram(LLVMValueRef Fn, LLVMMetadataRef SP); + #ifdef __cplusplus } Modified: vendor/llvm/dist/bindings/go/llvm/analysis.go ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/analysis.go Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/go/llvm/analysis.go Wed Dec 30 11:46:15 2015 (r292915) @@ -15,6 +15,7 @@ package llvm /* #include "llvm-c/Analysis.h" // If you are getting an error here read bindings/go/README.txt +#include "llvm-c/Core.h" #include */ import "C" Modified: vendor/llvm/dist/bindings/go/llvm/bitreader.go ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/bitreader.go Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/go/llvm/bitreader.go Wed Dec 30 11:46:15 2015 (r292915) @@ -15,6 +15,7 @@ package llvm /* #include "llvm-c/BitReader.h" +#include "llvm-c/Core.h" #include */ import "C" @@ -40,7 +41,7 @@ func ParseBitcodeFile(name string) (Modu defer C.LLVMDisposeMemoryBuffer(buf) var m Module - if C.LLVMParseBitcode(buf, &m.C, &errmsg) == 0 { + if C.LLVMParseBitcode2(buf, &m.C) == 0 { return m, nil } Modified: vendor/llvm/dist/bindings/go/llvm/dibuilder.go ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/dibuilder.go Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/go/llvm/dibuilder.go Wed Dec 30 11:46:15 2015 (r292915) @@ -189,7 +189,6 @@ type DIFunction struct { ScopeLine int Flags int Optimized bool - Function Value } // CreateCompileUnit creates function debug metadata. @@ -211,14 +210,39 @@ func (d *DIBuilder) CreateFunction(diSco C.unsigned(f.ScopeLine), C.unsigned(f.Flags), boolToCInt(f.Optimized), - f.Function.C, ) return Metadata{C: result} } -// DILocalVariable holds the values for creating local variable debug metadata. -type DILocalVariable struct { - Tag dwarf.Tag +// DIAutoVariable holds the values for creating auto variable debug metadata. +type DIAutoVariable struct { + Name string + File Metadata + Line int + Type Metadata + AlwaysPreserve bool + Flags int +} + +// CreateAutoVariable creates local variable debug metadata. +func (d *DIBuilder) CreateAutoVariable(scope Metadata, v DIAutoVariable) Metadata { + name := C.CString(v.Name) + defer C.free(unsafe.Pointer(name)) + result := C.LLVMDIBuilderCreateAutoVariable( + d.ref, + scope.C, + name, + v.File.C, + C.unsigned(v.Line), + v.Type.C, + boolToCInt(v.AlwaysPreserve), + C.unsigned(v.Flags), + ) + return Metadata{C: result} +} + +// DIParameterVariable holds the values for creating parameter variable debug metadata. +type DIParameterVariable struct { Name string File Metadata Line int @@ -227,25 +251,24 @@ type DILocalVariable struct { Flags int // ArgNo is the 1-based index of the argument in the function's - // parameter list if it is an argument, or 0 otherwise. + // parameter list. ArgNo int } -// CreateLocalVariable creates local variable debug metadata. -func (d *DIBuilder) CreateLocalVariable(scope Metadata, v DILocalVariable) Metadata { +// CreateParameterVariable creates parameter variable debug metadata. +func (d *DIBuilder) CreateParameterVariable(scope Metadata, v DIParameterVariable) Metadata { name := C.CString(v.Name) defer C.free(unsafe.Pointer(name)) - result := C.LLVMDIBuilderCreateLocalVariable( + result := C.LLVMDIBuilderCreateParameterVariable( d.ref, - C.unsigned(v.Tag), scope.C, name, + C.unsigned(v.ArgNo), v.File.C, C.unsigned(v.Line), v.Type.C, boolToCInt(v.AlwaysPreserve), C.unsigned(v.Flags), - C.unsigned(v.ArgNo), ) return Metadata{C: result} } Modified: vendor/llvm/dist/bindings/go/llvm/executionengine.go ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/executionengine.go Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/go/llvm/executionengine.go Wed Dec 30 11:46:15 2015 (r292915) @@ -14,6 +14,7 @@ package llvm /* +#include "llvm-c/Core.h" #include "llvm-c/ExecutionEngine.h" #include */ Modified: vendor/llvm/dist/bindings/go/llvm/ir.go ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/ir.go Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/go/llvm/ir.go Wed Dec 30 11:46:15 2015 (r292915) @@ -1054,6 +1054,12 @@ func (v Value) AddTargetDependentFunctio defer C.free(unsafe.Pointer(cvalue)) C.LLVMAddTargetDependentFunctionAttr(v.C, cattr, cvalue) } +func (v Value) SetPersonality(p Value) { + C.LLVMSetPersonalityFn(v.C, p.C) +} +func (v Value) SetSubprogram(sp Metadata) { + C.LLVMSetSubprogram(v.C, sp.C) +} // Operations on parameters func (v Value) ParamsCount() int { return int(C.LLVMCountParams(v.C)) } @@ -1206,7 +1212,7 @@ func (b Builder) Dispose() { C.LLVMDispo func (b Builder) SetCurrentDebugLocation(line, col uint, scope, inlinedAt Metadata) { C.LLVMSetCurrentDebugLocation2(b.C, C.unsigned(line), C.unsigned(col), scope.C, inlinedAt.C) } -func (b Builder) SetInstDebugLocation(v Value) { C.LLVMSetInstDebugLocation(b.C, v.C) } +func (b Builder) SetInstDebugLocation(v Value) { C.LLVMSetInstDebugLocation(b.C, v.C) } func (b Builder) InsertDeclare(module Module, storage Value, md Value) Value { f := module.NamedFunction("llvm.dbg.declare") if f.IsNil() { @@ -1725,7 +1731,7 @@ func (b Builder) CreatePtrDiff(lhs, rhs return } -func (b Builder) CreateLandingPad(t Type, personality Value, nclauses int, name string) (l Value) { +func (b Builder) CreateLandingPad(t Type, nclauses int, name string) (l Value) { cname := C.CString(name) defer C.free(unsafe.Pointer(cname)) l.C = C.LLVMBuildLandingPad(b.C, t.C, nil, C.unsigned(nclauses), cname) Modified: vendor/llvm/dist/bindings/go/llvm/linker.go ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/linker.go Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/go/llvm/linker.go Wed Dec 30 11:46:15 2015 (r292915) @@ -14,6 +14,7 @@ package llvm /* +#include "llvm-c/Core.h" #include "llvm-c/Linker.h" #include */ @@ -21,11 +22,9 @@ import "C" import "errors" func LinkModules(Dest, Src Module) error { - var cmsg *C.char - failed := C.LLVMLinkModules(Dest.C, Src.C, C.LLVMLinkerDestroySource, &cmsg) + failed := C.LLVMLinkModules2(Dest.C, Src.C) if failed != 0 { - err := errors.New(C.GoString(cmsg)) - C.LLVMDisposeMessage(cmsg) + err := errors.New("Linking failed") return err } return nil Modified: vendor/llvm/dist/bindings/go/llvm/target.go ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/target.go Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/go/llvm/target.go Wed Dec 30 11:46:15 2015 (r292915) @@ -14,6 +14,7 @@ package llvm /* +#include "llvm-c/Core.h" #include "llvm-c/Target.h" #include "llvm-c/TargetMachine.h" #include Modified: vendor/llvm/dist/bindings/ocaml/Makefile.ocaml ============================================================================== --- vendor/llvm/dist/bindings/ocaml/Makefile.ocaml Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/ocaml/Makefile.ocaml Wed Dec 30 11:46:15 2015 (r292915) @@ -277,6 +277,8 @@ uninstall-local:: uninstall-deplibs build-deplibs: $(OutputLibs) +$(OcamlDir)/%.so: $(LibDir)/%.so + $(Verb) ln -sf $< $@ $(OcamlDir)/%.a: $(LibDir)/%.a $(Verb) ln -sf $< $@ Modified: vendor/llvm/dist/bindings/ocaml/bitreader/bitreader_ocaml.c ============================================================================== --- vendor/llvm/dist/bindings/ocaml/bitreader/bitreader_ocaml.c Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/ocaml/bitreader/bitreader_ocaml.c Wed Dec 30 11:46:15 2015 (r292915) @@ -23,10 +23,9 @@ void llvm_raise(value Prototype, char *M /* Llvm.llcontext -> Llvm.llmemorybuffer -> Llvm.llmodule */ CAMLprim LLVMModuleRef llvm_get_module(LLVMContextRef C, LLVMMemoryBufferRef MemBuf) { LLVMModuleRef M; - char *Message; - if (LLVMGetBitcodeModuleInContext(C, MemBuf, &M, &Message)) - llvm_raise(*caml_named_value("Llvm_bitreader.Error"), Message); + if (LLVMGetBitcodeModuleInContext2(C, MemBuf, &M)) + llvm_raise(*caml_named_value("Llvm_bitreader.Error"), ""); return M; } @@ -34,10 +33,9 @@ CAMLprim LLVMModuleRef llvm_get_module(L /* Llvm.llcontext -> Llvm.llmemorybuffer -> Llvm.llmodule */ CAMLprim LLVMModuleRef llvm_parse_bitcode(LLVMContextRef C, LLVMMemoryBufferRef MemBuf) { LLVMModuleRef M; - char *Message; - if (LLVMParseBitcodeInContext(C, MemBuf, &M, &Message)) - llvm_raise(*caml_named_value("Llvm_bitreader.Error"), Message); + if (LLVMParseBitcodeInContext2(C, MemBuf, &M)) + llvm_raise(*caml_named_value("Llvm_bitreader.Error"), ""); return M; } Modified: vendor/llvm/dist/bindings/ocaml/linker/linker_ocaml.c ============================================================================== --- vendor/llvm/dist/bindings/ocaml/linker/linker_ocaml.c Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/ocaml/linker/linker_ocaml.c Wed Dec 30 11:46:15 2015 (r292915) @@ -25,10 +25,8 @@ void llvm_raise(value Prototype, char *M /* llmodule -> llmodule -> unit */ CAMLprim value llvm_link_modules(LLVMModuleRef Dst, LLVMModuleRef Src) { - char* Message; - - if (LLVMLinkModules(Dst, Src, 0, &Message)) - llvm_raise(*caml_named_value("Llvm_linker.Error"), Message); + if (LLVMLinkModules2(Dst, Src)) + llvm_raise(*caml_named_value("Llvm_linker.Error"), "Linking failed"); return Val_unit; } Modified: vendor/llvm/dist/bindings/ocaml/linker/llvm_linker.ml ============================================================================== --- vendor/llvm/dist/bindings/ocaml/linker/llvm_linker.ml Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/ocaml/linker/llvm_linker.ml Wed Dec 30 11:46:15 2015 (r292915) @@ -11,5 +11,5 @@ exception Error of string let () = Callback.register_exception "Llvm_linker.Error" (Error "") -external link_modules : Llvm.llmodule -> Llvm.llmodule -> unit - = "llvm_link_modules" +external link_modules' : Llvm.llmodule -> Llvm.llmodule -> unit + = "llvm_link_modules" Modified: vendor/llvm/dist/bindings/ocaml/linker/llvm_linker.mli ============================================================================== --- vendor/llvm/dist/bindings/ocaml/linker/llvm_linker.mli Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/ocaml/linker/llvm_linker.mli Wed Dec 30 11:46:15 2015 (r292915) @@ -14,6 +14,6 @@ exception Error of string -(** [link_modules dst src mode] links [src] into [dst], raising [Error] - if the linking fails. *) -val link_modules : Llvm.llmodule -> Llvm.llmodule -> unit \ No newline at end of file +(** [link_modules' dst src] links [src] into [dst], raising [Error] + if the linking fails. The src module is destroyed. *) +val link_modules' : Llvm.llmodule -> Llvm.llmodule -> unit \ No newline at end of file Modified: vendor/llvm/dist/bindings/ocaml/llvm/llvm.ml ============================================================================== --- vendor/llvm/dist/bindings/ocaml/llvm/llvm.ml Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/ocaml/llvm/llvm.ml Wed Dec 30 11:46:15 2015 (r292915) @@ -579,6 +579,8 @@ external global_parent : llvalue -> llmo external is_declaration : llvalue -> bool = "llvm_is_declaration" external linkage : llvalue -> Linkage.t = "llvm_linkage" external set_linkage : Linkage.t -> llvalue -> unit = "llvm_set_linkage" +external unnamed_addr : llvalue -> bool = "llvm_unnamed_addr" +external set_unnamed_addr : bool -> llvalue -> unit = "llvm_set_unnamed_addr" external section : llvalue -> string = "llvm_section" external set_section : string -> llvalue -> unit = "llvm_set_section" external visibility : llvalue -> Visibility.t = "llvm_visibility" Modified: vendor/llvm/dist/bindings/ocaml/llvm/llvm.mli ============================================================================== --- vendor/llvm/dist/bindings/ocaml/llvm/llvm.mli Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/ocaml/llvm/llvm.mli Wed Dec 30 11:46:15 2015 (r292915) @@ -1255,6 +1255,16 @@ val linkage : llvalue -> Linkage.t See the method [llvm::GlobalValue::setLinkage]. *) val set_linkage : Linkage.t -> llvalue -> unit +(** [unnamed_addr g] returns [true] if the global value [g] has the unnamed_addr + attribute. Returns [false] otherwise. + See the method [llvm::GlobalValue::getUnnamedAddr]. *) +val unnamed_addr : llvalue -> bool + +(** [set_unnamed_addr b g] if [b] is [true], sets the unnamed_addr attribute of + the global value [g]. Unset it otherwise. + See the method [llvm::GlobalValue::setUnnamedAddr]. *) +val set_unnamed_addr : bool -> llvalue -> unit + (** [section g] returns the linker section of the global value [g]. See the method [llvm::GlobalValue::getSection]. *) val section : llvalue -> string Modified: vendor/llvm/dist/bindings/ocaml/llvm/llvm_ocaml.c ============================================================================== --- vendor/llvm/dist/bindings/ocaml/llvm/llvm_ocaml.c Wed Dec 30 11:15:07 2015 (r292914) +++ vendor/llvm/dist/bindings/ocaml/llvm/llvm_ocaml.c Wed Dec 30 11:46:15 2015 (r292915) @@ -940,6 +940,17 @@ CAMLprim value llvm_set_linkage(value Li return Val_unit; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Dec 30 11:47:35 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5ACC3A5527F; Wed, 30 Dec 2015 11:47:35 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 10BF91A01; Wed, 30 Dec 2015 11:47:34 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBlYbx047981; Wed, 30 Dec 2015 11:47:34 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBlYR4047980; Wed, 30 Dec 2015 11:47:34 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201512301147.tBUBlYR4047980@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 30 Dec 2015 11:47:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292916 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:47:35 -0000 Author: mav Date: Wed Dec 30 11:47:33 2015 New Revision: 292916 URL: https://svnweb.freebsd.org/changeset/base/292916 Log: MFC r292610: Fix speed setting by NVRAM for 24xx and above chips. Modified: stable/10/sys/dev/isp/isp.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp.c ============================================================================== --- stable/10/sys/dev/isp/isp.c Wed Dec 30 11:46:15 2015 (r292915) +++ stable/10/sys/dev/isp/isp.c Wed Dec 30 11:47:33 2015 (r292916) @@ -2142,19 +2142,41 @@ isp_fibre_init_2400(ispsoftc_t *isp) if ((icbp->icb_fwoptions3 & ICB2400_OPT3_RSPSZ_MASK) == 0) { icbp->icb_fwoptions3 |= ICB2400_OPT3_RSPSZ_24; } - icbp->icb_fwoptions3 &= ~ICB2400_OPT3_RATE_AUTO; if (isp->isp_confopts & ISP_CFG_1GB) { + icbp->icb_fwoptions3 &= ~ICB2400_OPT3_RATE_MASK; icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_1GB; } else if (isp->isp_confopts & ISP_CFG_2GB) { + icbp->icb_fwoptions3 &= ~ICB2400_OPT3_RATE_MASK; icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_2GB; } else if (isp->isp_confopts & ISP_CFG_4GB) { + icbp->icb_fwoptions3 &= ~ICB2400_OPT3_RATE_MASK; icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_4GB; } else if (isp->isp_confopts & ISP_CFG_8GB) { + icbp->icb_fwoptions3 &= ~ICB2400_OPT3_RATE_MASK; icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_8GB; } else if (isp->isp_confopts & ISP_CFG_16GB) { + icbp->icb_fwoptions3 &= ~ICB2400_OPT3_RATE_MASK; icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_16GB; } else { - icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_AUTO; + switch (icbp->icb_fwoptions3 & ICB2400_OPT3_RATE_MASK) { + case ICB2400_OPT3_RATE_4GB: + case ICB2400_OPT3_RATE_8GB: + case ICB2400_OPT3_RATE_16GB: + case ICB2400_OPT3_RATE_AUTO: + break; + case ICB2400_OPT3_RATE_2GB: + if (isp->isp_type <= ISP_HA_FC_2500) + break; + /*FALLTHROUGH*/ + case ICB2400_OPT3_RATE_1GB: + if (isp->isp_type <= ISP_HA_FC_2400) + break; + /*FALLTHROUGH*/ + default: + icbp->icb_fwoptions3 &= ~ICB2400_OPT3_RATE_MASK; + icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_AUTO; + break; + } } icbp->icb_logintime = ICB_LOGIN_TOV; @@ -7632,6 +7654,7 @@ isp_setdfltfcparm(ispsoftc_t *isp, int c fcp->isp_fwoptions |= ICB2400_OPT1_FULL_DUPLEX; } fcp->isp_fwoptions |= ICB2400_OPT1_BOTH_WWNS; + fcp->isp_zfwoptions |= ICB2400_OPT3_RATE_AUTO; } else { fcp->isp_fwoptions |= ICBOPT_FAIRNESS; fcp->isp_fwoptions |= ICBOPT_PDBCHANGE_AE; @@ -7644,6 +7667,7 @@ isp_setdfltfcparm(ispsoftc_t *isp, int c * extended options from NVRAM */ fcp->isp_fwoptions &= ~ICBOPT_EXTENDED; + fcp->isp_zfwoptions |= ICBZOPT_RATE_AUTO; } From owner-svn-src-all@freebsd.org Wed Dec 30 11:48:08 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2FA6CA55305; Wed, 30 Dec 2015 11:48:08 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D974C1B8D; Wed, 30 Dec 2015 11:48:07 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBm6MM048059; Wed, 30 Dec 2015 11:48:06 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBm6in048058; Wed, 30 Dec 2015 11:48:06 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301148.tBUBm6in048058@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:48:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292917 - vendor/llvm/llvm-trunk-r256633 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:48:08 -0000 Author: dim Date: Wed Dec 30 11:48:06 2015 New Revision: 292917 URL: https://svnweb.freebsd.org/changeset/base/292917 Log: Tag llvm trunk r256633. Added: vendor/llvm/llvm-trunk-r256633/ - copied from r292916, vendor/llvm/dist/ From owner-svn-src-all@freebsd.org Wed Dec 30 11:48:19 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 35A1EA55351; Wed, 30 Dec 2015 11:48:19 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 085811C06; Wed, 30 Dec 2015 11:48:18 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBmI5u048118; Wed, 30 Dec 2015 11:48:18 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBmHIp048114; Wed, 30 Dec 2015 11:48:17 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201512301148.tBUBmHIp048114@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 30 Dec 2015 11:48:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292918 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:48:19 -0000 Author: mav Date: Wed Dec 30 11:48:17 2015 New Revision: 292918 URL: https://svnweb.freebsd.org/changeset/base/292918 Log: MFC r292690: Some polishing for command timeouts handling. Modified: stable/10/sys/dev/isp/isp.c stable/10/sys/dev/isp/isp_freebsd.c stable/10/sys/dev/isp/ispmbox.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp.c ============================================================================== --- stable/10/sys/dev/isp/isp.c Wed Dec 30 11:48:06 2015 (r292917) +++ stable/10/sys/dev/isp/isp.c Wed Dec 30 11:48:17 2015 (r292918) @@ -2446,7 +2446,8 @@ isp_plogx(ispsoftc_t *isp, int chan, uin scp = fcp->isp_scratch; isp_put_plogx(isp, plp, (isp_plogx_t *) scp); - MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 500000); + MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, + MBCMD_DEFAULT_TIMEOUT + ICB_LOGIN_TOV * 1000000); mbs.param[1] = QENTRY_LEN; mbs.param[2] = DMA_WD1(fcp->isp_scdma); mbs.param[3] = DMA_WD0(fcp->isp_scdma); @@ -3390,7 +3391,7 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, pt->ctp_nphdl = fcp->isp_sns_hdl; pt->ctp_cmd_cnt = 1; pt->ctp_vpidx = ISP_GET_VPIDX(isp, chan); - pt->ctp_time = 30; + pt->ctp_time = 10; pt->ctp_rsp_cnt = 1; pt->ctp_rsp_bcnt = GIDLEN; pt->ctp_cmd_bcnt = sizeof (*ct) + sizeof (uint32_t); @@ -3426,7 +3427,8 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, sizeof (*ct) + sizeof (uint32_t), &scp[XTXOFF]); } ISP_MEMZERO(&scp[ZTXOFF], QENTRY_LEN); - MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 500000); + MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, + MBCMD_DEFAULT_TIMEOUT + pt->ctp_time * 1000000); mbs.param[1] = QENTRY_LEN; mbs.param[2] = DMA_WD1(fcp->isp_scdma + CTXOFF); mbs.param[3] = DMA_WD0(fcp->isp_scdma + CTXOFF); @@ -3861,7 +3863,7 @@ isp_register_fc4_type_24xx(ispsoftc_t *i pt->ctp_nphdl = fcp->isp_sns_hdl; pt->ctp_cmd_cnt = 1; pt->ctp_vpidx = ISP_GET_VPIDX(isp, chan); - pt->ctp_time = 1; + pt->ctp_time = 4; pt->ctp_rsp_cnt = 1; pt->ctp_rsp_bcnt = sizeof (ct_hdr_t); pt->ctp_cmd_bcnt = sizeof (rft_id_t); @@ -3900,7 +3902,8 @@ isp_register_fc4_type_24xx(ispsoftc_t *i ISP_MEMZERO(&scp[ZTXOFF], sizeof (ct_hdr_t)); - MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 1000000); + MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, + MBCMD_DEFAULT_TIMEOUT + pt->ctp_time * 1000000); mbs.param[1] = QENTRY_LEN; mbs.param[2] = DMA_WD1(fcp->isp_scdma + CTXOFF); mbs.param[3] = DMA_WD0(fcp->isp_scdma + CTXOFF); @@ -3972,7 +3975,7 @@ isp_register_fc4_features_24xx(ispsoftc_ pt->ctp_nphdl = fcp->isp_sns_hdl; pt->ctp_cmd_cnt = 1; pt->ctp_vpidx = ISP_GET_VPIDX(isp, chan); - pt->ctp_time = 1; + pt->ctp_time = 4; pt->ctp_rsp_cnt = 1; pt->ctp_rsp_bcnt = sizeof (ct_hdr_t); pt->ctp_cmd_bcnt = sizeof (rff_id_t); @@ -4016,7 +4019,8 @@ isp_register_fc4_features_24xx(ispsoftc_ ISP_MEMZERO(&scp[ZTXOFF], sizeof (ct_hdr_t)); - MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 1000000); + MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, + MBCMD_DEFAULT_TIMEOUT + pt->ctp_time * 1000000); mbs.param[1] = QENTRY_LEN; mbs.param[2] = DMA_WD1(fcp->isp_scdma + CTXOFF); mbs.param[3] = DMA_WD0(fcp->isp_scdma + CTXOFF); @@ -4403,10 +4407,7 @@ isp_start(XS_T *xs) } ISP_MEMCPY(cdbp, XS_CDBP(xs), cdblen); - *tptr = XS_TIME(xs) / 1000; - if (*tptr == 0 && XS_TIME(xs)) { - *tptr = 1; - } + *tptr = (XS_TIME(xs) + 999) / 1000; if (IS_24XX(isp) && *tptr > 0x1999) { *tptr = 0x1999; } @@ -4512,13 +4513,14 @@ isp_control(ispsoftc_t *isp, ispctl_t ct tmf->tmf_header.rqs_entry_count = 1; tmf->tmf_nphdl = lp->handle; tmf->tmf_delay = 2; - tmf->tmf_timeout = 2; + tmf->tmf_timeout = 4; tmf->tmf_flags = ISP24XX_TMF_TARGET_RESET; tmf->tmf_tidlo = lp->portid; tmf->tmf_tidhi = lp->portid >> 16; tmf->tmf_vpidx = ISP_GET_VPIDX(isp, chan); isp_prt(isp, ISP_LOGALL, "Chan %d Reset N-Port Handle 0x%04x @ Port 0x%06x", chan, lp->handle, lp->portid); - MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 5000000); + MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, + MBCMD_DEFAULT_TIMEOUT + tmf->tmf_timeout * 1000000); mbs.param[1] = QENTRY_LEN; mbs.param[2] = DMA_WD1(fcp->isp_scdma); mbs.param[3] = DMA_WD0(fcp->isp_scdma); @@ -6901,7 +6903,7 @@ static const uint32_t mbpfc[] = { ISP_FC_OPMAP(0x01, 0x07), /* 0x1f: MBOX_GET_FIRMWARE_STATUS */ ISP_FC_OPMAP_HALF(0x2, 0x01, 0x7e, 0xcf), /* 0x20: MBOX_GET_LOOP_ID */ ISP_FC_OPMAP(0x00, 0x00), /* 0x21: */ - ISP_FC_OPMAP(0x01, 0x07), /* 0x22: MBOX_GET_RETRY_COUNT */ + ISP_FC_OPMAP(0x03, 0x4b), /* 0x22: MBOX_GET_TIMEOUT_PARAMS */ ISP_FC_OPMAP(0x00, 0x00), /* 0x23: */ ISP_FC_OPMAP(0x00, 0x00), /* 0x24: */ ISP_FC_OPMAP(0x00, 0x00), /* 0x25: */ @@ -6917,7 +6919,7 @@ static const uint32_t mbpfc[] = { ISP_FC_OPMAP(0x00, 0x00), /* 0x2f: */ ISP_FC_OPMAP(0x00, 0x00), /* 0x30: */ ISP_FC_OPMAP(0x00, 0x00), /* 0x31: */ - ISP_FC_OPMAP(0x07, 0x07), /* 0x32: MBOX_SET_RETRY_COUNT */ + ISP_FC_OPMAP(0x4b, 0x4b), /* 0x32: MBOX_SET_TIMEOUT_PARAMS */ ISP_FC_OPMAP(0x00, 0x00), /* 0x33: */ ISP_FC_OPMAP(0x00, 0x00), /* 0x34: */ ISP_FC_OPMAP(0x00, 0x00), /* 0x35: */ Modified: stable/10/sys/dev/isp/isp_freebsd.c ============================================================================== --- stable/10/sys/dev/isp/isp_freebsd.c Wed Dec 30 11:48:06 2015 (r292917) +++ stable/10/sys/dev/isp/isp_freebsd.c Wed Dec 30 11:48:17 2015 (r292918) @@ -632,7 +632,7 @@ ispioctl(struct cdev *dev, u_long c, cad tmf->tmf_header.rqs_entry_count = 1; tmf->tmf_nphdl = lp->handle; tmf->tmf_delay = 2; - tmf->tmf_timeout = 2; + tmf->tmf_timeout = 4; tmf->tmf_tidlo = lp->portid; tmf->tmf_tidhi = lp->portid >> 16; tmf->tmf_vpidx = ISP_GET_VPIDX(isp, chan); @@ -668,7 +668,8 @@ ispioctl(struct cdev *dev, u_long c, cad ISP_UNLOCK(isp); break; } - MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 5000000); + MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, + MBCMD_DEFAULT_TIMEOUT + tmf->tmf_timeout * 1000000); mbs.param[1] = QENTRY_LEN; mbs.param[2] = DMA_WD1(fcp->isp_scdma); mbs.param[3] = DMA_WD0(fcp->isp_scdma); @@ -1403,7 +1404,7 @@ isp_target_start_ctio(ispsoftc_t *isp, u cto->ct_iid_hi = atp->portid >> 16; cto->ct_oxid = atp->oxid; cto->ct_vpidx = ISP_GET_VPIDX(isp, XS_CHANNEL(ccb)); - cto->ct_timeout = 120; + cto->ct_timeout = (XS_TIME(ccb) + 999) / 1000; cto->ct_flags = atp->tattr << CT7_TASK_ATTR_SHIFT; /* @@ -1555,7 +1556,7 @@ isp_target_start_ctio(ispsoftc_t *isp, u cto->ct_lun = ccb->ccb_h.target_lun; } } - cto->ct_timeout = 10; + cto->ct_timeout = (XS_TIME(ccb) + 999) / 1000; cto->ct_rxid = cso->tag_id; /* Modified: stable/10/sys/dev/isp/ispmbox.h ============================================================================== --- stable/10/sys/dev/isp/ispmbox.h Wed Dec 30 11:48:06 2015 (r292917) +++ stable/10/sys/dev/isp/ispmbox.h Wed Dec 30 11:48:17 2015 (r292918) @@ -1086,7 +1086,7 @@ typedef struct { #define ICB_DFLT_RDELAY 5 #define ICB_DFLT_RCOUNT 3 -#define ICB_LOGIN_TOV 30 +#define ICB_LOGIN_TOV 10 #define ICB_LUN_ENABLE_TOV 15 From owner-svn-src-all@freebsd.org Wed Dec 30 11:49:06 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EFC51A553E5; Wed, 30 Dec 2015 11:49:05 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AE48D1E8F; Wed, 30 Dec 2015 11:49:05 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBn405048201; Wed, 30 Dec 2015 11:49:04 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBn4I7048198; Wed, 30 Dec 2015 11:49:04 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201512301149.tBUBn4I7048198@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 30 Dec 2015 11:49:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292919 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:49:06 -0000 Author: mav Date: Wed Dec 30 11:49:04 2015 New Revision: 292919 URL: https://svnweb.freebsd.org/changeset/base/292919 Log: MFC r292715: Clear virtual port's port database when disabling it. Previously it was done only on full chip reinit, that caused old ports resurrect in case of virtual port reenabling. Modified: stable/10/sys/dev/isp/isp.c stable/10/sys/dev/isp/isp_library.c stable/10/sys/dev/isp/isp_library.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp.c ============================================================================== --- stable/10/sys/dev/isp/isp.c Wed Dec 30 11:48:17 2015 (r292918) +++ stable/10/sys/dev/isp/isp.c Wed Dec 30 11:49:04 2015 (r292919) @@ -2344,6 +2344,159 @@ isp_fibre_init_2400(ispsoftc_t *isp) isp->isp_state = ISP_RUNSTATE; } +static int +isp_fc_enable_vp(ispsoftc_t *isp, int chan) +{ + fcparam *fcp = FCPARAM(isp, chan); + mbreg_t mbs; + vp_modify_t *vp; + uint8_t qe[QENTRY_LEN], *scp; + + ISP_MEMZERO(qe, QENTRY_LEN); + if (FC_SCRATCH_ACQUIRE(isp, chan)) { + return (EBUSY); + } + scp = fcp->isp_scratch; + + /* Build a VP MODIFY command in memory */ + vp = (vp_modify_t *) qe; + vp->vp_mod_hdr.rqs_entry_type = RQSTYPE_VP_MODIFY; + vp->vp_mod_hdr.rqs_entry_count = 1; + vp->vp_mod_cnt = 1; + vp->vp_mod_idx0 = chan; + vp->vp_mod_cmd = VP_MODIFY_ENA; + vp->vp_mod_ports[0].options = ICB2400_VPOPT_ENABLED | + ICB2400_VPOPT_ENA_SNSLOGIN; + if (fcp->role & ISP_ROLE_INITIATOR) { + vp->vp_mod_ports[0].options |= ICB2400_VPOPT_INI_ENABLE; + } + if ((fcp->role & ISP_ROLE_TARGET) == 0) { + vp->vp_mod_ports[0].options |= ICB2400_VPOPT_TGT_DISABLE; + } + if (fcp->isp_loopid < LOCAL_LOOP_LIM) { + vp->vp_mod_ports[0].loopid = fcp->isp_loopid; + if (isp->isp_confopts & ISP_CFG_OWNLOOPID) + vp->vp_mod_ports[0].options |= + ICB2400_VPOPT_HARD_ADDRESS; + else + vp->vp_mod_ports[0].options |= + ICB2400_VPOPT_PREV_ADDRESS; + } + MAKE_NODE_NAME_FROM_WWN(vp->vp_mod_ports[0].wwpn, fcp->isp_wwpn); + MAKE_NODE_NAME_FROM_WWN(vp->vp_mod_ports[0].wwnn, fcp->isp_wwnn); + isp_put_vp_modify(isp, vp, (vp_modify_t *) scp); + + /* Build a EXEC IOCB A64 command that points to the VP MODIFY command */ + MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 0); + mbs.param[1] = QENTRY_LEN; + mbs.param[2] = DMA_WD1(fcp->isp_scdma); + mbs.param[3] = DMA_WD0(fcp->isp_scdma); + mbs.param[6] = DMA_WD3(fcp->isp_scdma); + mbs.param[7] = DMA_WD2(fcp->isp_scdma); + MEMORYBARRIER(isp, SYNC_SFORDEV, 0, 2 * QENTRY_LEN, chan); + isp_control(isp, ISPCTL_RUN_MBOXCMD, &mbs); + if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { + FC_SCRATCH_RELEASE(isp, chan); + return (EIO); + } + MEMORYBARRIER(isp, SYNC_SFORCPU, QENTRY_LEN, QENTRY_LEN, chan); + isp_get_vp_modify(isp, (vp_modify_t *)&scp[QENTRY_LEN], vp); + + FC_SCRATCH_RELEASE(isp, chan); + + if (vp->vp_mod_status != VP_STS_OK) { + isp_prt(isp, ISP_LOGERR, "%s: VP_MODIFY of Chan %d failed with status %d", __func__, chan, vp->vp_mod_status); + return (EIO); + } + return (0); +} + +static int +isp_fc_disable_vp(ispsoftc_t *isp, int chan) +{ + fcparam *fcp = FCPARAM(isp, chan); + mbreg_t mbs; + vp_ctrl_info_t *vp; + uint8_t qe[QENTRY_LEN], *scp; + + ISP_MEMZERO(qe, QENTRY_LEN); + if (FC_SCRATCH_ACQUIRE(isp, chan)) { + return (EBUSY); + } + scp = fcp->isp_scratch; + + /* Build a VP CTRL command in memory */ + vp = (vp_ctrl_info_t *) qe; + vp->vp_ctrl_hdr.rqs_entry_type = RQSTYPE_VP_CTRL; + vp->vp_ctrl_hdr.rqs_entry_count = 1; + if (ISP_CAP_VP0(isp)) { + vp->vp_ctrl_status = 1; + } else { + vp->vp_ctrl_status = 0; + chan--; /* VP0 can not be controlled in this case. */ + } + vp->vp_ctrl_command = VP_CTRL_CMD_DISABLE_VP_LOGO_ALL; + vp->vp_ctrl_vp_count = 1; + vp->vp_ctrl_idmap[chan / 16] |= (1 << chan % 16); + isp_put_vp_ctrl_info(isp, vp, (vp_ctrl_info_t *) scp); + + /* Build a EXEC IOCB A64 command that points to the VP CTRL command */ + MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 0); + mbs.param[1] = QENTRY_LEN; + mbs.param[2] = DMA_WD1(fcp->isp_scdma); + mbs.param[3] = DMA_WD0(fcp->isp_scdma); + mbs.param[6] = DMA_WD3(fcp->isp_scdma); + mbs.param[7] = DMA_WD2(fcp->isp_scdma); + MEMORYBARRIER(isp, SYNC_SFORDEV, 0, 2 * QENTRY_LEN, chan); + isp_control(isp, ISPCTL_RUN_MBOXCMD, &mbs); + if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { + FC_SCRATCH_RELEASE(isp, chan); + return (EIO); + } + MEMORYBARRIER(isp, SYNC_SFORCPU, QENTRY_LEN, QENTRY_LEN, chan); + isp_get_vp_ctrl_info(isp, (vp_ctrl_info_t *)&scp[QENTRY_LEN], vp); + + FC_SCRATCH_RELEASE(isp, chan); + + if (vp->vp_ctrl_status != 0) { + isp_prt(isp, ISP_LOGERR, + "%s: VP_CTRL of Chan %d failed with status %d %d", + __func__, chan, vp->vp_ctrl_status, vp->vp_ctrl_index_fail); + return (EIO); + } + return (0); +} + +static int +isp_fc_change_role(ispsoftc_t *isp, int chan, int new_role) +{ + fcparam *fcp = FCPARAM(isp, chan); + int i, was, res = 0; + + if (chan >= isp->isp_nchan) { + isp_prt(isp, ISP_LOGWARN, "%s: bad channel %d", __func__, chan); + return (ENXIO); + } + if (fcp->role == new_role) + return (0); + for (was = 0, i = 0; i < isp->isp_nchan; i++) { + if (FCPARAM(isp, i)->role != ISP_ROLE_NONE) + was++; + } + if (was == 0 || (was == 1 && fcp->role != ISP_ROLE_NONE)) { + fcp->role = new_role; + return (isp_reinit(isp, 0)); + } + if (fcp->role != ISP_ROLE_NONE) { + res = isp_fc_disable_vp(isp, chan); + isp_clear_portdb(isp, chan); + } + fcp->role = new_role; + if (fcp->role != ISP_ROLE_NONE) + res = isp_fc_enable_vp(isp, chan); + return (res); +} + static void isp_clear_portdb(ispsoftc_t *isp, int chan) { Modified: stable/10/sys/dev/isp/isp_library.c ============================================================================== --- stable/10/sys/dev/isp/isp_library.c Wed Dec 30 11:48:17 2015 (r292918) +++ stable/10/sys/dev/isp/isp_library.c Wed Dec 30 11:49:04 2015 (r292919) @@ -573,168 +573,6 @@ isp_fc_toponame(fcparam *fcp) } } -static int -isp_fc_enable_vp(ispsoftc_t *isp, int chan) -{ - fcparam *fcp = FCPARAM(isp, chan); - mbreg_t mbs; - vp_modify_t *vp; - uint8_t qe[QENTRY_LEN], *scp; - - ISP_MEMZERO(qe, QENTRY_LEN); - if (FC_SCRATCH_ACQUIRE(isp, chan)) { - return (EBUSY); - } - scp = fcp->isp_scratch; - - /* - * Build a VP MODIFY command in memory - */ - vp = (vp_modify_t *) qe; - vp->vp_mod_hdr.rqs_entry_type = RQSTYPE_VP_MODIFY; - vp->vp_mod_hdr.rqs_entry_count = 1; - vp->vp_mod_cnt = 1; - vp->vp_mod_idx0 = chan; - vp->vp_mod_cmd = VP_MODIFY_ENA; - vp->vp_mod_ports[0].options = ICB2400_VPOPT_ENABLED | - ICB2400_VPOPT_ENA_SNSLOGIN; - if (fcp->role & ISP_ROLE_INITIATOR) { - vp->vp_mod_ports[0].options |= ICB2400_VPOPT_INI_ENABLE; - } - if ((fcp->role & ISP_ROLE_TARGET) == 0) { - vp->vp_mod_ports[0].options |= ICB2400_VPOPT_TGT_DISABLE; - } - if (fcp->isp_loopid < LOCAL_LOOP_LIM) { - vp->vp_mod_ports[0].loopid = fcp->isp_loopid; - if (isp->isp_confopts & ISP_CFG_OWNLOOPID) - vp->vp_mod_ports[0].options |= - ICB2400_VPOPT_HARD_ADDRESS; - else - vp->vp_mod_ports[0].options |= - ICB2400_VPOPT_PREV_ADDRESS; - } - MAKE_NODE_NAME_FROM_WWN(vp->vp_mod_ports[0].wwpn, fcp->isp_wwpn); - MAKE_NODE_NAME_FROM_WWN(vp->vp_mod_ports[0].wwnn, fcp->isp_wwnn); - isp_put_vp_modify(isp, vp, (vp_modify_t *) scp); - - /* - * Build a EXEC IOCB A64 command that points to the VP MODIFY command - */ - MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 0); - mbs.param[1] = QENTRY_LEN; - mbs.param[2] = DMA_WD1(fcp->isp_scdma); - mbs.param[3] = DMA_WD0(fcp->isp_scdma); - mbs.param[6] = DMA_WD3(fcp->isp_scdma); - mbs.param[7] = DMA_WD2(fcp->isp_scdma); - MEMORYBARRIER(isp, SYNC_SFORDEV, 0, 2 * QENTRY_LEN, chan); - isp_control(isp, ISPCTL_RUN_MBOXCMD, &mbs); - if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { - FC_SCRATCH_RELEASE(isp, chan); - return (EIO); - } - MEMORYBARRIER(isp, SYNC_SFORCPU, QENTRY_LEN, QENTRY_LEN, chan); - isp_get_vp_modify(isp, (vp_modify_t *)&scp[QENTRY_LEN], vp); - - FC_SCRATCH_RELEASE(isp, chan); - - if (vp->vp_mod_status != VP_STS_OK) { - isp_prt(isp, ISP_LOGERR, "%s: VP_MODIFY of Chan %d failed with status %d", __func__, chan, vp->vp_mod_status); - return (EIO); - } - return (0); -} - -static int -isp_fc_disable_vp(ispsoftc_t *isp, int chan) -{ - fcparam *fcp = FCPARAM(isp, chan); - mbreg_t mbs; - vp_ctrl_info_t *vp; - uint8_t qe[QENTRY_LEN], *scp; - - ISP_MEMZERO(qe, QENTRY_LEN); - if (FC_SCRATCH_ACQUIRE(isp, chan)) { - return (EBUSY); - } - scp = fcp->isp_scratch; - - /* - * Build a VP CTRL command in memory - */ - vp = (vp_ctrl_info_t *) qe; - vp->vp_ctrl_hdr.rqs_entry_type = RQSTYPE_VP_CTRL; - vp->vp_ctrl_hdr.rqs_entry_count = 1; - if (ISP_CAP_VP0(isp)) { - vp->vp_ctrl_status = 1; - } else { - vp->vp_ctrl_status = 0; - chan--; /* VP0 can not be controlled in this case. */ - } - vp->vp_ctrl_command = VP_CTRL_CMD_DISABLE_VP_LOGO_ALL; - vp->vp_ctrl_vp_count = 1; - vp->vp_ctrl_idmap[chan / 16] |= (1 << chan % 16); - isp_put_vp_ctrl_info(isp, vp, (vp_ctrl_info_t *) scp); - - /* - * Build a EXEC IOCB A64 command that points to the VP CTRL command - */ - MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 0); - mbs.param[1] = QENTRY_LEN; - mbs.param[2] = DMA_WD1(fcp->isp_scdma); - mbs.param[3] = DMA_WD0(fcp->isp_scdma); - mbs.param[6] = DMA_WD3(fcp->isp_scdma); - mbs.param[7] = DMA_WD2(fcp->isp_scdma); - MEMORYBARRIER(isp, SYNC_SFORDEV, 0, 2 * QENTRY_LEN, chan); - isp_control(isp, ISPCTL_RUN_MBOXCMD, &mbs); - if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { - FC_SCRATCH_RELEASE(isp, chan); - return (EIO); - } - MEMORYBARRIER(isp, SYNC_SFORCPU, QENTRY_LEN, QENTRY_LEN, chan); - isp_get_vp_ctrl_info(isp, (vp_ctrl_info_t *)&scp[QENTRY_LEN], vp); - - FC_SCRATCH_RELEASE(isp, chan); - - if (vp->vp_ctrl_status != 0) { - isp_prt(isp, ISP_LOGERR, - "%s: VP_CTRL of Chan %d failed with status %d %d", - __func__, chan, vp->vp_ctrl_status, vp->vp_ctrl_index_fail); - return (EIO); - } - return (0); -} - -/* - * Change Roles - */ -int -isp_fc_change_role(ispsoftc_t *isp, int chan, int new_role) -{ - fcparam *fcp = FCPARAM(isp, chan); - int i, was, res = 0; - - if (chan >= isp->isp_nchan) { - isp_prt(isp, ISP_LOGWARN, "%s: bad channel %d", __func__, chan); - return (ENXIO); - } - if (fcp->role == new_role) - return (0); - for (was = 0, i = 0; i < isp->isp_nchan; i++) { - if (FCPARAM(isp, i)->role != ISP_ROLE_NONE) - was++; - } - if (was == 0 || (was == 1 && fcp->role != ISP_ROLE_NONE)) { - fcp->role = new_role; - return (isp_reinit(isp, 0)); - } - if (fcp->role != ISP_ROLE_NONE) - res = isp_fc_disable_vp(isp, chan); - fcp->role = new_role; - if (fcp->role != ISP_ROLE_NONE) - res = isp_fc_enable_vp(isp, chan); - return (res); -} - void isp_clear_commands(ispsoftc_t *isp) { Modified: stable/10/sys/dev/isp/isp_library.h ============================================================================== --- stable/10/sys/dev/isp/isp_library.h Wed Dec 30 11:48:17 2015 (r292918) +++ stable/10/sys/dev/isp/isp_library.h Wed Dec 30 11:49:04 2015 (r292919) @@ -72,9 +72,6 @@ const char *isp_fc_fw_statename(int); const char *isp_fc_loop_statename(int); const char *isp_fc_toponame(fcparam *); -int isp_fc_change_role(ispsoftc_t *, int, int); - - /* * Cleanup */ From owner-svn-src-all@freebsd.org Wed Dec 30 11:49:46 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DDD49A55466; Wed, 30 Dec 2015 11:49:46 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DE24C1FE3; Wed, 30 Dec 2015 11:49:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBnjso048294; Wed, 30 Dec 2015 11:49:45 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBnhZO048277; Wed, 30 Dec 2015 11:49:43 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301149.tBUBnhZO048277@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:49:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292920 - in vendor/clang/dist: . bindings/python/clang bindings/python/tests/cindex cmake/caches docs docs/CommandGuide docs/analyzer docs/tools examples/analyzer-plugin include/clang ... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:49:47 -0000 Author: dim Date: Wed Dec 30 11:49:41 2015 New Revision: 292920 URL: https://svnweb.freebsd.org/changeset/base/292920 Log: Vendor import of clang trunk r256633: https://llvm.org/svn/llvm-project/cfe/trunk@256633 Added: vendor/clang/dist/cmake/caches/ vendor/clang/dist/cmake/caches/Apple-stage1.cmake vendor/clang/dist/cmake/caches/Apple-stage2.cmake vendor/clang/dist/cmake/caches/README.txt (contents, props changed) vendor/clang/dist/docs/UndefinedBehaviorSanitizer.rst vendor/clang/dist/docs/analyzer/nullability.rst vendor/clang/dist/include/clang/AST/ExprOpenMP.h (contents, props changed) vendor/clang/dist/include/clang/Basic/BuiltinsWebAssembly.def vendor/clang/dist/include/clang/Serialization/ModuleFileExtension.h (contents, props changed) vendor/clang/dist/include/clang/StaticAnalyzer/Core/IssueHash.h (contents, props changed) vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h (contents, props changed) vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h (contents, props changed) vendor/clang/dist/include/clang/Tooling/Core/Lookup.h (contents, props changed) vendor/clang/dist/lib/AST/ExprObjC.cpp (contents, props changed) vendor/clang/dist/lib/AST/OpenMPClause.cpp (contents, props changed) vendor/clang/dist/lib/AST/StmtCXX.cpp (contents, props changed) vendor/clang/dist/lib/AST/StmtObjC.cpp (contents, props changed) vendor/clang/dist/lib/AST/StmtOpenMP.cpp (contents, props changed) vendor/clang/dist/lib/CodeGen/Address.h (contents, props changed) vendor/clang/dist/lib/CodeGen/CodeGenTypeCache.h (contents, props changed) vendor/clang/dist/lib/Frontend/TestModuleFileExtension.cpp (contents, props changed) vendor/clang/dist/lib/Frontend/TestModuleFileExtension.h (contents, props changed) vendor/clang/dist/lib/Headers/__clang_cuda_runtime_wrapper.h (contents, props changed) vendor/clang/dist/lib/Headers/xsavecintrin.h (contents, props changed) vendor/clang/dist/lib/Headers/xsaveintrin.h (contents, props changed) vendor/clang/dist/lib/Headers/xsaveoptintrin.h (contents, props changed) vendor/clang/dist/lib/Headers/xsavesintrin.h (contents, props changed) vendor/clang/dist/lib/Sema/SemaCoroutine.cpp (contents, props changed) vendor/clang/dist/lib/Serialization/ModuleFileExtension.cpp (contents, props changed) vendor/clang/dist/lib/Serialization/MultiOnDiskHashTable.h (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/VforkChecker.cpp (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Core/IssueHash.cpp (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Core/LoopWidening.cpp (contents, props changed) vendor/clang/dist/lib/Tooling/Core/Lookup.cpp (contents, props changed) vendor/clang/dist/test/Analysis/DynamicTypePropagation.m vendor/clang/dist/test/Analysis/PR24184.cpp (contents, props changed) vendor/clang/dist/test/Analysis/blocks.mm vendor/clang/dist/test/Analysis/bug_hash_test.cpp (contents, props changed) vendor/clang/dist/test/Analysis/bug_hash_test.m vendor/clang/dist/test/Analysis/builtin_signbit.cpp (contents, props changed) vendor/clang/dist/test/Analysis/const-method-call.cpp (contents, props changed) vendor/clang/dist/test/Analysis/delayed-template-parsing-crash.cpp (contents, props changed) vendor/clang/dist/test/Analysis/dynamic_type_check.m vendor/clang/dist/test/Analysis/generics.m vendor/clang/dist/test/Analysis/lambda-notes.cpp (contents, props changed) vendor/clang/dist/test/Analysis/lambdas-generalized-capture.cpp (contents, props changed) vendor/clang/dist/test/Analysis/lambdas.mm vendor/clang/dist/test/Analysis/localization-aggressive.m vendor/clang/dist/test/Analysis/localization.m vendor/clang/dist/test/Analysis/loop-widening.c (contents, props changed) vendor/clang/dist/test/Analysis/malloc-overflow2.c (contents, props changed) vendor/clang/dist/test/Analysis/no-unreachable-dtors.cpp (contents, props changed) vendor/clang/dist/test/Analysis/nullability.mm vendor/clang/dist/test/Analysis/nullability_nullonly.mm vendor/clang/dist/test/Analysis/objc-message.m vendor/clang/dist/test/Analysis/padding_c.c (contents, props changed) vendor/clang/dist/test/Analysis/padding_cpp.cpp (contents, props changed) vendor/clang/dist/test/Analysis/padding_message.cpp (contents, props changed) vendor/clang/dist/test/Analysis/pr22954.c (contents, props changed) vendor/clang/dist/test/Analysis/return-ptr-range.cpp (contents, props changed) vendor/clang/dist/test/Analysis/switch-case.c (contents, props changed) vendor/clang/dist/test/Analysis/symbol-reaper.c (contents, props changed) vendor/clang/dist/test/Analysis/ubigraph-viz.cpp (contents, props changed) vendor/clang/dist/test/Analysis/vfork.c (contents, props changed) vendor/clang/dist/test/CXX/basic/basic.start/basic.start.main/p3.cpp (contents, props changed) vendor/clang/dist/test/CXX/concepts-ts/ vendor/clang/dist/test/CXX/concepts-ts/dcl.dcl/ vendor/clang/dist/test/CXX/concepts-ts/dcl.dcl/dcl.spec/ vendor/clang/dist/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept/ vendor/clang/dist/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept/p1.cpp (contents, props changed) vendor/clang/dist/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept/p2.cpp (contents, props changed) vendor/clang/dist/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept/p5.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab/p1.cpp (contents, props changed) vendor/clang/dist/test/CXX/lex/lex.literal/lex.string/p4.cpp (contents, props changed) vendor/clang/dist/test/CodeCompletion/ordinary-name-cxx11.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/Nontemporal.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/aarch64-neon-vget.c (contents, props changed) vendor/clang/dist/test/CodeGen/aarch64-v8.1a-neon-intrinsics.c (contents, props changed) vendor/clang/dist/test/CodeGen/align-wasm.c (contents, props changed) vendor/clang/dist/test/CodeGen/arm-eabi.c (contents, props changed) vendor/clang/dist/test/CodeGen/arm-fp16-arguments.c (contents, props changed) vendor/clang/dist/test/CodeGen/arm-no-movt.c (contents, props changed) vendor/clang/dist/test/CodeGen/arm-v8.1a-neon-intrinsics.c (contents, props changed) vendor/clang/dist/test/CodeGen/arm_function_epilog.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/armv7k-abi.c (contents, props changed) vendor/clang/dist/test/CodeGen/asm-unicode.S (contents, props changed) vendor/clang/dist/test/CodeGen/asm_64.c (contents, props changed) vendor/clang/dist/test/CodeGen/attr-func-def.c (contents, props changed) vendor/clang/dist/test/CodeGen/attr-no-tail.c (contents, props changed) vendor/clang/dist/test/CodeGen/attr-target-ppc.c (contents, props changed) vendor/clang/dist/test/CodeGen/attr-target-x86-mmx.c (contents, props changed) vendor/clang/dist/test/CodeGen/attr-target-x86.c (contents, props changed) vendor/clang/dist/test/CodeGen/builtin-unpredictable.c (contents, props changed) vendor/clang/dist/test/CodeGen/builtins-wasm.c (contents, props changed) vendor/clang/dist/test/CodeGen/c-unicode.c (contents, props changed) vendor/clang/dist/test/CodeGen/cfi-icall-cross-dso.c (contents, props changed) vendor/clang/dist/test/CodeGen/cfi-icall.c (contents, props changed) vendor/clang/dist/test/CodeGen/debug-prefix-map.c (contents, props changed) vendor/clang/dist/test/CodeGen/enable_if.c (contents, props changed) vendor/clang/dist/test/CodeGen/mangle-ms.c (contents, props changed) vendor/clang/dist/test/CodeGen/mingw-long-double.c (contents, props changed) vendor/clang/dist/test/CodeGen/mips-inline-asm-abi.c (contents, props changed) vendor/clang/dist/test/CodeGen/mips-interrupt-attr.c (contents, props changed) vendor/clang/dist/test/CodeGen/ms-inline-asm-align.c (contents, props changed) vendor/clang/dist/test/CodeGen/ms-mm-align.c (contents, props changed) vendor/clang/dist/test/CodeGen/ms_this.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/object-size.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/pass-object-size.c (contents, props changed) vendor/clang/dist/test/CodeGen/ppc-sfvarargs.c (contents, props changed) vendor/clang/dist/test/CodeGen/sanitize-blocks.c (contents, props changed) vendor/clang/dist/test/CodeGen/sparc-arguments.c (contents, props changed) vendor/clang/dist/test/CodeGen/sse2-builtins.c (contents, props changed) vendor/clang/dist/test/CodeGen/sse3-builtins.c (contents, props changed) vendor/clang/dist/test/CodeGen/sse41-builtins.c (contents, props changed) vendor/clang/dist/test/CodeGen/sse42-builtins.c (contents, props changed) vendor/clang/dist/test/CodeGen/ssse3-builtins.c (contents, props changed) vendor/clang/dist/test/CodeGen/stackrealign.c (contents, props changed) vendor/clang/dist/test/CodeGen/target-builtin-error-2.c (contents, props changed) vendor/clang/dist/test/CodeGen/target-builtin-error.c (contents, props changed) vendor/clang/dist/test/CodeGen/target-builtin-noerror.c (contents, props changed) vendor/clang/dist/test/CodeGen/target-features-error-2.c (contents, props changed) vendor/clang/dist/test/CodeGen/target-features-error.c (contents, props changed) vendor/clang/dist/test/CodeGen/target-features-no-error.c (contents, props changed) vendor/clang/dist/test/CodeGen/thinlto_backend.c (contents, props changed) vendor/clang/dist/test/CodeGen/ubsan-conditional.c (contents, props changed) vendor/clang/dist/test/CodeGen/wasm-arguments.c (contents, props changed) vendor/clang/dist/test/CodeGen/wasm-regparm.c (contents, props changed) vendor/clang/dist/test/CodeGen/x86-soft-float.c (contents, props changed) vendor/clang/dist/test/CodeGen/x86_32-arguments-iamcu.c (contents, props changed) vendor/clang/dist/test/CodeGen/x86_32-xsave.c (contents, props changed) vendor/clang/dist/test/CodeGen/x86_64-longdouble.c (contents, props changed) vendor/clang/dist/test/CodeGen/x86_64-profiling-keep-fp.c (contents, props changed) vendor/clang/dist/test/CodeGen/x86_64-xsave.c (contents, props changed) vendor/clang/dist/test/CodeGenCUDA/Inputs/device-code-2.ll vendor/clang/dist/test/CodeGenCUDA/Inputs/device-code.ll vendor/clang/dist/test/CodeGenCUDA/device-vtable.cu vendor/clang/dist/test/CodeGenCUDA/function-overload.cu vendor/clang/dist/test/CodeGenCUDA/link-device-bitcode.cu vendor/clang/dist/test/CodeGenCXX/PR24289.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/alignment.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/armv7k.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/attr-disable-tail-calls.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/attr-notail.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/attribute_internal_linkage.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/cast-to-ref-bool.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/cfi-blacklist.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/cfi-cross-dso.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/cfi-icall.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-anon-namespace.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-codeview-display-name.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-explicit-cast.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/exceptions-cxx-new.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/funcattrs-global-ctor-dtor.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/invariant.group-for-vptrs.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/main-norecurse.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/ms-inline-asm-fields.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/ms-property.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/observe-noexcept.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/partial-init.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/pass-object-size.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/sanitize-dtor-bit-field.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/sanitize-dtor-derived-class.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/sanitize-dtor-fn-attribute.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/sanitize-dtor-nontrivial-virtual-base.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/sanitize-dtor-repress-aliasing.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/sanitize-dtor-tail-call.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/sanitize-dtor-trivial.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/sanitize-dtor-vtable.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/sanitize-no-dtor-callback.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/static-init-wasm.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/strict-vtable-pointers.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/vtable-assume-load.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/vtable-key-function-win-comdat.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/wasm-args-returns.cpp (contents, props changed) vendor/clang/dist/test/CodeGenObjC/arc-weak.m vendor/clang/dist/test/CodeGenObjC/arc.ll vendor/clang/dist/test/CodeGenObjC/attr-noreturn.m vendor/clang/dist/test/CodeGenObjC/debug-info-property-class-extension.m vendor/clang/dist/test/CodeGenObjC/fragile-arc.m vendor/clang/dist/test/CodeGenObjC/mrc-weak.m vendor/clang/dist/test/CodeGenObjC/property-list-in-extension.m vendor/clang/dist/test/CodeGenObjCXX/arc-weak.mm vendor/clang/dist/test/CodeGenObjCXX/exception-cxx.mm vendor/clang/dist/test/CodeGenObjCXX/mrc-weak.mm vendor/clang/dist/test/CodeGenObjCXX/personality-abuse.mm vendor/clang/dist/test/CodeGenOpenCL/bool_cast.cl vendor/clang/dist/test/CoverageMapping/decl.c (contents, props changed) vendor/clang/dist/test/CoverageMapping/trymacro.cpp (contents, props changed) vendor/clang/dist/test/Driver/Inputs/CUDA/ vendor/clang/dist/test/Driver/Inputs/CUDA/usr/ vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/ vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/ vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/include/ vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/include/.keep vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/lib/ vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/lib/.keep vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/lib64/ vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/lib64/.keep vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/nvvm/ vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/nvvm/libdevice/ vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/nvvm/libdevice/libdevice.compute_20.10.bc vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/nvvm/libdevice/libdevice.compute_35.10.bc vendor/clang/dist/test/Driver/Inputs/Windows/ARM/8.1/usr/bin/ld.lld-link2 (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_linux_libcxxv2_tree/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/bin/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/bin/.keep vendor/clang/dist/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/include/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/include/c++/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/include/c++/v1/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/include/c++/v1/.keep vendor/clang/dist/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/include/c++/v2/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/include/c++/v2/.keep vendor/clang/dist/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/lib/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/bin/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/bin/.keep vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/4.8/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/4.8/backward/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/4.8/backward/.keep (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/v1/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/v1/.keep vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/v2/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/v2/.keep vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/lib/ vendor/clang/dist/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/ vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/lib/ vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/lib/gcc/ vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/ vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/4.8.2/ vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/4.8.2/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/4.8.2/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/4.8.2/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/4.8.2/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/ vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/include/ vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/include/c++/ vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/include/c++/4.8.2/ vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/include/c++/4.8.2/.keep vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/lib/ vendor/clang/dist/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/lib/crt0.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_nacl_tree/ vendor/clang/dist/test/Driver/Inputs/basic_nacl_tree/bin/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v4/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v4/G0/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v4/G0/pic/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v5/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v5/G0/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v5/G0/pic/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v55/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v55/G0/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v55/G0/pic/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v60/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v60/G0/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v60/G0/pic/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/clang/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mips-r2-hard-musl/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mips-r2-hard-musl/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mips-r2-hard-musl/lib/linux/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mips-r2-hard-musl/lib/linux/libclang_rt.builtins-mips.a (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mips-r2-hard-musl/lib/linux/libclang_rt.builtins-mips.so (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mipsel-r2-hard-musl/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mipsel-r2-hard-musl/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mipsel-r2-hard-musl/lib/linux/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mipsel-r2-hard-musl/lib/linux/libclang_rt.builtins-mipsel.a (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mipsel-r2-hard-musl/lib/linux/libclang_rt.builtins-mipsel.so (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/mips-r2-hard-musl/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/mips-r2-hard-musl/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/mips-r2-hard-musl/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/mips-r2-hard-musl/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/mips-r2-hard-musl/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/mips-r2-hard-musl/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/mipsel-r2-hard-musl/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/mipsel-r2-hard-musl/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/mipsel-r2-hard-musl/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/mipsel-r2-hard-musl/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/mipsel-r2-hard-musl/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_linux/sysroot/mipsel-r2-hard-musl/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/multilib_arm_linux_tree/ vendor/clang/dist/test/Driver/Inputs/multilib_arm_linux_tree/usr/ vendor/clang/dist/test/Driver/Inputs/multilib_arm_linux_tree/usr/include/ vendor/clang/dist/test/Driver/Inputs/multilib_arm_linux_tree/usr/include/arm-linux-gnueabi/ vendor/clang/dist/test/Driver/Inputs/multilib_arm_linux_tree/usr/include/arm-linux-gnueabi/.keep vendor/clang/dist/test/Driver/Inputs/multilib_armeb_linux_tree/ vendor/clang/dist/test/Driver/Inputs/multilib_armeb_linux_tree/usr/ vendor/clang/dist/test/Driver/Inputs/multilib_armeb_linux_tree/usr/include/ vendor/clang/dist/test/Driver/Inputs/multilib_armeb_linux_tree/usr/include/armeb-linux-gnueabi/ vendor/clang/dist/test/Driver/Inputs/multilib_armeb_linux_tree/usr/include/armeb-linux-gnueabi/.keep vendor/clang/dist/test/Driver/Inputs/multilib_armebhf_linux_tree/ vendor/clang/dist/test/Driver/Inputs/multilib_armebhf_linux_tree/usr/ vendor/clang/dist/test/Driver/Inputs/multilib_armebhf_linux_tree/usr/include/ vendor/clang/dist/test/Driver/Inputs/multilib_armebhf_linux_tree/usr/include/armeb-linux-gnueabihf/ vendor/clang/dist/test/Driver/Inputs/multilib_armebhf_linux_tree/usr/include/armeb-linux-gnueabihf/.keep vendor/clang/dist/test/Driver/Inputs/multilib_armhf_linux_tree/ vendor/clang/dist/test/Driver/Inputs/multilib_armhf_linux_tree/usr/ vendor/clang/dist/test/Driver/Inputs/multilib_armhf_linux_tree/usr/include/ vendor/clang/dist/test/Driver/Inputs/multilib_armhf_linux_tree/usr/include/arm-linux-gnueabihf/ vendor/clang/dist/test/Driver/Inputs/multilib_armhf_linux_tree/usr/include/arm-linux-gnueabihf/.keep vendor/clang/dist/test/Driver/Inputs/resource_dir/asan_blacklist.txt (contents, props changed) vendor/clang/dist/test/Driver/Inputs/scei-ps4_tree/ vendor/clang/dist/test/Driver/Inputs/scei-ps4_tree/target/ vendor/clang/dist/test/Driver/Inputs/scei-ps4_tree/target/include/ vendor/clang/dist/test/Driver/Inputs/scei-ps4_tree/target/include/.keep vendor/clang/dist/test/Driver/Inputs/scei-ps4_tree/target/include_common/ vendor/clang/dist/test/Driver/Inputs/scei-ps4_tree/target/include_common/.keep vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/ vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/ vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/ vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/ vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/ vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/ vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/ vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/ vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/ vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/ld.so.1 (contents, props changed) vendor/clang/dist/test/Driver/amdgpu-toolchain.c (contents, props changed) vendor/clang/dist/test/Driver/appletvos-version-min.c (contents, props changed) vendor/clang/dist/test/Driver/arch-armv7k.c (contents, props changed) vendor/clang/dist/test/Driver/arm-compiler-rt.c (contents, props changed) vendor/clang/dist/test/Driver/arm-features.c (contents, props changed) vendor/clang/dist/test/Driver/arm-float-abi.c (contents, props changed) vendor/clang/dist/test/Driver/arm-multilibs.c (contents, props changed) vendor/clang/dist/test/Driver/arm-no-movt.c (contents, props changed) vendor/clang/dist/test/Driver/as-default-dwarf.s (contents, props changed) vendor/clang/dist/test/Driver/as-options.s (contents, props changed) vendor/clang/dist/test/Driver/cl-response-file.c (contents, props changed) vendor/clang/dist/test/Driver/cuda-detect.cu vendor/clang/dist/test/Driver/darwin-ld-lto.c (contents, props changed) vendor/clang/dist/test/Driver/debug-prefix-map.c (contents, props changed) vendor/clang/dist/test/Driver/eabi.c (contents, props changed) vendor/clang/dist/test/Driver/elfiamcu-header-search.c (contents, props changed) vendor/clang/dist/test/Driver/fplugin.c (contents, props changed) vendor/clang/dist/test/Driver/incremental-linker-compatible.c (contents, props changed) vendor/clang/dist/test/Driver/mingw-libgcc.c (contents, props changed) vendor/clang/dist/test/Driver/mingw-useld.c (contents, props changed) vendor/clang/dist/test/Driver/mips-ias-Wa.s (contents, props changed) vendor/clang/dist/test/Driver/mips-mti-linux.c (contents, props changed) vendor/clang/dist/test/Driver/ms-bitfields.c (contents, props changed) vendor/clang/dist/test/Driver/myriad-toolchain.c (contents, props changed) vendor/clang/dist/test/Driver/no-integrated-as.s (contents, props changed) vendor/clang/dist/test/Driver/objc-weak.m vendor/clang/dist/test/Driver/ps4-header-search.c (contents, props changed) vendor/clang/dist/test/Driver/ps4-linker-non-win.c (contents, props changed) vendor/clang/dist/test/Driver/ps4-linker-win.c (contents, props changed) vendor/clang/dist/test/Driver/ps4-pic.c (contents, props changed) vendor/clang/dist/test/Driver/ps4-runtime-flags.c (contents, props changed) vendor/clang/dist/test/Driver/ps4-sdk-root.c (contents, props changed) vendor/clang/dist/test/Driver/solaris-header-search.cpp (contents, props changed) vendor/clang/dist/test/Driver/solaris-ld.c (contents, props changed) vendor/clang/dist/test/Driver/solaris-opts.c (contents, props changed) vendor/clang/dist/test/Driver/sparc-as.c (contents, props changed) vendor/clang/dist/test/Driver/sparcv9-as.c (contents, props changed) vendor/clang/dist/test/Driver/thinlto.c (contents, props changed) vendor/clang/dist/test/Driver/thinlto_backend.c (contents, props changed) vendor/clang/dist/test/Driver/wasm-toolchain.c (contents, props changed) vendor/clang/dist/test/Driver/wasm32-unknown-unknown.cpp (contents, props changed) vendor/clang/dist/test/Driver/wasm64-unknown-unknown.cpp (contents, props changed) vendor/clang/dist/test/Driver/watchos-version-min.c (contents, props changed) vendor/clang/dist/test/Driver/woa-fp.c (contents, props changed) vendor/clang/dist/test/Format/adjust-indent.cpp (contents, props changed) vendor/clang/dist/test/Format/disable-include-sorting.cpp (contents, props changed) vendor/clang/dist/test/Format/xmloutput.cpp (contents, props changed) vendor/clang/dist/test/Frontend/force-include-not-found.c (contents, props changed) vendor/clang/dist/test/Frontend/optimization-remark-analysis.c (contents, props changed) vendor/clang/dist/test/Frontend/optimization-remark-options.c (contents, props changed) vendor/clang/dist/test/Headers/pmmintrin.c (contents, props changed) vendor/clang/dist/test/Headers/x86intrin-2.c (contents, props changed) vendor/clang/dist/test/Index/availability.cpp (contents, props changed) vendor/clang/dist/test/Index/index-attrs.c (contents, props changed) vendor/clang/dist/test/Index/index-attrs.cpp (contents, props changed) vendor/clang/dist/test/Index/namespaced-base-ctor-init.cpp (contents, props changed) vendor/clang/dist/test/Index/print-cxx-manglings.cpp (contents, props changed) vendor/clang/dist/test/Index/symbol-visibility.c (contents, props changed) vendor/clang/dist/test/Index/visibility.c (contents, props changed) vendor/clang/dist/test/Layout/ms-vtordisp-local.cpp (contents, props changed) vendor/clang/dist/test/Layout/ms_struct-bitfields.c (contents, props changed) vendor/clang/dist/test/Lexer/coroutines.cpp (contents, props changed) vendor/clang/dist/test/Lexer/objc_macros.m vendor/clang/dist/test/Lexer/warn_binary_literals.cpp (contents, props changed) vendor/clang/dist/test/Misc/diag-macro-backtrace2.c (contents, props changed) vendor/clang/dist/test/Misc/reduced-diags-macros-backtrace.cpp (contents, props changed) vendor/clang/dist/test/Misc/reduced-diags-macros.cpp (contents, props changed) vendor/clang/dist/test/Misc/serialized-diags-really-long-text.cpp (contents, props changed) vendor/clang/dist/test/Misc/thinlto.c (contents, props changed) vendor/clang/dist/test/Modules/DebugInfoSubmoduleImport.c (contents, props changed) vendor/clang/dist/test/Modules/DebugInfoSubmodules.c (contents, props changed) vendor/clang/dist/test/Modules/DebugInfoTransitiveImport.m vendor/clang/dist/test/Modules/ExtDebugInfo.cpp (contents, props changed) vendor/clang/dist/test/Modules/ExtDebugInfo.m vendor/clang/dist/test/Modules/Inputs/AutolinkTBD.framework/ vendor/clang/dist/test/Modules/Inputs/AutolinkTBD.framework/AutolinkTBD.tbd vendor/clang/dist/test/Modules/Inputs/AutolinkTBD.framework/Headers/ vendor/clang/dist/test/Modules/Inputs/AutolinkTBD.framework/Headers/AutolinkTBD.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/DebugCXX.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/DebugObjC.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/DebugSubmoduleA.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/DebugSubmoduleB.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/ExtensionTestA.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/System/usr/include/assert.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/System/usr/include/tcl-private/ vendor/clang/dist/test/Modules/Inputs/System/usr/include/tcl-private/header.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/auto-import-unavailable/ vendor/clang/dist/test/Modules/Inputs/auto-import-unavailable/missing_header/ vendor/clang/dist/test/Modules/Inputs/auto-import-unavailable/missing_header/not_missing.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/auto-import-unavailable/missing_requirement.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/auto-import-unavailable/module.modulemap vendor/clang/dist/test/Modules/Inputs/auto-import-unavailable/nonrequired_missing_header/ vendor/clang/dist/test/Modules/Inputs/auto-import-unavailable/nonrequired_missing_header/not_missing.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/auto-import-unavailable/nonrequired_missing_header/requires_feature_you_dont_have.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/available-is-better/ vendor/clang/dist/test/Modules/Inputs/available-is-better/available-is-better.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/available-is-better/module.modulemap vendor/clang/dist/test/Modules/Inputs/elaborated-type-structs.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/explicit-build-overlap/ vendor/clang/dist/test/Modules/Inputs/explicit-build-overlap/a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/explicit-build-overlap/b.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/explicit-build-overlap/def.map vendor/clang/dist/test/Modules/Inputs/explicit-build-overlap/use.map vendor/clang/dist/test/Modules/Inputs/internal-constants/ vendor/clang/dist/test/Modules/Inputs/internal-constants/a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/internal-constants/b.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/internal-constants/c.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/internal-constants/const.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/internal-constants/module.modulemap vendor/clang/dist/test/Modules/Inputs/libstdcxx-ambiguous-internal/ vendor/clang/dist/test/Modules/Inputs/libstdcxx-ambiguous-internal/a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/libstdcxx-ambiguous-internal/b.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/libstdcxx-ambiguous-internal/c.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/libstdcxx-ambiguous-internal/d.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/libstdcxx-ambiguous-internal/module.modulemap vendor/clang/dist/test/Modules/Inputs/misplaced/ vendor/clang/dist/test/Modules/Inputs/misplaced/misplaced-a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/misplaced/misplaced-b.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/misplaced/misplaced.modulemap vendor/clang/dist/test/Modules/Inputs/module-map-path-hash/ vendor/clang/dist/test/Modules/Inputs/module-map-path-hash/a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/module-map-path-hash/module.modulemap vendor/clang/dist/test/Modules/Inputs/no-linkage/ vendor/clang/dist/test/Modules/Inputs/no-linkage/decls.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/no-linkage/empty.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/no-linkage/module.modulemap vendor/clang/dist/test/Modules/Inputs/private3/ vendor/clang/dist/test/Modules/Inputs/private3/private.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/private3/public.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/stress1/merge_no_reexport.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/template-default-args/d.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/thread-safety/ vendor/clang/dist/test/Modules/Inputs/thread-safety/a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/thread-safety/b.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/thread-safety/c.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/thread-safety/module.map vendor/clang/dist/test/Modules/Inputs/typedef-tag-hidden.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/typedef-tag.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/use-builtin.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/using-decl-redecl/ vendor/clang/dist/test/Modules/Inputs/using-decl-redecl/a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/using-decl-redecl/b.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/using-decl-redecl/c.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/using-decl-redecl/module.modulemap vendor/clang/dist/test/Modules/Inputs/va_list/left.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/va_list/right.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/va_list/top.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/working-dir-test/ vendor/clang/dist/test/Modules/Inputs/working-dir-test/Test.framework/ vendor/clang/dist/test/Modules/Inputs/working-dir-test/Test.framework/Headers/ vendor/clang/dist/test/Modules/Inputs/working-dir-test/Test.framework/Headers/Test.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/working-dir-test/Test.framework/Modules/ vendor/clang/dist/test/Modules/Inputs/working-dir-test/Test.framework/Modules/module.modulemap vendor/clang/dist/test/Modules/ModuleDebugInfo.cpp (contents, props changed) vendor/clang/dist/test/Modules/ModuleDebugInfo.m vendor/clang/dist/test/Modules/auto-import-unavailable.cpp (contents, props changed) vendor/clang/dist/test/Modules/autolinkTBD.m vendor/clang/dist/test/Modules/available-is-better.cpp (contents, props changed) vendor/clang/dist/test/Modules/compiler_builtins_aarch64.m vendor/clang/dist/test/Modules/darwin_specific_modulemap_hacks.m vendor/clang/dist/test/Modules/elaborated-type-specifier-from-hidden-module.m vendor/clang/dist/test/Modules/embed-files.cpp (contents, props changed) vendor/clang/dist/test/Modules/explicit-build-extra-files.cpp (contents, props changed) vendor/clang/dist/test/Modules/explicit-build-missing-files.cpp (contents, props changed) vendor/clang/dist/test/Modules/explicit-build-overlap.cpp (contents, props changed) vendor/clang/dist/test/Modules/extensions.c (contents, props changed) vendor/clang/dist/test/Modules/hidden-definition.cpp (contents, props changed) vendor/clang/dist/test/Modules/internal-constants.cpp (contents, props changed) vendor/clang/dist/test/Modules/libstdcxx-ambiguous-internal.cpp (contents, props changed) vendor/clang/dist/test/Modules/misplaced-1.cpp (contents, props changed) vendor/clang/dist/test/Modules/misplaced-2.cpp (contents, props changed) vendor/clang/dist/test/Modules/misplaced-3.cpp (contents, props changed) vendor/clang/dist/test/Modules/misplaced-4.cpp (contents, props changed) vendor/clang/dist/test/Modules/misplaced-5.c (contents, props changed) vendor/clang/dist/test/Modules/module-map-path-hash.cpp (contents, props changed) vendor/clang/dist/test/Modules/modules.idx (contents, props changed) vendor/clang/dist/test/Modules/no-linkage.cpp (contents, props changed) vendor/clang/dist/test/Modules/private.modulemap vendor/clang/dist/test/Modules/target-features.m vendor/clang/dist/test/Modules/thread-safety.cpp (contents, props changed) vendor/clang/dist/test/Modules/typedef-tag-not-visible.m vendor/clang/dist/test/Modules/using-decl-redecl.cpp (contents, props changed) vendor/clang/dist/test/Modules/va_list.cpp (contents, props changed) vendor/clang/dist/test/Modules/working-dir-flag.m vendor/clang/dist/test/OpenMP/cancel_if_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_collapse_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_firstprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_private_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/driver.c (contents, props changed) vendor/clang/dist/test/OpenMP/for_linear_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/for_linear_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/for_ordered_clause.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/for_simd_simdlen_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/function-attr.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/openmp_check.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/parallel_for_linear_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/parallel_for_linear_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/parallel_for_ordered_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/parallel_for_simd_simdlen_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/simd_simdlen_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_codegen_global_capture.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_data_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_data_device_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_data_if_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_data_messages.c (contents, props changed) vendor/clang/dist/test/OpenMP/target_device_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_map_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_map_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/task_priority_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_collapse_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_final_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_firstprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_grainsize_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_lastprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_loop_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_misc_messages.c (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_num_tasks_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_priority_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_private_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_aligned_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_collapse_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_final_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_firstprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_grainsize_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_lastprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_linear_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_loop_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_misc_messages.c (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_num_tasks_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_priority_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_private_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_safelen_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_simdlen_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/teams_num_teams_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/teams_thread_limit_messages.cpp (contents, props changed) vendor/clang/dist/test/PCH/datetime.c (contents, props changed) vendor/clang/dist/test/PCH/make-integer-seq.cpp (contents, props changed) vendor/clang/dist/test/Parser/cxx1z-coroutines.cpp (contents, props changed) vendor/clang/dist/test/Parser/x64-windows-calling-convention-handling.c (contents, props changed) vendor/clang/dist/test/Preprocessor/elfiamcu-predefines.c (contents, props changed) vendor/clang/dist/test/Preprocessor/init-v7k-compat.c (contents, props changed) vendor/clang/dist/test/Preprocessor/wasm-target-features.c (contents, props changed) vendor/clang/dist/test/Profile/Inputs/c-general.profdata.v3 (contents, props changed) vendor/clang/dist/test/Profile/Inputs/max-function-count.proftext vendor/clang/dist/test/Profile/cxx-structors.cpp (contents, props changed) vendor/clang/dist/test/Profile/max-function-count.c (contents, props changed) vendor/clang/dist/test/Sema/asm-label.c (contents, props changed) vendor/clang/dist/test/Sema/attr-availability-tvos.c (contents, props changed) vendor/clang/dist/test/Sema/attr-availability-watchos.c (contents, props changed) vendor/clang/dist/test/Sema/attr-disable-tail-calls.c (contents, props changed) vendor/clang/dist/test/Sema/attr-notail.c (contents, props changed) vendor/clang/dist/test/Sema/auto-type.c (contents, props changed) vendor/clang/dist/test/Sema/builtins-overflow.c (contents, props changed) vendor/clang/dist/test/Sema/callingconv-iamcu.c (contents, props changed) vendor/clang/dist/test/Sema/ext_vector_conversions.c (contents, props changed) vendor/clang/dist/test/Sema/inline-asm-validate-amdgpu.cl vendor/clang/dist/test/Sema/internal_linkage.c (contents, props changed) vendor/clang/dist/test/Sema/mips-interrupt-attr.c (contents, props changed) vendor/clang/dist/test/Sema/pass-object-size.c (contents, props changed) vendor/clang/dist/test/Sema/redefine_extname.c (contents, props changed) vendor/clang/dist/test/Sema/varargs-win64.c (contents, props changed) vendor/clang/dist/test/Sema/varargs-x86-32.c (contents, props changed) vendor/clang/dist/test/Sema/warn-double-promotion.c (contents, props changed) vendor/clang/dist/test/Sema/warn-extern-main.c (contents, props changed) vendor/clang/dist/test/Sema/warn-logical-not-compare.c (contents, props changed) vendor/clang/dist/test/SemaCUDA/attributes.cu vendor/clang/dist/test/SemaCUDA/builtins.cu vendor/clang/dist/test/SemaCUDA/function-overload.cu vendor/clang/dist/test/SemaCXX/PR16677.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/PR20334-std_initializer_list_diagnosis_assertion.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/attr-disable-tail-calls.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/attr-notail.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/auto-type-from-cxx.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/cdtor-fn-try-block.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/coroutines.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/deleted-function-access.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/exception-spec.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/internal_linkage.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/make_integer_seq.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/many-template-parameter-lists.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/microsoft-super.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/ms-inline-asm.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/ms-property-error.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/ms-property.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/ms-unsupported.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/pass-object-size.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/redefine_extname.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/typo-correction-blocks.c (contents, props changed) vendor/clang/dist/test/SemaCXX/warn-pure-virtual-kext.cpp (contents, props changed) vendor/clang/dist/test/SemaObjC/bool-type.m vendor/clang/dist/test/SemaObjC/mrc-no-weak.m vendor/clang/dist/test/SemaObjC/mrc-weak.m vendor/clang/dist/test/SemaObjC/parameterized_classes_arc.m vendor/clang/dist/test/SemaObjC/property-atomic-redecl.m vendor/clang/dist/test/SemaObjCXX/cxx1y-lambda.mm vendor/clang/dist/test/SemaObjCXX/parameterized_classes_arc.mm vendor/clang/dist/test/SemaObjCXX/pseudo-destructor.mm vendor/clang/dist/test/SemaObjCXX/sel-address.mm vendor/clang/dist/test/SemaOpenCL/null_literal.cl vendor/clang/dist/test/SemaOpenCL/storageclass-cl20.cl vendor/clang/dist/test/SemaTemplate/instantiate-expr-6.cpp (contents, props changed) vendor/clang/dist/test/VFS/Inputs/public_header3.h (contents, props changed) vendor/clang/dist/tools/scan-build/CMakeLists.txt (contents, props changed) vendor/clang/dist/tools/scan-build/Makefile (contents, props changed) vendor/clang/dist/tools/scan-build/bin/ vendor/clang/dist/tools/scan-build/bin/scan-build (contents, props changed) vendor/clang/dist/tools/scan-build/bin/scan-build.bat vendor/clang/dist/tools/scan-build/bin/set-xcode-analyzer (contents, props changed) vendor/clang/dist/tools/scan-build/libexec/ vendor/clang/dist/tools/scan-build/libexec/c++-analyzer (contents, props changed) vendor/clang/dist/tools/scan-build/libexec/c++-analyzer.bat vendor/clang/dist/tools/scan-build/libexec/ccc-analyzer (contents, props changed) vendor/clang/dist/tools/scan-build/libexec/ccc-analyzer.bat vendor/clang/dist/tools/scan-build/man/ vendor/clang/dist/tools/scan-build/man/scan-build.1 (contents, props changed) vendor/clang/dist/tools/scan-build/share/ vendor/clang/dist/tools/scan-build/share/scan-build/ vendor/clang/dist/tools/scan-build/share/scan-build/scanview.css (contents, props changed) vendor/clang/dist/tools/scan-build/share/scan-build/sorttable.js vendor/clang/dist/tools/scan-view/CMakeLists.txt (contents, props changed) vendor/clang/dist/tools/scan-view/Makefile (contents, props changed) vendor/clang/dist/tools/scan-view/bin/ vendor/clang/dist/tools/scan-view/bin/scan-view (contents, props changed) vendor/clang/dist/tools/scan-view/share/ vendor/clang/dist/tools/scan-view/share/FileRadar.scpt (contents, props changed) vendor/clang/dist/tools/scan-view/share/GetRadarVersion.scpt vendor/clang/dist/tools/scan-view/share/Reporter.py (contents, props changed) vendor/clang/dist/tools/scan-view/share/ScanView.py (contents, props changed) vendor/clang/dist/tools/scan-view/share/bugcatcher.ico (contents, props changed) vendor/clang/dist/tools/scan-view/share/startfile.py (contents, props changed) vendor/clang/dist/unittests/Driver/ToolChainTest.cpp (contents, props changed) vendor/clang/dist/unittests/Format/SortIncludesTest.cpp (contents, props changed) vendor/clang/dist/unittests/Tooling/LookupTest.cpp (contents, props changed) vendor/clang/dist/utils/perf-training/ vendor/clang/dist/utils/perf-training/CMakeLists.txt (contents, props changed) vendor/clang/dist/utils/perf-training/README.txt (contents, props changed) vendor/clang/dist/utils/perf-training/cxx/ vendor/clang/dist/utils/perf-training/cxx/hello_world.cpp (contents, props changed) vendor/clang/dist/utils/perf-training/lit.cfg vendor/clang/dist/utils/perf-training/lit.site.cfg.in (contents, props changed) vendor/clang/dist/utils/perf-training/perf-helper.py (contents, props changed) Deleted: vendor/clang/dist/include/clang/AST/DataRecursiveASTVisitor.h vendor/clang/dist/test/CodeGen/arm64_vget.c vendor/clang/dist/test/CodeGen/arm64_vset_lane.c vendor/clang/dist/test/CodeGen/attr-target.c vendor/clang/dist/test/CodeGen/x86_64-fp128.c vendor/clang/dist/test/CodeGenCXX/default-destructor-synthesis.cpp vendor/clang/dist/test/CodeGenCXX/member-initializers.cpp vendor/clang/dist/test/CodeGenCXX/sel-address.mm vendor/clang/dist/test/Driver/Inputs/hexagon_tree/gnu/ vendor/clang/dist/test/Driver/Inputs/hexagon_tree/qc/ vendor/clang/dist/test/Driver/hexagon-toolchain.c vendor/clang/dist/test/Driver/shave-toolchain.c vendor/clang/dist/test/Modules/Inputs/DebugModule.h vendor/clang/dist/test/PCH/preprocess.c vendor/clang/dist/test/PCH/preprocess.h vendor/clang/dist/test/SemaObjC/nonarc-weak.m vendor/clang/dist/tools/driver/clang_symlink.cmake vendor/clang/dist/tools/scan-build/c++-analyzer vendor/clang/dist/tools/scan-build/c++-analyzer.bat vendor/clang/dist/tools/scan-build/ccc-analyzer vendor/clang/dist/tools/scan-build/ccc-analyzer.bat vendor/clang/dist/tools/scan-build/scan-build vendor/clang/dist/tools/scan-build/scan-build.1 vendor/clang/dist/tools/scan-build/scan-build.bat vendor/clang/dist/tools/scan-build/scanview.css vendor/clang/dist/tools/scan-build/set-xcode-analyzer vendor/clang/dist/tools/scan-build/sorttable.js vendor/clang/dist/tools/scan-view/Reporter.py vendor/clang/dist/tools/scan-view/Resources/ vendor/clang/dist/tools/scan-view/ScanView.py vendor/clang/dist/tools/scan-view/scan-view vendor/clang/dist/tools/scan-view/startfile.py Modified: vendor/clang/dist/CMakeLists.txt vendor/clang/dist/CODE_OWNERS.TXT vendor/clang/dist/INSTALL.txt vendor/clang/dist/Makefile vendor/clang/dist/bindings/python/clang/cindex.py vendor/clang/dist/bindings/python/tests/cindex/test_cursor.py vendor/clang/dist/bindings/python/tests/cindex/test_cursor_kind.py vendor/clang/dist/bindings/python/tests/cindex/test_type.py vendor/clang/dist/docs/AddressSanitizer.rst vendor/clang/dist/docs/AttributeReference.rst vendor/clang/dist/docs/ClangFormat.rst vendor/clang/dist/docs/ClangFormatStyleOptions.rst vendor/clang/dist/docs/ClangTools.rst vendor/clang/dist/docs/CommandGuide/clang.rst vendor/clang/dist/docs/ControlFlowIntegrity.rst vendor/clang/dist/docs/ControlFlowIntegrityDesign.rst vendor/clang/dist/docs/InternalsManual.rst vendor/clang/dist/docs/LanguageExtensions.rst vendor/clang/dist/docs/LeakSanitizer.rst vendor/clang/dist/docs/LibASTMatchersReference.html vendor/clang/dist/docs/LibASTMatchersTutorial.rst vendor/clang/dist/docs/MemorySanitizer.rst vendor/clang/dist/docs/Modules.rst vendor/clang/dist/docs/RAVFrontendAction.rst vendor/clang/dist/docs/ReleaseNotes.rst vendor/clang/dist/docs/SanitizerCoverage.rst vendor/clang/dist/docs/ThreadSanitizer.rst vendor/clang/dist/docs/UsersManual.rst vendor/clang/dist/docs/analyzer/DebugChecks.rst vendor/clang/dist/docs/conf.py vendor/clang/dist/docs/doxygen.cfg.in vendor/clang/dist/docs/index.rst vendor/clang/dist/docs/tools/dump_ast_matchers.py vendor/clang/dist/docs/tools/dump_format_style.py vendor/clang/dist/examples/analyzer-plugin/MainCallChecker.cpp vendor/clang/dist/include/clang-c/CXCompilationDatabase.h vendor/clang/dist/include/clang-c/CXString.h vendor/clang/dist/include/clang-c/Index.h vendor/clang/dist/include/clang/AST/ASTContext.h vendor/clang/dist/include/clang/AST/ASTMutationListener.h vendor/clang/dist/include/clang/AST/ASTTypeTraits.h vendor/clang/dist/include/clang/AST/Attr.h vendor/clang/dist/include/clang/AST/BuiltinTypes.def vendor/clang/dist/include/clang/AST/CXXInheritance.h vendor/clang/dist/include/clang/AST/CharUnits.h vendor/clang/dist/include/clang/AST/CommentSema.h vendor/clang/dist/include/clang/AST/Decl.h vendor/clang/dist/include/clang/AST/DeclBase.h vendor/clang/dist/include/clang/AST/DeclCXX.h vendor/clang/dist/include/clang/AST/DeclFriend.h vendor/clang/dist/include/clang/AST/DeclGroup.h vendor/clang/dist/include/clang/AST/DeclObjC.h vendor/clang/dist/include/clang/AST/DeclOpenMP.h vendor/clang/dist/include/clang/AST/DeclTemplate.h vendor/clang/dist/include/clang/AST/EvaluatedExprVisitor.h vendor/clang/dist/include/clang/AST/Expr.h vendor/clang/dist/include/clang/AST/ExprCXX.h vendor/clang/dist/include/clang/AST/ExprObjC.h vendor/clang/dist/include/clang/AST/ExternalASTSource.h vendor/clang/dist/include/clang/AST/Mangle.h vendor/clang/dist/include/clang/AST/NestedNameSpecifier.h vendor/clang/dist/include/clang/AST/OpenMPClause.h vendor/clang/dist/include/clang/AST/OperationKinds.h vendor/clang/dist/include/clang/AST/PrettyPrinter.h vendor/clang/dist/include/clang/AST/RecursiveASTVisitor.h vendor/clang/dist/include/clang/AST/Redeclarable.h vendor/clang/dist/include/clang/AST/Stmt.h vendor/clang/dist/include/clang/AST/StmtCXX.h vendor/clang/dist/include/clang/AST/StmtIterator.h vendor/clang/dist/include/clang/AST/StmtOpenMP.h vendor/clang/dist/include/clang/AST/StmtVisitor.h vendor/clang/dist/include/clang/AST/TemplateBase.h vendor/clang/dist/include/clang/AST/TemplateName.h vendor/clang/dist/include/clang/AST/Type.h vendor/clang/dist/include/clang/AST/TypeLoc.h vendor/clang/dist/include/clang/AST/VTableBuilder.h vendor/clang/dist/include/clang/ASTMatchers/ASTMatchFinder.h vendor/clang/dist/include/clang/ASTMatchers/ASTMatchers.h vendor/clang/dist/include/clang/ASTMatchers/ASTMatchersInternal.h vendor/clang/dist/include/clang/ASTMatchers/Dynamic/Diagnostics.h vendor/clang/dist/include/clang/ASTMatchers/Dynamic/Parser.h vendor/clang/dist/include/clang/ASTMatchers/Dynamic/Registry.h vendor/clang/dist/include/clang/Analysis/Analyses/Consumed.h vendor/clang/dist/include/clang/Analysis/Analyses/ThreadSafetyCommon.h vendor/clang/dist/include/clang/Analysis/Analyses/ThreadSafetyTIL.h vendor/clang/dist/include/clang/Analysis/CFG.h vendor/clang/dist/include/clang/Analysis/ProgramPoint.h vendor/clang/dist/include/clang/Analysis/Support/BumpVector.h vendor/clang/dist/include/clang/Basic/Attr.td vendor/clang/dist/include/clang/Basic/AttrDocs.td vendor/clang/dist/include/clang/Basic/Attributes.h vendor/clang/dist/include/clang/Basic/Builtins.def vendor/clang/dist/include/clang/Basic/Builtins.h vendor/clang/dist/include/clang/Basic/BuiltinsAArch64.def vendor/clang/dist/include/clang/Basic/BuiltinsARM.def vendor/clang/dist/include/clang/Basic/BuiltinsNVPTX.def vendor/clang/dist/include/clang/Basic/BuiltinsPPC.def vendor/clang/dist/include/clang/Basic/BuiltinsX86.def vendor/clang/dist/include/clang/Basic/DeclNodes.td vendor/clang/dist/include/clang/Basic/Diagnostic.h vendor/clang/dist/include/clang/Basic/DiagnosticCommonKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticDriverKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticFrontendKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticGroups.td vendor/clang/dist/include/clang/Basic/DiagnosticLexKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticParseKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticSerializationKinds.td vendor/clang/dist/include/clang/Basic/FileManager.h vendor/clang/dist/include/clang/Basic/IdentifierTable.h vendor/clang/dist/include/clang/Basic/LangOptions.def vendor/clang/dist/include/clang/Basic/Module.h vendor/clang/dist/include/clang/Basic/ObjCRuntime.h vendor/clang/dist/include/clang/Basic/OpenCLExtensions.def vendor/clang/dist/include/clang/Basic/OpenMPKinds.def vendor/clang/dist/include/clang/Basic/OpenMPKinds.h vendor/clang/dist/include/clang/Basic/OperatorKinds.def vendor/clang/dist/include/clang/Basic/PartialDiagnostic.h vendor/clang/dist/include/clang/Basic/Sanitizers.def vendor/clang/dist/include/clang/Basic/SourceLocation.h vendor/clang/dist/include/clang/Basic/SourceManager.h vendor/clang/dist/include/clang/Basic/Specifiers.h vendor/clang/dist/include/clang/Basic/StmtNodes.td vendor/clang/dist/include/clang/Basic/TargetBuiltins.h vendor/clang/dist/include/clang/Basic/TargetCXXABI.h vendor/clang/dist/include/clang/Basic/TargetInfo.h vendor/clang/dist/include/clang/Basic/TokenKinds.def vendor/clang/dist/include/clang/Basic/VirtualFileSystem.h vendor/clang/dist/include/clang/Basic/arm_neon.td vendor/clang/dist/include/clang/CodeGen/BackendUtil.h vendor/clang/dist/include/clang/CodeGen/CGFunctionInfo.h vendor/clang/dist/include/clang/CodeGen/CodeGenABITypes.h vendor/clang/dist/include/clang/CodeGen/CodeGenAction.h vendor/clang/dist/include/clang/CodeGen/ObjectFilePCHContainerOperations.h vendor/clang/dist/include/clang/Config/config.h.cmake vendor/clang/dist/include/clang/Config/config.h.in vendor/clang/dist/include/clang/Driver/Action.h vendor/clang/dist/include/clang/Driver/CC1Options.td vendor/clang/dist/include/clang/Driver/CLCompatOptions.td vendor/clang/dist/include/clang/Driver/Compilation.h vendor/clang/dist/include/clang/Driver/Driver.h vendor/clang/dist/include/clang/Driver/Job.h vendor/clang/dist/include/clang/Driver/Options.td vendor/clang/dist/include/clang/Driver/SanitizerArgs.h vendor/clang/dist/include/clang/Driver/ToolChain.h vendor/clang/dist/include/clang/Driver/Types.h vendor/clang/dist/include/clang/Edit/Commit.h vendor/clang/dist/include/clang/Edit/EditedSource.h vendor/clang/dist/include/clang/Format/Format.h vendor/clang/dist/include/clang/Frontend/ASTUnit.h vendor/clang/dist/include/clang/Frontend/CodeGenOptions.def vendor/clang/dist/include/clang/Frontend/CodeGenOptions.h vendor/clang/dist/include/clang/Frontend/CompilerInstance.h vendor/clang/dist/include/clang/Frontend/CompilerInvocation.h vendor/clang/dist/include/clang/Frontend/DependencyOutputOptions.h vendor/clang/dist/include/clang/Frontend/DiagnosticRenderer.h vendor/clang/dist/include/clang/Frontend/FrontendOptions.h vendor/clang/dist/include/clang/Frontend/PCHContainerOperations.h vendor/clang/dist/include/clang/Frontend/SerializedDiagnosticReader.h vendor/clang/dist/include/clang/Frontend/Utils.h vendor/clang/dist/include/clang/Lex/DirectoryLookup.h vendor/clang/dist/include/clang/Lex/HeaderSearch.h vendor/clang/dist/include/clang/Lex/HeaderSearchOptions.h vendor/clang/dist/include/clang/Lex/MacroInfo.h vendor/clang/dist/include/clang/Lex/ModuleMap.h vendor/clang/dist/include/clang/Lex/PPCallbacks.h vendor/clang/dist/include/clang/Lex/Pragma.h vendor/clang/dist/include/clang/Lex/PreprocessingRecord.h vendor/clang/dist/include/clang/Lex/Preprocessor.h vendor/clang/dist/include/clang/Lex/TokenLexer.h vendor/clang/dist/include/clang/Parse/Parser.h vendor/clang/dist/include/clang/Sema/AttributeList.h vendor/clang/dist/include/clang/Sema/CodeCompleteOptions.h vendor/clang/dist/include/clang/Sema/DeclSpec.h vendor/clang/dist/include/clang/Sema/ExternalSemaSource.h vendor/clang/dist/include/clang/Sema/Initialization.h vendor/clang/dist/include/clang/Sema/Lookup.h vendor/clang/dist/include/clang/Sema/MultiplexExternalSemaSource.h vendor/clang/dist/include/clang/Sema/Overload.h vendor/clang/dist/include/clang/Sema/ScopeInfo.h vendor/clang/dist/include/clang/Sema/Sema.h vendor/clang/dist/include/clang/Sema/Template.h vendor/clang/dist/include/clang/Sema/TemplateDeduction.h vendor/clang/dist/include/clang/Sema/TypoCorrection.h vendor/clang/dist/include/clang/Serialization/ASTBitCodes.h vendor/clang/dist/include/clang/Serialization/ASTReader.h vendor/clang/dist/include/clang/Serialization/ASTWriter.h vendor/clang/dist/include/clang/Serialization/GlobalModuleIndex.h vendor/clang/dist/include/clang/Serialization/Module.h vendor/clang/dist/include/clang/Serialization/ModuleManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/Checker.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/CheckerManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h vendor/clang/dist/include/clang/Tooling/ArgumentsAdjusters.h vendor/clang/dist/include/clang/Tooling/CommonOptionsParser.h vendor/clang/dist/include/clang/Tooling/CompilationDatabase.h vendor/clang/dist/include/clang/Tooling/Core/Replacement.h vendor/clang/dist/include/clang/Tooling/JSONCompilationDatabase.h vendor/clang/dist/include/clang/Tooling/Tooling.h vendor/clang/dist/include/clang/module.modulemap vendor/clang/dist/lib/ARCMigrate/ARCMT.cpp vendor/clang/dist/lib/ARCMigrate/FileRemapper.cpp vendor/clang/dist/lib/ARCMigrate/ObjCMT.cpp vendor/clang/dist/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp vendor/clang/dist/lib/ARCMigrate/TransGCAttrs.cpp vendor/clang/dist/lib/ARCMigrate/TransProperties.cpp vendor/clang/dist/lib/ARCMigrate/TransRetainReleaseDealloc.cpp vendor/clang/dist/lib/ARCMigrate/TransformActions.cpp vendor/clang/dist/lib/ARCMigrate/Transforms.cpp vendor/clang/dist/lib/AST/ASTContext.cpp vendor/clang/dist/lib/AST/ASTDiagnostic.cpp vendor/clang/dist/lib/AST/ASTDumper.cpp vendor/clang/dist/lib/AST/ASTImporter.cpp vendor/clang/dist/lib/AST/CMakeLists.txt vendor/clang/dist/lib/AST/CXXABI.h vendor/clang/dist/lib/AST/CXXInheritance.cpp vendor/clang/dist/lib/AST/Decl.cpp vendor/clang/dist/lib/AST/DeclBase.cpp vendor/clang/dist/lib/AST/DeclCXX.cpp vendor/clang/dist/lib/AST/DeclFriend.cpp vendor/clang/dist/lib/AST/DeclGroup.cpp vendor/clang/dist/lib/AST/DeclObjC.cpp vendor/clang/dist/lib/AST/DeclOpenMP.cpp vendor/clang/dist/lib/AST/DeclPrinter.cpp vendor/clang/dist/lib/AST/DeclTemplate.cpp vendor/clang/dist/lib/AST/DeclarationName.cpp vendor/clang/dist/lib/AST/Expr.cpp vendor/clang/dist/lib/AST/ExprCXX.cpp vendor/clang/dist/lib/AST/ExprClassification.cpp vendor/clang/dist/lib/AST/ExprConstant.cpp vendor/clang/dist/lib/AST/ExternalASTSource.cpp vendor/clang/dist/lib/AST/ItaniumCXXABI.cpp vendor/clang/dist/lib/AST/ItaniumMangle.cpp vendor/clang/dist/lib/AST/Mangle.cpp vendor/clang/dist/lib/AST/MicrosoftCXXABI.cpp vendor/clang/dist/lib/AST/MicrosoftMangle.cpp vendor/clang/dist/lib/AST/NSAPI.cpp vendor/clang/dist/lib/AST/NestedNameSpecifier.cpp vendor/clang/dist/lib/AST/RawCommentList.cpp vendor/clang/dist/lib/AST/RecordLayoutBuilder.cpp vendor/clang/dist/lib/AST/Stmt.cpp vendor/clang/dist/lib/AST/StmtIterator.cpp vendor/clang/dist/lib/AST/StmtPrinter.cpp vendor/clang/dist/lib/AST/StmtProfile.cpp vendor/clang/dist/lib/AST/TemplateBase.cpp vendor/clang/dist/lib/AST/TemplateName.cpp vendor/clang/dist/lib/AST/Type.cpp vendor/clang/dist/lib/AST/TypeLoc.cpp vendor/clang/dist/lib/AST/TypePrinter.cpp vendor/clang/dist/lib/AST/VTableBuilder.cpp vendor/clang/dist/lib/ASTMatchers/ASTMatchFinder.cpp vendor/clang/dist/lib/ASTMatchers/ASTMatchersInternal.cpp vendor/clang/dist/lib/ASTMatchers/Dynamic/Diagnostics.cpp vendor/clang/dist/lib/ASTMatchers/Dynamic/Marshallers.h vendor/clang/dist/lib/ASTMatchers/Dynamic/Parser.cpp vendor/clang/dist/lib/ASTMatchers/Dynamic/Registry.cpp vendor/clang/dist/lib/ASTMatchers/Dynamic/VariantValue.cpp vendor/clang/dist/lib/Analysis/AnalysisDeclContext.cpp vendor/clang/dist/lib/Analysis/BodyFarm.cpp vendor/clang/dist/lib/Analysis/CFG.cpp vendor/clang/dist/lib/Analysis/Consumed.cpp vendor/clang/dist/lib/Analysis/ThreadSafety.cpp vendor/clang/dist/lib/Analysis/ThreadSafetyCommon.cpp vendor/clang/dist/lib/Basic/Attributes.cpp vendor/clang/dist/lib/Basic/Builtins.cpp vendor/clang/dist/lib/Basic/Diagnostic.cpp vendor/clang/dist/lib/Basic/DiagnosticIDs.cpp vendor/clang/dist/lib/Basic/FileManager.cpp vendor/clang/dist/lib/Basic/IdentifierTable.cpp vendor/clang/dist/lib/Basic/Module.cpp vendor/clang/dist/lib/Basic/ObjCRuntime.cpp vendor/clang/dist/lib/Basic/OpenMPKinds.cpp vendor/clang/dist/lib/Basic/SanitizerBlacklist.cpp vendor/clang/dist/lib/Basic/SourceManager.cpp vendor/clang/dist/lib/Basic/TargetInfo.cpp vendor/clang/dist/lib/Basic/Targets.cpp vendor/clang/dist/lib/Basic/Version.cpp vendor/clang/dist/lib/Basic/VirtualFileSystem.cpp vendor/clang/dist/lib/CodeGen/ABIInfo.h vendor/clang/dist/lib/CodeGen/BackendUtil.cpp vendor/clang/dist/lib/CodeGen/CGAtomic.cpp vendor/clang/dist/lib/CodeGen/CGBlocks.cpp vendor/clang/dist/lib/CodeGen/CGBlocks.h vendor/clang/dist/lib/CodeGen/CGBuilder.h vendor/clang/dist/lib/CodeGen/CGBuiltin.cpp vendor/clang/dist/lib/CodeGen/CGCUDANV.cpp vendor/clang/dist/lib/CodeGen/CGCXX.cpp vendor/clang/dist/lib/CodeGen/CGCXXABI.cpp vendor/clang/dist/lib/CodeGen/CGCXXABI.h vendor/clang/dist/lib/CodeGen/CGCall.cpp vendor/clang/dist/lib/CodeGen/CGCall.h vendor/clang/dist/lib/CodeGen/CGClass.cpp vendor/clang/dist/lib/CodeGen/CGCleanup.cpp vendor/clang/dist/lib/CodeGen/CGCleanup.h vendor/clang/dist/lib/CodeGen/CGDebugInfo.cpp vendor/clang/dist/lib/CodeGen/CGDebugInfo.h vendor/clang/dist/lib/CodeGen/CGDecl.cpp vendor/clang/dist/lib/CodeGen/CGDeclCXX.cpp vendor/clang/dist/lib/CodeGen/CGException.cpp vendor/clang/dist/lib/CodeGen/CGExpr.cpp vendor/clang/dist/lib/CodeGen/CGExprAgg.cpp vendor/clang/dist/lib/CodeGen/CGExprCXX.cpp vendor/clang/dist/lib/CodeGen/CGExprComplex.cpp vendor/clang/dist/lib/CodeGen/CGExprConstant.cpp vendor/clang/dist/lib/CodeGen/CGExprScalar.cpp vendor/clang/dist/lib/CodeGen/CGLoopInfo.cpp vendor/clang/dist/lib/CodeGen/CGLoopInfo.h vendor/clang/dist/lib/CodeGen/CGObjC.cpp vendor/clang/dist/lib/CodeGen/CGObjCGNU.cpp vendor/clang/dist/lib/CodeGen/CGObjCMac.cpp vendor/clang/dist/lib/CodeGen/CGObjCRuntime.cpp vendor/clang/dist/lib/CodeGen/CGObjCRuntime.h vendor/clang/dist/lib/CodeGen/CGOpenCLRuntime.cpp vendor/clang/dist/lib/CodeGen/CGOpenMPRuntime.cpp vendor/clang/dist/lib/CodeGen/CGOpenMPRuntime.h vendor/clang/dist/lib/CodeGen/CGRecordLayoutBuilder.cpp vendor/clang/dist/lib/CodeGen/CGStmt.cpp vendor/clang/dist/lib/CodeGen/CGStmtOpenMP.cpp vendor/clang/dist/lib/CodeGen/CGVTT.cpp vendor/clang/dist/lib/CodeGen/CGVTables.cpp vendor/clang/dist/lib/CodeGen/CGVTables.h vendor/clang/dist/lib/CodeGen/CGValue.h vendor/clang/dist/lib/CodeGen/CodeGenABITypes.cpp vendor/clang/dist/lib/CodeGen/CodeGenAction.cpp vendor/clang/dist/lib/CodeGen/CodeGenFunction.cpp vendor/clang/dist/lib/CodeGen/CodeGenFunction.h vendor/clang/dist/lib/CodeGen/CodeGenModule.cpp vendor/clang/dist/lib/CodeGen/CodeGenModule.h vendor/clang/dist/lib/CodeGen/CodeGenPGO.cpp vendor/clang/dist/lib/CodeGen/CodeGenPGO.h vendor/clang/dist/lib/CodeGen/CodeGenTBAA.cpp vendor/clang/dist/lib/CodeGen/CodeGenTypes.cpp vendor/clang/dist/lib/CodeGen/CodeGenTypes.h vendor/clang/dist/lib/CodeGen/CoverageMappingGen.cpp vendor/clang/dist/lib/CodeGen/EHScopeStack.h vendor/clang/dist/lib/CodeGen/ItaniumCXXABI.cpp vendor/clang/dist/lib/CodeGen/MicrosoftCXXABI.cpp vendor/clang/dist/lib/CodeGen/ModuleBuilder.cpp vendor/clang/dist/lib/CodeGen/ObjectFilePCHContainerOperations.cpp vendor/clang/dist/lib/CodeGen/TargetInfo.cpp vendor/clang/dist/lib/CodeGen/TargetInfo.h vendor/clang/dist/lib/Driver/Action.cpp vendor/clang/dist/lib/Driver/Compilation.cpp vendor/clang/dist/lib/Driver/CrossWindowsToolChain.cpp vendor/clang/dist/lib/Driver/Driver.cpp vendor/clang/dist/lib/Driver/DriverOptions.cpp vendor/clang/dist/lib/Driver/Job.cpp vendor/clang/dist/lib/Driver/MSVCToolChain.cpp vendor/clang/dist/lib/Driver/MinGWToolChain.cpp vendor/clang/dist/lib/Driver/Multilib.cpp vendor/clang/dist/lib/Driver/SanitizerArgs.cpp vendor/clang/dist/lib/Driver/ToolChain.cpp vendor/clang/dist/lib/Driver/ToolChains.cpp vendor/clang/dist/lib/Driver/ToolChains.h vendor/clang/dist/lib/Driver/Tools.cpp vendor/clang/dist/lib/Driver/Tools.h vendor/clang/dist/lib/Driver/Types.cpp vendor/clang/dist/lib/Edit/Commit.cpp vendor/clang/dist/lib/Edit/EditedSource.cpp vendor/clang/dist/lib/Format/ContinuationIndenter.cpp vendor/clang/dist/lib/Format/Encoding.h vendor/clang/dist/lib/Format/Format.cpp vendor/clang/dist/lib/Format/FormatToken.cpp vendor/clang/dist/lib/Format/FormatToken.h vendor/clang/dist/lib/Format/TokenAnnotator.cpp vendor/clang/dist/lib/Format/TokenAnnotator.h vendor/clang/dist/lib/Format/UnwrappedLineFormatter.cpp vendor/clang/dist/lib/Format/UnwrappedLineParser.cpp vendor/clang/dist/lib/Format/UnwrappedLineParser.h vendor/clang/dist/lib/Format/WhitespaceManager.cpp vendor/clang/dist/lib/Format/WhitespaceManager.h vendor/clang/dist/lib/Frontend/ASTMerge.cpp vendor/clang/dist/lib/Frontend/ASTUnit.cpp vendor/clang/dist/lib/Frontend/CMakeLists.txt vendor/clang/dist/lib/Frontend/CacheTokens.cpp vendor/clang/dist/lib/Frontend/ChainedIncludesSource.cpp vendor/clang/dist/lib/Frontend/CompilerInstance.cpp vendor/clang/dist/lib/Frontend/CompilerInvocation.cpp vendor/clang/dist/lib/Frontend/CreateInvocationFromCommandLine.cpp vendor/clang/dist/lib/Frontend/DependencyFile.cpp vendor/clang/dist/lib/Frontend/DiagnosticRenderer.cpp vendor/clang/dist/lib/Frontend/FrontendAction.cpp vendor/clang/dist/lib/Frontend/FrontendActions.cpp vendor/clang/dist/lib/Frontend/HeaderIncludeGen.cpp vendor/clang/dist/lib/Frontend/InitHeaderSearch.cpp vendor/clang/dist/lib/Frontend/InitPreprocessor.cpp vendor/clang/dist/lib/Frontend/LogDiagnosticPrinter.cpp vendor/clang/dist/lib/Frontend/ModuleDependencyCollector.cpp vendor/clang/dist/lib/Frontend/MultiplexConsumer.cpp vendor/clang/dist/lib/Frontend/PCHContainerOperations.cpp vendor/clang/dist/lib/Frontend/Rewrite/FrontendActions.cpp vendor/clang/dist/lib/Frontend/Rewrite/InclusionRewriter.cpp vendor/clang/dist/lib/Frontend/Rewrite/RewriteModernObjC.cpp vendor/clang/dist/lib/Frontend/Rewrite/RewriteObjC.cpp vendor/clang/dist/lib/Frontend/SerializedDiagnosticPrinter.cpp vendor/clang/dist/lib/Frontend/TextDiagnostic.cpp vendor/clang/dist/lib/Frontend/VerifyDiagnosticConsumer.cpp vendor/clang/dist/lib/Headers/CMakeLists.txt vendor/clang/dist/lib/Headers/Intrin.h vendor/clang/dist/lib/Headers/__wmmintrin_aes.h vendor/clang/dist/lib/Headers/__wmmintrin_pclmul.h vendor/clang/dist/lib/Headers/adxintrin.h vendor/clang/dist/lib/Headers/altivec.h vendor/clang/dist/lib/Headers/ammintrin.h vendor/clang/dist/lib/Headers/arm_acle.h vendor/clang/dist/lib/Headers/avx2intrin.h vendor/clang/dist/lib/Headers/avx512bwintrin.h vendor/clang/dist/lib/Headers/avx512dqintrin.h vendor/clang/dist/lib/Headers/avx512erintrin.h vendor/clang/dist/lib/Headers/avx512fintrin.h vendor/clang/dist/lib/Headers/avx512vlbwintrin.h vendor/clang/dist/lib/Headers/avx512vldqintrin.h vendor/clang/dist/lib/Headers/avx512vlintrin.h vendor/clang/dist/lib/Headers/avxintrin.h vendor/clang/dist/lib/Headers/bmi2intrin.h vendor/clang/dist/lib/Headers/bmiintrin.h vendor/clang/dist/lib/Headers/emmintrin.h vendor/clang/dist/lib/Headers/f16cintrin.h vendor/clang/dist/lib/Headers/fma4intrin.h vendor/clang/dist/lib/Headers/fmaintrin.h vendor/clang/dist/lib/Headers/fxsrintrin.h vendor/clang/dist/lib/Headers/htmxlintrin.h vendor/clang/dist/lib/Headers/immintrin.h vendor/clang/dist/lib/Headers/lzcntintrin.h vendor/clang/dist/lib/Headers/mm3dnow.h vendor/clang/dist/lib/Headers/mmintrin.h vendor/clang/dist/lib/Headers/module.modulemap vendor/clang/dist/lib/Headers/nmmintrin.h vendor/clang/dist/lib/Headers/pmmintrin.h vendor/clang/dist/lib/Headers/popcntintrin.h vendor/clang/dist/lib/Headers/prfchwintrin.h vendor/clang/dist/lib/Headers/rdseedintrin.h vendor/clang/dist/lib/Headers/rtmintrin.h vendor/clang/dist/lib/Headers/shaintrin.h vendor/clang/dist/lib/Headers/smmintrin.h vendor/clang/dist/lib/Headers/stdint.h vendor/clang/dist/lib/Headers/tbmintrin.h vendor/clang/dist/lib/Headers/tgmath.h vendor/clang/dist/lib/Headers/tmmintrin.h vendor/clang/dist/lib/Headers/wmmintrin.h vendor/clang/dist/lib/Headers/x86intrin.h vendor/clang/dist/lib/Headers/xmmintrin.h vendor/clang/dist/lib/Headers/xopintrin.h vendor/clang/dist/lib/Index/CommentToXML.cpp vendor/clang/dist/lib/Index/SimpleFormatContext.h vendor/clang/dist/lib/Index/USRGeneration.cpp vendor/clang/dist/lib/Lex/HeaderSearch.cpp vendor/clang/dist/lib/Lex/Lexer.cpp vendor/clang/dist/lib/Lex/LiteralSupport.cpp vendor/clang/dist/lib/Lex/MacroInfo.cpp vendor/clang/dist/lib/Lex/ModuleMap.cpp vendor/clang/dist/lib/Lex/PPDirectives.cpp vendor/clang/dist/lib/Lex/PPExpressions.cpp vendor/clang/dist/lib/Lex/PPLexerChange.cpp vendor/clang/dist/lib/Lex/PPMacroExpansion.cpp vendor/clang/dist/lib/Lex/Pragma.cpp vendor/clang/dist/lib/Lex/PreprocessingRecord.cpp vendor/clang/dist/lib/Lex/Preprocessor.cpp vendor/clang/dist/lib/Lex/TokenLexer.cpp vendor/clang/dist/lib/Parse/ParseAST.cpp vendor/clang/dist/lib/Parse/ParseCXXInlineMethods.cpp vendor/clang/dist/lib/Parse/ParseDecl.cpp vendor/clang/dist/lib/Parse/ParseDeclCXX.cpp vendor/clang/dist/lib/Parse/ParseExpr.cpp vendor/clang/dist/lib/Parse/ParseExprCXX.cpp vendor/clang/dist/lib/Parse/ParseObjc.cpp vendor/clang/dist/lib/Parse/ParseOpenMP.cpp vendor/clang/dist/lib/Parse/ParsePragma.cpp vendor/clang/dist/lib/Parse/ParseStmt.cpp vendor/clang/dist/lib/Parse/ParseStmtAsm.cpp vendor/clang/dist/lib/Parse/ParseTemplate.cpp vendor/clang/dist/lib/Parse/ParseTentative.cpp vendor/clang/dist/lib/Parse/Parser.cpp vendor/clang/dist/lib/Rewrite/Rewriter.cpp vendor/clang/dist/lib/Sema/AnalysisBasedWarnings.cpp vendor/clang/dist/lib/Sema/AttributeList.cpp vendor/clang/dist/lib/Sema/CMakeLists.txt vendor/clang/dist/lib/Sema/DeclSpec.cpp vendor/clang/dist/lib/Sema/JumpDiagnostics.cpp vendor/clang/dist/lib/Sema/MultiplexExternalSemaSource.cpp vendor/clang/dist/lib/Sema/ScopeInfo.cpp vendor/clang/dist/lib/Sema/Sema.cpp vendor/clang/dist/lib/Sema/SemaAccess.cpp vendor/clang/dist/lib/Sema/SemaCUDA.cpp vendor/clang/dist/lib/Sema/SemaCXXScopeSpec.cpp vendor/clang/dist/lib/Sema/SemaCast.cpp vendor/clang/dist/lib/Sema/SemaChecking.cpp vendor/clang/dist/lib/Sema/SemaCodeComplete.cpp vendor/clang/dist/lib/Sema/SemaDecl.cpp vendor/clang/dist/lib/Sema/SemaDeclAttr.cpp vendor/clang/dist/lib/Sema/SemaDeclCXX.cpp vendor/clang/dist/lib/Sema/SemaDeclObjC.cpp vendor/clang/dist/lib/Sema/SemaExceptionSpec.cpp vendor/clang/dist/lib/Sema/SemaExpr.cpp vendor/clang/dist/lib/Sema/SemaExprCXX.cpp vendor/clang/dist/lib/Sema/SemaExprMember.cpp vendor/clang/dist/lib/Sema/SemaExprObjC.cpp vendor/clang/dist/lib/Sema/SemaFixItUtils.cpp vendor/clang/dist/lib/Sema/SemaInit.cpp vendor/clang/dist/lib/Sema/SemaLambda.cpp vendor/clang/dist/lib/Sema/SemaLookup.cpp vendor/clang/dist/lib/Sema/SemaObjCProperty.cpp vendor/clang/dist/lib/Sema/SemaOpenMP.cpp vendor/clang/dist/lib/Sema/SemaOverload.cpp vendor/clang/dist/lib/Sema/SemaPseudoObject.cpp vendor/clang/dist/lib/Sema/SemaStmt.cpp vendor/clang/dist/lib/Sema/SemaStmtAsm.cpp vendor/clang/dist/lib/Sema/SemaStmtAttr.cpp vendor/clang/dist/lib/Sema/SemaTemplate.cpp vendor/clang/dist/lib/Sema/SemaTemplateDeduction.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiate.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiateDecl.cpp vendor/clang/dist/lib/Sema/SemaTemplateVariadic.cpp vendor/clang/dist/lib/Sema/SemaType.cpp vendor/clang/dist/lib/Sema/TreeTransform.h vendor/clang/dist/lib/Serialization/ASTCommon.cpp vendor/clang/dist/lib/Serialization/ASTCommon.h vendor/clang/dist/lib/Serialization/ASTReader.cpp vendor/clang/dist/lib/Serialization/ASTReaderDecl.cpp vendor/clang/dist/lib/Serialization/ASTReaderInternals.h vendor/clang/dist/lib/Serialization/ASTReaderStmt.cpp vendor/clang/dist/lib/Serialization/ASTWriter.cpp vendor/clang/dist/lib/Serialization/ASTWriterDecl.cpp vendor/clang/dist/lib/Serialization/ASTWriterStmt.cpp vendor/clang/dist/lib/Serialization/CMakeLists.txt vendor/clang/dist/lib/Serialization/GeneratePCH.cpp vendor/clang/dist/lib/Serialization/GlobalModuleIndex.cpp vendor/clang/dist/lib/Serialization/Module.cpp vendor/clang/dist/lib/Serialization/ModuleManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CMakeLists.txt vendor/clang/dist/lib/StaticAnalyzer/Checkers/CStringChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/Checkers.td vendor/clang/dist/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/Makefile vendor/clang/dist/lib/StaticAnalyzer/Checkers/MallocChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/StreamChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/AnalysisManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/BlockCounter.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/BugReporter.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CMakeLists.txt vendor/clang/dist/lib/StaticAnalyzer/Core/CallEvent.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/Checker.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CheckerContext.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CheckerHelpers.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CheckerManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CheckerRegistry.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ConstraintManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CoreEngine.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/Environment.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExplodedGraph.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExprEngine.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExprEngineC.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/Makefile vendor/clang/dist/lib/StaticAnalyzer/Core/MemRegion.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/PathDiagnostic.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ProgramState.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/RegionStore.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SValBuilder.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SimpleConstraintManager.h vendor/clang/dist/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/Store.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SymbolManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp vendor/clang/dist/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp vendor/clang/dist/lib/StaticAnalyzer/Frontend/Makefile vendor/clang/dist/lib/Tooling/ArgumentsAdjusters.cpp vendor/clang/dist/lib/Tooling/CommonOptionsParser.cpp vendor/clang/dist/lib/Tooling/CompilationDatabase.cpp vendor/clang/dist/lib/Tooling/Core/CMakeLists.txt vendor/clang/dist/lib/Tooling/Core/Replacement.cpp vendor/clang/dist/lib/Tooling/JSONCompilationDatabase.cpp vendor/clang/dist/lib/Tooling/Tooling.cpp vendor/clang/dist/runtime/CMakeLists.txt vendor/clang/dist/runtime/compiler-rt/Makefile vendor/clang/dist/test/ARCMT/GC-no-arc-runtime.m vendor/clang/dist/test/ARCMT/checking.m vendor/clang/dist/test/ARCMT/objcmt-subscripting-literals.m vendor/clang/dist/test/ARCMT/objcmt-subscripting-literals.m.result vendor/clang/dist/test/ASTMerge/codegen-exprs.c vendor/clang/dist/test/ASTMerge/exprs.c vendor/clang/dist/test/ASTMerge/function.c vendor/clang/dist/test/Analysis/Inputs/system-header-simulator.h vendor/clang/dist/test/Analysis/MismatchedDeallocator-path-notes.cpp vendor/clang/dist/test/Analysis/NSContainers.m vendor/clang/dist/test/Analysis/NewDelete-path-notes.cpp vendor/clang/dist/test/Analysis/NoReturn.m vendor/clang/dist/test/Analysis/ObjCRetSigs.m vendor/clang/dist/test/Analysis/PR2599.m vendor/clang/dist/test/Analysis/PR2978.m vendor/clang/dist/test/Analysis/analyzer-config.c vendor/clang/dist/test/Analysis/analyzer-config.cpp vendor/clang/dist/test/Analysis/conditional-path-notes.c vendor/clang/dist/test/Analysis/cxx-for-range.cpp vendor/clang/dist/test/Analysis/dead-stores.cpp vendor/clang/dist/test/Analysis/dead-stores.m vendor/clang/dist/test/Analysis/diagnostics/deref-track-symbolic-region.c vendor/clang/dist/test/Analysis/diagnostics/report-issues-within-main-file.cpp vendor/clang/dist/test/Analysis/diagnostics/undef-value-caller.c vendor/clang/dist/test/Analysis/diagnostics/undef-value-param.c vendor/clang/dist/test/Analysis/diagnostics/undef-value-param.m vendor/clang/dist/test/Analysis/dtor.cpp vendor/clang/dist/test/Analysis/edges-new.mm vendor/clang/dist/test/Analysis/identical-expressions.cpp vendor/clang/dist/test/Analysis/initializer.cpp vendor/clang/dist/test/Analysis/inline-plist.c vendor/clang/dist/test/Analysis/inline-unique-reports.c vendor/clang/dist/test/Analysis/inline.cpp vendor/clang/dist/test/Analysis/inlining/eager-reclamation-path-notes.c vendor/clang/dist/test/Analysis/inlining/eager-reclamation-path-notes.cpp vendor/clang/dist/test/Analysis/inlining/path-notes.c vendor/clang/dist/test/Analysis/inlining/path-notes.cpp vendor/clang/dist/test/Analysis/inlining/path-notes.m vendor/clang/dist/test/Analysis/lambdas.cpp vendor/clang/dist/test/Analysis/malloc-overflow.c vendor/clang/dist/test/Analysis/malloc-plist.c vendor/clang/dist/test/Analysis/malloc.c vendor/clang/dist/test/Analysis/method-call-path-notes.cpp vendor/clang/dist/test/Analysis/model-file.cpp vendor/clang/dist/test/Analysis/null-deref-path-notes.m vendor/clang/dist/test/Analysis/nullptr.cpp vendor/clang/dist/test/Analysis/objc-arc.m vendor/clang/dist/test/Analysis/plist-macros.cpp vendor/clang/dist/test/Analysis/plist-output-alternate.m vendor/clang/dist/test/Analysis/plist-output.m vendor/clang/dist/test/Analysis/ptr-arith.c vendor/clang/dist/test/Analysis/rdar-6540084.m vendor/clang/dist/test/Analysis/reinterpret-cast.cpp vendor/clang/dist/test/Analysis/retain-release-gc-only.m vendor/clang/dist/test/Analysis/retain-release-path-notes-gc.m vendor/clang/dist/test/Analysis/retain-release-path-notes.m vendor/clang/dist/test/Analysis/retain-release-region-store.m vendor/clang/dist/test/Analysis/superclass.m vendor/clang/dist/test/Analysis/temp-obj-dtors-cfg-output.cpp vendor/clang/dist/test/Analysis/temporaries.cpp vendor/clang/dist/test/Analysis/unix-fns.c vendor/clang/dist/test/CMakeLists.txt vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.argdep/p4.cpp vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/p2.cpp vendor/clang/dist/test/CXX/basic/basic.scope/basic.scope.hiding/p2.cpp vendor/clang/dist/test/CXX/class.access/class.friend/p1.cpp vendor/clang/dist/test/CXX/class.access/class.friend/p11.cpp vendor/clang/dist/test/CXX/class.access/class.friend/p2-cxx03.cpp vendor/clang/dist/test/CXX/class/class.friend/p1.cpp vendor/clang/dist/test/CXX/class/class.nest/p1.cpp vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p1.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p5.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p6.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.stc/p2.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3-1y.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3-generic-lambda-1y.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p7-1y.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab/p3.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-var.cpp vendor/clang/dist/test/CXX/drs/dr0xx.cpp vendor/clang/dist/test/CXX/drs/dr13xx.cpp vendor/clang/dist/test/CXX/drs/dr15xx.cpp vendor/clang/dist/test/CXX/drs/dr1xx.cpp vendor/clang/dist/test/CXX/drs/dr3xx.cpp vendor/clang/dist/test/CXX/drs/dr4xx.cpp vendor/clang/dist/test/CXX/drs/dr5xx.cpp vendor/clang/dist/test/CXX/except/except.spec/p3.cpp vendor/clang/dist/test/CXX/except/except.spec/p4.cpp vendor/clang/dist/test/CXX/except/except.spec/p5-pointers.cpp vendor/clang/dist/test/CXX/expr/expr.const/p2-0x.cpp vendor/clang/dist/test/CXX/expr/expr.const/p5-0x.cpp vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/default-arguments.cpp vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/templates.cpp vendor/clang/dist/test/CXX/expr/expr.unary/expr.unary.op/p4.cpp vendor/clang/dist/test/CXX/lex/lex.literal/lex.ext/p12.cpp vendor/clang/dist/test/CXX/lex/lex.literal/lex.ext/p2.cpp vendor/clang/dist/test/CXX/lex/lex.literal/lex.ext/p5.cpp vendor/clang/dist/test/CXX/lex/lex.literal/lex.ext/p7.cpp vendor/clang/dist/test/CXX/over/over.oper/over.literal/p2.cpp vendor/clang/dist/test/CXX/over/over.over/p2-resolve-single-template-id.cpp vendor/clang/dist/test/CXX/temp/temp.arg/temp.arg.nontype/p1.cpp vendor/clang/dist/test/CXX/temp/temp.decls/temp.class/temp.static/p1-inst.cpp vendor/clang/dist/test/CXX/temp/temp.decls/temp.class/temp.static/p1.cpp vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.arg.explicit/p3.cpp vendor/clang/dist/test/CXX/temp/temp.param/p3.cpp vendor/clang/dist/test/CXX/temp/temp.res/temp.local/p3.cpp vendor/clang/dist/test/CXX/temp/temp.res/temp.local/p6.cpp vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p1.cpp vendor/clang/dist/test/CodeCompletion/macros-in-modules.c vendor/clang/dist/test/CodeCompletion/macros-in-modules.m vendor/clang/dist/test/CodeCompletion/ordinary-name.cpp vendor/clang/dist/test/CodeGen/2003-12-14-ExternInlineSupport.c vendor/clang/dist/test/CodeGen/2006-01-13-Includes.c vendor/clang/dist/test/CodeGen/2007-05-11-str-const.c vendor/clang/dist/test/CodeGen/2009-01-21-InvalidIterator.c vendor/clang/dist/test/CodeGen/2009-03-13-dbg.c vendor/clang/dist/test/CodeGen/2009-04-23-dbg.c vendor/clang/dist/test/CodeGen/2009-07-31-DbgDeclare.c vendor/clang/dist/test/CodeGen/2010-01-14-FnType-DebugInfo.c vendor/clang/dist/test/CodeGen/2010-01-18-Inlined-Debug.c vendor/clang/dist/test/CodeGen/2010-02-10-PointerName.c vendor/clang/dist/test/CodeGen/2010-02-15-DbgStaticVar.c vendor/clang/dist/test/CodeGen/2010-02-16-DbgScopes.c vendor/clang/dist/test/CodeGen/2010-03-5-LexicalScope.c vendor/clang/dist/test/CodeGen/2010-07-08-DeclDebugLineNo.c vendor/clang/dist/test/CodeGen/2010-08-10-DbgConstant.c vendor/clang/dist/test/CodeGen/3dnow-builtins.c vendor/clang/dist/test/CodeGen/Inputs/stdio.h vendor/clang/dist/test/CodeGen/aarch64-poly64.c vendor/clang/dist/test/CodeGen/aarch64-varargs.c vendor/clang/dist/test/CodeGen/adc-builtins.c vendor/clang/dist/test/CodeGen/alias.c vendor/clang/dist/test/CodeGen/align-global-large.c vendor/clang/dist/test/CodeGen/alignment.c vendor/clang/dist/test/CodeGen/arm-abi-vector.c vendor/clang/dist/test/CodeGen/arm-arguments.c vendor/clang/dist/test/CodeGen/arm-neon-misc.c vendor/clang/dist/test/CodeGen/arm-target-features.c vendor/clang/dist/test/CodeGen/arm-vector-align.c vendor/clang/dist/test/CodeGen/arm64-abi-vector.c vendor/clang/dist/test/CodeGen/arm64-arguments.c vendor/clang/dist/test/CodeGen/arm64-be-hfa-vararg.c vendor/clang/dist/test/CodeGen/arm_acle.c vendor/clang/dist/test/CodeGen/atomic-arm64.c vendor/clang/dist/test/CodeGen/atomic-ops-libcall.c vendor/clang/dist/test/CodeGen/atomic-ops.c vendor/clang/dist/test/CodeGen/atomic_ops.c vendor/clang/dist/test/CodeGen/attr-disable-tail-calls.c vendor/clang/dist/test/CodeGen/attr-minsize.cpp vendor/clang/dist/test/CodeGen/attr-nodebug.c vendor/clang/dist/test/CodeGen/attr-noinline.c vendor/clang/dist/test/CodeGen/attributes.c vendor/clang/dist/test/CodeGen/available-externally-hidden.cpp vendor/clang/dist/test/CodeGen/avx-builtins.c vendor/clang/dist/test/CodeGen/avx-cmp-builtins.c vendor/clang/dist/test/CodeGen/avx-shuffle-builtins.c vendor/clang/dist/test/CodeGen/avx2-builtins.c vendor/clang/dist/test/CodeGen/avx512bw-builtins.c vendor/clang/dist/test/CodeGen/avx512cdintrin.c vendor/clang/dist/test/CodeGen/avx512dq-builtins.c vendor/clang/dist/test/CodeGen/avx512er-builtins.c vendor/clang/dist/test/CodeGen/avx512f-builtins.c vendor/clang/dist/test/CodeGen/avx512vl-builtins.c vendor/clang/dist/test/CodeGen/avx512vlbw-builtins.c vendor/clang/dist/test/CodeGen/avx512vldq-builtins.c vendor/clang/dist/test/CodeGen/bitfield-2.c vendor/clang/dist/test/CodeGen/block-byref-aggr.c vendor/clang/dist/test/CodeGen/block-with-perdefinedexpr.c vendor/clang/dist/test/CodeGen/bmi2-builtins.c vendor/clang/dist/test/CodeGen/builtin-cpu-supports.c vendor/clang/dist/test/CodeGen/builtins-arm.c vendor/clang/dist/test/CodeGen/builtins-arm64.c vendor/clang/dist/test/CodeGen/builtins-nvptx.c vendor/clang/dist/test/CodeGen/builtins-overflow.c vendor/clang/dist/test/CodeGen/builtins-ppc-altivec.c vendor/clang/dist/test/CodeGen/builtins-ppc-crypto.c vendor/clang/dist/test/CodeGen/builtins-ppc-p7.c vendor/clang/dist/test/CodeGen/builtins-ppc-p8vector.c vendor/clang/dist/test/CodeGen/builtins-ppc.c vendor/clang/dist/test/CodeGen/builtins-x86.c vendor/clang/dist/test/CodeGen/c-strings.c vendor/clang/dist/test/CodeGen/c11atomics-ios.c vendor/clang/dist/test/CodeGen/c11atomics.c vendor/clang/dist/test/CodeGen/captured-statements.c vendor/clang/dist/test/CodeGen/catch-undef-behavior.c vendor/clang/dist/test/CodeGen/cleanup-destslot-simple.c vendor/clang/dist/test/CodeGen/complex-convert.c vendor/clang/dist/test/CodeGen/complex-math.c vendor/clang/dist/test/CodeGen/debug-info-257-args.c vendor/clang/dist/test/CodeGen/debug-info-args.c vendor/clang/dist/test/CodeGen/debug-info-block-decl.c vendor/clang/dist/test/CodeGen/debug-info-block-out-return.c vendor/clang/dist/test/CodeGen/debug-info-block.c vendor/clang/dist/test/CodeGen/debug-info-compilation-dir.c vendor/clang/dist/test/CodeGen/debug-info-crash.c vendor/clang/dist/test/CodeGen/debug-info-enum.c vendor/clang/dist/test/CodeGen/debug-info-gline-tables-only.c vendor/clang/dist/test/CodeGen/debug-info-gline-tables-only2.c vendor/clang/dist/test/CodeGen/debug-info-line.c vendor/clang/dist/test/CodeGen/debug-info-line2.c vendor/clang/dist/test/CodeGen/debug-info-line3.c vendor/clang/dist/test/CodeGen/debug-info-member.c vendor/clang/dist/test/CodeGen/debug-info-packed-struct.c vendor/clang/dist/test/CodeGen/debug-info-same-line.c vendor/clang/dist/test/CodeGen/debug-info-scope-file.c vendor/clang/dist/test/CodeGen/debug-info-scope.c vendor/clang/dist/test/CodeGen/debug-info-static.c vendor/clang/dist/test/CodeGen/debug-info-typedef.c vendor/clang/dist/test/CodeGen/debug-info-vector.c vendor/clang/dist/test/CodeGen/debug-info-vla.c vendor/clang/dist/test/CodeGen/debug-info.c vendor/clang/dist/test/CodeGen/debug-line-1.c vendor/clang/dist/test/CodeGen/dwarf-version.c vendor/clang/dist/test/CodeGen/enum2.c vendor/clang/dist/test/CodeGen/exceptions-seh-finally.c vendor/clang/dist/test/CodeGen/exceptions-seh-leave.c vendor/clang/dist/test/CodeGen/exceptions-seh.c vendor/clang/dist/test/CodeGen/exprs.c vendor/clang/dist/test/CodeGen/ext-vector-member-alignment.c vendor/clang/dist/test/CodeGen/f16c-builtins.c vendor/clang/dist/test/CodeGen/fma-builtins.c vendor/clang/dist/test/CodeGen/fma4-builtins.c vendor/clang/dist/test/CodeGen/fp-contract-pragma.cpp vendor/clang/dist/test/CodeGen/fsgsbase-builtins.c vendor/clang/dist/test/CodeGen/function-attributes.c vendor/clang/dist/test/CodeGen/global-blocks-lines.c vendor/clang/dist/test/CodeGen/hidden-alias-to-internal-function.c vendor/clang/dist/test/CodeGen/inline.c vendor/clang/dist/test/CodeGen/le32-arguments.c vendor/clang/dist/test/CodeGen/libcalls-fno-builtin.c vendor/clang/dist/test/CodeGen/lifetime-debuginfo-1.c vendor/clang/dist/test/CodeGen/lifetime-debuginfo-2.c vendor/clang/dist/test/CodeGen/lineno-dbginfo.c vendor/clang/dist/test/CodeGen/linetable-endscope.c vendor/clang/dist/test/CodeGen/link-bitcode-file.c vendor/clang/dist/test/CodeGen/long_double_fp128.cpp vendor/clang/dist/test/CodeGen/lzcnt-builtins.c vendor/clang/dist/test/CodeGen/mips-unsupported-nan.c vendor/clang/dist/test/CodeGen/mips-varargs.c vendor/clang/dist/test/CodeGen/mmx-builtins.c vendor/clang/dist/test/CodeGen/ms-declspecs.c vendor/clang/dist/test/CodeGen/ms-inline-asm.c vendor/clang/dist/test/CodeGen/ms_abi.c vendor/clang/dist/test/CodeGen/ms_struct-pack.c vendor/clang/dist/test/CodeGen/mult-alt-x86.c vendor/clang/dist/test/CodeGen/named_reg_global.c vendor/clang/dist/test/CodeGen/nvptx-abi.c vendor/clang/dist/test/CodeGen/nvptx-inlineasm-ptx.c vendor/clang/dist/test/CodeGen/object-size.c vendor/clang/dist/test/CodeGen/overloadable.c vendor/clang/dist/test/CodeGen/override-layout.c vendor/clang/dist/test/CodeGen/packed-arrays.c vendor/clang/dist/test/CodeGen/packed-structure.c vendor/clang/dist/test/CodeGen/pclmul-builtins.c vendor/clang/dist/test/CodeGen/popcnt-builtins.c vendor/clang/dist/test/CodeGen/ppc-varargs-struct.c vendor/clang/dist/test/CodeGen/ppc64-align-struct.c vendor/clang/dist/test/CodeGen/ppc64-complex-parms.c vendor/clang/dist/test/CodeGen/ppc64-struct-onefloat.c vendor/clang/dist/test/CodeGen/ppc64-varargs-complex.c vendor/clang/dist/test/CodeGen/ppc64le-varargs-complex.c vendor/clang/dist/test/CodeGen/pragma-comment.c vendor/clang/dist/test/CodeGen/pragma-weak.c vendor/clang/dist/test/CodeGen/prefetchw-builtins.c vendor/clang/dist/test/CodeGen/redefine_extname.c vendor/clang/dist/test/CodeGen/rtm-builtins.c vendor/clang/dist/test/CodeGen/sanitize-address-field-padding.cpp vendor/clang/dist/test/CodeGen/sanitize-trap.c vendor/clang/dist/test/CodeGen/sha-builtins.c vendor/clang/dist/test/CodeGen/sparcv9-abi.c vendor/clang/dist/test/CodeGen/sse-builtins-dbg.c vendor/clang/dist/test/CodeGen/sse-builtins.c vendor/clang/dist/test/CodeGen/sse.c vendor/clang/dist/test/CodeGen/sse4a-builtins.c vendor/clang/dist/test/CodeGen/string-literal-short-wstring.c vendor/clang/dist/test/CodeGen/string-literal.c vendor/clang/dist/test/CodeGen/target-data.c vendor/clang/dist/test/CodeGen/tbaa-class.cpp vendor/clang/dist/test/CodeGen/tbaa.cpp vendor/clang/dist/test/CodeGen/tbm-builtins.c vendor/clang/dist/test/CodeGen/tls-model.c vendor/clang/dist/test/CodeGen/ubsan-type-blacklist.cpp vendor/clang/dist/test/CodeGen/vector-alignment.c vendor/clang/dist/test/CodeGen/vector.c vendor/clang/dist/test/CodeGen/vectorcall.c vendor/clang/dist/test/CodeGen/vld_dup.c vendor/clang/dist/test/CodeGen/x86_64-arguments.c vendor/clang/dist/test/CodeGen/xcore-abi.c vendor/clang/dist/test/CodeGen/xop-builtins.c vendor/clang/dist/test/CodeGenCUDA/address-spaces.cu vendor/clang/dist/test/CodeGenCUDA/filter-decl.cu vendor/clang/dist/test/CodeGenCUDA/ptx-kernels.cu vendor/clang/dist/test/CodeGenCXX/2006-11-20-GlobalSymbols.cpp vendor/clang/dist/test/CodeGenCXX/2007-01-02-UnboundedArray.cpp vendor/clang/dist/test/CodeGenCXX/2009-03-17-dbg.cpp vendor/clang/dist/test/CodeGenCXX/2009-04-23-bool2.cpp vendor/clang/dist/test/CodeGenCXX/2009-06-16-DebugInfoCrash.cpp vendor/clang/dist/test/CodeGenCXX/2010-03-09-AnonAggregate.cpp vendor/clang/dist/test/CodeGenCXX/2010-05-10-Var-DbgInfo.cpp vendor/clang/dist/test/CodeGenCXX/2010-05-12-PtrToMember-Dbg.cpp vendor/clang/dist/test/CodeGenCXX/2010-06-21-LocalVarDbg.cpp vendor/clang/dist/test/CodeGenCXX/2010-06-22-BitfieldInit.cpp vendor/clang/dist/test/CodeGenCXX/2010-06-22-ZeroBitfield.cpp vendor/clang/dist/test/CodeGenCXX/2010-07-23-DeclLoc.cpp vendor/clang/dist/test/CodeGenCXX/PR20038.cpp vendor/clang/dist/test/CodeGenCXX/arm.cpp vendor/clang/dist/test/CodeGenCXX/attr.cpp vendor/clang/dist/test/CodeGenCXX/catch-undef-behavior.cpp vendor/clang/dist/test/CodeGenCXX/cfi-cast.cpp vendor/clang/dist/test/CodeGenCXX/cfi-ms-rtti.cpp vendor/clang/dist/test/CodeGenCXX/cfi-nvcall.cpp vendor/clang/dist/test/CodeGenCXX/cfi-vcall.cpp vendor/clang/dist/test/CodeGenCXX/const-init-cxx11.cpp vendor/clang/dist/test/CodeGenCXX/constructor-alias.cpp vendor/clang/dist/test/CodeGenCXX/constructor-destructor-return-this.cpp vendor/clang/dist/test/CodeGenCXX/cp-blocks-linetables.cpp vendor/clang/dist/test/CodeGenCXX/crash.cpp vendor/clang/dist/test/CodeGenCXX/ctor-dtor-alias.cpp vendor/clang/dist/test/CodeGenCXX/ctor-globalopt.cpp vendor/clang/dist/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp vendor/clang/dist/test/CodeGenCXX/cxx11-initializer-array-new.cpp vendor/clang/dist/test/CodeGenCXX/cxx11-thread-local-reference.cpp vendor/clang/dist/test/CodeGenCXX/cxx11-thread-local.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-access.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-anon-union-vars.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-artificial-arg.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-blocks.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-char16.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-class-nolimit.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-context.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-cxx0x.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-cxx1y.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-decl-nested.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-determinism.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-dup-fwd-decl.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-enum-class.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-enum.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-flex-member.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-function-context.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-fwd-ref.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-gline-tables-only.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-global-ctor-dtor.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-global.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-globalinit.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-indirect-field-decl.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-large-constant.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-limited.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-line-if.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-line.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-method-nodebug.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-method.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-method2.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-namespace.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-nullptr.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-ptr-to-member-function.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-qualifiers.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-rvalue-ref.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-scope.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-static-fns.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-template-fwd.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-template-limit.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-template-member.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-template-partial-specialization.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-template-quals.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-template-recursive.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-thunk.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-union-template.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-union.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-use-after-free.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-uuid.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-varargs.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-vtable-optzn.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-wchar.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-windows-dtor.cpp vendor/clang/dist/test/CodeGenCXX/debug-info.cpp vendor/clang/dist/test/CodeGenCXX/debug-lambda-expressions.cpp vendor/clang/dist/test/CodeGenCXX/debug-lambda-this.cpp vendor/clang/dist/test/CodeGenCXX/delete-two-arg.cpp vendor/clang/dist/test/CodeGenCXX/destructor-debug-info.cpp vendor/clang/dist/test/CodeGenCXX/destructors.cpp vendor/clang/dist/test/CodeGenCXX/dllexport-alias.cpp vendor/clang/dist/test/CodeGenCXX/dllexport-members.cpp vendor/clang/dist/test/CodeGenCXX/dllexport.cpp vendor/clang/dist/test/CodeGenCXX/dllimport-rtti.cpp vendor/clang/dist/test/CodeGenCXX/dllimport.cpp vendor/clang/dist/test/CodeGenCXX/duplicate-mangled-name.cpp vendor/clang/dist/test/CodeGenCXX/enable_if.cpp vendor/clang/dist/test/CodeGenCXX/exceptions-seh-filter-captures.cpp vendor/clang/dist/test/CodeGenCXX/exceptions-seh.cpp vendor/clang/dist/test/CodeGenCXX/exceptions.cpp vendor/clang/dist/test/CodeGenCXX/extern-c.cpp vendor/clang/dist/test/CodeGenCXX/globalinit-loc.cpp vendor/clang/dist/test/CodeGenCXX/homogeneous-aggregates.cpp vendor/clang/dist/test/CodeGenCXX/init-invariant.cpp vendor/clang/dist/test/CodeGenCXX/inline-dllexport-member.cpp vendor/clang/dist/test/CodeGenCXX/inline-functions.cpp vendor/clang/dist/test/CodeGenCXX/lambda-expressions.cpp vendor/clang/dist/test/CodeGenCXX/linetable-cleanup.cpp vendor/clang/dist/test/CodeGenCXX/linetable-eh.cpp vendor/clang/dist/test/CodeGenCXX/linetable-fnbegin.cpp vendor/clang/dist/test/CodeGenCXX/linetable-virtual-variadic.cpp vendor/clang/dist/test/CodeGenCXX/lpad-linetable.cpp vendor/clang/dist/test/CodeGenCXX/mangle-literal-suffix.cpp vendor/clang/dist/test/CodeGenCXX/mangle-ms-cxx11.cpp vendor/clang/dist/test/CodeGenCXX/mangle-ms-cxx14.cpp vendor/clang/dist/test/CodeGenCXX/mangle-ms-vector-types.cpp vendor/clang/dist/test/CodeGenCXX/mangle-ms.cpp vendor/clang/dist/test/CodeGenCXX/mangle-variadic-templates.cpp vendor/clang/dist/test/CodeGenCXX/member-alignment.cpp vendor/clang/dist/test/CodeGenCXX/member-function-pointers.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-arg-order.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-array-cookies.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-eh-catch.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-member-pointers.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-structors-alias.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-structors.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-try-throw.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-vftables.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-virtual-inheritance-vtordisps.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-compatibility.cpp vendor/clang/dist/test/CodeGenCXX/ms-integer-static-data-members.cpp vendor/clang/dist/test/CodeGenCXX/new-alias.cpp vendor/clang/dist/test/CodeGenCXX/new.cpp vendor/clang/dist/test/CodeGenCXX/partial-destruction.cpp vendor/clang/dist/test/CodeGenCXX/pointers-to-data-members.cpp vendor/clang/dist/test/CodeGenCXX/pragma-loop-safety.cpp vendor/clang/dist/test/CodeGenCXX/pragma-loop.cpp vendor/clang/dist/test/CodeGenCXX/pragma-unroll.cpp vendor/clang/dist/test/CodeGenCXX/redefine_extname.cpp vendor/clang/dist/test/CodeGenCXX/sanitize-dtor-callback.cpp vendor/clang/dist/test/CodeGenCXX/scoped-enums-debug-info.cpp vendor/clang/dist/test/CodeGenCXX/static-init.cpp vendor/clang/dist/test/CodeGenCXX/thunks.cpp vendor/clang/dist/test/CodeGenCXX/tls-init-funcs.cpp vendor/clang/dist/test/CodeGenCXX/typeid-cxx11.cpp vendor/clang/dist/test/CodeGenCXX/uncopyable-args.cpp vendor/clang/dist/test/CodeGenCXX/vararg-non-pod-ms-compat.cpp vendor/clang/dist/test/CodeGenCXX/virtual-base-ctor.cpp vendor/clang/dist/test/CodeGenCXX/virtual-destructor-calls.cpp vendor/clang/dist/test/CodeGenCXX/visibility.cpp vendor/clang/dist/test/CodeGenCXX/vtable-available-externally.cpp vendor/clang/dist/test/CodeGenCXX/vtable-holder-self-reference.cpp vendor/clang/dist/test/CodeGenCXX/vtable-key-function-ios.cpp vendor/clang/dist/test/CodeGenCXX/vtable-linkage.cpp vendor/clang/dist/test/CodeGenCXX/warn-padded-packed.cpp vendor/clang/dist/test/CodeGenCXX/x86_64-arguments.cpp vendor/clang/dist/test/CodeGenObjC/2009-01-21-invalid-debug-info.m vendor/clang/dist/test/CodeGenObjC/2010-02-09-DbgSelf.m vendor/clang/dist/test/CodeGenObjC/2010-02-15-Dbg-MethodStart.m vendor/clang/dist/test/CodeGenObjC/2010-02-23-DbgInheritance.m vendor/clang/dist/test/CodeGenObjC/arc-blocks.m vendor/clang/dist/test/CodeGenObjC/arc-captured-32bit-block-var-layout-2.m vendor/clang/dist/test/CodeGenObjC/arc-captured-32bit-block-var-layout.m vendor/clang/dist/test/CodeGenObjC/arc-captured-block-var-inlined-layout.m vendor/clang/dist/test/CodeGenObjC/arc-captured-block-var-layout.m vendor/clang/dist/test/CodeGenObjC/arc-foreach.m vendor/clang/dist/test/CodeGenObjC/arc-ivar-layout.m vendor/clang/dist/test/CodeGenObjC/arc-linetable-autorelease.m vendor/clang/dist/test/CodeGenObjC/arc-linetable.m vendor/clang/dist/test/CodeGenObjC/arc-literals.m vendor/clang/dist/test/CodeGenObjC/arc-loadweakretained-release.m vendor/clang/dist/test/CodeGenObjC/arc-precise-lifetime.m vendor/clang/dist/test/CodeGenObjC/arc.m vendor/clang/dist/test/CodeGenObjC/block-byref-debuginfo.m vendor/clang/dist/test/CodeGenObjC/block-var-layout.m vendor/clang/dist/test/CodeGenObjC/blocks-ivar-debug.m vendor/clang/dist/test/CodeGenObjC/blocks.m vendor/clang/dist/test/CodeGenObjC/catch-lexical-block.m vendor/clang/dist/test/CodeGenObjC/debug-info-block-captured-self.m vendor/clang/dist/test/CodeGenObjC/debug-info-block-helper.m vendor/clang/dist/test/CodeGenObjC/debug-info-block-line.m vendor/clang/dist/test/CodeGenObjC/debug-info-block-type.m vendor/clang/dist/test/CodeGenObjC/debug-info-blocks.m vendor/clang/dist/test/CodeGenObjC/debug-info-class-extension.m vendor/clang/dist/test/CodeGenObjC/debug-info-class-extension2.m vendor/clang/dist/test/CodeGenObjC/debug-info-class-extension3.m vendor/clang/dist/test/CodeGenObjC/debug-info-crash-2.m vendor/clang/dist/test/CodeGenObjC/debug-info-crash.m vendor/clang/dist/test/CodeGenObjC/debug-info-default-synth-ivar.m vendor/clang/dist/test/CodeGenObjC/debug-info-getter-name.m vendor/clang/dist/test/CodeGenObjC/debug-info-id-with-protocol.m vendor/clang/dist/test/CodeGenObjC/debug-info-impl.m vendor/clang/dist/test/CodeGenObjC/debug-info-instancetype.m vendor/clang/dist/test/CodeGenObjC/debug-info-ivars-extension.m vendor/clang/dist/test/CodeGenObjC/debug-info-ivars-indirect.m vendor/clang/dist/test/CodeGenObjC/debug-info-ivars-private.m vendor/clang/dist/test/CodeGenObjC/debug-info-ivars.m vendor/clang/dist/test/CodeGenObjC/debug-info-lifetime-crash.m vendor/clang/dist/test/CodeGenObjC/debug-info-linkagename.m vendor/clang/dist/test/CodeGenObjC/debug-info-nested-blocks.m vendor/clang/dist/test/CodeGenObjC/debug-info-property-accessors.m vendor/clang/dist/test/CodeGenObjC/debug-info-property.m vendor/clang/dist/test/CodeGenObjC/debug-info-property2.m vendor/clang/dist/test/CodeGenObjC/debug-info-property3.m vendor/clang/dist/test/CodeGenObjC/debug-info-property4.m vendor/clang/dist/test/CodeGenObjC/debug-info-property5.m vendor/clang/dist/test/CodeGenObjC/debug-info-pubtypes.m vendor/clang/dist/test/CodeGenObjC/debug-info-selector.m vendor/clang/dist/test/CodeGenObjC/debug-info-self.m vendor/clang/dist/test/CodeGenObjC/debug-info-static-var.m vendor/clang/dist/test/CodeGenObjC/debug-info-synthesis.m vendor/clang/dist/test/CodeGenObjC/debug-info-variadic-method.m vendor/clang/dist/test/CodeGenObjC/debug-property-synth.m vendor/clang/dist/test/CodeGenObjC/debuginfo-properties.m vendor/clang/dist/test/CodeGenObjC/encode-test.m vendor/clang/dist/test/CodeGenObjC/exceptions.m vendor/clang/dist/test/CodeGenObjC/ivar-base-as-invariant-load.m vendor/clang/dist/test/CodeGenObjC/ivar-invariant.m vendor/clang/dist/test/CodeGenObjC/ivar-layout-64.m vendor/clang/dist/test/CodeGenObjC/layout-bitfield-crash.m vendor/clang/dist/test/CodeGenObjC/local-static-block.m vendor/clang/dist/test/CodeGenObjC/mrr-captured-block-var-inlined-layout.m vendor/clang/dist/test/CodeGenObjC/objc-fixed-enum.m vendor/clang/dist/test/CodeGenObjC/objc-literal-tests.m vendor/clang/dist/test/CodeGenObjC/objc2-weak-ivar-debug.m vendor/clang/dist/test/CodeGenObjC/optimize-ivar-offset-load.m vendor/clang/dist/test/CodeGenObjC/parameterized_classes.m vendor/clang/dist/test/CodeGenObjC/property-dbg.m vendor/clang/dist/test/CodeGenObjC/selector-ref-invariance.m vendor/clang/dist/test/CodeGenObjC/stret-1.m vendor/clang/dist/test/CodeGenObjCXX/arc-cxx11-init-list.mm vendor/clang/dist/test/CodeGenObjCXX/arc-exceptions.mm vendor/clang/dist/test/CodeGenObjCXX/arc-new-delete.mm vendor/clang/dist/test/CodeGenObjCXX/arc.mm vendor/clang/dist/test/CodeGenObjCXX/block-var-layout.mm vendor/clang/dist/test/CodeGenObjCXX/blocks.mm vendor/clang/dist/test/CodeGenObjCXX/debug-info-cyclic.mm vendor/clang/dist/test/CodeGenObjCXX/debug-info-line.mm vendor/clang/dist/test/CodeGenObjCXX/debug-info.mm vendor/clang/dist/test/CodeGenObjCXX/designated-initializers.mm vendor/clang/dist/test/CodeGenObjCXX/literals.mm vendor/clang/dist/test/CodeGenObjCXX/nested-ehlocation.mm vendor/clang/dist/test/CodeGenObjCXX/pr14474-gline-tables-only.mm vendor/clang/dist/test/CodeGenObjCXX/property-lvalue-capture.mm vendor/clang/dist/test/CodeGenObjCXX/property-object-conditional-exp.mm vendor/clang/dist/test/CodeGenObjCXX/property-object-reference-2.mm vendor/clang/dist/test/CodeGenObjCXX/property-objects.mm vendor/clang/dist/test/CodeGenObjCXX/selector-expr-lvalue.mm vendor/clang/dist/test/CodeGenOpenCL/address-spaces.cl vendor/clang/dist/test/Coverage/codegen-next.m vendor/clang/dist/test/Coverage/codegen.c vendor/clang/dist/test/Coverage/targets.c vendor/clang/dist/test/CoverageMapping/ir.c vendor/clang/dist/test/CoverageMapping/unused_names.c vendor/clang/dist/test/Driver/Xlinker-args.c vendor/clang/dist/test/Driver/aarch64-cpus.c vendor/clang/dist/test/Driver/aarch64-fixed-x18.c vendor/clang/dist/test/Driver/apple-kext-mkernel.c vendor/clang/dist/test/Driver/arm-alignment.c vendor/clang/dist/test/Driver/arm-cortex-cpus.c vendor/clang/dist/test/Driver/arm-fixed-r9.c vendor/clang/dist/test/Driver/arm-ias-Wa.s vendor/clang/dist/test/Driver/biarch.c vendor/clang/dist/test/Driver/cl-eh.cpp vendor/clang/dist/test/Driver/cl-fallback.c vendor/clang/dist/test/Driver/cl-inputs.c vendor/clang/dist/test/Driver/cl-link-at-file.c vendor/clang/dist/test/Driver/cl-link.c vendor/clang/dist/test/Driver/cl-options.c vendor/clang/dist/test/Driver/cl-outputs.c vendor/clang/dist/test/Driver/cl-runtime-flags.c vendor/clang/dist/test/Driver/cl-x86-flags.c vendor/clang/dist/test/Driver/cl-zc.cpp vendor/clang/dist/test/Driver/cl.c vendor/clang/dist/test/Driver/clang-g-opts.c vendor/clang/dist/test/Driver/clang-translation.c vendor/clang/dist/test/Driver/clang_f_opts.c vendor/clang/dist/test/Driver/coverage_no_integrated_as.c vendor/clang/dist/test/Driver/crash-report-modules.m vendor/clang/dist/test/Driver/crash-report.c vendor/clang/dist/test/Driver/cuda-options.cu vendor/clang/dist/test/Driver/cuda-simple.cu vendor/clang/dist/test/Driver/darwin-debug-flags.c vendor/clang/dist/test/Driver/darwin-ld.c vendor/clang/dist/test/Driver/darwin-sdkroot.c vendor/clang/dist/test/Driver/darwin-version.c vendor/clang/dist/test/Driver/debug-options-as.c vendor/clang/dist/test/Driver/debug-options.c vendor/clang/dist/test/Driver/dragonfly.c vendor/clang/dist/test/Driver/dyld-prefix.c vendor/clang/dist/test/Driver/env.c vendor/clang/dist/test/Driver/freebsd-mips-as.c vendor/clang/dist/test/Driver/freebsd.c vendor/clang/dist/test/Driver/fsanitize-blacklist.c vendor/clang/dist/test/Driver/fsanitize-coverage.c vendor/clang/dist/test/Driver/fsanitize.c vendor/clang/dist/test/Driver/gold-lto.c vendor/clang/dist/test/Driver/hexagon-toolchain-elf.c vendor/clang/dist/test/Driver/implicit-function-as-error.c vendor/clang/dist/test/Driver/instrprof-ld.c vendor/clang/dist/test/Driver/integrated-as.s vendor/clang/dist/test/Driver/ios-simulator-arcruntime.c vendor/clang/dist/test/Driver/linux-as.c vendor/clang/dist/test/Driver/linux-header-search.cpp vendor/clang/dist/test/Driver/linux-ld.c vendor/clang/dist/test/Driver/lto.c vendor/clang/dist/test/Driver/mips-abi.c vendor/clang/dist/test/Driver/mips-as.c vendor/clang/dist/test/Driver/modules.m vendor/clang/dist/test/Driver/nacl-direct.c vendor/clang/dist/test/Driver/netbsd.c vendor/clang/dist/test/Driver/no-canonical-prefixes.c vendor/clang/dist/test/Driver/nodefaultlib.c vendor/clang/dist/test/Driver/nostdlib.c vendor/clang/dist/test/Driver/openbsd.c vendor/clang/dist/test/Driver/pic.c vendor/clang/dist/test/Driver/ppc-features.cpp vendor/clang/dist/test/Driver/rewrite-legacy-objc.m vendor/clang/dist/test/Driver/rewrite-objc.m vendor/clang/dist/test/Driver/rtti-options.cpp vendor/clang/dist/test/Driver/sanitizer-ld.c vendor/clang/dist/test/Driver/save-temps.c vendor/clang/dist/test/Driver/split-debug.c vendor/clang/dist/test/Driver/stack-protector.c vendor/clang/dist/test/Driver/stackrealign.c vendor/clang/dist/test/Driver/thread-model.c vendor/clang/dist/test/Driver/windows-cross.c vendor/clang/dist/test/Driver/working-directory.c vendor/clang/dist/test/FixIt/atomic-property.m vendor/clang/dist/test/FixIt/fixit-vexing-parse.cpp vendor/clang/dist/test/FixIt/fixit.cpp vendor/clang/dist/test/FixIt/format.m vendor/clang/dist/test/Format/basic.cpp vendor/clang/dist/test/Format/cursor.cpp vendor/clang/dist/test/Format/disable-format.cpp vendor/clang/dist/test/Format/incomplete.cpp vendor/clang/dist/test/Format/language-detection.cpp vendor/clang/dist/test/Format/line-ranges.cpp vendor/clang/dist/test/Format/ranges.cpp vendor/clang/dist/test/Format/style-on-command-line.cpp vendor/clang/dist/test/Frontend/Inputs/profile-sample-use-loc-tracking.prof vendor/clang/dist/test/Frontend/darwin-version.c vendor/clang/dist/test/Frontend/dependency-gen.c vendor/clang/dist/test/Frontend/optimization-remark-line-directive.c vendor/clang/dist/test/Frontend/optimization-remark.c vendor/clang/dist/test/Frontend/print-header-includes.c vendor/clang/dist/test/Frontend/source-col-map.c vendor/clang/dist/test/Headers/ms-intrin.cpp vendor/clang/dist/test/Headers/x86intrin.c vendor/clang/dist/test/Index/TestClassForwardDecl.m vendor/clang/dist/test/Index/annotate-comments-objc.m vendor/clang/dist/test/Index/annotate-comments.cpp vendor/clang/dist/test/Index/annotate-module.m vendor/clang/dist/test/Index/attributes-cuda.cu vendor/clang/dist/test/Index/c-index-api-loadTU-test.m vendor/clang/dist/test/Index/c-index-getCursor-test.m vendor/clang/dist/test/Index/c-index-pch.c vendor/clang/dist/test/Index/c-index-redecls.c vendor/clang/dist/test/Index/cindex-from-source.m vendor/clang/dist/test/Index/comment-custom-block-command.cpp vendor/clang/dist/test/Index/comment-objc-parameterized-classes.m vendor/clang/dist/test/Index/comment-to-html-xml-conversion.cpp vendor/clang/dist/test/Index/complete-kvc.m vendor/clang/dist/test/Index/complete-method-decls.m vendor/clang/dist/test/Index/complete-modules.m vendor/clang/dist/test/Index/complete-parameterized-classes.m vendor/clang/dist/test/Index/complete-pch.m vendor/clang/dist/test/Index/complete-preamble.cpp vendor/clang/dist/test/Index/complete-property-flags.m vendor/clang/dist/test/Index/crash-recovery-modules.m vendor/clang/dist/test/Index/fix-its.m vendor/clang/dist/test/Index/get-cursor.m vendor/clang/dist/test/Index/index-file.cpp vendor/clang/dist/test/Index/index-module.m vendor/clang/dist/test/Index/index-pch-with-module.m vendor/clang/dist/test/Index/index-templates.cpp vendor/clang/dist/test/Index/parse-all-comments.c vendor/clang/dist/test/Index/pch-depending-on-deleted-module.c vendor/clang/dist/test/Index/print-mangled-name.cpp vendor/clang/dist/test/Index/print-type.cpp vendor/clang/dist/test/Index/print-type.m vendor/clang/dist/test/Index/skip-parsed-bodies/compile_commands.json vendor/clang/dist/test/Index/warning-flags.c vendor/clang/dist/test/Layout/itanium-union-bitfield.cpp vendor/clang/dist/test/Layout/ms-x86-alias-avoidance-padding.cpp vendor/clang/dist/test/Layout/ms-x86-bitfields-vbases.cpp vendor/clang/dist/test/Layout/ms-x86-empty-layout.c vendor/clang/dist/test/Layout/ms-x86-empty-nonvirtual-bases.cpp vendor/clang/dist/test/Layout/ms-x86-empty-virtual-base.cpp vendor/clang/dist/test/Layout/ms-x86-pack-and-align.cpp vendor/clang/dist/test/Lexer/cxx-features.cpp vendor/clang/dist/test/Lexer/cxx0x_keyword_as_cxx98.cpp vendor/clang/dist/test/Lexer/has_feature_cxx0x.cpp vendor/clang/dist/test/Lexer/has_feature_rtti.cpp vendor/clang/dist/test/Lexer/hexfloat.cpp vendor/clang/dist/test/Lexer/keywords_test.c vendor/clang/dist/test/Lexer/keywords_test.cpp vendor/clang/dist/test/Lexer/ms-extensions.c vendor/clang/dist/test/Lexer/ms-extensions.cpp vendor/clang/dist/test/Lexer/msdos-cpm-eof.c vendor/clang/dist/test/Lexer/unicode.c vendor/clang/dist/test/Misc/ast-dump-attr.cpp vendor/clang/dist/test/Misc/ast-dump-color.cpp vendor/clang/dist/test/Misc/ast-dump-invalid.cpp vendor/clang/dist/test/Misc/ast-print-pragmas.cpp vendor/clang/dist/test/Misc/backend-optimization-failure.cpp vendor/clang/dist/test/Misc/caret-diags-macros.c vendor/clang/dist/test/Misc/diag-aka-types.cpp vendor/clang/dist/test/Misc/diag-presumed.c vendor/clang/dist/test/Misc/permissions.cpp vendor/clang/dist/test/Misc/serialized-diags.c vendor/clang/dist/test/Misc/warning-flags-enabled.c vendor/clang/dist/test/Misc/warning-flags.c vendor/clang/dist/test/Modules/Inputs/System/usr/include/module.map vendor/clang/dist/test/Modules/Inputs/builtin_sub.h vendor/clang/dist/test/Modules/Inputs/declare-use/module.map vendor/clang/dist/test/Modules/Inputs/macro-reexport/module.modulemap vendor/clang/dist/test/Modules/Inputs/module.map vendor/clang/dist/test/Modules/Inputs/stress1/merge00.h vendor/clang/dist/test/Modules/Inputs/stress1/module.modulemap vendor/clang/dist/test/Modules/Inputs/submodules-merge-defs/defs.h vendor/clang/dist/test/Modules/Inputs/template-default-args/a.h vendor/clang/dist/test/Modules/Inputs/template-default-args/c.h vendor/clang/dist/test/Modules/Inputs/template-default-args/module.modulemap vendor/clang/dist/test/Modules/Inputs/templates-right.h vendor/clang/dist/test/Modules/Inputs/templates-top.h vendor/clang/dist/test/Modules/Inputs/using-decl-a.h vendor/clang/dist/test/Modules/Inputs/using-decl-b.h vendor/clang/dist/test/Modules/Inputs/va_list/module.modulemap vendor/clang/dist/test/Modules/auto-module-import.m vendor/clang/dist/test/Modules/builtins.m vendor/clang/dist/test/Modules/cxx-irgen.cpp vendor/clang/dist/test/Modules/cxx-templates.cpp vendor/clang/dist/test/Modules/debug-info-moduleimport.m vendor/clang/dist/test/Modules/decldef.m vendor/clang/dist/test/Modules/dependency-gen-pch.m vendor/clang/dist/test/Modules/dependency-gen.m vendor/clang/dist/test/Modules/dependency-gen.modulemap vendor/clang/dist/test/Modules/empty.modulemap vendor/clang/dist/test/Modules/explicit-build.cpp vendor/clang/dist/test/Modules/extern_c.cpp vendor/clang/dist/test/Modules/fatal-module-loader-error.m vendor/clang/dist/test/Modules/linkage-merge.cpp vendor/clang/dist/test/Modules/macros.c vendor/clang/dist/test/Modules/malformed.cpp vendor/clang/dist/test/Modules/merge-enumerators.cpp vendor/clang/dist/test/Modules/merge-target-features.cpp vendor/clang/dist/test/Modules/merge-using-decls.cpp vendor/clang/dist/test/Modules/module-private.cpp vendor/clang/dist/test/Modules/no-implicit-builds.cpp vendor/clang/dist/test/Modules/relative-dep-gen.cpp vendor/clang/dist/test/Modules/stress1.cpp vendor/clang/dist/test/Modules/submodule-visibility-cycles.cpp vendor/clang/dist/test/Modules/submodule-visibility.cpp vendor/clang/dist/test/Modules/submodules-merge-defs.cpp vendor/clang/dist/test/Modules/system_headers.m vendor/clang/dist/test/Modules/template-default-args.cpp vendor/clang/dist/test/Modules/templates.mm vendor/clang/dist/test/Modules/using-decl.cpp vendor/clang/dist/test/OpenMP/atomic_capture_codegen.cpp vendor/clang/dist/test/OpenMP/atomic_codegen.cpp vendor/clang/dist/test/OpenMP/atomic_messages.cpp vendor/clang/dist/test/OpenMP/atomic_read_codegen.c vendor/clang/dist/test/OpenMP/atomic_update_codegen.cpp vendor/clang/dist/test/OpenMP/atomic_write_codegen.c vendor/clang/dist/test/OpenMP/cancel_ast_print.cpp vendor/clang/dist/test/OpenMP/cancel_codegen.cpp vendor/clang/dist/test/OpenMP/cancellation_point_codegen.cpp vendor/clang/dist/test/OpenMP/critical_ast_print.cpp vendor/clang/dist/test/OpenMP/critical_codegen.cpp vendor/clang/dist/test/OpenMP/critical_messages.cpp vendor/clang/dist/test/OpenMP/flush_codegen.cpp vendor/clang/dist/test/OpenMP/for_ast_print.cpp vendor/clang/dist/test/OpenMP/for_codegen.cpp vendor/clang/dist/test/OpenMP/for_collapse_messages.cpp vendor/clang/dist/test/OpenMP/for_firstprivate_codegen.cpp vendor/clang/dist/test/OpenMP/for_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/for_lastprivate_codegen.cpp vendor/clang/dist/test/OpenMP/for_lastprivate_messages.cpp vendor/clang/dist/test/OpenMP/for_loop_messages.cpp vendor/clang/dist/test/OpenMP/for_misc_messages.c vendor/clang/dist/test/OpenMP/for_private_codegen.cpp vendor/clang/dist/test/OpenMP/for_private_messages.cpp vendor/clang/dist/test/OpenMP/for_reduction_codegen.cpp vendor/clang/dist/test/OpenMP/for_reduction_messages.cpp vendor/clang/dist/test/OpenMP/for_schedule_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_aligned_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_ast_print.cpp vendor/clang/dist/test/OpenMP/for_simd_codegen.cpp vendor/clang/dist/test/OpenMP/for_simd_collapse_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_lastprivate_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_linear_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_loop_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_misc_messages.c vendor/clang/dist/test/OpenMP/for_simd_private_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_reduction_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_safelen_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_schedule_messages.cpp vendor/clang/dist/test/OpenMP/linking.c vendor/clang/dist/test/OpenMP/master_codegen.cpp vendor/clang/dist/test/OpenMP/nesting_of_regions.cpp vendor/clang/dist/test/OpenMP/ordered_ast_print.cpp vendor/clang/dist/test/OpenMP/ordered_codegen.cpp vendor/clang/dist/test/OpenMP/ordered_messages.cpp vendor/clang/dist/test/OpenMP/parallel_ast_print.cpp vendor/clang/dist/test/OpenMP/parallel_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_copyin_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_firstprivate_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_ast_print.cpp vendor/clang/dist/test/OpenMP/parallel_for_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_for_collapse_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_if_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_lastprivate_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_loop_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_misc_messages.c vendor/clang/dist/test/OpenMP/parallel_for_num_threads_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_private_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_reduction_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_schedule_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_aligned_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_ast_print.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_collapse_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_if_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_lastprivate_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_linear_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_loop_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_misc_messages.c vendor/clang/dist/test/OpenMP/parallel_for_simd_num_threads_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_private_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_reduction_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_safelen_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_schedule_messages.cpp vendor/clang/dist/test/OpenMP/parallel_if_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_if_messages.cpp vendor/clang/dist/test/OpenMP/parallel_num_threads_messages.cpp vendor/clang/dist/test/OpenMP/parallel_private_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_private_messages.cpp vendor/clang/dist/test/OpenMP/parallel_reduction_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_reduction_messages.cpp vendor/clang/dist/test/OpenMP/parallel_sections_ast_print.cpp vendor/clang/dist/test/OpenMP/parallel_sections_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_sections_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/parallel_sections_if_messages.cpp vendor/clang/dist/test/OpenMP/parallel_sections_lastprivate_messages.cpp vendor/clang/dist/test/OpenMP/parallel_sections_num_threads_messages.cpp vendor/clang/dist/test/OpenMP/parallel_sections_private_messages.cpp vendor/clang/dist/test/OpenMP/parallel_sections_reduction_messages.cpp vendor/clang/dist/test/OpenMP/sections_codegen.cpp vendor/clang/dist/test/OpenMP/sections_firstprivate_codegen.cpp vendor/clang/dist/test/OpenMP/sections_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/sections_lastprivate_codegen.cpp vendor/clang/dist/test/OpenMP/sections_lastprivate_messages.cpp vendor/clang/dist/test/OpenMP/sections_private_codegen.cpp vendor/clang/dist/test/OpenMP/sections_private_messages.cpp vendor/clang/dist/test/OpenMP/sections_reduction_codegen.cpp vendor/clang/dist/test/OpenMP/sections_reduction_messages.cpp vendor/clang/dist/test/OpenMP/simd_aligned_messages.cpp vendor/clang/dist/test/OpenMP/simd_ast_print.cpp vendor/clang/dist/test/OpenMP/simd_codegen.cpp vendor/clang/dist/test/OpenMP/simd_collapse_messages.cpp vendor/clang/dist/test/OpenMP/simd_lastprivate_messages.cpp vendor/clang/dist/test/OpenMP/simd_linear_messages.cpp vendor/clang/dist/test/OpenMP/simd_loop_messages.cpp vendor/clang/dist/test/OpenMP/simd_metadata.c vendor/clang/dist/test/OpenMP/simd_misc_messages.c vendor/clang/dist/test/OpenMP/simd_private_messages.cpp vendor/clang/dist/test/OpenMP/simd_reduction_messages.cpp vendor/clang/dist/test/OpenMP/simd_safelen_messages.cpp vendor/clang/dist/test/OpenMP/single_codegen.cpp vendor/clang/dist/test/OpenMP/single_firstprivate_codegen.cpp vendor/clang/dist/test/OpenMP/single_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/single_private_codegen.cpp vendor/clang/dist/test/OpenMP/single_private_messages.cpp vendor/clang/dist/test/OpenMP/target_ast_print.cpp vendor/clang/dist/test/OpenMP/target_if_messages.cpp vendor/clang/dist/test/OpenMP/task_ast_print.cpp vendor/clang/dist/test/OpenMP/task_codegen.cpp vendor/clang/dist/test/OpenMP/task_depend_messages.cpp vendor/clang/dist/test/OpenMP/task_firstprivate_codegen.cpp vendor/clang/dist/test/OpenMP/task_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/task_if_codegen.cpp vendor/clang/dist/test/OpenMP/task_if_messages.cpp vendor/clang/dist/test/OpenMP/task_messages.cpp vendor/clang/dist/test/OpenMP/task_private_codegen.cpp vendor/clang/dist/test/OpenMP/task_private_messages.cpp vendor/clang/dist/test/OpenMP/taskgroup_codegen.cpp vendor/clang/dist/test/OpenMP/teams_ast_print.cpp vendor/clang/dist/test/OpenMP/teams_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/teams_private_messages.cpp vendor/clang/dist/test/OpenMP/teams_reduction_messages.cpp vendor/clang/dist/test/OpenMP/threadprivate_codegen.cpp vendor/clang/dist/test/OpenMP/threadprivate_messages.cpp vendor/clang/dist/test/PCH/Inputs/va_arg.h vendor/clang/dist/test/PCH/chain-categories.m vendor/clang/dist/test/PCH/chain-openmp-threadprivate.cpp vendor/clang/dist/test/PCH/check-deserializations.cpp vendor/clang/dist/test/PCH/cxx1y-default-initializer.cpp vendor/clang/dist/test/PCH/debug-info-limited-struct.c vendor/clang/dist/test/PCH/ocl_types.h vendor/clang/dist/test/PCH/pch-dir.c vendor/clang/dist/test/PCH/pending-ids.m vendor/clang/dist/test/PCH/va_arg.c vendor/clang/dist/test/PCH/va_arg.cpp vendor/clang/dist/test/PCH/va_arg.h vendor/clang/dist/test/Parser/MicrosoftExtensions.c vendor/clang/dist/test/Parser/MicrosoftExtensions.cpp vendor/clang/dist/test/Parser/arm-windows-calling-convention-handling.c vendor/clang/dist/test/Parser/colon-colon-parentheses.cpp vendor/clang/dist/test/Parser/cxx-casting.cpp vendor/clang/dist/test/Parser/cxx-concept-declaration.cpp vendor/clang/dist/test/Parser/cxx-reference.cpp vendor/clang/dist/test/Parser/cxx-template-argument.cpp vendor/clang/dist/test/Parser/cxx-typeof.cpp vendor/clang/dist/test/Parser/cxx0x-decl.cpp vendor/clang/dist/test/Parser/cxx0x-lambda-expressions.cpp vendor/clang/dist/test/Parser/cxx11-user-defined-literals.cpp vendor/clang/dist/test/Parser/objc-init.m vendor/clang/dist/test/Parser/objcxx-lambda-expressions-neg.mm vendor/clang/dist/test/Parser/objcxx0x-lambda-expressions.mm vendor/clang/dist/test/Parser/opencl-atomics-cl20.cl vendor/clang/dist/test/Parser/opencl-storage-class.cl vendor/clang/dist/test/Parser/pragma-loop-safety.cpp vendor/clang/dist/test/Parser/pragma-loop.cpp vendor/clang/dist/test/Parser/pragma-unroll.cpp vendor/clang/dist/test/Preprocessor/Inputs/microsoft-header-search/a/findme.h vendor/clang/dist/test/Preprocessor/Inputs/microsoft-header-search/a/include2.h vendor/clang/dist/test/Preprocessor/Inputs/microsoft-header-search/findme.h vendor/clang/dist/test/Preprocessor/Inputs/microsoft-header-search/include1.h vendor/clang/dist/test/Preprocessor/_Pragma.c vendor/clang/dist/test/Preprocessor/aarch64-target-features.c vendor/clang/dist/test/Preprocessor/arm-acle-6.4.c vendor/clang/dist/test/Preprocessor/arm-acle-6.5.c vendor/clang/dist/test/Preprocessor/arm-target-features.c vendor/clang/dist/test/Preprocessor/init.c vendor/clang/dist/test/Preprocessor/macro-multiline.c vendor/clang/dist/test/Preprocessor/macro-reserved-cxx11.cpp vendor/clang/dist/test/Preprocessor/macro-reserved.cpp vendor/clang/dist/test/Preprocessor/macro_arg_slocentry_merge.c vendor/clang/dist/test/Preprocessor/macro_paste_msextensions.c vendor/clang/dist/test/Preprocessor/microsoft-header-search.c vendor/clang/dist/test/Preprocessor/pragma_microsoft.c vendor/clang/dist/test/Preprocessor/predefined-arch-macros.c vendor/clang/dist/test/Preprocessor/predefined-macros.c vendor/clang/dist/test/Preprocessor/traditional-cpp.c vendor/clang/dist/test/Preprocessor/x86_target_features.c vendor/clang/dist/test/Profile/c-captured.c vendor/clang/dist/test/Profile/c-general.c vendor/clang/dist/test/Profile/c-linkage-available_externally.c vendor/clang/dist/test/Profile/c-linkage.c vendor/clang/dist/test/Profile/c-unreachable-after-switch.c vendor/clang/dist/test/Profile/cxx-class.cpp vendor/clang/dist/test/Profile/cxx-implicit.cpp vendor/clang/dist/test/Profile/cxx-lambda.cpp vendor/clang/dist/test/Profile/cxx-linkage.cpp vendor/clang/dist/test/Profile/cxx-rangefor.cpp vendor/clang/dist/test/Profile/cxx-templates.cpp vendor/clang/dist/test/Profile/cxx-throws.cpp vendor/clang/dist/test/Profile/cxx-virtual-destructor-calls.cpp vendor/clang/dist/test/Profile/gcc-flag-compatibility.c vendor/clang/dist/test/Profile/objc-general.m vendor/clang/dist/test/Rewriter/line-generation-test.m vendor/clang/dist/test/Sema/128bitint.c vendor/clang/dist/test/Sema/MicrosoftCompatibility.c vendor/clang/dist/test/Sema/address_spaces.c vendor/clang/dist/test/Sema/asm.c vendor/clang/dist/test/Sema/atomic-compare.c vendor/clang/dist/test/Sema/atomic-ops.c vendor/clang/dist/test/Sema/attr-availability-app-extensions.c vendor/clang/dist/test/Sema/attr-capabilities.c vendor/clang/dist/test/Sema/attr-coldhot.c vendor/clang/dist/test/Sema/attr-flag-enum.c vendor/clang/dist/test/Sema/attr-mode-vector-types.c vendor/clang/dist/test/Sema/attr-ownership.c vendor/clang/dist/test/Sema/bitfield.c vendor/clang/dist/test/Sema/bool-compare.c vendor/clang/dist/test/Sema/builtin-longjmp.c vendor/clang/dist/test/Sema/builtins-arm.c vendor/clang/dist/test/Sema/const-eval.c vendor/clang/dist/test/Sema/dllexport.c vendor/clang/dist/test/Sema/dllimport.c vendor/clang/dist/test/Sema/enable_if.c vendor/clang/dist/test/Sema/enum.c vendor/clang/dist/test/Sema/exprs.c vendor/clang/dist/test/Sema/ext_vector_casts.c vendor/clang/dist/test/Sema/fn-ptr-as-fn-prototype.c vendor/clang/dist/test/Sema/function-redecl.c vendor/clang/dist/test/Sema/generic-selection.c vendor/clang/dist/test/Sema/inline-asm-validate-x86.c vendor/clang/dist/test/Sema/inline.c vendor/clang/dist/test/Sema/ms_bitfield_layout.c vendor/clang/dist/test/Sema/ms_class_layout.cpp vendor/clang/dist/test/Sema/non-null-warning.c vendor/clang/dist/test/Sema/nonnull.c vendor/clang/dist/test/Sema/nullability.c vendor/clang/dist/test/Sema/overloadable.c vendor/clang/dist/test/Sema/parentheses.c vendor/clang/dist/test/Sema/pointer-addition.c vendor/clang/dist/test/Sema/short-enums.c vendor/clang/dist/test/Sema/struct-packed-align.c vendor/clang/dist/test/Sema/switch-1.c vendor/clang/dist/test/Sema/thread-specifier.c vendor/clang/dist/test/Sema/unused-expr.c vendor/clang/dist/test/Sema/varargs-x86-64.c vendor/clang/dist/test/Sema/vector-cast.c vendor/clang/dist/test/Sema/warn-absolute-value.c vendor/clang/dist/test/Sema/warn-overlap.c vendor/clang/dist/test/Sema/warn-sizeof-arrayarg.c vendor/clang/dist/test/Sema/warn-thread-safety-analysis.c vendor/clang/dist/test/Sema/zvector.c vendor/clang/dist/test/SemaCUDA/asm-constraints-mixed.cu vendor/clang/dist/test/SemaCUDA/function-target-hd.cu vendor/clang/dist/test/SemaCUDA/implicit-intrinsic.cu vendor/clang/dist/test/SemaCXX/MicrosoftCompatibility-cxx98.cpp vendor/clang/dist/test/SemaCXX/MicrosoftCompatibility.cpp vendor/clang/dist/test/SemaCXX/MicrosoftExtensions.cpp vendor/clang/dist/test/SemaCXX/abstract.cpp vendor/clang/dist/test/SemaCXX/addr-of-overloaded-function.cpp vendor/clang/dist/test/SemaCXX/alias-template.cpp vendor/clang/dist/test/SemaCXX/ast-print.cpp vendor/clang/dist/test/SemaCXX/attr-deprecated.cpp vendor/clang/dist/test/SemaCXX/attr-no-sanitize-address.cpp vendor/clang/dist/test/SemaCXX/attr-no-sanitize-memory.cpp vendor/clang/dist/test/SemaCXX/attr-no-sanitize-thread.cpp vendor/clang/dist/test/SemaCXX/attr-print.cpp vendor/clang/dist/test/SemaCXX/auto-cxx0x.cpp vendor/clang/dist/test/SemaCXX/bitfield-layout.cpp vendor/clang/dist/test/SemaCXX/calling-conv-compat.cpp vendor/clang/dist/test/SemaCXX/condition.cpp vendor/clang/dist/test/SemaCXX/const-cast.cpp vendor/clang/dist/test/SemaCXX/constant-expression-cxx11.cpp vendor/clang/dist/test/SemaCXX/constant-expression-cxx1y.cpp vendor/clang/dist/test/SemaCXX/constant-expression.cpp vendor/clang/dist/test/SemaCXX/constexpr-printing.cpp vendor/clang/dist/test/SemaCXX/constructor-initializer.cpp vendor/clang/dist/test/SemaCXX/conversion-function.cpp vendor/clang/dist/test/SemaCXX/convert-to-bool.cpp vendor/clang/dist/test/SemaCXX/converting-constructor.cpp vendor/clang/dist/test/SemaCXX/copy-initialization.cpp vendor/clang/dist/test/SemaCXX/crashes.cpp vendor/clang/dist/test/SemaCXX/cxx0x-initializer-aggregates.cpp vendor/clang/dist/test/SemaCXX/cxx0x-initializer-stdinitializerlist.cpp vendor/clang/dist/test/SemaCXX/cxx0x-return-init-list.cpp vendor/clang/dist/test/SemaCXX/cxx11-ast-print.cpp vendor/clang/dist/test/SemaCXX/cxx11-user-defined-literals.cpp vendor/clang/dist/test/SemaCXX/cxx1y-generic-lambdas.cpp vendor/clang/dist/test/SemaCXX/cxx1y-init-captures.cpp vendor/clang/dist/test/SemaCXX/cxx1y-variable-templates_in_class.cpp vendor/clang/dist/test/SemaCXX/cxx1y-variable-templates_top_level.cpp vendor/clang/dist/test/SemaCXX/cxx98-compat.cpp vendor/clang/dist/test/SemaCXX/decl-expr-ambiguity.cpp vendor/clang/dist/test/SemaCXX/decl-microsoft-call-conv.cpp vendor/clang/dist/test/SemaCXX/decltype-crash.cpp vendor/clang/dist/test/SemaCXX/default-assignment-operator.cpp vendor/clang/dist/test/SemaCXX/default1.cpp vendor/clang/dist/test/SemaCXX/deprecated.cpp vendor/clang/dist/test/SemaCXX/destructor.cpp vendor/clang/dist/test/SemaCXX/direct-initializer.cpp vendor/clang/dist/test/SemaCXX/dllexport.cpp vendor/clang/dist/test/SemaCXX/dllimport.cpp vendor/clang/dist/test/SemaCXX/enable_if.cpp vendor/clang/dist/test/SemaCXX/enum.cpp vendor/clang/dist/test/SemaCXX/err_typecheck_assign_const.cpp vendor/clang/dist/test/SemaCXX/expressions.cpp vendor/clang/dist/test/SemaCXX/gnu-flags.cpp vendor/clang/dist/test/SemaCXX/init-priority-attr.cpp vendor/clang/dist/test/SemaCXX/invalid-member-expr.cpp vendor/clang/dist/test/SemaCXX/libstdcxx_explicit_init_list_hack.cpp vendor/clang/dist/test/SemaCXX/literal-operators.cpp vendor/clang/dist/test/SemaCXX/member-expr.cpp vendor/clang/dist/test/SemaCXX/member-pointer.cpp vendor/clang/dist/test/SemaCXX/ms-interface.cpp vendor/clang/dist/test/SemaCXX/ms-novtable.cpp vendor/clang/dist/test/SemaCXX/ms_integer_suffix.cpp vendor/clang/dist/test/SemaCXX/ms_struct.cpp vendor/clang/dist/test/SemaCXX/ms_wide_bitfield.cpp vendor/clang/dist/test/SemaCXX/namespace-alias.cpp vendor/clang/dist/test/SemaCXX/namespace.cpp vendor/clang/dist/test/SemaCXX/new-array-size-conv.cpp vendor/clang/dist/test/SemaCXX/nullability.cpp vendor/clang/dist/test/SemaCXX/offsetof.cpp vendor/clang/dist/test/SemaCXX/overload-call-copycon.cpp vendor/clang/dist/test/SemaCXX/overload-call.cpp vendor/clang/dist/test/SemaCXX/overloaded-builtin-operators.cpp vendor/clang/dist/test/SemaCXX/pragma-init_seg.cpp vendor/clang/dist/test/SemaCXX/pragma-vtordisp.cpp vendor/clang/dist/test/SemaCXX/printf-block.cpp vendor/clang/dist/test/SemaCXX/rval-references.cpp vendor/clang/dist/test/SemaCXX/sourceranges.cpp vendor/clang/dist/test/SemaCXX/type-convert-construct.cpp vendor/clang/dist/test/SemaCXX/type-traits.cpp vendor/clang/dist/test/SemaCXX/typo-correction-delayed.cpp vendor/clang/dist/test/SemaCXX/typo-correction.cpp vendor/clang/dist/test/SemaCXX/undefined-internal.cpp vendor/clang/dist/test/SemaCXX/underlying_type.cpp vendor/clang/dist/test/SemaCXX/unknown-type-name.cpp vendor/clang/dist/test/SemaCXX/using-decl-1.cpp vendor/clang/dist/test/SemaCXX/vector-casts.cpp vendor/clang/dist/test/SemaCXX/vector-no-lax.cpp vendor/clang/dist/test/SemaCXX/vector.cpp vendor/clang/dist/test/SemaCXX/warn-logical-not-compare.cpp vendor/clang/dist/test/SemaCXX/warn-pure-virtual-call-from-ctor-dtor.cpp vendor/clang/dist/test/SemaCXX/warn-sign-conversion.cpp vendor/clang/dist/test/SemaCXX/warn-thread-safety-analysis.cpp vendor/clang/dist/test/SemaCXX/warn-unused-local-typedef-serialize.cpp vendor/clang/dist/test/SemaCXX/writable-strings-deprecated.cpp vendor/clang/dist/test/SemaObjC/access-property-getter.m vendor/clang/dist/test/SemaObjC/arc-no-runtime.m vendor/clang/dist/test/SemaObjC/arc-property-decl-attrs.m vendor/clang/dist/test/SemaObjC/arc-property-lifetime.m vendor/clang/dist/test/SemaObjC/arc-system-header.m vendor/clang/dist/test/SemaObjC/arc-unavailable-for-weakref.m vendor/clang/dist/test/SemaObjC/arc-unavailable-system-function.m vendor/clang/dist/test/SemaObjC/arc.m vendor/clang/dist/test/SemaObjC/atomoic-property-synnthesis-rules.m vendor/clang/dist/test/SemaObjC/attr-availability-1.m vendor/clang/dist/test/SemaObjC/attr-availability.m vendor/clang/dist/test/SemaObjC/attr-designated-init.m vendor/clang/dist/test/SemaObjC/attr-objc-gc.m vendor/clang/dist/test/SemaObjC/blocks.m vendor/clang/dist/test/SemaObjC/class-bitfield.m vendor/clang/dist/test/SemaObjC/class-extension-dup-methods.m vendor/clang/dist/test/SemaObjC/format-arg-attribute.m vendor/clang/dist/test/SemaObjC/gc-attributes.m vendor/clang/dist/test/SemaObjC/kindof.m vendor/clang/dist/test/SemaObjC/no-gc-weak-test.m vendor/clang/dist/test/SemaObjC/nullable-weak-property.m vendor/clang/dist/test/SemaObjC/objc-array-literal.m vendor/clang/dist/test/SemaObjC/objc-boxed-expressions-nsvalue.m vendor/clang/dist/test/SemaObjC/objc-dictionary-literal.m vendor/clang/dist/test/SemaObjC/objc-literal-nsnumber.m vendor/clang/dist/test/SemaObjC/opaque-is-access-warn.m vendor/clang/dist/test/SemaObjC/parameterized_classes.m vendor/clang/dist/test/SemaObjC/property-3.m vendor/clang/dist/test/SemaObjC/property-in-class-extension-1.m vendor/clang/dist/test/SemaObjC/property-in-class-extension.m vendor/clang/dist/test/SemaObjC/synthesized-ivar.m vendor/clang/dist/test/SemaObjC/typo-correction.m vendor/clang/dist/test/SemaObjCXX/Inputs/nullability-consistency-2.h vendor/clang/dist/test/SemaObjCXX/Inputs/nullability-consistency-6.h vendor/clang/dist/test/SemaObjCXX/arc-system-header.mm vendor/clang/dist/test/SemaObjCXX/arc-type-conversion.mm vendor/clang/dist/test/SemaObjCXX/crash.mm vendor/clang/dist/test/SemaObjCXX/delay-parsing-func-tryblock.mm vendor/clang/dist/test/SemaObjCXX/exceptions.mm vendor/clang/dist/test/SemaObjCXX/message.mm vendor/clang/dist/test/SemaObjCXX/objc-boxed-expressions-nsvalue.mm vendor/clang/dist/test/SemaObjCXX/property-invalid-type.mm vendor/clang/dist/test/SemaObjCXX/property-type-mismatch.mm vendor/clang/dist/test/SemaObjCXX/vararg-non-pod.mm vendor/clang/dist/test/SemaOpenCL/cond.cl vendor/clang/dist/test/SemaOpenCL/storageclass.cl vendor/clang/dist/test/SemaTemplate/alias-templates.cpp vendor/clang/dist/test/SemaTemplate/class-template-ctor-initializer.cpp vendor/clang/dist/test/SemaTemplate/class-template-decl.cpp vendor/clang/dist/test/SemaTemplate/class-template-id.cpp vendor/clang/dist/test/SemaTemplate/constructor-template.cpp vendor/clang/dist/test/SemaTemplate/deduction.cpp vendor/clang/dist/test/SemaTemplate/default-arguments.cpp vendor/clang/dist/test/SemaTemplate/default-expr-arguments.cpp vendor/clang/dist/test/SemaTemplate/derived.cpp vendor/clang/dist/test/SemaTemplate/fun-template-def.cpp vendor/clang/dist/test/SemaTemplate/instantiate-exception-spec-cxx11.cpp vendor/clang/dist/test/SemaTemplate/instantiate-expr-3.cpp vendor/clang/dist/test/SemaTemplate/instantiate-function-2.cpp vendor/clang/dist/test/SemaTemplate/instantiate-local-class.cpp vendor/clang/dist/test/SemaTemplate/instantiate-static-var.cpp vendor/clang/dist/test/SemaTemplate/instantiate-using-decl.cpp vendor/clang/dist/test/SemaTemplate/instantiate-var-template.cpp vendor/clang/dist/test/SemaTemplate/ms-lookup-template-base-classes.cpp vendor/clang/dist/test/SemaTemplate/nested-name-spec-template.cpp vendor/clang/dist/test/SemaTemplate/overload-candidates.cpp vendor/clang/dist/test/SemaTemplate/partial-spec-instantiate.cpp vendor/clang/dist/test/SemaTemplate/qualified-names-diag.cpp vendor/clang/dist/test/SemaTemplate/recovery-crash.cpp vendor/clang/dist/test/SemaTemplate/temp_arg_nontype_cxx1z.cpp vendor/clang/dist/test/SemaTemplate/temp_arg_template.cpp vendor/clang/dist/test/SemaTemplate/temp_class_spec_neg.cpp vendor/clang/dist/test/SemaTemplate/typename-specifier-4.cpp vendor/clang/dist/test/SemaTemplate/typename-specifier.cpp vendor/clang/dist/test/Tooling/clang-check-analyzer.cpp vendor/clang/dist/test/Tooling/clang-check-extra-arg.cpp vendor/clang/dist/test/VFS/Inputs/public_header.h vendor/clang/dist/test/VFS/Inputs/vfsoverlay.yaml vendor/clang/dist/test/VFS/external-names.c vendor/clang/dist/test/VFS/real-path-found-first.m vendor/clang/dist/test/lit.cfg vendor/clang/dist/tools/CMakeLists.txt vendor/clang/dist/tools/Makefile vendor/clang/dist/tools/c-index-test/CMakeLists.txt vendor/clang/dist/tools/c-index-test/c-index-test.c vendor/clang/dist/tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs vendor/clang/dist/tools/clang-format-vs/ClangFormat/Properties/AssemblyInfo.cs vendor/clang/dist/tools/clang-format-vs/README.txt vendor/clang/dist/tools/clang-format/ClangFormat.cpp vendor/clang/dist/tools/clang-format/clang-format-diff.py vendor/clang/dist/tools/clang-format/fuzzer/ClangFormatFuzzer.cpp vendor/clang/dist/tools/clang-fuzzer/ClangFuzzer.cpp vendor/clang/dist/tools/diagtool/ShowEnabledWarnings.cpp vendor/clang/dist/tools/driver/CMakeLists.txt vendor/clang/dist/tools/driver/cc1as_main.cpp vendor/clang/dist/tools/driver/driver.cpp vendor/clang/dist/tools/libclang/CIndex.cpp vendor/clang/dist/tools/libclang/CIndexCodeCompletion.cpp vendor/clang/dist/tools/libclang/CIndexer.h vendor/clang/dist/tools/libclang/CMakeLists.txt vendor/clang/dist/tools/libclang/CXCompilationDatabase.cpp vendor/clang/dist/tools/libclang/CXCursor.cpp vendor/clang/dist/tools/libclang/CXLoadedDiagnostic.cpp vendor/clang/dist/tools/libclang/CXString.cpp vendor/clang/dist/tools/libclang/CXString.h vendor/clang/dist/tools/libclang/CXType.cpp vendor/clang/dist/tools/libclang/CursorVisitor.h vendor/clang/dist/tools/libclang/IndexBody.cpp vendor/clang/dist/tools/libclang/IndexTypeSourceInfo.cpp vendor/clang/dist/tools/libclang/Indexing.cpp vendor/clang/dist/tools/libclang/IndexingContext.cpp vendor/clang/dist/tools/libclang/libclang.exports vendor/clang/dist/unittests/AST/ASTContextParentMapTest.cpp vendor/clang/dist/unittests/AST/ASTTypeTraitsTest.cpp vendor/clang/dist/unittests/AST/DeclPrinterTest.cpp vendor/clang/dist/unittests/AST/NamedDeclPrinterTest.cpp vendor/clang/dist/unittests/AST/SourceLocationTest.cpp vendor/clang/dist/unittests/AST/StmtPrinterTest.cpp vendor/clang/dist/unittests/ASTMatchers/ASTMatchersTest.cpp vendor/clang/dist/unittests/ASTMatchers/ASTMatchersTest.h vendor/clang/dist/unittests/ASTMatchers/Dynamic/ParserTest.cpp vendor/clang/dist/unittests/ASTMatchers/Dynamic/RegistryTest.cpp vendor/clang/dist/unittests/Basic/SourceManagerTest.cpp vendor/clang/dist/unittests/Basic/VirtualFileSystemTest.cpp vendor/clang/dist/unittests/CMakeLists.txt vendor/clang/dist/unittests/CodeGen/BufferSourceTest.cpp vendor/clang/dist/unittests/Driver/CMakeLists.txt vendor/clang/dist/unittests/Format/CMakeLists.txt vendor/clang/dist/unittests/Format/FormatTest.cpp vendor/clang/dist/unittests/Format/FormatTestJS.cpp vendor/clang/dist/unittests/Format/FormatTestJava.cpp vendor/clang/dist/unittests/Format/FormatTestProto.cpp vendor/clang/dist/unittests/Format/FormatTestSelective.cpp vendor/clang/dist/unittests/Lex/LexerTest.cpp vendor/clang/dist/unittests/Lex/PPCallbacksTest.cpp vendor/clang/dist/unittests/Lex/PPConditionalDirectiveRecordTest.cpp vendor/clang/dist/unittests/Tooling/CMakeLists.txt vendor/clang/dist/unittests/Tooling/CommentHandlerTest.cpp vendor/clang/dist/unittests/Tooling/CompilationDatabaseTest.cpp vendor/clang/dist/unittests/Tooling/RefactoringCallbacksTest.cpp vendor/clang/dist/unittests/Tooling/RefactoringTest.cpp vendor/clang/dist/unittests/Tooling/RewriterTestContext.h vendor/clang/dist/unittests/Tooling/ToolingTest.cpp vendor/clang/dist/unittests/libclang/LibclangTest.cpp vendor/clang/dist/utils/TableGen/ClangAttrEmitter.cpp vendor/clang/dist/utils/TableGen/ClangCommentCommandInfoEmitter.cpp vendor/clang/dist/utils/TableGen/NeonEmitter.cpp vendor/clang/dist/utils/analyzer/CmpRuns.py vendor/clang/dist/utils/analyzer/SATestAdd.py vendor/clang/dist/utils/analyzer/SATestBuild.py vendor/clang/dist/utils/analyzer/SumTimerInfo.py vendor/clang/dist/utils/analyzer/ubiviz vendor/clang/dist/utils/clang.natvis vendor/clang/dist/www/analyzer/faq.html vendor/clang/dist/www/analyzer/index.html vendor/clang/dist/www/analyzer/installation.html vendor/clang/dist/www/analyzer/latest_checker.html.incl vendor/clang/dist/www/analyzer/release_notes.html vendor/clang/dist/www/analyzer/scan-build.html vendor/clang/dist/www/analyzer/xcode.html vendor/clang/dist/www/comparison.html vendor/clang/dist/www/cxx_dr_status.html vendor/clang/dist/www/cxx_status.html vendor/clang/dist/www/get_started.html vendor/clang/dist/www/related.html Modified: vendor/clang/dist/CMakeLists.txt ============================================================================== --- vendor/clang/dist/CMakeLists.txt Wed Dec 30 11:49:04 2015 (r292919) +++ vendor/clang/dist/CMakeLists.txt Wed Dec 30 11:49:41 2015 (r292920) @@ -96,6 +96,7 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR option(LLVM_FORCE_USE_OLD_HOST_TOOLCHAIN "Set to ON to force using an old, unsupported host toolchain." OFF) + option(CLANG_ENABLE_BOOTSTRAP "Generate the clang bootstrap target" OFF) include(AddLLVM) include(TableGen) @@ -115,6 +116,19 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) if(LLVM_INCLUDE_TESTS) + set(Python_ADDITIONAL_VERSIONS 2.7) + include(FindPythonInterp) + if(NOT PYTHONINTERP_FOUND) + message(FATAL_ERROR +"Unable to find Python interpreter, required for builds and testing. + +Please install Python or specify the PYTHON_EXECUTABLE CMake variable.") + endif() + + if( ${PYTHON_VERSION_STRING} VERSION_LESS 2.7 ) + message(FATAL_ERROR "Python 2.7 or newer is required") + endif() + # Check prebuilt llvm/utils. if(EXISTS ${LLVM_TOOLS_BINARY_DIR}/FileCheck${CMAKE_EXECUTABLE_SUFFIX} AND EXISTS ${LLVM_TOOLS_BINARY_DIR}/count${CMAKE_EXECUTABLE_SUFFIX} @@ -167,7 +181,7 @@ else() set(BACKEND_PACKAGE_STRING "${PACKAGE_STRING}") endif() -find_package(LibXml2) +find_package(LibXml2 2.5.3 QUIET) if (LIBXML2_FOUND) set(CLANG_HAVE_LIBXML 1) endif() @@ -182,7 +196,7 @@ set(GCC_INSTALL_PREFIX "" CACHE PATH "Di set(DEFAULT_SYSROOT "" CACHE PATH "Default to all compiler invocations for --sysroot=." ) -set(CLANG_DEFAULT_OPENMP_RUNTIME "libgomp" CACHE STRING +set(CLANG_DEFAULT_OPENMP_RUNTIME "libomp" CACHE STRING "Default OpenMP runtime used by -fopenmp.") set(CLANG_VENDOR "" CACHE STRING @@ -252,7 +266,10 @@ configure_file( # Add appropriate flags for GCC if (LLVM_COMPILER_IS_GCC_COMPATIBLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-common -Woverloaded-virtual -fno-strict-aliasing") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-common -Woverloaded-virtual") + if (NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing") + endif () # Enable -pedantic for Clang even if it's not enabled for LLVM. if (NOT LLVM_ENABLE_PEDANTIC) @@ -331,9 +348,13 @@ macro(set_clang_windows_version_resource endif() endmacro() +macro(add_clang_subdirectory name) + add_llvm_subdirectory(CLANG TOOL ${name}) +endmacro() + macro(add_clang_library name) cmake_parse_arguments(ARG - "" + "SHARED" "" "ADDITIONAL_HEADERS" ${ARGN}) @@ -358,7 +379,7 @@ macro(add_clang_library name) set_source_files_properties(${tds}} PROPERTIES HEADER_FILE_ONLY ON) if(headers OR tds) - set(srcs ${headers} ${tds}) + set(srcs ${headers} ${tds}) endif() endif() endif(MSVC_IDE OR XCODE) @@ -369,17 +390,29 @@ macro(add_clang_library name) ${ARG_ADDITIONAL_HEADERS} # It may contain unparsed unknown args. ) endif() - llvm_add_library(${name} ${ARG_UNPARSED_ARGUMENTS} ${srcs}) + if(ARG_SHARED) + set(ARG_ENABLE_SHARED SHARED) + endif() + llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS} ${srcs}) if(TARGET ${name}) target_link_libraries(${name} ${cmake_2_8_12_INTERFACE} ${LLVM_COMMON_LIBS}) if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "libclang") install(TARGETS ${name} + COMPONENT ${name} EXPORT ClangTargets LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} RUNTIME DESTINATION bin) + + if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) + add_custom_target(install-${name} + DEPENDS ${name} + COMMAND "${CMAKE_COMMAND}" + -DCMAKE_INSTALL_COMPONENT=${name} + -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") + endif() endif() set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${name}) else() @@ -397,6 +430,12 @@ macro(add_clang_executable name) set_clang_windows_version_resource_properties(${name}) endmacro(add_clang_executable) +macro(add_clang_symlink name dest) + add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE) + # Always generate install targets + llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE) +endmacro() + set(CMAKE_INCLUDE_CURRENT_DIR ON) include_directories(BEFORE @@ -423,13 +462,28 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) ) endif() +if(INTERNAL_INSTALL_PREFIX) + set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include") +else() + set(LIBCLANG_HEADERS_INSTALL_DESTINATION include) +endif() + install(DIRECTORY include/clang-c - DESTINATION include + COMPONENT libclang-headers + DESTINATION "${LIBCLANG_HEADERS_INSTALL_DESTINATION}" FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE ) +if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDE's. + add_custom_target(install-libclang-headers + DEPENDS + COMMAND "${CMAKE_COMMAND}" + -DCMAKE_INSTALL_COMPONENT=libclang-headers + -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") +endif() + add_definitions( -D_GNU_SOURCE ) option(CLANG_ENABLE_ARCMT "Build ARCMT." ON) @@ -467,6 +521,10 @@ set(LIBCLANG_LIBRARY_VERSION "Version number that will be placed into the libclang library , in the form XX.YY") mark_as_advanced(CLANG_EXECUTABLE_VERSION LIBCLANG_LIBRARY_VERSION) +option(CLANG_INCLUDE_TESTS + "Generate build targets for the Clang unit tests." + ${LLVM_INCLUDE_TESTS}) + add_subdirectory(utils/TableGen) add_subdirectory(include) @@ -487,10 +545,6 @@ else() endif() add_subdirectory(examples) -option(CLANG_INCLUDE_TESTS - "Generate build targets for the Clang unit tests." - ${LLVM_INCLUDE_TESTS}) - if( CLANG_INCLUDE_TESTS ) if(EXISTS ${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include/gtest/gtest.h) add_subdirectory(unittests) @@ -516,6 +570,7 @@ if( CLANG_INCLUDE_TESTS ) ARGS ${LLVM_LIT_EXTRA_ARGS} ) endif() + add_subdirectory(utils/perf-training) endif() option(CLANG_INCLUDE_DOCS "Generate build targets for the Clang docs." @@ -527,7 +582,8 @@ endif() set(CLANG_ORDER_FILE "" CACHE FILEPATH "Order file to use when compiling clang in order to improve startup time.") -if (CLANG_BUILT_STANDALONE) +if (CLANG_BUILT_STANDALONE OR CMAKE_VERSION VERSION_EQUAL 3 OR + CMAKE_VERSION VERSION_GREATER 3) # Generate a list of CMake library targets so that other CMake projects can # link against them. LLVM calls its version of this file LLVMExports.cmake, but # the usual CMake convention seems to be ${Project}Targets.cmake. @@ -551,3 +607,153 @@ if (CLANG_BUILT_STANDALONE) ${CLANG_BINARY_DIR}/share/clang/cmake/ClangConfig.cmake COPYONLY) endif () + +if (CLANG_ENABLE_BOOTSTRAP) + include(ExternalProject) + + if(CMAKE_VERSION VERSION_GREATER 3.1.0) + set(cmake_3_1_EXCLUDE_FROM_ALL EXCLUDE_FROM_ALL 1) + endif() + + if(CMAKE_VERSION VERSION_GREATER 3.3.20150708) + set(cmake_3_4_USES_TERMINAL_OPTIONS + USES_TERMINAL_CONFIGURE 1 + USES_TERMINAL_BUILD 1 + USES_TERMINAL_INSTALL 1 + ) + set(cmake_3_4_USES_TERMINAL USES_TERMINAL 1) + endif() + + if(NOT CLANG_STAGE) + set(CLANG_STAGE stage1) + message(STATUS "Setting current clang stage to: ${CLANG_STAGE}") + endif() + + string(REGEX MATCH "stage([0-9]*)" MATCHED_STAGE "${CLANG_STAGE}") + if(MATCHED_STAGE) + math(EXPR STAGE_NUM "${MATCHED_STAGE} + 1") + set(NEXT_CLANG_STAGE stage${STAGE_NUM}) + else() + set(NEXT_CLANG_STAGE bootstrap) + endif() + message(STATUS "Setting next clang stage to: ${NEXT_CLANG_STAGE}") + + + set(STAMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/${NEXT_CLANG_STAGE}-stamps/) + set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${NEXT_CLANG_STAGE}-bins/) + + # If on Darwin we need to make bootstrap depend on LTO and pass + # DARWIN_LTO_LIBRARY so that -flto will work using the just-built compiler + if(APPLE) + set(LTO_DEP LTO llvm-ar llvm-ranlib) + set(LTO_LIBRARY -DDARWIN_LTO_LIBRARY=${LLVM_SHLIB_OUTPUT_INTDIR}/libLTO.dylib) + set(LTO_AR -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar) + set(LTO_RANLIB -DCMAKE_RANLIB=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ranlib) + endif() + + add_custom_target(${NEXT_CLANG_STAGE}-clear + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${NEXT_CLANG_STAGE}-cleared + ) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NEXT_CLANG_STAGE}-cleared + DEPENDS clang ${LTO_DEP} + COMMAND ${CMAKE_COMMAND} -E remove_directory ${BINARY_DIR} + COMMAND ${CMAKE_COMMAND} -E make_directory ${BINARY_DIR} + COMMAND ${CMAKE_COMMAND} -E remove_directory ${STAMP_DIR} + COMMAND ${CMAKE_COMMAND} -E make_directory ${STAMP_DIR} + COMMENT "Clobberring ${NEXT_CLANG_STAGE} build and stamp directories" + ) + + if(CMAKE_VERBOSE_MAKEFILE) + set(verbose -DCMAKE_VERBOSE_MAKEFILE=On) + endif() + + set(BOOTSTRAP_DEFAULT_PASSTHROUGH + PACKAGE_VERSION + LLVM_VERSION_MAJOR + LLVM_VERSION_MINOR + LLVM_VERSION_PATCH + LLVM_VERSION_SUFFIX + CLANG_REPOSITORY_STRING + CMAKE_MAKE_PROGRAM) + + if(TARGET compiler-rt) + set(RUNTIME_DEP compiler-rt) + endif() + + # Find all variables that start with BOOTSTRAP_ and populate a variable with + # them. + get_cmake_property(variableNames VARIABLES) + foreach(variableName ${variableNames}) + if(variableName MATCHES "^BOOTSTRAP_") + string(SUBSTRING ${variableName} 10 -1 varName) + string(REPLACE ";" "\;" value "${${variableName}}") + list(APPEND PASSTHROUGH_VARIABLES + -D${varName}=${value}) + endif() + endforeach() + + # Populate the passthrough variables + foreach(variableName ${CLANG_BOOTSTRAP_PASSTHROUGH} ${BOOTSTRAP_DEFAULT_PASSTHROUGH}) + if(${variableName}) + string(REPLACE ";" "\;" value ${${variableName}}) + list(APPEND PASSTHROUGH_VARIABLES + -D${variableName}=${value}) + endif() + endforeach() + + ExternalProject_Add(${NEXT_CLANG_STAGE} + DEPENDS clang ${LTO_DEP} ${RUNTIME_DEP} + PREFIX ${NEXT_CLANG_STAGE} + SOURCE_DIR ${CMAKE_SOURCE_DIR} + STAMP_DIR ${STAMP_DIR} + BINARY_DIR ${BINARY_DIR} + ${cmake_3_1_EXCLUDE_FROM_ALL} + CMAKE_ARGS + # We shouldn't need to set this here, but INSTALL_DIR doesn't + # seem to work, so instead I'm passing this through + -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} + ${CLANG_BOOTSTRAP_CMAKE_ARGS} + ${PASSTHROUGH_VARIABLES} + -DCMAKE_CXX_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++ + -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang + -DCMAKE_ASM_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang + -DCLANG_STAGE=${NEXT_CLANG_STAGE} + ${LTO_LIBRARY} ${LTO_AR} ${LTO_RANLIB} ${verbose} + INSTALL_COMMAND "" + STEP_TARGETS configure build + ${cmake_3_4_USES_TERMINAL_OPTIONS} + ) + + # exclude really-install from main target + set_target_properties(${NEXT_CLANG_STAGE} PROPERTIES _EP_really-install_EXCLUDE_FROM_MAIN On) + ExternalProject_Add_Step(${NEXT_CLANG_STAGE} really-install + COMMAND ${CMAKE_COMMAND} --build --target install + COMMENT "Performing install step for '${NEXT_CLANG_STAGE}'" + DEPENDEES build + ${cmake_3_4_USES_TERMINAL} + ) + ExternalProject_Add_StepTargets(${NEXT_CLANG_STAGE} really-install) + add_custom_target(${NEXT_CLANG_STAGE}-install DEPENDS ${NEXT_CLANG_STAGE}-really-install) + + if(NOT CLANG_BOOTSTRAP_TARGETS) + set(CLANG_BOOTSTRAP_TARGETS check-llvm check-clang check-all) + endif() + foreach(target ${CLANG_BOOTSTRAP_TARGETS}) + # exclude from main target + set_target_properties(${NEXT_CLANG_STAGE} PROPERTIES _EP_${target}_EXCLUDE_FROM_MAIN On) + + ExternalProject_Add_Step(${NEXT_CLANG_STAGE} ${target} + COMMAND ${CMAKE_COMMAND} --build --target ${target} + COMMENT "Performing ${target} for '${NEXT_CLANG_STAGE}'" + DEPENDEES configure + ${cmake_3_4_USES_TERMINAL} + ) + + if(target MATCHES "^stage[0-9]*") + add_custom_target(${target} DEPENDS ${NEXT_CLANG_STAGE}-${target}) + endif() + + ExternalProject_Add_StepTargets(${NEXT_CLANG_STAGE} ${target}) + endforeach() +endif() Modified: vendor/clang/dist/CODE_OWNERS.TXT ============================================================================== --- vendor/clang/dist/CODE_OWNERS.TXT Wed Dec 30 11:49:04 2015 (r292919) +++ vendor/clang/dist/CODE_OWNERS.TXT Wed Dec 30 11:49:41 2015 (r292920) @@ -33,22 +33,22 @@ N: Reid Kleckner E: rnk@google.com D: Microsoft C++ ABI compatibility and general Windows support +N: Manuel Klimek +E: klimek@google.com +D: AST matchers, LibTooling + N: Anton Korobeynikov E: anton@korobeynikov.info D: Exception handling, Windows codegen, ARM EABI -N: Ted Kremenek -E: kremenek@apple.com +N: Anna Zaks +E: ganna@apple.com D: Clang Static Analyzer N: John McCall E: rjmccall@apple.com D: Clang LLVM IR generation -N: Chad Rosier -E: mcrosier@codeaurora.org -D: Compiler driver - N: Richard Smith E: richard@metafoo.co.uk D: All parts of Clang not covered by someone else Modified: vendor/clang/dist/INSTALL.txt ============================================================================== --- vendor/clang/dist/INSTALL.txt Wed Dec 30 11:49:04 2015 (r292919) +++ vendor/clang/dist/INSTALL.txt Wed Dec 30 11:49:41 2015 (r292920) @@ -44,6 +44,5 @@ From inside the Clang build directory, r compiler and header files into the prefix directory selected when LLVM was configured. -The Clang compiler is available as 'clang' and 'clang++'. It supports a gcc like command line -interface. See the man page for clang (installed into $prefix/share/man/man1) -for more information. +The Clang compiler is available as 'clang' and 'clang++'. It supports a gcc like +command line interface. See the man page for clang for more information. Modified: vendor/clang/dist/Makefile ============================================================================== --- vendor/clang/dist/Makefile Wed Dec 30 11:49:04 2015 (r292919) +++ vendor/clang/dist/Makefile Wed Dec 30 11:49:41 2015 (r292920) @@ -67,8 +67,11 @@ endif # http://gcc.gnu.org/PR41874 # http://gcc.gnu.org/PR41838 # -# We can revisit this when LLVM/Clang support it. +# We don't need to do this if the host compiler is clang. +ifneq ($(CXX_COMPILER), "clang") CXX.Flags += -fno-strict-aliasing +endif + # Set up Clang's tblgen. ifndef CLANG_TBLGEN Modified: vendor/clang/dist/bindings/python/clang/cindex.py ============================================================================== --- vendor/clang/dist/bindings/python/clang/cindex.py Wed Dec 30 11:49:04 2015 (r292919) +++ vendor/clang/dist/bindings/python/clang/cindex.py Wed Dec 30 11:49:41 2015 (r292920) @@ -1100,6 +1100,11 @@ CursorKind.CUDAGLOBAL_ATTR = CursorKind( CursorKind.CUDAHOST_ATTR = CursorKind(415) CursorKind.CUDASHARED_ATTR = CursorKind(416) +CursorKind.VISIBILITY_ATTR = CursorKind(417) + +CursorKind.DLLEXPORT_ATTR = CursorKind(418) +CursorKind.DLLIMPORT_ATTR = CursorKind(419) + ### # Preprocessing CursorKind.PREPROCESSING_DIRECTIVE = CursorKind(500) @@ -1112,7 +1117,8 @@ CursorKind.INCLUSION_DIRECTIVE = CursorK # A module import declaration. CursorKind.MODULE_IMPORT_DECL = CursorKind(600) - +# A type alias template declaration +CursorKind.TYPE_ALIAS_TEMPLATE_DECL = CursorKind(601) ### Template Argument Kinds ### class TemplateArgumentKind(BaseEnumeration): @@ -1162,12 +1168,36 @@ class Cursor(Structure): """ return conf.lib.clang_isCursorDefinition(self) + def is_const_method(self): + """Returns True if the cursor refers to a C++ member function or member + function template that is declared 'const'. + """ + return conf.lib.clang_CXXMethod_isConst(self) + + def is_mutable_field(self): + """Returns True if the cursor refers to a C++ field that is declared + 'mutable'. + """ + return conf.lib.clang_CXXField_isMutable(self) + + def is_pure_virtual_method(self): + """Returns True if the cursor refers to a C++ member function or member + function template that is declared pure virtual. + """ + return conf.lib.clang_CXXMethod_isPureVirtual(self) + def is_static_method(self): """Returns True if the cursor refers to a C++ member function or member function template that is declared 'static'. """ return conf.lib.clang_CXXMethod_isStatic(self) + def is_virtual_method(self): + """Returns True if the cursor refers to a C++ member function or member + function template that is declared 'virtual'. + """ + return conf.lib.clang_CXXMethod_isVirtual(self) + def get_definition(self): """ If the cursor is a reference to a declaration or a declaration of @@ -1673,6 +1703,7 @@ TypeKind.INCOMPLETEARRAY = TypeKind(114) TypeKind.VARIABLEARRAY = TypeKind(115) TypeKind.DEPENDENTSIZEDARRAY = TypeKind(116) TypeKind.MEMBERPOINTER = TypeKind(117) +TypeKind.AUTO = TypeKind(118) class RefQualifierKind(BaseEnumeration): """Describes a specific ref-qualifier of a type.""" @@ -2877,6 +2908,14 @@ functionList = [ [Index, c_char_p], c_object_p), + ("clang_CXXField_isMutable", + [Cursor], + bool), + + ("clang_CXXMethod_isConst", + [Cursor], + bool), + ("clang_CXXMethod_isPureVirtual", [Cursor], bool), Modified: vendor/clang/dist/bindings/python/tests/cindex/test_cursor.py ============================================================================== --- vendor/clang/dist/bindings/python/tests/cindex/test_cursor.py Wed Dec 30 11:49:04 2015 (r292919) +++ vendor/clang/dist/bindings/python/tests/cindex/test_cursor.py Wed Dec 30 11:49:41 2015 (r292920) @@ -97,6 +97,36 @@ def test_canonical(): assert len(cursors) == 3 assert cursors[1].canonical == cursors[2].canonical +def test_is_const_method(): + """Ensure Cursor.is_const_method works.""" + source = 'class X { void foo() const; void bar(); };' + tu = get_tu(source, lang='cpp') + + cls = get_cursor(tu, 'X') + foo = get_cursor(tu, 'foo') + bar = get_cursor(tu, 'bar') + assert cls is not None + assert foo is not None + assert bar is not None + + assert foo.is_const_method() + assert not bar.is_const_method() + +def test_is_mutable_field(): + """Ensure Cursor.is_mutable_field works.""" + source = 'class X { int x_; mutable int y_; };' + tu = get_tu(source, lang='cpp') + + cls = get_cursor(tu, 'X') + x_ = get_cursor(tu, 'x_') + y_ = get_cursor(tu, 'y_') + assert cls is not None + assert x_ is not None + assert y_ is not None + + assert not x_.is_mutable_field() + assert y_.is_mutable_field() + def test_is_static_method(): """Ensure Cursor.is_static_method works.""" @@ -113,6 +143,36 @@ def test_is_static_method(): assert foo.is_static_method() assert not bar.is_static_method() +def test_is_pure_virtual_method(): + """Ensure Cursor.is_pure_virtual_method works.""" + source = 'class X { virtual void foo() = 0; virtual void bar(); };' + tu = get_tu(source, lang='cpp') + + cls = get_cursor(tu, 'X') + foo = get_cursor(tu, 'foo') + bar = get_cursor(tu, 'bar') + assert cls is not None + assert foo is not None + assert bar is not None + + assert foo.is_pure_virtual_method() + assert not bar.is_pure_virtual_method() + +def test_is_virtual_method(): + """Ensure Cursor.is_virtual_method works.""" + source = 'class X { virtual void foo(); void bar(); };' + tu = get_tu(source, lang='cpp') + + cls = get_cursor(tu, 'X') + foo = get_cursor(tu, 'foo') + bar = get_cursor(tu, 'bar') + assert cls is not None + assert foo is not None + assert bar is not None + + assert foo.is_virtual_method() + assert not bar.is_virtual_method() + def test_underlying_type(): tu = get_tu('typedef int foo;') typedef = get_cursor(tu, 'foo') Modified: vendor/clang/dist/bindings/python/tests/cindex/test_cursor_kind.py ============================================================================== --- vendor/clang/dist/bindings/python/tests/cindex/test_cursor_kind.py Wed Dec 30 11:49:04 2015 (r292919) +++ vendor/clang/dist/bindings/python/tests/cindex/test_cursor_kind.py Wed Dec 30 11:49:41 2015 (r292920) @@ -13,6 +13,7 @@ def test_get_all_kinds(): assert CursorKind.OBJ_SELF_EXPR in kinds assert CursorKind.MS_ASM_STMT in kinds assert CursorKind.MODULE_IMPORT_DECL in kinds + assert CursorKind.TYPE_ALIAS_TEMPLATE_DECL in kinds def test_kind_groups(): """Check that every kind classifies to exactly one group.""" Modified: vendor/clang/dist/bindings/python/tests/cindex/test_type.py ============================================================================== --- vendor/clang/dist/bindings/python/tests/cindex/test_type.py Wed Dec 30 11:49:04 2015 (r292919) +++ vendor/clang/dist/bindings/python/tests/cindex/test_type.py Wed Dec 30 11:49:41 2015 (r292920) @@ -134,7 +134,7 @@ def test_equal(): def test_type_spelling(): """Ensure Type.spelling works.""" - tu = get_tu('int c[5]; int i[]; int x; int v[x];') + tu = get_tu('int c[5]; void f(int i[]); int x; int v[x];') c = get_cursor(tu, 'c') i = get_cursor(tu, 'i') x = get_cursor(tu, 'x') @@ -253,7 +253,7 @@ void bar(int a, int b); def test_element_type(): """Ensure Type.element_type works.""" - tu = get_tu('int c[5]; int i[]; int x; int v[x];') + tu = get_tu('int c[5]; void f(int i[]); int x; int v[x];') c = get_cursor(tu, 'c') i = get_cursor(tu, 'i') v = get_cursor(tu, 'v') Added: vendor/clang/dist/cmake/caches/Apple-stage1.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/cmake/caches/Apple-stage1.cmake Wed Dec 30 11:49:41 2015 (r292920) @@ -0,0 +1,32 @@ +# This file sets up a CMakeCache for Apple-style bootstrap builds. It can be +# used on any Darwin system to approximate Apple Clang builds. + +if($ENV{DT_TOOLCHAIN_DIR}) + set(CMAKE_INSTALL_PREFIX $ENV{DT_TOOLCHAIN_DIR}/usr/) +else() + set(CMAKE_INSTALL_PREFIX /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.toolchain/usr/) +endif() + +set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") +set(CLANG_VENDOR Apple CACHE STRING "") +set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") +set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") +set(LLVM_INCLUDE_UTILS OFF CACHE BOOL "") +set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") +set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "") +set(COMPILER_RT_INCLUDE_TESTS OFF CACHE BOOL "") +set(COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "") + +set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") +set(PACKAGE_VERSION 7.1.0 CACHE STRING "") + +# LIBCXX Settings +set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") +set(LIBCXX_INSTALL_HEADERS ON CACHE BOOL "") +set(LIBCXX_OVERRIDE_DARWIN_INSTALL ON CACHE BOOL "") + +#bootstrap +set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") +set(CLANG_BOOTSTRAP_CMAKE_ARGS + -C ${CMAKE_CURRENT_LIST_DIR}/Apple-stage2.cmake + CACHE STRING "") Added: vendor/clang/dist/cmake/caches/Apple-stage2.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/cmake/caches/Apple-stage2.cmake Wed Dec 30 11:49:41 2015 (r292920) @@ -0,0 +1,30 @@ +# This file sets up a CMakeCache for Apple-style stage2 bootstrap. It is +# specified by the stage1 build. + +set(LLVM_TARGETS_TO_BUILD X86 ARM AArch64 CACHE STRING "") +set(CLANG_VENDOR Apple CACHE STRING "") +set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") +set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") +set(LLVM_INCLUDE_UTILS OFF CACHE BOOL "") +set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") +set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "") +set(COMPILER_RT_INCLUDE_TESTS OFF CACHE BOOL "") +set(COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "") +set(CLANG_LINKS_TO_CREATE clang++ cc c++ CACHE STRING "") + +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Os -flto -gline-tables-only -DNDEBUG" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Os -flto -gline-tables-only -DNDEBUG" CACHE STRING "") +set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") +set(PACKAGE_VERSION 7.1.0 CACHE STRING "") + +set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") +set(LIBCXX_INSTALL_HEADERS OFF CACHE BOOL "") + +# setup toolchain +set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") +set(LLVM_TOOLCHAIN_TOOLS + llvm-dsymutil + llvm-cov + llvm-dwarfdump + llvm-profdata + CACHE STRING "") Added: vendor/clang/dist/cmake/caches/README.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/cmake/caches/README.txt Wed Dec 30 11:49:41 2015 (r292920) @@ -0,0 +1,18 @@ +CMake Caches +============ + +This directory contains CMake cache scripts that pre-populate the CMakeCache in +a build directory with commonly used settings. + +The first two cache files in the directory are used by Apple to build the clang +distribution packaged with Xcode. You can use the caches with the following +CMake invocation: + +cmake -G + -C /tools/clang/cmake/caches/Apple-stage1.cmake + -DCMAKE_BUILD_TYPE=Release + [-DCMAKE_INSTALL_PREFIX=] + + +Building the `bootstrap` target from this generation will build clang, and +`bootstrap-install` will install it. Modified: vendor/clang/dist/docs/AddressSanitizer.rst ============================================================================== --- vendor/clang/dist/docs/AddressSanitizer.rst Wed Dec 30 11:49:04 2015 (r292919) +++ vendor/clang/dist/docs/AddressSanitizer.rst Wed Dec 30 11:49:41 2015 (r292920) @@ -196,12 +196,11 @@ Disabling Instrumentation with ``__attri -------------------------------------------------------------------------- Some code should not be instrumented by AddressSanitizer. One may use the -function attribute ``__attribute__((no_sanitize("address")))`` -(which has deprecated synonyms -:ref:`no_sanitize_address ` and -`no_address_safety_analysis`) to disable instrumentation of a particular -function. This attribute may not be supported by other compilers, so we suggest -to use it together with ``__has_feature(address_sanitizer)``. +function attribute ``__attribute__((no_sanitize("address")))`` (which has +deprecated synonyms `no_sanitize_address` and `no_address_safety_analysis`) to +disable instrumentation of a particular function. This attribute may not be +supported by other compilers, so we suggest to use it together with +``__has_feature(address_sanitizer)``. Suppressing Errors in Recompiled Code (Blacklist) ------------------------------------------------- @@ -268,5 +267,4 @@ check-asan`` command. More Information ================ -`http://code.google.com/p/address-sanitizer `_ - +``_ Modified: vendor/clang/dist/docs/AttributeReference.rst ============================================================================== --- vendor/clang/dist/docs/AttributeReference.rst Wed Dec 30 11:49:04 2015 (r292919) +++ vendor/clang/dist/docs/AttributeReference.rst Wed Dec 30 11:49:41 2015 (r292920) @@ -1,1760 +1,13 @@ .. ------------------------------------------------------------------- NOTE: This file is automatically generated by running clang-tblgen - -gen-attr-docs. Do not edit this file by hand!! + -gen-attr-docs. Do not edit this file by hand!! The contents for + this file are automatically generated by a server-side process. + + Please do not commit this file. The file exists for local testing + purposes only. ------------------------------------------------------------------- =================== Attributes in Clang -=================== -.. contents:: - :local: - -Introduction -============ - -This page lists the attributes currently supported by Clang. - -AMD GPU Register Attributes -=========================== -Clang supports attributes for controlling register usage on AMD GPU -targets. These attributes may be attached to a kernel function -definition and is an optimization hint to the backend for the maximum -number of registers to use. This is useful in cases where register -limited occupancy is known to be an important factor for the -performance for the kernel. - -The semantics are as follows: - -- The backend will attempt to limit the number of used registers to - the specified value, but the exact number used is not - guaranteed. The number used may be rounded up to satisfy the - allocation requirements or ABI constraints of the subtarget. For - example, on Southern Islands VGPRs may only be allocated in - increments of 4, so requesting a limit of 39 VGPRs will really - attempt to use up to 40. Requesting more registers than the - subtarget supports will truncate to the maximum allowed. The backend - may also use fewer registers than requested whenever possible. - -- 0 implies the default no limit on register usage. - -- Ignored on older VLIW subtargets which did not have separate scalar - and vector registers, R600 through Northern Islands. - -amdgpu_num_sgpr ---------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -Clang supports the -``__attribute__((amdgpu_num_sgpr()))`` attribute on AMD -Southern Islands GPUs and later for controlling the number of scalar -registers. A typical value would be between 8 and 104 in increments of -8. - -Due to common instruction constraints, an additional 2-4 SGPRs are -typically required for internal use depending on features used. This -value is a hint for the total number of SGPRs to use, and not the -number of user SGPRs, so no special consideration needs to be given -for these. - - -amdgpu_num_vgpr ---------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -Clang supports the -``__attribute__((amdgpu_num_vgpr()))`` attribute on AMD -Southern Islands GPUs and later for controlling the number of vector -registers. A typical value would be between 4 and 256 in increments -of 4. - - -Function Attributes -=================== - - -interrupt ---------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -Clang supports the GNU style ``__attribute__((interrupt("TYPE")))`` attribute on -ARM targets. This attribute may be attached to a function definition and -instructs the backend to generate appropriate function entry/exit code so that -it can be used directly as an interrupt service routine. - -The parameter passed to the interrupt attribute is optional, but if -provided it must be a string literal with one of the following values: "IRQ", -"FIQ", "SWI", "ABORT", "UNDEF". - -The semantics are as follows: - -- If the function is AAPCS, Clang instructs the backend to realign the stack to - 8 bytes on entry. This is a general requirement of the AAPCS at public - interfaces, but may not hold when an exception is taken. Doing this allows - other AAPCS functions to be called. -- If the CPU is M-class this is all that needs to be done since the architecture - itself is designed in such a way that functions obeying the normal AAPCS ABI - constraints are valid exception handlers. -- If the CPU is not M-class, the prologue and epilogue are modified to save all - non-banked registers that are used, so that upon return the user-mode state - will not be corrupted. Note that to avoid unnecessary overhead, only - general-purpose (integer) registers are saved in this way. If VFP operations - are needed, that state must be saved manually. - - Specifically, interrupt kinds other than "FIQ" will save all core registers - except "lr" and "sp". "FIQ" interrupts will save r0-r7. -- If the CPU is not M-class, the return instruction is changed to one of the - canonical sequences permitted by the architecture for exception return. Where - possible the function itself will make the necessary "lr" adjustments so that - the "preferred return address" is selected. - - Unfortunately the compiler is unable to make this guarantee for an "UNDEF" - handler, where the offset from "lr" to the preferred return address depends on - the execution state of the code which generated the exception. In this case - a sequence equivalent to "movs pc, lr" will be used. - - -acquire_capability (acquire_shared_capability, clang::acquire_capability, clang::acquire_shared_capability) ------------------------------------------------------------------------------------------------------------ -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -Marks a function as acquiring a capability. - - -assert_capability (assert_shared_capability, clang::assert_capability, clang::assert_shared_capability) -------------------------------------------------------------------------------------------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -Marks a function that dynamically tests whether a capability is held, and halts -the program if it is not held. - - -assume_aligned (gnu::assume_aligned) ------------------------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -Use ``__attribute__((assume_aligned([,]))`` on a function -declaration to specify that the return value of the function (which must be a -pointer type) has the specified offset, in bytes, from an address with the -specified alignment. The offset is taken to be zero if omitted. - -.. code-block:: c++ - - // The returned pointer value has 32-byte alignment. - void *a() __attribute__((assume_aligned (32))); - - // The returned pointer value is 4 bytes greater than an address having - // 32-byte alignment. - void *b() __attribute__((assume_aligned (32, 4))); - -Note that this attribute provides information to the compiler regarding a -condition that the code already ensures is true. It does not cause the compiler -to enforce the provided alignment assumption. - - -availability ------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -The ``availability`` attribute can be placed on declarations to describe the -lifecycle of that declaration relative to operating system versions. Consider -the function declaration for a hypothetical function ``f``: - -.. code-block:: c++ - - void f(void) __attribute__((availability(macosx,introduced=10.4,deprecated=10.6,obsoleted=10.7))); - -The availability attribute states that ``f`` was introduced in Mac OS X 10.4, -deprecated in Mac OS X 10.6, and obsoleted in Mac OS X 10.7. This information -is used by Clang to determine when it is safe to use ``f``: for example, if -Clang is instructed to compile code for Mac OS X 10.5, a call to ``f()`` -succeeds. If Clang is instructed to compile code for Mac OS X 10.6, the call -succeeds but Clang emits a warning specifying that the function is deprecated. -Finally, if Clang is instructed to compile code for Mac OS X 10.7, the call -fails because ``f()`` is no longer available. - -The availability attribute is a comma-separated list starting with the -platform name and then including clauses specifying important milestones in the -declaration's lifetime (in any order) along with additional information. Those -clauses can be: - -introduced=\ *version* - The first version in which this declaration was introduced. - -deprecated=\ *version* - The first version in which this declaration was deprecated, meaning that - users should migrate away from this API. - -obsoleted=\ *version* - The first version in which this declaration was obsoleted, meaning that it - was removed completely and can no longer be used. - -unavailable - This declaration is never available on this platform. - -message=\ *string-literal* - Additional message text that Clang will provide when emitting a warning or - error about use of a deprecated or obsoleted declaration. Useful to direct - users to replacement APIs. - -Multiple availability attributes can be placed on a declaration, which may -correspond to different platforms. Only the availability attribute with the -platform corresponding to the target platform will be used; any others will be -ignored. If no availability attribute specifies availability for the current -target platform, the availability attributes are ignored. Supported platforms -are: - -``ios`` - Apple's iOS operating system. The minimum deployment target is specified by - the ``-mios-version-min=*version*`` or ``-miphoneos-version-min=*version*`` - command-line arguments. - -``macosx`` - Apple's Mac OS X operating system. The minimum deployment target is - specified by the ``-mmacosx-version-min=*version*`` command-line argument. - -A declaration can be used even when deploying back to a platform version prior -to when the declaration was introduced. When this happens, the declaration is -`weakly linked -`_, -as if the ``weak_import`` attribute were added to the declaration. A -weakly-linked declaration may or may not be present a run-time, and a program -can determine whether the declaration is present by checking whether the -address of that declaration is non-NULL. - -If there are multiple declarations of the same entity, the availability -attributes must either match on a per-platform basis or later -declarations must not have availability attributes for that -platform. For example: - -.. code-block:: c - - void g(void) __attribute__((availability(macosx,introduced=10.4))); - void g(void) __attribute__((availability(macosx,introduced=10.4))); // okay, matches - void g(void) __attribute__((availability(ios,introduced=4.0))); // okay, adds a new platform - void g(void); // okay, inherits both macosx and ios availability from above. - void g(void) __attribute__((availability(macosx,introduced=10.5))); // error: mismatch - -When one method overrides another, the overriding method can be more widely available than the overridden method, e.g.,: - -.. code-block:: objc - - @interface A - - (id)method __attribute__((availability(macosx,introduced=10.4))); - - (id)method2 __attribute__((availability(macosx,introduced=10.4))); - @end - - @interface B : A - - (id)method __attribute__((availability(macosx,introduced=10.3))); // okay: method moved into base class later - - (id)method __attribute__((availability(macosx,introduced=10.5))); // error: this method was available via the base class in 10.4 - @end - - -_Noreturn ---------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Dec 30 11:49:50 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 874D3A55476; Wed, 30 Dec 2015 11:49:50 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4AE831FE6; Wed, 30 Dec 2015 11:49:50 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBnnqw048345; Wed, 30 Dec 2015 11:49:49 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBnmDc048338; Wed, 30 Dec 2015 11:49:48 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201512301149.tBUBnmDc048338@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 30 Dec 2015 11:49:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292921 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:49:50 -0000 Author: mav Date: Wed Dec 30 11:49:48 2015 New Revision: 292921 URL: https://svnweb.freebsd.org/changeset/base/292921 Log: MFC r292725: Unify handles allocation for initiator and target IOCBs. I am not sure why this was split long ago, but I see no reason for it. At this point this unification just slightly reduces memory usage, but as next step I plan to reuse shared handle space for other IOCB types. Modified: stable/10/sys/dev/isp/isp.c stable/10/sys/dev/isp/isp_freebsd.c stable/10/sys/dev/isp/isp_library.c stable/10/sys/dev/isp/isp_library.h stable/10/sys/dev/isp/isp_pci.c stable/10/sys/dev/isp/isp_target.c stable/10/sys/dev/isp/ispvar.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp.c ============================================================================== --- stable/10/sys/dev/isp/isp.c Wed Dec 30 11:49:41 2015 (r292920) +++ stable/10/sys/dev/isp/isp.c Wed Dec 30 11:49:48 2015 (r292921) @@ -4269,7 +4269,7 @@ int isp_start(XS_T *xs) { ispsoftc_t *isp; - uint32_t handle, cdblen; + uint32_t cdblen; uint8_t local[QENTRY_LEN]; ispreq_t *reqp; void *cdbp, *qep; @@ -4565,13 +4565,13 @@ isp_start(XS_T *xs) *tptr = 0x1999; } - if (isp_allocate_xs(isp, xs, &handle)) { + /* Whew. Thankfully the same for type 7 requests */ + reqp->req_handle = isp_allocate_handle(isp, xs, ISP_HANDLE_INITIATOR); + if (reqp->req_handle == 0) { isp_prt(isp, ISP_LOG_WARN1, "out of xflist pointers"); XS_SETERR(xs, HBA_BOTCH); return (CMD_EAGAIN); } - /* Whew. Thankfully the same for type 7 requests */ - reqp->req_handle = handle; /* * Set up DMA and/or do any platform dependent swizzling of the request entry @@ -4581,7 +4581,7 @@ isp_start(XS_T *xs) */ dmaresult = ISP_DMASETUP(isp, xs, reqp); if (dmaresult != CMD_QUEUED) { - isp_destroy_handle(isp, handle); + isp_destroy_handle(isp, reqp->req_handle); /* * dmasetup sets actual error in packet, and * return what we were given to return. @@ -5310,12 +5310,6 @@ again: } } - if (!ISP_VALID_HANDLE(isp, sp->req_handle)) { - isp_prt(isp, ISP_LOGERR, "bad request handle 0x%x (iocb type 0x%x)", sp->req_handle, etype); - ISP_MEMZERO(hp, QENTRY_LEN); /* PERF */ - last_etype = etype; - continue; - } xs = isp_find_xs(isp, sp->req_handle); if (xs == NULL) { uint8_t ts = completion_status & 0xff; Modified: stable/10/sys/dev/isp/isp_freebsd.c ============================================================================== --- stable/10/sys/dev/isp/isp_freebsd.c Wed Dec 30 11:49:41 2015 (r292920) +++ stable/10/sys/dev/isp/isp_freebsd.c Wed Dec 30 11:49:48 2015 (r292921) @@ -1694,7 +1694,8 @@ isp_target_start_ctio(ispsoftc_t *isp, u TAILQ_INSERT_HEAD(&tptr->waitq, &ccb->ccb_h, periph_links.tqe); break; } - if (isp_allocate_xs_tgt(isp, ccb, &handle)) { + handle = isp_allocate_handle(isp, ccb, ISP_HANDLE_TARGET); + if (handle == 0) { ISP_PATH_PRT(isp, ISP_LOGWARN, ccb->ccb_h.path, "No XFLIST pointers for %s\n", __func__); TAILQ_INSERT_HEAD(&tptr->waitq, &ccb->ccb_h, periph_links.tqe); isp_free_pcmd(isp, ccb); @@ -1723,7 +1724,7 @@ isp_target_start_ctio(ispsoftc_t *isp, u dmaresult = ISP_DMASETUP(isp, cso, (ispreq_t *) local); if (dmaresult != CMD_QUEUED) { - isp_destroy_tgt_handle(isp, handle); + isp_destroy_handle(isp, handle); isp_free_pcmd(isp, ccb); if (dmaresult == CMD_EAGAIN) { TAILQ_INSERT_HEAD(&tptr->waitq, &ccb->ccb_h, periph_links.tqe); @@ -2380,12 +2381,12 @@ isp_handle_platform_ctio(ispsoftc_t *isp uint32_t handle, moved_data = 0, data_requested; handle = ((ct2_entry_t *)arg)->ct_syshandle; - ccb = isp_find_xs_tgt(isp, handle); + ccb = isp_find_xs(isp, handle); if (ccb == NULL) { isp_print_bytes(isp, "null ccb in isp_handle_platform_ctio", QENTRY_LEN, arg); return; } - isp_destroy_tgt_handle(isp, handle); + isp_destroy_handle(isp, handle); data_requested = PISP_PCMD(ccb)->datalen; isp_free_pcmd(isp, ccb); if (isp->isp_nactive) { @@ -3321,7 +3322,7 @@ isp_loop_dead(ispsoftc_t *isp, int chan) for (i = 0; i < isp->isp_maxcmds; i++) { struct ccb_scsiio *xs; - if (!ISP_VALID_HANDLE(isp, isp->isp_xflist[i].handle)) { + if (ISP_H2HT(isp->isp_xflist[i].handle) != ISP_HANDLE_INITIATOR) { continue; } if ((xs = isp->isp_xflist[i].cmd) == NULL) { Modified: stable/10/sys/dev/isp/isp_library.c ============================================================================== --- stable/10/sys/dev/isp/isp_library.c Wed Dec 30 11:49:41 2015 (r292920) +++ stable/10/sys/dev/isp/isp_library.c Wed Dec 30 11:49:48 2015 (r292921) @@ -247,28 +247,26 @@ copy_and_sync: return (CMD_QUEUED); } -int -isp_allocate_xs(ispsoftc_t *isp, XS_T *xs, uint32_t *handlep) +uint32_t +isp_allocate_handle(ispsoftc_t *isp, void *xs, int type) { isp_hdl_t *hdp; hdp = isp->isp_xffree; - if (hdp == NULL) { - return (-1); - } + if (hdp == NULL) + return (ISP_HANDLE_FREE); isp->isp_xffree = hdp->cmd; hdp->cmd = xs; hdp->handle = (hdp - isp->isp_xflist); - hdp->handle |= (ISP_HANDLE_INITIATOR << ISP_HANDLE_USAGE_SHIFT); + hdp->handle |= (type << ISP_HANDLE_USAGE_SHIFT); hdp->handle |= (isp->isp_seqno++ << ISP_HANDLE_SEQ_SHIFT); - *handlep = hdp->handle; - return (0); + return (hdp->handle); } -XS_T * +void * isp_find_xs(ispsoftc_t *isp, uint32_t handle) { - if (!ISP_VALID_INI_HANDLE(isp, handle)) { + if (!ISP_VALID_HANDLE(isp, handle)) { isp_prt(isp, ISP_LOGERR, "%s: bad handle 0x%x", __func__, handle); return (NULL); } @@ -276,7 +274,7 @@ isp_find_xs(ispsoftc_t *isp, uint32_t ha } uint32_t -isp_find_handle(ispsoftc_t *isp, XS_T *xs) +isp_find_handle(ispsoftc_t *isp, void *xs) { uint32_t i, foundhdl = ISP_HANDLE_FREE; @@ -292,21 +290,10 @@ isp_find_handle(ispsoftc_t *isp, XS_T *x return (foundhdl); } -uint32_t -isp_handle_index(ispsoftc_t *isp, uint32_t handle) -{ - if (!ISP_VALID_HANDLE(isp, handle)) { - isp_prt(isp, ISP_LOGERR, "%s: bad handle 0x%x", __func__, handle); - return (ISP_BAD_HANDLE_INDEX); - } else { - return (handle & ISP_HANDLE_CMD_MASK); - } -} - void isp_destroy_handle(ispsoftc_t *isp, uint32_t handle) { - if (!ISP_VALID_INI_HANDLE(isp, handle)) { + if (!ISP_VALID_HANDLE(isp, handle)) { isp_prt(isp, ISP_LOGERR, "%s: bad handle 0x%x", __func__, handle); } else { isp->isp_xflist[(handle & ISP_HANDLE_CMD_MASK)].handle = ISP_HANDLE_FREE; @@ -583,46 +570,41 @@ isp_clear_commands(ispsoftc_t *isp) #endif for (tmp = 0; isp->isp_xflist && tmp < isp->isp_maxcmds; tmp++) { - XS_T *xs; hdp = &isp->isp_xflist[tmp]; - if (hdp->handle == ISP_HANDLE_FREE) { - continue; - } - xs = hdp->cmd; - if (XS_XFRLEN(xs)) { - ISP_DMAFREE(isp, xs, hdp->handle); - XS_SET_RESID(xs, XS_XFRLEN(xs)); - } else { - XS_SET_RESID(xs, 0); - } - hdp->handle = 0; - hdp->cmd = NULL; - XS_SETERR(xs, HBA_BUSRESET); - isp_done(xs); - } + if (ISP_H2HT(hdp->handle) == ISP_HANDLE_INITIATOR) { + XS_T *xs = hdp->cmd; + if (XS_XFRLEN(xs)) { + ISP_DMAFREE(isp, xs, hdp->handle); + XS_SET_RESID(xs, XS_XFRLEN(xs)); + } else { + XS_SET_RESID(xs, 0); + } + hdp->handle = 0; + hdp->cmd = NULL; + XS_SETERR(xs, HBA_BUSRESET); + isp_done(xs); #ifdef ISP_TARGET_MODE - for (tmp = 0; isp->isp_tgtlist && tmp < isp->isp_maxcmds; tmp++) { - uint8_t local[QENTRY_LEN]; - hdp = &isp->isp_tgtlist[tmp]; - if (hdp->handle == ISP_HANDLE_FREE) { - continue; - } - ISP_DMAFREE(isp, hdp->cmd, hdp->handle); - ISP_MEMZERO(local, QENTRY_LEN); - if (IS_24XX(isp)) { - ct7_entry_t *ctio = (ct7_entry_t *) local; - ctio->ct_syshandle = hdp->handle; - ctio->ct_nphdl = CT_HBA_RESET; - ctio->ct_header.rqs_entry_type = RQSTYPE_CTIO7; - } else { - ct2_entry_t *ctio = (ct2_entry_t *) local; - ctio->ct_syshandle = hdp->handle; - ctio->ct_status = CT_HBA_RESET; - ctio->ct_header.rqs_entry_type = RQSTYPE_CTIO2; + } else if (ISP_H2HT(hdp->handle) == ISP_HANDLE_TARGET) { + uint8_t local[QENTRY_LEN]; + ISP_DMAFREE(isp, hdp->cmd, hdp->handle); + ISP_MEMZERO(local, QENTRY_LEN); + if (IS_24XX(isp)) { + ct7_entry_t *ctio = (ct7_entry_t *) local; + ctio->ct_syshandle = hdp->handle; + ctio->ct_nphdl = CT_HBA_RESET; + ctio->ct_header.rqs_entry_type = RQSTYPE_CTIO7; + } else { + ct2_entry_t *ctio = (ct2_entry_t *) local; + ctio->ct_syshandle = hdp->handle; + ctio->ct_status = CT_HBA_RESET; + ctio->ct_header.rqs_entry_type = RQSTYPE_CTIO2; + } + isp_async(isp, ISPASYNC_TARGET_ACTION, local); +#endif } - isp_async(isp, ISPASYNC_TARGET_ACTION, local); } +#ifdef ISP_TARGET_MODE for (tmp = 0; tmp < isp->isp_nchan; tmp++) { ISP_MEMZERO(¬ify, sizeof (isp_notify_t)); notify.nt_ncode = NT_HBA_RESET; @@ -2223,69 +2205,6 @@ isp_send_tgt_cmd(ispsoftc_t *isp, void * return (CMD_QUEUED); } -int -isp_allocate_xs_tgt(ispsoftc_t *isp, void *xs, uint32_t *handlep) -{ - isp_hdl_t *hdp; - - hdp = isp->isp_tgtfree; - if (hdp == NULL) { - return (-1); - } - isp->isp_tgtfree = hdp->cmd; - hdp->cmd = xs; - hdp->handle = (hdp - isp->isp_tgtlist); - hdp->handle |= (ISP_HANDLE_TARGET << ISP_HANDLE_USAGE_SHIFT); - /* - * Target handles for SCSI cards are only 16 bits, so - * sequence number protection will be ommitted. - */ - if (IS_FC(isp)) { - hdp->handle |= (isp->isp_seqno++ << ISP_HANDLE_SEQ_SHIFT); - } - *handlep = hdp->handle; - return (0); -} - -void * -isp_find_xs_tgt(ispsoftc_t *isp, uint32_t handle) -{ - if (!ISP_VALID_TGT_HANDLE(isp, handle)) { - isp_prt(isp, ISP_LOGERR, "%s: bad handle 0x%x", __func__, handle); - return (NULL); - } - return (isp->isp_tgtlist[(handle & ISP_HANDLE_CMD_MASK)].cmd); -} - -uint32_t -isp_find_tgt_handle(ispsoftc_t *isp, void *xs) -{ - uint32_t i, foundhdl = ISP_HANDLE_FREE; - - if (xs != NULL) { - for (i = 0; i < isp->isp_maxcmds; i++) { - if (isp->isp_tgtlist[i].cmd != xs) { - continue; - } - foundhdl = isp->isp_tgtlist[i].handle; - break; - } - } - return (foundhdl); -} - -void -isp_destroy_tgt_handle(ispsoftc_t *isp, uint32_t handle) -{ - if (!ISP_VALID_TGT_HANDLE(isp, handle)) { - isp_prt(isp, ISP_LOGERR, "%s: bad handle 0x%x", __func__, handle); - } else { - isp->isp_tgtlist[(handle & ISP_HANDLE_CMD_MASK)].handle = ISP_HANDLE_FREE; - isp->isp_tgtlist[(handle & ISP_HANDLE_CMD_MASK)].cmd = isp->isp_tgtfree; - isp->isp_tgtfree = &isp->isp_tgtlist[(handle & ISP_HANDLE_CMD_MASK)]; - } -} - #endif /* Modified: stable/10/sys/dev/isp/isp_library.h ============================================================================== --- stable/10/sys/dev/isp/isp_library.h Wed Dec 30 11:49:41 2015 (r292920) +++ stable/10/sys/dev/isp/isp_library.h Wed Dec 30 11:49:48 2015 (r292921) @@ -43,10 +43,9 @@ int isp_send_cmd(ispsoftc_t *, void *, v * * These handles are associate with a command. */ -int isp_allocate_xs(ispsoftc_t *, XS_T *, uint32_t *); -XS_T * isp_find_xs(ispsoftc_t *, uint32_t); -uint32_t isp_find_handle(ispsoftc_t *, XS_T *); -uint32_t isp_handle_index(ispsoftc_t *, uint32_t); +uint32_t isp_allocate_handle(ispsoftc_t *, void *, int); +void *isp_find_xs(ispsoftc_t *, uint32_t); +uint32_t isp_find_handle(ispsoftc_t *, void *); void isp_destroy_handle(ispsoftc_t *, uint32_t); /* @@ -162,11 +161,6 @@ void isp_put_fcp_rsp_iu(ispsoftc_t *isp, #endif int isp_send_tgt_cmd(ispsoftc_t *, void *, void *, uint32_t, uint32_t, isp_ddir_t, void *, uint32_t); - -int isp_allocate_xs_tgt(ispsoftc_t *, void *, uint32_t *); -void *isp_find_xs_tgt(ispsoftc_t *, uint32_t); -uint32_t isp_find_tgt_handle(ispsoftc_t *, void *); -void isp_destroy_tgt_handle(ispsoftc_t *, uint32_t); #endif int isp_find_pdb_empty(ispsoftc_t *, int, fcportdb_t **); int isp_find_pdb_by_wwpn(ispsoftc_t *, int, uint64_t, fcportdb_t **); Modified: stable/10/sys/dev/isp/isp_pci.c ============================================================================== --- stable/10/sys/dev/isp/isp_pci.c Wed Dec 30 11:49:41 2015 (r292920) +++ stable/10/sys/dev/isp/isp_pci.c Wed Dec 30 11:49:48 2015 (r292921) @@ -1684,21 +1684,6 @@ isp_pci_mbxdma(ispsoftc_t *isp) isp->isp_xflist[len].cmd = &isp->isp_xflist[len+1]; } isp->isp_xffree = isp->isp_xflist; -#ifdef ISP_TARGET_MODE - len = sizeof (isp_hdl_t) * isp->isp_maxcmds; - isp->isp_tgtlist = (isp_hdl_t *) malloc(len, M_DEVBUF, M_WAITOK | M_ZERO); - if (isp->isp_tgtlist == NULL) { - free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); - free(isp->isp_xflist, M_DEVBUF); - ISP_LOCK(isp); - isp_prt(isp, ISP_LOGERR, "cannot alloc tgtlist array"); - return (1); - } - for (len = 0; len < isp->isp_maxcmds - 1; len++) { - isp->isp_tgtlist[len].cmd = &isp->isp_tgtlist[len+1]; - } - isp->isp_tgtfree = isp->isp_tgtlist; -#endif /* * Allocate and map the request and result queues (and ATIO queue @@ -1725,9 +1710,6 @@ isp_pci_mbxdma(ispsoftc_t *isp) isp_prt(isp, ISP_LOGERR, "cannot create a dma tag for control spaces"); free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); free(isp->isp_xflist, M_DEVBUF); -#ifdef ISP_TARGET_MODE - free(isp->isp_tgtlist, M_DEVBUF); -#endif ISP_LOCK(isp); return (1); } @@ -1737,9 +1719,6 @@ isp_pci_mbxdma(ispsoftc_t *isp) bus_dma_tag_destroy(isp->isp_osinfo.cdmat); free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); free(isp->isp_xflist, M_DEVBUF); -#ifdef ISP_TARGET_MODE - free(isp->isp_tgtlist, M_DEVBUF); -#endif ISP_LOCK(isp); return (1); } @@ -1828,9 +1807,6 @@ bad: bus_dmamem_free(isp->isp_osinfo.cdmat, base, isp->isp_osinfo.cdmap); bus_dma_tag_destroy(isp->isp_osinfo.cdmat); free(isp->isp_xflist, M_DEVBUF); -#ifdef ISP_TARGET_MODE - free(isp->isp_tgtlist, M_DEVBUF); -#endif free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); isp->isp_rquest = NULL; ISP_LOCK(isp); Modified: stable/10/sys/dev/isp/isp_target.c ============================================================================== --- stable/10/sys/dev/isp/isp_target.c Wed Dec 30 11:49:41 2015 (r292920) +++ stable/10/sys/dev/isp/isp_target.c Wed Dec 30 11:49:48 2015 (r292921) @@ -1094,7 +1094,7 @@ isp_handle_ctio2(ispsoftc_t *isp, ct2_en char *fmsg = NULL; if (ct->ct_syshandle) { - xs = isp_find_xs_tgt(isp, ct->ct_syshandle); + xs = isp_find_xs(isp, ct->ct_syshandle); if (xs == NULL) { pl = ISP_LOGALL; } @@ -1249,7 +1249,7 @@ isp_handle_ctio7(ispsoftc_t *isp, ct7_en char *fmsg = NULL; if (ct->ct_syshandle) { - xs = isp_find_xs_tgt(isp, ct->ct_syshandle); + xs = isp_find_xs(isp, ct->ct_syshandle); if (xs == NULL) { pl = ISP_LOGALL; } Modified: stable/10/sys/dev/isp/ispvar.h ============================================================================== --- stable/10/sys/dev/isp/ispvar.h Wed Dec 30 11:49:41 2015 (r292920) +++ stable/10/sys/dev/isp/ispvar.h Wed Dec 30 11:49:48 2015 (r292921) @@ -318,18 +318,11 @@ typedef struct { #define ISP_HANDLE_SEQ_MASK 0xffff0000 #define ISP_HANDLE_SEQ_SHIFT 16 #define ISP_H2SEQ(hdl) ((hdl & ISP_HANDLE_SEQ_MASK) >> ISP_HANDLE_SEQ_SHIFT) -#define ISP_VALID_INI_HANDLE(c, hdl) \ - (ISP_H2HT(hdl) == ISP_HANDLE_INITIATOR && (hdl & ISP_HANDLE_CMD_MASK) < (c)->isp_maxcmds && \ - ISP_H2SEQ(hdl) == ISP_H2SEQ((c)->isp_xflist[hdl & ISP_HANDLE_CMD_MASK].handle)) -#ifdef ISP_TARGET_MODE -#define ISP_VALID_TGT_HANDLE(c, hdl) \ - (ISP_H2HT(hdl) == ISP_HANDLE_TARGET && (hdl & ISP_HANDLE_CMD_MASK) < (c)->isp_maxcmds && \ - ISP_H2SEQ(hdl) == ISP_H2SEQ((c)->isp_tgtlist[hdl & ISP_HANDLE_CMD_MASK].handle)) #define ISP_VALID_HANDLE(c, hdl) \ - (ISP_VALID_INI_HANDLE((c), hdl) || ISP_VALID_TGT_HANDLE((c), hdl)) -#else -#define ISP_VALID_HANDLE ISP_VALID_INI_HANDLE -#endif + ((ISP_H2HT(hdl) == ISP_HANDLE_INITIATOR || \ + ISP_H2HT(hdl) == ISP_HANDLE_TARGET) && \ + ((hdl) & ISP_HANDLE_CMD_MASK) < (c)->isp_maxcmds && \ + (hdl) == ((c)->isp_xflist[(hdl) & ISP_HANDLE_CMD_MASK].handle)) #define ISP_BAD_HANDLE_INDEX 0xffffffff @@ -598,14 +591,6 @@ struct ispsoftc { isp_hdl_t *isp_xflist; isp_hdl_t *isp_xffree; -#ifdef ISP_TARGET_MODE - /* - * Active target commands are stored here, indexed by handle functions. - */ - isp_hdl_t *isp_tgtlist; - isp_hdl_t *isp_tgtfree; -#endif - /* * request/result queue pointers and DMA handles for them. */ From owner-svn-src-all@freebsd.org Wed Dec 30 11:50:54 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 53EB3A55683; Wed, 30 Dec 2015 11:50:54 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2B4C41380; Wed, 30 Dec 2015 11:50:54 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBorJ1048569; Wed, 30 Dec 2015 11:50:53 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBorka048566; Wed, 30 Dec 2015 11:50:53 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201512301150.tBUBorka048566@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 30 Dec 2015 11:50:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292922 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:50:54 -0000 Author: mav Date: Wed Dec 30 11:50:52 2015 New Revision: 292922 URL: https://svnweb.freebsd.org/changeset/base/292922 Log: MFC r292739: Make virtual ports control asynchronous. Before this change virtual ports control IOCBs were executed synchronously via Execute IOCB mailbox command. It required exclusive use of scratch space of driver and mailbox registers of the hardware. Because of that shared resources use this code could not really sleep, having to spin for completion, blocking any other operation. This change introduces new asynchronous design, sending the IOCBs directly on request queue and gracefully waiting for their return on response queue. Returned IOCBs are identified with unified handle space from r292725. Modified: stable/10/sys/dev/isp/isp.c stable/10/sys/dev/isp/isp_library.c stable/10/sys/dev/isp/ispvar.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp.c ============================================================================== --- stable/10/sys/dev/isp/isp.c Wed Dec 30 11:49:48 2015 (r292921) +++ stable/10/sys/dev/isp/isp.c Wed Dec 30 11:50:52 2015 (r292922) @@ -2348,64 +2348,64 @@ static int isp_fc_enable_vp(ispsoftc_t *isp, int chan) { fcparam *fcp = FCPARAM(isp, chan); - mbreg_t mbs; - vp_modify_t *vp; - uint8_t qe[QENTRY_LEN], *scp; - - ISP_MEMZERO(qe, QENTRY_LEN); - if (FC_SCRATCH_ACQUIRE(isp, chan)) { - return (EBUSY); - } - scp = fcp->isp_scratch; + vp_modify_t vp; + void *reqp; + uint8_t resp[QENTRY_LEN]; /* Build a VP MODIFY command in memory */ - vp = (vp_modify_t *) qe; - vp->vp_mod_hdr.rqs_entry_type = RQSTYPE_VP_MODIFY; - vp->vp_mod_hdr.rqs_entry_count = 1; - vp->vp_mod_cnt = 1; - vp->vp_mod_idx0 = chan; - vp->vp_mod_cmd = VP_MODIFY_ENA; - vp->vp_mod_ports[0].options = ICB2400_VPOPT_ENABLED | + ISP_MEMZERO(&vp, sizeof(vp)); + vp.vp_mod_hdr.rqs_entry_type = RQSTYPE_VP_MODIFY; + vp.vp_mod_hdr.rqs_entry_count = 1; + vp.vp_mod_cnt = 1; + vp.vp_mod_idx0 = chan; + vp.vp_mod_cmd = VP_MODIFY_ENA; + vp.vp_mod_ports[0].options = ICB2400_VPOPT_ENABLED | ICB2400_VPOPT_ENA_SNSLOGIN; - if (fcp->role & ISP_ROLE_INITIATOR) { - vp->vp_mod_ports[0].options |= ICB2400_VPOPT_INI_ENABLE; - } - if ((fcp->role & ISP_ROLE_TARGET) == 0) { - vp->vp_mod_ports[0].options |= ICB2400_VPOPT_TGT_DISABLE; - } + if (fcp->role & ISP_ROLE_INITIATOR) + vp.vp_mod_ports[0].options |= ICB2400_VPOPT_INI_ENABLE; + if ((fcp->role & ISP_ROLE_TARGET) == 0) + vp.vp_mod_ports[0].options |= ICB2400_VPOPT_TGT_DISABLE; if (fcp->isp_loopid < LOCAL_LOOP_LIM) { - vp->vp_mod_ports[0].loopid = fcp->isp_loopid; + vp.vp_mod_ports[0].loopid = fcp->isp_loopid; if (isp->isp_confopts & ISP_CFG_OWNLOOPID) - vp->vp_mod_ports[0].options |= - ICB2400_VPOPT_HARD_ADDRESS; + vp.vp_mod_ports[0].options |= ICB2400_VPOPT_HARD_ADDRESS; else - vp->vp_mod_ports[0].options |= - ICB2400_VPOPT_PREV_ADDRESS; + vp.vp_mod_ports[0].options |= ICB2400_VPOPT_PREV_ADDRESS; } - MAKE_NODE_NAME_FROM_WWN(vp->vp_mod_ports[0].wwpn, fcp->isp_wwpn); - MAKE_NODE_NAME_FROM_WWN(vp->vp_mod_ports[0].wwnn, fcp->isp_wwnn); - isp_put_vp_modify(isp, vp, (vp_modify_t *) scp); + MAKE_NODE_NAME_FROM_WWN(vp.vp_mod_ports[0].wwpn, fcp->isp_wwpn); + MAKE_NODE_NAME_FROM_WWN(vp.vp_mod_ports[0].wwnn, fcp->isp_wwnn); - /* Build a EXEC IOCB A64 command that points to the VP MODIFY command */ - MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 0); - mbs.param[1] = QENTRY_LEN; - mbs.param[2] = DMA_WD1(fcp->isp_scdma); - mbs.param[3] = DMA_WD0(fcp->isp_scdma); - mbs.param[6] = DMA_WD3(fcp->isp_scdma); - mbs.param[7] = DMA_WD2(fcp->isp_scdma); - MEMORYBARRIER(isp, SYNC_SFORDEV, 0, 2 * QENTRY_LEN, chan); - isp_control(isp, ISPCTL_RUN_MBOXCMD, &mbs); - if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { - FC_SCRATCH_RELEASE(isp, chan); + /* Prepare space for response in memory */ + memset(resp, 0xff, sizeof(resp)); + vp.vp_mod_hdl = isp_allocate_handle(isp, resp, ISP_HANDLE_CTRL); + if (vp.vp_mod_hdl == 0) { + isp_prt(isp, ISP_LOGERR, + "%s: VP_MODIFY of Chan %d out of handles", __func__, chan); return (EIO); } - MEMORYBARRIER(isp, SYNC_SFORCPU, QENTRY_LEN, QENTRY_LEN, chan); - isp_get_vp_modify(isp, (vp_modify_t *)&scp[QENTRY_LEN], vp); - FC_SCRATCH_RELEASE(isp, chan); + /* Send request and wait for response. */ + reqp = isp_getrqentry(isp); + if (reqp == NULL) { + isp_prt(isp, ISP_LOGERR, + "%s: VP_MODIFY of Chan %d out of rqent", __func__, chan); + isp_destroy_handle(isp, vp.vp_mod_hdl); + return (EIO); + } + isp_put_vp_modify(isp, &vp, (vp_modify_t *)reqp); + ISP_SYNC_REQUEST(isp); + if (msleep(resp, &isp->isp_lock, 0, "VP_MODIFY", 5*hz) == EWOULDBLOCK) { + isp_prt(isp, ISP_LOGERR, + "%s: VP_MODIFY of Chan %d timed out", __func__, chan); + isp_destroy_handle(isp, vp.vp_mod_hdl); + return (EIO); + } + isp_get_vp_modify(isp, (vp_modify_t *)resp, &vp); - if (vp->vp_mod_status != VP_STS_OK) { - isp_prt(isp, ISP_LOGERR, "%s: VP_MODIFY of Chan %d failed with status %d", __func__, chan, vp->vp_mod_status); + if (vp.vp_mod_hdr.rqs_flags != 0 || vp.vp_mod_status != VP_STS_OK) { + isp_prt(isp, ISP_LOGERR, + "%s: VP_MODIFY of Chan %d failed with flags %x status %d", + __func__, chan, vp.vp_mod_hdr.rqs_flags, vp.vp_mod_status); return (EIO); } return (0); @@ -2414,54 +2414,56 @@ isp_fc_enable_vp(ispsoftc_t *isp, int ch static int isp_fc_disable_vp(ispsoftc_t *isp, int chan) { - fcparam *fcp = FCPARAM(isp, chan); - mbreg_t mbs; - vp_ctrl_info_t *vp; - uint8_t qe[QENTRY_LEN], *scp; - - ISP_MEMZERO(qe, QENTRY_LEN); - if (FC_SCRATCH_ACQUIRE(isp, chan)) { - return (EBUSY); - } - scp = fcp->isp_scratch; + vp_ctrl_info_t vp; + void *reqp; + uint8_t resp[QENTRY_LEN]; /* Build a VP CTRL command in memory */ - vp = (vp_ctrl_info_t *) qe; - vp->vp_ctrl_hdr.rqs_entry_type = RQSTYPE_VP_CTRL; - vp->vp_ctrl_hdr.rqs_entry_count = 1; + ISP_MEMZERO(&vp, sizeof(vp)); + vp.vp_ctrl_hdr.rqs_entry_type = RQSTYPE_VP_CTRL; + vp.vp_ctrl_hdr.rqs_entry_count = 1; if (ISP_CAP_VP0(isp)) { - vp->vp_ctrl_status = 1; + vp.vp_ctrl_status = 1; } else { - vp->vp_ctrl_status = 0; + vp.vp_ctrl_status = 0; chan--; /* VP0 can not be controlled in this case. */ } - vp->vp_ctrl_command = VP_CTRL_CMD_DISABLE_VP_LOGO_ALL; - vp->vp_ctrl_vp_count = 1; - vp->vp_ctrl_idmap[chan / 16] |= (1 << chan % 16); - isp_put_vp_ctrl_info(isp, vp, (vp_ctrl_info_t *) scp); - - /* Build a EXEC IOCB A64 command that points to the VP CTRL command */ - MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, 0); - mbs.param[1] = QENTRY_LEN; - mbs.param[2] = DMA_WD1(fcp->isp_scdma); - mbs.param[3] = DMA_WD0(fcp->isp_scdma); - mbs.param[6] = DMA_WD3(fcp->isp_scdma); - mbs.param[7] = DMA_WD2(fcp->isp_scdma); - MEMORYBARRIER(isp, SYNC_SFORDEV, 0, 2 * QENTRY_LEN, chan); - isp_control(isp, ISPCTL_RUN_MBOXCMD, &mbs); - if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { - FC_SCRATCH_RELEASE(isp, chan); + vp.vp_ctrl_command = VP_CTRL_CMD_DISABLE_VP_LOGO_ALL; + vp.vp_ctrl_vp_count = 1; + vp.vp_ctrl_idmap[chan / 16] |= (1 << chan % 16); + + /* Prepare space for response in memory */ + memset(resp, 0xff, sizeof(resp)); + vp.vp_ctrl_handle = isp_allocate_handle(isp, resp, ISP_HANDLE_CTRL); + if (vp.vp_ctrl_handle == 0) { + isp_prt(isp, ISP_LOGERR, + "%s: VP_CTRL of Chan %d out of handles", __func__, chan); return (EIO); } - MEMORYBARRIER(isp, SYNC_SFORCPU, QENTRY_LEN, QENTRY_LEN, chan); - isp_get_vp_ctrl_info(isp, (vp_ctrl_info_t *)&scp[QENTRY_LEN], vp); - FC_SCRATCH_RELEASE(isp, chan); + /* Send request and wait for response. */ + reqp = isp_getrqentry(isp); + if (reqp == NULL) { + isp_prt(isp, ISP_LOGERR, + "%s: VP_CTRL of Chan %d out of rqent", __func__, chan); + isp_destroy_handle(isp, vp.vp_ctrl_handle); + return (EIO); + } + isp_put_vp_ctrl_info(isp, &vp, (vp_ctrl_info_t *)reqp); + ISP_SYNC_REQUEST(isp); + if (msleep(resp, &isp->isp_lock, 0, "VP_CTRL", 5*hz) == EWOULDBLOCK) { + isp_prt(isp, ISP_LOGERR, + "%s: VP_CTRL of Chan %d timed out", __func__, chan); + isp_destroy_handle(isp, vp.vp_ctrl_handle); + return (EIO); + } + isp_get_vp_ctrl_info(isp, (vp_ctrl_info_t *)resp, &vp); - if (vp->vp_ctrl_status != 0) { + if (vp.vp_ctrl_hdr.rqs_flags != 0 || vp.vp_ctrl_status != 0) { isp_prt(isp, ISP_LOGERR, - "%s: VP_CTRL of Chan %d failed with status %d %d", - __func__, chan, vp->vp_ctrl_status, vp->vp_ctrl_index_fail); + "%s: VP_CTRL of Chan %d failed with flags %x status %d %d", + __func__, chan, vp.vp_ctrl_hdr.rqs_flags, + vp.vp_ctrl_status, vp.vp_ctrl_index_fail); return (EIO); } return (0); @@ -6123,6 +6125,8 @@ isp_handle_other_response(ispsoftc_t *is { isp_ridacq_t rid; int chan, c; + uint32_t hdl; + void *ptr; switch (type) { case RQSTYPE_STATUS_CONT: @@ -6164,6 +6168,16 @@ isp_handle_other_response(ispsoftc_t *is } } return (1); + case RQSTYPE_VP_MODIFY: + case RQSTYPE_VP_CTRL: + ISP_IOXGET_32(isp, (uint32_t *)(hp + 1), hdl); + ptr = isp_find_xs(isp, hdl); + if (ptr != NULL) { + isp_destroy_handle(isp, hdl); + memcpy(ptr, hp, QENTRY_LEN); + wakeup(ptr); + } + return (1); case RQSTYPE_ATIO: case RQSTYPE_CTIO: case RQSTYPE_ENABLE_LUN: Modified: stable/10/sys/dev/isp/isp_library.c ============================================================================== --- stable/10/sys/dev/isp/isp_library.c Wed Dec 30 11:49:48 2015 (r292921) +++ stable/10/sys/dev/isp/isp_library.c Wed Dec 30 11:50:52 2015 (r292922) @@ -572,7 +572,8 @@ isp_clear_commands(ispsoftc_t *isp) for (tmp = 0; isp->isp_xflist && tmp < isp->isp_maxcmds; tmp++) { hdp = &isp->isp_xflist[tmp]; - if (ISP_H2HT(hdp->handle) == ISP_HANDLE_INITIATOR) { + switch (ISP_H2HT(hdp->handle)) { + case ISP_HANDLE_INITIATOR: { XS_T *xs = hdp->cmd; if (XS_XFRLEN(xs)) { ISP_DMAFREE(isp, xs, hdp->handle); @@ -580,12 +581,13 @@ isp_clear_commands(ispsoftc_t *isp) } else { XS_SET_RESID(xs, 0); } - hdp->handle = 0; - hdp->cmd = NULL; + isp_destroy_handle(isp, hdp->handle); XS_SETERR(xs, HBA_BUSRESET); isp_done(xs); + break; + } #ifdef ISP_TARGET_MODE - } else if (ISP_H2HT(hdp->handle) == ISP_HANDLE_TARGET) { + case ISP_HANDLE_TARGET: { uint8_t local[QENTRY_LEN]; ISP_DMAFREE(isp, hdp->cmd, hdp->handle); ISP_MEMZERO(local, QENTRY_LEN); @@ -601,7 +603,13 @@ isp_clear_commands(ispsoftc_t *isp) ctio->ct_header.rqs_entry_type = RQSTYPE_CTIO2; } isp_async(isp, ISPASYNC_TARGET_ACTION, local); + break; + } #endif + case ISP_HANDLE_CTRL: + wakeup(hdp->cmd); + isp_destroy_handle(isp, hdp->handle); + break; } } #ifdef ISP_TARGET_MODE Modified: stable/10/sys/dev/isp/ispvar.h ============================================================================== --- stable/10/sys/dev/isp/ispvar.h Wed Dec 30 11:49:48 2015 (r292921) +++ stable/10/sys/dev/isp/ispvar.h Wed Dec 30 11:50:52 2015 (r292922) @@ -315,12 +315,14 @@ typedef struct { # define ISP_HANDLE_NONE 0 # define ISP_HANDLE_INITIATOR 1 # define ISP_HANDLE_TARGET 2 +# define ISP_HANDLE_CTRL 3 #define ISP_HANDLE_SEQ_MASK 0xffff0000 #define ISP_HANDLE_SEQ_SHIFT 16 #define ISP_H2SEQ(hdl) ((hdl & ISP_HANDLE_SEQ_MASK) >> ISP_HANDLE_SEQ_SHIFT) #define ISP_VALID_HANDLE(c, hdl) \ ((ISP_H2HT(hdl) == ISP_HANDLE_INITIATOR || \ - ISP_H2HT(hdl) == ISP_HANDLE_TARGET) && \ + ISP_H2HT(hdl) == ISP_HANDLE_TARGET || \ + ISP_H2HT(hdl) == ISP_HANDLE_CTRL) && \ ((hdl) & ISP_HANDLE_CMD_MASK) < (c)->isp_maxcmds && \ (hdl) == ((c)->isp_xflist[(hdl) & ISP_HANDLE_CMD_MASK].handle)) #define ISP_BAD_HANDLE_INDEX 0xffffffff From owner-svn-src-all@freebsd.org Wed Dec 30 11:51:15 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B7C6A556DD; Wed, 30 Dec 2015 11:51:15 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D2A831634; Wed, 30 Dec 2015 11:51:14 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBpD7v048642; Wed, 30 Dec 2015 11:51:13 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBpDgU048641; Wed, 30 Dec 2015 11:51:13 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301151.tBUBpDgU048641@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:51:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292923 - vendor/clang/clang-trunk-r256633 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:51:15 -0000 Author: dim Date: Wed Dec 30 11:51:13 2015 New Revision: 292923 URL: https://svnweb.freebsd.org/changeset/base/292923 Log: Tag clang trunk r256633. Added: vendor/clang/clang-trunk-r256633/ - copied from r292922, vendor/clang/dist/ From owner-svn-src-all@freebsd.org Wed Dec 30 11:51:36 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CCD25A55720; Wed, 30 Dec 2015 11:51:36 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 89B8A189A; Wed, 30 Dec 2015 11:51:36 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBpZ5F048708; Wed, 30 Dec 2015 11:51:35 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBpZ7G048707; Wed, 30 Dec 2015 11:51:35 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201512301151.tBUBpZ7G048707@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 30 Dec 2015 11:51:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292924 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:51:36 -0000 Author: mav Date: Wed Dec 30 11:51:35 2015 New Revision: 292924 URL: https://svnweb.freebsd.org/changeset/base/292924 Log: MFC r292741: Make port logins asynchronous, following r292739 logic. This is even more important since it involves more network operations and more prone to delays and timeouts. Modified: stable/10/sys/dev/isp/isp.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp.c ============================================================================== --- stable/10/sys/dev/isp/isp.c Wed Dec 30 11:51:13 2015 (r292923) +++ stable/10/sys/dev/isp/isp.c Wed Dec 30 11:51:35 2015 (r292924) @@ -108,7 +108,7 @@ static void isp_fibre_init(ispsoftc_t *) static void isp_fibre_init_2400(ispsoftc_t *); static void isp_clear_portdb(ispsoftc_t *, int); static void isp_mark_portdb(ispsoftc_t *, int); -static int isp_plogx(ispsoftc_t *, int, uint16_t, uint32_t, int, int); +static int isp_plogx(ispsoftc_t *, int, uint16_t, uint32_t, int); static int isp_port_login(ispsoftc_t *, uint16_t, uint32_t); static int isp_port_logout(ispsoftc_t *, uint16_t, uint32_t); static int isp_getpdb(ispsoftc_t *, int, uint16_t, isp_pdb_t *, int); @@ -2550,13 +2550,11 @@ isp_mark_portdb(ispsoftc_t *isp, int cha * or via FABRIC LOGIN/FABRIC LOGOUT for other cards. */ static int -isp_plogx(ispsoftc_t *isp, int chan, uint16_t handle, uint32_t portid, int flags, int gs) +isp_plogx(ispsoftc_t *isp, int chan, uint16_t handle, uint32_t portid, int flags) { - mbreg_t mbs; - uint8_t q[QENTRY_LEN]; - isp_plogx_t *plp; - fcparam *fcp; - uint8_t *scp; + isp_plogx_t pl; + void *reqp; + uint8_t resp[QENTRY_LEN]; uint32_t sst, parm1; int rval, lev; const char *msg; @@ -2576,64 +2574,58 @@ isp_plogx(ispsoftc_t *isp, int chan, uin } } - ISP_MEMZERO(q, QENTRY_LEN); - plp = (isp_plogx_t *) q; - plp->plogx_header.rqs_entry_count = 1; - plp->plogx_header.rqs_entry_type = RQSTYPE_LOGIN; - plp->plogx_handle = 0xffffffff; - plp->plogx_nphdl = handle; - plp->plogx_vphdl = chan; - plp->plogx_portlo = portid; - plp->plogx_rspsz_porthi = (portid >> 16) & 0xff; - plp->plogx_flags = flags; + ISP_MEMZERO(&pl, sizeof(pl)); + pl.plogx_header.rqs_entry_count = 1; + pl.plogx_header.rqs_entry_type = RQSTYPE_LOGIN; + pl.plogx_nphdl = handle; + pl.plogx_vphdl = chan; + pl.plogx_portlo = portid; + pl.plogx_rspsz_porthi = (portid >> 16) & 0xff; + pl.plogx_flags = flags; - if (isp->isp_dblev & ISP_LOGDEBUG1) { - isp_print_bytes(isp, "IOCB LOGX", QENTRY_LEN, plp); - } - - if (gs == 0) { - if (FC_SCRATCH_ACQUIRE(isp, chan)) { - isp_prt(isp, ISP_LOGERR, sacq); - return (-1); - } + /* Prepare space for response in memory */ + memset(resp, 0xff, sizeof(resp)); + pl.plogx_handle = isp_allocate_handle(isp, resp, ISP_HANDLE_CTRL); + if (pl.plogx_handle == 0) { + isp_prt(isp, ISP_LOGERR, + "%s: PLOGX of Chan %d out of handles", __func__, chan); + return (-1); } - fcp = FCPARAM(isp, chan); - scp = fcp->isp_scratch; - isp_put_plogx(isp, plp, (isp_plogx_t *) scp); - MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL, - MBCMD_DEFAULT_TIMEOUT + ICB_LOGIN_TOV * 1000000); - mbs.param[1] = QENTRY_LEN; - mbs.param[2] = DMA_WD1(fcp->isp_scdma); - mbs.param[3] = DMA_WD0(fcp->isp_scdma); - mbs.param[6] = DMA_WD3(fcp->isp_scdma); - mbs.param[7] = DMA_WD2(fcp->isp_scdma); - MEMORYBARRIER(isp, SYNC_SFORDEV, 0, QENTRY_LEN, chan); - isp_mboxcmd(isp, &mbs); - if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { - rval = mbs.param[0]; - goto out; + /* Send request and wait for response. */ + reqp = isp_getrqentry(isp); + if (reqp == NULL) { + isp_prt(isp, ISP_LOGERR, + "%s: PLOGX of Chan %d out of rqent", __func__, chan); + isp_destroy_handle(isp, pl.plogx_handle); + return (-1); } - MEMORYBARRIER(isp, SYNC_SFORCPU, QENTRY_LEN, QENTRY_LEN, chan); - scp += QENTRY_LEN; - isp_get_plogx(isp, (isp_plogx_t *) scp, plp); - if (isp->isp_dblev & ISP_LOGDEBUG1) { - isp_print_bytes(isp, "IOCB LOGX response", QENTRY_LEN, plp); + if (isp->isp_dblev & ISP_LOGDEBUG1) + isp_print_bytes(isp, "IOCB LOGX", QENTRY_LEN, &pl); + isp_put_plogx(isp, &pl, (isp_plogx_t *)reqp); + ISP_SYNC_REQUEST(isp); + if (msleep(resp, &isp->isp_lock, 0, "PLOGX", 3 * ICB_LOGIN_TOV * hz) + == EWOULDBLOCK) { + isp_prt(isp, ISP_LOGERR, + "%s: PLOGX of Chan %d timed out", __func__, chan); + isp_destroy_handle(isp, pl.plogx_handle); + return (-1); } + isp_get_plogx(isp, (isp_plogx_t *)resp, &pl); + if (isp->isp_dblev & ISP_LOGDEBUG1) + isp_print_bytes(isp, "IOCB LOGX response", QENTRY_LEN, &pl); - if (plp->plogx_status == PLOGX_STATUS_OK) { - rval = 0; - goto out; - } else if (plp->plogx_status != PLOGX_STATUS_IOCBERR) { + if (pl.plogx_status == PLOGX_STATUS_OK) { + return (0); + } else if (pl.plogx_status != PLOGX_STATUS_IOCBERR) { isp_prt(isp, ISP_LOGWARN, "status 0x%x on port login IOCB channel %d", - plp->plogx_status, chan); - rval = -1; - goto out; + pl.plogx_status, chan); + return (-1); } - sst = plp->plogx_ioparm[0].lo16 | (plp->plogx_ioparm[0].hi16 << 16); - parm1 = plp->plogx_ioparm[1].lo16 | (plp->plogx_ioparm[1].hi16 << 16); + sst = pl.plogx_ioparm[0].lo16 | (pl.plogx_ioparm[0].hi16 << 16); + parm1 = pl.plogx_ioparm[1].lo16 | (pl.plogx_ioparm[1].hi16 << 16); rval = -1; lev = ISP_LOGERR; @@ -2694,17 +2686,13 @@ isp_plogx(ispsoftc_t *isp, int chan, uin msg = "no FLOGI_ACC"; break; default: - ISP_SNPRINTF(buf, sizeof (buf), "status %x from %x", plp->plogx_status, flags); + ISP_SNPRINTF(buf, sizeof (buf), "status %x from %x", pl.plogx_status, flags); msg = buf; break; } if (msg) { isp_prt(isp, ISP_LOGERR, "Chan %d PLOGX PortID 0x%06x to N-Port handle 0x%x: %s", chan, portid, handle, msg); } -out: - if (gs == 0) { - FC_SCRATCH_RELEASE(isp, chan); - } return (rval); } @@ -3196,7 +3184,7 @@ isp_pdb_sync(ispsoftc_t *isp, int chan) lp->portid, PLOGX_FLG_CMD_LOGO | PLOGX_FLG_IMPLICIT | - PLOGX_FLG_FREE_NPHDL, 0); + PLOGX_FLG_FREE_NPHDL); } /* * Note that we might come out of this with our state @@ -3883,7 +3871,7 @@ isp_login_device(ispsoftc_t *isp, int ch /* * Now try and log into the device */ - r = isp_plogx(isp, chan, handle, portid, PLOGX_FLG_CMD_PLOGI, 1); + r = isp_plogx(isp, chan, handle, portid, PLOGX_FLG_CMD_PLOGI); if (r == 0) { break; } else if ((r & 0xffff) == MBOX_PORT_ID_USED) { @@ -3892,12 +3880,12 @@ isp_login_device(ispsoftc_t *isp, int ch * handle. We need to break that association. We used to try and just substitute the handle, but then * failed to get any data via isp_getpdb (below). */ - if (isp_plogx(isp, chan, r >> 16, portid, PLOGX_FLG_CMD_LOGO | PLOGX_FLG_IMPLICIT | PLOGX_FLG_FREE_NPHDL, 1)) { + if (isp_plogx(isp, chan, r >> 16, portid, PLOGX_FLG_CMD_LOGO | PLOGX_FLG_IMPLICIT | PLOGX_FLG_FREE_NPHDL)) { isp_prt(isp, ISP_LOGERR, "baw... logout of %x failed", r >> 16); } if (FCPARAM(isp, chan)->isp_loopstate != LOOP_SCANNING_FABRIC) return (-1); - r = isp_plogx(isp, chan, handle, portid, PLOGX_FLG_CMD_PLOGI, 1); + r = isp_plogx(isp, chan, handle, portid, PLOGX_FLG_CMD_PLOGI); if (r != 0) i = lim; break; @@ -4937,11 +4925,11 @@ isp_control(ispsoftc_t *isp, ispctl_t ct va_end(ap); if ((p->flags & PLOGX_FLG_CMD_MASK) != PLOGX_FLG_CMD_PLOGI || (p->handle != NIL_HANDLE)) { - return (isp_plogx(isp, p->channel, p->handle, p->portid, p->flags, 0)); + return (isp_plogx(isp, p->channel, p->handle, p->portid, p->flags)); } do { isp_next_handle(isp, &p->handle); - r = isp_plogx(isp, p->channel, p->handle, p->portid, p->flags, 0); + r = isp_plogx(isp, p->channel, p->handle, p->portid, p->flags); if ((r & 0xffff) == MBOX_PORT_ID_USED) { p->handle = r >> 16; r = 0; @@ -6170,6 +6158,7 @@ isp_handle_other_response(ispsoftc_t *is return (1); case RQSTYPE_VP_MODIFY: case RQSTYPE_VP_CTRL: + case RQSTYPE_LOGIN: ISP_IOXGET_32(isp, (uint32_t *)(hp + 1), hdl); ptr = isp_find_xs(isp, hdl); if (ptr != NULL) { From owner-svn-src-all@freebsd.org Wed Dec 30 11:52:21 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB681A557BE; Wed, 30 Dec 2015 11:52:21 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 311F81C5B; Wed, 30 Dec 2015 11:52:21 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBqKpv049202; Wed, 30 Dec 2015 11:52:20 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBqJOe049195; Wed, 30 Dec 2015 11:52:19 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301152.tBUBqJOe049195@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:52:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292925 - in vendor/compiler-rt/dist: . cmake cmake/Modules include/sanitizer lib lib/asan lib/asan/scripts lib/asan/tests lib/builtins lib/builtins/Darwin-excludes lib/builtins/arm lib... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:52:21 -0000 Author: dim Date: Wed Dec 30 11:52:19 2015 New Revision: 292925 URL: https://svnweb.freebsd.org/changeset/base/292925 Log: Vendor import of compiler-rt trunk r256633: https://llvm.org/svn/llvm-project/compiler-rt/trunk@256633 Added: vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake vendor/compiler-rt/dist/lib/asan/.clang-format vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/ vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/10.4-x86_64.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/10.4.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/CMakeLists.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/README.TXT (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/ios-armv7.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/ios-armv7s.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/ios.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/ios6-armv7.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/ios6-armv7s.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/ios7-arm64.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/iossim-i386.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/iossim-x86_64.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/iossim.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/osx-i386.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/osx-x86_64.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/osx.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cdcmp.S (contents, props changed) vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c (contents, props changed) vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cfcmp.S (contents, props changed) vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c (contents, props changed) vendor/compiler-rt/dist/lib/builtins/arm/aeabi_drsub.c (contents, props changed) vendor/compiler-rt/dist/lib/builtins/arm/aeabi_frsub.c (contents, props changed) vendor/compiler-rt/dist/lib/builtins/divtc3.c (contents, props changed) vendor/compiler-rt/dist/lib/builtins/emutls.c (contents, props changed) vendor/compiler-rt/dist/lib/builtins/floatditf.c (contents, props changed) vendor/compiler-rt/dist/lib/builtins/floatunditf.c (contents, props changed) vendor/compiler-rt/dist/lib/builtins/i386/chkstk2.S (contents, props changed) vendor/compiler-rt/dist/lib/builtins/macho_embedded/ vendor/compiler-rt/dist/lib/builtins/macho_embedded/CMakeLists.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/macho_embedded/arm.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/macho_embedded/common.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/macho_embedded/i386.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/macho_embedded/thumb2-64.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/macho_embedded/thumb2.txt (contents, props changed) vendor/compiler-rt/dist/lib/builtins/multc3.c (contents, props changed) vendor/compiler-rt/dist/lib/builtins/x86_64/chkstk2.S (contents, props changed) vendor/compiler-rt/dist/lib/cfi/ vendor/compiler-rt/dist/lib/cfi/CMakeLists.txt (contents, props changed) vendor/compiler-rt/dist/lib/cfi/cfi.cc (contents, props changed) vendor/compiler-rt/dist/lib/cfi/cfi_blacklist.txt (contents, props changed) vendor/compiler-rt/dist/lib/dfsan/.clang-format vendor/compiler-rt/dist/lib/dfsan/dfsan_platform.h (contents, props changed) vendor/compiler-rt/dist/lib/interception/.clang-format vendor/compiler-rt/dist/lib/lsan/.clang-format vendor/compiler-rt/dist/lib/msan/.clang-format vendor/compiler-rt/dist/lib/profile/InstrProfData.inc (contents, props changed) vendor/compiler-rt/dist/lib/profile/InstrProfilingPlatformLinux.c (contents, props changed) vendor/compiler-rt/dist/lib/profile/InstrProfilingPort.h (contents, props changed) vendor/compiler-rt/dist/lib/profile/InstrProfilingValue.c (contents, props changed) vendor/compiler-rt/dist/lib/profile/InstrProfilingWriter.c (contents, props changed) vendor/compiler-rt/dist/lib/safestack/.clang-format vendor/compiler-rt/dist/lib/sanitizer_common/.clang-format vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_nolibc.cc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_malloc_mac.inc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc (contents, props changed) vendor/compiler-rt/dist/lib/tsan/.clang-format vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors_mac.cc (contents, props changed) vendor/compiler-rt/dist/lib/tsan/rtl/tsan_libdispatch_mac.cc (contents, props changed) vendor/compiler-rt/dist/lib/tsan/rtl/tsan_malloc_mac.cc (contents, props changed) vendor/compiler-rt/dist/lib/tsan/rtl/tsan_platform_posix.cc (contents, props changed) vendor/compiler-rt/dist/lib/tsan/rtl/tsan_ppc_regs.h (contents, props changed) vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_aarch64.S (contents, props changed) vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_ppc64.S (contents, props changed) vendor/compiler-rt/dist/lib/tsan/tests/rtl/tsan_test_util_posix.cc (contents, props changed) vendor/compiler-rt/dist/lib/ubsan/ubsan_checks.inc (contents, props changed) vendor/compiler-rt/dist/make/platform/clang_mingw.mk (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Darwin/abort_on_error.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/abort_on_error.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/activation-options.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/calloc-preload.c (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/init_fini_sections.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/mincore.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/pthread_create_version.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/asan-symbolize-bad-path.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/closed-fds.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-caller-callee.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-maybe-open-file.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/current_allocated_bytes.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/deep_call_stack.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/deep_thread_stack.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/dlclose-test.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/free_hook_realloc.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/freopen.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/gc-test.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/halt_on_error-signals.c (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/halt_on_error-torture.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/halt_on_error_suppress_equal_pcs.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/init-order-pthread-create.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/stack-overflow.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/stack-use-after-return.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/wait3.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_control_c.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Windows/fuse-lld.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Windows/unsymbolized.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/halt_on_error-1.c (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/speculative_load.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/speculative_load2.cc (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/arm/ vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_cdcmpeq_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_cdcmple_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_cfcmpeq_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_cfcmple_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_drsub_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_frsub_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/arm/call_apsr.S (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/arm/call_apsr.h (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/fixtfdi_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/fixtfti_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/fixunstfti_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/floatditf_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/floatunditf_test.c (contents, props changed) vendor/compiler-rt/dist/test/cfi/base-derived-destructor.cpp (contents, props changed) vendor/compiler-rt/dist/test/cfi/create-derivers.test vendor/compiler-rt/dist/test/cfi/cross-dso/ vendor/compiler-rt/dist/test/cfi/cross-dso/icall/ vendor/compiler-rt/dist/test/cfi/cross-dso/icall/icall-from-dso.cpp (contents, props changed) vendor/compiler-rt/dist/test/cfi/cross-dso/icall/icall.cpp (contents, props changed) vendor/compiler-rt/dist/test/cfi/cross-dso/icall/lit.local.cfg vendor/compiler-rt/dist/test/cfi/cross-dso/lit.local.cfg vendor/compiler-rt/dist/test/cfi/cross-dso/simple-fail.cpp (contents, props changed) vendor/compiler-rt/dist/test/cfi/cross-dso/simple-pass.cpp (contents, props changed) vendor/compiler-rt/dist/test/cfi/icall/ vendor/compiler-rt/dist/test/cfi/icall/bad-signature.c (contents, props changed) vendor/compiler-rt/dist/test/cfi/icall/external-call.c (contents, props changed) vendor/compiler-rt/dist/test/cfi/icall/lit.local.cfg vendor/compiler-rt/dist/test/interception/ vendor/compiler-rt/dist/test/lsan/TestCases/cleanup_in_tsd_destructor.c (contents, props changed) vendor/compiler-rt/dist/test/lsan/TestCases/disabler.c (contents, props changed) vendor/compiler-rt/dist/test/lsan/TestCases/disabler_in_tsd_destructor.c (contents, props changed) vendor/compiler-rt/dist/test/lsan/TestCases/ignore_object.c (contents, props changed) vendor/compiler-rt/dist/test/msan/Linux/forkpty.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/Linux/mincore.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/Linux/process_vm_readv.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/allocator_mapping.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/ctermid.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/dlopen_executable.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/dtor-base-access.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/dtor-bit-fields.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/dtor-derived-class.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/dtor-member.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/dtor-multiple-inheritance-nontrivial-class-members.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/dtor-multiple-inheritance.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/dtor-trivial-class-members.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/dtor-trivial.cpp (contents, props changed) vendor/compiler-rt/dist/test/msan/dtor-vtable-multiple-inheritance.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/dtor-vtable.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/icmp_slt_allones.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/memcmp_test.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/msan_copy_shadow.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/pthread_setcancelstate.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/sem_getvalue.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/test.h (contents, props changed) vendor/compiler-rt/dist/test/msan/use-after-dtor.cc (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-shared-lib.c (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-shared-main.c (contents, props changed) vendor/compiler-rt/dist/test/profile/instrprof-bufferio.c (contents, props changed) vendor/compiler-rt/dist/test/profile/instrprof-error.c (contents, props changed) vendor/compiler-rt/dist/test/profile/instrprof-shared.test vendor/compiler-rt/dist/test/profile/instrprof-value-prof-2.c (contents, props changed) vendor/compiler-rt/dist/test/profile/instrprof-value-prof.c (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Darwin/ vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Darwin/abort_on_error.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Darwin/lit.local.cfg vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/abort_on_error.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/fpe.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/ill.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/sem_init_glibc.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/fopen_nullptr.c (contents, props changed) vendor/compiler-rt/dist/test/tsan/Darwin/ vendor/compiler-rt/dist/test/tsan/Darwin/gcd-async-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-async-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-stress.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-once.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-semaphore-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-serial-queue-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-sync-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-sync-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/lit.local.cfg vendor/compiler-rt/dist/test/tsan/Darwin/objc-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/objc-simple.mm vendor/compiler-rt/dist/test/tsan/Darwin/osspinlock-norace.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/Darwin/symbolizer-atos.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/Darwin/symbolizer-dladdr.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/Linux/check_memcpy.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/atomic_free3.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/fd_tid_recycled.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/memcmp_race.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/pie_test.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/race_stress.cc (contents, props changed) vendor/compiler-rt/dist/test/ubsan/TestCases/Integer/suppressions.cpp (contents, props changed) vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/coverage-levels.cc (contents, props changed) Deleted: vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_process_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_win.h vendor/compiler-rt/dist/lib/tsan/Makefile.old vendor/compiler-rt/dist/lib/tsan/check_memcpy.sh vendor/compiler-rt/dist/lib/tsan/rtl/Makefile.old vendor/compiler-rt/dist/lib/tsan/tests/rtl/tsan_test_util_linux.cc vendor/compiler-rt/dist/test/asan/TestCases/Helpers/init-order-pthread-create-extra.cc vendor/compiler-rt/dist/test/asan/TestCases/closed-fds.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-caller-callee.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-maybe-open-file.cc vendor/compiler-rt/dist/test/asan/TestCases/current_allocated_bytes.cc vendor/compiler-rt/dist/test/asan/TestCases/deep_call_stack.cc vendor/compiler-rt/dist/test/asan/TestCases/deep_thread_stack.cc vendor/compiler-rt/dist/test/asan/TestCases/dlclose-test.cc vendor/compiler-rt/dist/test/asan/TestCases/free_hook_realloc.cc vendor/compiler-rt/dist/test/asan/TestCases/gc-test.cc vendor/compiler-rt/dist/test/asan/TestCases/init-order-pthread-create.cc vendor/compiler-rt/dist/test/asan/TestCases/stack-overflow.cc vendor/compiler-rt/dist/test/asan/TestCases/stack-use-after-return.cc vendor/compiler-rt/dist/test/lsan/TestCases/cleanup_in_tsd_destructor.cc vendor/compiler-rt/dist/test/lsan/TestCases/disabler_in_tsd_destructor.cc vendor/compiler-rt/dist/test/lsan/TestCases/ignore_object.cc vendor/compiler-rt/dist/test/tsan/test_output.sh vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/Linux/coverage-levels.cc Modified: vendor/compiler-rt/dist/CMakeLists.txt vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake vendor/compiler-rt/dist/cmake/Modules/CompilerRTCompile.cmake vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake vendor/compiler-rt/dist/cmake/Modules/SanitizerUtils.cmake vendor/compiler-rt/dist/cmake/config-ix.cmake vendor/compiler-rt/dist/include/sanitizer/asan_interface.h vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h vendor/compiler-rt/dist/include/sanitizer/coverage_interface.h vendor/compiler-rt/dist/include/sanitizer/dfsan_interface.h vendor/compiler-rt/dist/include/sanitizer/lsan_interface.h vendor/compiler-rt/dist/include/sanitizer/msan_interface.h vendor/compiler-rt/dist/lib/CMakeLists.txt vendor/compiler-rt/dist/lib/asan/CMakeLists.txt vendor/compiler-rt/dist/lib/asan/README.txt vendor/compiler-rt/dist/lib/asan/asan_activation.cc vendor/compiler-rt/dist/lib/asan/asan_allocator.cc vendor/compiler-rt/dist/lib/asan/asan_allocator.h vendor/compiler-rt/dist/lib/asan/asan_debugging.cc vendor/compiler-rt/dist/lib/asan/asan_fake_stack.cc vendor/compiler-rt/dist/lib/asan/asan_flags.cc vendor/compiler-rt/dist/lib/asan/asan_flags.inc vendor/compiler-rt/dist/lib/asan/asan_globals.cc vendor/compiler-rt/dist/lib/asan/asan_init_version.h vendor/compiler-rt/dist/lib/asan/asan_interceptors.cc vendor/compiler-rt/dist/lib/asan/asan_interceptors.h vendor/compiler-rt/dist/lib/asan/asan_interface_internal.h vendor/compiler-rt/dist/lib/asan/asan_internal.h vendor/compiler-rt/dist/lib/asan/asan_linux.cc vendor/compiler-rt/dist/lib/asan/asan_mac.cc vendor/compiler-rt/dist/lib/asan/asan_malloc_linux.cc vendor/compiler-rt/dist/lib/asan/asan_malloc_mac.cc vendor/compiler-rt/dist/lib/asan/asan_mapping.h vendor/compiler-rt/dist/lib/asan/asan_new_delete.cc vendor/compiler-rt/dist/lib/asan/asan_poisoning.cc vendor/compiler-rt/dist/lib/asan/asan_posix.cc vendor/compiler-rt/dist/lib/asan/asan_report.cc vendor/compiler-rt/dist/lib/asan/asan_report.h vendor/compiler-rt/dist/lib/asan/asan_rtl.cc vendor/compiler-rt/dist/lib/asan/asan_stack.h vendor/compiler-rt/dist/lib/asan/asan_thread.cc vendor/compiler-rt/dist/lib/asan/asan_thread.h vendor/compiler-rt/dist/lib/asan/asan_win.cc vendor/compiler-rt/dist/lib/asan/asan_win_dll_thunk.cc vendor/compiler-rt/dist/lib/asan/asan_win_dynamic_runtime_thunk.cc vendor/compiler-rt/dist/lib/asan/scripts/asan_device_setup vendor/compiler-rt/dist/lib/asan/scripts/asan_symbolize.py vendor/compiler-rt/dist/lib/asan/tests/CMakeLists.txt vendor/compiler-rt/dist/lib/asan/tests/asan_asm_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_interface_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_mac_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_noinst_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_test_main.cc vendor/compiler-rt/dist/lib/builtins/CMakeLists.txt vendor/compiler-rt/dist/lib/builtins/README.txt vendor/compiler-rt/dist/lib/builtins/assembly.h vendor/compiler-rt/dist/lib/builtins/atomic.c vendor/compiler-rt/dist/lib/builtins/atomic_flag_clear.c vendor/compiler-rt/dist/lib/builtins/atomic_flag_clear_explicit.c vendor/compiler-rt/dist/lib/builtins/atomic_flag_test_and_set.c vendor/compiler-rt/dist/lib/builtins/atomic_flag_test_and_set_explicit.c vendor/compiler-rt/dist/lib/builtins/atomic_signal_fence.c vendor/compiler-rt/dist/lib/builtins/atomic_thread_fence.c vendor/compiler-rt/dist/lib/builtins/comparedf2.c vendor/compiler-rt/dist/lib/builtins/comparesf2.c vendor/compiler-rt/dist/lib/builtins/comparetf2.c vendor/compiler-rt/dist/lib/builtins/divdc3.c vendor/compiler-rt/dist/lib/builtins/divsc3.c vendor/compiler-rt/dist/lib/builtins/divxc3.c vendor/compiler-rt/dist/lib/builtins/enable_execute_stack.c vendor/compiler-rt/dist/lib/builtins/extendhfsf2.c vendor/compiler-rt/dist/lib/builtins/fixunsdfdi.c vendor/compiler-rt/dist/lib/builtins/fixunssfdi.c vendor/compiler-rt/dist/lib/builtins/floatdidf.c vendor/compiler-rt/dist/lib/builtins/floatsitf.c vendor/compiler-rt/dist/lib/builtins/floatundidf.c vendor/compiler-rt/dist/lib/builtins/fp_add_impl.inc vendor/compiler-rt/dist/lib/builtins/fp_extend.h vendor/compiler-rt/dist/lib/builtins/fp_extend_impl.inc vendor/compiler-rt/dist/lib/builtins/fp_fixint_impl.inc vendor/compiler-rt/dist/lib/builtins/fp_fixuint_impl.inc vendor/compiler-rt/dist/lib/builtins/fp_lib.h vendor/compiler-rt/dist/lib/builtins/fp_mul_impl.inc vendor/compiler-rt/dist/lib/builtins/fp_trunc.h vendor/compiler-rt/dist/lib/builtins/fp_trunc_impl.inc vendor/compiler-rt/dist/lib/builtins/gcc_personality_v0.c vendor/compiler-rt/dist/lib/builtins/i386/chkstk.S vendor/compiler-rt/dist/lib/builtins/int_lib.h vendor/compiler-rt/dist/lib/builtins/int_math.h vendor/compiler-rt/dist/lib/builtins/int_types.h vendor/compiler-rt/dist/lib/builtins/int_util.c vendor/compiler-rt/dist/lib/builtins/int_util.h vendor/compiler-rt/dist/lib/builtins/muldc3.c vendor/compiler-rt/dist/lib/builtins/mulsc3.c vendor/compiler-rt/dist/lib/builtins/mulxc3.c vendor/compiler-rt/dist/lib/builtins/ppc/DD.h vendor/compiler-rt/dist/lib/builtins/ppc/divtc3.c vendor/compiler-rt/dist/lib/builtins/ppc/multc3.c vendor/compiler-rt/dist/lib/builtins/subdf3.c vendor/compiler-rt/dist/lib/builtins/subsf3.c vendor/compiler-rt/dist/lib/builtins/truncdfhf2.c vendor/compiler-rt/dist/lib/builtins/truncsfhf2.c vendor/compiler-rt/dist/lib/builtins/x86_64/chkstk.S vendor/compiler-rt/dist/lib/dfsan/CMakeLists.txt vendor/compiler-rt/dist/lib/dfsan/dfsan.cc vendor/compiler-rt/dist/lib/dfsan/dfsan.h vendor/compiler-rt/dist/lib/dfsan/dfsan_custom.cc vendor/compiler-rt/dist/lib/dfsan/done_abilist.txt vendor/compiler-rt/dist/lib/interception/interception_linux.h vendor/compiler-rt/dist/lib/interception/interception_win.cc vendor/compiler-rt/dist/lib/interception/interception_win.h vendor/compiler-rt/dist/lib/lsan/CMakeLists.txt vendor/compiler-rt/dist/lib/lsan/lsan.cc vendor/compiler-rt/dist/lib/lsan/lsan_allocator.cc vendor/compiler-rt/dist/lib/lsan/lsan_common.cc vendor/compiler-rt/dist/lib/lsan/lsan_common.h vendor/compiler-rt/dist/lib/lsan/lsan_common_linux.cc vendor/compiler-rt/dist/lib/lsan/lsan_flags.inc vendor/compiler-rt/dist/lib/lsan/lsan_interceptors.cc vendor/compiler-rt/dist/lib/lsan/lsan_thread.cc vendor/compiler-rt/dist/lib/msan/CMakeLists.txt vendor/compiler-rt/dist/lib/msan/msan.cc vendor/compiler-rt/dist/lib/msan/msan.h vendor/compiler-rt/dist/lib/msan/msan_allocator.cc vendor/compiler-rt/dist/lib/msan/msan_chained_origin_depot.cc vendor/compiler-rt/dist/lib/msan/msan_flags.inc vendor/compiler-rt/dist/lib/msan/msan_interceptors.cc vendor/compiler-rt/dist/lib/msan/msan_interface_internal.h vendor/compiler-rt/dist/lib/msan/msan_linux.cc vendor/compiler-rt/dist/lib/msan/msan_new_delete.cc vendor/compiler-rt/dist/lib/msan/msan_thread.h vendor/compiler-rt/dist/lib/msan/tests/CMakeLists.txt vendor/compiler-rt/dist/lib/msan/tests/msan_test.cc vendor/compiler-rt/dist/lib/profile/CMakeLists.txt vendor/compiler-rt/dist/lib/profile/InstrProfiling.c vendor/compiler-rt/dist/lib/profile/InstrProfiling.h vendor/compiler-rt/dist/lib/profile/InstrProfilingBuffer.c vendor/compiler-rt/dist/lib/profile/InstrProfilingFile.c vendor/compiler-rt/dist/lib/profile/InstrProfilingInternal.h vendor/compiler-rt/dist/lib/profile/InstrProfilingPlatformDarwin.c vendor/compiler-rt/dist/lib/profile/InstrProfilingPlatformOther.c vendor/compiler-rt/dist/lib/profile/InstrProfilingRuntime.cc vendor/compiler-rt/dist/lib/profile/InstrProfilingUtil.c vendor/compiler-rt/dist/lib/safestack/CMakeLists.txt vendor/compiler-rt/dist/lib/safestack/safestack.cc vendor/compiler-rt/dist/lib/sanitizer_common/CMakeLists.txt vendor/compiler-rt/dist/lib/sanitizer_common/Makefile.mk vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_addrhashmap.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_internal.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_asm.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_atomic.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors_format.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_syscalls.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_mapping_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_deadlock_detector1.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_flag_parser.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_flag_parser.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_flags.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_flags.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_flags.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_interface_internal.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_internal_defs.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_lfstack.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_libc.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_libc.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_libignore.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_list.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_mac.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_mac.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_persistent_allocator.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_interceptors.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_posix.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_posix.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_printf.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_procmaps_common.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_procmaps_linux.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_procmaps_mac.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_quarantine.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stackdepot.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stackdepot.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stackdepotbase.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stacktrace.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stacktrace.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stacktrace_printer.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_suppressions.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_suppressions.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_internal.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_mac.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_win.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_thread_registry.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_tls_get_addr.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win.cc vendor/compiler-rt/dist/lib/sanitizer_common/scripts/gen_dynamic_list.py vendor/compiler-rt/dist/lib/sanitizer_common/tests/CMakeLists.txt vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_allocator_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_common_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_libc_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_linux_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_stacktrace_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_suppressions_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_test_main.cc vendor/compiler-rt/dist/lib/tsan/CMakeLists.txt vendor/compiler-rt/dist/lib/tsan/analyze_libtsan.sh vendor/compiler-rt/dist/lib/tsan/check_analyze.sh vendor/compiler-rt/dist/lib/tsan/dd/CMakeLists.txt vendor/compiler-rt/dist/lib/tsan/go/buildgo.sh vendor/compiler-rt/dist/lib/tsan/rtl/tsan_clock.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_defs.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_dense_alloc.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.inc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_ann.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_mman.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_mman.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_mutex.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_mutex.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_new_delete.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_platform.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_platform_linux.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_platform_mac.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_platform_windows.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_report.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_amd64.S vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_mutex.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_report.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_thread.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_stat.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_stat.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_suppressions.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_symbolize.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_sync.h vendor/compiler-rt/dist/lib/tsan/tests/CMakeLists.txt vendor/compiler-rt/dist/lib/tsan/tests/rtl/CMakeLists.txt vendor/compiler-rt/dist/lib/tsan/tests/rtl/tsan_posix.cc vendor/compiler-rt/dist/lib/tsan/tests/rtl/tsan_test.cc vendor/compiler-rt/dist/lib/tsan/tests/rtl/tsan_test_util.h vendor/compiler-rt/dist/lib/tsan/tests/unit/tsan_clock_test.cc vendor/compiler-rt/dist/lib/tsan/tests/unit/tsan_flags_test.cc vendor/compiler-rt/dist/lib/tsan/tests/unit/tsan_mman_test.cc vendor/compiler-rt/dist/lib/ubsan/CMakeLists.txt vendor/compiler-rt/dist/lib/ubsan/ubsan_diag.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_diag.h vendor/compiler-rt/dist/lib/ubsan/ubsan_flags.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_flags.inc vendor/compiler-rt/dist/lib/ubsan/ubsan_handlers.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_handlers.h vendor/compiler-rt/dist/lib/ubsan/ubsan_handlers_cxx.cc vendor/compiler-rt/dist/make/platform/clang_darwin.mk vendor/compiler-rt/dist/make/platform/clang_darwin_test_input.c vendor/compiler-rt/dist/make/platform/clang_linux.mk vendor/compiler-rt/dist/test/CMakeLists.txt vendor/compiler-rt/dist/test/asan/CMakeLists.txt vendor/compiler-rt/dist/test/asan/TestCases/Android/coverage-android.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/atos-symbolizer-dyld-root-path.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/atos-symbolizer.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/crashlog-stacktraces.c vendor/compiler-rt/dist/test/asan/TestCases/Darwin/dladdr-demangling.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/dyld_insert_libraries_reexec.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/interface_symbols_darwin.c vendor/compiler-rt/dist/test/asan/TestCases/Darwin/suppressions-darwin.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/suppressions-sandbox.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/asan_prelink_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/coverage-missing.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/init-order-dlopen.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/initialization-bug-any-order.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/interface_symbols_linux.c vendor/compiler-rt/dist/test/asan/TestCases/Linux/kernel-area.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/leak.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/malloc-in-qsort.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/malloc_delete_mismatch.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/nohugepage_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/odr-violation.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/overflow-in-qsort.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/ptrace.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/quarantine_size_mb.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/read_binary_name_regtest.c vendor/compiler-rt/dist/test/asan/TestCases/Linux/sized_delete_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/stack-overflow-sigbus.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/stack-trace-dlclose.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/static_tls.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/stress_dtls.c vendor/compiler-rt/dist/test/asan/TestCases/Posix/allow_user_segv.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/asan-symbolize-sanity-test.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/assign_large_valloc_to_global.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-direct-activation.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-direct-large.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-direct.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-fork-direct.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-fork.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-module-unloaded.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-sandboxing.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/ioctl.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/large_allocator_unpoisons_on_free.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/log_path_fork_test.cc.disabled vendor/compiler-rt/dist/test/asan/TestCases/Posix/new_array_cookie_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/new_array_cookie_uaf_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/new_array_cookie_with_new_from_class.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/start-deactivated.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/tsd_dtor_leak.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/wait.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/bitfield_uaf.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/coverage-basic.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/demangled_names.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_noreturn.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_poison_unpoison.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_report_globals_symbolization_at_startup.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_stack_use_after_return.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/intercept_strdup.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/null_deref.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/operator_delete_wrong_argument.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/operator_new_left_oob.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/operator_new_right_oob.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/operator_new_uaf.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/queue_user_work_item_report.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/report_after_syminitialize.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/report_globals_reload_dll.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/report_globals_vs_freelibrary.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/seh.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/shadow_mapping_failure.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/stack_use_after_return.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/symbols_path.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/thread_stack_array_left_oob.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/thread_stack_array_right_oob.cc vendor/compiler-rt/dist/test/asan/TestCases/alloca_loop_unpoisoning.cc vendor/compiler-rt/dist/test/asan/TestCases/alloca_vla_interact.cc vendor/compiler-rt/dist/test/asan/TestCases/allocator_returns_null.cc vendor/compiler-rt/dist/test/asan/TestCases/asan_and_llvm_coverage_test.cc vendor/compiler-rt/dist/test/asan/TestCases/asan_options-help.cc vendor/compiler-rt/dist/test/asan/TestCases/atexit_stats.cc vendor/compiler-rt/dist/test/asan/TestCases/atoi_strict.c vendor/compiler-rt/dist/test/asan/TestCases/atol_strict.c vendor/compiler-rt/dist/test/asan/TestCases/atoll_strict.c vendor/compiler-rt/dist/test/asan/TestCases/contiguous_container.cc vendor/compiler-rt/dist/test/asan/TestCases/contiguous_container_crash.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-and-lsan.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-caller-callee-total-count.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-disabled.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-levels.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-order-pcs.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-reset.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-tracing.cc vendor/compiler-rt/dist/test/asan/TestCases/debug_mapping.cc vendor/compiler-rt/dist/test/asan/TestCases/debug_ppc64_mapping.cc vendor/compiler-rt/dist/test/asan/TestCases/debug_report.cc vendor/compiler-rt/dist/test/asan/TestCases/debug_stacks.cc vendor/compiler-rt/dist/test/asan/TestCases/deep_stack_uaf.cc vendor/compiler-rt/dist/test/asan/TestCases/double-free.cc vendor/compiler-rt/dist/test/asan/TestCases/dump_instruction_bytes.cc vendor/compiler-rt/dist/test/asan/TestCases/heap-overflow.cc vendor/compiler-rt/dist/test/asan/TestCases/heavy_uar_test.cc vendor/compiler-rt/dist/test/asan/TestCases/init-order-atexit.cc vendor/compiler-rt/dist/test/asan/TestCases/initialization-blacklist.cc vendor/compiler-rt/dist/test/asan/TestCases/initialization-bug.cc vendor/compiler-rt/dist/test/asan/TestCases/initialization-constexpr.cc vendor/compiler-rt/dist/test/asan/TestCases/initialization-nobug.cc vendor/compiler-rt/dist/test/asan/TestCases/interception_failure_test.cc vendor/compiler-rt/dist/test/asan/TestCases/invalid-free.cc vendor/compiler-rt/dist/test/asan/TestCases/log-path_test.cc vendor/compiler-rt/dist/test/asan/TestCases/malloc_context_size.cc vendor/compiler-rt/dist/test/asan/TestCases/malloc_fill.cc vendor/compiler-rt/dist/test/asan/TestCases/max_redzone.cc vendor/compiler-rt/dist/test/asan/TestCases/memcmp_strict_test.cc vendor/compiler-rt/dist/test/asan/TestCases/mmap_limit_mb.cc vendor/compiler-rt/dist/test/asan/TestCases/null_deref.cc vendor/compiler-rt/dist/test/asan/TestCases/on_error_callback.cc vendor/compiler-rt/dist/test/asan/TestCases/poison_partial.cc vendor/compiler-rt/dist/test/asan/TestCases/print_summary.cc vendor/compiler-rt/dist/test/asan/TestCases/printf-1.c vendor/compiler-rt/dist/test/asan/TestCases/printf-2.c vendor/compiler-rt/dist/test/asan/TestCases/printf-3.c vendor/compiler-rt/dist/test/asan/TestCases/printf-4.c vendor/compiler-rt/dist/test/asan/TestCases/printf-5.c vendor/compiler-rt/dist/test/asan/TestCases/sleep_before_dying.c vendor/compiler-rt/dist/test/asan/TestCases/stack-oob-frames.cc vendor/compiler-rt/dist/test/asan/TestCases/strcasestr-1.c vendor/compiler-rt/dist/test/asan/TestCases/strcasestr-2.c vendor/compiler-rt/dist/test/asan/TestCases/strcasestr_strict.c vendor/compiler-rt/dist/test/asan/TestCases/strcat_strict.c vendor/compiler-rt/dist/test/asan/TestCases/strchr_strict.c vendor/compiler-rt/dist/test/asan/TestCases/strcmp_strict.c vendor/compiler-rt/dist/test/asan/TestCases/strcspn-1.c vendor/compiler-rt/dist/test/asan/TestCases/strcspn-2.c vendor/compiler-rt/dist/test/asan/TestCases/strcspn_strict.c vendor/compiler-rt/dist/test/asan/TestCases/strip_path_prefix.c vendor/compiler-rt/dist/test/asan/TestCases/strncat_strict.c vendor/compiler-rt/dist/test/asan/TestCases/strpbrk-1.c vendor/compiler-rt/dist/test/asan/TestCases/strpbrk-2.c vendor/compiler-rt/dist/test/asan/TestCases/strpbrk_strict.c vendor/compiler-rt/dist/test/asan/TestCases/strspn-1.c vendor/compiler-rt/dist/test/asan/TestCases/strspn-2.c vendor/compiler-rt/dist/test/asan/TestCases/strspn_strict.c vendor/compiler-rt/dist/test/asan/TestCases/strstr-1.c vendor/compiler-rt/dist/test/asan/TestCases/strstr-2.c vendor/compiler-rt/dist/test/asan/TestCases/strstr_strict.c vendor/compiler-rt/dist/test/asan/TestCases/strtol_strict.c vendor/compiler-rt/dist/test/asan/TestCases/strtoll_strict.c vendor/compiler-rt/dist/test/asan/TestCases/suppressions-exec-relative-location.cc vendor/compiler-rt/dist/test/asan/TestCases/suppressions-function.cc vendor/compiler-rt/dist/test/asan/TestCases/suppressions-interceptor.cc vendor/compiler-rt/dist/test/asan/TestCases/suppressions-library.cc vendor/compiler-rt/dist/test/asan/TestCases/throw_call_test.cc vendor/compiler-rt/dist/test/asan/TestCases/uar_and_exceptions.cc vendor/compiler-rt/dist/test/asan/TestCases/use-after-poison.cc vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope.cc vendor/compiler-rt/dist/test/asan/TestCases/verbose-log-path_test.cc vendor/compiler-rt/dist/test/asan/TestCases/zero_page_pc.cc vendor/compiler-rt/dist/test/asan/android_commands/android_run.py vendor/compiler-rt/dist/test/asan/lit.cfg vendor/compiler-rt/dist/test/builtins/Unit/divtc3_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixtfsi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunsdfdi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunsdfsi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunsdfti_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunssfdi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunssfsi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunstfdi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunstfsi_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatsitf_test.c vendor/compiler-rt/dist/test/builtins/Unit/multc3_test.c vendor/compiler-rt/dist/test/builtins/Unit/multf3_test.c vendor/compiler-rt/dist/test/cfi/CMakeLists.txt vendor/compiler-rt/dist/test/cfi/anon-namespace.cpp vendor/compiler-rt/dist/test/cfi/bad-cast.cpp vendor/compiler-rt/dist/test/cfi/lit.cfg vendor/compiler-rt/dist/test/cfi/multiple-inheritance.cpp vendor/compiler-rt/dist/test/cfi/nvcall.cpp vendor/compiler-rt/dist/test/cfi/overwrite.cpp vendor/compiler-rt/dist/test/cfi/sibling.cpp vendor/compiler-rt/dist/test/cfi/simple-fail.cpp vendor/compiler-rt/dist/test/cfi/utils.h vendor/compiler-rt/dist/test/cfi/vdtor.cpp vendor/compiler-rt/dist/test/lit.common.cfg vendor/compiler-rt/dist/test/lit.common.configured.in vendor/compiler-rt/dist/test/lsan/TestCases/disabler.cc vendor/compiler-rt/dist/test/lsan/TestCases/suppressions_file.cc vendor/compiler-rt/dist/test/msan/Linux/mallinfo.cc vendor/compiler-rt/dist/test/msan/dlerror.cc vendor/compiler-rt/dist/test/msan/insertvalue_origin.cc vendor/compiler-rt/dist/test/msan/mmap.cc vendor/compiler-rt/dist/test/msan/mmap_below_shadow.cc vendor/compiler-rt/dist/test/msan/param_tls_limit.cc vendor/compiler-rt/dist/test/msan/signal_stress_test.cc vendor/compiler-rt/dist/test/msan/strlen_of_shadow.cc vendor/compiler-rt/dist/test/profile/instrprof-without-libc.c vendor/compiler-rt/dist/test/safestack/lit.cfg vendor/compiler-rt/dist/test/safestack/overflow.c vendor/compiler-rt/dist/test/sanitizer_common/CMakeLists.txt vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/assert.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/getpass.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/hard_rss_limit_mb_test.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/open_memstream.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/ptrace.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/sanitizer_set_death_callback_test.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/soft_rss_limit_mb_test.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/decorate_proc_maps.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/options-help.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/options-include.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/options-invalid.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/print-stack-trace.cc vendor/compiler-rt/dist/test/sanitizer_common/lit.common.cfg vendor/compiler-rt/dist/test/tsan/CMakeLists.txt vendor/compiler-rt/dist/test/tsan/allocator_returns_null.cc vendor/compiler-rt/dist/test/tsan/barrier.cc vendor/compiler-rt/dist/test/tsan/bench_acquire_only.cc vendor/compiler-rt/dist/test/tsan/bench_acquire_release.cc vendor/compiler-rt/dist/test/tsan/bench_local_mutex.cc vendor/compiler-rt/dist/test/tsan/bench_mutex.cc vendor/compiler-rt/dist/test/tsan/bench_release_only.cc vendor/compiler-rt/dist/test/tsan/bench_rwmutex.cc vendor/compiler-rt/dist/test/tsan/bench_single_writer.cc vendor/compiler-rt/dist/test/tsan/bench_ten_mutexes.cc vendor/compiler-rt/dist/test/tsan/cond_cancel.c vendor/compiler-rt/dist/test/tsan/cond_version.c vendor/compiler-rt/dist/test/tsan/deadlock_detector_stress_test.cc vendor/compiler-rt/dist/test/tsan/dl_iterate_phdr.cc vendor/compiler-rt/dist/test/tsan/dlclose.cc vendor/compiler-rt/dist/test/tsan/fork_atexit.cc vendor/compiler-rt/dist/test/tsan/fork_deadlock.cc vendor/compiler-rt/dist/test/tsan/fork_multithreaded.cc vendor/compiler-rt/dist/test/tsan/fork_multithreaded3.cc vendor/compiler-rt/dist/test/tsan/free_race.c vendor/compiler-rt/dist/test/tsan/getline_nohang.cc vendor/compiler-rt/dist/test/tsan/global_race.cc vendor/compiler-rt/dist/test/tsan/global_race2.cc vendor/compiler-rt/dist/test/tsan/global_race3.cc vendor/compiler-rt/dist/test/tsan/halt_on_error.cc vendor/compiler-rt/dist/test/tsan/ignore_lib0.cc vendor/compiler-rt/dist/test/tsan/ignore_lib1.cc vendor/compiler-rt/dist/test/tsan/ignore_lib2.cc vendor/compiler-rt/dist/test/tsan/ignore_lib3.cc vendor/compiler-rt/dist/test/tsan/inlined_memcpy_race.cc vendor/compiler-rt/dist/test/tsan/java_race_pc.cc vendor/compiler-rt/dist/test/tsan/lit.cfg vendor/compiler-rt/dist/test/tsan/load_shared_lib.cc vendor/compiler-rt/dist/test/tsan/malloc_overflow.cc vendor/compiler-rt/dist/test/tsan/map32bit.cc vendor/compiler-rt/dist/test/tsan/memcpy_race.cc vendor/compiler-rt/dist/test/tsan/mmap_large.cc vendor/compiler-rt/dist/test/tsan/mop_with_offset.cc vendor/compiler-rt/dist/test/tsan/mop_with_offset2.cc vendor/compiler-rt/dist/test/tsan/mutex_cycle2.c vendor/compiler-rt/dist/test/tsan/mutexset1.cc vendor/compiler-rt/dist/test/tsan/mutexset2.cc vendor/compiler-rt/dist/test/tsan/mutexset3.cc vendor/compiler-rt/dist/test/tsan/mutexset4.cc vendor/compiler-rt/dist/test/tsan/mutexset5.cc vendor/compiler-rt/dist/test/tsan/mutexset6.cc vendor/compiler-rt/dist/test/tsan/mutexset8.cc vendor/compiler-rt/dist/test/tsan/pthread_atfork_deadlock.c vendor/compiler-rt/dist/test/tsan/race_on_barrier.c vendor/compiler-rt/dist/test/tsan/race_on_barrier2.c vendor/compiler-rt/dist/test/tsan/race_on_heap.cc vendor/compiler-rt/dist/test/tsan/race_on_mutex.c vendor/compiler-rt/dist/test/tsan/race_on_speculative_load.cc vendor/compiler-rt/dist/test/tsan/race_top_suppression.cc vendor/compiler-rt/dist/test/tsan/race_top_suppression1.cc vendor/compiler-rt/dist/test/tsan/real_deadlock_detector_stress_test.cc vendor/compiler-rt/dist/test/tsan/setuid2.c vendor/compiler-rt/dist/test/tsan/signal_cond.cc vendor/compiler-rt/dist/test/tsan/signal_errno.cc vendor/compiler-rt/dist/test/tsan/signal_longjmp.cc vendor/compiler-rt/dist/test/tsan/signal_recursive.cc vendor/compiler-rt/dist/test/tsan/signal_reset.cc vendor/compiler-rt/dist/test/tsan/signal_sync.cc vendor/compiler-rt/dist/test/tsan/signal_thread.cc vendor/compiler-rt/dist/test/tsan/stack_sync_reuse.cc vendor/compiler-rt/dist/test/tsan/suppressions_global.cc vendor/compiler-rt/dist/test/tsan/suppressions_race.cc vendor/compiler-rt/dist/test/tsan/suppressions_race2.cc vendor/compiler-rt/dist/test/tsan/test.h vendor/compiler-rt/dist/test/tsan/thread_name2.cc vendor/compiler-rt/dist/test/tsan/tls_race.cc vendor/compiler-rt/dist/test/tsan/tls_race2.cc vendor/compiler-rt/dist/test/tsan/vfork.cc vendor/compiler-rt/dist/test/tsan/virtual_inheritance_compile_bug.cc vendor/compiler-rt/dist/test/tsan/vptr_benign_race.cc vendor/compiler-rt/dist/test/ubsan/CMakeLists.txt vendor/compiler-rt/dist/test/ubsan/TestCases/Float/cast-overflow.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/Integer/summary.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/Linux/ubsan_options.cc vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/bool.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/log-path_test.cc vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/missing_return.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/nonnull-arg.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/TypeCheck/Function/function.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/TypeCheck/misaligned.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/TypeCheck/vptr.cpp vendor/compiler-rt/dist/test/ubsan/lit.common.cfg Modified: vendor/compiler-rt/dist/CMakeLists.txt ============================================================================== --- vendor/compiler-rt/dist/CMakeLists.txt Wed Dec 30 11:51:35 2015 (r292924) +++ vendor/compiler-rt/dist/CMakeLists.txt Wed Dec 30 11:52:19 2015 (r292925) @@ -9,7 +9,7 @@ # Check if compiler-rt is built as a standalone project. if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) - project(CompilerRT C CXX) + project(CompilerRT C CXX ASM) set(COMPILER_RT_STANDALONE_BUILD TRUE) else() set(COMPILER_RT_STANDALONE_BUILD FALSE) @@ -22,7 +22,7 @@ endif() if (NOT MSVC) cmake_minimum_required(VERSION 2.8.8) else() - # Version 2.8.12.1 is required to build with Visual Studion 2013. + # Version 2.8.12.1 is required to build with Visual Studio 2013. cmake_minimum_required(VERSION 2.8.12.1) endif() @@ -43,6 +43,11 @@ endif() # Top level target used to build all compiler-rt libraries. add_custom_target(compiler-rt ALL) +option(COMPILER_RT_BUILD_BUILTINS "Build builtins" ON) +mark_as_advanced(COMPILER_RT_BUILD_BUILTINS) +option(COMPILER_RT_BUILD_SANITIZERS "Build sanitizers" ON) +mark_as_advanced(COMPILER_RT_BUILD_SANITIZERS) + if (NOT COMPILER_RT_STANDALONE_BUILD) # Compute the Clang version from the LLVM version. # FIXME: We should be able to reuse CLANG_VERSION variable calculated @@ -132,22 +137,27 @@ else() set(COMPILER_RT_TEST_COMPILER_ID GNU) endif() -# Tests using XFAIL use the first value in COMPILER_RT_TEST_TARGET_TRIPLE -set(COMPILER_RT_TEST_TARGET_TRIPLE ${TARGET_TRIPLE} CACHE STRING - "Default triple for cross-compiled executables") -string(REPLACE "-" ";" TARGET_TRIPLE_LIST ${COMPILER_RT_TEST_TARGET_TRIPLE}) -list(GET TARGET_TRIPLE_LIST 0 COMPILER_RT_TEST_TARGET_ARCH) -list(GET TARGET_TRIPLE_LIST 1 COMPILER_RT_TEST_TARGET_OS) -list(GET TARGET_TRIPLE_LIST 2 COMPILER_RT_TEST_TARGET_ABI) +set(COMPILER_RT_DEFAULT_TARGET_TRIPLE ${TARGET_TRIPLE} CACHE STRING + "Default triple for which compiler-rt runtimes will be built.") +if(DEFINED COMPILER_RT_TEST_TARGET_TRIPLE) + # Backwards compatibility: this variable used to be called + # COMPILER_RT_TEST_TARGET_TRIPLE. + set(COMPILER_RT_DEFAULT_TARGET_TRIPLE ${COMPILER_RT_TEST_TARGET_TRIPLE}) +endif() + +string(REPLACE "-" ";" TARGET_TRIPLE_LIST ${COMPILER_RT_DEFAULT_TARGET_TRIPLE}) +list(GET TARGET_TRIPLE_LIST 0 COMPILER_RT_DEFAULT_TARGET_ARCH) +list(GET TARGET_TRIPLE_LIST 1 COMPILER_RT_DEFAULT_TARGET_OS) +list(GET TARGET_TRIPLE_LIST 2 COMPILER_RT_DEFAULT_TARGET_ABI) # Determine if test target triple is specified explicitly, and doesn't match the # default. -if(NOT COMPILER_RT_TEST_TARGET_TRIPLE STREQUAL TARGET_TRIPLE) - set(COMPILER_RT_HAS_EXPLICIT_TEST_TARGET_TRIPLE TRUE) +if(NOT COMPILER_RT_DEFAULT_TARGET_TRIPLE STREQUAL TARGET_TRIPLE) + set(COMPILER_RT_HAS_EXPLICIT_DEFAULT_TARGET_TRIPLE TRUE) else() - set(COMPILER_RT_HAS_EXPLICIT_TEST_TARGET_TRIPLE FALSE) + set(COMPILER_RT_HAS_EXPLICIT_DEFAULT_TARGET_TRIPLE FALSE) endif() -if ("${COMPILER_RT_TEST_TARGET_ABI}" STREQUAL "androideabi") +if ("${COMPILER_RT_DEFAULT_TARGET_ABI}" STREQUAL "androideabi") set(ANDROID 1) endif() @@ -179,6 +189,8 @@ else() endif() option(COMPILER_RT_DEBUG "Build runtimes with full debug info" OFF) +option(COMPILER_RT_EXTERNALIZE_DEBUGINFO + "Generate dSYM files and strip executables and libraries (Darwin Only)" OFF) # COMPILER_RT_DEBUG_PYBOOL is used by lit.common.configured.in. pythonize_bool(COMPILER_RT_DEBUG) @@ -216,6 +228,7 @@ append_list_if(COMPILER_RT_HAS_FUNWIND_T append_list_if(COMPILER_RT_HAS_FNO_STACK_PROTECTOR_FLAG -fno-stack-protector SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FNO_SANITIZE_SAFE_STACK_FLAG -fno-sanitize=safe-stack SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FVISIBILITY_HIDDEN_FLAG -fvisibility=hidden SANITIZER_COMMON_CFLAGS) +append_list_if(COMPILER_RT_HAS_FVISIBILITY_INLINES_HIDDEN_FLAG -fvisibility-inlines-hidden SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FNO_FUNCTION_SECTIONS_FLAG -fno-function-sections SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FNO_LTO_FLAG -fno-lto SANITIZER_COMMON_CFLAGS) @@ -250,8 +263,7 @@ endif() # FIXME: Fix all sanitizers and add -Wframe-larger-than to # SANITIZER_COMMON_FLAGS if(COMPILER_RT_HAS_WFRAME_LARGER_THAN_FLAG AND NOT COMPILER_RT_DEBUG - AND NOT ${LLVM_NATIVE_ARCH} STREQUAL "PowerPC" - AND NOT ${LLVM_NATIVE_ARCH} STREQUAL "Mips") + AND NOT ${COMPILER_RT_DEFAULT_TARGET_ARCH} MATCHES "powerpc|mips") set(SANITIZER_LIMIT_FRAME_SIZE TRUE) else() set(SANITIZER_LIMIT_FRAME_SIZE FALSE) @@ -276,64 +288,6 @@ append_list_if(COMPILER_RT_HAS_WD4291_FL append_list_if(COMPILER_RT_HAS_WD4391_FLAG /wd4391 SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_WD4722_FLAG /wd4722 SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_WD4800_FLAG /wd4800 SANITIZER_COMMON_CFLAGS) -if(APPLE) - macro(find_darwin_sdk_dir var sdk_name) - # Let's first try the internal SDK, otherwise use the public SDK. - execute_process( - COMMAND xcodebuild -version -sdk ${sdk_name}.internal Path - OUTPUT_VARIABLE ${var} - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_FILE /dev/null - ) - if(${var} STREQUAL "") - execute_process( - COMMAND xcodebuild -version -sdk ${sdk_name} Path - OUTPUT_VARIABLE ${var} - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_FILE /dev/null - ) - endif() - endmacro() - - find_darwin_sdk_dir(OSX_SDK_DIR macosx) - find_darwin_sdk_dir(IOSSIM_SDK_DIR iphonesimulator) - - set(SANITIZER_COMMON_SUPPORTED_OS osx) - string(REGEX MATCH "-mmacosx-version-min=([.0-9]+)" - MACOSX_VERSION_MIN_FLAG "${CMAKE_CXX_FLAGS}") - if(MACOSX_VERSION_MIN_FLAG) - set(SANITIZER_MIN_OSX_VERSION "${CMAKE_MATCH_1}") - elseif(CMAKE_OSX_DEPLOYMENT_TARGET) - set(SANITIZER_MIN_OSX_VERSION ${CMAKE_OSX_DEPLOYMENT_TARGET}) - else() - set(SANITIZER_MIN_OSX_VERSION 10.9) - if(IOSSIM_SDK_DIR) - list(APPEND SANITIZER_COMMON_SUPPORTED_OS iossim) - endif() - endif() - if(SANITIZER_MIN_OSX_VERSION VERSION_LESS "10.7") - message(FATAL_ERROR "Too old OS X version: ${SANITIZER_MIN_OSX_VERSION}") - endif() - - set(CMAKE_OSX_DEPLOYMENT_TARGET "") # We evaluate target OS X version above. - set(DARWIN_osx_CFLAGS -mmacosx-version-min=${SANITIZER_MIN_OSX_VERSION} - -stdlib=libc++) - set(DARWIN_iossim_CFLAGS - -stdlib=libc++ - -mios-simulator-version-min=7.0 -isysroot ${IOSSIM_SDK_DIR}) - set(DARWIN_osx_LINKFLAGS -mmacosx-version-min=${SANITIZER_MIN_OSX_VERSION} - -stdlib=libc++ -lc++ -lc++abi) - set(DARWIN_iossim_LINKFLAGS - -stdlib=libc++ -lc++ -lc++abi - -Wl,-ios_simulator_version_min,7.0.0 - -mios-simulator-version-min=7.0 - -isysroot ${IOSSIM_SDK_DIR}) - - if(OSX_SDK_DIR) - list(APPEND DARWIN_osx_CFLAGS -isysroot ${OSX_SDK_DIR}) - list(APPEND DARWIN_osx_LINKFLAGS -isysroot ${OSX_SDK_DIR}) - endif() -endif() if(APPLE AND SANITIZER_MIN_OSX_VERSION VERSION_LESS "10.9") # Mac OS X prior to 10.9 had problems with exporting symbols from @@ -353,9 +307,17 @@ else() set(COMPILER_RT_HAS_LIBCXX_SOURCES FALSE) endif() +set(COMPILER_RT_LLD_PATH ${LLVM_MAIN_SRC_DIR}/tools/lld) +if(EXISTS ${COMPILER_RT_LLD_PATH}/) + set(COMPILER_RT_HAS_LLD_SOURCES TRUE) +else() + set(COMPILER_RT_HAS_LLD_SOURCES FALSE) +endif() +pythonize_bool(COMPILER_RT_HAS_LLD_SOURCES) + add_subdirectory(lib) if(COMPILER_RT_INCLUDE_TESTS) add_subdirectory(unittests) + add_subdirectory(test) endif() -add_subdirectory(test) Modified: vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake Wed Dec 30 11:51:35 2015 (r292924) +++ vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake Wed Dec 30 11:52:19 2015 (r292925) @@ -19,6 +19,7 @@ function(add_compiler_rt_object_librarie set(libname "${name}.${os}") set(libnames ${libnames} ${libname}) set(extra_cflags_${libname} ${DARWIN_${os}_CFLAGS}) + list_union(LIB_ARCHS_${libname} DARWIN_${os}_ARCHS LIB_ARCHS) endforeach() else() foreach(arch ${LIB_ARCHS}) @@ -26,7 +27,7 @@ function(add_compiler_rt_object_librarie set(libnames ${libnames} ${libname}) set(extra_cflags_${libname} ${TARGET_${arch}_CFLAGS}) if(NOT CAN_TARGET_${arch}) - message(FATAL_ERROR "Archtecture ${arch} can't be targeted") + message(FATAL_ERROR "Architecture ${arch} can't be targeted") return() endif() endforeach() @@ -39,91 +40,130 @@ function(add_compiler_rt_object_librarie set_property(TARGET ${libname} APPEND PROPERTY COMPILE_DEFINITIONS ${LIB_DEFS}) if(APPLE) - set_target_properties(${libname} PROPERTIES OSX_ARCHITECTURES "${LIB_ARCHS}") + set_target_properties(${libname} PROPERTIES + OSX_ARCHITECTURES "${LIB_ARCHS_${libname}}") endif() endforeach() endfunction() -# Adds static or shared runtime for a given architecture and puts it in the -# proper directory in the build and install trees. -# add_compiler_rt_runtime( {STATIC,SHARED} +# Takes a list of object library targets, and a suffix and appends the proper +# TARGET_OBJECTS string to the output variable. +# format_object_libs( ...) +macro(format_object_libs output suffix) + foreach(lib ${ARGN}) + list(APPEND ${output} $) + endforeach() +endmacro() + +# Adds static or shared runtime for a list of architectures and operating +# systems and puts it in the proper directory in the build and install trees. +# add_compiler_rt_runtime( +# {STATIC|SHARED} +# ARCHS +# OS # SOURCES # CFLAGS +# LINKFLAGS # DEFS -# OUTPUT_NAME ) -macro(add_compiler_rt_runtime name arch type) - if(CAN_TARGET_${arch}) - cmake_parse_arguments(LIB "" "OUTPUT_NAME" "SOURCES;CFLAGS;LINKFLAGS;DEFS" ${ARGN}) - add_library(${name} ${type} ${LIB_SOURCES}) - # Setup compile flags and definitions. - set_target_compile_flags(${name} - ${TARGET_${arch}_CFLAGS} ${LIB_CFLAGS}) - set_target_link_flags(${name} - ${TARGET_${arch}_CFLAGS} ${LIB_CFLAGS} ${LIB_LINKFLAGS}) - set_property(TARGET ${name} APPEND PROPERTY - COMPILE_DEFINITIONS ${LIB_DEFS}) - # Setup correct output directory in the build tree. - set_target_properties(${name} PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR} - LIBRARY_OUTPUT_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR} - RUNTIME_OUTPUT_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}) - if ("${LIB_OUTPUT_NAME}" STREQUAL "") - set_target_properties(${name} PROPERTIES - OUTPUT_NAME ${name}${COMPILER_RT_OS_SUFFIX}) - else() - set_target_properties(${name} PROPERTIES - OUTPUT_NAME ${LIB_OUTPUT_NAME}) - endif() - # Add installation command. - install(TARGETS ${name} - ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR} - LIBRARY DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR} - RUNTIME DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}) +# LINK_LIBS (only for shared library) +# OBJECT_LIBS +# PARENT_TARGET ) +function(add_compiler_rt_runtime name type) + if(NOT type MATCHES "^(STATIC|SHARED)$") + message(FATAL_ERROR "type argument must be STATIC or SHARED") + return() + endif() + cmake_parse_arguments(LIB + "" + "PARENT_TARGET" + "OS;ARCHS;SOURCES;CFLAGS;LINKFLAGS;DEFS;LINK_LIBS;OBJECT_LIBS" + ${ARGN}) + set(libnames) + if(APPLE) + foreach(os ${LIB_OS}) + if(type STREQUAL "STATIC") + set(libname "${name}_${os}") + else() + set(libname "${name}_${os}_dynamic") + set(extra_linkflags_${libname} ${DARWIN_${os}_LINKFLAGS} ${LIB_LINKFLAGS}) + endif() + list_union(LIB_ARCHS_${libname} DARWIN_${os}_ARCHS LIB_ARCHS) + if(LIB_ARCHS_${libname}) + list(APPEND libnames ${libname}) + set(extra_cflags_${libname} ${DARWIN_${os}_CFLAGS} ${LIB_CFLAGS}) + set(output_name_${libname} ${libname}${COMPILER_RT_OS_SUFFIX}) + set(sources_${libname} ${LIB_SOURCES}) + format_object_libs(sources_${libname} ${os} ${LIB_OBJECT_LIBS}) + endif() + endforeach() else() - message(FATAL_ERROR "Archtecture ${arch} can't be targeted") + foreach(arch ${LIB_ARCHS}) + if(NOT CAN_TARGET_${arch}) + message(FATAL_ERROR "Architecture ${arch} can't be targeted") + return() + endif() + if(type STREQUAL "STATIC") + set(libname "${name}-${arch}") + set(output_name_${libname} ${libname}${COMPILER_RT_OS_SUFFIX}) + else() + set(libname "${name}-dynamic-${arch}") + set(extra_linkflags_${libname} ${TARGET_${arch}_CFLAGS} ${LIB_CFLAGS} ${LIB_LINKFLAGS}) + if(WIN32) + set(output_name_${libname} ${name}_dynamic-${arch}${COMPILER_RT_OS_SUFFIX}) + else() + set(output_name_${libname} ${name}-${arch}${COMPILER_RT_OS_SUFFIX}) + endif() + endif() + set(sources_${libname} ${LIB_SOURCES}) + format_object_libs(sources_${libname} ${arch} ${LIB_OBJECT_LIBS}) + set(libnames ${libnames} ${libname}) + set(extra_cflags_${libname} ${TARGET_${arch}_CFLAGS} ${LIB_CFLAGS}) + endforeach() endif() -endmacro() -# Same as add_compiler_rt_runtime(... STATIC), but creates a universal library -# for several architectures. -# add_compiler_rt_osx_static_runtime( ARCHS -# SOURCES -# CFLAGS -# DEFS ) -macro(add_compiler_rt_osx_static_runtime name) - cmake_parse_arguments(LIB "" "" "ARCHS;SOURCES;CFLAGS;DEFS" ${ARGN}) - add_library(${name} STATIC ${LIB_SOURCES}) - set_target_compile_flags(${name} ${LIB_CFLAGS}) - set_property(TARGET ${name} APPEND PROPERTY - COMPILE_DEFINITIONS ${LIB_DEFS}) - set_target_properties(${name} PROPERTIES - OSX_ARCHITECTURES "${LIB_ARCHS}" - ARCHIVE_OUTPUT_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}) - install(TARGETS ${name} - ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}) -endmacro() + if(NOT libnames) + return() + endif() -# Adds dynamic runtime library on osx/iossim, which supports multiple -# architectures. -# add_compiler_rt_darwin_dynamic_runtime( -# ARCHS -# SOURCES -# CFLAGS -# DEFS -# LINKFLAGS ) -macro(add_compiler_rt_darwin_dynamic_runtime name os) - cmake_parse_arguments(LIB "" "" "ARCHS;SOURCES;CFLAGS;DEFS;LINKFLAGS" ${ARGN}) - add_library(${name} SHARED ${LIB_SOURCES}) - set_target_compile_flags(${name} ${LIB_CFLAGS} ${DARWIN_${os}_CFLAGS}) - set_target_link_flags(${name} ${LIB_LINKFLAGS} ${DARWIN_${os}_LINKFLAGS}) - set_property(TARGET ${name} APPEND PROPERTY - COMPILE_DEFINITIONS ${LIB_DEFS}) - set_target_properties(${name} PROPERTIES - OSX_ARCHITECTURES "${LIB_ARCHS}" - LIBRARY_OUTPUT_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}) - install(TARGETS ${name} - LIBRARY DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}) -endmacro() + if(LIB_PARENT_TARGET) + set(COMPONENT_OPTION COMPONENT ${LIB_PARENT_TARGET}) + endif() + + foreach(libname ${libnames}) + add_library(${libname} ${type} ${sources_${libname}}) + set_target_compile_flags(${libname} ${extra_cflags_${libname}}) + set_target_link_flags(${libname} ${extra_linkflags_${libname}}) + set_property(TARGET ${libname} APPEND PROPERTY + COMPILE_DEFINITIONS ${LIB_DEFS}) + set_target_properties(${libname} PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR} + LIBRARY_OUTPUT_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR} + RUNTIME_OUTPUT_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}) + set_target_properties(${libname} PROPERTIES + OUTPUT_NAME ${output_name_${libname}}) + if(LIB_LINK_LIBS AND ${type} STREQUAL "SHARED") + target_link_libraries(${libname} ${LIB_LINK_LIBS}) + endif() + install(TARGETS ${libname} + ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR} + ${COMPONENT_OPTION} + LIBRARY DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR} + ${COMPONENT_OPTION} + RUNTIME DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR} + ${COMPONENT_OPTION}) + if(APPLE) + set_target_properties(${libname} PROPERTIES + OSX_ARCHITECTURES "${LIB_ARCHS_${libname}}") + endif() + + if(type STREQUAL "SHARED") + rt_externalize_debuginfo(${libname}) + endif() + endforeach() + if(LIB_PARENT_TARGET) + add_dependencies(${LIB_PARENT_TARGET} ${libnames}) + endif() +endfunction() set(COMPILER_RT_TEST_CFLAGS) @@ -248,7 +288,8 @@ macro(add_custom_libcxx name prefix) ExternalProject_Add(${name} PREFIX ${prefix} SOURCE_DIR ${COMPILER_RT_LIBCXX_PATH} - CMAKE_ARGS -DCMAKE_C_COMPILER=${COMPILER_RT_TEST_COMPILER} + CMAKE_ARGS -DCMAKE_MAKE_PROGRAM:STRING=${CMAKE_MAKE_PROGRAM} + -DCMAKE_C_COMPILER=${COMPILER_RT_TEST_COMPILER} -DCMAKE_CXX_COMPILER=${COMPILER_RT_TEST_COMPILER} -DCMAKE_C_FLAGS=${LIBCXX_CFLAGS} -DCMAKE_CXX_FLAGS=${LIBCXX_CFLAGS} @@ -273,3 +314,24 @@ macro(add_custom_libcxx name prefix) DEPENDS ${LIBCXX_DEPS} ) endmacro() + +function(rt_externalize_debuginfo name) + if(NOT COMPILER_RT_EXTERNALIZE_DEBUGINFO) + return() + endif() + + if(APPLE) + if(CMAKE_CXX_FLAGS MATCHES "-flto" + OR CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE} MATCHES "-flto") + + set(lto_object ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${name}-lto.o) + set_property(TARGET ${name} APPEND_STRING PROPERTY + LINK_FLAGS " -Wl,-object_path_lto -Wl,${lto_object}") + endif() + add_custom_command(TARGET ${name} POST_BUILD + COMMAND xcrun dsymutil $ + COMMAND xcrun strip -Sl $) + else() + message(FATAL_ERROR "COMPILER_RT_EXTERNALIZE_DEBUGINFO isn't implemented for non-darwin platforms!") + endif() +endfunction() Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTCompile.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/CompilerRTCompile.cmake Wed Dec 30 11:51:35 2015 (r292924) +++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTCompile.cmake Wed Dec 30 11:52:19 2015 (r292925) @@ -49,6 +49,10 @@ macro(clang_compile object_file source) translate_msvc_cflags(global_flags "${global_flags}") endif() + if (APPLE) + set(global_flags ${OSX_SYSROOT_FLAG} ${global_flags}) + endif() + # Ignore unknown warnings. CMAKE_CXX_FLAGS may contain GCC-specific options # which are not supported by Clang. list(APPEND global_flags -Wno-unknown-warning-option) @@ -72,7 +76,7 @@ endmacro() macro(clang_compiler_add_cxx_check) if (APPLE) set(CMD - "echo '#include ' | ${COMPILER_RT_TEST_COMPILER} -E -x c++ - > /dev/null" + "echo '#include ' | ${COMPILER_RT_TEST_COMPILER} ${OSX_SYSROOT_FLAG} -E -x c++ - > /dev/null" "if [ $? != 0 ] " " then echo" " echo 'Your just-built clang cannot find C++ headers, which are needed to build and run compiler-rt tests.'" Added: vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake Wed Dec 30 11:52:19 2015 (r292925) @@ -0,0 +1,453 @@ +# On OS X SDKs can be installed anywhere on the base system and xcode-select can +# set the default Xcode to use. This function finds the SDKs that are present in +# the current Xcode. +function(find_darwin_sdk_dir var sdk_name) + # Let's first try the internal SDK, otherwise use the public SDK. + execute_process( + COMMAND xcodebuild -version -sdk ${sdk_name}.internal Path + OUTPUT_VARIABLE var_internal + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_FILE /dev/null + ) + if("" STREQUAL "${var_internal}") + execute_process( + COMMAND xcodebuild -version -sdk ${sdk_name} Path + OUTPUT_VARIABLE var_internal + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_FILE /dev/null + ) + endif() + set(${var} ${var_internal} PARENT_SCOPE) +endfunction() + +# There isn't a clear mapping of what architectures are supported with a given +# target platform, but ld's version output does list the architectures it can +# link for. +function(darwin_get_toolchain_supported_archs output_var) + execute_process( + COMMAND ld -v + ERROR_VARIABLE LINKER_VERSION) + + string(REGEX MATCH "configured to support archs: ([^\n]+)" + ARCHES_MATCHED "${LINKER_VERSION}") + if(ARCHES_MATCHED) + set(ARCHES "${CMAKE_MATCH_1}") + message(STATUS "Got ld supported ARCHES: ${ARCHES}") + string(REPLACE " " ";" ARCHES ${ARCHES}) + else() + # If auto-detecting fails, fall back to a default set + message(WARNING "Detecting supported architectures from 'ld -v' failed. Returning default set.") + set(ARCHES "i386;x86_64;armv7;armv7s;arm64") + endif() + + set(${output_var} ${ARCHES} PARENT_SCOPE) +endfunction() + +# This function takes an OS and a list of architectures and identifies the +# subset of the architectures list that the installed toolchain can target. +function(darwin_test_archs os valid_archs) + if(${valid_archs}) + message(STATUS "Using cached valid architectures for ${os}.") + return() + endif() + + set(archs ${ARGN}) + message(STATUS "Finding valid architectures for ${os}...") + set(SIMPLE_CPP ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/src.cpp) + file(WRITE ${SIMPLE_CPP} "#include \nint main() { std::cout << std::endl; return 0; }\n") + + set(os_linker_flags) + foreach(flag ${DARWIN_${os}_LINKFLAGS}) + set(os_linker_flags "${os_linker_flags} ${flag}") + endforeach() + + # The simple program will build for x86_64h on the simulator because it is + # compatible with x86_64 libraries (mostly), but since x86_64h isn't actually + # a valid or useful architecture for the iOS simulator we should drop it. + if(${os} STREQUAL "iossim") + list(REMOVE_ITEM archs "x86_64h") + endif() + + set(working_archs) + foreach(arch ${archs}) + + set(arch_linker_flags "-arch ${arch} ${os_linker_flags}") + try_compile(CAN_TARGET_${os}_${arch} ${CMAKE_BINARY_DIR} ${SIMPLE_CPP} + COMPILE_DEFINITIONS "-v -arch ${arch}" ${DARWIN_${os}_CFLAGS} + CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS=${arch_linker_flags}" + OUTPUT_VARIABLE TEST_OUTPUT) + if(${CAN_TARGET_${os}_${arch}}) + list(APPEND working_archs ${arch}) + else() + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Testing compiler for supporting ${os}-${arch}:\n" + "${TEST_OUTPUT}\n") + endif() + endforeach() + set(${valid_archs} ${working_archs} + CACHE STRING "List of valid architectures for platform ${os}.") +endfunction() + +# This function checks the host cpusubtype to see if it is post-haswell. Haswell +# and later machines can run x86_64h binaries. Haswell is cpusubtype 8. +function(darwin_filter_host_archs input output) + list_union(tmp_var DARWIN_osx_ARCHS ${input}) + execute_process( + COMMAND sysctl hw.cpusubtype + OUTPUT_VARIABLE SUBTYPE) + + string(REGEX MATCH "hw.cpusubtype: ([0-9]*)" + SUBTYPE_MATCHED "${SUBTYPE}") + set(HASWELL_SUPPORTED Off) + if(SUBTYPE_MATCHED) + if(${CMAKE_MATCH_1} GREATER 7) + set(HASWELL_SUPPORTED On) + endif() + endif() + if(NOT HASWELL_SUPPORTED) + list(REMOVE_ITEM tmp_var x86_64h) + endif() + set(${output} ${tmp_var} PARENT_SCOPE) +endfunction() + +# Read and process the exclude file into a list of symbols +function(darwin_read_list_from_file output_var file) + if(EXISTS ${file}) + file(READ ${file} EXCLUDES) + string(REPLACE "\n" ";" EXCLUDES ${EXCLUDES}) + set(${output_var} ${EXCLUDES} PARENT_SCOPE) + endif() +endfunction() + +# this function takes an OS, architecture and minimum version and provides a +# list of builtin functions to exclude +function(darwin_find_excluded_builtins_list output_var) + cmake_parse_arguments(LIB + "" + "OS;ARCH;MIN_VERSION" + "" + ${ARGN}) + + if(NOT LIB_OS OR NOT LIB_ARCH) + message(FATAL_ERROR "Must specify OS and ARCH to darwin_find_excluded_builtins_list!") + endif() + + darwin_read_list_from_file(${LIB_OS}_BUILTINS + ${DARWIN_EXCLUDE_DIR}/${LIB_OS}.txt) + darwin_read_list_from_file(${LIB_OS}_${LIB_ARCH}_BASE_BUILTINS + ${DARWIN_EXCLUDE_DIR}/${LIB_OS}-${LIB_ARCH}.txt) + + if(LIB_MIN_VERSION) + file(GLOB builtin_lists ${DARWIN_EXCLUDE_DIR}/${LIB_OS}*-${LIB_ARCH}.txt) + foreach(builtin_list ${builtin_lists}) + string(REGEX MATCH "${LIB_OS}([0-9\\.]*)-${LIB_ARCH}.txt" VERSION_MATCHED "${builtin_list}") + if (VERSION_MATCHED AND NOT CMAKE_MATCH_1 VERSION_LESS LIB_MIN_VERSION) + if(NOT smallest_version) + set(smallest_version ${CMAKE_MATCH_1}) + elseif(CMAKE_MATCH_1 VERSION_LESS smallest_version) + set(smallest_version ${CMAKE_MATCH_1}) + endif() + endif() + endforeach() + + if(smallest_version) + darwin_read_list_from_file(${LIB_ARCH}_${LIB_OS}_BUILTINS + ${DARWIN_EXCLUDE_DIR}/${LIB_OS}${smallest_version}-${LIB_ARCH}.txt) + endif() + endif() + + set(${output_var} + ${${LIB_ARCH}_${LIB_OS}_BUILTINS} + ${${LIB_OS}_${LIB_ARCH}_BASE_BUILTINS} + ${${LIB_OS}_BUILTINS} PARENT_SCOPE) +endfunction() + +# adds a single builtin library for a single OS & ARCH +macro(darwin_add_builtin_library name suffix) + cmake_parse_arguments(LIB + "" + "PARENT_TARGET;OS;ARCH" + "SOURCES;CFLAGS;DEFS" + ${ARGN}) + set(libname "${name}.${suffix}_${LIB_ARCH}_${LIB_OS}") + add_library(${libname} STATIC ${LIB_SOURCES}) + if(DARWIN_${LIB_OS}_SYSROOT) + set(sysroot_flag -isysroot ${DARWIN_${LIB_OS}_SYSROOT}) + endif() + set_target_compile_flags(${libname} + ${sysroot_flag} + ${DARWIN_${LIB_OS}_BUILTIN_MIN_VER_FLAG} + ${LIB_CFLAGS}) + set_property(TARGET ${libname} APPEND PROPERTY + COMPILE_DEFINITIONS ${LIB_DEFS}) + set_target_properties(${libname} PROPERTIES + OUTPUT_NAME ${libname}${COMPILER_RT_OS_SUFFIX}) + set_target_properties(${libname} PROPERTIES + OSX_ARCHITECTURES ${LIB_ARCH}) + + if(LIB_PARENT_TARGET) + add_dependencies(${LIB_PARENT_TARGET} ${libname}) + endif() + + list(APPEND ${LIB_OS}_${suffix}_libs ${libname}) + list(APPEND ${LIB_OS}_${suffix}_lipo_flags -arch ${arch} $) +endmacro() + +function(darwin_lipo_libs name) + cmake_parse_arguments(LIB + "" + "PARENT_TARGET;OUTPUT_DIR;INSTALL_DIR" + "LIPO_FLAGS;DEPENDS" + ${ARGN}) + if(LIB_DEPENDS AND LIB_LIPO_FLAGS) + add_custom_command(OUTPUT ${LIB_OUTPUT_DIR}/lib${name}.a + COMMAND ${CMAKE_COMMAND} -E make_directory ${LIB_OUTPUT_DIR} + COMMAND lipo -output + ${LIB_OUTPUT_DIR}/lib${name}.a + -create ${LIB_LIPO_FLAGS} + DEPENDS ${LIB_DEPENDS} + ) + add_custom_target(${name} + DEPENDS ${LIB_OUTPUT_DIR}/lib${name}.a) + add_dependencies(${LIB_PARENT_TARGET} ${name}) + install(FILES ${LIB_OUTPUT_DIR}/lib${name}.a + DESTINATION ${LIB_INSTALL_DIR}) + else() + message(WARNING "Not generating lipo target for ${name} because no input libraries exist.") + endif() +endfunction() + +# Filter out generic versions of routines that are re-implemented in +# architecture specific manner. This prevents multiple definitions of the +# same symbols, making the symbol selection non-deterministic. +function(darwin_filter_builtin_sources output_var exclude_or_include excluded_list) + if(exclude_or_include STREQUAL "EXCLUDE") + set(filter_action GREATER) + set(filter_value -1) + elseif(exclude_or_include STREQUAL "INCLUDE") + set(filter_action LESS) + set(filter_value 0) + else() + message(FATAL_ERROR "darwin_filter_builtin_sources called without EXCLUDE|INCLUDE") + endif() + + set(intermediate ${ARGN}) + foreach (_file ${intermediate}) + get_filename_component(_name_we ${_file} NAME_WE) + list(FIND ${excluded_list} ${_name_we} _found) + if(_found ${filter_action} ${filter_value}) + list(REMOVE_ITEM intermediate ${_file}) + elseif(${_file} MATCHES ".*/.*\\.S" OR ${_file} MATCHES ".*/.*\\.c") + get_filename_component(_name ${_file} NAME) + string(REPLACE ".S" ".c" _cname "${_name}") + list(REMOVE_ITEM intermediate ${_cname}) + endif () + endforeach () + set(${output_var} ${intermediate} PARENT_SCOPE) +endfunction() + +function(darwin_add_eprintf_library) + cmake_parse_arguments(LIB + "" + "" + "CFLAGS" + ${ARGN}) + + add_library(clang_rt.eprintf STATIC eprintf.c) + set_target_compile_flags(clang_rt.eprintf + -isysroot ${DARWIN_osx_SYSROOT} + ${DARWIN_osx_BUILTIN_MIN_VER_FLAG} + -arch i386 + ${LIB_CFLAGS}) + set_target_properties(clang_rt.eprintf PROPERTIES + OUTPUT_NAME clang_rt.eprintf${COMPILER_RT_OS_SUFFIX}) + set_target_properties(clang_rt.eprintf PROPERTIES + OSX_ARCHITECTURES i386) + add_dependencies(builtins clang_rt.eprintf) + set_target_properties(clang_rt.eprintf PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}) + install(TARGETS clang_rt.eprintf + ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}) +endfunction() + +# Generates builtin libraries for all operating systems specified in ARGN. Each +# OS library is constructed by lipo-ing together single-architecture libraries. +macro(darwin_add_builtin_libraries) + set(DARWIN_EXCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Darwin-excludes) + + set(CFLAGS "-fPIC -O3 -fvisibility=hidden -DVISIBILITY_HIDDEN -Wall -fomit-frame-pointer") + set(CMAKE_C_FLAGS "") + set(CMAKE_CXX_FLAGS "") + set(CMAKE_ASM_FLAGS "") + + set(PROFILE_SOURCES ../profile/InstrProfiling + ../profile/InstrProfilingBuffer + ../profile/InstrProfilingPlatformDarwin) + foreach (os ${ARGN}) + list_union(DARWIN_BUILTIN_ARCHS DARWIN_${os}_ARCHS BUILTIN_SUPPORTED_ARCH) + foreach (arch ${DARWIN_BUILTIN_ARCHS}) + darwin_find_excluded_builtins_list(${arch}_${os}_EXCLUDED_BUILTINS + OS ${os} + ARCH ${arch} + MIN_VERSION ${DARWIN_${os}_BUILTIN_MIN_VER}) + + darwin_filter_builtin_sources(filtered_sources + EXCLUDE ${arch}_${os}_EXCLUDED_BUILTINS + ${${arch}_SOURCES}) + + darwin_add_builtin_library(clang_rt builtins + OS ${os} + ARCH ${arch} + SOURCES ${filtered_sources} + CFLAGS ${CFLAGS} -arch ${arch} + PARENT_TARGET builtins) + endforeach() + + # Don't build cc_kext libraries for simulator platforms + if(NOT DARWIN_${os}_SKIP_CC_KEXT) + foreach (arch ${DARWIN_BUILTIN_ARCHS}) + # By not specifying MIN_VERSION this only reads the OS and OS-arch lists. + # We don't want to filter out the builtins that are present in libSystem + # because kexts can't link libSystem. + darwin_find_excluded_builtins_list(${arch}_${os}_EXCLUDED_BUILTINS + OS ${os} + ARCH ${arch}) + + darwin_filter_builtin_sources(filtered_sources + EXCLUDE ${arch}_${os}_EXCLUDED_BUILTINS + ${${arch}_SOURCES}) + + # In addition to the builtins cc_kext includes some profile sources + darwin_add_builtin_library(clang_rt cc_kext + OS ${os} + ARCH ${arch} + SOURCES ${filtered_sources} ${PROFILE_SOURCES} + CFLAGS ${CFLAGS} -arch ${arch} -mkernel + DEFS KERNEL_USE + PARENT_TARGET builtins) + endforeach() + set(archive_name clang_rt.cc_kext_${os}) + if(${os} STREQUAL "osx") + set(archive_name clang_rt.cc_kext) + endif() + darwin_lipo_libs(${archive_name} + PARENT_TARGET builtins + LIPO_FLAGS ${${os}_cc_kext_lipo_flags} + DEPENDS ${${os}_cc_kext_libs} + OUTPUT_DIR ${COMPILER_RT_LIBRARY_OUTPUT_DIR} + INSTALL_DIR ${COMPILER_RT_LIBRARY_INSTALL_DIR}) + endif() + endforeach() + + darwin_add_eprintf_library(CFLAGS ${CFLAGS}) + + # We put the x86 sim slices into the archives for their base OS + foreach (os ${ARGN}) + if(NOT ${os} MATCHES ".*sim$") + darwin_lipo_libs(clang_rt.${os} + PARENT_TARGET builtins + LIPO_FLAGS ${${os}_builtins_lipo_flags} ${${os}sim_builtins_lipo_flags} + DEPENDS ${${os}_builtins_libs} ${${os}sim_builtins_libs} + OUTPUT_DIR ${COMPILER_RT_LIBRARY_OUTPUT_DIR} + INSTALL_DIR ${COMPILER_RT_LIBRARY_INSTALL_DIR}) + endif() + endforeach() + darwin_add_embedded_builtin_libraries() +endmacro() + +macro(darwin_add_embedded_builtin_libraries) + # this is a hacky opt-out. If you can't target both intel and arm + # architectures we bail here. + set(DARWIN_SOFT_FLOAT_ARCHS armv6m armv7m armv7em armv7) + set(DARWIN_HARD_FLOAT_ARCHS armv7em armv7) + if(COMPILER_RT_SUPPORTED_ARCH MATCHES ".*armv.*") + list(FIND COMPILER_RT_SUPPORTED_ARCH i386 i386_idx) + if(i386_idx GREATER -1) + list(APPEND DARWIN_HARD_FLOAT_ARCHS i386) + endif() + + list(FIND COMPILER_RT_SUPPORTED_ARCH x86_64 x86_64_idx) + if(x86_64_idx GREATER -1) + list(APPEND DARWIN_HARD_FLOAT_ARCHS x86_64) + endif() + + set(MACHO_SYM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/macho_embedded) + + set(CFLAGS "-Oz -Wall -fomit-frame-pointer -ffreestanding") + set(CMAKE_C_FLAGS "") + set(CMAKE_CXX_FLAGS "") + set(CMAKE_ASM_FLAGS "") + + set(SOFT_FLOAT_FLAG -mfloat-abi=soft) + set(HARD_FLOAT_FLAG -mfloat-abi=hard) + + set(ENABLE_PIC Off) + set(PIC_FLAG -fPIC) + set(STATIC_FLAG -static) + + set(DARWIN_macho_embedded_ARCHS armv6m armv7m armv7em armv7 i386 x86_64) + + set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR + ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded) + set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR + ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded) + + set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi") + set(CFLAGS_i386 "-march=pentium") + + darwin_read_list_from_file(common_FUNCTIONS ${MACHO_SYM_DIR}/common.txt) + darwin_read_list_from_file(thumb2_FUNCTIONS ${MACHO_SYM_DIR}/thumb2.txt) + darwin_read_list_from_file(thumb2_64_FUNCTIONS ${MACHO_SYM_DIR}/thumb2-64.txt) + darwin_read_list_from_file(arm_FUNCTIONS ${MACHO_SYM_DIR}/arm.txt) + darwin_read_list_from_file(i386_FUNCTIONS ${MACHO_SYM_DIR}/i386.txt) + + + set(armv6m_FUNCTIONS ${common_FUNCTIONS} ${arm_FUNCTIONS}) + set(armv7m_FUNCTIONS ${common_FUNCTIONS} ${arm_FUNCTIONS} ${thumb2_FUNCTIONS}) + set(armv7em_FUNCTIONS ${common_FUNCTIONS} ${arm_FUNCTIONS} ${thumb2_FUNCTIONS}) + set(armv7_FUNCTIONS ${common_FUNCTIONS} ${arm_FUNCTIONS} ${thumb2_FUNCTIONS} ${thumb2_64_FUNCTIONS}) + set(i386_FUNCTIONS ${common_FUNCTIONS} ${i386_FUNCTIONS}) + set(x86_64_FUNCTIONS ${common_FUNCTIONS}) + + foreach(arch ${DARWIN_macho_embedded_ARCHS}) + darwin_filter_builtin_sources(${arch}_filtered_sources + INCLUDE ${arch}_FUNCTIONS + ${${arch}_SOURCES}) + if(NOT ${arch}_filtered_sources) + message("${arch}_SOURCES: ${${arch}_SOURCES}") + message("${arch}_FUNCTIONS: ${${arch}_FUNCTIONS}") + message(FATAL_ERROR "Empty filtered sources!") + endif() + endforeach() + + foreach(float_type SOFT HARD) + foreach(type PIC STATIC) + string(TOLOWER "${float_type}_${type}" lib_suffix) + foreach(arch ${DARWIN_${float_type}_FLOAT_ARCHS}) + set(DARWIN_macho_embedded_SYSROOT ${DARWIN_osx_SYSROOT}) + set(float_flag) + if(${arch} MATCHES "^arm") + # x86 targets are hard float by default, but the complain about the + # float ABI flag, so don't pass it unless we're targeting arm. + set(float_flag ${${float_type}_FLOAT_FLAG}) + endif() + darwin_add_builtin_library(clang_rt ${lib_suffix} + OS macho_embedded + ARCH ${arch} + SOURCES ${${arch}_filtered_sources} + CFLAGS ${CFLAGS} -arch ${arch} ${${type}_FLAG} ${float_flag} ${CFLAGS_${arch}} + PARENT_TARGET builtins) + endforeach() + foreach(lib ${macho_embedded_${lib_suffix}_libs}) + set_target_properties(${lib} PROPERTIES LINKER_LANGUAGE C) + endforeach() + darwin_lipo_libs(clang_rt.${lib_suffix} + PARENT_TARGET builtins + LIPO_FLAGS ${macho_embedded_${lib_suffix}_lipo_flags} + DEPENDS ${macho_embedded_${lib_suffix}_libs} + OUTPUT_DIR ${DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR} + INSTALL_DIR ${DARWIN_macho_embedded_LIBRARY_INSTALL_DIR}) + endforeach() + endforeach() + endif() +endmacro() Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake Wed Dec 30 11:51:35 2015 (r292924) +++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake Wed Dec 30 11:52:19 2015 (r292925) @@ -57,3 +57,13 @@ macro(append_have_file_definition filena endif() list(APPEND ${list} "${varname}=${${varname}}") endmacro() + +macro(list_union output input1 input2) + set(${output}) + foreach(it ${${input1}}) + list(FIND ${input2} ${it} index) + if( NOT (index EQUAL -1)) + list(APPEND ${output} ${it}) + endif() + endforeach() +endmacro() Modified: vendor/compiler-rt/dist/cmake/Modules/SanitizerUtils.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/SanitizerUtils.cmake Wed Dec 30 11:51:35 2015 (r292924) +++ vendor/compiler-rt/dist/cmake/Modules/SanitizerUtils.cmake Wed Dec 30 11:52:19 2015 (r292925) @@ -4,46 +4,60 @@ set(SANITIZER_GEN_DYNAMIC_LIST set(SANITIZER_LINT_SCRIPT ${COMPILER_RT_SOURCE_DIR}/lib/sanitizer_common/scripts/check_lint.sh) -# Create a target "-symbols" that would generate the list of symbols -# that need to be exported from sanitizer runtime "". Function +# Create a target "--symbols" that would generate the list of +# symbols that need to be exported from sanitizer runtime "". Function # interceptors are exported automatically, user can also provide files with # symbol names that should be exported as well. -# add_sanitizer_rt_symbols( ) +# add_sanitizer_rt_symbols( +# ARCHS +# PARENT_TARGET +# EXTRA ) macro(add_sanitizer_rt_symbols name) - set(stamp ${CMAKE_CURRENT_BINARY_DIR}/${name}.syms-stamp) - set(extra_args) - foreach(arg ${ARGN}) - list(APPEND extra_args "--extra" ${arg}) - endforeach() - add_custom_command(OUTPUT ${stamp} - COMMAND ${PYTHON_EXECUTABLE} - ${SANITIZER_GEN_DYNAMIC_LIST} ${extra_args} $ - > $.syms - COMMAND ${CMAKE_COMMAND} -E touch ${stamp} - DEPENDS ${name} ${SANITIZER_GEN_DYNAMIC_LIST} ${ARGN} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMENT "Generating exported symbols for ${name}" - VERBATIM) - add_custom_target(${name}-symbols ALL - DEPENDS ${stamp} - SOURCES ${SANITIZER_GEN_DYNAMIC_LIST} ${ARGN}) - - if(NOT CMAKE_VERSION VERSION_LESS 3.0) - install(FILES $.syms - DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}) - else() - # Per-config install location. - if(CMAKE_CONFIGURATION_TYPES) - foreach(c ${CMAKE_CONFIGURATION_TYPES}) - get_target_property(libfile ${name} LOCATION_${c}) - install(FILES ${libfile}.syms CONFIGURATIONS ${c} - DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}) - endforeach() + cmake_parse_arguments(ARG + "" + "PARENT_TARGET" + "ARCHS;EXTRA" + ${ARGN}) + foreach(arch ${ARG_ARCHS}) + set(target_name ${name}-${arch}) + set(stamp ${CMAKE_CURRENT_BINARY_DIR}/${target_name}.syms-stamp) + set(extra_args) + foreach(arg ${ARG_EXTRA}) + list(APPEND extra_args "--extra" ${arg}) + endforeach() + add_custom_command(OUTPUT ${stamp} + COMMAND ${PYTHON_EXECUTABLE} + ${SANITIZER_GEN_DYNAMIC_LIST} ${extra_args} $ + > $.syms + COMMAND ${CMAKE_COMMAND} -E touch ${stamp} + DEPENDS ${target_name} ${SANITIZER_GEN_DYNAMIC_LIST} ${ARG_EXTRA} *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Dec 30 11:53:16 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92D8FA5583F; Wed, 30 Dec 2015 11:53:16 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48A5A1DDD; Wed, 30 Dec 2015 11:53:16 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBrFVS051418; Wed, 30 Dec 2015 11:53:15 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBrFgT051417; Wed, 30 Dec 2015 11:53:15 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301153.tBUBrFgT051417@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:53:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292926 - vendor/compiler-rt/compiler-rt-trunk-r256633 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:53:16 -0000 Author: dim Date: Wed Dec 30 11:53:15 2015 New Revision: 292926 URL: https://svnweb.freebsd.org/changeset/base/292926 Log: Tag compiler-rt trunk r256633. Added: vendor/compiler-rt/compiler-rt-trunk-r256633/ - copied from r292925, vendor/compiler-rt/dist/ From owner-svn-src-all@freebsd.org Wed Dec 30 11:53:23 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 60B24A55870; Wed, 30 Dec 2015 11:53:23 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 019011ECB; Wed, 30 Dec 2015 11:53:22 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBrMSR051472; Wed, 30 Dec 2015 11:53:22 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBrLY4051470; Wed, 30 Dec 2015 11:53:21 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201512301153.tBUBrLY4051470@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 30 Dec 2015 11:53:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292927 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:53:23 -0000 Author: mav Date: Wed Dec 30 11:53:21 2015 New Revision: 292927 URL: https://svnweb.freebsd.org/changeset/base/292927 Log: MFC r292745: Use single DMA tag for scratch areas of all virtual ports. Modified: stable/10/sys/dev/isp/isp_freebsd.h stable/10/sys/dev/isp/isp_pci.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp_freebsd.h ============================================================================== --- stable/10/sys/dev/isp/isp_freebsd.h Wed Dec 30 11:53:15 2015 (r292926) +++ stable/10/sys/dev/isp/isp_freebsd.h Wed Dec 30 11:53:21 2015 (r292927) @@ -225,8 +225,7 @@ struct isp_fc { struct cam_path *path; struct ispsoftc *isp; struct proc *kproc; - bus_dma_tag_t tdmat; - bus_dmamap_t tdmap; + bus_dmamap_t scmap; uint64_t def_wwpn; uint64_t def_wwnn; time_t loop_down_time; @@ -285,13 +284,14 @@ struct isposinfo { const struct firmware * fw; /* - * DMA related sdtuff + * DMA related stuff */ struct resource * regs; struct resource * regs2; bus_dma_tag_t dmat; bus_dma_tag_t cdmat; bus_dmamap_t cdmap; + bus_dma_tag_t scdmat; /* * Command and transaction related related stuff @@ -409,7 +409,7 @@ switch (type) { \ case SYNC_SFORDEV: \ { \ struct isp_fc *fc = ISP_FC_PC(isp, chan); \ - bus_dmamap_sync(fc->tdmat, fc->tdmap, \ + bus_dmamap_sync(isp->isp_osinfo.scdmat, fc->scmap, \ BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); \ break; \ } \ @@ -421,7 +421,7 @@ case SYNC_REQUEST: \ case SYNC_SFORCPU: \ { \ struct isp_fc *fc = ISP_FC_PC(isp, chan); \ - bus_dmamap_sync(fc->tdmat, fc->tdmap, \ + bus_dmamap_sync(isp->isp_osinfo.scdmat, fc->scmap, \ BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); \ break; \ } \ @@ -443,7 +443,7 @@ switch (type) { \ case SYNC_SFORDEV: \ { \ struct isp_fc *fc = ISP_FC_PC(isp, chan); \ - bus_dmamap_sync(fc->tdmat, fc->tdmap, \ + bus_dmamap_sync(isp->isp_osinfo.scdmat, fc->scmap, \ BUS_DMASYNC_PREWRITE); \ break; \ } \ @@ -454,7 +454,7 @@ case SYNC_REQUEST: \ case SYNC_SFORCPU: \ { \ struct isp_fc *fc = ISP_FC_PC(isp, chan); \ - bus_dmamap_sync(fc->tdmat, fc->tdmap, \ + bus_dmamap_sync(isp->isp_osinfo.scdmat, fc->scmap, \ BUS_DMASYNC_POSTWRITE); \ break; \ } \ Modified: stable/10/sys/dev/isp/isp_pci.c ============================================================================== --- stable/10/sys/dev/isp/isp_pci.c Wed Dec 30 11:53:15 2015 (r292926) +++ stable/10/sys/dev/isp/isp_pci.c Wed Dec 30 11:53:21 2015 (r292927) @@ -1604,11 +1604,8 @@ imc1(void *arg, bus_dma_segment_t *segs, imushp->error = error; return; } - if (nseg != 1) { - imushp->error = EINVAL; - return; - } - isp_prt(imushp->isp, ISP_LOGDEBUG0, "scdma @ 0x%jx/0x%jx", (uintmax_t) segs->ds_addr, (uintmax_t) segs->ds_len); + isp_prt(imushp->isp, ISP_LOGDEBUG0, "scdma @ 0x%jx/0x%jx", + (uintmax_t) segs->ds_addr, (uintmax_t) segs->ds_len); FCPARAM(imushp->isp, imushp->chan)->isp_scdma = segs->ds_addr; FCPARAM(imushp->isp, imushp->chan)->isp_scratch = imushp->vbase; } @@ -1735,23 +1732,27 @@ isp_pci_mbxdma(ispsoftc_t *isp) } if (IS_FC(isp)) { + if (isp_dma_tag_create(isp->isp_osinfo.dmat, 64, slim, + BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, + ISP_FC_SCRLEN, 1, ISP_FC_SCRLEN, 0, &isp->isp_osinfo.scdmat)) { + goto bad; + } for (cmap = 0; cmap < isp->isp_nchan; cmap++) { struct isp_fc *fc = ISP_FC_PC(isp, cmap); - if (isp_dma_tag_create(isp->isp_osinfo.dmat, 64, slim, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, ISP_FC_SCRLEN, 1, slim, 0, &fc->tdmat)) { - goto bad; - } - if (bus_dmamem_alloc(fc->tdmat, (void **)&base, BUS_DMA_NOWAIT | BUS_DMA_COHERENT, &fc->tdmap) != 0) { - bus_dma_tag_destroy(fc->tdmat); + if (bus_dmamem_alloc(isp->isp_osinfo.scdmat, + (void **)&base, BUS_DMA_NOWAIT | BUS_DMA_COHERENT, + &fc->scmap) != 0) { goto bad; } im.isp = isp; im.chan = cmap; im.vbase = base; im.error = 0; - bus_dmamap_load(fc->tdmat, fc->tdmap, base, ISP_FC_SCRLEN, imc1, &im, 0); + bus_dmamap_load(isp->isp_osinfo.scdmat, fc->scmap, + base, ISP_FC_SCRLEN, imc1, &im, 0); if (im.error) { - bus_dmamem_free(fc->tdmat, base, fc->tdmap); - bus_dma_tag_destroy(fc->tdmat); + bus_dmamem_free(isp->isp_osinfo.scdmat, + base, fc->scmap); goto bad; } if (!IS_2100(isp)) { @@ -1794,15 +1795,18 @@ isp_pci_mbxdma(ispsoftc_t *isp) return (0); bad: - while (--cmap >= 0) { - struct isp_fc *fc = ISP_FC_PC(isp, cmap); - bus_dmamem_free(fc->tdmat, base, fc->tdmap); - bus_dma_tag_destroy(fc->tdmat); - while (fc->nexus_free_list) { - struct isp_nexus *n = fc->nexus_free_list; - fc->nexus_free_list = n->next; - free(n, M_DEVBUF); + if (IS_FC(isp)) { + while (--cmap >= 0) { + struct isp_fc *fc = ISP_FC_PC(isp, cmap); + bus_dmamap_unload(isp->isp_osinfo.scdmat, fc->scmap); + bus_dmamem_free(isp->isp_osinfo.scdmat, base, fc->scmap); + while (fc->nexus_free_list) { + struct isp_nexus *n = fc->nexus_free_list; + fc->nexus_free_list = n->next; + free(n, M_DEVBUF); + } } + bus_dma_tag_destroy(isp->isp_osinfo.scdmat); } bus_dmamem_free(isp->isp_osinfo.cdmat, base, isp->isp_osinfo.cdmap); bus_dma_tag_destroy(isp->isp_osinfo.cdmat); From owner-svn-src-all@freebsd.org Wed Dec 30 11:54:11 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A76D2A5594F; Wed, 30 Dec 2015 11:54:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1BDE910B3; Wed, 30 Dec 2015 11:54:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBsAW7051568; Wed, 30 Dec 2015 11:54:10 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBs9db051559; Wed, 30 Dec 2015 11:54:09 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301154.tBUBs9db051559@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:54:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292928 - in vendor/libc++/dist: . cmake cmake/Modules docs docs/DesignDocs include include/experimental include/ext include/support/musl lib src src/include src/support src/support/new... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:54:11 -0000 Author: dim Date: Wed Dec 30 11:54:09 2015 New Revision: 292928 URL: https://svnweb.freebsd.org/changeset/base/292928 Log: Vendor import of libc++ trunk r256633: https://llvm.org/svn/llvm-project/libcxx/trunk@256633 Added: vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake vendor/libc++/dist/docs/ vendor/libc++/dist/docs/BuildingLibcxx.rst vendor/libc++/dist/docs/CMakeLists.txt (contents, props changed) vendor/libc++/dist/docs/DesignDocs/ vendor/libc++/dist/docs/DesignDocs/ABIVersioning.rst vendor/libc++/dist/docs/DesignDocs/CapturingConfigInfo.rst vendor/libc++/dist/docs/Makefile.sphinx (contents, props changed) vendor/libc++/dist/docs/README.txt (contents, props changed) vendor/libc++/dist/docs/TestingLibcxx.rst vendor/libc++/dist/docs/UsingLibcxx.rst vendor/libc++/dist/docs/conf.py (contents, props changed) vendor/libc++/dist/docs/index.rst vendor/libc++/dist/include/__config_site.in (contents, props changed) vendor/libc++/dist/include/__nullptr vendor/libc++/dist/include/ctype.h (contents, props changed) vendor/libc++/dist/include/errno.h (contents, props changed) vendor/libc++/dist/include/experimental/any vendor/libc++/dist/include/experimental/functional vendor/libc++/dist/include/float.h (contents, props changed) vendor/libc++/dist/include/inttypes.h (contents, props changed) vendor/libc++/dist/include/math.h (contents, props changed) vendor/libc++/dist/include/setjmp.h (contents, props changed) vendor/libc++/dist/include/stddef.h (contents, props changed) vendor/libc++/dist/include/stdio.h (contents, props changed) vendor/libc++/dist/include/stdlib.h (contents, props changed) vendor/libc++/dist/include/support/musl/ vendor/libc++/dist/include/support/musl/xlocale.h (contents, props changed) vendor/libc++/dist/include/wchar.h (contents, props changed) vendor/libc++/dist/include/wctype.h (contents, props changed) vendor/libc++/dist/src/any.cpp (contents, props changed) vendor/libc++/dist/src/include/ vendor/libc++/dist/src/include/atomic_support.h (contents, props changed) vendor/libc++/dist/src/include/config_elast.h (contents, props changed) vendor/libc++/dist/test/libcxx/atomics/ vendor/libc++/dist/test/libcxx/atomics/libcpp-has-no-threads.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/atomics/libcpp-has-no-threads.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/ vendor/libc++/dist/test/libcxx/containers/sequences/deque/ vendor/libc++/dist/test/libcxx/containers/sequences/deque/incomplete.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/ vendor/libc++/dist/test/libcxx/containers/sequences/vector/asan.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/asan_throw.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/any/ vendor/libc++/dist/test/libcxx/experimental/any/size_and_alignment.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/any/small_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/any/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.cons/default_throws_bad_alloc.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/ vendor/libc++/dist/test/libcxx/thread/futures/ vendor/libc++/dist/test/libcxx/thread/futures/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/type_traits/lazy_metafunctions.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/time/ vendor/libc++/dist/test/libcxx/utilities/time/date.time/ vendor/libc++/dist/test/libcxx/utilities/time/date.time/asctime.thread-unsafe.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/time/date.time/ctime.thread-unsafe.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/time/date.time/gmtime.thread-unsafe.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/time/date.time/localtime.thread-unsafe.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/atomics/atomics.flag/init03.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_helpers.h (contents, props changed) vendor/libc++/dist/test/std/containers/associative/map/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/multimap/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/multiset/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/set/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/array/array.tuple/get_const_rv.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/deque/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/forwardlist/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/list/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/list/incomplete_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/vector/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/ vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/clear.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/emplace.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/emplace_hint.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_const_iter.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_key.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_range.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_const_lvalue.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_rvalue.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_init.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_or_assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_range.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_rvalue.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/try.emplace.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multimap/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multiset/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.set/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.c.headers/extern_c.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.c.headers/math_h_isnan.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/algorithms/alg.search/ vendor/libc++/dist/test/std/experimental/algorithms/alg.search/search.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/ vendor/libc++/dist/test/std/experimental/any/any.class/ vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/ vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/copy.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/value.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/value_non_copyable_assign.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/ vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/copy.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/default.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/non_copyable_value.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/value.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/any.modifiers/ vendor/libc++/dist/test/std/experimental/any/any.class/any.modifiers/clear.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/any.observers/ vendor/libc++/dist/test/std/experimental/any/any.class/any.observers/empty.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/any.observers/type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.class/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.nonmembers/ vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/ vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/any_cast_pointer.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/const_correctness.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/reference_types.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/any/any.nonmembers/swap.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/ vendor/libc++/dist/test/std/experimental/func/func.searchers/ vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/ vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/default.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/hash.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/hash.pred.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/pred.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/ vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/default.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/hash.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/hash.pred.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/pred.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/ vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/default.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/default.pred.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/func.searchers.default.creation/ vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/func.searchers.default.creation/make_default_searcher.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/func.searchers.default.creation/make_default_searcher.pred.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/func.searchers/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/header.functional.synop/ vendor/libc++/dist/test/std/experimental/func/header.functional.synop/includes.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/func/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/bad_repeat.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/allocator_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.condition/thread.condition.condvarany/wait_terminates.sh.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/copy_assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/move_assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/is_bind_expression_03.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/func.require/bullet_1_and_2.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/func.require/bullet_3_and_4.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/func.require/bullet_5.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/func.require/invoke_helpers.h (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_nullptr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/intseq/intseq.make/make_integer_seq_fallback.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/intseq/intseq.make/make_integer_seq_fallback.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.logical/ vendor/libc++/dist/test/std/utilities/meta/meta.logical/conjunction.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.logical/disjunction.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.logical/negation.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_array.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_class.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_enum.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_floating_point.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_function.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_integral.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_lvalue_reference.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_member_object_pointer.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_member_pointer.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_null_pointer.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_pointer.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_rvalue_reference.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_union.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_void.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_arithmetic.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_compound.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_fundamental.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_member_pointer.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_object.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_reference.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_scalar.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/date.time/ vendor/libc++/dist/test/std/utilities/time/date.time/ctime.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.alg/ vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.alg/abs.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.alg/abs.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/ceil.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/ceil.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/floor.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/floor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/round.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/round.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/ceil.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/ceil.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/floor.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/floor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/round.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/round.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const_rv.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const_rv.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/utility/as_const/ vendor/libc++/dist/test/std/utilities/utility/as_const/as_const.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/utility/as_const/as_const.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/utility/pairs/pair.astuple/get_const_rv.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/default-sfinae.pass.cpp (contents, props changed) vendor/libc++/dist/test/support/any_helpers.h (contents, props changed) vendor/libc++/dist/test/support/disable_missing_braces_warning.h (contents, props changed) vendor/libc++/dist/utils/gen_link_script/ vendor/libc++/dist/utils/gen_link_script/gen_link_script.py (contents, props changed) vendor/libc++/dist/www/kona.html (contents, props changed) Deleted: vendor/libc++/dist/src/config_elast.h vendor/libc++/dist/src/support/atomic_support.h vendor/libc++/dist/src/support/newlib/ vendor/libc++/dist/test/std/atomics/libcpp-has-no-threads.fail.cpp vendor/libc++/dist/test/std/atomics/libcpp-has-no-threads.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/asan.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/asan_throw.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unorder.map.modifiers/ vendor/libc++/dist/test/std/thread/futures/test_allocator.h vendor/libc++/dist/test/std/thread/futures/version.pass.cpp vendor/libc++/dist/test/std/thread/thread.condition/thread.condition.condvarany/wait.exception.pass.cpp vendor/libc++/dist/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.exception.pass.cpp vendor/libc++/dist/test/std/utilities/date.time/ vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/no-variadics.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke_int_0.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke_no_variadics.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke_void_0.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert02.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert03.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default02.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move02.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert02.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert03.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert04.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert05.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert06.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert07.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer02.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer03.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter02.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter03.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter04.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter05.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter06.pass.cpp Modified: vendor/libc++/dist/CMakeLists.txt vendor/libc++/dist/TODO.TXT vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake vendor/libc++/dist/cmake/config-ix.cmake vendor/libc++/dist/include/CMakeLists.txt vendor/libc++/dist/include/__config vendor/libc++/dist/include/__functional_03 vendor/libc++/dist/include/__functional_base vendor/libc++/dist/include/__functional_base_03 vendor/libc++/dist/include/__hash_table vendor/libc++/dist/include/__locale vendor/libc++/dist/include/__mutex_base vendor/libc++/dist/include/__split_buffer vendor/libc++/dist/include/__std_stream vendor/libc++/dist/include/__tree vendor/libc++/dist/include/__tuple vendor/libc++/dist/include/algorithm vendor/libc++/dist/include/array vendor/libc++/dist/include/atomic vendor/libc++/dist/include/bitset vendor/libc++/dist/include/cctype vendor/libc++/dist/include/cerrno vendor/libc++/dist/include/cfenv vendor/libc++/dist/include/cfloat vendor/libc++/dist/include/chrono vendor/libc++/dist/include/cinttypes vendor/libc++/dist/include/cmath vendor/libc++/dist/include/complex.h vendor/libc++/dist/include/condition_variable vendor/libc++/dist/include/csetjmp vendor/libc++/dist/include/cstddef vendor/libc++/dist/include/cstdio vendor/libc++/dist/include/cstdlib vendor/libc++/dist/include/cwchar vendor/libc++/dist/include/cwctype vendor/libc++/dist/include/deque vendor/libc++/dist/include/exception vendor/libc++/dist/include/experimental/algorithm vendor/libc++/dist/include/experimental/dynarray vendor/libc++/dist/include/ext/hash_map vendor/libc++/dist/include/forward_list vendor/libc++/dist/include/functional vendor/libc++/dist/include/future vendor/libc++/dist/include/ios vendor/libc++/dist/include/istream vendor/libc++/dist/include/iterator vendor/libc++/dist/include/list vendor/libc++/dist/include/locale vendor/libc++/dist/include/map vendor/libc++/dist/include/memory vendor/libc++/dist/include/module.modulemap vendor/libc++/dist/include/mutex vendor/libc++/dist/include/ostream vendor/libc++/dist/include/random vendor/libc++/dist/include/ratio vendor/libc++/dist/include/regex vendor/libc++/dist/include/scoped_allocator vendor/libc++/dist/include/set vendor/libc++/dist/include/sstream vendor/libc++/dist/include/streambuf vendor/libc++/dist/include/string vendor/libc++/dist/include/system_error vendor/libc++/dist/include/thread vendor/libc++/dist/include/tuple vendor/libc++/dist/include/type_traits vendor/libc++/dist/include/unordered_map vendor/libc++/dist/include/utility vendor/libc++/dist/include/valarray vendor/libc++/dist/include/vector vendor/libc++/dist/lib/CMakeLists.txt vendor/libc++/dist/lib/libc++abi2.exp vendor/libc++/dist/src/exception.cpp vendor/libc++/dist/src/future.cpp vendor/libc++/dist/src/ios.cpp vendor/libc++/dist/src/locale.cpp vendor/libc++/dist/src/memory.cpp vendor/libc++/dist/src/mutex.cpp vendor/libc++/dist/src/new.cpp vendor/libc++/dist/src/stdexcept.cpp vendor/libc++/dist/src/system_error.cpp vendor/libc++/dist/src/typeinfo.cpp vendor/libc++/dist/test/CMakeLists.txt vendor/libc++/dist/test/libcxx/compiler.py vendor/libc++/dist/test/libcxx/double_include.sh.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.cons/default.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.data/default.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/at.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/front_back.pass.cpp vendor/libc++/dist/test/libcxx/test/config.py vendor/libc++/dist/test/libcxx/test/format.py vendor/libc++/dist/test/libcxx/test/target_info.py vendor/libc++/dist/test/libcxx/test/tracing.py vendor/libc++/dist/test/libcxx/type_traits/convert_to_integral.pass.cpp vendor/libc++/dist/test/libcxx/utilities/memory/util.smartptr/race_condition.pass.cpp vendor/libc++/dist/test/lit.site.cfg.in vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.partitions/stable_partition.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/mismatch/mismatch.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.set.operations/includes/includes.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.set.operations/includes/includes_comp.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.flag/atomic_flag_clear.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.flag/atomic_flag_clear_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.flag/clear.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.flag/default.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.flag/init.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.generic/address.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.generic/bool.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.generic/integral.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.generic/trivially_copyable.fail.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_and.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_and_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_or.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_or_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_xor.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_xor_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_is_lock_free.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_var_init.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/ctor.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/at.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/index_rv_key.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/scary.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/scary.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.data/data.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.data/data_const.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.fill/fill.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.size/size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.special/swap.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.swap/swap.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.tuple/get.fail.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.tuple/get.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.tuple/get_const.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.tuple/get_rv.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/at.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/begin.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/front_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/indexing.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/resize_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/shrink_to_fit.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/insert_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/insert_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/insert_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_back_exception_safety.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_front_exception_safety.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_exception_safety.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_one.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/push_back_exception_safety.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/push_front_exception_safety.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/push_back_exception_safety.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/bucket_count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/compare.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/max_bucket_count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/max_load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/reserve.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/swap_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.elem/at.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.swap/swap_non_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/reserve.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.swap/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/reserve.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/reserve.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.conv/convert_to_auto_ptr_ref.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/element_type.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/inttypes_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/locale_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/math_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/setjmp_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/signal_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/stdarg_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/stddef_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/stdint_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/stdio_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/stdlib_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/time_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/wchar_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.ios.members/io_state.pass.cpp vendor/libc++/dist/test/std/depr/depr.ios.members/open_mode.pass.cpp vendor/libc++/dist/test/std/depr/depr.ios.members/seek_dir.pass.cpp vendor/libc++/dist/test/std/depr/depr.ios.members/streamoff.pass.cpp vendor/libc++/dist/test/std/depr/depr.ios.members/streampos.pass.cpp vendor/libc++/dist/test/std/depr/exception.unexpected/unexpected.handler/unexpected_handler.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.overview/error_category.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/const_T.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.specalg/swap.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.access/at.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.pointer_size.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.size_size_sv.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/copy.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/substr.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/tuple/tuple.apply/arg_type.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/tuple/tuple.apply/extended_types.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/tuple/tuple.apply/types.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/c.files/cstdio.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/seekg.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/seekg_off.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream_sentry/destruct.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios.base/ios.types/ios_failure/ctor_string_error_code.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/set_rdbuf.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios/iostate.flags/clear.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios/iostate.flags/exceptions_iostate.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios/iostate.flags/setstate.pass.cpp vendor/libc++/dist/test/std/input.output/string.streams/stringbuf/stringbuf.virtuals/overflow.pass.cpp vendor/libc++/dist/test/std/input.output/string.streams/stringbuf/stringbuf.virtuals/pbackfail.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.primitives/iterator.operations/next.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.ops/assign_t.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/alloc.errors/new.handler/new_handler.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_nothrow.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/except.nested/assign.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/except.nested/ctor_copy.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/except.nested/ctor_default.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/except.nested/rethrow_nested.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/except.nested/throw_with_nested.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/exception.terminate/terminate.handler/terminate_handler.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/propagation/current_exception.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/propagation/make_exception_ptr.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/propagation/rethrow_exception.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/uncaught/uncaught_exception.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/csignal.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/cstdarg.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/cstdlib.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/ctime.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/nullptr_t.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.collate/locale.collate.byname/transform.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_in.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_length.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_out.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_unshift.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_in.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_length.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_out.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_unshift.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char_in.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char_length.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char_out.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char_unshift.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/utf_sanity_check.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_in.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_length.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_out.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_unshift.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_err_string.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale.global.templates/use_facet.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/char_pointer.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.members/combine.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.device/ctor.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.device/eval.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/grep.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/assign.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.access/at.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/capacity.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/max_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/over_max_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/reserve.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/resize_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/resize_size_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/substr.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_erase/size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_substr/substr.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/cctype.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/cwchar.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stod.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stof.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoi.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stol.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stold.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoll.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoul.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoull.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.async/async.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.async/async_race.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/alloc_ctor.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/copy_assign.fail.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/copy_ctor.fail.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/default.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/dtor.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/get_future.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/move_assign.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/move_ctor.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/set_exception.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/set_exception_at_thread_exit.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/set_lvalue.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/set_lvalue_at_thread_exit.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/set_rvalue.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/set_value_at_thread_exit_const.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/set_value_at_thread_exit_void.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/set_value_const.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/set_value_void.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/swap.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/uses_allocator.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.shared_future/copy_assign.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.shared_future/copy_ctor.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.shared_future/ctor_future.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.shared_future/dtor.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.shared_future/get.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.shared_future/move_assign.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.shared_future/move_ctor.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.shared_future/wait.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.shared_future/wait_for.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.shared_future/wait_until.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/assign_copy.fail.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/assign_move.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor1.fail.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor2.fail.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor_copy.fail.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor_default.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor_func.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor_func_alloc.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor_move.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/dtor.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/get_future.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/make_ready_at_thread_exit.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/operator.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/reset.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/swap.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.nonmembers/swap.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.nonmembers/uses_allocator.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/types.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/copy_assign.fail.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/copy_ctor.fail.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/dtor.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/get.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/share.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/wait.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/wait_for.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/wait_until.pass.cpp vendor/libc++/dist/test/std/thread/thread.condition/notify_all_at_thread_exit.pass.cpp vendor/libc++/dist/test/std/thread/thread.condition/thread.condition.condvar/notify_one.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock.algorithm/try_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/default.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_ctor.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_adopt_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_defer_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_duration.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_time_point.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_try_to_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock_for.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock_until.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/unlock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.mod/member_swap.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.mod/nonmember_swap.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.mod/release.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.obs/mutex.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.obs/op_bool.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.obs/owns_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/types.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock_for.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock_until.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/unlock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/assign.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/copy.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock_shared.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock_shared.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_for.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_for.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_until.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.once/thread.once.callonce/call_once.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.assign/move2.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.constr/F.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.destr/dtor.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.member/detach.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/copy.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_function_object.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_int_0.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_lvalue.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_rvalue.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_void_0.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/nested.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/is_bind_expression.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.invoke/invoke.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.memfn/member_function.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke.fail.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/refwrap/refwrap.const/type_ctor.fail.cpp vendor/libc++/dist/test/std/utilities/function.objects/refwrap/refwrap.helpers/ref_1.fail.cpp vendor/libc++/dist/test/std/utilities/function.objects/unord.hash/integral.pass.cpp vendor/libc++/dist/test/std/utilities/intseq/intseq.make/make_integer_seq.fail.cpp vendor/libc++/dist/test/std/utilities/intseq/intseq.make/make_integer_seq.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.members/max_size.pass.cpp vendor/libc++/dist/test/std/utilities/memory/default.allocator/allocator.members/construct.pass.cpp vendor/libc++/dist/test/std/utilities/memory/default.allocator/allocator.members/max_size.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy_n.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.fill.n/uninitialized_fill_n.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp vendor/libc++/dist/test/std/utilities/memory/storage.iterator/raw_storag_iterator.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/deleter.h vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move02.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert13.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/auto_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/auto_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_allocator_throw.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_throw.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_allocator_throw.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_throw.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_throw.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/weak_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.ownerless/owner_less.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_base_of.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_convertible_fallback.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_same.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/aligned_storage.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/common_type.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.ref/add_lvalue_ref.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary.prop.query/alignment_of.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary.prop.query/extent.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary.prop.query/rank.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary.prop.query/void_t.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/nullptr.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/has_virtual_destructor.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_abstract.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_const.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_destructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_empty.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_final.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_literal_type.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_default_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_destructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_pod.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_polymorphic.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_standard_layout.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivial.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copyable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_default_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_destructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_volatile.pass.cpp vendor/libc++/dist/test/std/utilities/ratio/ratio.comparison/ratio_equal.pass.cpp vendor/libc++/dist/test/std/utilities/ratio/ratio.comparison/ratio_greater.pass.cpp vendor/libc++/dist/test/std/utilities/ratio/ratio.comparison/ratio_greater_equal.pass.cpp vendor/libc++/dist/test/std/utilities/ratio/ratio.comparison/ratio_less.pass.cpp vendor/libc++/dist/test/std/utilities/ratio/ratio.comparison/ratio_less_equal.pass.cpp vendor/libc++/dist/test/std/utilities/ratio/ratio.comparison/ratio_not_equal.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.cons/string_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/flip_one.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/reset_one.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/set_one.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/test.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.traits/time.traits.is_fp/treat_as_floating_point.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type.pass.cpp vendor/libc++/dist/test/std/utilities/utility/declval/declval.pass.cpp vendor/libc++/dist/test/std/utilities/utility/forward/move_if_noexcept.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/swap.pass.cpp vendor/libc++/dist/test/support/allocators.h vendor/libc++/dist/test/support/count_new.hpp vendor/libc++/dist/test/support/test_allocator.h vendor/libc++/dist/test/support/test_macros.h vendor/libc++/dist/test/testit vendor/libc++/dist/www/cxx1y_status.html vendor/libc++/dist/www/cxx1z_status.html vendor/libc++/dist/www/index.html vendor/libc++/dist/www/ts1z_status.html Modified: vendor/libc++/dist/CMakeLists.txt ============================================================================== --- vendor/libc++/dist/CMakeLists.txt Wed Dec 30 11:53:21 2015 (r292927) +++ vendor/libc++/dist/CMakeLists.txt Wed Dec 30 11:54:09 2015 (r292928) @@ -3,13 +3,16 @@ #=============================================================================== # Setup Project #=============================================================================== - -project(libcxx CXX C) cmake_minimum_required(VERSION 2.8) if(POLICY CMP0042) cmake_policy(SET CMP0042 NEW) # Set MACOSX_RPATH=YES by default endif() +if(POLICY CMP0022) + cmake_policy(SET CMP0022 NEW) # Required when interacting with LLVM and Clang +endif() + +project(libcxx CXX C) set(PACKAGE_NAME libcxx) set(PACKAGE_VERSION trunk-svn) @@ -30,61 +33,40 @@ MACRO_ENSURE_OUT_OF_SOURCE_BUILD( build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there." ) -if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) - set(LIBCXX_LIBDIR_SUFFIX "" CACHE STRING - "Define suffix of library directory name (32/64)") - - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX}) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX}) - - set(LIBCXX_BUILT_STANDALONE 1) -else() - set(LIBCXX_LIBDIR_SUFFIX ${LLVM_LIBDIR_SUFFIX}) +# Find the LLVM sources and simulate LLVM CMake options. +include(HandleOutOfTreeLLVM) +if (LIBCXX_BUILT_STANDALONE AND NOT LLVM_FOUND) + message(WARNING "UNSUPPORTED LIBCXX CONFIGURATION DETECTED: " + "llvm-config not found and LLVM_PATH not defined.\n" + "Reconfigure with -DLLVM_CONFIG=path/to/llvm-config " + "or -DLLVM_PATH=path/to/llvm-source-root.") endif() #=============================================================================== # Setup CMake Options #=============================================================================== -# Define options. -option(LIBCXX_ENABLE_EXCEPTIONS "Use exceptions." ON) -option(LIBCXX_ENABLE_RTTI "Use run time type information." ON) +# Basic options --------------------------------------------------------------- option(LIBCXX_ENABLE_ASSERTIONS "Enable assertions independent of build mode." ON) -option(LIBCXX_ENABLE_PEDANTIC "Compile with pedantic enabled." ON) -option(LIBCXX_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF) -option(LIBCXX_ENABLE_CXX1Y "Enable -std=c++1y and use of c++1y language features if the compiler supports it." OFF) option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON) -option(LIBCXX_ENABLE_GLOBAL_FILESYSTEM_NAMESPACE "Build libc++ with support for the global filesystem namespace." ON) -option(LIBCXX_ENABLE_STDIN "Build libc++ with support for stdin/std::cin." ON) -option(LIBCXX_ENABLE_STDOUT "Build libc++ with support for stdout/std::cout." ON) -option(LIBCXX_ENABLE_THREADS "Build libc++ with support for threads." ON) -option(LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS "Build libc++ with support for thread-unsafe C functions" ON) -option(LIBCXX_BUILD_32_BITS "Build 32 bit libc++" OFF) -option(LIBCXX_ENABLE_MONOTONIC_CLOCK - "Build libc++ with support for a monotonic clock. - This option may only be used when LIBCXX_ENABLE_THREADS=OFF." ON) + +option(LIBCXX_INCLUDE_TESTS "Build the libc++ tests." ${LLVM_INCLUDE_TESTS}) +option(LIBCXX_INCLUDE_DOCS "Build the libc++ documentation." ${LLVM_INCLUDE_DOCS}) +set(LIBCXX_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING + "Define suffix of library directory name (32/64)") option(LIBCXX_INSTALL_HEADERS "Install the libc++ headers." ON) +option(LIBCXX_INSTALL_LIBRARY "Install the libc++ library." ON) option(LIBCXX_INSTALL_SUPPORT_HEADERS "Install libc++ support headers." ON) -option(LIBCXX_GENERATE_COVERAGE "Enable generating code coverage." OFF) -set(LIBCXX_COVERAGE_LIBRARY "" CACHE STRING - "The Profile-rt library used to build with code coverage") -option(LIBCXX_ENABLE_STATIC_ABI_LIBRARY "Statically link the ABI library" OFF) -set(LIBCXX_SYSROOT "" CACHE STRING "Use alternate sysroot.") -set(LIBCXX_GCC_TOOLCHAIN "" CACHE STRING "Use alternate GCC toolchain.") -if (LIBCXX_BUILT_STANDALONE) - set(LLVM_USE_SANITIZER "" CACHE STRING - "Define the sanitizer used to build the library and tests") -endif() - -if (LIBCXX_ENABLE_STATIC_ABI_LIBRARY) - if (APPLE) - message(FATAL_ERROR "LIBCXX_ENABLE_STATIC_ABI_LIBRARY is not supported on OS X") - else() - message(WARNING "LIBCXX_ENABLE_STATIC_ABI_LIBRARY is an experimental option") - endif() -endif() +set(LIBCXX_ABI_VERSION 1 CACHE STRING "ABI version of libc++.") +option(LIBCXX_ABI_UNSTABLE "Unstable ABI of libc++." OFF) +# ABI Library options --------------------------------------------------------- +set(LIBCXX_CXX_ABI "${LIBCXX_CXX_ABI}" CACHE STRING + "Specify C++ ABI library to use." FORCE) set(CXXABIS none libcxxabi libcxxrt libstdc++ libsupc++) +set_property(CACHE LIBCXX_CXX_ABI PROPERTY STRINGS ;${CXXABIS}) + +# Setup the default options if LIBCXX_CXX_ABI is not specified. if (NOT LIBCXX_CXX_ABI) if (NOT DEFINED LIBCXX_BUILT_STANDALONE AND IS_DIRECTORY "${CMAKE_SOURCE_DIR}/projects/libcxxabi") @@ -97,14 +79,139 @@ if (NOT LIBCXX_CXX_ABI) else () set(LIBCXX_CXX_ABI_LIBNAME "${LIBCXX_CXX_ABI}") endif () -set(LIBCXX_CXX_ABI "${LIBCXX_CXX_ABI}" CACHE STRING - "Specify C++ ABI library to use." FORCE) -set_property(CACHE LIBCXX_CXX_ABI PROPERTY STRINGS ;${CXXABIS}) + +# Use a static copy of the ABI library when linking libc++. This option +# cannot be used with LIBCXX_ENABLE_ABI_LINKER_SCRIPT. +option(LIBCXX_ENABLE_STATIC_ABI_LIBRARY "Statically link the ABI library" OFF) + +# Generate and install a linker script inplace of libc++.so. The linker script +# will link libc++ to the correct ABI library. This option is on by default +# On UNIX platforms other than Apple unless 'LIBCXX_ENABLE_STATIC_ABI_LIBRARY' +# is on. This option is also disabled when the ABI library is not specified +# or is specified to be "none". +set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE OFF) +if (LLVM_HAVE_LINK_VERSION_SCRIPT AND NOT LIBCXX_ENABLE_STATIC_ABI_LIBRARY + AND NOT LIBCXX_CXX_ABI_LIBNAME STREQUAL "none" + AND PYTHONINTERP_FOUND) + set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE ON) +endif() + +option(LIBCXX_ENABLE_ABI_LINKER_SCRIPT + "Use and install a linker script for the given ABI library" + ${ENABLE_LINKER_SCRIPT_DEFAULT_VALUE}) # Build libc++abi with libunwind. We need this option to determine whether to # link with libunwind or libgcc_s while running the test cases. option(LIBCXXABI_USE_LLVM_UNWINDER "Build and use the LLVM unwinder." OFF) +# Target options -------------------------------------------------------------- +option(LIBCXX_BUILD_32_BITS "Build 32 bit libc++." ${LLVM_BUILD_32_BITS}) +set(LIBCXX_SYSROOT "" CACHE STRING "Use alternate sysroot.") +set(LIBCXX_GCC_TOOLCHAIN "" CACHE STRING "Use alternate GCC toolchain.") + +# Feature options ------------------------------------------------------------- +option(LIBCXX_ENABLE_EXCEPTIONS "Use exceptions." ON) +option(LIBCXX_ENABLE_RTTI "Use run time type information." ON) +option(LIBCXX_ENABLE_GLOBAL_FILESYSTEM_NAMESPACE "Build libc++ with support for the global filesystem namespace." ON) +option(LIBCXX_ENABLE_STDIN "Build libc++ with support for stdin/std::cin." ON) +option(LIBCXX_ENABLE_STDOUT "Build libc++ with support for stdout/std::cout." ON) +option(LIBCXX_ENABLE_THREADS "Build libc++ with support for threads." ON) +option(LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS "Build libc++ with support for thread-unsafe C functions" ON) +option(LIBCXX_ENABLE_MONOTONIC_CLOCK + "Build libc++ with support for a monotonic clock. + This option may only be set to OFF when LIBCXX_ENABLE_THREADS=OFF." ON) +option(LIBCXX_HAS_MUSL_LIBC "Build libc++ with support for the Musl C library" OFF) + +# Misc options ---------------------------------------------------------------- +# FIXME: Turn -pedantic back ON. It is currently off because it warns +# about #include_next which is used everywhere. +option(LIBCXX_ENABLE_PEDANTIC "Compile with pedantic enabled." OFF) +option(LIBCXX_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF) + +option(LIBCXX_GENERATE_COVERAGE "Enable generating code coverage." OFF) +set(LIBCXX_COVERAGE_LIBRARY "" CACHE STRING + "The Profile-rt library used to build with code coverage") + +# Don't allow a user to accidentally overwrite the system libc++ installation on Darwin. +# If the user specifies -DCMAKE_INSTALL_PREFIX=/usr the install rules for libc++ +# will not be generated and a warning will be issued. +option(LIBCXX_OVERRIDE_DARWIN_INSTALL "Enable overwriting darwins libc++ installation." OFF) +mark_as_advanced(LIBCXX_OVERRIDE_DARWIN_INSTALL) # Don't show this option by default. + +if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT LIBCXX_OVERRIDE_DARWIN_INSTALL) + if ("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr") + message(WARNING "Disabling libc++ install rules because installation would " + "overwrite the systems installation. Configure with " + "-DLIBCXX_OVERRIDE_DARWIN_INSTALL=ON to suppress this behaviour.") + mark_as_advanced(CLEAR LIBCXX_OVERRIDE_DARWIN_INSTALL) # Show the override option. + set(LIBCXX_INSTALL_HEADERS OFF) + set(LIBCXX_INSTALL_LIBRARY OFF) + endif() +endif() + +set(LIBCXX_CONFIGURE_IDE_DEFAULT OFF) +if (XCODE OR MSVC_IDE) + set(LIBCXX_CONFIGURE_IDE_DEFAULT ON) +endif() +option(LIBCXX_CONFIGURE_IDE "Configure libcxx for use within an IDE" + ${LIBCXX_CONFIGURE_IDE_DEFAULT}) + +#=============================================================================== +# Check option configurations +#=============================================================================== + +# Ensure LIBCXX_ENABLE_MONOTONIC_CLOCK is set to ON only when +# LIBCXX_ENABLE_THREADS is on. +if(LIBCXX_ENABLE_THREADS AND NOT LIBCXX_ENABLE_MONOTONIC_CLOCK) + message(FATAL_ERROR "LIBCXX_ENABLE_MONOTONIC_CLOCK can only be set to OFF" + " when LIBCXX_ENABLE_THREADS is also set to OFF.") +endif() + +# Ensure LLVM_USE_SANITIZER is not specified when LIBCXX_GENERATE_COVERAGE +# is ON. +if (LLVM_USE_SANITIZER AND LIBCXX_GENERATE_COVERAGE) + message(FATAL_ERROR "LLVM_USE_SANITIZER cannot be used with LIBCXX_GENERATE_COVERAGE") +endif() + +# Set LIBCXX_BUILD_32_BITS to (LIBCXX_BUILD_32_BITS OR LLVM_BUILD_32_BITS) +# and check that we can build with 32 bits if requested. +if (CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32) + if (LIBCXX_BUILD_32_BITS AND NOT LLVM_BUILD_32_BITS) # Don't duplicate the output from LLVM + message(STATUS "Building 32 bits executables and libraries.") + endif() +elseif(LIBCXX_BUILD_32_BITS) + message(FATAL_ERROR "LIBCXX_BUILD_32_BITS=ON is not supported on this platform.") +endif() + +# Check that this option is not enabled on Apple and emit a usage warning. +if (LIBCXX_ENABLE_STATIC_ABI_LIBRARY) + if (APPLE) + message(FATAL_ERROR "LIBCXX_ENABLE_STATIC_ABI_LIBRARY is not supported on OS X") + else() + message(WARNING "LIBCXX_ENABLE_STATIC_ABI_LIBRARY is an experimental option") + endif() +endif() + +if (LIBCXX_ENABLE_ABI_LINKER_SCRIPT) + if (APPLE) + message(FATAL_ERROR "LIBCXX_ENABLE_ABI_LINKER_SCRIPT cannot be used on APPLE targets") + endif() + if (NOT PYTHONINTERP_FOUND) + message(FATAL_ERROR "LIBCXX_ENABLE_ABI_LINKER_SCRIPT requires python but it was not found.") + endif() +endif() + +if (LIBCXX_ENABLE_STATIC_ABI_LIBRARY AND LIBCXX_ENABLE_ABI_LINKER_SCRIPT) + message(FATAL_ERROR "Conflicting options given. + LIBCXX_ENABLE_STATIC_ABI_LIBRARY cannot be specified with + LIBCXX_ENABLE_ABI_LINKER_SCRIPT") +endif() + +if (LIBCXX_HAS_MUSL_LIBC AND NOT LIBCXX_INSTALL_SUPPORT_HEADERS) + message(FATAL_ERROR "LIBCXX_INSTALL_SUPPORT_HEADERS can not be turned off" + "when building for Musl with LIBCXX_HAS_MUSL_LIBC.") +endif() + #=============================================================================== # Configure System #=============================================================================== @@ -114,232 +221,183 @@ set(LIBCXX_SOURCE_DIR ${CMAKE_CURRENT_S set(LIBCXX_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX}) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBCXX_LIBRARY_DIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBCXX_LIBRARY_DIR}) + # Declare libc++ configuration variables. # They are intended for use as follows: # LIBCXX_CXX_FLAGS: General flags for both the compiler and linker. # LIBCXX_COMPILE_FLAGS: Compile only flags. # LIBCXX_LINK_FLAGS: Linker only flags. -set(LIBCXX_CXX_FLAGS "") set(LIBCXX_COMPILE_FLAGS "") set(LIBCXX_LINK_FLAGS "") +set(LIBCXX_LIBRARIES "") # Configure compiler. include(config-ix) -# Configure ABI library -include(HandleLibCXXABI) + # Configure coverage options. if (LIBCXX_GENERATE_COVERAGE) include(CodeCoverage) set(CMAKE_BUILD_TYPE "COVERAGE" CACHE STRING "" FORCE) endif() +string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE) + #=============================================================================== # Setup Compiler Flags #=============================================================================== -# Get required flags. -# On all systems the system c++ standard library headers need to be excluded. -if (MSVC) - # MSVC only has -X, which disables all default includes; including the crt. - # Thus, we do nothing and hope we don't accidentally include any of the C++ - # headers. -else() - if (LIBCXX_HAS_NOSTDINCXX_FLAG) - list(APPEND LIBCXX_COMPILE_FLAGS -nostdinc++) - string(REPLACE "-stdlib=libc++" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - string(REPLACE "-stdlib=libstdc++" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - endif() - # If c++1y has been enabled then attempt to use it. Fail if it is no supported - # by the compiler. Otherwise choose c++11 and ensure the compiler supports it. - if (LIBCXX_ENABLE_CXX1Y) - if (LIBCXX_HAS_STDCXX1Y_FLAG) - set(LIBCXX_STD_VERSION c++1y) - else() - message(FATAL_ERROR "c++1y was enabled but the compiler does not support it.") - endif() - else() - if (LIBCXX_HAS_STDCXX11_FLAG) - set(LIBCXX_STD_VERSION c++11) - else() - message(FATAL_ERROR "c++11 is required by libc++ but is not supported by the compiler") - endif() - endif() - # LIBCXX_STD_VERSION should always be set at this point. - list(APPEND LIBCXX_CXX_FLAGS "-std=${LIBCXX_STD_VERSION}") -endif() +include(HandleLibCXXABI) # Steup the ABI library flags -macro(append_if list condition var) - if (${condition}) - list(APPEND ${list} ${var}) - endif() -endmacro() +# Include macros for adding and removing libc++ flags. +include(HandleLibcxxFlags) -# Get warning flags -if (NOT MSVC) - append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WALL_FLAG -Wall) - list(APPEND LIBCXX_COMPILE_FLAGS -Werror=return-type) +# Remove flags that may have snuck in. +remove_flags(-DNDEBUG -UNDEBUG -D_DEBUG + -stdlib=libc++ -stdlib=libstdc++ -lc++abi -m32) + +# FIXME(EricWF): See the FIXME on LIBCXX_ENABLE_PEDANTIC. +# Remove the -pedantic flag and -Wno-pedantic and -pedantic-errors +# so they don't get transformed into -Wno and -errors respectivly. +remove_flags(-Wno-pedantic -pedantic-errors -pedantic) + +# Required flags ============================================================== +add_compile_flags_if_supported(-std=c++11) +if (NOT MSVC AND NOT LIBCXX_SUPPORTS_STD_EQ_CXX11_FLAG) + message(FATAL_ERROR "C++11 is required but the compiler does not support -std=c++11") endif() -append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_W_FLAG -W) -append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WNO_UNUSED_PARAMETER_FLAG -Wno-unused-parameter) -append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WWRITE_STRINGS_FLAG -Wwrite-strings) -append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WNO_LONG_LONG_FLAG -Wno-long-long) +# On all systems the system c++ standard library headers need to be excluded. +# MSVC only has -X, which disables all default includes; including the crt. +# Thus, we do nothing and hope we don't accidentally include any of the C++ +# headers +add_compile_flags_if_supported(-nostdinc++) + +# Target flags ================================================================ +add_flags_if(LIBCXX_BUILD_32_BITS -m32) +add_flags_if(LIBCXX_TARGET_TRIPLE "-target ${LIBCXX_TARGET_TRIPLE}") +add_flags_if(LIBCXX_SYSROOT "--sysroot ${LIBCXX_SYSROOT}") +add_flags_if(LIBCXX_GCC_TOOLCHAIN "-gcc-toolchain ${LIBCXX_GCC_TOOLCHAIN}") + +# Warning flags =============================================================== +add_definitions(-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) +add_compile_flags_if_supported( + -Wall -W -Wwrite-strings + -Wno-unused-parameter -Wno-long-long + -Werror=return-type) if (LIBCXX_ENABLE_WERROR) - append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WERROR_FLAG -Werror) - append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WX_FLAG -WX) + add_compile_flags_if_supported(-Werror) + add_compile_flags_if_supported(-WX) else() - append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WNO_ERROR_FLAG -Wno-error) - append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_NO_WX_FLAG -WX-) + # TODO(EricWF) Remove this. We shouldn't be suppressing errors when -Werror is + # added elsewhere. + add_compile_flags_if_supported(-Wno-error) endif() if (LIBCXX_ENABLE_PEDANTIC) - append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_PEDANTIC_FLAG -pedantic) + add_compile_flags_if_supported(-pedantic) endif() -# Get feature flags. -# Exceptions +# Exception flags ============================================================= if (LIBCXX_ENABLE_EXCEPTIONS) # Catches C++ exceptions only and tells the compiler to assume that extern C # functions never throw a C++ exception. - append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_EHSC_FLAG -EHsc) + add_compile_flags_if_supported(-EHsc) else() - list(APPEND LIBCXX_CXX_FLAGS -D_LIBCPP_NO_EXCEPTIONS) - append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_NO_EHS_FLAG -EHs-) - append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_NO_EHA_FLAG -EHa-) - append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_FNO_EXCEPTIONS_FLAG -fno-exceptions) + add_definitions(-D_LIBCPP_NO_EXCEPTIONS) + add_compile_flags_if_supported(-EHs- -EHa-) + add_compile_flags_if_supported(-fno-exceptions) endif() -# RTTI + +# RTTI flags ================================================================== if (NOT LIBCXX_ENABLE_RTTI) - list(APPEND LIBCXX_CXX_FLAGS -D_LIBCPP_NO_RTTI) - append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_NO_GR_FLAG -GR-) - append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_FNO_RTTI_FLAG -fno-rtti) + add_definitions(-D_LIBCPP_NO_RTTI) + add_compile_flags_if_supported(-GR-) + add_compile_flags_if_supported(-fno-rtti) endif() -# Assert -string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE) + +# Assertion flags ============================================================= +define_if(LIBCXX_ENABLE_ASSERTIONS -UNDEBUG) +define_if_not(LIBCXX_ENABLE_ASSERTIONS -DNDEBUG) if (LIBCXX_ENABLE_ASSERTIONS) # MSVC doesn't like _DEBUG on release builds. See PR 4379. - if (NOT MSVC) - list(APPEND LIBCXX_COMPILE_FLAGS -D_DEBUG) - endif() - # On Release builds cmake automatically defines NDEBUG, so we - # explicitly undefine it: - if (uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE") - list(APPEND LIBCXX_COMPILE_FLAGS -UNDEBUG) - endif() -else() - if (NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE") - list(APPEND LIBCXX_COMPILE_FLAGS -DNDEBUG) - endif() -endif() -# Static library -if (NOT LIBCXX_ENABLE_SHARED) - list(APPEND LIBCXX_COMPILE_FLAGS -D_LIBCPP_BUILD_STATIC) -endif() - -if (CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32) - if (LIBCXX_BUILD_32_BITS) - message(STATUS "Building 32 bits executables and libraries.") - list(APPEND LIBCXX_CXX_FLAGS "-m32") - endif() -elseif(LIBCXX_BUILD_32_BITS) - message(FATAL_ERROR "LIBCXX_BUILD_32_BITS=ON is not supported on this platform.") -endif() -# This is the _ONLY_ place where add_definitions is called. -if (MSVC) - add_definitions(-D_CRT_SECURE_NO_WARNINGS) -endif() - -# LIBCXX_ENABLE_GLOBAL_FILESYSTEM_NAMESPACE configuration -if (NOT LIBCXX_ENABLE_GLOBAL_FILESYSTEM_NAMESPACE) - add_definitions(-D_LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE) -endif() - -# LIBCXX_ENABLE_STDIN configuration -if (NOT LIBCXX_ENABLE_STDIN) - add_definitions(-D_LIBCPP_HAS_NO_STDIN) -endif() - -# LIBCXX_ENABLE_STDOUT configuration -if (NOT LIBCXX_ENABLE_STDOUT) - add_definitions(-D_LIBCPP_HAS_NO_STDOUT) + define_if_not(MSVC -D_DEBUG) endif() -# LIBCXX_ENABLE_THREADS configuration -if (NOT LIBCXX_ENABLE_THREADS) - add_definitions(-D_LIBCPP_HAS_NO_THREADS) - if (NOT LIBCXX_ENABLE_MONOTONIC_CLOCK) - add_definitions(-D_LIBCPP_HAS_NO_MONOTONIC_CLOCK) - endif() -# Ensure LIBCXX_ENABLE_MONOTONIC_CLOCK is set to ON. -elseif(NOT LIBCXX_ENABLE_MONOTONIC_CLOCK) - message(FATAL_ERROR "LIBCXX_ENABLE_MONOTONIC_CLOCK can only be set to OFF" - " when LIBCXX_ENABLE_THREADS is also set to OFF.") -endif() +# Feature flags =============================================================== +define_if(MSVC -D_CRT_SECURE_NO_WARNINGS) -# LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS configuration -if (NOT LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS) - add_definitions(-D_LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS) -endif() +# Sanitizer flags ============================================================= # Configure for sanitizers. If LIBCXX_BUILT_STANDALONE then we have to do # the flag translation ourselves. Othewise LLVM's CMakeList.txt will handle it. if (LIBCXX_BUILT_STANDALONE) + set(LLVM_USE_SANITIZER "" CACHE STRING + "Define the sanitizer used to build the library and tests") # NOTE: LLVM_USE_SANITIZER checks for a UNIX like system instead of MSVC. # But we don't have LLVM_ON_UNIX so checking for MSVC is the best we can do. if (LLVM_USE_SANITIZER AND NOT MSVC) - append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_FNO_OMIT_FRAME_POINTER_FLAG - "-fno-omit-frame-pointer") + add_flags_if_supported("-fno-omit-frame-pointer") + add_flags_if_supported("-gline-tables-only") + if (NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG" AND NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "RELWITHDEBINFO") - append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_GLINE_TABLES_ONLY_FLAG - "-gline-tables-only") + add_flags_if_supported("-gline-tables-only") endif() if (LLVM_USE_SANITIZER STREQUAL "Address") - list(APPEND LIBCXX_CXX_FLAGS "-fsanitize=address") + add_flags("-fsanitize=address") elseif (LLVM_USE_SANITIZER MATCHES "Memory(WithOrigins)?") - list(APPEND LIBCXX_CXX_FLAGS "-fsanitize=memory") + add_flags(-fsanitize=memory) if (LLVM_USE_SANITIZER STREQUAL "MemoryWithOrigins") - list(APPEND LIBCXX_CXX_FLAGS "-fsanitize-memory-track-origins") + add_flags("-fsanitize-memory-track-origins") endif() elseif (LLVM_USE_SANITIZER STREQUAL "Undefined") - list(APPEND LIBCXX_CXX_FLAGS - "-fsanitize=undefined -fno-sanitize=vptr,function -fno-sanitize-recover") + add_flags("-fsanitize=undefined -fno-sanitize=vptr,function -fno-sanitize-recover=all") elseif (LLVM_USE_SANITIZER STREQUAL "Thread") - list(APPEND LIBCXX_CXX_FLAGS "-fsanitize=thread") + add_flags(-fsanitize=thread) else() message(WARNING "Unsupported value of LLVM_USE_SANITIZER: ${LLVM_USE_SANITIZER}") endif() - elseif(MSVC) - message(WARNING "LLVM_USE_SANITIZER is not supported with MSVC") + elseif(LLVM_USE_SANITIZER AND MSVC) + message(WARNING "LLVM_USE_SANITIZER is not supported on this platform.") endif() endif() -append_if(LIBCXX_CXX_FLAGS LIBCXX_TARGET_TRIPLE - "-target ${LIBCXX_TARGET_TRIPLE}") +# Configuration file flags ===================================================== +if (NOT LIBCXX_ABI_VERSION EQUAL "1") + config_define(${LIBCXX_ABI_VERSION} _LIBCPP_ABI_VERSION) +endif() +config_define_if(LIBCXX_ABI_UNSTABLE _LIBCPP_ABI_UNSTABLE) -append_if(LIBCXX_CXX_FLAGS LIBCXX_SYSROOT "--sysroot ${LIBCXX_SYSROOT}") -append_if(LIBCXX_CXX_FLAGS LIBCXX_GCC_TOOLCHAIN - "-gcc-toolchain ${LIBCXX_GCC_TOOLCHAIN}") +config_define_if_not(LIBCXX_ENABLE_GLOBAL_FILESYSTEM_NAMESPACE _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE) +config_define_if_not(LIBCXX_ENABLE_STDIN _LIBCPP_HAS_NO_STDIN) +config_define_if_not(LIBCXX_ENABLE_STDOUT _LIBCPP_HAS_NO_STDOUT) +config_define_if_not(LIBCXX_ENABLE_THREADS _LIBCPP_HAS_NO_THREADS) +config_define_if_not(LIBCXX_ENABLE_MONOTONIC_CLOCK _LIBCPP_HAS_NO_MONOTONIC_CLOCK) +config_define_if_not(LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS) -if (LLVM_USE_SANITIZER AND LIBCXX_GENERATE_COVERAGE) - message(FATAL_ERROR "LLVM_USE_SANITIZER cannot be used with LIBCXX_GENERATE_COVERAGE") -endif() +config_define_if(LIBCXX_HAS_MUSL_LIBC _LIBCPP_HAS_MUSL_LIBC) -string(REPLACE ";" " " LIBCXX_CXX_FLAGS "${LIBCXX_CXX_FLAGS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LIBCXX_CXX_FLAGS}") +if (LIBCXX_NEEDS_SITE_CONFIG) + configure_file( + include/__config_site.in + ${LIBCXX_BINARY_DIR}/__config_site + @ONLY) + # Provide the config definitions by included the generated __config_site + # file at compile time. + add_compile_flags("-include ${LIBCXX_BINARY_DIR}/__config_site") +endif() #=============================================================================== -# Setup Source Code +# Setup Source Code And Tests #=============================================================================== - include_directories(include) add_subdirectory(include) - -# Add source code. This also contains all of the logic for deciding linker flags -# soname, etc... add_subdirectory(lib) -#=============================================================================== -# Setup Tests -#=============================================================================== - -add_subdirectory(test) +if (LIBCXX_INCLUDE_TESTS) + add_subdirectory(test) +endif() +if (LIBCXX_INCLUDE_DOCS) + add_subdirectory(docs) +endif() Modified: vendor/libc++/dist/TODO.TXT ============================================================================== --- vendor/libc++/dist/TODO.TXT Wed Dec 30 11:53:21 2015 (r292927) +++ vendor/libc++/dist/TODO.TXT Wed Dec 30 11:54:09 2015 (r292928) @@ -1,5 +1,15 @@ This is meant to be a general place to list things that should be done "someday" +3.8 Release Goals +================= +* LFTS v1 (EricWF, MClow) +* Filesystem TS (EricWF) +* ASIO TS (MClow) +* Improvements (MClow) +* Setup ABI Versioning policy (EricWF) +* Fix PR19302 - Fix UB in list and __tree. + + ABI Related Tasks ================= * Explicitly manage and verify symbols exported from the dylib. @@ -21,18 +31,18 @@ CXX Runtime Library Tasks Atomic Related Tasks ==================== -* Support in C++03 (needed for internal use). +* Enable mixing of clang and GCC atomics internally. Currently some + parts of libc++ use atomics only when clang provides them. + (see memory@5380 for an example) * Audit use of libatomic builtins in with GCC. * future should use for synchronization. -* call_once should use for synchronization. -* Audit shared_ptr use of Test Suite Tasks ================ -* Get test suite passing in C++03. * Move all libc++ specific tests from test/std into test/libcxx. * Improve how LIT handles compiler warnings. * Improve the quality and portability of the locale test data. +* Convert failure tests to use Clang Verify. Misc Tasks ========== @@ -42,8 +52,5 @@ Misc Tasks * Look at basic_string's move assignment operator, re LWG 2063 and POCMA * libc++ is missing try_emplace * Put a static_assert in std::allocator to deny const/volatile types (LWG 2447) -* Investigate the effect of using __decltype instead of __typeof__ to provide - decltype in C++03. What code could be broken by this change? -* Convert failure tests to use Clang Verify. * Document support (or lack of) for C++11 libraries in C++03. * Document supported compilers. Modified: vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake ============================================================================== --- vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake Wed Dec 30 11:53:21 2015 (r292927) +++ vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake Wed Dec 30 11:54:09 2015 (r292928) @@ -41,10 +41,13 @@ macro(setup_abi_lib abidefines abilib ab file(COPY "${incpath}/${fpath}" DESTINATION "${CMAKE_BINARY_DIR}/include/${dstdir}" ) - install(FILES "${CMAKE_BINARY_DIR}/include/${fpath}" - DESTINATION include/c++/v1/${dstdir} - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ - ) + if (LIBCXX_INSTALL_HEADERS) + install(FILES "${CMAKE_BINARY_DIR}/include/${fpath}" + DESTINATION include/c++/v1/${dstdir} + COMPONENT libcxx + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ + ) + endif() list(APPEND abilib_headers "${CMAKE_BINARY_DIR}/include/${fpath}") endif() endforeach() @@ -58,6 +61,8 @@ macro(setup_abi_lib abidefines abilib ab endmacro() + +# Configure based on the selected ABI library. if ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libstdc++" OR "${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libsupc++") set(_LIBSUPCXX_INCLUDE_FILES Added: vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake Wed Dec 30 11:54:09 2015 (r292928) @@ -0,0 +1,169 @@ +# HandleLibcxxFlags - A set of macros used to setup the flags used to compile +# and link libc++. These macros add flags to the following CMake variables. +# - LIBCXX_COMPILE_FLAGS: flags used to compile libc++ +# - LIBCXX_LINK_FLAGS: flags used to link libc++ +# - LIBCXX_LIBRARIES: libraries to link libc++ to. + +include(CheckCXXCompilerFlag) + +unset(add_flag_if_supported) + +# Mangle the name of a compiler flag into a valid CMake identifier. +# Ex: --std=c++11 -> STD_EQ_CXX11 +macro(mangle_name str output) + string(STRIP "${str}" strippedStr) + string(REGEX REPLACE "^/" "" strippedStr "${strippedStr}") + string(REGEX REPLACE "^-+" "" strippedStr "${strippedStr}") + string(REGEX REPLACE "-+$" "" strippedStr "${strippedStr}") + string(REPLACE "-" "_" strippedStr "${strippedStr}") + string(REPLACE "=" "_EQ_" strippedStr "${strippedStr}") + string(REPLACE "+" "X" strippedStr "${strippedStr}") + string(TOUPPER "${strippedStr}" ${output}) +endmacro() + +# Remove a list of flags from all CMake variables that affect compile flags. +# This can be used to remove unwanted flags specified on the command line +# or added in other parts of LLVM's cmake configuration. +macro(remove_flags) + foreach(var ${ARGN}) + string(REPLACE "${var}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + string(REPLACE "${var}" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + string(REPLACE "${var}" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") + string(REPLACE "${var}" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}") + string(REPLACE "${var}" "" CMAKE_SHARED_MODULE_FLAGS "${CMAKE_SHARED_MODULE_FLAGS}") + remove_definitions(${var}) + endforeach() +endmacro(remove_flags) + +# Add a macro definition if condition is true. +macro(define_if condition def) + if (${condition}) + add_definitions(${def}) + endif() +endmacro() + +# Add a macro definition if condition is not true. +macro(define_if_not condition def) + if (NOT ${condition}) + add_definitions(${def}) + endif() +endmacro() + +# Add a macro definition to the __config_site file if the specified condition +# is 'true'. Note that '-D${def}' is not added. Instead it is expected that +# the build include the '__config_site' header. +macro(config_define_if condition def) + if (${condition}) + set(${def} ON) + set(LIBCXX_NEEDS_SITE_CONFIG ON) + endif() +endmacro() + +macro(config_define_if_not condition def) + if (NOT ${condition}) + set(${def} ON) + set(LIBCXX_NEEDS_SITE_CONFIG ON) + endif() +endmacro() + +macro(config_define value def) + set(${def} ${value}) + set(LIBCXX_NEEDS_SITE_CONFIG ON) +endmacro() + +# Add a specified list of flags to both 'LIBCXX_COMPILE_FLAGS' and +# 'LIBCXX_LINK_FLAGS'. +macro(add_flags) + foreach(value ${ARGN}) + list(APPEND LIBCXX_COMPILE_FLAGS ${value}) + list(APPEND LIBCXX_LINK_FLAGS ${value}) + endforeach() +endmacro() + +# If the specified 'condition' is true then add a list of flags to both +# 'LIBCXX_COMPILE_FLAGS' and 'LIBCXX_LINK_FLAGS'. +macro(add_flags_if condition) + if (${condition}) + add_flags(${ARGN}) + endif() +endmacro() + +# Add each flag in the list to LIBCXX_COMPILE_FLAGS and LIBCXX_LINK_FLAGS +# if that flag is supported by the current compiler. +macro(add_flags_if_supported) + foreach(flag ${ARGN}) + mangle_name("${flag}" flagname) + check_cxx_compiler_flag("${flag}" "LIBCXX_SUPPORTS_${flagname}_FLAG") + add_flags_if(LIBCXX_SUPPORTS_${flagname}_FLAG ${flag}) + endforeach() +endmacro() + +# Add a list of flags to 'LIBCXX_COMPILE_FLAGS'. +macro(add_compile_flags) + foreach(f ${ARGN}) + list(APPEND LIBCXX_COMPILE_FLAGS ${f}) + endforeach() +endmacro() + +# If 'condition' is true then add the specified list of flags to +# 'LIBCXX_COMPILE_FLAGS' +macro(add_compile_flags_if condition) + if (${condition}) + add_compile_flags(${ARGN}) + endif() +endmacro() + +# For each specified flag, add that flag to 'LIBCXX_COMPILE_FLAGS' if the +# flag is supported by the C++ compiler. +macro(add_compile_flags_if_supported) + foreach(flag ${ARGN}) + mangle_name("${flag}" flagname) + check_cxx_compiler_flag("${flag}" "LIBCXX_SUPPORTS_${flagname}_FLAG") + add_compile_flags_if(LIBCXX_SUPPORTS_${flagname}_FLAG ${flag}) + endforeach() +endmacro() + +# Add a list of flags to 'LIBCXX_LINK_FLAGS'. +macro(add_link_flags) + foreach(f ${ARGN}) + list(APPEND LIBCXX_LINK_FLAGS ${f}) + endforeach() +endmacro() + +# If 'condition' is true then add the specified list of flags to +# 'LIBCXX_LINK_FLAGS' +macro(add_link_flags_if condition) + if (${condition}) + add_link_flags(${ARGN}) + endif() +endmacro() + +# For each specified flag, add that flag to 'LIBCXX_LINK_FLAGS' if the +# flag is supported by the C++ compiler. +macro(add_link_flags_if_supported) + foreach(flag ${ARGN}) + mangle_name("${flag}" flagname) + check_cxx_compiler_flag("${flag}" "LIBCXX_SUPPORTS_${flagname}_FLAG") + add_link_flags_if(LIBCXX_SUPPORTS_${flagname}_FLAG ${flag}) + endforeach() +endmacro() + +# Add a list of libraries or link flags to 'LIBCXX_LIBRARIES'. +macro(add_library_flags) + foreach(lib ${ARGN}) + list(APPEND LIBCXX_LIBRARIES ${lib}) + endforeach() +endmacro() + +# if 'condition' is true then add the specified list of libraries and flags +# to 'LIBCXX_LIBRARIES'. +macro(add_library_flags_if condition) + if(${condition}) + add_library_flags(${ARGN}) + endif() +endmacro() + +# Turn a comma separated CMake list into a space separated string. +macro(split_list listname) + string(REPLACE ";" " " ${listname} "${${listname}}") +endmacro() Added: vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake Wed Dec 30 11:54:09 2015 (r292928) @@ -0,0 +1,138 @@ +macro(find_llvm_parts) +# Rely on llvm-config. + set(CONFIG_OUTPUT) + find_program(LLVM_CONFIG "llvm-config") + if(DEFINED LLVM_PATH) + set(LLVM_INCLUDE_DIR ${LLVM_INCLUDE_DIR} CACHE PATH "Path to llvm/include") + set(LLVM_PATH ${LLVM_PATH} CACHE PATH "Path to LLVM source tree") + set(LLVM_MAIN_SRC_DIR ${LLVM_PATH}) + set(LLVM_CMAKE_PATH "${LLVM_PATH}/cmake/modules") + elseif(LLVM_CONFIG) + message(STATUS "Found LLVM_CONFIG as ${LLVM_CONFIG}") + set(CONFIG_COMMAND ${LLVM_CONFIG} + "--includedir" + "--prefix" + "--src-root") + execute_process( + COMMAND ${CONFIG_COMMAND} + RESULT_VARIABLE HAD_ERROR + OUTPUT_VARIABLE CONFIG_OUTPUT + ) + if(NOT HAD_ERROR) + string(REGEX REPLACE + "[ \t]*[\r\n]+[ \t]*" ";" + CONFIG_OUTPUT ${CONFIG_OUTPUT}) + else() + string(REPLACE ";" " " CONFIG_COMMAND_STR "${CONFIG_COMMAND}") + message(STATUS "${CONFIG_COMMAND_STR}") + message(FATAL_ERROR "llvm-config failed with status ${HAD_ERROR}") + endif() + + list(GET CONFIG_OUTPUT 0 INCLUDE_DIR) + list(GET CONFIG_OUTPUT 1 LLVM_OBJ_ROOT) + list(GET CONFIG_OUTPUT 2 MAIN_SRC_DIR) + + set(LLVM_INCLUDE_DIR ${INCLUDE_DIR} CACHE PATH "Path to llvm/include") + set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build tree") + set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree") + set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR}/share/llvm/cmake") + else() + set(LLVM_FOUND OFF) + return() + endif() + + if (NOT EXISTS ${LLVM_MAIN_SRC_DIR}) + set(LLVM_FOUND OFF) + message(WARNING "Not found: ${LLVM_MAIN_SRC_DIR}") + return() + endif() + + if(NOT EXISTS ${LLVM_CMAKE_PATH}) + set(LLVM_FOUND OFF) + message(WARNING "Not found: ${LLVM_CMAKE_PATH}") + return() + endif() + + list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}") + list(APPEND CMAKE_MODULE_PATH "${LLVM_MAIN_SRC_DIR}/cmake/modules") + + set(LLVM_FOUND ON) +endmacro(find_llvm_parts) + + +if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + set(LIBCXX_BUILT_STANDALONE 1) + message(STATUS "Configuring for standalone build.") + + find_llvm_parts() + + # LLVM Options -------------------------------------------------------------- + include(FindPythonInterp) + if( NOT PYTHONINTERP_FOUND ) + message(WARNING "Failed to find python interpreter. " + "The libc++ test suite will be disabled.") + set(LLVM_INCLUDE_TESTS OFF) + endif() + + if (NOT DEFINED LLVM_INCLUDE_TESTS) + set(LLVM_INCLUDE_TESTS ${LLVM_FOUND}) + endif() + if (NOT DEFINED LLVM_INCLUDE_DOCS) + set(LLVM_INCLUDE_DOCS ${LLVM_FOUND}) + endif() + if (NOT DEFINED LLVM_ENABLE_SPHINX) + set(LLVM_ENABLE_SPHINX OFF) + endif() + + # Required LIT Configuration ------------------------------------------------ + # Define the default arguments to use with 'lit', and an option for the user + # to override. + set(LIT_ARGS_DEFAULT "-sv --show-xfail --show-unsupported") + if (MSVC OR XCODE) + set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar") + endif() + set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit") + + # Make sure we can use the console pool for recent cmake and ninja > 1.5 + # Needed for add_lit_testsuite + if(CMAKE_VERSION VERSION_LESS 3.1.20141117) + set(cmake_3_2_USES_TERMINAL) + else() + set(cmake_3_2_USES_TERMINAL USES_TERMINAL) + endif() + + # Required doc configuration + if (LLVM_ENABLE_SPHINX) + message(STATUS "Sphinx enabled.") + find_package(Sphinx REQUIRED) + else() + message(STATUS "Sphinx disabled.") + endif() + + # FIXME - This is cribbed from HandleLLVMOptions.cmake. + if(WIN32) + set(LLVM_HAVE_LINK_VERSION_SCRIPT 0) + if(CYGWIN) + set(LLVM_ON_WIN32 0) + set(LLVM_ON_UNIX 1) + else(CYGWIN) + set(LLVM_ON_WIN32 1) + set(LLVM_ON_UNIX 0) + endif(CYGWIN) + else(WIN32) + if(UNIX) + set(LLVM_ON_WIN32 0) + set(LLVM_ON_UNIX 1) + if(APPLE) + set(LLVM_HAVE_LINK_VERSION_SCRIPT 0) + else(APPLE) + set(LLVM_HAVE_LINK_VERSION_SCRIPT 1) + endif(APPLE) + else(UNIX) + MESSAGE(SEND_ERROR "Unable to determine platform") + endif(UNIX) + endif(WIN32) + + # Add LLVM Functions -------------------------------------------------------- + include(AddLLVM OPTIONAL) +endif() Modified: vendor/libc++/dist/cmake/config-ix.cmake ============================================================================== --- vendor/libc++/dist/cmake/config-ix.cmake Wed Dec 30 11:53:21 2015 (r292927) +++ vendor/libc++/dist/cmake/config-ix.cmake Wed Dec 30 11:54:09 2015 (r292928) @@ -2,23 +2,7 @@ include(CheckLibraryExists) include(CheckCXXCompilerFlag) # Check compiler flags -check_cxx_compiler_flag(-std=c++11 LIBCXX_HAS_STDCXX11_FLAG) -check_cxx_compiler_flag(-std=c++1y LIBCXX_HAS_STDCXX1Y_FLAG) -check_cxx_compiler_flag(-fPIC LIBCXX_HAS_FPIC_FLAG) -check_cxx_compiler_flag(-fno-omit-frame-pointer LIBCXX_HAS_FNO_OMIT_FRAME_POINTER_FLAG) -check_cxx_compiler_flag(-nodefaultlibs LIBCXX_HAS_NODEFAULTLIBS_FLAG) -check_cxx_compiler_flag(-nostdinc++ LIBCXX_HAS_NOSTDINCXX_FLAG) -check_cxx_compiler_flag(-Wall LIBCXX_HAS_WALL_FLAG) -check_cxx_compiler_flag(-W LIBCXX_HAS_W_FLAG) -check_cxx_compiler_flag(-Wno-unused-parameter LIBCXX_HAS_WNO_UNUSED_PARAMETER_FLAG) -check_cxx_compiler_flag(-Wwrite-strings LIBCXX_HAS_WWRITE_STRINGS_FLAG) -check_cxx_compiler_flag(-Wno-long-long LIBCXX_HAS_WNO_LONG_LONG_FLAG) -check_cxx_compiler_flag(-pedantic LIBCXX_HAS_PEDANTIC_FLAG) -check_cxx_compiler_flag(-Werror LIBCXX_HAS_WERROR_FLAG) -check_cxx_compiler_flag(-Wno-error LIBCXX_HAS_WNO_ERROR_FLAG) -check_cxx_compiler_flag(-fno-exceptions LIBCXX_HAS_FNO_EXCEPTIONS_FLAG) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Dec 30 11:54:38 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 69DC2A559BB; Wed, 30 Dec 2015 11:54:38 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 39150123F; Wed, 30 Dec 2015 11:54:38 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBsbtD051635; Wed, 30 Dec 2015 11:54:37 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBsbOA051632; Wed, 30 Dec 2015 11:54:37 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201512301154.tBUBsbOA051632@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 30 Dec 2015 11:54:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292929 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:54:38 -0000 Author: mav Date: Wed Dec 30 11:54:37 2015 New Revision: 292929 URL: https://svnweb.freebsd.org/changeset/base/292929 Log: MFC r292764: Split DMA buffers for request, response and ATIO queues. Modified: stable/10/sys/dev/isp/isp_freebsd.h stable/10/sys/dev/isp/isp_pci.c stable/10/sys/dev/isp/isp_sbus.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp_freebsd.h ============================================================================== --- stable/10/sys/dev/isp/isp_freebsd.h Wed Dec 30 11:54:09 2015 (r292928) +++ stable/10/sys/dev/isp/isp_freebsd.h Wed Dec 30 11:54:37 2015 (r292929) @@ -289,9 +289,13 @@ struct isposinfo { struct resource * regs; struct resource * regs2; bus_dma_tag_t dmat; - bus_dma_tag_t cdmat; - bus_dmamap_t cdmap; + bus_dma_tag_t reqdmat; + bus_dma_tag_t respdmat; + bus_dma_tag_t atiodmat; bus_dma_tag_t scdmat; + bus_dmamap_t reqmap; + bus_dmamap_t respmap; + bus_dmamap_t atiomap; /* * Command and transaction related related stuff @@ -406,6 +410,14 @@ struct isposinfo { #define MEMORYBARRIER(isp, type, offset, size, chan) \ switch (type) { \ +case SYNC_REQUEST: \ + bus_dmamap_sync(isp->isp_osinfo.reqdmat, \ + isp->isp_osinfo.reqmap, BUS_DMASYNC_PREWRITE); \ + break; \ +case SYNC_RESULT: \ + bus_dmamap_sync(isp->isp_osinfo.respdmat, \ + isp->isp_osinfo.respmap, BUS_DMASYNC_POSTREAD); \ + break; \ case SYNC_SFORDEV: \ { \ struct isp_fc *fc = ISP_FC_PC(isp, chan); \ @@ -413,11 +425,6 @@ case SYNC_SFORDEV: \ BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); \ break; \ } \ -case SYNC_REQUEST: \ - bus_dmamap_sync(isp->isp_osinfo.cdmat, \ - isp->isp_osinfo.cdmap, \ - BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); \ - break; \ case SYNC_SFORCPU: \ { \ struct isp_fc *fc = ISP_FC_PC(isp, chan); \ @@ -425,21 +432,24 @@ case SYNC_SFORCPU: \ BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); \ break; \ } \ -case SYNC_RESULT: \ - bus_dmamap_sync(isp->isp_osinfo.cdmat, \ - isp->isp_osinfo.cdmap, \ - BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); \ - break; \ case SYNC_REG: \ bus_barrier(isp->isp_osinfo.regs, offset, size, \ BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE); \ break; \ +case SYNC_ATIOQ: \ + bus_dmamap_sync(isp->isp_osinfo.atiodmat, \ + isp->isp_osinfo.atiomap, BUS_DMASYNC_POSTREAD); \ + break; \ default: \ break; \ } #define MEMORYBARRIERW(isp, type, offset, size, chan) \ switch (type) { \ +case SYNC_REQUEST: \ + bus_dmamap_sync(isp->isp_osinfo.reqdmat, \ + isp->isp_osinfo.reqmap, BUS_DMASYNC_PREWRITE); \ + break; \ case SYNC_SFORDEV: \ { \ struct isp_fc *fc = ISP_FC_PC(isp, chan); \ @@ -447,10 +457,6 @@ case SYNC_SFORDEV: \ BUS_DMASYNC_PREWRITE); \ break; \ } \ -case SYNC_REQUEST: \ - bus_dmamap_sync(isp->isp_osinfo.cdmat, \ - isp->isp_osinfo.cdmap, BUS_DMASYNC_PREWRITE); \ - break; \ case SYNC_SFORCPU: \ { \ struct isp_fc *fc = ISP_FC_PC(isp, chan); \ @@ -458,10 +464,6 @@ case SYNC_SFORCPU: \ BUS_DMASYNC_POSTWRITE); \ break; \ } \ -case SYNC_RESULT: \ - bus_dmamap_sync(isp->isp_osinfo.cdmat, \ - isp->isp_osinfo.cdmap, BUS_DMASYNC_POSTWRITE); \ - break; \ case SYNC_REG: \ bus_barrier(isp->isp_osinfo.regs, offset, size, \ BUS_SPACE_BARRIER_WRITE); \ Modified: stable/10/sys/dev/isp/isp_pci.c ============================================================================== --- stable/10/sys/dev/isp/isp_pci.c Wed Dec 30 11:54:09 2015 (r292928) +++ stable/10/sys/dev/isp/isp_pci.c Wed Dec 30 11:54:37 2015 (r292929) @@ -1539,75 +1539,17 @@ isp_pci_wr_reg_2600(ispsoftc_t *isp, int struct imush { - ispsoftc_t *isp; - caddr_t vbase; - int chan; + bus_addr_t maddr; int error; }; -static void imc(void *, bus_dma_segment_t *, int, int); -static void imc1(void *, bus_dma_segment_t *, int, int); - static void imc(void *arg, bus_dma_segment_t *segs, int nseg, int error) { struct imush *imushp = (struct imush *) arg; - isp_ecmd_t *ecmd; - - if (error) { - imushp->error = error; - return; - } - if (nseg != 1) { - imushp->error = EINVAL; - return; - } - isp_prt(imushp->isp, ISP_LOGDEBUG0, "request/result area @ 0x%jx/0x%jx", (uintmax_t) segs->ds_addr, (uintmax_t) segs->ds_len); - - imushp->isp->isp_rquest = imushp->vbase; - imushp->isp->isp_rquest_dma = segs->ds_addr; - segs->ds_addr += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(imushp->isp)); - imushp->vbase += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(imushp->isp)); - - imushp->isp->isp_result_dma = segs->ds_addr; - imushp->isp->isp_result = imushp->vbase; - segs->ds_addr += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(imushp->isp)); - imushp->vbase += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(imushp->isp)); - - if (imushp->isp->isp_type >= ISP_HA_FC_2200) { - imushp->isp->isp_osinfo.ecmd_dma = segs->ds_addr; - imushp->isp->isp_osinfo.ecmd_free = (isp_ecmd_t *)imushp->vbase; - imushp->isp->isp_osinfo.ecmd_base = imushp->isp->isp_osinfo.ecmd_free; - for (ecmd = imushp->isp->isp_osinfo.ecmd_free; ecmd < &imushp->isp->isp_osinfo.ecmd_free[N_XCMDS]; ecmd++) { - if (ecmd == &imushp->isp->isp_osinfo.ecmd_free[N_XCMDS - 1]) { - ecmd->next = NULL; - } else { - ecmd->next = ecmd + 1; - } - } - } -#ifdef ISP_TARGET_MODE - segs->ds_addr += (N_XCMDS * XCMD_SIZE); - imushp->vbase += (N_XCMDS * XCMD_SIZE); - if (IS_24XX(imushp->isp)) { - imushp->isp->isp_atioq_dma = segs->ds_addr; - imushp->isp->isp_atioq = imushp->vbase; - } -#endif -} -static void -imc1(void *arg, bus_dma_segment_t *segs, int nseg, int error) -{ - struct imush *imushp = (struct imush *) arg; - if (error) { - imushp->error = error; - return; - } - isp_prt(imushp->isp, ISP_LOGDEBUG0, "scdma @ 0x%jx/0x%jx", - (uintmax_t) segs->ds_addr, (uintmax_t) segs->ds_len); - FCPARAM(imushp->isp, imushp->chan)->isp_scdma = segs->ds_addr; - FCPARAM(imushp->isp, imushp->chan)->isp_scratch = imushp->vbase; + if (!(imushp->error = error)) + imushp->maddr = segs[0].ds_addr; } static int @@ -1620,6 +1562,7 @@ isp_pci_mbxdma(ispsoftc_t *isp) bus_addr_t llim; /* low limit of unavailable dma */ bus_addr_t hlim; /* high limit of unavailable dma */ struct imush im; + isp_ecmd_t *ecmd; /* * Already been here? If so, leave... @@ -1683,53 +1626,106 @@ isp_pci_mbxdma(ispsoftc_t *isp) isp->isp_xffree = isp->isp_xflist; /* - * Allocate and map the request and result queues (and ATIO queue - * if we're a 2400 supporting target mode), and a region for - * external dma addressable command/status structures (23XX and - * later). + * Allocate and map the request queue and a region for external + * DMA addressable command/status structures (22XX and later). */ len = ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)); - len += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); -#ifdef ISP_TARGET_MODE - if (IS_24XX(isp)) { - len += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); + if (isp->isp_type >= ISP_HA_FC_2200) + len += (N_XCMDS * XCMD_SIZE); + if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, slim, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + len, 1, len, 0, &isp->isp_osinfo.reqdmat)) { + isp_prt(isp, ISP_LOGERR, "cannot create request DMA tag"); + goto bad1; + } + if (bus_dmamem_alloc(isp->isp_osinfo.reqdmat, (void **)&base, + BUS_DMA_COHERENT, &isp->isp_osinfo.reqmap) != 0) { + isp_prt(isp, ISP_LOGERR, "cannot allocate request DMA memory"); + bus_dma_tag_destroy(isp->isp_osinfo.reqdmat); + goto bad1; } -#endif + isp->isp_rquest = base; + im.error = 0; + if (bus_dmamap_load(isp->isp_osinfo.reqdmat, isp->isp_osinfo.reqmap, + base, len, imc, &im, 0) || im.error) { + isp_prt(isp, ISP_LOGERR, "error loading request DMA map %d", im.error); + goto bad1; + } + isp_prt(isp, ISP_LOGDEBUG0, "request area @ 0x%jx/0x%jx", + (uintmax_t)im.maddr, (uintmax_t)len); + isp->isp_rquest_dma = im.maddr; + base += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)); + im.maddr += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)); if (isp->isp_type >= ISP_HA_FC_2200) { - len += (N_XCMDS * XCMD_SIZE); + isp->isp_osinfo.ecmd_dma = im.maddr; + isp->isp_osinfo.ecmd_free = (isp_ecmd_t *)base; + isp->isp_osinfo.ecmd_base = isp->isp_osinfo.ecmd_free; + for (ecmd = isp->isp_osinfo.ecmd_free; + ecmd < &isp->isp_osinfo.ecmd_free[N_XCMDS]; ecmd++) { + if (ecmd == &isp->isp_osinfo.ecmd_free[N_XCMDS - 1]) + ecmd->next = NULL; + else + ecmd->next = ecmd + 1; + } } /* - * Create a tag for the control spaces. We don't always need this - * to be 32 bits, but we do this for simplicity and speed's sake. + * Allocate and map the result queue. */ - if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, slim, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, len, 1, slim, 0, &isp->isp_osinfo.cdmat)) { - isp_prt(isp, ISP_LOGERR, "cannot create a dma tag for control spaces"); - free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); - free(isp->isp_xflist, M_DEVBUF); - ISP_LOCK(isp); - return (1); + len = ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); + if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, slim, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + len, 1, len, 0, &isp->isp_osinfo.respdmat)) { + isp_prt(isp, ISP_LOGERR, "cannot create response DMA tag"); + goto bad1; + } + if (bus_dmamem_alloc(isp->isp_osinfo.respdmat, (void **)&base, + BUS_DMA_COHERENT, &isp->isp_osinfo.respmap) != 0) { + isp_prt(isp, ISP_LOGERR, "cannot allocate response DMA memory"); + bus_dma_tag_destroy(isp->isp_osinfo.respdmat); + goto bad1; } - - if (bus_dmamem_alloc(isp->isp_osinfo.cdmat, (void **)&base, BUS_DMA_NOWAIT | BUS_DMA_COHERENT, &isp->isp_osinfo.cdmap) != 0) { - isp_prt(isp, ISP_LOGERR, "cannot allocate %d bytes of CCB memory", len); - bus_dma_tag_destroy(isp->isp_osinfo.cdmat); - free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); - free(isp->isp_xflist, M_DEVBUF); - ISP_LOCK(isp); - return (1); - } - - im.isp = isp; - im.chan = 0; - im.vbase = base; + isp->isp_result = base; im.error = 0; + if (bus_dmamap_load(isp->isp_osinfo.respdmat, isp->isp_osinfo.respmap, + base, len, imc, &im, 0) || im.error) { + isp_prt(isp, ISP_LOGERR, "error loading response DMA map %d", im.error); + goto bad1; + } + isp_prt(isp, ISP_LOGDEBUG0, "response area @ 0x%jx/0x%jx", + (uintmax_t)im.maddr, (uintmax_t)len); + isp->isp_result_dma = im.maddr; - bus_dmamap_load(isp->isp_osinfo.cdmat, isp->isp_osinfo.cdmap, base, len, imc, &im, 0); - if (im.error) { - isp_prt(isp, ISP_LOGERR, "error %d loading dma map for control areas", im.error); - goto bad; +#ifdef ISP_TARGET_MODE + /* + * Allocate and map ATIO queue on 24xx with target mode. + */ + if (IS_24XX(isp)) { + len = ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); + if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, slim, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + len, 1, len, 0, &isp->isp_osinfo.atiodmat)) { + isp_prt(isp, ISP_LOGERR, "cannot create ATIO DMA tag"); + goto bad1; + } + if (bus_dmamem_alloc(isp->isp_osinfo.atiodmat, (void **)&base, + BUS_DMA_COHERENT, &isp->isp_osinfo.atiomap) != 0) { + isp_prt(isp, ISP_LOGERR, "cannot allocate ATIO DMA memory"); + bus_dma_tag_destroy(isp->isp_osinfo.atiodmat); + goto bad1; + } + isp->isp_atioq = base; + im.error = 0; + if (bus_dmamap_load(isp->isp_osinfo.atiodmat, isp->isp_osinfo.atiomap, + base, len, imc, &im, 0) || im.error) { + isp_prt(isp, ISP_LOGERR, "error loading ATIO DMA map %d", im.error); + goto bad; + } + isp_prt(isp, ISP_LOGDEBUG0, "ATIO area @ 0x%jx/0x%jx", + (uintmax_t)im.maddr, (uintmax_t)len); + isp->isp_atioq_dma = im.maddr; } +#endif if (IS_FC(isp)) { if (isp_dma_tag_create(isp->isp_osinfo.dmat, 64, slim, @@ -1740,21 +1736,17 @@ isp_pci_mbxdma(ispsoftc_t *isp) for (cmap = 0; cmap < isp->isp_nchan; cmap++) { struct isp_fc *fc = ISP_FC_PC(isp, cmap); if (bus_dmamem_alloc(isp->isp_osinfo.scdmat, - (void **)&base, BUS_DMA_NOWAIT | BUS_DMA_COHERENT, - &fc->scmap) != 0) { + (void **)&base, BUS_DMA_COHERENT, &fc->scmap) != 0) goto bad; - } - im.isp = isp; - im.chan = cmap; - im.vbase = base; + FCPARAM(isp, cmap)->isp_scratch = base; im.error = 0; - bus_dmamap_load(isp->isp_osinfo.scdmat, fc->scmap, - base, ISP_FC_SCRLEN, imc1, &im, 0); - if (im.error) { + if (bus_dmamap_load(isp->isp_osinfo.scdmat, fc->scmap, + base, ISP_FC_SCRLEN, imc, &im, 0) || im.error) { bus_dmamem_free(isp->isp_osinfo.scdmat, base, fc->scmap); goto bad; } + FCPARAM(isp, cmap)->isp_scdma = im.maddr; if (!IS_2100(isp)) { for (i = 0; i < INITIAL_NEXUS_COUNT; i++) { struct isp_nexus *n = malloc(sizeof (struct isp_nexus), M_DEVBUF, M_NOWAIT | M_ZERO); @@ -1808,8 +1800,38 @@ bad: } bus_dma_tag_destroy(isp->isp_osinfo.scdmat); } - bus_dmamem_free(isp->isp_osinfo.cdmat, base, isp->isp_osinfo.cdmap); - bus_dma_tag_destroy(isp->isp_osinfo.cdmat); +bad1: + if (isp->isp_rquest_dma != 0) { + bus_dmamap_unload(isp->isp_osinfo.reqdmat, + isp->isp_osinfo.reqmap); + } + if (isp->isp_rquest != NULL) { + bus_dmamem_free(isp->isp_osinfo.reqdmat, isp->isp_rquest, + isp->isp_osinfo.reqmap); + bus_dma_tag_destroy(isp->isp_osinfo.reqdmat); + } + if (isp->isp_result_dma != 0) { + bus_dmamap_unload(isp->isp_osinfo.respdmat, + isp->isp_osinfo.respmap); + } + if (isp->isp_result != NULL) { + bus_dmamem_free(isp->isp_osinfo.respdmat, isp->isp_result, + isp->isp_osinfo.respmap); + bus_dma_tag_destroy(isp->isp_osinfo.respdmat); + } +#ifdef ISP_TARGET_MODE + if (IS_24XX(isp)) { + if (isp->isp_atioq_dma != 0) { + bus_dmamap_unload(isp->isp_osinfo.atiodmat, + isp->isp_osinfo.atiomap); + } + if (isp->isp_atioq != NULL) { + bus_dmamem_free(isp->isp_osinfo.reqdmat, isp->isp_atioq, + isp->isp_osinfo.atiomap); + bus_dma_tag_destroy(isp->isp_osinfo.atiodmat); + } + } +#endif free(isp->isp_xflist, M_DEVBUF); free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); isp->isp_rquest = NULL; Modified: stable/10/sys/dev/isp/isp_sbus.c ============================================================================== --- stable/10/sys/dev/isp/isp_sbus.c Wed Dec 30 11:54:09 2015 (r292928) +++ stable/10/sys/dev/isp/isp_sbus.c Wed Dec 30 11:54:37 2015 (r292929) @@ -413,7 +413,7 @@ isp_sbus_wr_reg(ispsoftc_t *isp, int reg } struct imush { - ispsoftc_t *isp; + bus_addr_t maddr; int error; }; @@ -423,16 +423,9 @@ static void imc(void *arg, bus_dma_segment_t *segs, int nseg, int error) { struct imush *imushp = (struct imush *) arg; - if (error) { - imushp->error = error; - } else { - ispsoftc_t *isp =imushp->isp; - bus_addr_t addr = segs->ds_addr; - isp->isp_rquest_dma = addr; - addr += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)); - isp->isp_result_dma = addr; - } + if (!(imushp->error = error)) + imushp->maddr = segs[0].ds_addr; } static int @@ -479,40 +472,62 @@ isp_sbus_mbxdma(ispsoftc_t *isp) BUS_SPACE_MAXADDR_32BIT, NULL, NULL, BUS_SPACE_MAXSIZE_32BIT, ISP_NSEG_MAX, BUS_SPACE_MAXADDR_24BIT, 0, &isp->isp_osinfo.dmat)) { isp_prt(isp, ISP_LOGERR, "could not create master dma tag"); - free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); - free(isp->isp_xflist, M_DEVBUF); - ISP_LOCK(isp); - return(1); + goto bad; } /* - * Allocate and map the request, result queues, plus FC scratch area. + * Allocate and map the request queue. */ len = ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)); - len += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); - - if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, - BUS_SPACE_MAXADDR_24BIT+1, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR_32BIT, NULL, NULL, len, 1, - BUS_SPACE_MAXADDR_24BIT, 0, &isp->isp_osinfo.cdmat)) { - isp_prt(isp, ISP_LOGERR, - "cannot create a dma tag for control spaces"); - free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); - free(isp->isp_xflist, M_DEVBUF); - ISP_LOCK(isp); - return (1); + if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, BUS_SPACE_MAXADDR_24BIT+1, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + len, 1, len, 0, &isp->isp_osinfo.reqdmat)) { + isp_prt(isp, ISP_LOGERR, "cannot create request DMA tag"); + goto bad; + } + if (bus_dmamem_alloc(isp->isp_osinfo.reqdmat, (void **)&base, + BUS_DMA_COHERENT, &isp->isp_osinfo.reqmap) != 0) { + isp_prt(isp, ISP_LOGERR, "cannot allocate request DMA memory"); + bus_dma_tag_destroy(isp->isp_osinfo.reqdmat); + goto bad; + } + im.error = 0; + if (bus_dmamap_load(isp->isp_osinfo.reqdmat, isp->isp_osinfo.reqmap, + base, len, imc, &im, 0) || im.error) { + isp_prt(isp, ISP_LOGERR, "error loading request DMA map %d", im.error); + goto bad; } + isp_prt(isp, ISP_LOGDEBUG0, "request area @ 0x%jx/0x%jx", + (uintmax_t)im.maddr, (uintmax_t)len); + isp->isp_rquest = base; + isp->isp_rquest_dma = im.maddr; - if (bus_dmamem_alloc(isp->isp_osinfo.cdmat, (void **)&base, BUS_DMA_NOWAIT | BUS_DMA_COHERENT, - &isp->isp_osinfo.cdmap) != 0) { - isp_prt(isp, ISP_LOGERR, - "cannot allocate %d bytes of CCB memory", len); - bus_dma_tag_destroy(isp->isp_osinfo.cdmat); - free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); - free(isp->isp_xflist, M_DEVBUF); - ISP_LOCK(isp); - return (1); + /* + * Allocate and map the result queue. + */ + len = ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); + if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, BUS_SPACE_MAXADDR_24BIT+1, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + len, 1, len, 0, &isp->isp_osinfo.respdmat)) { + isp_prt(isp, ISP_LOGERR, "cannot create response DMA tag"); + goto bad; + } + if (bus_dmamem_alloc(isp->isp_osinfo.respdmat, (void **)&base, + BUS_DMA_COHERENT, &isp->isp_osinfo.respmap) != 0) { + isp_prt(isp, ISP_LOGERR, "cannot allocate response DMA memory"); + bus_dma_tag_destroy(isp->isp_osinfo.respdmat); + goto bad; } + im.error = 0; + if (bus_dmamap_load(isp->isp_osinfo.respdmat, isp->isp_osinfo.respmap, + base, len, imc, &im, 0) || im.error) { + isp_prt(isp, ISP_LOGERR, "error loading response DMA map %d", im.error); + goto bad; + } + isp_prt(isp, ISP_LOGDEBUG0, "response area @ 0x%jx/0x%jx", + (uintmax_t)im.maddr, (uintmax_t)len); + isp->isp_result = base; + isp->isp_result_dma = im.maddr; for (i = 0; i < isp->isp_maxcmds; i++) { struct isp_pcmd *pcmd = &isp->isp_osinfo.pcmd_pool[i]; @@ -534,25 +549,28 @@ isp_sbus_mbxdma(ispsoftc_t *isp) } } isp->isp_osinfo.pcmd_free = &isp->isp_osinfo.pcmd_pool[0]; - - im.isp = isp; - im.error = 0; - bus_dmamap_load(isp->isp_osinfo.cdmat, isp->isp_osinfo.cdmap, base, len, imc, &im, 0); - if (im.error) { - isp_prt(isp, ISP_LOGERR, - "error %d loading dma map for control areas", im.error); - goto bad; - } - - isp->isp_rquest = base; - base += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)); - isp->isp_result = base; ISP_LOCK(isp); return (0); bad: - bus_dmamem_free(isp->isp_osinfo.cdmat, base, isp->isp_osinfo.cdmap); - bus_dma_tag_destroy(isp->isp_osinfo.cdmat); + if (isp->isp_rquest_dma != 0) { + bus_dmamap_unload(isp->isp_osinfo.reqdmat, + isp->isp_osinfo.reqmap); + } + if (isp->isp_rquest != NULL) { + bus_dmamem_free(isp->isp_osinfo.reqdmat, isp->isp_rquest, + isp->isp_osinfo.reqmap); + bus_dma_tag_destroy(isp->isp_osinfo.reqdmat); + } + if (isp->isp_result_dma != 0) { + bus_dmamap_unload(isp->isp_osinfo.respdmat, + isp->isp_osinfo.respmap); + } + if (isp->isp_result != NULL) { + bus_dmamem_free(isp->isp_osinfo.respdmat, isp->isp_result, + isp->isp_osinfo.respmap); + bus_dma_tag_destroy(isp->isp_osinfo.respdmat); + } free(isp->isp_xflist, M_DEVBUF); free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); isp->isp_rquest = NULL; From owner-svn-src-all@freebsd.org Wed Dec 30 11:54:47 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 71EC5A55A01; Wed, 30 Dec 2015 11:54:47 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2AA411384; Wed, 30 Dec 2015 11:54:47 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBskw5051690; Wed, 30 Dec 2015 11:54:46 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBskaV051689; Wed, 30 Dec 2015 11:54:46 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301154.tBUBskaV051689@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:54:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292930 - vendor/libc++/r256633 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:54:47 -0000 Author: dim Date: Wed Dec 30 11:54:46 2015 New Revision: 292930 URL: https://svnweb.freebsd.org/changeset/base/292930 Log: Tag libc++ trunk r256633. Added: vendor/libc++/r256633/ - copied from r292929, vendor/libc++/dist/ From owner-svn-src-all@freebsd.org Wed Dec 30 11:55:20 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CD5F2A55A60; Wed, 30 Dec 2015 11:55:20 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 98DDD153A; Wed, 30 Dec 2015 11:55:20 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBtJ1h051796; Wed, 30 Dec 2015 11:55:19 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBtJTQ051794; Wed, 30 Dec 2015 11:55:19 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201512301155.tBUBtJTQ051794@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 30 Dec 2015 11:55:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292931 - stable/10/sys/dev/isp X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:55:21 -0000 Author: mav Date: Wed Dec 30 11:55:19 2015 New Revision: 292931 URL: https://svnweb.freebsd.org/changeset/base/292931 Log: MFC r292765: Allocate separate scratch space for scanner purposes. This space does not require DMA syncing. It reduces lock scope of the DMA scratch space. It allows whole DMA scratch space to be used to I/O, so now we can fetch up to ~1000 ports from SNS. Due to the last fact, increase maximal number of ports from 256 to 1024. Modified: stable/10/sys/dev/isp/isp.c stable/10/sys/dev/isp/ispvar.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/isp/isp.c ============================================================================== --- stable/10/sys/dev/isp/isp.c Wed Dec 30 11:54:46 2015 (r292930) +++ stable/10/sys/dev/isp/isp.c Wed Dec 30 11:55:19 2015 (r292931) @@ -111,9 +111,9 @@ static void isp_mark_portdb(ispsoftc_t * static int isp_plogx(ispsoftc_t *, int, uint16_t, uint32_t, int); static int isp_port_login(ispsoftc_t *, uint16_t, uint32_t); static int isp_port_logout(ispsoftc_t *, uint16_t, uint32_t); -static int isp_getpdb(ispsoftc_t *, int, uint16_t, isp_pdb_t *, int); -static int isp_gethandles(ispsoftc_t *, int, uint16_t *, int *, int, int); -static void isp_dump_chip_portdb(ispsoftc_t *, int, int); +static int isp_getpdb(ispsoftc_t *, int, uint16_t, isp_pdb_t *); +static int isp_gethandles(ispsoftc_t *, int, uint16_t *, int *, int); +static void isp_dump_chip_portdb(ispsoftc_t *, int); static uint64_t isp_get_wwn(ispsoftc_t *, int, int, int); static int isp_fclink_test(ispsoftc_t *, int, int); static int isp_pdb_sync(ispsoftc_t *, int); @@ -2762,7 +2762,7 @@ isp_port_logout(ispsoftc_t *isp, uint16_ } static int -isp_getpdb(ispsoftc_t *isp, int chan, uint16_t id, isp_pdb_t *pdb, int dolock) +isp_getpdb(ispsoftc_t *isp, int chan, uint16_t id, isp_pdb_t *pdb) { fcparam *fcp = FCPARAM(isp, chan); mbreg_t mbs; @@ -2786,18 +2786,14 @@ isp_getpdb(ispsoftc_t *isp, int chan, ui mbs.param[3] = DMA_WD0(fcp->isp_scdma); mbs.param[6] = DMA_WD3(fcp->isp_scdma); mbs.param[7] = DMA_WD2(fcp->isp_scdma); - if (dolock) { - if (FC_SCRATCH_ACQUIRE(isp, chan)) { - isp_prt(isp, ISP_LOGERR, sacq); - return (-1); - } + if (FC_SCRATCH_ACQUIRE(isp, chan)) { + isp_prt(isp, ISP_LOGERR, sacq); + return (-1); } MEMORYBARRIER(isp, SYNC_SFORDEV, 0, sizeof (un), chan); isp_mboxcmd(isp, &mbs); if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { - if (dolock) { - FC_SCRATCH_RELEASE(isp, chan); - } + FC_SCRATCH_RELEASE(isp, chan); return (mbs.param[0] | (mbs.param[1] << 16)); } if (IS_24XX(isp)) { @@ -2813,9 +2809,7 @@ isp_getpdb(ispsoftc_t *isp, int chan, ui un.bill.pdb_curstate); if (un.bill.pdb_curstate < PDB2400_STATE_PLOGI_DONE || un.bill.pdb_curstate > PDB2400_STATE_LOGGED_IN) { mbs.param[0] = MBOX_NOT_LOGGED_IN; - if (dolock) { - FC_SCRATCH_RELEASE(isp, chan); - } + FC_SCRATCH_RELEASE(isp, chan); return (mbs.param[0]); } } else { @@ -2828,15 +2822,12 @@ isp_getpdb(ispsoftc_t *isp, int chan, ui isp_prt(isp, ISP_LOGDEBUG1, "Chan %d handle 0x%x Port 0x%06x", chan, id, pdb->portid); } - if (dolock) { - FC_SCRATCH_RELEASE(isp, chan); - } + FC_SCRATCH_RELEASE(isp, chan); return (0); } static int -isp_gethandles(ispsoftc_t *isp, int chan, uint16_t *handles, int *num, - int dolock, int loop) +isp_gethandles(ispsoftc_t *isp, int chan, uint16_t *handles, int *num, int loop) { fcparam *fcp = FCPARAM(isp, chan); mbreg_t mbs; @@ -2862,18 +2853,14 @@ isp_gethandles(ispsoftc_t *isp, int chan mbs.param[3] = DMA_WD3(fcp->isp_scdma); mbs.param[6] = DMA_WD2(fcp->isp_scdma); } - if (dolock) { - if (FC_SCRATCH_ACQUIRE(isp, chan)) { - isp_prt(isp, ISP_LOGERR, sacq); - return (-1); - } + if (FC_SCRATCH_ACQUIRE(isp, chan)) { + isp_prt(isp, ISP_LOGERR, sacq); + return (-1); } MEMORYBARRIER(isp, SYNC_SFORDEV, 0, ISP_FC_SCRLEN, chan); isp_mboxcmd(isp, &mbs); if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { - if (dolock) { - FC_SCRATCH_RELEASE(isp, chan); - } + FC_SCRATCH_RELEASE(isp, chan); return (mbs.param[0] | (mbs.param[1] << 16)); } elp1 = fcp->isp_scratch; @@ -2901,13 +2888,12 @@ isp_gethandles(ispsoftc_t *isp, int chan handles[j++] = h; } *num = j; - if (dolock) - FC_SCRATCH_RELEASE(isp, chan); + FC_SCRATCH_RELEASE(isp, chan); return (0); } static void -isp_dump_chip_portdb(ispsoftc_t *isp, int chan, int dolock) +isp_dump_chip_portdb(ispsoftc_t *isp, int chan) { isp_pdb_t pdb; uint16_t lim, nphdl; @@ -2919,7 +2905,7 @@ isp_dump_chip_portdb(ispsoftc_t *isp, in lim = NPH_MAX; } for (nphdl = 0; nphdl != lim; nphdl++) { - if (isp_getpdb(isp, chan, nphdl, &pdb, dolock)) { + if (isp_getpdb(isp, chan, nphdl, &pdb)) { continue; } isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGINFO, "Chan %d Handle 0x%04x " @@ -3069,7 +3055,7 @@ isp_fclink_test(ispsoftc_t *isp, int cha if (fcp->isp_topo == TOPO_F_PORT || fcp->isp_topo == TOPO_FL_PORT) { nphdl = IS_24XX(isp) ? NPH_FL_ID : FL_ID; - r = isp_getpdb(isp, chan, nphdl, &pdb, 1); + r = isp_getpdb(isp, chan, nphdl, &pdb); if (r != 0 || pdb.portid == 0) { if (IS_2100(isp)) { fcp->isp_topo = TOPO_NL_PORT; @@ -3311,7 +3297,7 @@ isp_fix_portids(ispsoftc_t *isp, int cha if (VALID_PORT(lp->portid)) continue; - r = isp_getpdb(isp, chan, lp->handle, &pdb, 1); + r = isp_getpdb(isp, chan, lp->handle, &pdb); if (fcp->isp_loopstate < LOOP_SCANNING_LOOP) return; if (r != 0) { @@ -3340,7 +3326,7 @@ isp_scan_loop(ispsoftc_t *isp, int chan) fcparam *fcp = FCPARAM(isp, chan); int idx, lim, r; isp_pdb_t pdb; - uint16_t handles[LOCAL_LOOP_LIM]; + uint16_t *handles; uint16_t handle; if (fcp->isp_loopstate < LOOP_LTEST_DONE) @@ -3362,8 +3348,9 @@ isp_scan_loop(ispsoftc_t *isp, int chan) return (0); } - lim = LOCAL_LOOP_LIM; - r = isp_gethandles(isp, chan, handles, &lim, 1, 1); + handles = (uint16_t *)fcp->isp_scanscratch; + lim = ISP_FC_SCRLEN / 2; + r = isp_gethandles(isp, chan, handles, &lim, 1); if (r != 0) { isp_prt(isp, ISP_LOG_SANCFG, "Chan %d Getting list of handles failed with %x", chan, r); @@ -3413,7 +3400,7 @@ abort: /* * Get the port database entity for this index. */ - r = isp_getpdb(isp, chan, handle, &pdb, 1); + r = isp_getpdb(isp, chan, handle, &pdb); if (fcp->isp_loopstate < LOOP_SCANNING_LOOP) goto abort; if (r != 0) { @@ -3442,20 +3429,10 @@ abort: * * For the 24XX card, we have to use CT-Pass through run via the Execute IOCB * mailbox command. - * - * The net result is to leave the list of Port IDs setting untranslated in - * offset IGPOFF of the FC scratch area, whereupon we'll canonicalize it to - * host order at OGPOFF. */ - -/* - * Take half of our scratch area to store Port IDs - */ -#define GIDLEN (ISP_FC_SCRLEN >> 1) +#define GIDLEN (ISP_FC_SCRLEN - (3 * QENTRY_LEN)) #define NGENT ((GIDLEN - 16) >> 2) -#define IGPOFF (0) -#define OGPOFF (ISP_FC_SCRLEN >> 1) #define XTXOFF (ISP_FC_SCRLEN - (3 * QENTRY_LEN)) /* CT request */ #define CTXOFF (ISP_FC_SCRLEN - (2 * QENTRY_LEN)) /* Request IOCB */ #define ZTXOFF (ISP_FC_SCRLEN - (1 * QENTRY_LEN)) /* Response IOCB */ @@ -3472,21 +3449,25 @@ isp_gid_ft_sns(ispsoftc_t *isp, int chan uint8_t *scp = fcp->isp_scratch; mbreg_t mbs; - isp_prt(isp, ISP_LOGDEBUG0, "Chan %d scanning fabric (GID_FT) via SNS", chan); + isp_prt(isp, ISP_LOGDEBUG0, "Chan %d requesting GID_FT via SNS", chan); + if (FC_SCRATCH_ACQUIRE(isp, chan)) { + isp_prt(isp, ISP_LOGERR, sacq); + return (-1); + } ISP_MEMZERO(rq, SNS_GID_FT_REQ_SIZE); rq->snscb_rblen = GIDLEN >> 1; - rq->snscb_addr[RQRSP_ADDR0015] = DMA_WD0(fcp->isp_scdma + IGPOFF); - rq->snscb_addr[RQRSP_ADDR1631] = DMA_WD1(fcp->isp_scdma + IGPOFF); - rq->snscb_addr[RQRSP_ADDR3247] = DMA_WD2(fcp->isp_scdma + IGPOFF); - rq->snscb_addr[RQRSP_ADDR4863] = DMA_WD3(fcp->isp_scdma + IGPOFF); + rq->snscb_addr[RQRSP_ADDR0015] = DMA_WD0(fcp->isp_scdma); + rq->snscb_addr[RQRSP_ADDR1631] = DMA_WD1(fcp->isp_scdma); + rq->snscb_addr[RQRSP_ADDR3247] = DMA_WD2(fcp->isp_scdma); + rq->snscb_addr[RQRSP_ADDR4863] = DMA_WD3(fcp->isp_scdma); rq->snscb_sblen = 6; rq->snscb_cmd = SNS_GID_FT; rq->snscb_mword_div_2 = NGENT; rq->snscb_fc4_type = FC4_SCSI; isp_put_gid_ft_request(isp, rq, (sns_gid_ft_req_t *)&scp[CTXOFF]); - MEMORYBARRIER(isp, SYNC_SFORDEV, 0, SNS_GID_FT_REQ_SIZE, chan); + MEMORYBARRIER(isp, SYNC_SFORDEV, CTXOFF, SNS_GID_FT_REQ_SIZE, chan); MBSINIT(&mbs, MBOX_SEND_SNS, MBLOGALL, 10000000); mbs.param[0] = MBOX_SEND_SNS; @@ -3503,6 +3484,12 @@ isp_gid_ft_sns(ispsoftc_t *isp, int chan return (-1); } } + MEMORYBARRIER(isp, SYNC_SFORCPU, 0, GIDLEN, chan); + if (isp->isp_dblev & ISP_LOGDEBUG1) + isp_print_bytes(isp, "CT response", GIDLEN, scp); + isp_get_gid_ft_response(isp, (sns_gid_ft_rsp_t *)scp, + (sns_gid_ft_rsp_t *)fcp->isp_scanscratch, NGENT); + FC_SCRATCH_RELEASE(isp, chan); return (0); } @@ -3521,7 +3508,11 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, uint32_t *rp; uint8_t *scp = fcp->isp_scratch; - isp_prt(isp, ISP_LOGDEBUG0, "Chan %d scanning fabric (GID_FT) via CT", chan); + isp_prt(isp, ISP_LOGDEBUG0, "Chan %d requesting GID_FT via CT", chan); + if (FC_SCRATCH_ACQUIRE(isp, chan)) { + isp_prt(isp, ISP_LOGERR, sacq); + return (-1); + } /* * Build a Passthrough IOCB in memory. @@ -3541,8 +3532,8 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, pt->ctp_dataseg[0].ds_base = DMA_LO32(fcp->isp_scdma+XTXOFF); pt->ctp_dataseg[0].ds_basehi = DMA_HI32(fcp->isp_scdma+XTXOFF); pt->ctp_dataseg[0].ds_count = sizeof (*ct) + sizeof (uint32_t); - pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma+IGPOFF); - pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma+IGPOFF); + pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma); + pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma); pt->ctp_dataseg[1].ds_count = GIDLEN; if (isp->isp_dblev & ISP_LOGDEBUG1) { isp_print_bytes(isp, "ct IOCB", QENTRY_LEN, pt); @@ -3582,7 +3573,7 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { return (-1); } - MEMORYBARRIER(isp, SYNC_SFORCPU, ZTXOFF, QENTRY_LEN, chan); + MEMORYBARRIER(isp, SYNC_SFORCPU, 0, ISP_FC_SCRLEN, chan); pt = &un.plocal; isp_get_ct_pt(isp, (isp_ct_pt_t *) &scp[ZTXOFF], pt); if (isp->isp_dblev & ISP_LOGDEBUG1) { @@ -3591,14 +3582,15 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, if (pt->ctp_status && pt->ctp_status != RQCS_DATA_UNDERRUN) { isp_prt(isp, ISP_LOGWARN, - "Chan %d ISP GID FT CT Passthrough returned 0x%x", + "Chan %d GID_FT CT Passthrough returned 0x%x", chan, pt->ctp_status); return (-1); } - MEMORYBARRIER(isp, SYNC_SFORCPU, IGPOFF, GIDLEN, chan); - if (isp->isp_dblev & ISP_LOGDEBUG1) { - isp_print_bytes(isp, "CT response", GIDLEN, &scp[IGPOFF]); - } + if (isp->isp_dblev & ISP_LOGDEBUG1) + isp_print_bytes(isp, "CT response", GIDLEN, scp); + isp_get_gid_ft_response(isp, (sns_gid_ft_rsp_t *)scp, + (sns_gid_ft_rsp_t *)fcp->isp_scanscratch, NGENT); + FC_SCRATCH_RELEASE(isp, chan); return (0); } @@ -3611,7 +3603,7 @@ isp_scan_fabric(ispsoftc_t *isp, int cha uint16_t nphdl; isp_pdb_t pdb; int portidx, portlim, r; - sns_gid_ft_rsp_t *rs0, *rs1; + sns_gid_ft_rsp_t *rs; if (fcp->isp_loopstate < LOOP_LSCAN_DONE) return (-1); @@ -3627,13 +3619,6 @@ isp_scan_fabric(ispsoftc_t *isp, int cha return (0); } - if (FC_SCRATCH_ACQUIRE(isp, chan)) { - isp_prt(isp, ISP_LOGERR, sacq); -fail: - isp_prt(isp, ISP_LOG_SANCFG, - "Chan %d FC fabric scan done (bad)", chan); - return (-1); - } if (fcp->isp_loopstate < LOOP_SCANNING_FABRIC) { abort: FC_SCRATCH_RELEASE(isp, chan); @@ -3646,14 +3631,16 @@ abort: * Make sure we still are logged into the fabric controller. */ nphdl = IS_24XX(isp) ? NPH_FL_ID : FL_ID; - r = isp_getpdb(isp, chan, nphdl, &pdb, 0); + r = isp_getpdb(isp, chan, nphdl, &pdb); if ((r & 0xffff) == MBOX_NOT_LOGGED_IN) { - isp_dump_chip_portdb(isp, chan, 0); + isp_dump_chip_portdb(isp, chan); } if (r) { fcp->isp_loopstate = LOOP_LTEST_DONE; - FC_SCRATCH_RELEASE(isp, chan); - goto fail; +fail: + isp_prt(isp, ISP_LOG_SANCFG, + "Chan %d FC fabric scan done (bad)", chan); + return (-1); } /* Get list of port IDs from SNS. */ @@ -3665,42 +3652,36 @@ abort: goto abort; if (r > 0) { fcp->isp_loopstate = LOOP_FSCAN_DONE; - FC_SCRATCH_RELEASE(isp, chan); return (-1); } else if (r < 0) { fcp->isp_loopstate = LOOP_LTEST_DONE; /* try again */ - FC_SCRATCH_RELEASE(isp, chan); return (-1); } - MEMORYBARRIER(isp, SYNC_SFORCPU, IGPOFF, GIDLEN, chan); - rs0 = (sns_gid_ft_rsp_t *) ((uint8_t *)fcp->isp_scratch+IGPOFF); - rs1 = (sns_gid_ft_rsp_t *) ((uint8_t *)fcp->isp_scratch+OGPOFF); - isp_get_gid_ft_response(isp, rs0, rs1, NGENT); + rs = (sns_gid_ft_rsp_t *) fcp->isp_scanscratch; if (fcp->isp_loopstate < LOOP_SCANNING_FABRIC) goto abort; - if (rs1->snscb_cthdr.ct_cmd_resp != LS_ACC) { + if (rs->snscb_cthdr.ct_cmd_resp != LS_ACC) { int level; - if (rs1->snscb_cthdr.ct_reason == 9 && rs1->snscb_cthdr.ct_explanation == 7) { + if (rs->snscb_cthdr.ct_reason == 9 && rs->snscb_cthdr.ct_explanation == 7) { level = ISP_LOG_SANCFG; } else { level = ISP_LOGWARN; } isp_prt(isp, level, "Chan %d Fabric Nameserver rejected GID_FT" " (Reason=0x%x Expl=0x%x)", chan, - rs1->snscb_cthdr.ct_reason, - rs1->snscb_cthdr.ct_explanation); - FC_SCRATCH_RELEASE(isp, chan); + rs->snscb_cthdr.ct_reason, + rs->snscb_cthdr.ct_explanation); fcp->isp_loopstate = LOOP_FSCAN_DONE; return (-1); } /* Check our buffer was big enough to get the full list. */ for (portidx = 0; portidx < NGENT-1; portidx++) { - if (rs1->snscb_ports[portidx].control & 0x80) + if (rs->snscb_ports[portidx].control & 0x80) break; } - if ((rs1->snscb_ports[portidx].control & 0x80) == 0) { + if ((rs->snscb_ports[portidx].control & 0x80) == 0) { isp_prt(isp, ISP_LOGWARN, "fabric too big for scratch area: increase ISP_FC_SCRLEN"); } @@ -3713,24 +3694,24 @@ abort: int npidx; portid = - ((rs1->snscb_ports[portidx].portid[0]) << 16) | - ((rs1->snscb_ports[portidx].portid[1]) << 8) | - ((rs1->snscb_ports[portidx].portid[2])); + ((rs->snscb_ports[portidx].portid[0]) << 16) | + ((rs->snscb_ports[portidx].portid[1]) << 8) | + ((rs->snscb_ports[portidx].portid[2])); for (npidx = portidx + 1; npidx < portlim; npidx++) { uint32_t new_portid = - ((rs1->snscb_ports[npidx].portid[0]) << 16) | - ((rs1->snscb_ports[npidx].portid[1]) << 8) | - ((rs1->snscb_ports[npidx].portid[2])); + ((rs->snscb_ports[npidx].portid[0]) << 16) | + ((rs->snscb_ports[npidx].portid[1]) << 8) | + ((rs->snscb_ports[npidx].portid[2])); if (new_portid == portid) { break; } } if (npidx < portlim) { - rs1->snscb_ports[npidx].portid[0] = 0; - rs1->snscb_ports[npidx].portid[1] = 0; - rs1->snscb_ports[npidx].portid[2] = 0; + rs->snscb_ports[npidx].portid[0] = 0; + rs->snscb_ports[npidx].portid[1] = 0; + rs->snscb_ports[npidx].portid[2] = 0; isp_prt(isp, ISP_LOG_SANCFG, "Chan %d removing duplicate PortID 0x%06x entry from list", chan, portid); } } @@ -3751,9 +3732,9 @@ abort: */ isp_mark_portdb(isp, chan); for (portidx = 0; portidx < portlim; portidx++) { - portid = ((rs1->snscb_ports[portidx].portid[0]) << 16) | - ((rs1->snscb_ports[portidx].portid[1]) << 8) | - ((rs1->snscb_ports[portidx].portid[2])); + portid = ((rs->snscb_ports[portidx].portid[0]) << 16) | + ((rs->snscb_ports[portidx].portid[1]) << 8) | + ((rs->snscb_ports[portidx].portid[2])); isp_prt(isp, ISP_LOG_SANCFG, "Chan %d Checking fabric port 0x%06x", chan, portid); if (portid == 0) { @@ -3775,7 +3756,6 @@ abort: "Chan %d Port 0x%06x@0x%04x [%d] is not probational (0x%x)", chan, lp->portid, lp->handle, FC_PORTDB_TGT(isp, chan, lp), lp->state); - FC_SCRATCH_RELEASE(isp, chan); isp_dump_portdb(isp, chan); goto fail; } @@ -3795,7 +3775,7 @@ abort: * database entry for somebody further along to * decide what to do (policy choice). */ - r = isp_getpdb(isp, chan, lp->handle, &pdb, 0); + r = isp_getpdb(isp, chan, lp->handle, &pdb); if (fcp->isp_loopstate < LOOP_SCANNING_FABRIC) goto abort; if (r != 0) { @@ -3829,7 +3809,6 @@ relogin: if (fcp->isp_loopstate < LOOP_SCANNING_FABRIC) goto abort; - FC_SCRATCH_RELEASE(isp, chan); fcp->isp_loopstate = LOOP_FSCAN_DONE; isp_prt(isp, ISP_LOG_SANCFG, "Chan %d FC fabric scan done", chan); return (0); @@ -3856,7 +3835,7 @@ isp_login_device(ispsoftc_t *isp, int ch return (-1); /* Check if this handle is free. */ - r = isp_getpdb(isp, chan, handle, p, 0); + r = isp_getpdb(isp, chan, handle, p); if (r == 0) { if (p->portid != portid) { /* This handle is busy, try next one. */ @@ -3909,7 +3888,7 @@ isp_login_device(ispsoftc_t *isp, int ch * so we can crosscheck that it is still what we think it * is and that we also have the role it plays */ - r = isp_getpdb(isp, chan, handle, p, 0); + r = isp_getpdb(isp, chan, handle, p); if (r != 0) { isp_prt(isp, ISP_LOGERR, "Chan %d new device 0x%06x@0x%x disappeared", chan, portid, handle); return (-1); @@ -4013,8 +3992,8 @@ isp_register_fc4_type_24xx(ispsoftc_t *i pt->ctp_dataseg[0].ds_base = DMA_LO32(fcp->isp_scdma+XTXOFF); pt->ctp_dataseg[0].ds_basehi = DMA_HI32(fcp->isp_scdma+XTXOFF); pt->ctp_dataseg[0].ds_count = sizeof (rft_id_t); - pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma+IGPOFF); - pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma+IGPOFF); + pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma); + pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma); pt->ctp_dataseg[1].ds_count = sizeof (ct_hdr_t); isp_put_ct_pt(isp, pt, (isp_ct_pt_t *) &scp[CTXOFF]); if (isp->isp_dblev & ISP_LOGDEBUG1) { @@ -4072,7 +4051,7 @@ isp_register_fc4_type_24xx(ispsoftc_t *i return (1); } - isp_get_ct_hdr(isp, (ct_hdr_t *) &scp[IGPOFF], ct); + isp_get_ct_hdr(isp, (ct_hdr_t *) scp, ct); FC_SCRATCH_RELEASE(isp, chan); if (ct->ct_cmd_resp == LS_RJT) { @@ -4125,8 +4104,8 @@ isp_register_fc4_features_24xx(ispsoftc_ pt->ctp_dataseg[0].ds_base = DMA_LO32(fcp->isp_scdma+XTXOFF); pt->ctp_dataseg[0].ds_basehi = DMA_HI32(fcp->isp_scdma+XTXOFF); pt->ctp_dataseg[0].ds_count = sizeof (rff_id_t); - pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma+IGPOFF); - pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma+IGPOFF); + pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma); + pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma); pt->ctp_dataseg[1].ds_count = sizeof (ct_hdr_t); isp_put_ct_pt(isp, pt, (isp_ct_pt_t *) &scp[CTXOFF]); if (isp->isp_dblev & ISP_LOGDEBUG1) { @@ -4189,7 +4168,7 @@ isp_register_fc4_features_24xx(ispsoftc_ return (1); } - isp_get_ct_hdr(isp, (ct_hdr_t *) &scp[IGPOFF], ct); + isp_get_ct_hdr(isp, (ct_hdr_t *) scp, ct); FC_SCRATCH_RELEASE(isp, chan); if (ct->ct_cmd_resp == LS_RJT) { @@ -4877,7 +4856,7 @@ isp_control(ispsoftc_t *isp, ispctl_t ct tgt = va_arg(ap, int); pdb = va_arg(ap, isp_pdb_t *); va_end(ap); - return (isp_getpdb(isp, chan, tgt, pdb, 1)); + return (isp_getpdb(isp, chan, tgt, pdb)); } break; Modified: stable/10/sys/dev/isp/ispvar.h ============================================================================== --- stable/10/sys/dev/isp/ispvar.h Wed Dec 30 11:54:46 2015 (r292930) +++ stable/10/sys/dev/isp/ispvar.h Wed Dec 30 11:55:19 2015 (r292931) @@ -77,7 +77,7 @@ struct ispmdvec { */ #define MAX_TARGETS 16 #ifndef MAX_FC_TARG -#define MAX_FC_TARG 256 +#define MAX_FC_TARG 1024 #endif #define ISP_MAX_TARGETS(isp) (IS_FC(isp)? MAX_FC_TARG : MAX_TARGETS) #define ISP_MAX_LUNS(isp) (isp)->isp_maxluns @@ -472,6 +472,8 @@ typedef struct { */ void * isp_scratch; XS_DMA_ADDR_T isp_scdma; + + uint8_t isp_scanscratch[ISP_FC_SCRLEN]; } fcparam; #define FW_CONFIG_WAIT 0 From owner-svn-src-all@freebsd.org Wed Dec 30 11:55:32 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B04FAA55AB4; Wed, 30 Dec 2015 11:55:32 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F34B2175D; Wed, 30 Dec 2015 11:55:31 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBtVBh051863; Wed, 30 Dec 2015 11:55:31 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBtTU1051846; Wed, 30 Dec 2015 11:55:29 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301155.tBUBtTU1051846@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:55:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292932 - in vendor/lldb/dist: docs include/lldb include/lldb/API include/lldb/Breakpoint include/lldb/Core include/lldb/DataFormatters include/lldb/Expression include/lldb/Host include... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:55:32 -0000 Author: dim Date: Wed Dec 30 11:55:28 2015 New Revision: 292932 URL: https://svnweb.freebsd.org/changeset/base/292932 Log: Vendor import of stripped lldb trunk r256633: https://llvm.org/svn/llvm-project/lldb/trunk@256633 Added: vendor/lldb/dist/include/lldb/Core/ValueObjectConstResultCast.h (contents, props changed) vendor/lldb/dist/include/lldb/DataFormatters/CXXFunctionPointer.h (contents, props changed) vendor/lldb/dist/include/lldb/DataFormatters/DumpValueObjectOptions.h (contents, props changed) vendor/lldb/dist/include/lldb/DataFormatters/FormattersHelpers.h (contents, props changed) vendor/lldb/dist/include/lldb/DataFormatters/LanguageCategory.h (contents, props changed) vendor/lldb/dist/include/lldb/DataFormatters/VectorIterator.h (contents, props changed) vendor/lldb/dist/include/lldb/Expression/Expression.h (contents, props changed) vendor/lldb/dist/include/lldb/Expression/ExpressionParser.h (contents, props changed) vendor/lldb/dist/include/lldb/Expression/ExpressionTypeSystemHelper.h (contents, props changed) vendor/lldb/dist/include/lldb/Expression/ExpressionVariable.h (contents, props changed) vendor/lldb/dist/include/lldb/Expression/FunctionCaller.h (contents, props changed) vendor/lldb/dist/include/lldb/Expression/LLVMUserExpression.h (contents, props changed) vendor/lldb/dist/include/lldb/Expression/REPL.h (contents, props changed) vendor/lldb/dist/include/lldb/Expression/UserExpression.h (contents, props changed) vendor/lldb/dist/include/lldb/Expression/UtilityFunction.h (contents, props changed) vendor/lldb/dist/include/lldb/Host/common/GetOptInc.h (contents, props changed) vendor/lldb/dist/include/lldb/Host/common/TCPSocket.h (contents, props changed) vendor/lldb/dist/include/lldb/Host/common/UDPSocket.h (contents, props changed) vendor/lldb/dist/include/lldb/Host/netbsd/ vendor/lldb/dist/include/lldb/Host/netbsd/Config.h (contents, props changed) vendor/lldb/dist/include/lldb/Host/netbsd/HostInfoNetBSD.h (contents, props changed) vendor/lldb/dist/include/lldb/Host/netbsd/HostThreadNetBSD.h (contents, props changed) vendor/lldb/dist/include/lldb/Host/posix/DomainSocket.h (contents, props changed) vendor/lldb/dist/include/lldb/Symbol/ArmUnwindInfo.h (contents, props changed) vendor/lldb/dist/include/lldb/Symbol/CompilerDecl.h (contents, props changed) vendor/lldb/dist/include/lldb/Symbol/CompilerDeclContext.h (contents, props changed) vendor/lldb/dist/include/lldb/Symbol/CompilerType.h (contents, props changed) vendor/lldb/dist/include/lldb/Symbol/DebugMacros.h (contents, props changed) vendor/lldb/dist/include/lldb/Symbol/GoASTContext.h (contents, props changed) vendor/lldb/dist/include/lldb/Symbol/TypeMap.h (contents, props changed) vendor/lldb/dist/include/lldb/Symbol/TypeSystem.h (contents, props changed) vendor/lldb/dist/include/lldb/Target/Language.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/Either.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/TaskPool.h (contents, props changed) vendor/lldb/dist/source/API/liblldb.exports vendor/lldb/dist/source/API/liblldb.xcode.exports vendor/lldb/dist/source/Core/ValueObjectConstResultCast.cpp (contents, props changed) vendor/lldb/dist/source/DataFormatters/CXXFunctionPointer.cpp (contents, props changed) vendor/lldb/dist/source/DataFormatters/DumpValueObjectOptions.cpp (contents, props changed) vendor/lldb/dist/source/DataFormatters/FormattersHelpers.cpp (contents, props changed) vendor/lldb/dist/source/DataFormatters/LanguageCategory.cpp (contents, props changed) vendor/lldb/dist/source/Expression/Expression.cpp (contents, props changed) vendor/lldb/dist/source/Expression/ExpressionVariable.cpp (contents, props changed) vendor/lldb/dist/source/Expression/FunctionCaller.cpp (contents, props changed) vendor/lldb/dist/source/Expression/LLVMUserExpression.cpp (contents, props changed) vendor/lldb/dist/source/Expression/REPL.cpp (contents, props changed) vendor/lldb/dist/source/Expression/UserExpression.cpp (contents, props changed) vendor/lldb/dist/source/Expression/UtilityFunction.cpp (contents, props changed) vendor/lldb/dist/source/Host/common/GetOptInc.cpp (contents, props changed) vendor/lldb/dist/source/Host/common/TCPSocket.cpp (contents, props changed) vendor/lldb/dist/source/Host/common/UDPSocket.cpp (contents, props changed) vendor/lldb/dist/source/Host/netbsd/ vendor/lldb/dist/source/Host/netbsd/Host.cpp (contents, props changed) vendor/lldb/dist/source/Host/netbsd/HostInfoNetBSD.cpp (contents, props changed) vendor/lldb/dist/source/Host/netbsd/HostThreadNetBSD.cpp (contents, props changed) vendor/lldb/dist/source/Host/netbsd/ThisThread.cpp (contents, props changed) vendor/lldb/dist/source/Host/posix/DomainSocket.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/ vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTDumper.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTDumper.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangASTSource.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/IRForTarget.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Go/ vendor/lldb/dist/source/Plugins/ExpressionParser/Go/GoAST.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Go/GoLexer.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Go/GoLexer.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Go/GoParser.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Go/GoParser.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Go/GoUserExpression.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Go/GoUserExpression.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Go/gen_go_ast.py (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ vendor/lldb/dist/source/Plugins/Language/CPlusPlus/ vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CxxStringTypes.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxx.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxx.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxList.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibStdcpp.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/Go/ vendor/lldb/dist/source/Plugins/Language/Go/GoFormatterFunctions.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/Go/GoFormatterFunctions.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/Go/GoLanguage.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/Go/GoLanguage.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/ vendor/lldb/dist/source/Plugins/Language/ObjC/CF.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/CF.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/Cocoa.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/Cocoa.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/CoreMedia.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/CoreMedia.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/NSArray.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/NSDictionary.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/NSDictionary.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/NSError.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/NSException.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/NSIndexPath.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/NSSet.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/NSSet.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/NSString.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/NSString.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/ObjCLanguage.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjC/ObjCLanguage.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjCPlusPlus/ vendor/lldb/dist/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h (contents, props changed) vendor/lldb/dist/source/Plugins/LanguageRuntime/Go/ vendor/lldb/dist/source/Plugins/LanguageRuntime/Go/GoLanguageRuntime.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/LanguageRuntime/Go/GoLanguageRuntime.h (contents, props changed) vendor/lldb/dist/source/Plugins/OperatingSystem/Go/ vendor/lldb/dist/source/Plugins/OperatingSystem/Go/OperatingSystemGo.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/OperatingSystem/Go/OperatingSystemGo.h (contents, props changed) vendor/lldb/dist/source/Plugins/Platform/NetBSD/ vendor/lldb/dist/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Platform/NetBSD/PlatformNetBSD.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIX.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/NetBSDSignals.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/NetBSDSignals.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/win-minidump/ vendor/lldb/dist/source/Plugins/ScriptInterpreter/ vendor/lldb/dist/source/Plugins/ScriptInterpreter/None/ vendor/lldb/dist/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.h (contents, props changed) vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/ vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h (contents, props changed) vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.h (contents, props changed) vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h (contents, props changed) vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/lldb-python.h (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DIERef.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DIERef.h (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.h (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFAttribute.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDIE.h (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.h (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h (contents, props changed) vendor/lldb/dist/source/Symbol/ArmUnwindInfo.cpp (contents, props changed) vendor/lldb/dist/source/Symbol/CompilerDecl.cpp (contents, props changed) vendor/lldb/dist/source/Symbol/CompilerDeclContext.cpp (contents, props changed) vendor/lldb/dist/source/Symbol/CompilerType.cpp (contents, props changed) vendor/lldb/dist/source/Symbol/DebugMacros.cpp (contents, props changed) vendor/lldb/dist/source/Symbol/GoASTContext.cpp (contents, props changed) vendor/lldb/dist/source/Symbol/TypeMap.cpp (contents, props changed) vendor/lldb/dist/source/Symbol/TypeSystem.cpp (contents, props changed) vendor/lldb/dist/source/Target/Language.cpp (contents, props changed) vendor/lldb/dist/source/Utility/ARM64_ehframe_Registers.h (contents, props changed) vendor/lldb/dist/source/Utility/ARM_ehframe_Registers.h (contents, props changed) vendor/lldb/dist/source/Utility/TaskPool.cpp (contents, props changed) vendor/lldb/dist/tools/argdumper/argdumper.exports vendor/lldb/dist/tools/lldb-mi/MIUtilParse.cpp (contents, props changed) vendor/lldb/dist/tools/lldb-mi/MIUtilParse.h (contents, props changed) vendor/lldb/dist/tools/lldb-mi/lldb-mi.exports vendor/lldb/dist/tools/lldb-server/Acceptor.cpp (contents, props changed) vendor/lldb/dist/tools/lldb-server/Acceptor.h (contents, props changed) vendor/lldb/dist/tools/lldb-server/lldb-server.exports Deleted: vendor/lldb/dist/include/lldb/Core/Language.h vendor/lldb/dist/include/lldb/DataFormatters/CXXFormatterFunctions.h vendor/lldb/dist/include/lldb/Expression/ASTDumper.h vendor/lldb/dist/include/lldb/Expression/ASTResultSynthesizer.h vendor/lldb/dist/include/lldb/Expression/ASTStructExtractor.h vendor/lldb/dist/include/lldb/Expression/ClangASTSource.h vendor/lldb/dist/include/lldb/Expression/ClangExpression.h vendor/lldb/dist/include/lldb/Expression/ClangExpressionDeclMap.h vendor/lldb/dist/include/lldb/Expression/ClangExpressionParser.h vendor/lldb/dist/include/lldb/Expression/ClangExpressionVariable.h vendor/lldb/dist/include/lldb/Expression/ClangFunction.h vendor/lldb/dist/include/lldb/Expression/ClangModulesDeclVendor.h vendor/lldb/dist/include/lldb/Expression/ClangPersistentVariables.h vendor/lldb/dist/include/lldb/Expression/ClangUserExpression.h vendor/lldb/dist/include/lldb/Expression/ClangUtilityFunction.h vendor/lldb/dist/include/lldb/Expression/IRForTarget.h vendor/lldb/dist/include/lldb/Expression/IRToDWARF.h vendor/lldb/dist/include/lldb/Interpreter/PythonDataObjects.h vendor/lldb/dist/include/lldb/Interpreter/ScriptInterpreterNone.h vendor/lldb/dist/include/lldb/Interpreter/ScriptInterpreterPython.h vendor/lldb/dist/include/lldb/Symbol/ClangASTType.h vendor/lldb/dist/include/lldb/Symbol/ClangNamespaceDecl.h vendor/lldb/dist/include/lldb/Utility/PythonPointer.h vendor/lldb/dist/include/lldb/lldb-python.h vendor/lldb/dist/source/Core/Language.cpp vendor/lldb/dist/source/DataFormatters/CF.cpp vendor/lldb/dist/source/DataFormatters/CXXFormatterFunctions.cpp vendor/lldb/dist/source/DataFormatters/Cocoa.cpp vendor/lldb/dist/source/DataFormatters/CoreMedia.cpp vendor/lldb/dist/source/DataFormatters/LibCxx.cpp vendor/lldb/dist/source/DataFormatters/LibCxxInitializerList.cpp vendor/lldb/dist/source/DataFormatters/LibCxxList.cpp vendor/lldb/dist/source/DataFormatters/LibCxxMap.cpp vendor/lldb/dist/source/DataFormatters/LibCxxUnorderedMap.cpp vendor/lldb/dist/source/DataFormatters/LibCxxVector.cpp vendor/lldb/dist/source/DataFormatters/LibStdcpp.cpp vendor/lldb/dist/source/DataFormatters/NSArray.cpp vendor/lldb/dist/source/DataFormatters/NSDictionary.cpp vendor/lldb/dist/source/DataFormatters/NSIndexPath.cpp vendor/lldb/dist/source/DataFormatters/NSSet.cpp vendor/lldb/dist/source/Expression/ASTDumper.cpp vendor/lldb/dist/source/Expression/ASTResultSynthesizer.cpp vendor/lldb/dist/source/Expression/ASTStructExtractor.cpp vendor/lldb/dist/source/Expression/ClangASTSource.cpp vendor/lldb/dist/source/Expression/ClangExpressionDeclMap.cpp vendor/lldb/dist/source/Expression/ClangExpressionParser.cpp vendor/lldb/dist/source/Expression/ClangExpressionVariable.cpp vendor/lldb/dist/source/Expression/ClangFunction.cpp vendor/lldb/dist/source/Expression/ClangModulesDeclVendor.cpp vendor/lldb/dist/source/Expression/ClangPersistentVariables.cpp vendor/lldb/dist/source/Expression/ClangUserExpression.cpp vendor/lldb/dist/source/Expression/ClangUtilityFunction.cpp vendor/lldb/dist/source/Expression/IRForTarget.cpp vendor/lldb/dist/source/Interpreter/PythonDataObjects.cpp vendor/lldb/dist/source/Interpreter/ScriptInterpreterNone.cpp vendor/lldb/dist/source/Interpreter/ScriptInterpreterPython.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/POSIXThread.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/POSIXThread.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessPOSIX.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessPOSIX.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFLocationDescription.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFLocationDescription.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFLocationList.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFLocationList.h vendor/lldb/dist/source/Symbol/ClangASTType.cpp vendor/lldb/dist/source/Symbol/ClangNamespaceDecl.cpp vendor/lldb/dist/source/Utility/ARM64_GCC_Registers.h vendor/lldb/dist/source/Utility/ARM_GCC_Registers.h vendor/lldb/dist/tools/argdumper/exports vendor/lldb/dist/tools/lldb-mi/MIUtilSystemLinux.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilSystemLinux.h vendor/lldb/dist/tools/lldb-mi/MIUtilSystemOsx.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilSystemOsx.h vendor/lldb/dist/tools/lldb-mi/MIUtilSystemWindows.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilSystemWindows.h vendor/lldb/dist/tools/lldb-server/exports Modified: vendor/lldb/dist/docs/lldb.1 vendor/lldb/dist/include/lldb/API/LLDB.h vendor/lldb/dist/include/lldb/API/SBAttachInfo.h vendor/lldb/dist/include/lldb/API/SBCommandInterpreter.h vendor/lldb/dist/include/lldb/API/SBCommandReturnObject.h vendor/lldb/dist/include/lldb/API/SBDebugger.h vendor/lldb/dist/include/lldb/API/SBDefines.h vendor/lldb/dist/include/lldb/API/SBFunction.h vendor/lldb/dist/include/lldb/API/SBProcess.h vendor/lldb/dist/include/lldb/API/SBStream.h vendor/lldb/dist/include/lldb/API/SBTarget.h vendor/lldb/dist/include/lldb/API/SBType.h vendor/lldb/dist/include/lldb/API/SBTypeCategory.h vendor/lldb/dist/include/lldb/API/SBTypeSummary.h vendor/lldb/dist/include/lldb/API/SBValue.h vendor/lldb/dist/include/lldb/API/SystemInitializerFull.h vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocation.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocationList.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointOptions.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolver.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverAddress.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverFileLine.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverFileRegex.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverName.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointSite.h vendor/lldb/dist/include/lldb/Breakpoint/Watchpoint.h vendor/lldb/dist/include/lldb/Breakpoint/WatchpointOptions.h vendor/lldb/dist/include/lldb/Core/Address.h vendor/lldb/dist/include/lldb/Core/AddressRange.h vendor/lldb/dist/include/lldb/Core/AddressResolver.h vendor/lldb/dist/include/lldb/Core/AddressResolverFileLine.h vendor/lldb/dist/include/lldb/Core/AddressResolverName.h vendor/lldb/dist/include/lldb/Core/ArchSpec.h vendor/lldb/dist/include/lldb/Core/Broadcaster.h vendor/lldb/dist/include/lldb/Core/ClangForward.h vendor/lldb/dist/include/lldb/Core/Communication.h vendor/lldb/dist/include/lldb/Core/Connection.h vendor/lldb/dist/include/lldb/Core/ConnectionSharedMemory.h vendor/lldb/dist/include/lldb/Core/ConstString.h vendor/lldb/dist/include/lldb/Core/DataBufferHeap.h vendor/lldb/dist/include/lldb/Core/DataBufferMemoryMap.h vendor/lldb/dist/include/lldb/Core/DataEncoder.h vendor/lldb/dist/include/lldb/Core/DataExtractor.h vendor/lldb/dist/include/lldb/Core/Debugger.h vendor/lldb/dist/include/lldb/Core/Disassembler.h vendor/lldb/dist/include/lldb/Core/EmulateInstruction.h vendor/lldb/dist/include/lldb/Core/Event.h vendor/lldb/dist/include/lldb/Core/FileLineResolver.h vendor/lldb/dist/include/lldb/Core/FormatEntity.h vendor/lldb/dist/include/lldb/Core/History.h vendor/lldb/dist/include/lldb/Core/IOHandler.h vendor/lldb/dist/include/lldb/Core/Listener.h vendor/lldb/dist/include/lldb/Core/Log.h vendor/lldb/dist/include/lldb/Core/Logging.h vendor/lldb/dist/include/lldb/Core/MappedHash.h vendor/lldb/dist/include/lldb/Core/Module.h vendor/lldb/dist/include/lldb/Core/ModuleList.h vendor/lldb/dist/include/lldb/Core/ModuleSpec.h vendor/lldb/dist/include/lldb/Core/Opcode.h vendor/lldb/dist/include/lldb/Core/PluginManager.h vendor/lldb/dist/include/lldb/Core/RangeMap.h vendor/lldb/dist/include/lldb/Core/RegisterValue.h vendor/lldb/dist/include/lldb/Core/RegularExpression.h vendor/lldb/dist/include/lldb/Core/STLUtils.h vendor/lldb/dist/include/lldb/Core/Scalar.h vendor/lldb/dist/include/lldb/Core/SearchFilter.h vendor/lldb/dist/include/lldb/Core/Section.h vendor/lldb/dist/include/lldb/Core/SourceManager.h vendor/lldb/dist/include/lldb/Core/Stream.h vendor/lldb/dist/include/lldb/Core/StreamAsynchronousIO.h vendor/lldb/dist/include/lldb/Core/StreamCallback.h vendor/lldb/dist/include/lldb/Core/StreamFile.h vendor/lldb/dist/include/lldb/Core/StreamGDBRemote.h vendor/lldb/dist/include/lldb/Core/StreamString.h vendor/lldb/dist/include/lldb/Core/StreamTee.h vendor/lldb/dist/include/lldb/Core/StringList.h vendor/lldb/dist/include/lldb/Core/StructuredData.h vendor/lldb/dist/include/lldb/Core/ThreadSafeDenseMap.h vendor/lldb/dist/include/lldb/Core/ThreadSafeDenseSet.h vendor/lldb/dist/include/lldb/Core/Timer.h vendor/lldb/dist/include/lldb/Core/UUID.h vendor/lldb/dist/include/lldb/Core/UniqueCStringMap.h vendor/lldb/dist/include/lldb/Core/Value.h vendor/lldb/dist/include/lldb/Core/ValueObject.h vendor/lldb/dist/include/lldb/Core/ValueObjectCast.h vendor/lldb/dist/include/lldb/Core/ValueObjectChild.h vendor/lldb/dist/include/lldb/Core/ValueObjectConstResult.h vendor/lldb/dist/include/lldb/Core/ValueObjectConstResultChild.h vendor/lldb/dist/include/lldb/Core/ValueObjectConstResultImpl.h vendor/lldb/dist/include/lldb/Core/ValueObjectDynamicValue.h vendor/lldb/dist/include/lldb/Core/ValueObjectList.h vendor/lldb/dist/include/lldb/Core/ValueObjectMemory.h vendor/lldb/dist/include/lldb/Core/ValueObjectRegister.h vendor/lldb/dist/include/lldb/Core/ValueObjectSyntheticFilter.h vendor/lldb/dist/include/lldb/Core/ValueObjectVariable.h vendor/lldb/dist/include/lldb/Core/dwarf.h vendor/lldb/dist/include/lldb/DataFormatters/DataVisualization.h vendor/lldb/dist/include/lldb/DataFormatters/FormatCache.h vendor/lldb/dist/include/lldb/DataFormatters/FormatClasses.h vendor/lldb/dist/include/lldb/DataFormatters/FormatManager.h vendor/lldb/dist/include/lldb/DataFormatters/FormattersContainer.h vendor/lldb/dist/include/lldb/DataFormatters/StringPrinter.h vendor/lldb/dist/include/lldb/DataFormatters/TypeCategory.h vendor/lldb/dist/include/lldb/DataFormatters/TypeCategoryMap.h vendor/lldb/dist/include/lldb/DataFormatters/TypeFormat.h vendor/lldb/dist/include/lldb/DataFormatters/TypeSummary.h vendor/lldb/dist/include/lldb/DataFormatters/TypeSynthetic.h vendor/lldb/dist/include/lldb/DataFormatters/TypeValidator.h vendor/lldb/dist/include/lldb/DataFormatters/ValueObjectPrinter.h vendor/lldb/dist/include/lldb/Expression/DWARFExpression.h vendor/lldb/dist/include/lldb/Expression/IRDynamicChecks.h vendor/lldb/dist/include/lldb/Expression/IRExecutionUnit.h vendor/lldb/dist/include/lldb/Expression/IRInterpreter.h vendor/lldb/dist/include/lldb/Expression/IRMemoryMap.h vendor/lldb/dist/include/lldb/Expression/Materializer.h vendor/lldb/dist/include/lldb/Host/Condition.h vendor/lldb/dist/include/lldb/Host/Config.h vendor/lldb/dist/include/lldb/Host/Debug.h vendor/lldb/dist/include/lldb/Host/Endian.h vendor/lldb/dist/include/lldb/Host/File.h vendor/lldb/dist/include/lldb/Host/FileSpec.h vendor/lldb/dist/include/lldb/Host/FileSystem.h vendor/lldb/dist/include/lldb/Host/HostGetOpt.h vendor/lldb/dist/include/lldb/Host/HostInfo.h vendor/lldb/dist/include/lldb/Host/HostNativeThread.h vendor/lldb/dist/include/lldb/Host/HostNativeThreadForward.h vendor/lldb/dist/include/lldb/Host/MainLoopBase.h vendor/lldb/dist/include/lldb/Host/MonitoringProcessLauncher.h vendor/lldb/dist/include/lldb/Host/Mutex.h vendor/lldb/dist/include/lldb/Host/OptionParser.h vendor/lldb/dist/include/lldb/Host/Predicate.h vendor/lldb/dist/include/lldb/Host/ProcessRunLock.h vendor/lldb/dist/include/lldb/Host/Socket.h vendor/lldb/dist/include/lldb/Host/Symbols.h vendor/lldb/dist/include/lldb/Host/XML.h vendor/lldb/dist/include/lldb/Host/common/NativeProcessProtocol.h vendor/lldb/dist/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h vendor/lldb/dist/include/lldb/Host/posix/HostProcessPosix.h vendor/lldb/dist/include/lldb/Host/posix/HostThreadPosix.h vendor/lldb/dist/include/lldb/Host/posix/LockFilePosix.h vendor/lldb/dist/include/lldb/Host/posix/MainLoopPosix.h vendor/lldb/dist/include/lldb/Initialization/SystemInitializerCommon.h vendor/lldb/dist/include/lldb/Interpreter/Args.h vendor/lldb/dist/include/lldb/Interpreter/CommandCompletions.h vendor/lldb/dist/include/lldb/Interpreter/CommandHistory.h vendor/lldb/dist/include/lldb/Interpreter/CommandInterpreter.h vendor/lldb/dist/include/lldb/Interpreter/CommandObject.h vendor/lldb/dist/include/lldb/Interpreter/CommandObjectMultiword.h vendor/lldb/dist/include/lldb/Interpreter/CommandObjectRegexCommand.h vendor/lldb/dist/include/lldb/Interpreter/CommandOptionValidators.h vendor/lldb/dist/include/lldb/Interpreter/CommandReturnObject.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupArchitecture.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupBoolean.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupFile.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupFormat.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupOutputFile.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupPlatform.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupString.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupUInt64.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupUUID.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupVariable.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupWatchpoint.h vendor/lldb/dist/include/lldb/Interpreter/OptionValue.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueArch.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueArgs.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueArray.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueBoolean.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueChar.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueDictionary.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueEnumeration.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueFileSpec.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueFileSpecList.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueFormat.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueFormatEntity.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueLanguage.h vendor/lldb/dist/include/lldb/Interpreter/OptionValuePathMappings.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueProperties.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueRegex.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueSInt64.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueString.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueUInt64.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueUUID.h vendor/lldb/dist/include/lldb/Interpreter/Options.h vendor/lldb/dist/include/lldb/Interpreter/ScriptInterpreter.h vendor/lldb/dist/include/lldb/Symbol/Block.h vendor/lldb/dist/include/lldb/Symbol/ClangASTContext.h vendor/lldb/dist/include/lldb/Symbol/ClangASTImporter.h vendor/lldb/dist/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h vendor/lldb/dist/include/lldb/Symbol/ClangExternalASTSourceCommon.h vendor/lldb/dist/include/lldb/Symbol/CompileUnit.h vendor/lldb/dist/include/lldb/Symbol/FuncUnwinders.h vendor/lldb/dist/include/lldb/Symbol/Function.h vendor/lldb/dist/include/lldb/Symbol/LineEntry.h vendor/lldb/dist/include/lldb/Symbol/LineTable.h vendor/lldb/dist/include/lldb/Symbol/ObjectContainer.h vendor/lldb/dist/include/lldb/Symbol/ObjectFile.h vendor/lldb/dist/include/lldb/Symbol/Symbol.h vendor/lldb/dist/include/lldb/Symbol/SymbolContext.h vendor/lldb/dist/include/lldb/Symbol/SymbolContextScope.h vendor/lldb/dist/include/lldb/Symbol/SymbolFile.h vendor/lldb/dist/include/lldb/Symbol/SymbolVendor.h vendor/lldb/dist/include/lldb/Symbol/TaggedASTType.h vendor/lldb/dist/include/lldb/Symbol/Type.h vendor/lldb/dist/include/lldb/Symbol/TypeList.h vendor/lldb/dist/include/lldb/Symbol/UnwindPlan.h vendor/lldb/dist/include/lldb/Symbol/UnwindTable.h vendor/lldb/dist/include/lldb/Symbol/Variable.h vendor/lldb/dist/include/lldb/Symbol/VariableList.h vendor/lldb/dist/include/lldb/Target/ABI.h vendor/lldb/dist/include/lldb/Target/CPPLanguageRuntime.h vendor/lldb/dist/include/lldb/Target/DynamicLoader.h vendor/lldb/dist/include/lldb/Target/ExecutionContext.h vendor/lldb/dist/include/lldb/Target/InstrumentationRuntimeStopInfo.h vendor/lldb/dist/include/lldb/Target/JITLoader.h vendor/lldb/dist/include/lldb/Target/LanguageRuntime.h vendor/lldb/dist/include/lldb/Target/ObjCLanguageRuntime.h vendor/lldb/dist/include/lldb/Target/OperatingSystem.h vendor/lldb/dist/include/lldb/Target/Platform.h vendor/lldb/dist/include/lldb/Target/Process.h vendor/lldb/dist/include/lldb/Target/QueueItem.h vendor/lldb/dist/include/lldb/Target/RegisterContext.h vendor/lldb/dist/include/lldb/Target/SectionLoadList.h vendor/lldb/dist/include/lldb/Target/StackFrame.h vendor/lldb/dist/include/lldb/Target/StackFrameList.h vendor/lldb/dist/include/lldb/Target/StackID.h vendor/lldb/dist/include/lldb/Target/StopInfo.h vendor/lldb/dist/include/lldb/Target/SystemRuntime.h vendor/lldb/dist/include/lldb/Target/Target.h vendor/lldb/dist/include/lldb/Target/TargetList.h vendor/lldb/dist/include/lldb/Target/Thread.h vendor/lldb/dist/include/lldb/Target/ThreadList.h vendor/lldb/dist/include/lldb/Target/ThreadPlan.h vendor/lldb/dist/include/lldb/Target/ThreadPlanBase.h vendor/lldb/dist/include/lldb/Target/ThreadPlanCallFunction.h vendor/lldb/dist/include/lldb/Target/ThreadPlanCallFunctionUsingABI.h vendor/lldb/dist/include/lldb/Target/ThreadPlanCallUserExpression.h vendor/lldb/dist/include/lldb/Target/ThreadPlanPython.h vendor/lldb/dist/include/lldb/Target/ThreadPlanRunToAddress.h vendor/lldb/dist/include/lldb/Target/ThreadPlanShouldStopHere.h vendor/lldb/dist/include/lldb/Target/ThreadPlanStepInRange.h vendor/lldb/dist/include/lldb/Target/ThreadPlanStepInstruction.h vendor/lldb/dist/include/lldb/Target/ThreadPlanStepOut.h vendor/lldb/dist/include/lldb/Target/ThreadPlanStepOverBreakpoint.h vendor/lldb/dist/include/lldb/Target/ThreadPlanStepOverRange.h vendor/lldb/dist/include/lldb/Target/ThreadPlanStepRange.h vendor/lldb/dist/include/lldb/Target/ThreadPlanStepThrough.h vendor/lldb/dist/include/lldb/Target/ThreadPlanStepUntil.h vendor/lldb/dist/include/lldb/Target/ThreadPlanTracer.h vendor/lldb/dist/include/lldb/Target/ThreadSpec.h vendor/lldb/dist/include/lldb/Target/UnixSignals.h vendor/lldb/dist/include/lldb/Target/UnwindAssembly.h vendor/lldb/dist/include/lldb/Utility/AnsiTerminal.h vendor/lldb/dist/include/lldb/Utility/Iterable.h vendor/lldb/dist/include/lldb/Utility/JSON.h vendor/lldb/dist/include/lldb/Utility/ProcessStructReader.h vendor/lldb/dist/include/lldb/Utility/PseudoTerminal.h vendor/lldb/dist/include/lldb/Utility/SharedCluster.h vendor/lldb/dist/include/lldb/Utility/SharingPtr.h vendor/lldb/dist/include/lldb/Utility/StringExtractor.h vendor/lldb/dist/include/lldb/lldb-defines.h vendor/lldb/dist/include/lldb/lldb-enumerations.h vendor/lldb/dist/include/lldb/lldb-forward.h vendor/lldb/dist/include/lldb/lldb-private-enumerations.h vendor/lldb/dist/include/lldb/lldb-private-interfaces.h vendor/lldb/dist/include/lldb/lldb-private-types.h vendor/lldb/dist/include/lldb/lldb-types.h vendor/lldb/dist/source/API/SBAttachInfo.cpp vendor/lldb/dist/source/API/SBBreakpoint.cpp vendor/lldb/dist/source/API/SBCommandInterpreter.cpp vendor/lldb/dist/source/API/SBCommandReturnObject.cpp vendor/lldb/dist/source/API/SBDebugger.cpp vendor/lldb/dist/source/API/SBFrame.cpp vendor/lldb/dist/source/API/SBFunction.cpp vendor/lldb/dist/source/API/SBLanguageRuntime.cpp vendor/lldb/dist/source/API/SBModule.cpp vendor/lldb/dist/source/API/SBPlatform.cpp vendor/lldb/dist/source/API/SBProcess.cpp vendor/lldb/dist/source/API/SBStream.cpp vendor/lldb/dist/source/API/SBTarget.cpp vendor/lldb/dist/source/API/SBThread.cpp vendor/lldb/dist/source/API/SBType.cpp vendor/lldb/dist/source/API/SBTypeCategory.cpp vendor/lldb/dist/source/API/SBTypeEnumMember.cpp vendor/lldb/dist/source/API/SBTypeNameSpecifier.cpp vendor/lldb/dist/source/API/SBTypeSummary.cpp vendor/lldb/dist/source/API/SBValue.cpp vendor/lldb/dist/source/API/SBValueList.cpp vendor/lldb/dist/source/API/SystemInitializerFull.cpp vendor/lldb/dist/source/Breakpoint/Breakpoint.cpp vendor/lldb/dist/source/Breakpoint/BreakpointID.cpp vendor/lldb/dist/source/Breakpoint/BreakpointIDList.cpp vendor/lldb/dist/source/Breakpoint/BreakpointLocation.cpp vendor/lldb/dist/source/Breakpoint/BreakpointLocationList.cpp vendor/lldb/dist/source/Breakpoint/BreakpointOptions.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverAddress.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverName.cpp vendor/lldb/dist/source/Breakpoint/BreakpointSite.cpp vendor/lldb/dist/source/Breakpoint/StoppointCallbackContext.cpp vendor/lldb/dist/source/Breakpoint/Watchpoint.cpp vendor/lldb/dist/source/Breakpoint/WatchpointList.cpp vendor/lldb/dist/source/Breakpoint/WatchpointOptions.cpp vendor/lldb/dist/source/Commands/CommandObjectApropos.h vendor/lldb/dist/source/Commands/CommandObjectArgs.cpp vendor/lldb/dist/source/Commands/CommandObjectArgs.h vendor/lldb/dist/source/Commands/CommandObjectBreakpoint.cpp vendor/lldb/dist/source/Commands/CommandObjectBreakpoint.h vendor/lldb/dist/source/Commands/CommandObjectBreakpointCommand.cpp vendor/lldb/dist/source/Commands/CommandObjectBreakpointCommand.h vendor/lldb/dist/source/Commands/CommandObjectBugreport.cpp vendor/lldb/dist/source/Commands/CommandObjectBugreport.h vendor/lldb/dist/source/Commands/CommandObjectCommands.cpp vendor/lldb/dist/source/Commands/CommandObjectCommands.h vendor/lldb/dist/source/Commands/CommandObjectDisassemble.cpp vendor/lldb/dist/source/Commands/CommandObjectDisassemble.h vendor/lldb/dist/source/Commands/CommandObjectExpression.cpp vendor/lldb/dist/source/Commands/CommandObjectExpression.h vendor/lldb/dist/source/Commands/CommandObjectFrame.cpp vendor/lldb/dist/source/Commands/CommandObjectFrame.h vendor/lldb/dist/source/Commands/CommandObjectGUI.h vendor/lldb/dist/source/Commands/CommandObjectHelp.h vendor/lldb/dist/source/Commands/CommandObjectLanguage.cpp vendor/lldb/dist/source/Commands/CommandObjectLanguage.h vendor/lldb/dist/source/Commands/CommandObjectLog.cpp vendor/lldb/dist/source/Commands/CommandObjectLog.h vendor/lldb/dist/source/Commands/CommandObjectMemory.cpp vendor/lldb/dist/source/Commands/CommandObjectMemory.h vendor/lldb/dist/source/Commands/CommandObjectMultiword.cpp vendor/lldb/dist/source/Commands/CommandObjectPlatform.cpp vendor/lldb/dist/source/Commands/CommandObjectPlatform.h vendor/lldb/dist/source/Commands/CommandObjectPlugin.cpp vendor/lldb/dist/source/Commands/CommandObjectPlugin.h vendor/lldb/dist/source/Commands/CommandObjectProcess.cpp vendor/lldb/dist/source/Commands/CommandObjectProcess.h vendor/lldb/dist/source/Commands/CommandObjectQuit.h vendor/lldb/dist/source/Commands/CommandObjectRegister.cpp vendor/lldb/dist/source/Commands/CommandObjectRegister.h vendor/lldb/dist/source/Commands/CommandObjectSettings.cpp vendor/lldb/dist/source/Commands/CommandObjectSettings.h vendor/lldb/dist/source/Commands/CommandObjectSource.cpp vendor/lldb/dist/source/Commands/CommandObjectSource.h vendor/lldb/dist/source/Commands/CommandObjectSyntax.h vendor/lldb/dist/source/Commands/CommandObjectTarget.cpp vendor/lldb/dist/source/Commands/CommandObjectTarget.h vendor/lldb/dist/source/Commands/CommandObjectThread.cpp vendor/lldb/dist/source/Commands/CommandObjectThread.h vendor/lldb/dist/source/Commands/CommandObjectType.cpp vendor/lldb/dist/source/Commands/CommandObjectType.h vendor/lldb/dist/source/Commands/CommandObjectVersion.h vendor/lldb/dist/source/Commands/CommandObjectWatchpoint.cpp vendor/lldb/dist/source/Commands/CommandObjectWatchpoint.h vendor/lldb/dist/source/Commands/CommandObjectWatchpointCommand.cpp vendor/lldb/dist/source/Commands/CommandObjectWatchpointCommand.h vendor/lldb/dist/source/Core/Address.cpp vendor/lldb/dist/source/Core/AddressResolverName.cpp vendor/lldb/dist/source/Core/ArchSpec.cpp vendor/lldb/dist/source/Core/ConnectionSharedMemory.cpp vendor/lldb/dist/source/Core/ConstString.cpp vendor/lldb/dist/source/Core/CxaDemangle.cpp vendor/lldb/dist/source/Core/DataEncoder.cpp vendor/lldb/dist/source/Core/DataExtractor.cpp vendor/lldb/dist/source/Core/Debugger.cpp vendor/lldb/dist/source/Core/Disassembler.cpp vendor/lldb/dist/source/Core/DynamicLoader.cpp vendor/lldb/dist/source/Core/EmulateInstruction.cpp vendor/lldb/dist/source/Core/Event.cpp vendor/lldb/dist/source/Core/FastDemangle.cpp vendor/lldb/dist/source/Core/FormatEntity.cpp vendor/lldb/dist/source/Core/IOHandler.cpp vendor/lldb/dist/source/Core/Log.cpp vendor/lldb/dist/source/Core/Logging.cpp vendor/lldb/dist/source/Core/Mangled.cpp vendor/lldb/dist/source/Core/Module.cpp vendor/lldb/dist/source/Core/ModuleList.cpp vendor/lldb/dist/source/Core/Opcode.cpp vendor/lldb/dist/source/Core/PluginManager.cpp vendor/lldb/dist/source/Core/RegisterValue.cpp vendor/lldb/dist/source/Core/RegularExpression.cpp vendor/lldb/dist/source/Core/Scalar.cpp vendor/lldb/dist/source/Core/Section.cpp vendor/lldb/dist/source/Core/SourceManager.cpp vendor/lldb/dist/source/Core/Stream.cpp vendor/lldb/dist/source/Core/StreamAsynchronousIO.cpp vendor/lldb/dist/source/Core/StreamString.cpp vendor/lldb/dist/source/Core/Timer.cpp vendor/lldb/dist/source/Core/Value.cpp vendor/lldb/dist/source/Core/ValueObject.cpp vendor/lldb/dist/source/Core/ValueObjectCast.cpp vendor/lldb/dist/source/Core/ValueObjectChild.cpp vendor/lldb/dist/source/Core/ValueObjectConstResult.cpp vendor/lldb/dist/source/Core/ValueObjectConstResultChild.cpp vendor/lldb/dist/source/Core/ValueObjectConstResultImpl.cpp vendor/lldb/dist/source/Core/ValueObjectDynamicValue.cpp vendor/lldb/dist/source/Core/ValueObjectMemory.cpp vendor/lldb/dist/source/Core/ValueObjectRegister.cpp vendor/lldb/dist/source/Core/ValueObjectSyntheticFilter.cpp vendor/lldb/dist/source/Core/ValueObjectVariable.cpp vendor/lldb/dist/source/DataFormatters/DataVisualization.cpp vendor/lldb/dist/source/DataFormatters/FormatClasses.cpp vendor/lldb/dist/source/DataFormatters/FormatManager.cpp vendor/lldb/dist/source/DataFormatters/StringPrinter.cpp vendor/lldb/dist/source/DataFormatters/TypeCategory.cpp vendor/lldb/dist/source/DataFormatters/TypeCategoryMap.cpp vendor/lldb/dist/source/DataFormatters/TypeFormat.cpp vendor/lldb/dist/source/DataFormatters/TypeSummary.cpp vendor/lldb/dist/source/DataFormatters/TypeSynthetic.cpp vendor/lldb/dist/source/DataFormatters/ValueObjectPrinter.cpp vendor/lldb/dist/source/DataFormatters/VectorType.cpp vendor/lldb/dist/source/Expression/DWARFExpression.cpp vendor/lldb/dist/source/Expression/ExpressionSourceCode.cpp vendor/lldb/dist/source/Expression/IRDynamicChecks.cpp vendor/lldb/dist/source/Expression/IRExecutionUnit.cpp vendor/lldb/dist/source/Expression/IRInterpreter.cpp vendor/lldb/dist/source/Expression/IRMemoryMap.cpp vendor/lldb/dist/source/Expression/Materializer.cpp vendor/lldb/dist/source/Host/common/Editline.cpp vendor/lldb/dist/source/Host/common/File.cpp vendor/lldb/dist/source/Host/common/FileSpec.cpp vendor/lldb/dist/source/Host/common/Host.cpp vendor/lldb/dist/source/Host/common/HostInfoBase.cpp vendor/lldb/dist/source/Host/common/Mutex.cpp vendor/lldb/dist/source/Host/common/NativeProcessProtocol.cpp vendor/lldb/dist/source/Host/common/OptionParser.cpp vendor/lldb/dist/source/Host/common/Socket.cpp vendor/lldb/dist/source/Host/common/SocketAddress.cpp vendor/lldb/dist/source/Host/common/Symbols.cpp vendor/lldb/dist/source/Host/common/ThisThread.cpp vendor/lldb/dist/source/Host/common/XML.cpp vendor/lldb/dist/source/Host/freebsd/Host.cpp vendor/lldb/dist/source/Host/posix/ConnectionFileDescriptorPosix.cpp vendor/lldb/dist/source/Host/posix/FileSystem.cpp vendor/lldb/dist/source/Host/posix/HostInfoPosix.cpp vendor/lldb/dist/source/Host/posix/MainLoopPosix.cpp vendor/lldb/dist/source/Host/posix/PipePosix.cpp vendor/lldb/dist/source/Initialization/SystemInitializerCommon.cpp vendor/lldb/dist/source/Interpreter/Args.cpp vendor/lldb/dist/source/Interpreter/CommandInterpreter.cpp vendor/lldb/dist/source/Interpreter/CommandObject.cpp vendor/lldb/dist/source/Interpreter/CommandObjectScript.h vendor/lldb/dist/source/Interpreter/OptionGroupValueObjectDisplay.cpp vendor/lldb/dist/source/Interpreter/OptionValueLanguage.cpp vendor/lldb/dist/source/Interpreter/OptionValueProperties.cpp vendor/lldb/dist/source/Interpreter/Property.cpp vendor/lldb/dist/source/Interpreter/embedded_interpreter.py vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h vendor/lldb/dist/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h vendor/lldb/dist/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-arm/ABISysV_arm.h vendor/lldb/dist/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h vendor/lldb/dist/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h vendor/lldb/dist/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-i386/ABISysV_i386.h vendor/lldb/dist/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-mips/ABISysV_mips.h vendor/lldb/dist/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h vendor/lldb/dist/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h vendor/lldb/dist/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h vendor/lldb/dist/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h vendor/lldb/dist/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp vendor/lldb/dist/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.h vendor/lldb/dist/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.h vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h vendor/lldb/dist/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h vendor/lldb/dist/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h vendor/lldb/dist/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp vendor/lldb/dist/source/Plugins/Instruction/ARM/EmulateInstructionARM.h vendor/lldb/dist/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp vendor/lldb/dist/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.h vendor/lldb/dist/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp vendor/lldb/dist/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.h vendor/lldb/dist/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp vendor/lldb/dist/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h vendor/lldb/dist/source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.cpp vendor/lldb/dist/source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.h vendor/lldb/dist/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp vendor/lldb/dist/source/Plugins/JITLoader/GDB/JITLoaderGDB.h vendor/lldb/dist/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h vendor/lldb/dist/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp vendor/lldb/dist/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h vendor/lldb/dist/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp vendor/lldb/dist/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ObjectFileELF.h vendor/lldb/dist/source/Plugins/ObjectFile/JIT/ObjectFileJIT.h vendor/lldb/dist/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp vendor/lldb/dist/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h vendor/lldb/dist/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h vendor/lldb/dist/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp vendor/lldb/dist/source/Plugins/Platform/POSIX/PlatformPOSIX.h vendor/lldb/dist/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp vendor/lldb/dist/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/FreeBSDThread.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/POSIXStopInfo.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/POSIXStopInfo.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessMonitor.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.h vendor/lldb/dist/source/Plugins/Process/POSIX/CrashReason.cpp vendor/lldb/dist/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp vendor/lldb/dist/source/Plugins/Process/Utility/FreeBSDSignals.cpp vendor/lldb/dist/source/Plugins/Process/Utility/HistoryThread.h vendor/lldb/dist/source/Plugins/Process/Utility/HistoryUnwind.h vendor/lldb/dist/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp vendor/lldb/dist/source/Plugins/Process/Utility/LinuxSignals.cpp vendor/lldb/dist/source/Plugins/Process/Utility/MipsLinuxSignals.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDummy.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDummy.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_arm.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_arm.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_arm64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextHistory.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextHistory.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLLDB.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLLDB.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_arm.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_arm.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_arm64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_arm64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_i386.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_mips.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_mips64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMemory.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextThreadMemory.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContext_mips.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContext_powerpc.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContext_x86.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfoInterface.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_arm.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_arm64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_i386.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_mips.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_mips64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_powerpc.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_x86_64.h vendor/lldb/dist/source/Plugins/Process/Utility/StopInfoMachException.cpp vendor/lldb/dist/source/Plugins/Process/Utility/StopInfoMachException.h vendor/lldb/dist/source/Plugins/Process/Utility/ThreadMemory.h vendor/lldb/dist/source/Plugins/Process/Utility/UnwindLLDB.cpp vendor/lldb/dist/source/Plugins/Process/Utility/UnwindLLDB.h vendor/lldb/dist/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.h vendor/lldb/dist/source/Plugins/Process/Utility/lldb-arm-register-enums.h vendor/lldb/dist/source/Plugins/Process/elf-core/ProcessElfCore.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/ProcessElfCore.h vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.h vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.h vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.h vendor/lldb/dist/source/Plugins/Process/elf-core/ThreadElfCore.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/ThreadElfCore.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFAttribute.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/NameToDIE.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/NameToDIE.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.h vendor/lldb/dist/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp vendor/lldb/dist/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h vendor/lldb/dist/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp vendor/lldb/dist/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.h vendor/lldb/dist/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp vendor/lldb/dist/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.h vendor/lldb/dist/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.h vendor/lldb/dist/source/Symbol/Block.cpp vendor/lldb/dist/source/Symbol/ClangASTContext.cpp vendor/lldb/dist/source/Symbol/ClangASTImporter.cpp vendor/lldb/dist/source/Symbol/ClangExternalASTSourceCallbacks.cpp vendor/lldb/dist/source/Symbol/CompactUnwindInfo.cpp vendor/lldb/dist/source/Symbol/CompileUnit.cpp vendor/lldb/dist/source/Symbol/DWARFCallFrameInfo.cpp vendor/lldb/dist/source/Symbol/FuncUnwinders.cpp vendor/lldb/dist/source/Symbol/Function.cpp vendor/lldb/dist/source/Symbol/LineEntry.cpp vendor/lldb/dist/source/Symbol/LineTable.cpp vendor/lldb/dist/source/Symbol/ObjectFile.cpp vendor/lldb/dist/source/Symbol/SymbolContext.cpp vendor/lldb/dist/source/Symbol/SymbolFile.cpp vendor/lldb/dist/source/Symbol/SymbolVendor.cpp vendor/lldb/dist/source/Symbol/Symtab.cpp vendor/lldb/dist/source/Symbol/Type.cpp vendor/lldb/dist/source/Symbol/TypeList.cpp vendor/lldb/dist/source/Symbol/UnwindTable.cpp vendor/lldb/dist/source/Symbol/Variable.cpp vendor/lldb/dist/source/Symbol/VariableList.cpp vendor/lldb/dist/source/Target/ABI.cpp vendor/lldb/dist/source/Target/CPPLanguageRuntime.cpp vendor/lldb/dist/source/Target/ExecutionContext.cpp vendor/lldb/dist/source/Target/LanguageRuntime.cpp vendor/lldb/dist/source/Target/Memory.cpp vendor/lldb/dist/source/Target/ObjCLanguageRuntime.cpp vendor/lldb/dist/source/Target/Platform.cpp vendor/lldb/dist/source/Target/Process.cpp vendor/lldb/dist/source/Target/ProcessLaunchInfo.cpp vendor/lldb/dist/source/Target/RegisterContext.cpp vendor/lldb/dist/source/Target/StackFrame.cpp vendor/lldb/dist/source/Target/StackFrameList.cpp vendor/lldb/dist/source/Target/StopInfo.cpp vendor/lldb/dist/source/Target/Target.cpp vendor/lldb/dist/source/Target/TargetList.cpp vendor/lldb/dist/source/Target/Thread.cpp vendor/lldb/dist/source/Target/ThreadList.cpp vendor/lldb/dist/source/Target/ThreadPlan.cpp vendor/lldb/dist/source/Target/ThreadPlanCallFunction.cpp vendor/lldb/dist/source/Target/ThreadPlanCallFunctionUsingABI.cpp vendor/lldb/dist/source/Target/ThreadPlanCallUserExpression.cpp vendor/lldb/dist/source/Target/ThreadPlanRunToAddress.cpp vendor/lldb/dist/source/Target/ThreadPlanShouldStopHere.cpp vendor/lldb/dist/source/Target/ThreadPlanStepInRange.cpp vendor/lldb/dist/source/Target/ThreadPlanStepInstruction.cpp vendor/lldb/dist/source/Target/ThreadPlanStepOut.cpp vendor/lldb/dist/source/Target/ThreadPlanStepOverRange.cpp vendor/lldb/dist/source/Target/ThreadPlanStepRange.cpp vendor/lldb/dist/source/Target/ThreadPlanStepThrough.cpp vendor/lldb/dist/source/Target/ThreadPlanStepUntil.cpp vendor/lldb/dist/source/Target/ThreadPlanTracer.cpp vendor/lldb/dist/source/Target/ThreadSpec.cpp vendor/lldb/dist/source/Target/UnixSignals.cpp vendor/lldb/dist/source/Utility/ConvertEnum.cpp vendor/lldb/dist/source/Utility/JSON.cpp vendor/lldb/dist/source/Utility/ModuleCache.cpp vendor/lldb/dist/source/Utility/ModuleCache.h vendor/lldb/dist/source/Utility/SharingPtr.cpp vendor/lldb/dist/source/Utility/StringExtractor.cpp vendor/lldb/dist/source/Utility/StringExtractorGDBRemote.cpp vendor/lldb/dist/source/Utility/StringExtractorGDBRemote.h vendor/lldb/dist/source/Utility/UriParser.cpp vendor/lldb/dist/source/Utility/UriParser.h vendor/lldb/dist/source/lldb.cpp vendor/lldb/dist/tools/driver/Driver.cpp vendor/lldb/dist/tools/driver/Driver.h vendor/lldb/dist/tools/lldb-mi/MICmdArgContext.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgContext.h vendor/lldb/dist/tools/lldb-mi/MICmdArgSet.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgSet.h vendor/lldb/dist/tools/lldb-mi/MICmdArgValBase.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgValBase.h vendor/lldb/dist/tools/lldb-mi/MICmdArgValConsume.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgValConsume.h vendor/lldb/dist/tools/lldb-mi/MICmdArgValFile.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgValFile.h vendor/lldb/dist/tools/lldb-mi/MICmdArgValListBase.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgValListBase.h vendor/lldb/dist/tools/lldb-mi/MICmdArgValListOfN.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgValListOfN.h vendor/lldb/dist/tools/lldb-mi/MICmdArgValNumber.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgValNumber.h vendor/lldb/dist/tools/lldb-mi/MICmdArgValOptionLong.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgValOptionLong.h vendor/lldb/dist/tools/lldb-mi/MICmdArgValOptionShort.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgValOptionShort.h vendor/lldb/dist/tools/lldb-mi/MICmdArgValPrintValues.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgValPrintValues.h vendor/lldb/dist/tools/lldb-mi/MICmdArgValString.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgValString.h vendor/lldb/dist/tools/lldb-mi/MICmdArgValThreadGrp.cpp vendor/lldb/dist/tools/lldb-mi/MICmdArgValThreadGrp.h vendor/lldb/dist/tools/lldb-mi/MICmdBase.cpp vendor/lldb/dist/tools/lldb-mi/MICmdBase.h vendor/lldb/dist/tools/lldb-mi/MICmdCmd.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmd.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdBreak.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdBreak.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdData.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdData.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdEnviro.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdEnviro.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdExec.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdExec.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdFile.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdFile.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdGdbInfo.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdGdbInfo.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdGdbSet.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdGdbSet.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdGdbShow.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdGdbShow.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdGdbThread.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdGdbThread.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdMiscellanous.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdMiscellanous.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdStack.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdStack.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdSupportInfo.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdSupportInfo.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdSupportList.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdSupportList.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdSymbol.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdSymbol.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdTarget.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdTarget.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdThread.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdThread.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdTrace.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdTrace.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdVar.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdVar.h vendor/lldb/dist/tools/lldb-mi/MICmdCommands.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCommands.h vendor/lldb/dist/tools/lldb-mi/MICmdData.h vendor/lldb/dist/tools/lldb-mi/MICmdFactory.cpp vendor/lldb/dist/tools/lldb-mi/MICmdFactory.h vendor/lldb/dist/tools/lldb-mi/MICmdInterpreter.cpp vendor/lldb/dist/tools/lldb-mi/MICmdInterpreter.h vendor/lldb/dist/tools/lldb-mi/MICmdInvoker.cpp vendor/lldb/dist/tools/lldb-mi/MICmdInvoker.h vendor/lldb/dist/tools/lldb-mi/MICmdMgr.cpp vendor/lldb/dist/tools/lldb-mi/MICmdMgr.h vendor/lldb/dist/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.cpp vendor/lldb/dist/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h vendor/lldb/dist/tools/lldb-mi/MICmnBase.cpp vendor/lldb/dist/tools/lldb-mi/MICmnBase.h vendor/lldb/dist/tools/lldb-mi/MICmnLLDBBroadcaster.cpp vendor/lldb/dist/tools/lldb-mi/MICmnLLDBBroadcaster.h vendor/lldb/dist/tools/lldb-mi/MICmnLLDBDebugSessionInfo.cpp vendor/lldb/dist/tools/lldb-mi/MICmnLLDBDebugSessionInfo.h vendor/lldb/dist/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp vendor/lldb/dist/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.h vendor/lldb/dist/tools/lldb-mi/MICmnLLDBDebugger.cpp vendor/lldb/dist/tools/lldb-mi/MICmnLLDBDebugger.h vendor/lldb/dist/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp vendor/lldb/dist/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.h vendor/lldb/dist/tools/lldb-mi/MICmnLLDBProxySBValue.h vendor/lldb/dist/tools/lldb-mi/MICmnLLDBUtilSBValue.cpp vendor/lldb/dist/tools/lldb-mi/MICmnLLDBUtilSBValue.h vendor/lldb/dist/tools/lldb-mi/MICmnLog.cpp vendor/lldb/dist/tools/lldb-mi/MICmnLog.h vendor/lldb/dist/tools/lldb-mi/MICmnLogMediumFile.cpp vendor/lldb/dist/tools/lldb-mi/MICmnLogMediumFile.h vendor/lldb/dist/tools/lldb-mi/MICmnMIOutOfBandRecord.cpp vendor/lldb/dist/tools/lldb-mi/MICmnMIOutOfBandRecord.h vendor/lldb/dist/tools/lldb-mi/MICmnMIResultRecord.cpp vendor/lldb/dist/tools/lldb-mi/MICmnMIResultRecord.h vendor/lldb/dist/tools/lldb-mi/MICmnMIValue.cpp vendor/lldb/dist/tools/lldb-mi/MICmnMIValue.h vendor/lldb/dist/tools/lldb-mi/MICmnMIValueConst.cpp vendor/lldb/dist/tools/lldb-mi/MICmnMIValueConst.h vendor/lldb/dist/tools/lldb-mi/MICmnMIValueList.cpp vendor/lldb/dist/tools/lldb-mi/MICmnMIValueList.h vendor/lldb/dist/tools/lldb-mi/MICmnMIValueResult.cpp vendor/lldb/dist/tools/lldb-mi/MICmnMIValueResult.h vendor/lldb/dist/tools/lldb-mi/MICmnMIValueTuple.cpp vendor/lldb/dist/tools/lldb-mi/MICmnMIValueTuple.h vendor/lldb/dist/tools/lldb-mi/MICmnResources.cpp vendor/lldb/dist/tools/lldb-mi/MICmnResources.h vendor/lldb/dist/tools/lldb-mi/MICmnStreamStderr.cpp vendor/lldb/dist/tools/lldb-mi/MICmnStreamStderr.h vendor/lldb/dist/tools/lldb-mi/MICmnStreamStdin.cpp vendor/lldb/dist/tools/lldb-mi/MICmnStreamStdin.h vendor/lldb/dist/tools/lldb-mi/MICmnStreamStdout.cpp vendor/lldb/dist/tools/lldb-mi/MICmnStreamStdout.h vendor/lldb/dist/tools/lldb-mi/MICmnThreadMgrStd.cpp vendor/lldb/dist/tools/lldb-mi/MICmnThreadMgrStd.h vendor/lldb/dist/tools/lldb-mi/MIDataTypes.h vendor/lldb/dist/tools/lldb-mi/MIDriver.cpp vendor/lldb/dist/tools/lldb-mi/MIDriver.h vendor/lldb/dist/tools/lldb-mi/MIDriverBase.cpp vendor/lldb/dist/tools/lldb-mi/MIDriverBase.h vendor/lldb/dist/tools/lldb-mi/MIDriverMain.cpp vendor/lldb/dist/tools/lldb-mi/MIDriverMgr.cpp vendor/lldb/dist/tools/lldb-mi/MIDriverMgr.h vendor/lldb/dist/tools/lldb-mi/MIExtensions.txt vendor/lldb/dist/tools/lldb-mi/MIUtilDateTimeStd.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilDateTimeStd.h vendor/lldb/dist/tools/lldb-mi/MIUtilDebug.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilDebug.h vendor/lldb/dist/tools/lldb-mi/MIUtilFileStd.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilFileStd.h vendor/lldb/dist/tools/lldb-mi/MIUtilMapIdToVariant.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilMapIdToVariant.h vendor/lldb/dist/tools/lldb-mi/MIUtilSingletonBase.h vendor/lldb/dist/tools/lldb-mi/MIUtilSingletonHelper.h vendor/lldb/dist/tools/lldb-mi/MIUtilString.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilString.h vendor/lldb/dist/tools/lldb-mi/MIUtilThreadBaseStd.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilThreadBaseStd.h vendor/lldb/dist/tools/lldb-mi/MIUtilVariant.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilVariant.h vendor/lldb/dist/tools/lldb-server/LLDBServerUtilities.cpp vendor/lldb/dist/tools/lldb-server/lldb-gdbserver.cpp vendor/lldb/dist/tools/lldb-server/lldb-platform.cpp Modified: vendor/lldb/dist/docs/lldb.1 ============================================================================== --- vendor/lldb/dist/docs/lldb.1 Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/docs/lldb.1 Wed Dec 30 11:55:28 2015 (r292932) @@ -1,19 +1,20 @@ -.Dd June 7, 2012 \" DATE +.Dd December 16, 2015 \" DATE .Dt LLDB 1 \" Program name and manual section number -.Os Darwin \" Operating System -.Sh NAME \" Section Header - required - don't modify +.Os +.Sh NAME \" Section Header - required - do not modify .Nm lldb .Nd The debugger -.Sh SYNOPSIS \" Section Header - required - don't modify +.Sh SYNOPSIS \" Section Header - required - do not modify .Nm lldb .Op Fl hvdexw .Op Fl a Ar arch +.Op Fl c Ar core-file .Op Fl l Ar script-language .Op Fl s Ar lldb-commands .Op Fl n Ar process-name .Op Fl p Ar pid .Ar [[--] ...] -.Sh DESCRIPTION \" Section Header - required - don't modify +.Sh DESCRIPTION \" Section Header - required - do not modify .Nm is the command line interface for the LLDB debugger library. .Nm @@ -24,7 +25,10 @@ The following options are available: .It Fl h, -help Prints out the usage information for the .Nm -debugger. The \fB\-\-help\fR text may be more up-to-date and +debugger. +The +.Fl -help +text may be more up-to-date and authoritative than the command line options described in this man page. .It Fl v, -version @@ -42,9 +46,13 @@ Specifies the executable file that will be launching / attaching to. .It Fl n, -attach-name Ar process-name Specifies the name of a currently-running process to attach to. -(or the name of a process to wait for if \fB\-w\fR is used.) +(or the name of a process to wait for if +.Fl w +is used.) .It Fl w, -wait-for -When used in concert with \&\fB\-n process-name\-E\fR, indicates that +When used in concert with +.Fl n Ar process-name , +indicates that .Nm should wait for a new process of that name to be started -- and attach to it as early in the process-launch as possible. @@ -52,9 +60,12 @@ to it as early in the process-launch as Specifies a currently running process that .Nm should attach to. +.It Fl c, -core Ar core-file +Specifies the core file to examine. .It Fl l, -script-language Ar language Tells the debugger to use the specified scripting language for -user-defined scripts, rather than the default. Valid scripting +user-defined scripts, rather than the default. +Valid scripting languages that can be specified include Python, Perl, Ruby and Tcl. Currently only the Python extensions have been implemented. .It Fl d, -debug @@ -62,8 +73,9 @@ Tells the debugger to print out extra in .It Fl s, -source Ar filename Tells .Nm -to read in and execute the file "\fBfilename\fR", which -should contain +to read in and execute the file +.Qq Ar filename , +which should contain .Nm commands. .It Fl e, -editor @@ -73,39 +85,62 @@ to open source files using the host's "e .It Fl x, -no-lldbinit Do not automatically parse any '.lldbinit' files. .Pp -(If you don't provide -f then the first argument will be the file to be debugged +(If you do not provide -f then the first argument will be the file to +be debugged so 'lldb -- [ []]' also works. -Remember to end the options with "--" if any of your arguments have a "-" in them.) +Remember to end the options with "--" if any of your arguments have +a "-" in them.) .El .Sh USING LLDB In .Nm -there is a \fBhelp\fR command which can be used to find descriptions and examples of -all +there is a +.Cm help +command which can be used to find descriptions and examples of all .Nm -commands. To get help on "\fBbreakpoint set\fR" you would type "\fBhelp breakpoint set\fR". -.Pp -There is also an \fBapropos\fR command which will search the help text of all commands -for a given term -- this is useful for locating a command by topic. For instance, "\fBapropos breakpoint\fR" -will list any command that has the word \fBbreakpoint\fR in its help text. +commands. +To get help on +.Qq Cm breakpoint set +you would type +.Qq Cm help breakpoint set . +.Pp +There is also an +.Cm apropos +command which will search the help text of all commands +for a given term -- this is useful for locating a command by topic. +For instance, +.Qq Cm apropos breakpoint +will list any command that has the word +.Qq Cm breakpoint +in its help text. .Sh FILES .Nm will read settings/aliases/commands from three files at startup, if they exist. .Pp -First, it will read a \fB~/.lldbinit-\fIdebugger\fR command file. If you are using the -.Nm -command line interface, this is \fB~/.lldbinit-lldb\fR. If you are using +First, it will read a +.Pa ~/.lldbinit-debugger +command file. +If you are using the +.Nm +command line interface, this is +.Pa ~/.lldbinit-lldb . +If you are using .Nm inside a GUI debugger like .Nm Xcode -this will be \fB~/.lldbinit-Xcode\fR. This is a useful place to put settings that you -want to apply only when a given +this will be +.Pa ~/.lldbinit-Xcode . +This is a useful place to put settings that you want to apply only when a given .Nm command interpreter is used. .Pp -Second, \fB~/.lldbinit\fR is read. -.Pp -Third, an \fR.lldbinit\fR file in the current working directory (where +Second, +.Pa ~/.lldbinit +is read. +.Pp +Third, an +.Pa .lldbinit +file in the current working directory (where .Nm is started) will be read. .Sh SEE ALSO Modified: vendor/lldb/dist/include/lldb/API/LLDB.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/LLDB.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/LLDB.h Wed Dec 30 11:55:28 2015 (r292932) @@ -16,6 +16,7 @@ // Project includes #include "lldb/API/SBDefines.h" #include "lldb/API/SBAddress.h" +#include "lldb/API/SBAttachInfo.h" #include "lldb/API/SBBlock.h" #include "lldb/API/SBBreakpoint.h" #include "lldb/API/SBBreakpointLocation.h" @@ -30,28 +31,47 @@ #include "lldb/API/SBError.h" #include "lldb/API/SBEvent.h" #include "lldb/API/SBExecutionContext.h" +#include "lldb/API/SBExpressionOptions.h" #include "lldb/API/SBFileSpec.h" +#include "lldb/API/SBFileSpecList.h" #include "lldb/API/SBFrame.h" #include "lldb/API/SBFunction.h" #include "lldb/API/SBHostOS.h" #include "lldb/API/SBInstruction.h" #include "lldb/API/SBInstructionList.h" +#include "lldb/API/SBLanguageRuntime.h" +#include "lldb/API/SBLaunchInfo.h" #include "lldb/API/SBLineEntry.h" #include "lldb/API/SBListener.h" #include "lldb/API/SBModule.h" +#include "lldb/API/SBModuleSpec.h" +#include "lldb/API/SBPlatform.h" #include "lldb/API/SBProcess.h" #include "lldb/API/SBQueue.h" #include "lldb/API/SBQueueItem.h" +#include "lldb/API/SBSection.h" #include "lldb/API/SBSourceManager.h" #include "lldb/API/SBStream.h" #include "lldb/API/SBStringList.h" #include "lldb/API/SBSymbol.h" #include "lldb/API/SBSymbolContext.h" +#include "lldb/API/SBSymbolContextList.h" #include "lldb/API/SBTarget.h" #include "lldb/API/SBThread.h" +#include "lldb/API/SBThreadCollection.h" +#include "lldb/API/SBThreadPlan.h" #include "lldb/API/SBType.h" +#include "lldb/API/SBTypeCategory.h" +#include "lldb/API/SBTypeEnumMember.h" +#include "lldb/API/SBTypeFilter.h" +#include "lldb/API/SBTypeFormat.h" +#include "lldb/API/SBTypeNameSpecifier.h" +#include "lldb/API/SBTypeSummary.h" +#include "lldb/API/SBTypeSynthetic.h" +#include "lldb/API/SBUnixSignals.h" #include "lldb/API/SBValue.h" #include "lldb/API/SBValueList.h" #include "lldb/API/SBVariablesOptions.h" +#include "lldb/API/SBWatchpoint.h" #endif // LLDB_LLDB_h_ Modified: vendor/lldb/dist/include/lldb/API/SBAttachInfo.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBAttachInfo.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBAttachInfo.h Wed Dec 30 11:55:28 2015 (r292932) @@ -23,8 +23,47 @@ public: SBAttachInfo (lldb::pid_t pid); + //------------------------------------------------------------------ + /// Attach to a process by name. + /// + /// This function implies that a future call to SBTarget::Attach(...) + /// will be synchronous. + /// + /// @param[in] path + /// A full or partial name for the process to attach to. + /// + /// @param[in] wait_for + /// If \b false, attach to an existing process whose name matches. + /// If \b true, then wait for the next process whose name matches. + //------------------------------------------------------------------ SBAttachInfo (const char *path, bool wait_for); + //------------------------------------------------------------------ + /// Attach to a process by name. + /// + /// Future calls to SBTarget::Attach(...) will be synchronous or + /// asynchronous depending on the \a async argument. + /// + /// @param[in] path + /// A full or partial name for the process to attach to. + /// + /// @param[in] wait_for + /// If \b false, attach to an existing process whose name matches. + /// If \b true, then wait for the next process whose name matches. + /// + /// @param[in] async + /// If \b false, then the SBTarget::Attach(...) call will be a + /// synchronous call with no way to cancel the attach in + /// progress. + /// If \b true, then the SBTarget::Attach(...) function will + /// return immediately and clients are expected to wait for a + /// process eStateStopped event if a suitable process is + /// eventually found. If the client wants to cancel the event, + /// SBProcess::Stop() can be called and an eStateExited process + /// event will be delivered. + //------------------------------------------------------------------ + SBAttachInfo (const char *path, bool wait_for, bool async); + SBAttachInfo (const SBAttachInfo &rhs); ~SBAttachInfo(); @@ -47,9 +86,45 @@ public: bool GetWaitForLaunch (); + //------------------------------------------------------------------ + /// Set attach by process name settings. + /// + /// Designed to be used after a call to SBAttachInfo::SetExecutable(). + /// This function implies that a call to SBTarget::Attach(...) will + /// be synchronous. + /// + /// @param[in] wait_for + /// If \b false, attach to an existing process whose name matches. + /// If \b true, then wait for the next process whose name matches. + //------------------------------------------------------------------ void SetWaitForLaunch (bool b); + //------------------------------------------------------------------ + /// Set attach by process name settings. + /// + /// Designed to be used after a call to SBAttachInfo::SetExecutable(). + /// Future calls to SBTarget::Attach(...) will be synchronous or + /// asynchronous depending on the \a async argument. + /// + /// @param[in] wait_for + /// If \b false, attach to an existing process whose name matches. + /// If \b true, then wait for the next process whose name matches. + /// + /// @param[in] async + /// If \b false, then the SBTarget::Attach(...) call will be a + /// synchronous call with no way to cancel the attach in + /// progress. + /// If \b true, then the SBTarget::Attach(...) function will + /// return immediately and clients are expected to wait for a + /// process eStateStopped event if a suitable process is + /// eventually found. If the client wants to cancel the event, + /// SBProcess::Stop() can be called and an eStateExited process + /// event will be delivered. + //------------------------------------------------------------------ + void + SetWaitForLaunch (bool b, bool async); + bool GetIgnoreExisting (); Modified: vendor/lldb/dist/include/lldb/API/SBCommandInterpreter.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBCommandInterpreter.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBCommandInterpreter.h Wed Dec 30 11:55:28 2015 (r292932) @@ -10,6 +10,12 @@ #ifndef LLDB_SBCommandInterpreter_h_ #define LLDB_SBCommandInterpreter_h_ +// C Includes +// C++ Includes +#include + +// Other libraries and framework includes +// Project includes #include "lldb/API/SBDefines.h" #include "lldb/API/SBDebugger.h" @@ -59,6 +65,7 @@ public: void SetAddToHistory (bool); + private: lldb_private::CommandInterpreterRunOptions * get () const; @@ -84,11 +91,11 @@ public: SBCommandInterpreter (const lldb::SBCommandInterpreter &rhs); + ~SBCommandInterpreter (); + const lldb::SBCommandInterpreter & operator = (const lldb::SBCommandInterpreter &rhs); - ~SBCommandInterpreter (); - static const char * GetArgumentTypeAsCString (const lldb::CommandArgumentType arg_type); @@ -187,7 +194,7 @@ public: lldb::CommandOverrideCallback callback, void *baton); - SBCommandInterpreter (lldb_private::CommandInterpreter *interpreter_ptr = NULL); // Access using SBDebugger::GetCommandInterpreter(); + SBCommandInterpreter(lldb_private::CommandInterpreter *interpreter_ptr = nullptr); // Access using SBDebugger::GetCommandInterpreter(); //---------------------------------------------------------------------- /// Return true if the command interpreter is the active IO handler. @@ -213,7 +220,7 @@ public: /// /// @return /// The string that should be written into the file handle that is - /// feeding the input stream for the debugger, or NULL if there is + /// feeding the input stream for the debugger, or nullptr if there is /// no string for this control key. //---------------------------------------------------------------------- const char * @@ -233,7 +240,6 @@ public: ResolveCommand(const char *command_line, SBCommandReturnObject &result); protected: - lldb_private::CommandInterpreter & ref (); @@ -242,6 +248,7 @@ protected: void reset (lldb_private::CommandInterpreter *); + private: friend class SBDebugger; @@ -254,6 +261,9 @@ private: class SBCommandPluginInterface { public: + virtual + ~SBCommandPluginInterface() = default; + virtual bool DoExecute (lldb::SBDebugger /*debugger*/, char** /*command*/, @@ -261,16 +271,11 @@ public: { return false; } - - virtual - ~SBCommandPluginInterface () - {} }; class SBCommand { public: - SBCommand (); bool @@ -298,13 +303,12 @@ public: SetFlags (uint32_t flags); lldb::SBCommand - AddMultiwordCommand (const char* name, const char* help = NULL); + AddMultiwordCommand(const char* name, const char* help = nullptr); lldb::SBCommand - AddCommand (const char* name, lldb::SBCommandPluginInterface* impl, const char* help = NULL); + AddCommand(const char* name, lldb::SBCommandPluginInterface* impl, const char* help = nullptr); private: - friend class SBDebugger; friend class SBCommandInterpreter; Modified: vendor/lldb/dist/include/lldb/API/SBCommandReturnObject.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBCommandReturnObject.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBCommandReturnObject.h Wed Dec 30 11:55:28 2015 (r292932) @@ -10,8 +10,14 @@ #ifndef LLDB_SBCommandReturnObject_h_ #define LLDB_SBCommandReturnObject_h_ +// C Includes #include +// C++ Includes +#include + +// Other libraries and framework includes +// Project includes #include "lldb/API/SBDefines.h" namespace lldb { @@ -19,22 +25,20 @@ namespace lldb { class LLDB_API SBCommandReturnObject { public: - SBCommandReturnObject (); SBCommandReturnObject (const lldb::SBCommandReturnObject &rhs); + ~SBCommandReturnObject (); + const lldb::SBCommandReturnObject & operator = (const lldb::SBCommandReturnObject &rhs); - SBCommandReturnObject (lldb_private::CommandReturnObject *ptr); lldb_private::CommandReturnObject * Release (); - ~SBCommandReturnObject (); - bool IsValid() const; @@ -99,8 +103,8 @@ public: GetError (bool only_if_no_immediate); void - SetError (lldb::SBError &error, - const char *fallback_error_cstr = NULL); + SetError(lldb::SBError &error, + const char *fallback_error_cstr = nullptr); void SetError (const char* error_cstr); @@ -124,10 +128,10 @@ protected: void SetLLDBObjectPtr (lldb_private::CommandReturnObject *ptr); - private: +private: std::unique_ptr m_opaque_ap; }; } // namespace lldb -#endif // LLDB_SBCommandReturnObject_h_ +#endif // LLDB_SBCommandReturnObject_h_ Modified: vendor/lldb/dist/include/lldb/API/SBDebugger.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBDebugger.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBDebugger.h Wed Dec 30 11:55:28 2015 (r292932) @@ -16,13 +16,13 @@ #include "lldb/API/SBPlatform.h" namespace lldb { - class LLDB_API SBInputReader { public: - SBInputReader(); - ~SBInputReader(); + SBInputReader() = default; + ~SBInputReader() = default; + SBError Initialize(lldb::SBDebugger&, unsigned long (*)(void*, lldb::SBInputReader*, lldb::InputReaderAction, char const*, unsigned long), void*, lldb::InputReaderGranularity, char const*, char const*, bool); void SetIsDone(bool); bool IsActive() const; @@ -31,6 +31,16 @@ public: class LLDB_API SBDebugger { public: + SBDebugger(); + + SBDebugger(const lldb::SBDebugger &rhs); + + SBDebugger(const lldb::DebuggerSP &debugger_sp); + + ~SBDebugger(); + + lldb::SBDebugger & + operator = (const lldb::SBDebugger &rhs); static void Initialize(); @@ -54,17 +64,6 @@ public: static void MemoryPressureDetected (); - SBDebugger(); - - SBDebugger(const lldb::SBDebugger &rhs); - - SBDebugger(const lldb::DebuggerSP &debugger_sp); - - lldb::SBDebugger & - operator = (const lldb::SBDebugger &rhs); - - ~SBDebugger(); - bool IsValid() const; @@ -288,6 +287,9 @@ public: GetCategory (const char* category_name); SBTypeCategory + GetCategory (lldb::LanguageType lang_type); + + SBTypeCategory CreateCategory (const char* category_name); bool @@ -329,8 +331,11 @@ public: int &num_errors, bool &quit_requested, bool &stopped_for_crash); -private: + + SBError + RunREPL (lldb::LanguageType language, const char *repl_options); +private: friend class SBCommandInterpreter; friend class SBInputReader; friend class SBListener; @@ -357,7 +362,6 @@ private: }; // class SBDebugger - } // namespace lldb #endif // LLDB_SBDebugger_h_ Modified: vendor/lldb/dist/include/lldb/API/SBDefines.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBDefines.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBDefines.h Wed Dec 30 11:55:28 2015 (r292932) @@ -86,9 +86,7 @@ class LLDB_API SBTypeMemberFunction; class LLDB_API SBTypeNameSpecifier; class LLDB_API SBTypeSummary; class LLDB_API SBTypeSummaryOptions; -#ifndef LLDB_DISABLE_PYTHON class LLDB_API SBTypeSynthetic; -#endif class LLDB_API SBTypeList; class LLDB_API SBValue; class LLDB_API SBValueList; Modified: vendor/lldb/dist/include/lldb/API/SBFunction.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBFunction.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBFunction.h Wed Dec 30 11:55:28 2015 (r292932) @@ -53,6 +53,9 @@ public: lldb::SBAddress GetEndAddress (); + const char * + GetArgumentName (uint32_t arg_idx); + uint32_t GetPrologueByteSize (); @@ -66,6 +69,9 @@ public: GetLanguage (); bool + GetIsOptimized (); + + bool operator == (const lldb::SBFunction &rhs) const; bool Modified: vendor/lldb/dist/include/lldb/API/SBProcess.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBProcess.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBProcess.h Wed Dec 30 11:55:28 2015 (r292932) @@ -294,8 +294,56 @@ public: uint32_t GetNumSupportedHardwareWatchpoints (lldb::SBError &error) const; + //------------------------------------------------------------------ + /// Load a shared library into this process. + /// + /// @param[in] remote_image_spec + /// The path for the shared library on the target what you want + /// to load. + /// + /// @param[out] error + /// An error object that gets filled in with any errors that + /// might occur when trying to load the shared library. + /// + /// @return + /// A token that represents the shared library that can be + /// later used to unload the shared library. A value of + /// LLDB_INVALID_IMAGE_TOKEN will be returned if the shared + /// library can't be opened. + //------------------------------------------------------------------ uint32_t - LoadImage (lldb::SBFileSpec &image_spec, lldb::SBError &error); + LoadImage (lldb::SBFileSpec &remote_image_spec, lldb::SBError &error); + + //------------------------------------------------------------------ + /// Load a shared library into this process. + /// + /// @param[in] local_image_spec + /// The file spec that points to the shared library that you + /// want to load if the library is located on the host. The + /// library will be copied over to the location specified by + /// remote_image_spec or into the current working directory with + /// the same filename if the remote_image_spec isn't specified. + /// + /// @param[in] remote_image_spec + /// If local_image_spec is specified then the location where the + /// library should be copied over from the host. If + /// local_image_spec isn't specified, then the path for the + /// shared library on the target what you want to load. + /// + /// @param[out] error + /// An error object that gets filled in with any errors that + /// might occur when trying to load the shared library. + /// + /// @return + /// A token that represents the shared library that can be + /// later used to unload the shared library. A value of + /// LLDB_INVALID_IMAGE_TOKEN will be returned if the shared + /// library can't be opened. + //------------------------------------------------------------------ + uint32_t + LoadImage (const lldb::SBFileSpec &local_image_spec, + const lldb::SBFileSpec &remote_image_spec, + lldb::SBError &error); lldb::SBError UnloadImage (uint32_t image_token); @@ -341,6 +389,10 @@ public: bool IsInstrumentationRuntimePresent(InstrumentationRuntimeType type); + // Save the state of the process in a core file (or mini dump on Windows). + lldb::SBError + SaveCore(const char *file_name); + protected: friend class SBAddress; friend class SBBreakpoint; Modified: vendor/lldb/dist/include/lldb/API/SBStream.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBStream.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBStream.h Wed Dec 30 11:55:28 2015 (r292932) @@ -21,7 +21,9 @@ class LLDB_API SBStream public: SBStream (); - + + SBStream (SBStream &&rhs); + ~SBStream (); bool Modified: vendor/lldb/dist/include/lldb/API/SBTarget.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBTarget.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBTarget.h Wed Dec 30 11:55:28 2015 (r292932) @@ -10,6 +10,10 @@ #ifndef LLDB_SBTarget_h_ #define LLDB_SBTarget_h_ +// C Includes +// C++ Includes +// Other libraries and framework includes +// Project includes #include "lldb/API/SBDefines.h" #include "lldb/API/SBAddress.h" #include "lldb/API/SBAttachInfo.h" @@ -50,14 +54,14 @@ public: SBTarget (const lldb::TargetSP& target_sp); - const lldb::SBTarget& - operator = (const lldb::SBTarget& rhs); - //------------------------------------------------------------------ // Destructor //------------------------------------------------------------------ ~SBTarget(); + const lldb::SBTarget& + operator = (const lldb::SBTarget& rhs); + bool IsValid() const; @@ -135,17 +139,17 @@ public: /// /// @param[in] stdin_path /// The path to use when re-directing the STDIN of the new - /// process. If all stdXX_path arguments are NULL, a pseudo + /// process. If all stdXX_path arguments are nullptr, a pseudo /// terminal will be used. /// /// @param[in] stdout_path /// The path to use when re-directing the STDOUT of the new - /// process. If all stdXX_path arguments are NULL, a pseudo + /// process. If all stdXX_path arguments are nullptr, a pseudo /// terminal will be used. /// /// @param[in] stderr_path /// The path to use when re-directing the STDERR of the new - /// process. If all stdXX_path arguments are NULL, a pseudo + /// process. If all stdXX_path arguments are nullptr, a pseudo /// terminal will be used. /// /// @param[in] working_directory @@ -175,8 +179,10 @@ public: uint32_t launch_flags, // See LaunchFlags bool stop_at_entry, lldb::SBError& error); - - + + SBProcess + LoadCore (const char *core_file); + //------------------------------------------------------------------ /// Launch a new process with sensible defaults. /// @@ -212,9 +218,6 @@ public: Launch (SBLaunchInfo &launch_info, SBError& error); SBProcess - LoadCore (const char *core_file); - - SBProcess Attach (SBAttachInfo &attach_info, SBError& error); //------------------------------------------------------------------ @@ -248,6 +251,7 @@ public: ::pid_t pid, // 32 bit int process ID lldb::SBError& error); // DEPRECATED #endif + //------------------------------------------------------------------ /// Attach to process with name. /// @@ -288,7 +292,7 @@ public: /// The url to connect to, e.g., 'connect://localhost:12345'. /// /// @param[in] plugin_name - /// The plugin name to be used; can be NULL. + /// The plugin name to be used; can be nullptr. /// /// @param[out] error /// An error explaining what went wrong if the connect fails. @@ -421,7 +425,6 @@ public: lldb::SBError SetModuleLoadAddress (lldb::SBModule module, int64_t sections_offset); - //------------------------------------------------------------------ /// Clear the section base load addresses for all sections in a module. @@ -618,7 +621,7 @@ public: BreakpointCreateByLocation (const lldb::SBFileSpec &file_spec, uint32_t line); lldb::SBBreakpoint - BreakpointCreateByName (const char *symbol_name, const char *module_name = NULL); + BreakpointCreateByName(const char *symbol_name, const char *module_name = nullptr); // This version uses name_type_mask = eFunctionNameTypeAuto lldb::SBBreakpoint @@ -633,14 +636,29 @@ public: const SBFileSpecList &comp_unit_list); lldb::SBBreakpoint + BreakpointCreateByName (const char *symbol_name, + uint32_t name_type_mask, // Logical OR one or more FunctionNameType enum bits + lldb::LanguageType symbol_language, + const SBFileSpecList &module_list, + const SBFileSpecList &comp_unit_list); + + lldb::SBBreakpoint + BreakpointCreateByNames (const char *symbol_name[], + uint32_t num_names, + uint32_t name_type_mask, // Logical OR one or more FunctionNameType enum bits + const SBFileSpecList &module_list, + const SBFileSpecList &comp_unit_list); + + lldb::SBBreakpoint BreakpointCreateByNames (const char *symbol_name[], uint32_t num_names, uint32_t name_type_mask, // Logical OR one or more FunctionNameType enum bits + lldb::LanguageType symbol_language, const SBFileSpecList &module_list, const SBFileSpecList &comp_unit_list); lldb::SBBreakpoint - BreakpointCreateByRegex (const char *symbol_name_regex, const char *module_name = NULL); + BreakpointCreateByRegex (const char *symbol_name_regex, const char *module_name = nullptr); lldb::SBBreakpoint BreakpointCreateByRegex (const char *symbol_name_regex, @@ -648,9 +666,15 @@ public: const SBFileSpecList &comp_unit_list); lldb::SBBreakpoint - BreakpointCreateBySourceRegex (const char *source_regex, - const SBFileSpec &source_file, - const char *module_name = NULL); + BreakpointCreateByRegex (const char *symbol_name_regex, + lldb::LanguageType symbol_language, + const SBFileSpecList &module_list, + const SBFileSpecList &comp_unit_list); + + lldb::SBBreakpoint + BreakpointCreateBySourceRegex(const char *source_regex, + const SBFileSpec &source_file, + const char *module_name = nullptr); lldb::SBBreakpoint BreakpointCreateBySourceRegex (const char *source_regex, @@ -665,6 +689,9 @@ public: lldb::SBBreakpoint BreakpointCreateByAddress (addr_t address); + lldb::SBBreakpoint + BreakpointCreateBySBAddress (SBAddress &address); + uint32_t GetNumBreakpoints () const; @@ -808,15 +835,10 @@ protected: void SetSP (const lldb::TargetSP& target_sp); - private: - //------------------------------------------------------------------ - // For Target only - //------------------------------------------------------------------ - lldb::TargetSP m_opaque_sp; }; } // namespace lldb -#endif // LLDB_SBTarget_h_ +#endif // LLDB_SBTarget_h_ Modified: vendor/lldb/dist/include/lldb/API/SBType.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBType.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBType.h Wed Dec 30 11:55:28 2015 (r292932) @@ -85,7 +85,13 @@ public: const char * GetName (); - + + const char * + GetDemangledName (); + + const char * + GetMangledName (); + lldb::SBType GetType (); @@ -158,6 +164,9 @@ public: bool IsTypedefType (); + bool + IsAnonymousType (); + lldb::SBType GetPointerType(); @@ -290,7 +299,7 @@ protected: friend class SBTypeList; friend class SBValue; - SBType (const lldb_private::ClangASTType &); + SBType (const lldb_private::CompilerType &); SBType (const lldb::TypeSP &); SBType (const lldb::TypeImplSP &); Modified: vendor/lldb/dist/include/lldb/API/SBTypeCategory.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBTypeCategory.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBTypeCategory.h Wed Dec 30 11:55:28 2015 (r292932) @@ -36,6 +36,15 @@ namespace lldb { const char* GetName(); + lldb::LanguageType + GetLanguageAtIndex (uint32_t idx); + + uint32_t + GetNumLanguages (); + + void + AddLanguage (lldb::LanguageType language); + bool GetDescription (lldb::SBStream &description, lldb::DescriptionLevel description_level); Modified: vendor/lldb/dist/include/lldb/API/SBTypeSummary.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBTypeSummary.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBTypeSummary.h Wed Dec 30 11:55:28 2015 (r292932) @@ -12,8 +12,6 @@ #include "lldb/API/SBDefines.h" -#ifndef LLDB_DISABLE_PYTHON - namespace lldb { class LLDB_API SBTypeSummaryOptions { @@ -71,6 +69,9 @@ namespace lldb { public: SBTypeSummary(); + + // Native function summary formatter callback + typedef bool (*FormatCallback) (SBValue, SBTypeSummaryOptions, SBStream&); static SBTypeSummary CreateWithSummaryString (const char* data, @@ -83,6 +84,11 @@ namespace lldb { static SBTypeSummary CreateWithScriptCode (const char* data, uint32_t options = 0); // see lldb::eTypeOption values + + static SBTypeSummary + CreateWithCallback (FormatCallback cb, + uint32_t options = 0, + const char* description = nullptr); SBTypeSummary (const lldb::SBTypeSummary &rhs); @@ -126,6 +132,9 @@ namespace lldb { operator = (const lldb::SBTypeSummary &rhs); bool + DoesPrintValue (lldb::SBValue value); + + bool IsEqualTo (lldb::SBTypeSummary &rhs); bool @@ -160,6 +169,4 @@ namespace lldb { } // namespace lldb -#endif // LLDB_DISABLE_PYTHON - #endif // LLDB_SBTypeSummary_h_ Modified: vendor/lldb/dist/include/lldb/API/SBValue.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBValue.h Wed Dec 30 11:55:19 2015 (r292931) +++ vendor/lldb/dist/include/lldb/API/SBValue.h Wed Dec 30 11:55:28 2015 (r292932) @@ -139,10 +139,8 @@ public: lldb::SBTypeFormat GetTypeFormat (); -#ifndef LLDB_DISABLE_PYTHON lldb::SBTypeSummary GetTypeSummary (); -#endif *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Dec 30 11:56:15 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B142FA55B5C; Wed, 30 Dec 2015 11:56:15 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6ABD518E9; Wed, 30 Dec 2015 11:56:15 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBuEm5051936; Wed, 30 Dec 2015 11:56:14 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBuEUY051935; Wed, 30 Dec 2015 11:56:14 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301156.tBUBuEUY051935@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:56:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292933 - vendor/lldb/lldb-trunk-r256633 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:56:15 -0000 Author: dim Date: Wed Dec 30 11:56:14 2015 New Revision: 292933 URL: https://svnweb.freebsd.org/changeset/base/292933 Log: Tag stripped lldb trunk r256633. Added: vendor/lldb/lldb-trunk-r256633/ - copied from r292932, vendor/lldb/dist/ From owner-svn-src-all@freebsd.org Wed Dec 30 11:57:42 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F29BFA55C0B; Wed, 30 Dec 2015 11:57:41 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 505131AF4; Wed, 30 Dec 2015 11:57:41 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBve9m052147; Wed, 30 Dec 2015 11:57:40 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBvdTU052138; Wed, 30 Dec 2015 11:57:39 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301157.tBUBvdTU052138@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:57:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292934 - in vendor/lld/dist: . COFF ELF docs include include/lld include/lld/Config include/lld/Core include/lld/Driver include/lld/Passes include/lld/ReaderWriter lib lib/Config lib/C... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:57:42 -0000 Author: dim Date: Wed Dec 30 11:57:38 2015 New Revision: 292934 URL: https://svnweb.freebsd.org/changeset/base/292934 Log: Vendor import of lld trunk r256633: https://llvm.org/svn/llvm-project/lld/trunk@256633 Added: vendor/lld/dist/CODE_OWNERS.TXT (contents, props changed) vendor/lld/dist/COFF/ vendor/lld/dist/COFF/CMakeLists.txt (contents, props changed) vendor/lld/dist/COFF/Chunks.cpp (contents, props changed) vendor/lld/dist/COFF/Chunks.h (contents, props changed) vendor/lld/dist/COFF/Config.h (contents, props changed) vendor/lld/dist/COFF/DLL.cpp (contents, props changed) vendor/lld/dist/COFF/DLL.h (contents, props changed) vendor/lld/dist/COFF/Driver.cpp (contents, props changed) vendor/lld/dist/COFF/Driver.h (contents, props changed) vendor/lld/dist/COFF/DriverUtils.cpp (contents, props changed) vendor/lld/dist/COFF/Error.cpp (contents, props changed) vendor/lld/dist/COFF/Error.h (contents, props changed) vendor/lld/dist/COFF/ICF.cpp (contents, props changed) vendor/lld/dist/COFF/InputFiles.cpp (contents, props changed) vendor/lld/dist/COFF/InputFiles.h (contents, props changed) vendor/lld/dist/COFF/MarkLive.cpp (contents, props changed) vendor/lld/dist/COFF/ModuleDef.cpp (contents, props changed) vendor/lld/dist/COFF/Options.td vendor/lld/dist/COFF/PDB.cpp (contents, props changed) vendor/lld/dist/COFF/README.md vendor/lld/dist/COFF/SymbolTable.cpp (contents, props changed) vendor/lld/dist/COFF/SymbolTable.h (contents, props changed) vendor/lld/dist/COFF/Symbols.cpp (contents, props changed) vendor/lld/dist/COFF/Symbols.h (contents, props changed) vendor/lld/dist/COFF/Writer.cpp (contents, props changed) vendor/lld/dist/COFF/Writer.h (contents, props changed) vendor/lld/dist/ELF/ vendor/lld/dist/ELF/CMakeLists.txt (contents, props changed) vendor/lld/dist/ELF/Config.h (contents, props changed) vendor/lld/dist/ELF/Driver.cpp (contents, props changed) vendor/lld/dist/ELF/Driver.h (contents, props changed) vendor/lld/dist/ELF/DriverUtils.cpp (contents, props changed) vendor/lld/dist/ELF/Error.cpp (contents, props changed) vendor/lld/dist/ELF/Error.h (contents, props changed) vendor/lld/dist/ELF/InputFiles.cpp (contents, props changed) vendor/lld/dist/ELF/InputFiles.h (contents, props changed) vendor/lld/dist/ELF/InputSection.cpp (contents, props changed) vendor/lld/dist/ELF/InputSection.h (contents, props changed) vendor/lld/dist/ELF/LinkerScript.cpp (contents, props changed) vendor/lld/dist/ELF/MarkLive.cpp (contents, props changed) vendor/lld/dist/ELF/Options.td vendor/lld/dist/ELF/OutputSections.cpp (contents, props changed) vendor/lld/dist/ELF/OutputSections.h (contents, props changed) vendor/lld/dist/ELF/README.md vendor/lld/dist/ELF/SymbolTable.cpp (contents, props changed) vendor/lld/dist/ELF/SymbolTable.h (contents, props changed) vendor/lld/dist/ELF/Symbols.cpp (contents, props changed) vendor/lld/dist/ELF/Symbols.h (contents, props changed) vendor/lld/dist/ELF/Target.cpp (contents, props changed) vendor/lld/dist/ELF/Target.h (contents, props changed) vendor/lld/dist/ELF/Writer.cpp (contents, props changed) vendor/lld/dist/ELF/Writer.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64SectionChunks.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64SectionChunks.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AMDGPU/ vendor/lld/dist/lib/ReaderWriter/ELF/AMDGPU/AMDGPUExecutableWriter.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AMDGPU/AMDGPUExecutableWriter.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AMDGPU/AMDGPULinkingContext.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AMDGPU/AMDGPULinkingContext.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AMDGPU/AMDGPURelocationHandler.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AMDGPU/AMDGPURelocationHandler.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AMDGPU/AMDGPUSymbolTable.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AMDGPU/AMDGPUSymbolTable.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AMDGPU/AMDGPUTargetHandler.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AMDGPU/AMDGPUTargetHandler.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/AMDGPU/CMakeLists.txt (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMDynamicLibraryWriter.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMELFWriters.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/Atoms.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/DynamicFile.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/ELFFile.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/FileCommon.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/FileCommon.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/HeaderChunks.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsAbiInfoHandler.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsAbiInfoHandler.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsELFFile.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsELFWriters.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/OutputELFWriter.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/SectionChunks.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/SegmentChunks.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/TargetLayout.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64SectionChunks.cpp (contents, props changed) vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64SectionChunks.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/MachO/ExecutableAtoms.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/MachO/FlatNamespaceFile.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/MachO/SectCreateFile.h (contents, props changed) vendor/lld/dist/lib/ReaderWriter/MachO/TLVPass.cpp (contents, props changed) vendor/lld/dist/test/COFF/ vendor/lld/dist/test/COFF/Inputs/ vendor/lld/dist/test/COFF/Inputs/armnt-executable.obj.yaml vendor/lld/dist/test/COFF/Inputs/armnt-executable.s (contents, props changed) vendor/lld/dist/test/COFF/Inputs/conflict.ll vendor/lld/dist/test/COFF/Inputs/entry-mangled.ll vendor/lld/dist/test/COFF/Inputs/export.ll vendor/lld/dist/test/COFF/Inputs/export.yaml vendor/lld/dist/test/COFF/Inputs/export2.yaml vendor/lld/dist/test/COFF/Inputs/hello32.yaml vendor/lld/dist/test/COFF/Inputs/hello64.asm vendor/lld/dist/test/COFF/Inputs/hello64.obj (contents, props changed) vendor/lld/dist/test/COFF/Inputs/import.yaml vendor/lld/dist/test/COFF/Inputs/imports-mangle.lib (contents, props changed) vendor/lld/dist/test/COFF/Inputs/include1a.yaml vendor/lld/dist/test/COFF/Inputs/include1b.yaml vendor/lld/dist/test/COFF/Inputs/include1c.yaml vendor/lld/dist/test/COFF/Inputs/library.lib (contents, props changed) vendor/lld/dist/test/COFF/Inputs/lto-chkstk-chkstk.s (contents, props changed) vendor/lld/dist/test/COFF/Inputs/lto-chkstk-foo.s (contents, props changed) vendor/lld/dist/test/COFF/Inputs/lto-comdat1.ll vendor/lld/dist/test/COFF/Inputs/lto-comdat2.ll vendor/lld/dist/test/COFF/Inputs/lto-dep.ll vendor/lld/dist/test/COFF/Inputs/machine-x64.yaml vendor/lld/dist/test/COFF/Inputs/machine-x86.yaml vendor/lld/dist/test/COFF/Inputs/resource.res (contents, props changed) vendor/lld/dist/test/COFF/Inputs/ret42.lib (contents, props changed) vendor/lld/dist/test/COFF/Inputs/ret42.obj (contents, props changed) vendor/lld/dist/test/COFF/Inputs/ret42.yaml vendor/lld/dist/test/COFF/Inputs/std32.lib (contents, props changed) vendor/lld/dist/test/COFF/Inputs/std64.lib (contents, props changed) vendor/lld/dist/test/COFF/Inputs/weak-external.ll vendor/lld/dist/test/COFF/Inputs/weak-external2.ll vendor/lld/dist/test/COFF/Inputs/weak-external3.ll vendor/lld/dist/test/COFF/alternatename.test vendor/lld/dist/test/COFF/ar-comdat.test vendor/lld/dist/test/COFF/armnt-blx23t.test vendor/lld/dist/test/COFF/armnt-branch24t.test vendor/lld/dist/test/COFF/armnt-entry-point.test vendor/lld/dist/test/COFF/armnt-imports.test vendor/lld/dist/test/COFF/armnt-mov32t-exec.test vendor/lld/dist/test/COFF/armnt-movt32t.test vendor/lld/dist/test/COFF/base.test vendor/lld/dist/test/COFF/baserel.test vendor/lld/dist/test/COFF/common.test vendor/lld/dist/test/COFF/conflict.test vendor/lld/dist/test/COFF/debug.test vendor/lld/dist/test/COFF/defparser.test vendor/lld/dist/test/COFF/delayimports.test vendor/lld/dist/test/COFF/delayimports32.test vendor/lld/dist/test/COFF/dll.test vendor/lld/dist/test/COFF/dllorder.test vendor/lld/dist/test/COFF/driver.test vendor/lld/dist/test/COFF/entry-inference.test vendor/lld/dist/test/COFF/entry-inference2.test vendor/lld/dist/test/COFF/entry-inference32.test vendor/lld/dist/test/COFF/entry-mangled.test vendor/lld/dist/test/COFF/entrylib.ll vendor/lld/dist/test/COFF/export-exe.test vendor/lld/dist/test/COFF/export.test vendor/lld/dist/test/COFF/export32.test vendor/lld/dist/test/COFF/failifmismatch.test vendor/lld/dist/test/COFF/filetype.test vendor/lld/dist/test/COFF/force.test vendor/lld/dist/test/COFF/heap.test vendor/lld/dist/test/COFF/hello32.test vendor/lld/dist/test/COFF/help.test vendor/lld/dist/test/COFF/icf-circular.test vendor/lld/dist/test/COFF/icf-circular2.test vendor/lld/dist/test/COFF/icf-different-align.test vendor/lld/dist/test/COFF/icf-local.test vendor/lld/dist/test/COFF/icf-simple.test vendor/lld/dist/test/COFF/imports-mangle.test vendor/lld/dist/test/COFF/imports.test vendor/lld/dist/test/COFF/include.test vendor/lld/dist/test/COFF/include2.test vendor/lld/dist/test/COFF/internal.test vendor/lld/dist/test/COFF/invalid-obj.test vendor/lld/dist/test/COFF/largeaddressaware.test vendor/lld/dist/test/COFF/libpath.test vendor/lld/dist/test/COFF/linkenv.test vendor/lld/dist/test/COFF/lldmap.test vendor/lld/dist/test/COFF/loadcfg.ll vendor/lld/dist/test/COFF/loadcfg.test vendor/lld/dist/test/COFF/loadcfg32.test vendor/lld/dist/test/COFF/locally-imported.test vendor/lld/dist/test/COFF/locally-imported32.test vendor/lld/dist/test/COFF/long-section-name.test vendor/lld/dist/test/COFF/lto-chkstk.ll vendor/lld/dist/test/COFF/lto-comdat.ll vendor/lld/dist/test/COFF/lto-linker-opts.ll vendor/lld/dist/test/COFF/lto-new-symbol.ll vendor/lld/dist/test/COFF/lto-opt-level.ll vendor/lld/dist/test/COFF/lto-parallel.ll vendor/lld/dist/test/COFF/lto.ll vendor/lld/dist/test/COFF/machine.test vendor/lld/dist/test/COFF/manifest.test vendor/lld/dist/test/COFF/merge.test vendor/lld/dist/test/COFF/nodefaultlib.test vendor/lld/dist/test/COFF/noentry.test vendor/lld/dist/test/COFF/opt.test vendor/lld/dist/test/COFF/options.test vendor/lld/dist/test/COFF/order.test vendor/lld/dist/test/COFF/out.test vendor/lld/dist/test/COFF/reloc-arm.test vendor/lld/dist/test/COFF/reloc-x64.test vendor/lld/dist/test/COFF/reloc-x86.test vendor/lld/dist/test/COFF/resource.test vendor/lld/dist/test/COFF/responsefile.test vendor/lld/dist/test/COFF/safeseh.test vendor/lld/dist/test/COFF/seh.test vendor/lld/dist/test/COFF/sort-debug.test vendor/lld/dist/test/COFF/stack.test vendor/lld/dist/test/COFF/subsystem-inference.test vendor/lld/dist/test/COFF/subsystem.test vendor/lld/dist/test/COFF/symtab.test vendor/lld/dist/test/COFF/tls.test vendor/lld/dist/test/COFF/tls32.test vendor/lld/dist/test/COFF/unwind.test vendor/lld/dist/test/COFF/version.test vendor/lld/dist/test/COFF/weak-external.test vendor/lld/dist/test/COFF/weak-external2.test vendor/lld/dist/test/COFF/weak-external3.test vendor/lld/dist/test/ELF/ vendor/lld/dist/test/ELF/Inputs/ vendor/lld/dist/test/ELF/Inputs/abs.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/abs255.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/abs256.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/abs257.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/allow-multiple-definition.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/allow-shlib-undefined.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/archive.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/archive2.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/archive3.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/archive4.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/comdat.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/common.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/discard-merge-unnamed.o (contents, props changed) vendor/lld/dist/test/ELF/Inputs/dynamic-reloc.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/invalid-binding.elf (contents, props changed) vendor/lld/dist/test/ELF/Inputs/invalid-data-encoding.a (contents, props changed) vendor/lld/dist/test/ELF/Inputs/invalid-file-class.a (contents, props changed) vendor/lld/dist/test/ELF/Inputs/invalid-multiple-eh-relocs.elf (contents, props changed) vendor/lld/dist/test/ELF/Inputs/invalid-section-index.elf (contents, props changed) vendor/lld/dist/test/ELF/Inputs/invalid-shentsize-zero.elf (contents, props changed) vendor/lld/dist/test/ELF/Inputs/invalid-shstrndx.so (contents, props changed) vendor/lld/dist/test/ELF/Inputs/invalid-symtab-sh_info.elf (contents, props changed) vendor/lld/dist/test/ELF/Inputs/libsearch-dyn.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/libsearch-st.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/merge.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/mips-dynamic.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/no-symtab.o (contents, props changed) vendor/lld/dist/test/ELF/Inputs/relocation-copy-align.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/relocation-copy.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/relocation-size-shared.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/resolution.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/shared-ppc64.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/shared.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/shared2.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/shared3.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/tls-got.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/tls-mismatch.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/tls-opt-gdie.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/tls-opt-gdiele-i686.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/tls-opt-iele-i686-nopic.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/visibility.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/whole-archive.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-abs16.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-abs32.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-call26-error.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-copy.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-data-relocs.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-fpic-abs16.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-fpic-add_abs_lo12_nc.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-fpic-adr_prel_lo21.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-fpic-adr_prel_pg_hi21.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-fpic-ldst32_abs_lo12_nc.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-fpic-ldst64_abs_lo12_nc.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-fpic-ldst8_abs_lo12_nc.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-fpic-prel16.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-fpic-prel32.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-fpic-prel64.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-hi21-error.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-jump26-error.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-lo21-error.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-prel16.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-prel32.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-relocs.s (contents, props changed) vendor/lld/dist/test/ELF/allow-multiple-definition.s (contents, props changed) vendor/lld/dist/test/ELF/allow-shlib-undefined.s (contents, props changed) vendor/lld/dist/test/ELF/archive.s (contents, props changed) vendor/lld/dist/test/ELF/as-needed.s (contents, props changed) vendor/lld/dist/test/ELF/basic-aarch64.s (contents, props changed) vendor/lld/dist/test/ELF/basic-freebsd.s (contents, props changed) vendor/lld/dist/test/ELF/basic-mips.s (contents, props changed) vendor/lld/dist/test/ELF/basic.s (contents, props changed) vendor/lld/dist/test/ELF/basic32.s (contents, props changed) vendor/lld/dist/test/ELF/basic64be.s (contents, props changed) vendor/lld/dist/test/ELF/bss.s (contents, props changed) vendor/lld/dist/test/ELF/comdat.s (contents, props changed) vendor/lld/dist/test/ELF/common.s (contents, props changed) vendor/lld/dist/test/ELF/default-output.s (contents, props changed) vendor/lld/dist/test/ELF/discard-locals.s (contents, props changed) vendor/lld/dist/test/ELF/discard-merge-locals.s (contents, props changed) vendor/lld/dist/test/ELF/discard-merge-unnamed.s (contents, props changed) vendor/lld/dist/test/ELF/discard-none.s (contents, props changed) vendor/lld/dist/test/ELF/dt_flags.s (contents, props changed) vendor/lld/dist/test/ELF/duplicate-internal.s (contents, props changed) vendor/lld/dist/test/ELF/dynamic-reloc-index.s (contents, props changed) vendor/lld/dist/test/ELF/dynamic-reloc-weak.s (contents, props changed) vendor/lld/dist/test/ELF/dynamic-reloc.s (contents, props changed) vendor/lld/dist/test/ELF/eh-align-cie.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-merge.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-plt.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-rel.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-type.test vendor/lld/dist/test/ELF/ehframe-relocation.s (contents, props changed) vendor/lld/dist/test/ELF/empty-archive.s (contents, props changed) vendor/lld/dist/test/ELF/emulation.s (contents, props changed) vendor/lld/dist/test/ELF/end-preserve.s (contents, props changed) vendor/lld/dist/test/ELF/end-update.s (contents, props changed) vendor/lld/dist/test/ELF/end.s (contents, props changed) vendor/lld/dist/test/ELF/entry.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-eh.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-print.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections.s (contents, props changed) vendor/lld/dist/test/ELF/global_offset_table.s (contents, props changed) vendor/lld/dist/test/ELF/gnu-hash-table.s (contents, props changed) vendor/lld/dist/test/ELF/gnu-ifunc-i386.s (contents, props changed) vendor/lld/dist/test/ELF/gnu-ifunc-nosym-i386.s (contents, props changed) vendor/lld/dist/test/ELF/gnu-ifunc-nosym.s (contents, props changed) vendor/lld/dist/test/ELF/gnu-ifunc.s (contents, props changed) vendor/lld/dist/test/ELF/gnu-unique.s (contents, props changed) vendor/lld/dist/test/ELF/gnustack.s (contents, props changed) vendor/lld/dist/test/ELF/got-aarch64.s (contents, props changed) vendor/lld/dist/test/ELF/got-i386.s (contents, props changed) vendor/lld/dist/test/ELF/got.s (contents, props changed) vendor/lld/dist/test/ELF/incompatible-ar-first.s (contents, props changed) vendor/lld/dist/test/ELF/incompatible.s (contents, props changed) vendor/lld/dist/test/ELF/init-fini.s (contents, props changed) vendor/lld/dist/test/ELF/invalid-cie-length.s (contents, props changed) vendor/lld/dist/test/ELF/invalid-cie-length2.s (contents, props changed) vendor/lld/dist/test/ELF/invalid-cie-length3.s (contents, props changed) vendor/lld/dist/test/ELF/invalid-cie-length4.s (contents, props changed) vendor/lld/dist/test/ELF/invalid-cie-length5.s (contents, props changed) vendor/lld/dist/test/ELF/invalid-cie-reference.s (contents, props changed) vendor/lld/dist/test/ELF/invalid-elf.test vendor/lld/dist/test/ELF/invalid-fde-rel.s (contents, props changed) vendor/lld/dist/test/ELF/invalid-relocations.test vendor/lld/dist/test/ELF/libsearch.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-ouputformat.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-outputarch.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-sections.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript2.s (contents, props changed) vendor/lld/dist/test/ELF/lit.local.cfg vendor/lld/dist/test/ELF/local-dynamic.s (contents, props changed) vendor/lld/dist/test/ELF/local-got-shared.s (contents, props changed) vendor/lld/dist/test/ELF/local-got.s (contents, props changed) vendor/lld/dist/test/ELF/local.s (contents, props changed) vendor/lld/dist/test/ELF/many-sections.s (contents, props changed) vendor/lld/dist/test/ELF/merge-invalid-size.s (contents, props changed) vendor/lld/dist/test/ELF/merge-shared.s (contents, props changed) vendor/lld/dist/test/ELF/merge-string-align.s (contents, props changed) vendor/lld/dist/test/ELF/merge-string-error.s (contents, props changed) vendor/lld/dist/test/ELF/merge-string-no-null.s (contents, props changed) vendor/lld/dist/test/ELF/merge-string.s (contents, props changed) vendor/lld/dist/test/ELF/merge-sym.s (contents, props changed) vendor/lld/dist/test/ELF/merge.s (contents, props changed) vendor/lld/dist/test/ELF/mips-call16.s (contents, props changed) vendor/lld/dist/test/ELF/mips-dynamic.s (contents, props changed) vendor/lld/dist/test/ELF/mips-dynsym-sort.s (contents, props changed) vendor/lld/dist/test/ELF/mips-elf-flags.s (contents, props changed) vendor/lld/dist/test/ELF/mips-gnu-hash.s (contents, props changed) vendor/lld/dist/test/ELF/mips-got-relocs.s (contents, props changed) vendor/lld/dist/test/ELF/mips-gprel32-relocs.s (contents, props changed) vendor/lld/dist/test/ELF/mips-hilo-gp-disp.s (contents, props changed) vendor/lld/dist/test/ELF/mips-hilo-hi-only.s (contents, props changed) vendor/lld/dist/test/ELF/mips-hilo.s (contents, props changed) vendor/lld/dist/test/ELF/mips-jalr.test vendor/lld/dist/test/ELF/mips-pc-relocs.s (contents, props changed) vendor/lld/dist/test/ELF/mips-reginfo.s (contents, props changed) vendor/lld/dist/test/ELF/mips-relocs.s (contents, props changed) vendor/lld/dist/test/ELF/new-dtags.test vendor/lld/dist/test/ELF/no-inhibit-exec.s (contents, props changed) vendor/lld/dist/test/ELF/no-obj.s (contents, props changed) vendor/lld/dist/test/ELF/no-symtab.s (contents, props changed) vendor/lld/dist/test/ELF/no-undefined.s (contents, props changed) vendor/lld/dist/test/ELF/output-section.s (contents, props changed) vendor/lld/dist/test/ELF/plt-aarch64.s (contents, props changed) vendor/lld/dist/test/ELF/plt-i686.s (contents, props changed) vendor/lld/dist/test/ELF/plt.s (contents, props changed) vendor/lld/dist/test/ELF/ppc64-addr16-error.s (contents, props changed) vendor/lld/dist/test/ELF/ppc64-rel-calls.s (contents, props changed) vendor/lld/dist/test/ELF/ppc64-relocs.s (contents, props changed) vendor/lld/dist/test/ELF/ppc64-shared-rel-toc.s (contents, props changed) vendor/lld/dist/test/ELF/ppc64-toc-restore.s (contents, props changed) vendor/lld/dist/test/ELF/ppc64-weak-undef-call-shared.s (contents, props changed) vendor/lld/dist/test/ELF/ppc64-weak-undef-call.s (contents, props changed) vendor/lld/dist/test/ELF/pre_init_fini_array.s (contents, props changed) vendor/lld/dist/test/ELF/pre_init_fini_array_missing.s (contents, props changed) vendor/lld/dist/test/ELF/progname.s (contents, props changed) vendor/lld/dist/test/ELF/program-header-layout.s (contents, props changed) vendor/lld/dist/test/ELF/relative-dynamic-reloc-ppc64.s (contents, props changed) vendor/lld/dist/test/ELF/relative-dynamic-reloc.s (contents, props changed) vendor/lld/dist/test/ELF/relocatable.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-absolute.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-common.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-copy-align.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-copy-i686.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-copy.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-i686.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-in-merge.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-local.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-past-merge-end.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-size-shared.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-size.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-undefined-weak.s (contents, props changed) vendor/lld/dist/test/ELF/relocation.s (contents, props changed) vendor/lld/dist/test/ELF/relro.s (contents, props changed) vendor/lld/dist/test/ELF/resolution.s (contents, props changed) vendor/lld/dist/test/ELF/section-align-0.test vendor/lld/dist/test/ELF/section-layout.s (contents, props changed) vendor/lld/dist/test/ELF/section-name.s (contents, props changed) vendor/lld/dist/test/ELF/section-symbol.s (contents, props changed) vendor/lld/dist/test/ELF/shared-be.s (contents, props changed) vendor/lld/dist/test/ELF/shared.s (contents, props changed) vendor/lld/dist/test/ELF/soname.s (contents, props changed) vendor/lld/dist/test/ELF/soname2.s (contents, props changed) vendor/lld/dist/test/ELF/startstop-shared.s (contents, props changed) vendor/lld/dist/test/ELF/startstop.s (contents, props changed) vendor/lld/dist/test/ELF/string-table.s (contents, props changed) vendor/lld/dist/test/ELF/strip-all.s (contents, props changed) vendor/lld/dist/test/ELF/symbols.s (contents, props changed) vendor/lld/dist/test/ELF/sysroot.s (contents, props changed) vendor/lld/dist/test/ELF/tls-align.s (contents, props changed) vendor/lld/dist/test/ELF/tls-dynamic-i686.s (contents, props changed) vendor/lld/dist/test/ELF/tls-dynamic.s (contents, props changed) vendor/lld/dist/test/ELF/tls-error.s (contents, props changed) vendor/lld/dist/test/ELF/tls-got.s (contents, props changed) vendor/lld/dist/test/ELF/tls-i686.s (contents, props changed) vendor/lld/dist/test/ELF/tls-mismatch.s (contents, props changed) vendor/lld/dist/test/ELF/tls-opt-gdie.s (contents, props changed) vendor/lld/dist/test/ELF/tls-opt-gdiele-i686.s (contents, props changed) vendor/lld/dist/test/ELF/tls-opt-i686.s (contents, props changed) vendor/lld/dist/test/ELF/tls-opt-iele-i686-nopic.s (contents, props changed) vendor/lld/dist/test/ELF/tls-opt-local.s (contents, props changed) vendor/lld/dist/test/ELF/tls-opt.s (contents, props changed) vendor/lld/dist/test/ELF/tls-static.s (contents, props changed) vendor/lld/dist/test/ELF/tls.s (contents, props changed) vendor/lld/dist/test/ELF/undef-start.s (contents, props changed) vendor/lld/dist/test/ELF/undef.s (contents, props changed) vendor/lld/dist/test/ELF/undefined-opt.s (contents, props changed) vendor/lld/dist/test/ELF/valid-cie-length-dw64.s (contents, props changed) vendor/lld/dist/test/ELF/visibility.s (contents, props changed) vendor/lld/dist/test/ELF/whole-archive.s (contents, props changed) vendor/lld/dist/test/ELF/writable-merge.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-reloc-32-error.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-reloc-32S-error.s (contents, props changed) vendor/lld/dist/test/LinkerScript/phdrs-sections.test vendor/lld/dist/test/core/Inputs/ vendor/lld/dist/test/core/Inputs/archive-basic.objtxt vendor/lld/dist/test/core/Inputs/archive-chain.objtxt vendor/lld/dist/test/core/Inputs/archive-chain2.objtxt vendor/lld/dist/test/core/Inputs/archive-tentdef-search.objtxt vendor/lld/dist/test/core/Inputs/associates.objtxt vendor/lld/dist/test/core/Inputs/auto-hide-coalesce.objtxt vendor/lld/dist/test/core/Inputs/code-model-attributes.objtxt vendor/lld/dist/test/core/Inputs/code-model-attributes2.objtxt vendor/lld/dist/test/core/Inputs/code-model-attributes3.objtxt vendor/lld/dist/test/core/Inputs/code-model-attributes4.objtxt vendor/lld/dist/test/core/Inputs/code-model-attributes5.objtxt vendor/lld/dist/test/core/Inputs/constants-coalesce.objtxt vendor/lld/dist/test/core/Inputs/constants-coalesce2.objtxt vendor/lld/dist/test/core/Inputs/cstring-coalesce.objtxt vendor/lld/dist/test/core/Inputs/cstring-coalesce2.objtxt vendor/lld/dist/test/core/Inputs/custom-section-coalesce.objtxt vendor/lld/dist/test/core/Inputs/custom-section-coalesce2.objtxt vendor/lld/dist/test/core/Inputs/dead-strip-attributes.objtxt vendor/lld/dist/test/core/Inputs/dead-strip-attributes2.objtxt vendor/lld/dist/test/core/Inputs/dead-strip-basic.objtxt vendor/lld/dist/test/core/Inputs/dead-strip-basic2.objtxt vendor/lld/dist/test/core/Inputs/dead-strip-globals.objtxt vendor/lld/dist/test/core/Inputs/dead-strip-globals2.objtxt vendor/lld/dist/test/core/Inputs/error-duplicate-absolutes.objtxt vendor/lld/dist/test/core/Inputs/gnulinkonce-rearrange-resolve.objtxt vendor/lld/dist/test/core/Inputs/gnulinkonce-remaining-undef.objtxt vendor/lld/dist/test/core/Inputs/gnulinkonce-remaining-undef2.objtxt vendor/lld/dist/test/core/Inputs/gnulinkonce-resolve.objtxt vendor/lld/dist/test/core/Inputs/gnulinkonce-simple.objtxt vendor/lld/dist/test/core/Inputs/inline-coalesce.objtxt vendor/lld/dist/test/core/Inputs/inline-coalesce2.objtxt vendor/lld/dist/test/core/Inputs/multiple-def-error.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-deadstrip.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-gnulinkonce-error.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-rearrange-resolve.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-remaining-undef.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-remaining-undef2.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-resolve.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-simple.objtxt vendor/lld/dist/test/core/Inputs/shared-library-coalesce.objtxt vendor/lld/dist/test/core/Inputs/tent-merge.objtxt vendor/lld/dist/test/core/Inputs/undef-coalesce-error.objtxt vendor/lld/dist/test/core/Inputs/undef-coalesce-error2.objtxt vendor/lld/dist/test/core/Inputs/undef-coalesce.objtxt vendor/lld/dist/test/core/Inputs/undef-coalesce2.objtxt vendor/lld/dist/test/core/Inputs/undef-fallback.objtxt vendor/lld/dist/test/core/Inputs/undef-weak-coalesce.objtxt vendor/lld/dist/test/core/Inputs/weak-coalesce.objtxt vendor/lld/dist/test/core/Inputs/weak-coalesce2.objtxt vendor/lld/dist/test/darwin/Inputs/ vendor/lld/dist/test/darwin/Inputs/native-and-mach-o.objtxt vendor/lld/dist/test/darwin/Inputs/native-and-mach-o2.objtxt vendor/lld/dist/test/mach-o/Inputs/PIE.yaml vendor/lld/dist/test/mach-o/Inputs/arm-interworking.yaml vendor/lld/dist/test/mach-o/Inputs/arm-shims.yaml vendor/lld/dist/test/mach-o/Inputs/cstring-sections.yaml vendor/lld/dist/test/mach-o/Inputs/got-order.yaml vendor/lld/dist/test/mach-o/Inputs/got-order2.yaml vendor/lld/dist/test/mach-o/Inputs/hello-world-arm64.yaml vendor/lld/dist/test/mach-o/Inputs/hello-world-armv6.yaml vendor/lld/dist/test/mach-o/Inputs/hello-world-armv7.yaml vendor/lld/dist/test/mach-o/Inputs/hello-world-x86.yaml vendor/lld/dist/test/mach-o/Inputs/hello-world-x86_64.yaml vendor/lld/dist/test/mach-o/Inputs/hw.raw_bytes vendor/lld/dist/test/mach-o/Inputs/interposing-section.yaml vendor/lld/dist/test/mach-o/Inputs/lazy-bind-x86_64-2.yaml vendor/lld/dist/test/mach-o/Inputs/lazy-bind-x86_64-3.yaml vendor/lld/dist/test/mach-o/Inputs/lazy-bind-x86_64.yaml vendor/lld/dist/test/mach-o/Inputs/linker-as-ld.yaml vendor/lld/dist/test/mach-o/Inputs/re-exported-dylib-ordinal.yaml vendor/lld/dist/test/mach-o/Inputs/re-exported-dylib-ordinal2.yaml vendor/lld/dist/test/mach-o/Inputs/re-exported-dylib-ordinal3.yaml vendor/lld/dist/test/mach-o/Inputs/unwind-info-simple-arm64.yaml vendor/lld/dist/test/mach-o/Inputs/use-simple-dylib.yaml vendor/lld/dist/test/mach-o/Inputs/write-final-sections.yaml vendor/lld/dist/test/mach-o/Inputs/wrong-arch-error.yaml vendor/lld/dist/test/mach-o/arm64-reloc-negDelta32-fixup.yaml vendor/lld/dist/test/mach-o/arm64-relocs-errors-delta64-offset.yaml vendor/lld/dist/test/mach-o/executable-exports.yaml vendor/lld/dist/test/mach-o/flat_namespace_undef_error.yaml vendor/lld/dist/test/mach-o/flat_namespace_undef_suppress.yaml vendor/lld/dist/test/mach-o/gcc_except_tab-got-arm64.yaml vendor/lld/dist/test/mach-o/parse-eh-frame-relocs-x86_64.yaml vendor/lld/dist/test/mach-o/parse-tlv-relocs-x86-64.yaml vendor/lld/dist/test/mach-o/run-tlv-pass-x86-64.yaml vendor/lld/dist/test/mach-o/sectcreate.yaml vendor/lld/dist/test/mach-o/stack-size.yaml vendor/lld/dist/test/mach-o/twolevel_namespace_undef_dynamic_lookup.yaml vendor/lld/dist/test/mach-o/twolevel_namespace_undef_warning_suppress.yaml vendor/lld/dist/test/old-elf/ vendor/lld/dist/test/old-elf/AArch64/ vendor/lld/dist/test/old-elf/AArch64/Inputs/ vendor/lld/dist/test/old-elf/AArch64/Inputs/fn.c (contents, props changed) vendor/lld/dist/test/old-elf/AArch64/Inputs/fn.o (contents, props changed) vendor/lld/dist/test/old-elf/AArch64/Inputs/general-dyn-tls-0.yaml vendor/lld/dist/test/old-elf/AArch64/Inputs/initfini-option.c (contents, props changed) vendor/lld/dist/test/old-elf/AArch64/Inputs/initfini-option.o (contents, props changed) vendor/lld/dist/test/old-elf/AArch64/Inputs/initfini.c (contents, props changed) vendor/lld/dist/test/old-elf/AArch64/Inputs/initfini.o (contents, props changed) vendor/lld/dist/test/old-elf/AArch64/Inputs/initial-exec-tls-1.yaml vendor/lld/dist/test/old-elf/AArch64/Inputs/main.c (contents, props changed) vendor/lld/dist/test/old-elf/AArch64/Inputs/main.o (contents, props changed) vendor/lld/dist/test/old-elf/AArch64/Inputs/no-interp-section.c (contents, props changed) vendor/lld/dist/test/old-elf/AArch64/Inputs/no-interp-section.o (contents, props changed) vendor/lld/dist/test/old-elf/AArch64/Inputs/zerosizedsection.o (contents, props changed) vendor/lld/dist/test/old-elf/AArch64/Inputs/zerosizedsection.s (contents, props changed) vendor/lld/dist/test/old-elf/AArch64/defsym.test vendor/lld/dist/test/old-elf/AArch64/dontignorezerosize-sections.test vendor/lld/dist/test/old-elf/AArch64/dynamicvars.test vendor/lld/dist/test/old-elf/AArch64/dynlib-nointerp-section.test vendor/lld/dist/test/old-elf/AArch64/general-dyn-tls-0.test vendor/lld/dist/test/old-elf/AArch64/initfini.test vendor/lld/dist/test/old-elf/AArch64/initial-exec-tls-0.test vendor/lld/dist/test/old-elf/AArch64/local-tls.test vendor/lld/dist/test/old-elf/AArch64/rel-abs16-overflow.test vendor/lld/dist/test/old-elf/AArch64/rel-abs16.test vendor/lld/dist/test/old-elf/AArch64/rel-abs32-overflow.test vendor/lld/dist/test/old-elf/AArch64/rel-abs32.test vendor/lld/dist/test/old-elf/AArch64/rel-abs64.test vendor/lld/dist/test/old-elf/AArch64/rel-adr_prel_lo21-overflow.test vendor/lld/dist/test/old-elf/AArch64/rel-adr_prel_lo21.test vendor/lld/dist/test/old-elf/AArch64/rel-adr_prel_pg_hi21-overflow.test vendor/lld/dist/test/old-elf/AArch64/rel-adr_prel_pg_hi21.test vendor/lld/dist/test/old-elf/AArch64/rel-bad.test vendor/lld/dist/test/old-elf/AArch64/rel-prel16-overflow.test vendor/lld/dist/test/old-elf/AArch64/rel-prel16.test vendor/lld/dist/test/old-elf/AArch64/rel-prel32-overflow.test vendor/lld/dist/test/old-elf/AArch64/rel-prel32.test vendor/lld/dist/test/old-elf/AArch64/rel-prel64.test vendor/lld/dist/test/old-elf/AMDGPU/ vendor/lld/dist/test/old-elf/AMDGPU/hsa.test vendor/lld/dist/test/old-elf/ARM/ vendor/lld/dist/test/old-elf/ARM/Inputs/ vendor/lld/dist/test/old-elf/ARM/Inputs/fn.c (contents, props changed) vendor/lld/dist/test/old-elf/ARM/Inputs/libfn.so (contents, props changed) vendor/lld/dist/test/old-elf/ARM/Inputs/libobj.so (contents, props changed) vendor/lld/dist/test/old-elf/ARM/Inputs/obj.c (contents, props changed) vendor/lld/dist/test/old-elf/ARM/arm-symbols.test vendor/lld/dist/test/old-elf/ARM/defsym.test vendor/lld/dist/test/old-elf/ARM/dynamic-symbols.test vendor/lld/dist/test/old-elf/ARM/entry-point.test vendor/lld/dist/test/old-elf/ARM/exidx.test vendor/lld/dist/test/old-elf/ARM/header-flags.test vendor/lld/dist/test/old-elf/ARM/mapping-code-model.test vendor/lld/dist/test/old-elf/ARM/mapping-symbols.test vendor/lld/dist/test/old-elf/ARM/missing-symbol.test vendor/lld/dist/test/old-elf/ARM/plt-dynamic.test vendor/lld/dist/test/old-elf/ARM/plt-ifunc-interwork.test vendor/lld/dist/test/old-elf/ARM/plt-ifunc-mapping.test vendor/lld/dist/test/old-elf/ARM/rel-abs32.test vendor/lld/dist/test/old-elf/ARM/rel-arm-call.test vendor/lld/dist/test/old-elf/ARM/rel-arm-jump24-veneer-b.test vendor/lld/dist/test/old-elf/ARM/rel-arm-jump24-veneer-bl.test vendor/lld/dist/test/old-elf/ARM/rel-arm-jump24.test vendor/lld/dist/test/old-elf/ARM/rel-arm-mov.test vendor/lld/dist/test/old-elf/ARM/rel-arm-prel31.test vendor/lld/dist/test/old-elf/ARM/rel-arm-target1.test vendor/lld/dist/test/old-elf/ARM/rel-arm-thm-interwork.test vendor/lld/dist/test/old-elf/ARM/rel-base-prel.test vendor/lld/dist/test/old-elf/ARM/rel-copy.test vendor/lld/dist/test/old-elf/ARM/rel-glob-dat.test vendor/lld/dist/test/old-elf/ARM/rel-got-brel.test vendor/lld/dist/test/old-elf/ARM/rel-group-relocs.test vendor/lld/dist/test/old-elf/ARM/rel-ifunc.test vendor/lld/dist/test/old-elf/ARM/rel-jump-slot.test vendor/lld/dist/test/old-elf/ARM/rel-rel32.test vendor/lld/dist/test/old-elf/ARM/rel-thm-call.test vendor/lld/dist/test/old-elf/ARM/rel-thm-jump11.test vendor/lld/dist/test/old-elf/ARM/rel-thm-jump24-veneer.test vendor/lld/dist/test/old-elf/ARM/rel-thm-jump24.test vendor/lld/dist/test/old-elf/ARM/rel-thm-mov.test vendor/lld/dist/test/old-elf/ARM/rel-tls-ie32.test vendor/lld/dist/test/old-elf/ARM/rel-tls-le32.test vendor/lld/dist/test/old-elf/ARM/rel-v4bx.test vendor/lld/dist/test/old-elf/ARM/thm-symbols.test vendor/lld/dist/test/old-elf/ARM/two-got-for-symbol.test vendor/lld/dist/test/old-elf/ARM/undef-lazy-symbol.test vendor/lld/dist/test/old-elf/ARM/veneer-mapping.test vendor/lld/dist/test/old-elf/ARM/weak-branch.test vendor/lld/dist/test/old-elf/Hexagon/ vendor/lld/dist/test/old-elf/Hexagon/Inputs/ vendor/lld/dist/test/old-elf/Hexagon/Inputs/dynobj-data.c (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/Inputs/dynobj-data.o (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/Inputs/dynobj.c (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/Inputs/dynobj.o (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/Inputs/got-plt-order.c (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/Inputs/got-plt-order.o (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/Inputs/libMaxAlignment.a (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/Inputs/sda-base.o (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/Inputs/sdata1.c (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/Inputs/sdata1.o (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/Inputs/sdata2.c (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/Inputs/sdata2.o (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/Inputs/use-shared.hexagon (contents, props changed) vendor/lld/dist/test/old-elf/Hexagon/dynlib-data.test vendor/lld/dist/test/old-elf/Hexagon/dynlib-gotoff.test vendor/lld/dist/test/old-elf/Hexagon/dynlib-hash.test vendor/lld/dist/test/old-elf/Hexagon/dynlib-rela.test vendor/lld/dist/test/old-elf/Hexagon/dynlib-syms.test vendor/lld/dist/test/old-elf/Hexagon/dynlib.test vendor/lld/dist/test/old-elf/Hexagon/hexagon-got-plt-order.test vendor/lld/dist/test/old-elf/Hexagon/hexagon-plt-setup.test vendor/lld/dist/test/old-elf/Hexagon/maxalignment.test vendor/lld/dist/test/old-elf/Hexagon/rela-order.test vendor/lld/dist/test/old-elf/Hexagon/sda-base.test vendor/lld/dist/test/old-elf/Hexagon/zerofillquick-sdata.test vendor/lld/dist/test/old-elf/Inputs/ vendor/lld/dist/test/old-elf/Inputs/abs-test.i386 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/allowduplicates.objtxt vendor/lld/dist/test/old-elf/Inputs/bar.o.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/branch-test.hexagon (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/branch-test.ppc (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/consecutive-weak-defs.o.yaml vendor/lld/dist/test/old-elf/Inputs/constants-merge.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/constdata.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/foo.o.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/globalconst.c (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/globalconst.o.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/gotpcrel.S (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/gotpcrel.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/group-cmd-search-1.ls vendor/lld/dist/test/old-elf/Inputs/group-cmd-search-2.ls vendor/lld/dist/test/old-elf/Inputs/group-cmd-search-3.ls vendor/lld/dist/test/old-elf/Inputs/ifunc.S (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/ifunc.cpp (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/ifunc.cpp.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/ifunc.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/libfnarchive.a (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/libifunc.x86-64.so (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/libundef.so (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/libweaksym.so (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/main-with-global-def.o.yaml vendor/lld/dist/test/old-elf/Inputs/mainobj.x86_64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/no-unique-section-names.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/object-test.elf-hexagon (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/object-test.elf-i386 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/phdr.i386 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/quickdata-sort-test.o.elf-hexagon (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/quickdata-sortcommon-test.o.elf-hexagon (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/quickdata-test.elf-hexagon (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/reloc-test.elf-i386 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/reloc-xb.x86 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/reloc-xt.x86 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/relocs-dynamic.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/relocs.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/responsefile vendor/lld/dist/test/old-elf/Inputs/rodata-test.hexagon (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/rodata-test.i386 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/rodata.c (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/rodata.o (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/section-test.i386 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/shared.c (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/shared.so-x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/shndx.o-x86_64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/stripped-empty.x86_64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/target-test.hexagon (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/target-test.ppc (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/tls-tbss-size.yaml vendor/lld/dist/test/old-elf/Inputs/tls.S (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/tls.c (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/tls.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/tlsAddr.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/tlsaddr.c (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/undef-from-main-so.c (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/undef-from-main.c (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/undef-pc32.o (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/undef.o (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/undef2-so.o.yaml vendor/lld/dist/test/old-elf/Inputs/use-shared-32s.c (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/use-shared-32s.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/use-shared.c (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/use-shared.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/weaksym.o (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/writersyms.o (contents, props changed) vendor/lld/dist/test/old-elf/Inputs/x86-64-relocs.S (contents, props changed) vendor/lld/dist/test/old-elf/Mips/ vendor/lld/dist/test/old-elf/Mips/abi-flags-01.test vendor/lld/dist/test/old-elf/Mips/abi-flags-02.test vendor/lld/dist/test/old-elf/Mips/abi-flags-03.test vendor/lld/dist/test/old-elf/Mips/abi-flags-04.test vendor/lld/dist/test/old-elf/Mips/abi-flags-05.test vendor/lld/dist/test/old-elf/Mips/abi-flags-06.test vendor/lld/dist/test/old-elf/Mips/abi-flags-07.test vendor/lld/dist/test/old-elf/Mips/abi-flags-08.test vendor/lld/dist/test/old-elf/Mips/abi-flags-09.test vendor/lld/dist/test/old-elf/Mips/abi-flags-10.test vendor/lld/dist/test/old-elf/Mips/abi-flags-11.test vendor/lld/dist/test/old-elf/Mips/base-address-64.test vendor/lld/dist/test/old-elf/Mips/base-address.test vendor/lld/dist/test/old-elf/Mips/ctors-order.test vendor/lld/dist/test/old-elf/Mips/driver-hash-style.test vendor/lld/dist/test/old-elf/Mips/dt-textrel-64.test vendor/lld/dist/test/old-elf/Mips/dt-textrel.test vendor/lld/dist/test/old-elf/Mips/dynamic-linking.test vendor/lld/dist/test/old-elf/Mips/dynamic-sym.test vendor/lld/dist/test/old-elf/Mips/dynlib-dynamic.test vendor/lld/dist/test/old-elf/Mips/dynlib-dynsym-micro.test vendor/lld/dist/test/old-elf/Mips/dynlib-dynsym.test vendor/lld/dist/test/old-elf/Mips/dynlib-fileheader-64.test vendor/lld/dist/test/old-elf/Mips/dynlib-fileheader-micro-64.test vendor/lld/dist/test/old-elf/Mips/dynlib-fileheader-micro.test vendor/lld/dist/test/old-elf/Mips/dynlib-fileheader.test vendor/lld/dist/test/old-elf/Mips/dynsym-table-1.test vendor/lld/dist/test/old-elf/Mips/dynsym-table-2.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-1-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-1.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-10.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-11.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-12.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-2-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-2.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-3-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-3.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-4-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-4.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-5-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-5.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-6-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-6.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-7-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-7.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-8.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-9.test vendor/lld/dist/test/old-elf/Mips/entry-name.test vendor/lld/dist/test/old-elf/Mips/exe-dynamic.test vendor/lld/dist/test/old-elf/Mips/exe-dynsym-micro.test vendor/lld/dist/test/old-elf/Mips/exe-dynsym.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-02.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-03.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-64.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-be-64.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-be.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-micro-64.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-micro.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-n32.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader.test vendor/lld/dist/test/old-elf/Mips/exe-got-micro.test vendor/lld/dist/test/old-elf/Mips/exe-got.test vendor/lld/dist/test/old-elf/Mips/got-page-32-micro.test vendor/lld/dist/test/old-elf/Mips/got-page-32.test vendor/lld/dist/test/old-elf/Mips/got-page-64-micro.test vendor/lld/dist/test/old-elf/Mips/got-page-64.test vendor/lld/dist/test/old-elf/Mips/got16-2.test vendor/lld/dist/test/old-elf/Mips/got16-micro.test vendor/lld/dist/test/old-elf/Mips/got16.test vendor/lld/dist/test/old-elf/Mips/gotsym.test vendor/lld/dist/test/old-elf/Mips/gp-sym-1-micro.test vendor/lld/dist/test/old-elf/Mips/gp-sym-1.test vendor/lld/dist/test/old-elf/Mips/gp-sym-2.test vendor/lld/dist/test/old-elf/Mips/hilo16-1.test vendor/lld/dist/test/old-elf/Mips/hilo16-2.test vendor/lld/dist/test/old-elf/Mips/hilo16-3-overflow.test vendor/lld/dist/test/old-elf/Mips/hilo16-3.test vendor/lld/dist/test/old-elf/Mips/hilo16-4.test vendor/lld/dist/test/old-elf/Mips/hilo16-5.test vendor/lld/dist/test/old-elf/Mips/hilo16-8-micro.test vendor/lld/dist/test/old-elf/Mips/hilo16-9-micro.test vendor/lld/dist/test/old-elf/Mips/initfini-micro.test vendor/lld/dist/test/old-elf/Mips/interpreter-64.test vendor/lld/dist/test/old-elf/Mips/interpreter-n32.test vendor/lld/dist/test/old-elf/Mips/interpreter.test vendor/lld/dist/test/old-elf/Mips/invalid-reginfo.test vendor/lld/dist/test/old-elf/Mips/jalx-align-err.test vendor/lld/dist/test/old-elf/Mips/jalx-jalr.test vendor/lld/dist/test/old-elf/Mips/jalx.test vendor/lld/dist/test/old-elf/Mips/jump-fix-err.test vendor/lld/dist/test/old-elf/Mips/la25-stub-be.test vendor/lld/dist/test/old-elf/Mips/la25-stub-micro-be.test vendor/lld/dist/test/old-elf/Mips/la25-stub-micro.test vendor/lld/dist/test/old-elf/Mips/la25-stub-npic-01.test vendor/lld/dist/test/old-elf/Mips/la25-stub-npic-02.test vendor/lld/dist/test/old-elf/Mips/la25-stub-npic-shared.test vendor/lld/dist/test/old-elf/Mips/la25-stub-pic.test vendor/lld/dist/test/old-elf/Mips/la25-stub.test vendor/lld/dist/test/old-elf/Mips/mips-options-01.test vendor/lld/dist/test/old-elf/Mips/mips-options-02.test vendor/lld/dist/test/old-elf/Mips/mips-options-03.test vendor/lld/dist/test/old-elf/Mips/mips-options-04.test vendor/lld/dist/test/old-elf/Mips/mips-options-05.test vendor/lld/dist/test/old-elf/Mips/mips-options-gp0.test vendor/lld/dist/test/old-elf/Mips/n32-rela-chain.test vendor/lld/dist/test/old-elf/Mips/n64-rel-chain.test vendor/lld/dist/test/old-elf/Mips/n64-rel-shift.test vendor/lld/dist/test/old-elf/Mips/opt-emulation.test vendor/lld/dist/test/old-elf/Mips/pc23-range.test vendor/lld/dist/test/old-elf/Mips/plt-entry-mixed-1.test vendor/lld/dist/test/old-elf/Mips/plt-entry-mixed-2.test vendor/lld/dist/test/old-elf/Mips/plt-entry-mixed-3.test vendor/lld/dist/test/old-elf/Mips/plt-entry-mixed-4.test vendor/lld/dist/test/old-elf/Mips/plt-entry-r6-be.test vendor/lld/dist/test/old-elf/Mips/plt-entry-r6.test vendor/lld/dist/test/old-elf/Mips/plt-header-be.test vendor/lld/dist/test/old-elf/Mips/plt-header-micro-be.test vendor/lld/dist/test/old-elf/Mips/plt-header-micro.test vendor/lld/dist/test/old-elf/Mips/plt-header-mixed.test vendor/lld/dist/test/old-elf/Mips/plt-header.test vendor/lld/dist/test/old-elf/Mips/r26-1-micro.test vendor/lld/dist/test/old-elf/Mips/r26-1.test vendor/lld/dist/test/old-elf/Mips/r26-2-micro.test vendor/lld/dist/test/old-elf/Mips/r26-2.test vendor/lld/dist/test/old-elf/Mips/reginfo-01.test vendor/lld/dist/test/old-elf/Mips/reginfo-02.test vendor/lld/dist/test/old-elf/Mips/reginfo-03.test vendor/lld/dist/test/old-elf/Mips/reginfo-04.test vendor/lld/dist/test/old-elf/Mips/reginfo-05.test vendor/lld/dist/test/old-elf/Mips/rel-16-overflow.test vendor/lld/dist/test/old-elf/Mips/rel-16.test vendor/lld/dist/test/old-elf/Mips/rel-32-be.test vendor/lld/dist/test/old-elf/Mips/rel-32.test vendor/lld/dist/test/old-elf/Mips/rel-64.test vendor/lld/dist/test/old-elf/Mips/rel-call-hilo-01.test vendor/lld/dist/test/old-elf/Mips/rel-call-hilo-micro.test vendor/lld/dist/test/old-elf/Mips/rel-copy-micro.test vendor/lld/dist/test/old-elf/Mips/rel-copy-pc.test vendor/lld/dist/test/old-elf/Mips/rel-copy.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-01-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-01.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-02.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-03-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-03.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-04-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-04.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-05-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-05.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-06-64.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-06.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-07-64.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-07.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-08-64.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-08-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-08.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-09-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-09.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-10-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-10.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-11.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-12.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-13.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-14.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-15.test vendor/lld/dist/test/old-elf/Mips/rel-eh-01.test vendor/lld/dist/test/old-elf/Mips/rel-eh-02.test vendor/lld/dist/test/old-elf/Mips/rel-eh-03.test vendor/lld/dist/test/old-elf/Mips/rel-got-hilo-01.test vendor/lld/dist/test/old-elf/Mips/rel-got-hilo-micro.test vendor/lld/dist/test/old-elf/Mips/rel-gprel16-micro-overflow.test vendor/lld/dist/test/old-elf/Mips/rel-gprel16-micro.test vendor/lld/dist/test/old-elf/Mips/rel-gprel16-overflow.test vendor/lld/dist/test/old-elf/Mips/rel-gprel16.test vendor/lld/dist/test/old-elf/Mips/rel-gprel32-64.test vendor/lld/dist/test/old-elf/Mips/rel-gprel32.test vendor/lld/dist/test/old-elf/Mips/rel-gprel7-micro-overflow.test vendor/lld/dist/test/old-elf/Mips/rel-gprel7-micro.test vendor/lld/dist/test/old-elf/Mips/rel-hi0-lo16-micro.test vendor/lld/dist/test/old-elf/Mips/rel-high-01.test vendor/lld/dist/test/old-elf/Mips/rel-high-02.test vendor/lld/dist/test/old-elf/Mips/rel-jalr-01.test vendor/lld/dist/test/old-elf/Mips/rel-jalr-02.test vendor/lld/dist/test/old-elf/Mips/rel-lit-micro.test vendor/lld/dist/test/old-elf/Mips/rel-lit.test vendor/lld/dist/test/old-elf/Mips/rel-pc-hilo.test vendor/lld/dist/test/old-elf/Mips/rel-pc16-align.test vendor/lld/dist/test/old-elf/Mips/rel-pc16-overflow.test vendor/lld/dist/test/old-elf/Mips/rel-pc16.test vendor/lld/dist/test/old-elf/Mips/rel-pc18-s3-align.test vendor/lld/dist/test/old-elf/Mips/rel-pc18-s3-micro.test vendor/lld/dist/test/old-elf/Mips/rel-pc18-s3.test vendor/lld/dist/test/old-elf/Mips/rel-pc19-s2-align.test vendor/lld/dist/test/old-elf/Mips/rel-pc19-s2-micro.test vendor/lld/dist/test/old-elf/Mips/rel-pc19-s2.test vendor/lld/dist/test/old-elf/Mips/rel-pc21-s2-align.test vendor/lld/dist/test/old-elf/Mips/rel-pc21-s2-micro.test vendor/lld/dist/test/old-elf/Mips/rel-pc21-s2-overflow.test vendor/lld/dist/test/old-elf/Mips/rel-pc21-s2.test vendor/lld/dist/test/old-elf/Mips/rel-pc26-s2-align.test vendor/lld/dist/test/old-elf/Mips/rel-pc26-s2-micro.test vendor/lld/dist/test/old-elf/Mips/rel-pc26-s2.test vendor/lld/dist/test/old-elf/Mips/rel-pc32.test vendor/lld/dist/test/old-elf/Mips/rel-pc7-10-16-23.test vendor/lld/dist/test/old-elf/Mips/rel-sub-micro.test vendor/lld/dist/test/old-elf/Mips/rel-sub.test vendor/lld/dist/test/old-elf/Mips/rld_map.test vendor/lld/dist/test/old-elf/Mips/sign-rela.test vendor/lld/dist/test/old-elf/Mips/st-other.test vendor/lld/dist/test/old-elf/Mips/static-01.test vendor/lld/dist/test/old-elf/Mips/tls-1-micro.test vendor/lld/dist/test/old-elf/Mips/tls-1.test vendor/lld/dist/test/old-elf/Mips/tls-2-64-static.test vendor/lld/dist/test/old-elf/Mips/tls-2-64.test vendor/lld/dist/test/old-elf/Mips/tls-2-micro.test vendor/lld/dist/test/old-elf/Mips/tls-2-static.test vendor/lld/dist/test/old-elf/Mips/tls-2.test vendor/lld/dist/test/old-elf/Mips/tls-3-64-static.test vendor/lld/dist/test/old-elf/Mips/tls-3-micro.test vendor/lld/dist/test/old-elf/Mips/tls-3-static.test vendor/lld/dist/test/old-elf/Mips/tls-3.test vendor/lld/dist/test/old-elf/Mips/tls-4-64-static.test vendor/lld/dist/test/old-elf/Mips/tls-4-micro.test vendor/lld/dist/test/old-elf/Mips/tls-4-static.test vendor/lld/dist/test/old-elf/Mips/tls-4.test vendor/lld/dist/test/old-elf/Mips/tls-5-64.test vendor/lld/dist/test/old-elf/Mips/tls-5-micro.test vendor/lld/dist/test/old-elf/Mips/tls-5.test vendor/lld/dist/test/old-elf/Mips/validate-rel-01.test vendor/lld/dist/test/old-elf/Mips/validate-rel-03.test vendor/lld/dist/test/old-elf/X86_64/ vendor/lld/dist/test/old-elf/X86_64/ExampleTarget/ vendor/lld/dist/test/old-elf/X86_64/ExampleTarget/triple.test vendor/lld/dist/test/old-elf/X86_64/Inputs/ vendor/lld/dist/test/old-elf/X86_64/Inputs/constint.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/constint.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/debug0.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/debug0.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/debug1.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/debug1.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/externtls.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/externtls.x86-64 (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/fn.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/fn.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/generaltls-so.o.yaml vendor/lld/dist/test/old-elf/X86_64/Inputs/group/ vendor/lld/dist/test/old-elf/X86_64/Inputs/group/1.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/group/1.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/group/fn.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/group/fn.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/group/fn1.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/group/fn1.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/group/fn2.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/group/fn2.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/group/group.sh (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/group/libfn.a (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/group/libfn.so (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/group/libfn1.a (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/group/libfn2.so (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/initfini-option.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/initfini-option.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/initfini.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/initfini.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/largebss.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/largebss.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/ vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/1.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/1.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/2.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/2.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/3.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/3.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/lib2.a (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/libfn.a (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/libfn.so (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/main.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/main.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/multi-ovrd.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/multi-ovrd.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/multi-weak.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/multi-weak.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/multiweaksyms.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/nmagic.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/nmagic.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/no-interp-section.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/no-interp-section.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/note.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/note.s (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/note_ro_rw.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/note_ro_rw.s (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/ovrd.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/ovrd.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/rodata.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/rodata.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/rodata.s (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/rwint.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/rwint.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/sectionmap.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/sectionmap.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/undefcpp.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/undefcpp.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/weak-zero-sized.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/weak.c (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/weak.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/weak.s (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/zerosizedsection.o (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/Inputs/zerosizedsection.s (contents, props changed) vendor/lld/dist/test/old-elf/X86_64/alignoffset.test vendor/lld/dist/test/old-elf/X86_64/debug.test vendor/lld/dist/test/old-elf/X86_64/defsym.test vendor/lld/dist/test/old-elf/X86_64/demangle.test vendor/lld/dist/test/old-elf/X86_64/dontignorezerosize-sections.test vendor/lld/dist/test/old-elf/X86_64/dynamicvars.test vendor/lld/dist/test/old-elf/X86_64/dynlib-nointerp-section.test vendor/lld/dist/test/old-elf/X86_64/dynlib-search.test vendor/lld/dist/test/old-elf/X86_64/dynsym-weak.test vendor/lld/dist/test/old-elf/X86_64/extern-tls.test vendor/lld/dist/test/old-elf/X86_64/general-dynamic-tls.test vendor/lld/dist/test/old-elf/X86_64/imagebase.test vendor/lld/dist/test/old-elf/X86_64/initfini-order.test vendor/lld/dist/test/old-elf/X86_64/initfini.test vendor/lld/dist/test/old-elf/X86_64/largebss.test vendor/lld/dist/test/old-elf/X86_64/layoutpass-order.test vendor/lld/dist/test/old-elf/X86_64/maxpagesize.test vendor/lld/dist/test/old-elf/X86_64/mergesimilarstrings.test vendor/lld/dist/test/old-elf/X86_64/multi-weak-layout.test vendor/lld/dist/test/old-elf/X86_64/multi-weak-override.test vendor/lld/dist/test/old-elf/X86_64/multi-weak-syms-order.test vendor/lld/dist/test/old-elf/X86_64/nmagic.test vendor/lld/dist/test/old-elf/X86_64/noalignsegments.test vendor/lld/dist/test/old-elf/X86_64/note-sections-ro_plus_rw.test vendor/lld/dist/test/old-elf/X86_64/note-sections.test vendor/lld/dist/test/old-elf/X86_64/omagic.test vendor/lld/dist/test/old-elf/X86_64/outputsegments.test vendor/lld/dist/test/old-elf/X86_64/reloc_r_x86_64_16.test vendor/lld/dist/test/old-elf/X86_64/reloc_r_x86_64_pc16.test vendor/lld/dist/test/old-elf/X86_64/reloc_r_x86_64_pc64.test vendor/lld/dist/test/old-elf/X86_64/rodata.test vendor/lld/dist/test/old-elf/X86_64/sectionchoice.test vendor/lld/dist/test/old-elf/X86_64/sectionmap.test vendor/lld/dist/test/old-elf/X86_64/startGroupEndGroup.test vendor/lld/dist/test/old-elf/X86_64/startGroupEndGroupWithDynlib.test vendor/lld/dist/test/old-elf/X86_64/staticlib-search.test vendor/lld/dist/test/old-elf/X86_64/undef.test vendor/lld/dist/test/old-elf/X86_64/underscore-end.test vendor/lld/dist/test/old-elf/X86_64/weak-override.test vendor/lld/dist/test/old-elf/X86_64/weak-zero-sized.test vendor/lld/dist/test/old-elf/X86_64/weaksym.test vendor/lld/dist/test/old-elf/X86_64/yamlinput.test vendor/lld/dist/test/old-elf/abs-dup.objtxt vendor/lld/dist/test/old-elf/abs.test vendor/lld/dist/test/old-elf/allowduplicates.objtxt vendor/lld/dist/test/old-elf/archive-elf-forceload.test vendor/lld/dist/test/old-elf/archive-elf.test vendor/lld/dist/test/old-elf/as-needed.test vendor/lld/dist/test/old-elf/branch.test vendor/lld/dist/test/old-elf/check.test vendor/lld/dist/test/old-elf/checkrodata.test vendor/lld/dist/test/old-elf/common.test vendor/lld/dist/test/old-elf/consecutive-weak-sym-defs.test vendor/lld/dist/test/old-elf/defsym.objtxt vendor/lld/dist/test/old-elf/discard-all.test vendor/lld/dist/test/old-elf/discard-locals.test vendor/lld/dist/test/old-elf/dynamic-segorder.test vendor/lld/dist/test/old-elf/dynamic-undef.test vendor/lld/dist/test/old-elf/dynamic.test vendor/lld/dist/test/old-elf/eh_frame_hdr.test vendor/lld/dist/test/old-elf/entry.objtxt vendor/lld/dist/test/old-elf/export-dynamic.test vendor/lld/dist/test/old-elf/filenotfound.test vendor/lld/dist/test/old-elf/gnulinkonce/ vendor/lld/dist/test/old-elf/gnulinkonce/gnulinkonce-report-discarded-reference.test vendor/lld/dist/test/old-elf/gnulinkonce/gnulinkonce-report-undef.test vendor/lld/dist/test/old-elf/gnulinkonce/gnulinkonce.test vendor/lld/dist/test/old-elf/gotpcrel.test vendor/lld/dist/test/old-elf/gottpoff.test vendor/lld/dist/test/old-elf/group-cmd-search.test vendor/lld/dist/test/old-elf/hexagon-quickdata-sort.test vendor/lld/dist/test/old-elf/hexagon-quickdata-sortcommon.test vendor/lld/dist/test/old-elf/ifunc.test vendor/lld/dist/test/old-elf/ignore-unknownoption.test vendor/lld/dist/test/old-elf/init_array-order.test vendor/lld/dist/test/old-elf/init_array.test vendor/lld/dist/test/old-elf/initfini-options.test-1.test vendor/lld/dist/test/old-elf/initfini-options.test-2.test vendor/lld/dist/test/old-elf/initfini-options.test-3.test vendor/lld/dist/test/old-elf/librarynotfound.test vendor/lld/dist/test/old-elf/linker-as-ld.test vendor/lld/dist/test/old-elf/linkerscript/ vendor/lld/dist/test/old-elf/linkerscript/Inputs/ vendor/lld/dist/test/old-elf/linkerscript/Inputs/externs.ls vendor/lld/dist/test/old-elf/linkerscript/Inputs/invalid.ls vendor/lld/dist/test/old-elf/linkerscript/Inputs/prog1.o.yaml vendor/lld/dist/test/old-elf/linkerscript/Inputs/prog2.o.yaml vendor/lld/dist/test/old-elf/linkerscript/Inputs/prog3.o.yaml vendor/lld/dist/test/old-elf/linkerscript/Inputs/simple-pic.o.yaml vendor/lld/dist/test/old-elf/linkerscript/Inputs/simple.o.yaml vendor/lld/dist/test/old-elf/linkerscript/Inputs/valid.ls vendor/lld/dist/test/old-elf/linkerscript/externs.objtxt vendor/lld/dist/test/old-elf/linkerscript/filename-with-wildcards.test vendor/lld/dist/test/old-elf/linkerscript/invalid-script-cli-1.test vendor/lld/dist/test/old-elf/linkerscript/invalid-script-cli-2.test vendor/lld/dist/test/old-elf/linkerscript/invalid.test vendor/lld/dist/test/old-elf/linkerscript/phdrs/ vendor/lld/dist/test/old-elf/linkerscript/phdrs-all-none.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-custom-none.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-default.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-different.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-extra-program.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-flags.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-has-program.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-invalid.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-misplaced-program.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-no-program.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-one-none.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-program-flags.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-program-good-phdrs.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-program-no-phdrs.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-program-wrong-phdrs.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-same-flags.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-same.test vendor/lld/dist/test/old-elf/linkerscript/phdrs/sections-empty-phdrs.script vendor/lld/dist/test/old-elf/linkerscript/phdrs/sections-no-phdrs.script vendor/lld/dist/test/old-elf/linkerscript/phdrs/sections-none-phdrs.script vendor/lld/dist/test/old-elf/linkerscript/phdrs/undef-empty-phdrs.script vendor/lld/dist/test/old-elf/linkerscript/phdrs/undef-id-phdrs.script vendor/lld/dist/test/old-elf/linkerscript/phdrs/undef-no-phdrs.script vendor/lld/dist/test/old-elf/linkerscript/sections-order.test vendor/lld/dist/test/old-elf/linkerscript/sections-with-wildcards.test vendor/lld/dist/test/old-elf/linkerscript/symbol-definition-so.test vendor/lld/dist/test/old-elf/linkerscript/symbol-definition.test vendor/lld/dist/test/old-elf/linkerscript/valid-script-cli.objtxt vendor/lld/dist/test/old-elf/loginputfiles.test vendor/lld/dist/test/old-elf/mergeatoms.test vendor/lld/dist/test/old-elf/mergeconstants.test vendor/lld/dist/test/old-elf/mergeglobalatoms.test vendor/lld/dist/test/old-elf/no-unique-section-names.test vendor/lld/dist/test/old-elf/note.test vendor/lld/dist/test/old-elf/options/ vendor/lld/dist/test/old-elf/options/dynamic-linker.test vendor/lld/dist/test/old-elf/options/target-specific-args.test vendor/lld/dist/test/old-elf/phdr.test vendor/lld/dist/test/old-elf/quickdata.test vendor/lld/dist/test/old-elf/reloc.test vendor/lld/dist/test/old-elf/responsefile.test vendor/lld/dist/test/old-elf/rodata.test vendor/lld/dist/test/old-elf/rosegment.test vendor/lld/dist/test/old-elf/sectionGroups/ vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-new-members.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-simple.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-undef-member-other.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-undef-member.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-with-globalsymbols.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-with-undef-external-reference.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-with-undef-signature.test vendor/lld/dist/test/old-elf/sections.test vendor/lld/dist/test/old-elf/sh_addralign.test vendor/lld/dist/test/old-elf/shndx.test vendor/lld/dist/test/old-elf/soname.test vendor/lld/dist/test/old-elf/start-stop-sym.test vendor/lld/dist/test/old-elf/strip-all.test vendor/lld/dist/test/old-elf/stripped-empty.test vendor/lld/dist/test/old-elf/symbols.test vendor/lld/dist/test/old-elf/tls-tbss-size.test vendor/lld/dist/test/old-elf/tls.test vendor/lld/dist/test/old-elf/tlsAddr.test vendor/lld/dist/test/old-elf/undef-from-dso-to-main.test vendor/lld/dist/test/old-elf/undef-from-main-dso.test vendor/lld/dist/test/old-elf/weaksym.test vendor/lld/dist/test/old-elf/wrap.test vendor/lld/dist/test/old-elf/x86-64-dynamic-relocs.test vendor/lld/dist/test/old-elf/x86-64-dynamic.test vendor/lld/dist/test/old-elf/x86.test vendor/lld/dist/test/old-elf/x86_64-kinds.test vendor/lld/dist/test/old-elf/zoption_dtflags.test Deleted: vendor/lld/dist/Makefile vendor/lld/dist/docs/Makefile vendor/lld/dist/include/Makefile vendor/lld/dist/include/lld/Config/Makefile vendor/lld/dist/include/lld/Driver/WinLinkModuleDef.h vendor/lld/dist/include/lld/Makefile vendor/lld/dist/include/lld/Passes/ vendor/lld/dist/include/lld/ReaderWriter/ELFTargets.h vendor/lld/dist/include/lld/ReaderWriter/PECOFFLinkingContext.h vendor/lld/dist/include/lld/ReaderWriter/RelocationHelperFunctions.h vendor/lld/dist/lib/Config/Makefile vendor/lld/dist/lib/Core/Makefile vendor/lld/dist/lib/Core/TODO.txt vendor/lld/dist/lib/Driver/Makefile vendor/lld/dist/lib/Driver/WinLinkDriver.cpp vendor/lld/dist/lib/Driver/WinLinkModuleDef.cpp vendor/lld/dist/lib/Driver/WinLinkOptions.td vendor/lld/dist/lib/Makefile vendor/lld/dist/lib/Passes/ vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64ELFFile.h vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64ELFReader.h vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/Makefile vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMELFReader.h vendor/lld/dist/lib/ReaderWriter/ELF/ARM/Makefile vendor/lld/dist/lib/ReaderWriter/ELF/CreateELF.h vendor/lld/dist/lib/ReaderWriter/ELF/DefaultLayout.h vendor/lld/dist/lib/ReaderWriter/ELF/DefaultTargetHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonELFReader.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonELFWriters.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonExecutableAtoms.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationFunctions.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonSectionChunks.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/Makefile vendor/lld/dist/lib/ReaderWriter/ELF/Layout.h vendor/lld/dist/lib/ReaderWriter/ELF/Makefile vendor/lld/dist/lib/ReaderWriter/ELF/Mips/Makefile vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsDynamicLibraryWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsELFFlagsMerger.cpp vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsELFFlagsMerger.h vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsELFReader.h vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsExecutableWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/X86/Makefile vendor/lld/dist/lib/ReaderWriter/ELF/X86/X86ELFFile.h vendor/lld/dist/lib/ReaderWriter/ELF/X86/X86ELFReader.h vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/Makefile vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/Makefile vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64ELFFile.h vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64ELFReader.h vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64ElfType.h vendor/lld/dist/lib/ReaderWriter/MachO/ExecutableAtoms.hpp vendor/lld/dist/lib/ReaderWriter/MachO/Makefile vendor/lld/dist/lib/ReaderWriter/Makefile vendor/lld/dist/lib/ReaderWriter/Native/CMakeLists.txt vendor/lld/dist/lib/ReaderWriter/Native/Makefile vendor/lld/dist/lib/ReaderWriter/Native/NativeFileFormat.h vendor/lld/dist/lib/ReaderWriter/Native/ReaderNative.cpp vendor/lld/dist/lib/ReaderWriter/Native/WriterNative.cpp vendor/lld/dist/lib/ReaderWriter/PECOFF/Atoms.h vendor/lld/dist/lib/ReaderWriter/PECOFF/CMakeLists.txt vendor/lld/dist/lib/ReaderWriter/PECOFF/EdataPass.cpp vendor/lld/dist/lib/ReaderWriter/PECOFF/EdataPass.h vendor/lld/dist/lib/ReaderWriter/PECOFF/IdataPass.cpp vendor/lld/dist/lib/ReaderWriter/PECOFF/IdataPass.h vendor/lld/dist/lib/ReaderWriter/PECOFF/InferSubsystemPass.h vendor/lld/dist/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.cpp vendor/lld/dist/lib/ReaderWriter/PECOFF/LinkerGeneratedSymbolFile.h vendor/lld/dist/lib/ReaderWriter/PECOFF/LoadConfigPass.cpp vendor/lld/dist/lib/ReaderWriter/PECOFF/LoadConfigPass.h vendor/lld/dist/lib/ReaderWriter/PECOFF/Makefile vendor/lld/dist/lib/ReaderWriter/PECOFF/OrderPass.h vendor/lld/dist/lib/ReaderWriter/PECOFF/PDBPass.h vendor/lld/dist/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/PECOFF/Pass.cpp vendor/lld/dist/lib/ReaderWriter/PECOFF/Pass.h vendor/lld/dist/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp vendor/lld/dist/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp vendor/lld/dist/lib/ReaderWriter/PECOFF/WriterImportLibrary.cpp vendor/lld/dist/lib/ReaderWriter/PECOFF/WriterImportLibrary.h vendor/lld/dist/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp vendor/lld/dist/lib/ReaderWriter/YAML/Makefile vendor/lld/dist/test/Makefile vendor/lld/dist/test/elf/ vendor/lld/dist/test/mach-o/dylib-exports.yaml vendor/lld/dist/test/pecoff/Inputs/abs.obj.yaml vendor/lld/dist/test/pecoff/Inputs/alignment.obj.yaml vendor/lld/dist/test/pecoff/Inputs/alternatename1.obj.yaml vendor/lld/dist/test/pecoff/Inputs/alternatename2.obj.yaml vendor/lld/dist/test/pecoff/Inputs/alternatename3.obj.yaml vendor/lld/dist/test/pecoff/Inputs/armnt-ImageBase.obj.yaml vendor/lld/dist/test/pecoff/Inputs/armnt-ImageBase.s vendor/lld/dist/test/pecoff/Inputs/armnt-addr32-exec.obj.yaml vendor/lld/dist/test/pecoff/Inputs/armnt-addr32-exec.s vendor/lld/dist/test/pecoff/Inputs/armnt-addr32.obj.yaml vendor/lld/dist/test/pecoff/Inputs/armnt-addr32.s vendor/lld/dist/test/pecoff/Inputs/armnt-blx23t.obj.yaml vendor/lld/dist/test/pecoff/Inputs/armnt-blx23t.s vendor/lld/dist/test/pecoff/Inputs/armnt-branch24t.obj.yaml vendor/lld/dist/test/pecoff/Inputs/armnt-branch24t.s vendor/lld/dist/test/pecoff/Inputs/armnt-exports.def vendor/lld/dist/test/pecoff/Inputs/armnt-exports.obj.yaml vendor/lld/dist/test/pecoff/Inputs/armnt-import.obj.yaml vendor/lld/dist/test/pecoff/Inputs/armnt-import.s vendor/lld/dist/test/pecoff/Inputs/armnt-mov32t-exec.obj.yaml vendor/lld/dist/test/pecoff/Inputs/armnt-mov32t-exec.s vendor/lld/dist/test/pecoff/Inputs/armnt-mov32t.obj.yaml vendor/lld/dist/test/pecoff/Inputs/armnt-mov32t.s vendor/lld/dist/test/pecoff/Inputs/armnt-obj.s vendor/lld/dist/test/pecoff/Inputs/armnt-obj.yaml vendor/lld/dist/test/pecoff/Inputs/associative1.obj.yaml vendor/lld/dist/test/pecoff/Inputs/associative3.obj.yaml vendor/lld/dist/test/pecoff/Inputs/basereloc.obj.yaml vendor/lld/dist/test/pecoff/Inputs/bss.asm vendor/lld/dist/test/pecoff/Inputs/bss.obj vendor/lld/dist/test/pecoff/Inputs/comdat.obj.yaml vendor/lld/dist/test/pecoff/Inputs/common-symbol.obj.yaml vendor/lld/dist/test/pecoff/Inputs/drectve.obj.yaml vendor/lld/dist/test/pecoff/Inputs/drectve2.obj.yaml vendor/lld/dist/test/pecoff/Inputs/drectve3.lib vendor/lld/dist/test/pecoff/Inputs/entry.obj.yaml vendor/lld/dist/test/pecoff/Inputs/executable.obj.yaml vendor/lld/dist/test/pecoff/Inputs/executable.s vendor/lld/dist/test/pecoff/Inputs/export.obj.yaml vendor/lld/dist/test/pecoff/Inputs/exports.def vendor/lld/dist/test/pecoff/Inputs/exports2.def vendor/lld/dist/test/pecoff/Inputs/grouped-sections.asm vendor/lld/dist/test/pecoff/Inputs/grouped-sections.obj.yaml vendor/lld/dist/test/pecoff/Inputs/hello.asm vendor/lld/dist/test/pecoff/Inputs/hello.obj.yaml vendor/lld/dist/test/pecoff/Inputs/hello64.asm vendor/lld/dist/test/pecoff/Inputs/hello64.obj.yaml vendor/lld/dist/test/pecoff/Inputs/hello64lib.asm vendor/lld/dist/test/pecoff/Inputs/hello64lib.lib vendor/lld/dist/test/pecoff/Inputs/imagebase.obj.yaml vendor/lld/dist/test/pecoff/Inputs/library.lib vendor/lld/dist/test/pecoff/Inputs/machine-type-unknown.obj.yaml vendor/lld/dist/test/pecoff/Inputs/main.obj.yaml vendor/lld/dist/test/pecoff/Inputs/merge-largest1.obj.yaml vendor/lld/dist/test/pecoff/Inputs/merge-largest2.obj.yaml vendor/lld/dist/test/pecoff/Inputs/merge-same-size1.obj.yaml vendor/lld/dist/test/pecoff/Inputs/merge-same-size2.obj.yaml vendor/lld/dist/test/pecoff/Inputs/merge-same-size3.obj.yaml vendor/lld/dist/test/pecoff/Inputs/nonstandard-sections.obj.yaml vendor/lld/dist/test/pecoff/Inputs/nop.asm vendor/lld/dist/test/pecoff/Inputs/nop.obj.yaml vendor/lld/dist/test/pecoff/Inputs/nop64.obj.yaml vendor/lld/dist/test/pecoff/Inputs/reloc.obj.yaml vendor/lld/dist/test/pecoff/Inputs/reloc64.obj.yaml vendor/lld/dist/test/pecoff/Inputs/resource.rc vendor/lld/dist/test/pecoff/Inputs/resource.res vendor/lld/dist/test/pecoff/Inputs/responsefile.txt vendor/lld/dist/test/pecoff/Inputs/secrel1.obj.yaml vendor/lld/dist/test/pecoff/Inputs/secrel2.obj.yaml vendor/lld/dist/test/pecoff/Inputs/seh.c vendor/lld/dist/test/pecoff/Inputs/seh.obj.yaml vendor/lld/dist/test/pecoff/Inputs/static-data1.obj.yaml vendor/lld/dist/test/pecoff/Inputs/static-data2.obj.yaml vendor/lld/dist/test/pecoff/Inputs/static.lib vendor/lld/dist/test/pecoff/Inputs/subsystem.main.yaml vendor/lld/dist/test/pecoff/Inputs/subsystem.winmain.yaml vendor/lld/dist/test/pecoff/Inputs/tlsused.obj.yaml vendor/lld/dist/test/pecoff/Inputs/unknown-drectve.obj.yaml vendor/lld/dist/test/pecoff/Inputs/unwind.obj.yaml vendor/lld/dist/test/pecoff/Inputs/vars-main-x64.obj.yaml vendor/lld/dist/test/pecoff/Inputs/vars-main-x86.obj.yaml vendor/lld/dist/test/pecoff/Inputs/vars-main.c vendor/lld/dist/test/pecoff/Inputs/vars.c vendor/lld/dist/test/pecoff/Inputs/vars.dll.yaml vendor/lld/dist/test/pecoff/Inputs/vars.lib vendor/lld/dist/test/pecoff/Inputs/vars64.lib vendor/lld/dist/test/pecoff/Inputs/weak-externals.asm vendor/lld/dist/test/pecoff/Inputs/weak-externals.obj.yaml vendor/lld/dist/test/pecoff/alignment.test vendor/lld/dist/test/pecoff/alternatename.test vendor/lld/dist/test/pecoff/armnt-ImageBase.test vendor/lld/dist/test/pecoff/armnt-addr32-exec.test vendor/lld/dist/test/pecoff/armnt-addr32.test vendor/lld/dist/test/pecoff/armnt-address-of-entry-point.test vendor/lld/dist/test/pecoff/armnt-blx23t.test vendor/lld/dist/test/pecoff/armnt-branch24t.test vendor/lld/dist/test/pecoff/armnt-exports.s vendor/lld/dist/test/pecoff/armnt-exports.test vendor/lld/dist/test/pecoff/armnt-imports.test vendor/lld/dist/test/pecoff/armnt-mov32t-exec.test vendor/lld/dist/test/pecoff/armnt-movt32t.test vendor/lld/dist/test/pecoff/armnt.test vendor/lld/dist/test/pecoff/associative.test vendor/lld/dist/test/pecoff/base-reloc.test vendor/lld/dist/test/pecoff/baseaddr.test vendor/lld/dist/test/pecoff/bss-section.test vendor/lld/dist/test/pecoff/comdat.test vendor/lld/dist/test/pecoff/common-symbol.test vendor/lld/dist/test/pecoff/conflicting-machine.test vendor/lld/dist/test/pecoff/delayimport.test vendor/lld/dist/test/pecoff/dll.test vendor/lld/dist/test/pecoff/dosstub.test vendor/lld/dist/test/pecoff/drectve.test vendor/lld/dist/test/pecoff/dynamic.test vendor/lld/dist/test/pecoff/dynamicbase.test vendor/lld/dist/test/pecoff/entry.test vendor/lld/dist/test/pecoff/export-warning.test vendor/lld/dist/test/pecoff/export.test vendor/lld/dist/test/pecoff/exportlib.test vendor/lld/dist/test/pecoff/exportlib2.test vendor/lld/dist/test/pecoff/grouped-sections.test vendor/lld/dist/test/pecoff/hello.test vendor/lld/dist/test/pecoff/hello64.test vendor/lld/dist/test/pecoff/help.test vendor/lld/dist/test/pecoff/imagebase.test vendor/lld/dist/test/pecoff/importlib.test vendor/lld/dist/test/pecoff/include.test vendor/lld/dist/test/pecoff/lib.test vendor/lld/dist/test/pecoff/libarg.test vendor/lld/dist/test/pecoff/localyimported.test vendor/lld/dist/test/pecoff/long-section-name.test vendor/lld/dist/test/pecoff/machinetype.test vendor/lld/dist/test/pecoff/manifest.test vendor/lld/dist/test/pecoff/merge-largest.test vendor/lld/dist/test/pecoff/merge-same-size.test vendor/lld/dist/test/pecoff/multi.test vendor/lld/dist/test/pecoff/noentry.test vendor/lld/dist/test/pecoff/nonstandard-sections.test vendor/lld/dist/test/pecoff/options.test vendor/lld/dist/test/pecoff/pe32plus.test vendor/lld/dist/test/pecoff/reloc.test vendor/lld/dist/test/pecoff/reloc64.test vendor/lld/dist/test/pecoff/resource.test vendor/lld/dist/test/pecoff/responsefile.test vendor/lld/dist/test/pecoff/safeseh.test vendor/lld/dist/test/pecoff/secrel.test vendor/lld/dist/test/pecoff/section-attribute.test vendor/lld/dist/test/pecoff/section-renaming.test vendor/lld/dist/test/pecoff/seh.test vendor/lld/dist/test/pecoff/seh64.test vendor/lld/dist/test/pecoff/subsystem.test vendor/lld/dist/test/pecoff/tls.test vendor/lld/dist/test/pecoff/trivial.test vendor/lld/dist/test/pecoff/unknown-drectve.test vendor/lld/dist/test/pecoff/weak-external.test vendor/lld/dist/tools/Makefile vendor/lld/dist/tools/linker-script-test/Makefile vendor/lld/dist/tools/lld/Makefile vendor/lld/dist/unittests/CoreTests/Makefile vendor/lld/dist/unittests/DriverTests/Makefile vendor/lld/dist/unittests/DriverTests/WinLinkDriverTest.cpp vendor/lld/dist/unittests/DriverTests/WinLinkModuleDefTest.cpp vendor/lld/dist/unittests/Makefile vendor/lld/dist/utils/astyle-options vendor/lld/dist/utils/linker-script-test/ vendor/lld/dist/www/ Modified: vendor/lld/dist/CMakeLists.txt vendor/lld/dist/docs/Readers.rst vendor/lld/dist/docs/design.rst vendor/lld/dist/docs/getting_started.rst vendor/lld/dist/docs/index.rst vendor/lld/dist/docs/open_projects.rst vendor/lld/dist/docs/windows_support.rst vendor/lld/dist/include/lld/Core/Alias.h vendor/lld/dist/include/lld/Core/DefinedAtom.h vendor/lld/dist/include/lld/Core/Error.h vendor/lld/dist/include/lld/Core/File.h vendor/lld/dist/include/lld/Core/LLVM.h vendor/lld/dist/include/lld/Core/LinkingContext.h vendor/lld/dist/include/lld/Core/Parallel.h vendor/lld/dist/include/lld/Core/Pass.h vendor/lld/dist/include/lld/Core/PassManager.h vendor/lld/dist/include/lld/Core/Reader.h vendor/lld/dist/include/lld/Core/Reference.h vendor/lld/dist/include/lld/Core/Resolver.h vendor/lld/dist/include/lld/Core/SharedLibraryFile.h vendor/lld/dist/include/lld/Core/Simple.h vendor/lld/dist/include/lld/Core/SymbolTable.h vendor/lld/dist/include/lld/Core/TODO.txt vendor/lld/dist/include/lld/Core/Writer.h vendor/lld/dist/include/lld/Driver/Driver.h vendor/lld/dist/include/lld/ReaderWriter/ELFLinkingContext.h vendor/lld/dist/include/lld/ReaderWriter/LinkerScript.h vendor/lld/dist/include/lld/ReaderWriter/MachOLinkingContext.h vendor/lld/dist/include/lld/ReaderWriter/YamlContext.h vendor/lld/dist/lib/Core/DefinedAtom.cpp vendor/lld/dist/lib/Core/Error.cpp vendor/lld/dist/lib/Core/File.cpp vendor/lld/dist/lib/Core/LinkingContext.cpp vendor/lld/dist/lib/Core/Reader.cpp vendor/lld/dist/lib/Core/Resolver.cpp vendor/lld/dist/lib/Core/SymbolTable.cpp vendor/lld/dist/lib/Core/Writer.cpp vendor/lld/dist/lib/Driver/CMakeLists.txt vendor/lld/dist/lib/Driver/CoreDriver.cpp vendor/lld/dist/lib/Driver/DarwinLdDriver.cpp vendor/lld/dist/lib/Driver/DarwinLdOptions.td vendor/lld/dist/lib/Driver/Driver.cpp vendor/lld/dist/lib/Driver/GnuLdDriver.cpp vendor/lld/dist/lib/Driver/GnuLdOptions.td vendor/lld/dist/lib/Driver/TODO.rst vendor/lld/dist/lib/Driver/UniversalDriver.cpp vendor/lld/dist/lib/ReaderWriter/CMakeLists.txt vendor/lld/dist/lib/ReaderWriter/CoreLinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/AArch64/CMakeLists.txt vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMELFFile.h vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMSymbolTable.h vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/ARM/TODO.rst vendor/lld/dist/lib/ReaderWriter/ELF/Atoms.h vendor/lld/dist/lib/ReaderWriter/ELF/CMakeLists.txt vendor/lld/dist/lib/ReaderWriter/ELF/Chunk.h vendor/lld/dist/lib/ReaderWriter/ELF/DynamicFile.h vendor/lld/dist/lib/ReaderWriter/ELF/DynamicLibraryWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/ELFFile.h vendor/lld/dist/lib/ReaderWriter/ELF/ELFLinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/ELF/ELFReader.h vendor/lld/dist/lib/ReaderWriter/ELF/ExecutableWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/HeaderChunks.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonELFFile.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonEncodings.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonExecutableWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/Mips/CMakeLists.txt vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsCtorsOrderPass.cpp vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsCtorsOrderPass.h vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsDynamicTable.h vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsELFFile.h vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsELFWriters.h vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.cpp vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.h vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/OrderPass.h vendor/lld/dist/lib/ReaderWriter/ELF/OutputELFWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/Reader.cpp vendor/lld/dist/lib/ReaderWriter/ELF/SectionChunks.h vendor/lld/dist/lib/ReaderWriter/ELF/SegmentChunks.h vendor/lld/dist/lib/ReaderWriter/ELF/TargetHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/TargetLayout.h vendor/lld/dist/lib/ReaderWriter/ELF/Writer.cpp vendor/lld/dist/lib/ReaderWriter/ELF/Writer.h vendor/lld/dist/lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/X86/X86ExecutableWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/ELF/X86/X86LinkingContext.h vendor/lld/dist/lib/ReaderWriter/ELF/X86/X86RelocationHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/X86/X86RelocationHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/X86/X86TargetHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/CMakeLists.txt vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/ExampleLinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/ExampleTargetHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/ExampleTargetHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.h vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64RelocationPass.cpp vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp vendor/lld/dist/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.h vendor/lld/dist/lib/ReaderWriter/FileArchive.cpp vendor/lld/dist/lib/ReaderWriter/LinkerScript.cpp vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler.h vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler_arm.cpp vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler_x86.cpp vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp vendor/lld/dist/lib/ReaderWriter/MachO/Atoms.h vendor/lld/dist/lib/ReaderWriter/MachO/CMakeLists.txt vendor/lld/dist/lib/ReaderWriter/MachO/CompactUnwindPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/File.h vendor/lld/dist/lib/ReaderWriter/MachO/GOTPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/LayoutPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/LayoutPass.h vendor/lld/dist/lib/ReaderWriter/MachO/MachOLinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFile.h vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp vendor/lld/dist/lib/ReaderWriter/MachO/MachOPasses.h vendor/lld/dist/lib/ReaderWriter/MachO/ShimPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/StubsPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/WriterMachO.cpp vendor/lld/dist/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp vendor/lld/dist/test/CMakeLists.txt vendor/lld/dist/test/Driver/def-lib-search.test vendor/lld/dist/test/Driver/flavor-option.test vendor/lld/dist/test/Driver/lib-search.test vendor/lld/dist/test/Driver/so-whole-archive.test vendor/lld/dist/test/Driver/trivial-driver.test vendor/lld/dist/test/Driver/undef-basic.objtxt vendor/lld/dist/test/LinkerScript/sections.test vendor/lld/dist/test/core/archive-basic.objtxt vendor/lld/dist/test/core/archive-chain.objtxt vendor/lld/dist/test/core/archive-tentdef-search.objtxt vendor/lld/dist/test/core/associates.objtxt vendor/lld/dist/test/core/auto-hide-coalesce.objtxt vendor/lld/dist/test/core/code-model-attributes.objtxt vendor/lld/dist/test/core/constants-coalesce.objtxt vendor/lld/dist/test/core/cstring-coalesce.objtxt vendor/lld/dist/test/core/custom-section-coalesce.objtxt vendor/lld/dist/test/core/dead-strip-attributes.objtxt vendor/lld/dist/test/core/dead-strip-basic.objtxt vendor/lld/dist/test/core/dead-strip-globals.objtxt vendor/lld/dist/test/core/error-duplicate-absolutes.objtxt vendor/lld/dist/test/core/gnulinkonce-rearrange-resolve.objtxt vendor/lld/dist/test/core/gnulinkonce-remaining-undef.objtxt vendor/lld/dist/test/core/gnulinkonce-resolve.objtxt vendor/lld/dist/test/core/gnulinkonce-simple.objtxt vendor/lld/dist/test/core/inline-coalesce.objtxt vendor/lld/dist/test/core/multiple-def-error.objtxt vendor/lld/dist/test/core/sectiongroup-deadstrip.objtxt vendor/lld/dist/test/core/sectiongroup-gnulinkonce-error.objtxt vendor/lld/dist/test/core/sectiongroup-rearrange-resolve.objtxt vendor/lld/dist/test/core/sectiongroup-remaining-undef.objtxt vendor/lld/dist/test/core/sectiongroup-resolve.objtxt vendor/lld/dist/test/core/sectiongroup-simple.objtxt vendor/lld/dist/test/core/shared-library-coalesce.objtxt vendor/lld/dist/test/core/tent-merge.objtxt vendor/lld/dist/test/core/undef-coalesce-error.objtxt vendor/lld/dist/test/core/undef-coalesce.objtxt vendor/lld/dist/test/core/undef-fallback.objtxt vendor/lld/dist/test/core/undef-weak-coalesce.objtxt vendor/lld/dist/test/core/weak-coalesce.objtxt vendor/lld/dist/test/darwin/native-and-mach-o.objtxt vendor/lld/dist/test/lit.cfg vendor/lld/dist/test/mach-o/PIE.yaml vendor/lld/dist/test/mach-o/align_text.yaml vendor/lld/dist/test/mach-o/arm-interworking-movw.yaml vendor/lld/dist/test/mach-o/arm-interworking.yaml vendor/lld/dist/test/mach-o/arm-shims.yaml vendor/lld/dist/test/mach-o/arm-subsections-via-symbols.yaml vendor/lld/dist/test/mach-o/cstring-sections.yaml vendor/lld/dist/test/mach-o/data-only-dylib.yaml vendor/lld/dist/test/mach-o/demangle.yaml vendor/lld/dist/test/mach-o/exported_symbols_list-dylib.yaml vendor/lld/dist/test/mach-o/exported_symbols_list-obj.yaml vendor/lld/dist/test/mach-o/exported_symbols_list-undef.yaml vendor/lld/dist/test/mach-o/fat-archive.yaml vendor/lld/dist/test/mach-o/force_load-dylib.yaml vendor/lld/dist/test/mach-o/force_load-x86_64.yaml vendor/lld/dist/test/mach-o/framework-user-paths.yaml vendor/lld/dist/test/mach-o/got-order.yaml vendor/lld/dist/test/mach-o/hello-world-arm64.yaml vendor/lld/dist/test/mach-o/hello-world-armv6.yaml vendor/lld/dist/test/mach-o/hello-world-armv7.yaml vendor/lld/dist/test/mach-o/hello-world-x86.yaml vendor/lld/dist/test/mach-o/hello-world-x86_64.yaml vendor/lld/dist/test/mach-o/image-base.yaml vendor/lld/dist/test/mach-o/infer-arch.yaml vendor/lld/dist/test/mach-o/interposing-section.yaml vendor/lld/dist/test/mach-o/keep_private_externs.yaml vendor/lld/dist/test/mach-o/lazy-bind-x86_64.yaml vendor/lld/dist/test/mach-o/library-order.yaml vendor/lld/dist/test/mach-o/library-rescan.yaml vendor/lld/dist/test/mach-o/linker-as-ld.yaml vendor/lld/dist/test/mach-o/objc_export_list.yaml vendor/lld/dist/test/mach-o/parse-aliases.yaml vendor/lld/dist/test/mach-o/parse-arm-relocs.yaml vendor/lld/dist/test/mach-o/parse-cfstring64.yaml vendor/lld/dist/test/mach-o/parse-data-in-code-armv7.yaml vendor/lld/dist/test/mach-o/parse-data-relocs-x86_64.yaml vendor/lld/dist/test/mach-o/parse-eh-frame-x86-anon.yaml vendor/lld/dist/test/mach-o/parse-eh-frame-x86-labeled.yaml vendor/lld/dist/test/mach-o/parse-function.yaml vendor/lld/dist/test/mach-o/parse-initializers64.yaml vendor/lld/dist/test/mach-o/parse-literals-error.yaml vendor/lld/dist/test/mach-o/parse-literals.yaml vendor/lld/dist/test/mach-o/parse-relocs-x86.yaml vendor/lld/dist/test/mach-o/parse-tentative-defs.yaml vendor/lld/dist/test/mach-o/parse-text-relocs-x86_64.yaml vendor/lld/dist/test/mach-o/re-exported-dylib-ordinal.yaml vendor/lld/dist/test/mach-o/rpath.yaml vendor/lld/dist/test/mach-o/sectalign.yaml vendor/lld/dist/test/mach-o/unwind-info-simple-arm64.yaml vendor/lld/dist/test/mach-o/unwind-info-simple-x86_64.yaml vendor/lld/dist/test/mach-o/upward-dylib-load-command.yaml vendor/lld/dist/test/mach-o/use-simple-dylib.yaml vendor/lld/dist/test/mach-o/write-final-sections.yaml vendor/lld/dist/test/mach-o/wrong-arch-error.yaml vendor/lld/dist/tools/lld/CMakeLists.txt vendor/lld/dist/tools/lld/lld.cpp vendor/lld/dist/unittests/DriverTests/CMakeLists.txt vendor/lld/dist/unittests/DriverTests/DarwinLdDriverTest.cpp vendor/lld/dist/unittests/DriverTests/DriverTest.h vendor/lld/dist/unittests/DriverTests/GnuLdDriverTest.cpp vendor/lld/dist/unittests/DriverTests/UniversalDriverTest.cpp vendor/lld/dist/unittests/MachOTests/MachONormalizedFileBinaryReaderTests.cpp vendor/lld/dist/unittests/MachOTests/MachONormalizedFileBinaryWriterTests.cpp vendor/lld/dist/unittests/MachOTests/MachONormalizedFileToAtomsTests.cpp vendor/lld/dist/unittests/MachOTests/MachONormalizedFileYAMLTests.cpp Modified: vendor/lld/dist/CMakeLists.txt ============================================================================== --- vendor/lld/dist/CMakeLists.txt Wed Dec 30 11:56:14 2015 (r292933) +++ vendor/lld/dist/CMakeLists.txt Wed Dec 30 11:57:38 2015 (r292934) @@ -89,10 +89,11 @@ endif() add_subdirectory(lib) add_subdirectory(tools) -add_subdirectory(test) - if (LLVM_INCLUDE_TESTS) + add_subdirectory(test) add_subdirectory(unittests) endif() add_subdirectory(docs) +add_subdirectory(COFF) +add_subdirectory(ELF) Added: vendor/lld/dist/CODE_OWNERS.TXT ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lld/dist/CODE_OWNERS.TXT Wed Dec 30 11:57:38 2015 (r292934) @@ -0,0 +1,19 @@ +This file is a list of the people responsible for ensuring that patches for a +particular part of LLD are reviewed, either by themself or by someone else. +They are also the gatekeepers for their part of LLD, with the final word on +what goes in or not. + +The list is sorted by surname and formatted to allow easy grepping and +beautification by scripts. The fields are: name (N), email (E), web-address +(W), PGP key ID and fingerprint (P), description (D), and snail-mail address +(S). Each entry should contain at least the (N), (E) and (D) fields. + + +N: Rui Ueyama +E: ruiu@google.com +D: COFF, ELF backends (COFF/* ELF/*) + +N: Lang Hames, Nick Kledzik +E: lhames@gmail.com, kledzik@apple.com +D: Mach-O backend + Added: vendor/lld/dist/COFF/CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lld/dist/COFF/CMakeLists.txt Wed Dec 30 11:57:38 2015 (r292934) @@ -0,0 +1,33 @@ +set(LLVM_TARGET_DEFINITIONS Options.td) +tablegen(LLVM Options.inc -gen-opt-parser-defs) +add_public_tablegen_target(COFFOptionsTableGen) + +add_llvm_library(lldCOFF + Chunks.cpp + DLL.cpp + Driver.cpp + DriverUtils.cpp + Error.cpp + ICF.cpp + InputFiles.cpp + MarkLive.cpp + ModuleDef.cpp + PDB.cpp + SymbolTable.cpp + Symbols.cpp + Writer.cpp + + LINK_COMPONENTS + ${LLVM_TARGETS_TO_BUILD} + Core + LTO + LibDriver + Object + MC + MCDisassembler + Target + Option + Support + ) + +add_dependencies(lldCOFF COFFOptionsTableGen) Added: vendor/lld/dist/COFF/Chunks.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lld/dist/COFF/Chunks.cpp Wed Dec 30 11:57:38 2015 (r292934) @@ -0,0 +1,340 @@ +//===- Chunks.cpp ---------------------------------------------------------===// +// +// The LLVM Linker +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "Chunks.h" +#include "Error.h" +#include "InputFiles.h" +#include "Symbols.h" +#include "llvm/Object/COFF.h" +#include "llvm/Support/COFF.h" +#include "llvm/Support/Debug.h" +#include "llvm/Support/Endian.h" +#include "llvm/Support/raw_ostream.h" +#include + +using namespace llvm; +using namespace llvm::object; +using namespace llvm::support::endian; +using namespace llvm::COFF; +using llvm::support::ulittle32_t; + +namespace lld { +namespace coff { + +SectionChunk::SectionChunk(ObjectFile *F, const coff_section *H) + : Chunk(SectionKind), Repl(this), File(F), Header(H), + Relocs(File->getCOFFObj()->getRelocations(Header)), + NumRelocs(std::distance(Relocs.begin(), Relocs.end())) { + // Initialize SectionName. + File->getCOFFObj()->getSectionName(Header, SectionName); + + // Bit [20:24] contains section alignment. Both 0 and 1 mean alignment 1. + unsigned Shift = (Header->Characteristics >> 20) & 0xF; + if (Shift > 0) + Align = uint32_t(1) << (Shift - 1); + + // Only COMDAT sections are subject of dead-stripping. + Live = !isCOMDAT(); +} + +static void add16(uint8_t *P, int16_t V) { write16le(P, read16le(P) + V); } +static void add32(uint8_t *P, int32_t V) { write32le(P, read32le(P) + V); } +static void add64(uint8_t *P, int64_t V) { write64le(P, read64le(P) + V); } +static void or16(uint8_t *P, uint16_t V) { write16le(P, read16le(P) | V); } + +void SectionChunk::applyRelX64(uint8_t *Off, uint16_t Type, Defined *Sym, + uint64_t P) const { + uint64_t S = Sym->getRVA(); + switch (Type) { + case IMAGE_REL_AMD64_ADDR32: add32(Off, S + Config->ImageBase); break; + case IMAGE_REL_AMD64_ADDR64: add64(Off, S + Config->ImageBase); break; + case IMAGE_REL_AMD64_ADDR32NB: add32(Off, S); break; + case IMAGE_REL_AMD64_REL32: add32(Off, S - P - 4); break; + case IMAGE_REL_AMD64_REL32_1: add32(Off, S - P - 5); break; + case IMAGE_REL_AMD64_REL32_2: add32(Off, S - P - 6); break; + case IMAGE_REL_AMD64_REL32_3: add32(Off, S - P - 7); break; + case IMAGE_REL_AMD64_REL32_4: add32(Off, S - P - 8); break; + case IMAGE_REL_AMD64_REL32_5: add32(Off, S - P - 9); break; + case IMAGE_REL_AMD64_SECTION: add16(Off, Sym->getSectionIndex()); break; + case IMAGE_REL_AMD64_SECREL: add32(Off, Sym->getSecrel()); break; + default: + error("Unsupported relocation type"); + } +} + +void SectionChunk::applyRelX86(uint8_t *Off, uint16_t Type, Defined *Sym, + uint64_t P) const { + uint64_t S = Sym->getRVA(); + switch (Type) { + case IMAGE_REL_I386_ABSOLUTE: break; + case IMAGE_REL_I386_DIR32: add32(Off, S + Config->ImageBase); break; + case IMAGE_REL_I386_DIR32NB: add32(Off, S); break; + case IMAGE_REL_I386_REL32: add32(Off, S - P - 4); break; + case IMAGE_REL_I386_SECTION: add16(Off, Sym->getSectionIndex()); break; + case IMAGE_REL_I386_SECREL: add32(Off, Sym->getSecrel()); break; + default: + error("Unsupported relocation type"); + } +} + +static void applyMOV(uint8_t *Off, uint16_t V) { + or16(Off, ((V & 0x800) >> 1) | ((V >> 12) & 0xf)); + or16(Off + 2, ((V & 0x700) << 4) | (V & 0xff)); +} + +static void applyMOV32T(uint8_t *Off, uint32_t V) { + applyMOV(Off, V); // set MOVW operand + applyMOV(Off + 4, V >> 16); // set MOVT operand +} + +static void applyBranch20T(uint8_t *Off, int32_t V) { + uint32_t S = V < 0 ? 1 : 0; + uint32_t J1 = (V >> 19) & 1; + uint32_t J2 = (V >> 18) & 1; + or16(Off, (S << 10) | ((V >> 12) & 0x3f)); + or16(Off + 2, (J1 << 13) | (J2 << 11) | ((V >> 1) & 0x7ff)); +} + +static void applyBranch24T(uint8_t *Off, int32_t V) { + uint32_t S = V < 0 ? 1 : 0; + uint32_t J1 = ((~V >> 23) & 1) ^ S; + uint32_t J2 = ((~V >> 22) & 1) ^ S; + or16(Off, (S << 10) | ((V >> 12) & 0x3ff)); + or16(Off + 2, (J1 << 13) | (J2 << 11) | ((V >> 1) & 0x7ff)); +} + +void SectionChunk::applyRelARM(uint8_t *Off, uint16_t Type, Defined *Sym, + uint64_t P) const { + uint64_t S = Sym->getRVA(); + // Pointer to thumb code must have the LSB set. + if (Sym->isExecutable()) + S |= 1; + switch (Type) { + case IMAGE_REL_ARM_ADDR32: add32(Off, S + Config->ImageBase); break; + case IMAGE_REL_ARM_ADDR32NB: add32(Off, S); break; + case IMAGE_REL_ARM_MOV32T: applyMOV32T(Off, S + Config->ImageBase); break; + case IMAGE_REL_ARM_BRANCH20T: applyBranch20T(Off, S - P - 4); break; + case IMAGE_REL_ARM_BRANCH24T: applyBranch24T(Off, S - P - 4); break; + case IMAGE_REL_ARM_BLX23T: applyBranch24T(Off, S - P - 4); break; + default: + error("Unsupported relocation type"); + } +} + +void SectionChunk::writeTo(uint8_t *Buf) const { + if (!hasData()) + return; + // Copy section contents from source object file to output file. + ArrayRef A = getContents(); + memcpy(Buf + OutputSectionOff, A.data(), A.size()); + + // Apply relocations. + for (const coff_relocation &Rel : Relocs) { + uint8_t *Off = Buf + OutputSectionOff + Rel.VirtualAddress; + SymbolBody *Body = File->getSymbolBody(Rel.SymbolTableIndex)->repl(); + Defined *Sym = cast(Body); + uint64_t P = RVA + Rel.VirtualAddress; + switch (Config->Machine) { + case AMD64: + applyRelX64(Off, Rel.Type, Sym, P); + break; + case I386: + applyRelX86(Off, Rel.Type, Sym, P); + break; + case ARMNT: + applyRelARM(Off, Rel.Type, Sym, P); + break; + default: + llvm_unreachable("unknown machine type"); + } + } +} + +void SectionChunk::addAssociative(SectionChunk *Child) { + AssocChildren.push_back(Child); +} + +static uint8_t getBaserelType(const coff_relocation &Rel) { + switch (Config->Machine) { + case AMD64: + if (Rel.Type == IMAGE_REL_AMD64_ADDR64) + return IMAGE_REL_BASED_DIR64; + return IMAGE_REL_BASED_ABSOLUTE; + case I386: + if (Rel.Type == IMAGE_REL_I386_DIR32) + return IMAGE_REL_BASED_HIGHLOW; + return IMAGE_REL_BASED_ABSOLUTE; + case ARMNT: + if (Rel.Type == IMAGE_REL_ARM_ADDR32) + return IMAGE_REL_BASED_HIGHLOW; + if (Rel.Type == IMAGE_REL_ARM_MOV32T) + return IMAGE_REL_BASED_ARM_MOV32T; + return IMAGE_REL_BASED_ABSOLUTE; + default: + llvm_unreachable("unknown machine type"); + } +} + +// Windows-specific. +// Collect all locations that contain absolute addresses, which need to be +// fixed by the loader if load-time relocation is needed. +// Only called when base relocation is enabled. +void SectionChunk::getBaserels(std::vector *Res) { + for (const coff_relocation &Rel : Relocs) { + uint8_t Ty = getBaserelType(Rel); + if (Ty == IMAGE_REL_BASED_ABSOLUTE) + continue; + SymbolBody *Body = File->getSymbolBody(Rel.SymbolTableIndex)->repl(); + if (isa(Body)) + continue; + Res->emplace_back(RVA + Rel.VirtualAddress, Ty); + } +} + +bool SectionChunk::hasData() const { + return !(Header->Characteristics & IMAGE_SCN_CNT_UNINITIALIZED_DATA); +} + +uint32_t SectionChunk::getPermissions() const { + return Header->Characteristics & PermMask; +} + +bool SectionChunk::isCOMDAT() const { + return Header->Characteristics & IMAGE_SCN_LNK_COMDAT; +} + +void SectionChunk::printDiscardedMessage() const { + // Removed by dead-stripping. If it's removed by ICF, ICF already + // printed out the name, so don't repeat that here. + if (Sym && this == Repl) + llvm::outs() << "Discarded " << Sym->getName() << "\n"; +} + +StringRef SectionChunk::getDebugName() { + if (Sym) + return Sym->getName(); + return ""; +} + +ArrayRef SectionChunk::getContents() const { + ArrayRef A; + File->getCOFFObj()->getSectionContents(Header, A); + return A; +} + +void SectionChunk::replace(SectionChunk *Other) { + Other->Repl = Repl; + Other->Live = false; +} + +CommonChunk::CommonChunk(const COFFSymbolRef S) : Sym(S) { + // Common symbols are aligned on natural boundaries up to 32 bytes. + // This is what MSVC link.exe does. + Align = std::min(uint64_t(32), NextPowerOf2(Sym.getValue())); +} + +uint32_t CommonChunk::getPermissions() const { + return IMAGE_SCN_CNT_UNINITIALIZED_DATA | IMAGE_SCN_MEM_READ | + IMAGE_SCN_MEM_WRITE; +} + +void StringChunk::writeTo(uint8_t *Buf) const { + memcpy(Buf + OutputSectionOff, Str.data(), Str.size()); +} + +ImportThunkChunkX64::ImportThunkChunkX64(Defined *S) : ImpSymbol(S) { + // Intel Optimization Manual says that all branch targets + // should be 16-byte aligned. MSVC linker does this too. + Align = 16; +} + +void ImportThunkChunkX64::writeTo(uint8_t *Buf) const { + memcpy(Buf + OutputSectionOff, ImportThunkX86, sizeof(ImportThunkX86)); + // The first two bytes is a JMP instruction. Fill its operand. + write32le(Buf + OutputSectionOff + 2, ImpSymbol->getRVA() - RVA - getSize()); +} + +void ImportThunkChunkX86::getBaserels(std::vector *Res) { + Res->emplace_back(getRVA() + 2); +} + +void ImportThunkChunkX86::writeTo(uint8_t *Buf) const { + memcpy(Buf + OutputSectionOff, ImportThunkX86, sizeof(ImportThunkX86)); + // The first two bytes is a JMP instruction. Fill its operand. + write32le(Buf + OutputSectionOff + 2, + ImpSymbol->getRVA() + Config->ImageBase); +} + +void ImportThunkChunkARM::getBaserels(std::vector *Res) { + Res->emplace_back(getRVA(), IMAGE_REL_BASED_ARM_MOV32T); +} + +void ImportThunkChunkARM::writeTo(uint8_t *Buf) const { + memcpy(Buf + OutputSectionOff, ImportThunkARM, sizeof(ImportThunkARM)); + // Fix mov.w and mov.t operands. + applyMOV32T(Buf + OutputSectionOff, ImpSymbol->getRVA() + Config->ImageBase); +} + +void LocalImportChunk::getBaserels(std::vector *Res) { + Res->emplace_back(getRVA()); +} + +size_t LocalImportChunk::getSize() const { + return Config->is64() ? 8 : 4; +} + +void LocalImportChunk::writeTo(uint8_t *Buf) const { + if (Config->is64()) { + write64le(Buf + OutputSectionOff, Sym->getRVA() + Config->ImageBase); + } else { + write32le(Buf + OutputSectionOff, Sym->getRVA() + Config->ImageBase); + } +} + +void SEHTableChunk::writeTo(uint8_t *Buf) const { + ulittle32_t *Begin = reinterpret_cast(Buf + OutputSectionOff); + size_t Cnt = 0; + for (Defined *D : Syms) + Begin[Cnt++] = D->getRVA(); + std::sort(Begin, Begin + Cnt); +} + +// Windows-specific. +// This class represents a block in .reloc section. +BaserelChunk::BaserelChunk(uint32_t Page, Baserel *Begin, Baserel *End) { + // Block header consists of 4 byte page RVA and 4 byte block size. + // Each entry is 2 byte. Last entry may be padding. + Data.resize(RoundUpToAlignment((End - Begin) * 2 + 8, 4)); + uint8_t *P = Data.data(); + write32le(P, Page); + write32le(P + 4, Data.size()); + P += 8; + for (Baserel *I = Begin; I != End; ++I) { + write16le(P, (I->Type << 12) | (I->RVA - Page)); + P += 2; + } +} + +void BaserelChunk::writeTo(uint8_t *Buf) const { + memcpy(Buf + OutputSectionOff, Data.data(), Data.size()); +} + +uint8_t Baserel::getDefaultType() { + switch (Config->Machine) { + case AMD64: + return IMAGE_REL_BASED_DIR64; + case I386: + return IMAGE_REL_BASED_HIGHLOW; + default: + llvm_unreachable("unknown machine type"); + } +} + +} // namespace coff +} // namespace lld Added: vendor/lld/dist/COFF/Chunks.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lld/dist/COFF/Chunks.h Wed Dec 30 11:57:38 2015 (r292934) @@ -0,0 +1,332 @@ +//===- Chunks.h -------------------------------------------------*- C++ -*-===// +// +// The LLVM Linker +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLD_COFF_CHUNKS_H +#define LLD_COFF_CHUNKS_H + +#include "Config.h" +#include "InputFiles.h" +#include "lld/Core/LLVM.h" +#include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/iterator.h" +#include "llvm/ADT/iterator_range.h" +#include "llvm/Object/COFF.h" +#include +#include + +namespace lld { +namespace coff { + +using llvm::COFF::ImportDirectoryTableEntry; +using llvm::object::COFFSymbolRef; +using llvm::object::SectionRef; +using llvm::object::coff_relocation; +using llvm::object::coff_section; +using llvm::sys::fs::file_magic; + +class Baserel; +class Defined; +class DefinedImportData; +class DefinedRegular; +class ObjectFile; +class OutputSection; +class SymbolBody; + +// Mask for section types (code, data, bss, disacardable, etc.) +// and permissions (writable, readable or executable). +const uint32_t PermMask = 0xFF0000F0; + +// A Chunk represents a chunk of data that will occupy space in the +// output (if the resolver chose that). It may or may not be backed by +// a section of an input file. It could be linker-created data, or +// doesn't even have actual data (if common or bss). +class Chunk { +public: + enum Kind { SectionKind, OtherKind }; + Kind kind() const { return ChunkKind; } + virtual ~Chunk() = default; + + // Returns the size of this chunk (even if this is a common or BSS.) + virtual size_t getSize() const = 0; + + // Write this chunk to a mmap'ed file, assuming Buf is pointing to + // beginning of the file. Because this function may use RVA values + // of other chunks for relocations, you need to set them properly + // before calling this function. + virtual void writeTo(uint8_t *Buf) const {} + + // The writer sets and uses the addresses. + uint64_t getRVA() const { return RVA; } + uint32_t getAlign() const { return Align; } + void setRVA(uint64_t V) { RVA = V; } + void setOutputSectionOff(uint64_t V) { OutputSectionOff = V; } + + // Returns true if this has non-zero data. BSS chunks return + // false. If false is returned, the space occupied by this chunk + // will be filled with zeros. + virtual bool hasData() const { return true; } + + // Returns readable/writable/executable bits. + virtual uint32_t getPermissions() const { return 0; } + + // Returns the section name if this is a section chunk. + // It is illegal to call this function on non-section chunks. + virtual StringRef getSectionName() const { + llvm_unreachable("unimplemented getSectionName"); + } + + // An output section has pointers to chunks in the section, and each + // chunk has a back pointer to an output section. + void setOutputSection(OutputSection *O) { Out = O; } + OutputSection *getOutputSection() { return Out; } + + // Windows-specific. + // Collect all locations that contain absolute addresses for base relocations. + virtual void getBaserels(std::vector *Res) {} + + // Returns a human-readable name of this chunk. Chunks are unnamed chunks of + // bytes, so this is used only for logging or debugging. + virtual StringRef getDebugName() { return ""; } + +protected: + Chunk(Kind K = OtherKind) : ChunkKind(K) {} + const Kind ChunkKind; + + // The RVA of this chunk in the output. The writer sets a value. + uint64_t RVA = 0; + + // The offset from beginning of the output section. The writer sets a value. + uint64_t OutputSectionOff = 0; + + // The output section for this chunk. + OutputSection *Out = nullptr; + + // The alignment of this chunk. The writer uses the value. + uint32_t Align = 1; +}; + +// A chunk corresponding a section of an input file. +class SectionChunk : public Chunk { + // Identical COMDAT Folding feature accesses section internal data. + friend class ICF; + +public: + class symbol_iterator : public llvm::iterator_adaptor_base< + symbol_iterator, const coff_relocation *, + std::random_access_iterator_tag, SymbolBody *> { + friend SectionChunk; + + ObjectFile *File; + + symbol_iterator(ObjectFile *File, const coff_relocation *I) + : symbol_iterator::iterator_adaptor_base(I), File(File) {} + + public: + symbol_iterator() = default; + + SymbolBody *operator*() const { + return File->getSymbolBody(I->SymbolTableIndex); + } + }; + + SectionChunk(ObjectFile *File, const coff_section *Header); + static bool classof(const Chunk *C) { return C->kind() == SectionKind; } + size_t getSize() const override { return Header->SizeOfRawData; } + void writeTo(uint8_t *Buf) const override; + bool hasData() const override; + uint32_t getPermissions() const override; + StringRef getSectionName() const override { return SectionName; } + void getBaserels(std::vector *Res) override; + bool isCOMDAT() const; + void applyRelX64(uint8_t *Off, uint16_t Type, Defined *Sym, uint64_t P) const; + void applyRelX86(uint8_t *Off, uint16_t Type, Defined *Sym, uint64_t P) const; + void applyRelARM(uint8_t *Off, uint16_t Type, Defined *Sym, uint64_t P) const; + + // Called if the garbage collector decides to not include this chunk + // in a final output. It's supposed to print out a log message to stdout. + void printDiscardedMessage() const; + + // Adds COMDAT associative sections to this COMDAT section. A chunk + // and its children are treated as a group by the garbage collector. + void addAssociative(SectionChunk *Child); + + StringRef getDebugName() override; + void setSymbol(DefinedRegular *S) { if (!Sym) Sym = S; } + + // Used by the garbage collector. + bool isLive() { return !Config->DoGC || Live; } + void markLive() { + assert(!isLive() && "Cannot mark an already live section!"); + Live = true; + } + + // Allow iteration over the bodies of this chunk's relocated symbols. + llvm::iterator_range symbols() const { + return llvm::make_range(symbol_iterator(File, Relocs.begin()), + symbol_iterator(File, Relocs.end())); + } + + // Allow iteration over the associated child chunks for this section. + ArrayRef children() const { return AssocChildren; } + + // A pointer pointing to a replacement for this chunk. + // Initially it points to "this" object. If this chunk is merged + // with other chunk by ICF, it points to another chunk, + // and this chunk is considrered as dead. + SectionChunk *Repl; + + // The CRC of the contents as described in the COFF spec 4.5.5. + // Auxiliary Format 5: Section Definitions. Used for ICF. + uint32_t Checksum = 0; + +private: + ArrayRef getContents() const; + + // A file this chunk was created from. + ObjectFile *File; + + const coff_section *Header; + StringRef SectionName; + std::vector AssocChildren; + llvm::iterator_range Relocs; + size_t NumRelocs; + + // Used by the garbage collector. + bool Live; + + // Used for ICF (Identical COMDAT Folding) + void replace(SectionChunk *Other); + std::atomic GroupID = { 0 }; + + // Sym points to a section symbol if this is a COMDAT chunk. + DefinedRegular *Sym = nullptr; +}; + +// A chunk for common symbols. Common chunks don't have actual data. +class CommonChunk : public Chunk { +public: + CommonChunk(const COFFSymbolRef Sym); + size_t getSize() const override { return Sym.getValue(); } + bool hasData() const override { return false; } + uint32_t getPermissions() const override; + StringRef getSectionName() const override { return ".bss"; } + +private: + const COFFSymbolRef Sym; +}; + +// A chunk for linker-created strings. +class StringChunk : public Chunk { +public: + explicit StringChunk(StringRef S) : Str(S) {} + size_t getSize() const override { return Str.size() + 1; } + void writeTo(uint8_t *Buf) const override; + +private: + StringRef Str; +}; + +static const uint8_t ImportThunkX86[] = { + 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, // JMP *0x0 +}; + +static const uint8_t ImportThunkARM[] = { + 0x40, 0xf2, 0x00, 0x0c, // mov.w ip, #0 + 0xc0, 0xf2, 0x00, 0x0c, // mov.t ip, #0 + 0xdc, 0xf8, 0x00, 0xf0, // ldr.w pc, [ip] +}; + +// Windows-specific. +// A chunk for DLL import jump table entry. In a final output, it's +// contents will be a JMP instruction to some __imp_ symbol. +class ImportThunkChunkX64 : public Chunk { +public: + explicit ImportThunkChunkX64(Defined *S); + size_t getSize() const override { return sizeof(ImportThunkX86); } + void writeTo(uint8_t *Buf) const override; + +private: + Defined *ImpSymbol; +}; + +class ImportThunkChunkX86 : public Chunk { +public: + explicit ImportThunkChunkX86(Defined *S) : ImpSymbol(S) {} + size_t getSize() const override { return sizeof(ImportThunkX86); } + void getBaserels(std::vector *Res) override; + void writeTo(uint8_t *Buf) const override; + +private: + Defined *ImpSymbol; +}; + +class ImportThunkChunkARM : public Chunk { +public: + explicit ImportThunkChunkARM(Defined *S) : ImpSymbol(S) {} + size_t getSize() const override { return sizeof(ImportThunkARM); } + void getBaserels(std::vector *Res) override; + void writeTo(uint8_t *Buf) const override; + +private: + Defined *ImpSymbol; +}; + +// Windows-specific. +// See comments for DefinedLocalImport class. +class LocalImportChunk : public Chunk { +public: + explicit LocalImportChunk(Defined *S) : Sym(S) {} + size_t getSize() const override; + void getBaserels(std::vector *Res) override; + void writeTo(uint8_t *Buf) const override; + +private: + Defined *Sym; +}; + +// Windows-specific. +// A chunk for SEH table which contains RVAs of safe exception handler +// functions. x86-only. +class SEHTableChunk : public Chunk { +public: + explicit SEHTableChunk(std::set S) : Syms(S) {} + size_t getSize() const override { return Syms.size() * 4; } + void writeTo(uint8_t *Buf) const override; + +private: + std::set Syms; +}; + +// Windows-specific. +// This class represents a block in .reloc section. +// See the PE/COFF spec 5.6 for details. +class BaserelChunk : public Chunk { +public: + BaserelChunk(uint32_t Page, Baserel *Begin, Baserel *End); + size_t getSize() const override { return Data.size(); } + void writeTo(uint8_t *Buf) const override; + +private: + std::vector Data; +}; + +class Baserel { +public: + Baserel(uint32_t V, uint8_t Ty) : RVA(V), Type(Ty) {} + explicit Baserel(uint32_t V) : Baserel(V, getDefaultType()) {} + uint8_t getDefaultType(); + + uint32_t RVA; + uint8_t Type; +}; + +} // namespace coff +} // namespace lld + +#endif Added: vendor/lld/dist/COFF/Config.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lld/dist/COFF/Config.h Wed Dec 30 11:57:38 2015 (r292934) @@ -0,0 +1,140 @@ +//===- Config.h -------------------------------------------------*- C++ -*-===// +// +// The LLVM Linker +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLD_COFF_CONFIG_H +#define LLD_COFF_CONFIG_H + +#include "llvm/ADT/StringRef.h" +#include "llvm/Object/COFF.h" +#include +#include +#include +#include + +namespace lld { +namespace coff { + +using llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN; +using llvm::COFF::WindowsSubsystem; +using llvm::StringRef; +class DefinedAbsolute; +class DefinedRelative; +class Undefined; + +// Short aliases. +static const auto AMD64 = llvm::COFF::IMAGE_FILE_MACHINE_AMD64; +static const auto ARMNT = llvm::COFF::IMAGE_FILE_MACHINE_ARMNT; +static const auto I386 = llvm::COFF::IMAGE_FILE_MACHINE_I386; + +// Represents an /export option. +struct Export { + StringRef Name; // N in /export:N or /export:E=N + StringRef ExtName; // E in /export:E=N + Undefined *Sym = nullptr; + uint16_t Ordinal = 0; + bool Noname = false; + bool Data = false; + bool Private = false; + + // True if this /export option was in .drectves section. + bool Directives = false; + StringRef SymbolName; + StringRef ExportName; // Name in DLL + + bool operator==(const Export &E) { + return (Name == E.Name && ExtName == E.ExtName && + Ordinal == E.Ordinal && Noname == E.Noname && + Data == E.Data && Private == E.Private); + } +}; + +// Global configuration. +struct Configuration { + enum ManifestKind { SideBySide, Embed, No }; + bool is64() { return Machine == AMD64; } + + llvm::COFF::MachineTypes Machine = IMAGE_FILE_MACHINE_UNKNOWN; + bool Verbose = false; + WindowsSubsystem Subsystem = llvm::COFF::IMAGE_SUBSYSTEM_UNKNOWN; + Undefined *Entry = nullptr; + bool NoEntry = false; + std::string OutputFile; + bool DoGC = true; + bool DoICF = true; + bool Relocatable = true; + bool Force = false; + bool Debug = false; + bool WriteSymtab = true; + + // Symbols in this set are considered as live by the garbage collector. + std::set GCRoot; + + std::set NoDefaultLibs; + bool NoDefaultLibAll = false; + + // True if we are creating a DLL. + bool DLL = false; + StringRef Implib; + std::vector Exports; + std::set DelayLoads; + std::map DLLOrder; + Undefined *DelayLoadHelper = nullptr; + + // Used for SafeSEH. + DefinedRelative *SEHTable = nullptr; + DefinedAbsolute *SEHCount = nullptr; + + // Used for /opt:lldlto=N + unsigned LTOOptLevel = 2; + + // Used for /opt:lldltojobs=N + unsigned LTOJobs = 1; + + // Used for /merge:from=to (e.g. /merge:.rdata=.text) + std::map Merge; + + // Options for manifest files. + ManifestKind Manifest = SideBySide; + int ManifestID = 1; + StringRef ManifestDependency; + bool ManifestUAC = true; + StringRef ManifestLevel = "'asInvoker'"; + StringRef ManifestUIAccess = "'false'"; + StringRef ManifestFile; + + // Used for /failifmismatch. + std::map MustMatch; + + // Used for /alternatename. + std::map AlternateNames; + + uint64_t ImageBase = -1; + uint64_t StackReserve = 1024 * 1024; + uint64_t StackCommit = 4096; + uint64_t HeapReserve = 1024 * 1024; + uint64_t HeapCommit = 4096; + uint32_t MajorImageVersion = 0; + uint32_t MinorImageVersion = 0; + uint32_t MajorOSVersion = 6; + uint32_t MinorOSVersion = 0; + bool DynamicBase = true; + bool AllowBind = true; + bool NxCompat = true; + bool AllowIsolation = true; + bool TerminalServerAware = true; + bool LargeAddressAware = false; + bool HighEntropyVA = false; +}; + +extern Configuration *Config; + +} // namespace coff +} // namespace lld + +#endif Added: vendor/lld/dist/COFF/DLL.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lld/dist/COFF/DLL.cpp Wed Dec 30 11:57:38 2015 (r292934) @@ -0,0 +1,556 @@ +//===- DLL.cpp ------------------------------------------------------------===// +// +// The LLVM Linker +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines various types of chunks for the DLL import or export +// descriptor tables. They are inherently Windows-specific. +// You need to read Microsoft PE/COFF spec to understand details +// about the data structures. +// +// If you are not particularly interested in linking against Windows +// DLL, you can skip this file, and you should still be able to +// understand the rest of the linker. +// +//===----------------------------------------------------------------------===// + +#include "Chunks.h" +#include "DLL.h" +#include "llvm/Object/COFF.h" +#include "llvm/Support/Endian.h" +#include "llvm/Support/Path.h" + +using namespace llvm; +using namespace llvm::object; +using namespace llvm::support::endian; +using namespace llvm::COFF; + +namespace lld { +namespace coff { +namespace { + +// Import table + +static int ptrSize() { return Config->is64() ? 8 : 4; } + +// A chunk for the import descriptor table. +class HintNameChunk : public Chunk { +public: + HintNameChunk(StringRef N, uint16_t H) : Name(N), Hint(H) {} + + size_t getSize() const override { + // Starts with 2 byte Hint field, followed by a null-terminated string, + // ends with 0 or 1 byte padding. + return RoundUpToAlignment(Name.size() + 3, 2); + } + + void writeTo(uint8_t *Buf) const override { + write16le(Buf + OutputSectionOff, Hint); + memcpy(Buf + OutputSectionOff + 2, Name.data(), Name.size()); + } + +private: + StringRef Name; + uint16_t Hint; +}; + +// A chunk for the import descriptor table. +class LookupChunk : public Chunk { +public: + explicit LookupChunk(Chunk *C) : HintName(C) {} + size_t getSize() const override { return ptrSize(); } + + void writeTo(uint8_t *Buf) const override { + write32le(Buf + OutputSectionOff, HintName->getRVA()); + } + + Chunk *HintName; +}; + +// A chunk for the import descriptor table. +// This chunk represent import-by-ordinal symbols. +// See Microsoft PE/COFF spec 7.1. Import Header for details. +class OrdinalOnlyChunk : public Chunk { +public: + explicit OrdinalOnlyChunk(uint16_t V) : Ordinal(V) {} + size_t getSize() const override { return ptrSize(); } + + void writeTo(uint8_t *Buf) const override { + // An import-by-ordinal slot has MSB 1 to indicate that + // this is import-by-ordinal (and not import-by-name). + if (Config->is64()) { + write64le(Buf + OutputSectionOff, (1ULL << 63) | Ordinal); + } else { + write32le(Buf + OutputSectionOff, (1ULL << 31) | Ordinal); + } + } + + uint16_t Ordinal; +}; + +// A chunk for the import descriptor table. +class ImportDirectoryChunk : public Chunk { +public: + explicit ImportDirectoryChunk(Chunk *N) : DLLName(N) {} + size_t getSize() const override { return sizeof(ImportDirectoryTableEntry); } + + void writeTo(uint8_t *Buf) const override { + auto *E = (coff_import_directory_table_entry *)(Buf + OutputSectionOff); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Dec 30 11:58:14 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 707E9A55C70; Wed, 30 Dec 2015 11:58:14 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 242881C7E; Wed, 30 Dec 2015 11:58:14 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBwDHG052211; Wed, 30 Dec 2015 11:58:13 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBwDUZ052210; Wed, 30 Dec 2015 11:58:13 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301158.tBUBwDUZ052210@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:58:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292935 - vendor/lld/lld-trunk-r256633 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:58:14 -0000 Author: dim Date: Wed Dec 30 11:58:13 2015 New Revision: 292935 URL: https://svnweb.freebsd.org/changeset/base/292935 Log: Tag lld trunk r256633. Added: vendor/lld/lld-trunk-r256633/ - copied from r292934, vendor/lld/dist/ From owner-svn-src-all@freebsd.org Wed Dec 30 12:49:41 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 743F0A51914; Wed, 30 Dec 2015 12:49:41 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 42FC01556; Wed, 30 Dec 2015 12:49:41 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUCnek1069102; Wed, 30 Dec 2015 12:49:40 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUCndGi069094; Wed, 30 Dec 2015 12:49:39 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301249.tBUCndGi069094@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 12:49:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292937 - in vendor/llvm/dist: include/llvm/DebugInfo/DWARF lib/DebugInfo/CodeView lib/DebugInfo/DWARF test/DebugInfo/Inputs test/MC/Hexagon test/MC/X86 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 12:49:41 -0000 Author: dim Date: Wed Dec 30 12:49:39 2015 New Revision: 292937 URL: https://svnweb.freebsd.org/changeset/base/292937 Log: Convert a few upstream files back to their original DOS line endings. Modified: vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/Makefile (contents, props changed) vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro-cmd.h (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro.cc (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro.h (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/test.s (contents, props changed) vendor/llvm/dist/test/MC/X86/X86_64-pku.s (contents, props changed) Modified: vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h ============================================================================== --- vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h Wed Dec 30 12:10:04 2015 (r292936) +++ vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h Wed Dec 30 12:49:39 2015 (r292937) @@ -1,59 +1,59 @@ -//===-- DWARFDebugMacro.h ---------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H -#define LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H - -#include "llvm/ADT/SmallVector.h" -#include "llvm/ADT/StringRef.h" -#include "llvm/Support/DataExtractor.h" -#include "llvm/Support/Dwarf.h" - -namespace llvm { - -class raw_ostream; - -class DWARFDebugMacro { - /// A single macro entry within a macro list. - struct Entry { - /// The type of the macro entry. - uint32_t Type; - union { - /// The source line where the macro is defined. - uint64_t Line; - /// Vendor extension constant value. - uint64_t ExtConstant; - }; - - union { - /// The string (name, value) of the macro entry. - const char *MacroStr; - // An unsigned integer indicating the identity of the source file. - uint64_t File; - /// Vendor extension string. - const char *ExtStr; - }; - }; - - typedef SmallVector MacroList; - - /// A list of all the macro entries in the debug_macinfo section. - MacroList Macros; - -public: - DWARFDebugMacro() {} - /// Print the macro list found within the debug_macinfo section. - void dump(raw_ostream &OS) const; - /// Parse the debug_macinfo section accessible via the 'data' parameter. - void parse(DataExtractor data); -}; - -} - -#endif +//===-- DWARFDebugMacro.h ---------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H +#define LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H + +#include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/Support/DataExtractor.h" +#include "llvm/Support/Dwarf.h" + +namespace llvm { + +class raw_ostream; + +class DWARFDebugMacro { + /// A single macro entry within a macro list. + struct Entry { + /// The type of the macro entry. + uint32_t Type; + union { + /// The source line where the macro is defined. + uint64_t Line; + /// Vendor extension constant value. + uint64_t ExtConstant; + }; + + union { + /// The string (name, value) of the macro entry. + const char *MacroStr; + // An unsigned integer indicating the identity of the source file. + uint64_t File; + /// Vendor extension string. + const char *ExtStr; + }; + }; + + typedef SmallVector MacroList; + + /// A list of all the macro entries in the debug_macinfo section. + MacroList Macros; + +public: + DWARFDebugMacro() {} + /// Print the macro list found within the debug_macinfo section. + void dump(raw_ostream &OS) const; + /// Parse the debug_macinfo section accessible via the 'data' parameter. + void parse(DataExtractor data); +}; + +} + +#endif Modified: vendor/llvm/dist/lib/DebugInfo/CodeView/Makefile ============================================================================== --- vendor/llvm/dist/lib/DebugInfo/CodeView/Makefile Wed Dec 30 12:10:04 2015 (r292936) +++ vendor/llvm/dist/lib/DebugInfo/CodeView/Makefile Wed Dec 30 12:49:39 2015 (r292937) @@ -1,14 +1,14 @@ -##===- lib/DebugInfo/CodeView/Makefile ---------------------*- Makefile -*-===## -# -# The LLVM Compiler Infrastructure -# -# This file is distributed under the University of Illinois Open Source -# License. See LICENSE.TXT for details. -# -##===----------------------------------------------------------------------===## - -LEVEL = ../../.. -LIBRARYNAME = LLVMDebugInfoCodeView -BUILD_ARCHIVE := 1 - -include $(LEVEL)/Makefile.common +##===- lib/DebugInfo/CodeView/Makefile ---------------------*- Makefile -*-===## +# +# The LLVM Compiler Infrastructure +# +# This file is distributed under the University of Illinois Open Source +# License. See LICENSE.TXT for details. +# +##===----------------------------------------------------------------------===## + +LEVEL = ../../.. +LIBRARYNAME = LLVMDebugInfoCodeView +BUILD_ARCHIVE := 1 + +include $(LEVEL)/Makefile.common Modified: vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp ============================================================================== --- vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp Wed Dec 30 12:10:04 2015 (r292936) +++ vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp Wed Dec 30 12:49:39 2015 (r292937) @@ -1,103 +1,103 @@ -//===-- DWARFDebugMacro.cpp -----------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "SyntaxHighlighting.h" -#include "llvm/DebugInfo/DWARF/DWARFDebugMacro.h" -#include "llvm/Support/Compiler.h" -#include "llvm/Support/Dwarf.h" -#include "llvm/Support/Format.h" -#include "llvm/Support/raw_ostream.h" - -using namespace llvm; -using namespace dwarf; -using namespace syntax; - -void DWARFDebugMacro::dump(raw_ostream &OS) const { - unsigned IndLevel = 0; - for (const Entry &E : Macros) { - // There should not be DW_MACINFO_end_file when IndLevel is Zero. However, - // this check handles the case of corrupted ".debug_macinfo" section. - if (IndLevel > 0) - IndLevel -= (E.Type == DW_MACINFO_end_file); - // Print indentation. - for (unsigned I = 0; I < IndLevel; I++) - OS << " "; - IndLevel += (E.Type == DW_MACINFO_start_file); - - WithColor(OS, syntax::Macro).get() << MacinfoString(E.Type); - switch (E.Type) { - default: - // Got a corrupted ".debug_macinfo" section (invalid macinfo type). - break; - case DW_MACINFO_define: - case DW_MACINFO_undef: - OS << " - lineno: " << E.Line; - OS << " macro: " << E.MacroStr; - break; - case DW_MACINFO_start_file: - OS << " - lineno: " << E.Line; - OS << " filenum: " << E.File; - break; - case DW_MACINFO_end_file: - break; - case DW_MACINFO_vendor_ext: - OS << " - constant: " << E.ExtConstant; - OS << " string: " << E.ExtStr; - break; - } - OS << "\n"; - } -} - -void DWARFDebugMacro::parse(DataExtractor data) { - uint32_t Offset = 0; - while (data.isValidOffset(Offset)) { - // A macro list entry consists of: - Entry E; - // 1. Macinfo type - E.Type = data.getULEB128(&Offset); - - if (E.Type == 0) { - // Reached end of ".debug_macinfo" section. - return; - } - - switch (E.Type) { - default: - // Got a corrupted ".debug_macinfo" section (invalid macinfo type). - // Push the corrupted entry to the list and halt parsing. - E.Type = DW_MACINFO_invalid; - Macros.push_back(E); - return; - case DW_MACINFO_define: - case DW_MACINFO_undef: - // 2. Source line - E.Line = data.getULEB128(&Offset); - // 3. Macro string - E.MacroStr = data.getCStr(&Offset); - break; - case DW_MACINFO_start_file: - // 2. Source line - E.Line = data.getULEB128(&Offset); - // 3. Source file id - E.File = data.getULEB128(&Offset); - break; - case DW_MACINFO_end_file: - break; - case DW_MACINFO_vendor_ext: - // 2. Vendor extension constant - E.ExtConstant = data.getULEB128(&Offset); - // 3. Vendor extension string - E.ExtStr = data.getCStr(&Offset); - break; - } - - Macros.push_back(E); - } -} +//===-- DWARFDebugMacro.cpp -----------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "SyntaxHighlighting.h" +#include "llvm/DebugInfo/DWARF/DWARFDebugMacro.h" +#include "llvm/Support/Compiler.h" +#include "llvm/Support/Dwarf.h" +#include "llvm/Support/Format.h" +#include "llvm/Support/raw_ostream.h" + +using namespace llvm; +using namespace dwarf; +using namespace syntax; + +void DWARFDebugMacro::dump(raw_ostream &OS) const { + unsigned IndLevel = 0; + for (const Entry &E : Macros) { + // There should not be DW_MACINFO_end_file when IndLevel is Zero. However, + // this check handles the case of corrupted ".debug_macinfo" section. + if (IndLevel > 0) + IndLevel -= (E.Type == DW_MACINFO_end_file); + // Print indentation. + for (unsigned I = 0; I < IndLevel; I++) + OS << " "; + IndLevel += (E.Type == DW_MACINFO_start_file); + + WithColor(OS, syntax::Macro).get() << MacinfoString(E.Type); + switch (E.Type) { + default: + // Got a corrupted ".debug_macinfo" section (invalid macinfo type). + break; + case DW_MACINFO_define: + case DW_MACINFO_undef: + OS << " - lineno: " << E.Line; + OS << " macro: " << E.MacroStr; + break; + case DW_MACINFO_start_file: + OS << " - lineno: " << E.Line; + OS << " filenum: " << E.File; + break; + case DW_MACINFO_end_file: + break; + case DW_MACINFO_vendor_ext: + OS << " - constant: " << E.ExtConstant; + OS << " string: " << E.ExtStr; + break; + } + OS << "\n"; + } +} + +void DWARFDebugMacro::parse(DataExtractor data) { + uint32_t Offset = 0; + while (data.isValidOffset(Offset)) { + // A macro list entry consists of: + Entry E; + // 1. Macinfo type + E.Type = data.getULEB128(&Offset); + + if (E.Type == 0) { + // Reached end of ".debug_macinfo" section. + return; + } + + switch (E.Type) { + default: + // Got a corrupted ".debug_macinfo" section (invalid macinfo type). + // Push the corrupted entry to the list and halt parsing. + E.Type = DW_MACINFO_invalid; + Macros.push_back(E); + return; + case DW_MACINFO_define: + case DW_MACINFO_undef: + // 2. Source line + E.Line = data.getULEB128(&Offset); + // 3. Macro string + E.MacroStr = data.getCStr(&Offset); + break; + case DW_MACINFO_start_file: + // 2. Source line + E.Line = data.getULEB128(&Offset); + // 3. Source file id + E.File = data.getULEB128(&Offset); + break; + case DW_MACINFO_end_file: + break; + case DW_MACINFO_vendor_ext: + // 2. Vendor extension constant + E.ExtConstant = data.getULEB128(&Offset); + // 3. Vendor extension string + E.ExtStr = data.getCStr(&Offset); + break; + } + + Macros.push_back(E); + } +} Modified: vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro-cmd.h ============================================================================== --- vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro-cmd.h Wed Dec 30 12:10:04 2015 (r292936) +++ vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro-cmd.h Wed Dec 30 12:49:39 2015 (r292937) @@ -1 +1 @@ -#define M4 Value4 +#define M4 Value4 Modified: vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro.cc ============================================================================== --- vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro.cc Wed Dec 30 12:10:04 2015 (r292936) +++ vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro.cc Wed Dec 30 12:49:39 2015 (r292937) @@ -1,11 +1,11 @@ -#define M1 Value1 -#include "dwarfdump-macro.h" -#define M2(x, y) ((x)+(y)* Value2) - -// Built with GCC -// $ mkdir -p /tmp/dbginfo -// $ cp dwarfdump-macro.cc /tmp/dbginfo -// $ cp dwarfdump-macro.h /tmp/dbginfo -// $ cp dwarfdump-macro-cmd.h /tmp/dbginfo -// $ cd /tmp/dbginfo -// $ g++ -c -g3 -O0 -DM3=Value3 -include dwarfdump-macro-cmd.h dwarfdump-macro.cc -o +#define M1 Value1 +#include "dwarfdump-macro.h" +#define M2(x, y) ((x)+(y)* Value2) + +// Built with GCC +// $ mkdir -p /tmp/dbginfo +// $ cp dwarfdump-macro.cc /tmp/dbginfo +// $ cp dwarfdump-macro.h /tmp/dbginfo +// $ cp dwarfdump-macro-cmd.h /tmp/dbginfo +// $ cd /tmp/dbginfo +// $ g++ -c -g3 -O0 -DM3=Value3 -include dwarfdump-macro-cmd.h dwarfdump-macro.cc -o Modified: vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro.h ============================================================================== --- vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro.h Wed Dec 30 12:10:04 2015 (r292936) +++ vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-macro.h Wed Dec 30 12:49:39 2015 (r292937) @@ -1,5 +1,5 @@ - - - -#undef M1 -#define M1 NewValue1 + + + +#undef M1 +#define M1 NewValue1 Modified: vendor/llvm/dist/test/MC/Hexagon/test.s ============================================================================== --- vendor/llvm/dist/test/MC/Hexagon/test.s Wed Dec 30 12:10:04 2015 (r292936) +++ vendor/llvm/dist/test/MC/Hexagon/test.s Wed Dec 30 12:49:39 2015 (r292937) @@ -1,4 +1,4 @@ -#RUN: llvm-mc -filetype=obj -triple=hexagon -mcpu=hexagonv60 %s - -{ vmem (r0 + #0) = v0 +#RUN: llvm-mc -filetype=obj -triple=hexagon -mcpu=hexagonv60 %s + +{ vmem (r0 + #0) = v0 r0 = memw(r0) } \ No newline at end of file Modified: vendor/llvm/dist/test/MC/X86/X86_64-pku.s ============================================================================== --- vendor/llvm/dist/test/MC/X86/X86_64-pku.s Wed Dec 30 12:10:04 2015 (r292936) +++ vendor/llvm/dist/test/MC/X86/X86_64-pku.s Wed Dec 30 12:49:39 2015 (r292937) @@ -1,8 +1,8 @@ -// RUN: llvm-mc -triple x86_64-unknown-unknown -mattr=+pku --show-encoding < %s | FileCheck %s -// CHECK: rdpkru -// CHECK: encoding: [0x0f,0x01,0xee] - rdpkru - -// CHECK: wrpkru -// CHECK: encoding: [0x0f,0x01,0xef] +// RUN: llvm-mc -triple x86_64-unknown-unknown -mattr=+pku --show-encoding < %s | FileCheck %s +// CHECK: rdpkru +// CHECK: encoding: [0x0f,0x01,0xee] + rdpkru + +// CHECK: wrpkru +// CHECK: encoding: [0x0f,0x01,0xef] wrpkru \ No newline at end of file From owner-svn-src-all@freebsd.org Wed Dec 30 12:51:06 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E1B84A51A80; Wed, 30 Dec 2015 12:51:06 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 97C7C17C7; Wed, 30 Dec 2015 12:51:06 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUCp5GJ069703; Wed, 30 Dec 2015 12:51:05 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUCp51W069702; Wed, 30 Dec 2015 12:51:05 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301251.tBUCp51W069702@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 12:51:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292938 - vendor/llvm/llvm-trunk-r256633 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 12:51:07 -0000 Author: dim Date: Wed Dec 30 12:51:05 2015 New Revision: 292938 URL: https://svnweb.freebsd.org/changeset/base/292938 Log: Delete old llvm trunk r256633 tag... Deleted: vendor/llvm/llvm-trunk-r256633/ From owner-svn-src-all@freebsd.org Wed Dec 30 12:51:10 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E72BCA51AAC for ; Wed, 30 Dec 2015 12:51:10 +0000 (UTC) (envelope-from bounces+73574-8822-svn-src-all=freebsd.org@sendgrid.net) Received: from o3.shared.sendgrid.net (o3.shared.sendgrid.net [208.117.48.85]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AD63D181A for ; Wed, 30 Dec 2015 12:51:10 +0000 (UTC) (envelope-from bounces+73574-8822-svn-src-all=freebsd.org@sendgrid.net) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sendgrid.info; h=subject:to:references:from:mime-version:in-reply-to:content-type:content-transfer-encoding; s=smtpapi; bh=NUhqSNknvDpLOOJptHWGD6wSthg=; b=ugcrDODEhC+ssBjkoL ERCRpeGDetHQpCTULCsddL01V6uPHhZrTGAW9SMcSzCaSsW7+ZzhnR6TnBa2sn5j EnRgMRn9SEQ1HgdaFoVOEceqT9lXGAtVTjqWNIoRq2dB22yDjOXN8Ng2CYxwa0bR VlfuOA1xaMys5aszUGylQRioM= Received: by filter0578p1mdw1.sendgrid.net with SMTP id filter0578p1mdw1.11623.5683D33423 2015-12-30 12:51:00.54540088 +0000 UTC Received: from mail.tarsnap.com (ec2-54-86-246-204.compute-1.amazonaws.com [54.86.246.204]) by ismtpd0002p1iad1.sendgrid.net (SG) with ESMTP id PjTR6tFvTcOoN65h8DoWdg for ; Wed, 30 Dec 2015 12:51:00.614 +0000 (UTC) Received: (qmail 57453 invoked from network); 30 Dec 2015 12:48:52 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by ec2-107-20-205-189.compute-1.amazonaws.com with ESMTP; 30 Dec 2015 12:48:52 -0000 Received: (qmail 47191 invoked from network); 30 Dec 2015 12:50:45 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by clamshell.daemonology.net with SMTP; 30 Dec 2015 12:50:45 -0000 Subject: Re: svn commit: r289421 - in head/etc: . mtree ntp To: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, edwin@freebsd.org, Xin Li References: <201510161404.t9GE4GqM046436@repo.freebsd.org> From: Colin Percival Message-ID: <5683D325.6020409@freebsd.org> Date: Wed, 30 Dec 2015 04:50:45 -0800 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <201510161404.t9GE4GqM046436@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SG-EID: A6W2xSVPHetogaU8rnzccWwgBYtN+QvIzXyjfe/10PGmOxLDeLkR9lhufBayppJLxjnosbm/60zIOv IWiBeKwd+kZD6/0gtlkVFRrYG0AM4DUi3mPbHK2WaEb0asYn/RE3xWgud6l/+PnVFOX3vhnxMIyIWX t5VirJYU52Kr7eDZi8PJz+FPtdrzkdxn/9dkvmYT7Ga+5lYYi+UVe4Vq1Nq/aLslFdESIuKeFJeilt g= X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 12:51:11 -0000 On 10/16/15 07:04, Cy Schubert wrote: > Add default leap-seconds file. This should help ntp networks get the > leap second date correct > > Added: > head/etc/ntp/ > head/etc/ntp/Makefile (contents, props changed) > head/etc/ntp/leap-seconds (contents, props changed) So... is someone going to be keeping this file up to date? We seem to have the same information in contrib/tzdata/leapseconds (which is being kept up to date -- thank you edwin and delphij!) but having this file in /etc/ntp/ being out of date is making ntpd refuse to start. -- Colin Percival Security Officer Emeritus, FreeBSD | The power to serve Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid From owner-svn-src-all@freebsd.org Wed Dec 30 12:51:45 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 270FEA51B28; Wed, 30 Dec 2015 12:51:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D08211B02; Wed, 30 Dec 2015 12:51:44 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUCphtP071585; Wed, 30 Dec 2015 12:51:43 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUCphIR071584; Wed, 30 Dec 2015 12:51:43 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301251.tBUCphIR071584@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 12:51:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r292939 - vendor/llvm/llvm-trunk-r256633 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 12:51:45 -0000 Author: dim Date: Wed Dec 30 12:51:43 2015 New Revision: 292939 URL: https://svnweb.freebsd.org/changeset/base/292939 Log: ... and create a new llvm trunk r256633 tag. Added: vendor/llvm/llvm-trunk-r256633/ - copied from r292938, vendor/llvm/dist/ From owner-svn-src-all@freebsd.org Wed Dec 30 13:12:56 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A4FCA5514F; Wed, 30 Dec 2015 13:12:56 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 22168161D; Wed, 30 Dec 2015 13:12:56 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUDCthH077635; Wed, 30 Dec 2015 13:12:55 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUDCsgZ077631; Wed, 30 Dec 2015 13:12:54 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201512301312.tBUDCsgZ077631@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Wed, 30 Dec 2015 13:12:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292940 - in stable/10: . release share/mk X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 13:12:56 -0000 Author: gjb Date: Wed Dec 30 13:12:54 2015 New Revision: 292940 URL: https://svnweb.freebsd.org/changeset/base/292940 Log: MFC r278449, r278926: r278449: Enable multi-threaded xz(1) compression for release install media. r278926 (rpaulo): Use xz(1) via pipe when compressing the release distribution tarballs. Tested on: stable/10@r292855 Sponsored by: The FreeBSD Foundation Modified: stable/10/Makefile.inc1 stable/10/release/Makefile stable/10/release/Makefile.vm stable/10/share/mk/bsd.own.mk Directory Properties: stable/10/ (props changed) Modified: stable/10/Makefile.inc1 ============================================================================== --- stable/10/Makefile.inc1 Wed Dec 30 12:51:43 2015 (r292939) +++ stable/10/Makefile.inc1 Wed Dec 30 13:12:54 2015 (r292940) @@ -913,13 +913,13 @@ packageworld: .for dist in base ${EXTRA_DISTRIBUTIONS} .if defined(NO_ROOT) ${_+_}cd ${DESTDIR}/${DISTDIR}/${dist}; \ - tar cvJf ${DESTDIR}/${DISTDIR}/${dist}.txz \ - --exclude usr/lib/debug \ - @${DESTDIR}/${DISTDIR}/${dist}.meta + tar cvf - --exclude usr/lib/debug \ + @${DESTDIR}/${DISTDIR}/${dist}.meta | \ + ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/${dist}.txz .else ${_+_}cd ${DESTDIR}/${DISTDIR}/${dist}; \ - tar cvJf ${DESTDIR}/${DISTDIR}/${dist}.txz \ - --exclude usr/lib/debug . + tar cvf - --exclude usr/lib/debug . | \ + ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/${dist}.txz .endif .endfor @@ -927,12 +927,12 @@ packageworld: . for dist in base ${EXTRA_DISTRIBUTIONS} . if defined(NO_ROOT) ${_+_}cd ${DESTDIR}/${DISTDIR}/${dist}; \ - tar cvJf ${DESTDIR}/${DISTDIR}/${dist}.debug.txz \ - @${DESTDIR}/${DISTDIR}/${dist}.debug.meta + tar cvf - @${DESTDIR}/${DISTDIR}/${dist}.debug.meta | \ + ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/${dist}.debug.txz . else ${_+_}cd ${DESTDIR}/${DISTDIR}/${dist}; \ - tar cvJfL ${DESTDIR}/${DISTDIR}/${dist}.debug.txz \ - usr/lib/debug + tar cvLf - usr/lib/debug | \ + ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/${dist}-debug.txz . endif . endfor .endif @@ -1141,19 +1141,21 @@ distributekernel distributekernel.debug: packagekernel: .if defined(NO_ROOT) cd ${DESTDIR}/${DISTDIR}/kernel; \ - tar cvJf ${DESTDIR}/${DISTDIR}/kernel.txz \ - @${DESTDIR}/${DISTDIR}/kernel.meta + tar cvf - @${DESTDIR}/${DISTDIR}/kernel.meta | \ + ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.txz .for _kernel in ${BUILDKERNELS:S/${INSTALLKERNEL}//} cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \ - tar cvJf ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.txz \ - @${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta + tar cvf - @${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta | \ + ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.txz .endfor .else cd ${DESTDIR}/${DISTDIR}/kernel; \ - tar cvJf ${DESTDIR}/${DISTDIR}/kernel.txz . + tar cvf - . | \ + ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.txz .for _kernel in ${BUILDKERNELS:S/${INSTALLKERNEL}//} cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \ - tar cvJf ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.txz . + tar cvf - . | \ + ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.txz .endfor .endif Modified: stable/10/release/Makefile ============================================================================== --- stable/10/release/Makefile Wed Dec 30 12:51:43 2015 (r292939) +++ stable/10/release/Makefile Wed Dec 30 13:12:54 2015 (r292940) @@ -40,7 +40,6 @@ WORLDDIR?= ${.CURDIR}/.. PORTSDIR?= /usr/ports DOCDIR?= /usr/doc RELNOTES_LANG?= en_US.ISO8859-1 -XZCMD?= /usr/bin/xz .if !defined(TARGET) || empty(TARGET) TARGET= ${MACHINE} @@ -161,16 +160,18 @@ kernel.txz: src.txz: mkdir -p ${DISTDIR}/usr ln -fs ${WORLDDIR} ${DISTDIR}/usr/src - cd ${DISTDIR} && tar cLvJf ${.OBJDIR}/src.txz --exclude .svn --exclude .zfs \ - --exclude .git --exclude @ --exclude usr/src/release/dist usr/src + cd ${DISTDIR} && tar cLvf - --exclude .svn --exclude .zfs \ + --exclude .git --exclude @ --exclude usr/src/release/dist usr/src | \ + ${XZ_CMD} > ${.OBJDIR}/src.txz ports.txz: mkdir -p ${DISTDIR}/usr ln -fs ${PORTSDIR} ${DISTDIR}/usr/ports - cd ${DISTDIR} && tar cLvJf ${.OBJDIR}/ports.txz \ + cd ${DISTDIR} && tar cLvf - \ --exclude .git --exclude .svn \ --exclude usr/ports/distfiles --exclude usr/ports/packages \ - --exclude 'usr/ports/INDEX*' --exclude work usr/ports + --exclude 'usr/ports/INDEX*' --exclude work usr/ports | \ + ${XZ_CMD} > ${.OBJDIR}/ports.txz reldoc: cd ${.CURDIR}/doc && ${MAKE} all install clean 'FORMATS=html txt' \ @@ -333,7 +334,7 @@ release-install: .for I in ${IMAGES} cp -p ${I} ${DESTDIR}/${OSRELEASE}-${I} . if defined(WITH_COMPRESSED_IMAGES) && !empty(WITH_COMPRESSED_IMAGES) - ${XZCMD} -k ${DESTDIR}/${OSRELEASE}-${I} + ${XZ_CMD} -k ${DESTDIR}/${OSRELEASE}-${I} . endif .endfor cd ${DESTDIR} && sha512 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA512 Modified: stable/10/release/Makefile.vm ============================================================================== --- stable/10/release/Makefile.vm Wed Dec 30 12:51:43 2015 (r292939) +++ stable/10/release/Makefile.vm Wed Dec 30 13:12:54 2015 (r292940) @@ -137,7 +137,7 @@ vm-install: . if defined(WITH_COMPRESSED_VMIMAGES) && !empty(WITH_COMPRESSED_VMIMAGES) . for FORMAT in ${VMFORMATS} # Don't keep the originals. There is a copy in ${.OBJDIR} if needed. - ${XZCMD} ${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT} + ${XZ_CMD} ${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT} . endfor . endif cd ${DESTDIR}/vmimages && sha512 ${OSRELEASE}* > \ Modified: stable/10/share/mk/bsd.own.mk ============================================================================== --- stable/10/share/mk/bsd.own.mk Wed Dec 30 12:51:43 2015 (r292939) +++ stable/10/share/mk/bsd.own.mk Wed Dec 30 13:12:54 2015 (r292940) @@ -213,6 +213,15 @@ STRIP?= -s COMPRESS_CMD?= gzip -cn COMPRESS_EXT?= .gz +# Set XZ_THREADS to 1 to disable multi-threading. +XZ_THREADS?= 0 + +.if !empty(XZ_THREADS) +XZ_CMD?= xz -T ${XZ_THREADS} +.else +XZ_CMD?= xz +.endif + .if !defined(_WITHOUT_SRCCONF) # # Define MK_* variables (which are either "yes" or "no") for users From owner-svn-src-all@freebsd.org Wed Dec 30 13:49:22 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3A21AA55CAE; Wed, 30 Dec 2015 13:49:22 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 11E871489; Wed, 30 Dec 2015 13:49:21 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUDnLQr086527; Wed, 30 Dec 2015 13:49:21 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUDnKmG086521; Wed, 30 Dec 2015 13:49:20 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512301349.tBUDnKmG086521@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Wed, 30 Dec 2015 13:49:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292943 - in head/sys: kern sparc64/include sparc64/sparc64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 13:49:22 -0000 Author: marius Date: Wed Dec 30 13:49:20 2015 New Revision: 292943 URL: https://svnweb.freebsd.org/changeset/base/292943 Log: - (Ab)use udivx for dividing the u_int pc_cpuid when implementing CPU_ISSET(), CPU_SET etc. in sparc64 asm. This approach has the benefit of not clobbering %y, allowing to revert r222827 and partially r222828. - In r222828, CATR() already was changed to use the equivalent of PCPU_GET(cpuid) instead of the MD module ID for KTR_CPU, so belatedly also catch up with the C side of ktr(9). Originally, in r203838 CATR() was moved away from directly reading the module ID or equivalent as that became impractical with other CPU types than USI/II supported. With r222828 in place, per-CPU data generally is set up soon enough, though, that employing PCPU things in ktr(9) also for use during early stages works. - Unfortunately, an exception to the latter is the ktr(9) use in pmap_bootstrap(), which actually is run so early that even checking for bootverbose being set via the loader doesn't work. Consequently, replace the ktr(9) use in pmap_bootstrap() with OF_printf(9) and put it under #ifdef DIAGNOSTIC instead. MFC after: 3 days Modified: head/sys/kern/kern_ktr.c head/sys/sparc64/include/ktr.h head/sys/sparc64/sparc64/exception.S head/sys/sparc64/sparc64/mp_exception.S head/sys/sparc64/sparc64/pmap.c head/sys/sparc64/sparc64/swtch.S Modified: head/sys/kern/kern_ktr.c ============================================================================== --- head/sys/kern/kern_ktr.c Wed Dec 30 13:34:49 2015 (r292942) +++ head/sys/kern/kern_ktr.c Wed Dec 30 13:49:20 2015 (r292943) @@ -55,9 +55,6 @@ __FBSDID("$FreeBSD$"); #include #include -#ifdef __sparc64__ -#include -#endif #ifdef DDB #include Modified: head/sys/sparc64/include/ktr.h ============================================================================== --- head/sys/sparc64/include/ktr.h Wed Dec 30 13:34:49 2015 (r292942) +++ head/sys/sparc64/include/ktr.h Wed Dec 30 13:49:20 2015 (r292943) @@ -34,14 +34,10 @@ #include -#ifndef LOCORE - -#define KTR_CPU PCPU_GET(mid) - -#else +#ifdef LOCORE /* - * XXX could really use another register... + * XXX could really use another register ... */ #define ATR(desc, r1, r2, r3, l1, l2) \ .sect .rodata ; \ @@ -70,9 +66,6 @@ l2: add r2, 1, r3 ; \ SET(l1 ## b, r3, r2) ; \ stx r2, [r1 + KTR_DESC] -/* - * NB: this clobbers %y. - */ #define CATR(mask, desc, r1, r2, r3, l1, l2, l3) \ setx mask, r3, r1 ; \ setx ktr_mask, r3, r2 ; \ @@ -82,16 +75,14 @@ l2: add r2, 1, r3 ; \ nop ; \ lduw [PCPU(CPUID)], r2 ; \ mov _NCPUBITS, r3 ; \ - mov %g0, %y ; \ - udiv r2, r3, r2 ; \ + udivx r2, r3, r2 ; \ srl r2, 0, r2 ; \ sllx r2, PTR_SHIFT, r2 ; \ SET(ktr_cpumask, r3, r1) ; \ ldx [r1 + r2], r1 ; \ lduw [PCPU(CPUID)], r2 ; \ mov _NCPUBITS, r3 ; \ - mov %g0, %y ; \ - udiv r2, r3, r2 ; \ + udivx r2, r3, r2 ; \ srl r2, 0, r2 ; \ smul r2, r3, r3 ; \ lduw [PCPU(CPUID)], r2 ; \ Modified: head/sys/sparc64/sparc64/exception.S ============================================================================== --- head/sys/sparc64/sparc64/exception.S Wed Dec 30 13:34:49 2015 (r292942) +++ head/sys/sparc64/sparc64/exception.S Wed Dec 30 13:49:20 2015 (r292943) @@ -2628,9 +2628,9 @@ ENTRY(tl0_ret) andn %l4, TSTATE_CWP_MASK, %g2 /* - * Save %y in an alternate global. + * Restore %y. Could also be below if we had more alternate globals. */ - mov %l5, %g4 + wr %l5, 0, %y /* * Setup %wstate for return. We need to restore the user window state @@ -2675,8 +2675,8 @@ tl0_ret_fill: * Fixup %tstate so the saved %cwp points to the current window and * restore it. */ - rdpr %cwp, %g1 - wrpr %g2, %g1, %tstate + rdpr %cwp, %g4 + wrpr %g2, %g4, %tstate /* * Restore the user window state. The transition bit was set above @@ -2686,25 +2686,20 @@ tl0_ret_fill: #if KTR_COMPILE & KTR_TRAP CATR(KTR_TRAP, "tl0_ret: td=%#lx pil=%#lx pc=%#lx npc=%#lx sp=%#lx" - , %g1, %g2, %g3, 7, 8, 9) - ldx [PCPU(CURTHREAD)], %g2 - stx %g2, [%g1 + KTR_PARM1] - rdpr %pil, %g2 - stx %g2, [%g1 + KTR_PARM2] - rdpr %tpc, %g2 - stx %g2, [%g1 + KTR_PARM3] - rdpr %tnpc, %g2 - stx %g2, [%g1 + KTR_PARM4] - stx %sp, [%g1 + KTR_PARM5] + , %g2, %g3, %g4, 7, 8, 9) + ldx [PCPU(CURTHREAD)], %g3 + stx %g3, [%g2 + KTR_PARM1] + rdpr %pil, %g3 + stx %g3, [%g2 + KTR_PARM2] + rdpr %tpc, %g3 + stx %g3, [%g2 + KTR_PARM3] + rdpr %tnpc, %g3 + stx %g3, [%g2 + KTR_PARM4] + stx %sp, [%g2 + KTR_PARM5] 9: #endif /* - * Restore %y. Note that the CATR above clobbered it. - */ - wr %g4, 0, %y - - /* * Return to usermode. */ retry @@ -2718,11 +2713,6 @@ tl0_ret_fill_end: stx %l6, [%l0 + KTR_PARM2] stx %sp, [%l0 + KTR_PARM3] 9: - - /* - * Restore %y clobbered by the CATR. This was saved in %l5 above. - */ - wr %l5, 0, %y #endif /* @@ -2890,36 +2880,34 @@ ENTRY(tl1_ret) andn %l0, TSTATE_CWP_MASK, %g1 mov %l1, %g2 mov %l2, %g3 - mov %l4, %g4 wrpr %l3, 0, %pil + wr %l4, 0, %y restore wrpr %g0, 2, %tl + rdpr %cwp, %g4 + wrpr %g1, %g4, %tstate wrpr %g2, 0, %tpc wrpr %g3, 0, %tnpc - rdpr %cwp, %g2 - wrpr %g1, %g2, %tstate #if KTR_COMPILE & KTR_TRAP CATR(KTR_TRAP, "tl1_ret: td=%#lx pil=%#lx ts=%#lx pc=%#lx sp=%#lx" - , %g1, %g2, %g3, 7, 8, 9) - ldx [PCPU(CURTHREAD)], %g2 - stx %g2, [%g1 + KTR_PARM1] - rdpr %pil, %g2 - stx %g2, [%g1 + KTR_PARM2] - rdpr %tstate, %g2 - stx %g2, [%g1 + KTR_PARM3] - rdpr %tpc, %g2 - stx %g2, [%g1 + KTR_PARM4] - stx %sp, [%g1 + KTR_PARM5] + , %g2, %g3, %g4, 7, 8, 9) + ldx [PCPU(CURTHREAD)], %g3 + stx %g3, [%g2 + KTR_PARM1] + rdpr %pil, %g3 + stx %g3, [%g2 + KTR_PARM2] + rdpr %tstate, %g3 + stx %g3, [%g2 + KTR_PARM3] + rdpr %tpc, %g3 + stx %g3, [%g2 + KTR_PARM4] + stx %sp, [%g2 + KTR_PARM5] 9: #endif - wr %g4, 0, %y - retry END(tl1_ret) @@ -3020,35 +3008,33 @@ ENTRY(tl1_intr) andn %l0, TSTATE_CWP_MASK, %g1 mov %l1, %g2 mov %l2, %g3 - mov %l4, %g4 wrpr %l3, 0, %pil + wr %l4, 0, %y restore wrpr %g0, 2, %tl + rdpr %cwp, %g4 + wrpr %g1, %g4, %tstate wrpr %g2, 0, %tpc wrpr %g3, 0, %tnpc - rdpr %cwp, %g2 - wrpr %g1, %g2, %tstate #if KTR_COMPILE & KTR_INTR CATR(KTR_INTR, "tl1_intr: td=%#x pil=%#lx ts=%#lx pc=%#lx sp=%#lx" - , %g1, %g2, %g3, 7, 8, 9) - ldx [PCPU(CURTHREAD)], %g2 - stx %g2, [%g1 + KTR_PARM1] - rdpr %pil, %g2 - stx %g2, [%g1 + KTR_PARM2] - rdpr %tstate, %g2 - stx %g2, [%g1 + KTR_PARM3] - rdpr %tpc, %g2 - stx %g2, [%g1 + KTR_PARM4] - stx %sp, [%g1 + KTR_PARM5] + , %g2, %g3, %g4, 7, 8, 9) + ldx [PCPU(CURTHREAD)], %g3 + stx %g3, [%g2 + KTR_PARM1] + rdpr %pil, %g3 + stx %g3, [%g2 + KTR_PARM2] + rdpr %tstate, %g3 + stx %g3, [%g2 + KTR_PARM3] + rdpr %tpc, %g3 + stx %g3, [%g2 + KTR_PARM4] + stx %sp, [%g2 + KTR_PARM5] 9: #endif - wr %g4, 0, %y - retry END(tl1_intr) Modified: head/sys/sparc64/sparc64/mp_exception.S ============================================================================== --- head/sys/sparc64/sparc64/mp_exception.S Wed Dec 30 13:34:49 2015 (r292942) +++ head/sys/sparc64/sparc64/mp_exception.S Wed Dec 30 13:49:20 2015 (r292943) @@ -38,12 +38,10 @@ __FBSDID("$FreeBSD$"); .register %g2, #ignore .register %g3, #ignore -#define IPI_DONE(r1, r2, r3, r4, r5, r6) \ - rd %y, r6 ; \ +#define IPI_DONE(r1, r2, r3, r4, r5) \ lduw [PCPU(CPUID)], r2 ; \ mov _NCPUBITS, r3 ; \ - mov %g0, %y ; \ - udiv r2, r3, r4 ; \ + udivx r2, r3, r4 ; \ srl r4, 0, r5 ; \ sllx r5, PTR_SHIFT, r5 ; \ add r1, r5, r1 ; \ @@ -51,7 +49,6 @@ __FBSDID("$FreeBSD$"); sub r2, r3, r3 ; \ mov 1, r4 ; \ sllx r4, r3, r4 ; \ - wr r6, %y ; \ ATOMIC_CLEAR_LONG(r1, r2, r3, r4) /* @@ -89,7 +86,7 @@ ENTRY(tl_ipi_spitfire_dcache_page_inval) 2: brgz,pt %g2, 1b sub %g2, %g4, %g2 - IPI_DONE(%g5, %g1, %g2, %g3, %g4, %g6) + IPI_DONE(%g5, %g1, %g2, %g3, %g4) retry END(tl_ipi_spitfire_dcache_page_inval) @@ -129,7 +126,7 @@ ENTRY(tl_ipi_spitfire_icache_page_inval) 2: brgz,pt %g2, 1b sub %g2, %g4, %g2 - IPI_DONE(%g5, %g1, %g2, %g3, %g4, %g6) + IPI_DONE(%g5, %g1, %g2, %g3, %g4) retry END(tl_ipi_spitfire_icache_page_inval) @@ -160,7 +157,7 @@ ENTRY(tl_ipi_cheetah_dcache_page_inval) blt,a,pt %xcc, 1b nop - IPI_DONE(%g5, %g1, %g2, %g3, %g4, %g6) + IPI_DONE(%g5, %g1, %g2, %g3, %g4) retry END(tl_ipi_cheetah_dcache_page_inval) @@ -216,7 +213,7 @@ ENTRY(tl_ipi_tlb_page_demap) stxa %g0, [%g2] ASI_IMMU_DEMAP flush %g3 - IPI_DONE(%g5, %g1, %g2, %g3, %g4, %g6) + IPI_DONE(%g5, %g1, %g2, %g3, %g4) retry END(tl_ipi_tlb_page_demap) @@ -259,7 +256,7 @@ ENTRY(tl_ipi_tlb_range_demap) blt,a,pt %xcc, 1b sethi %hi(KERNBASE), %g6 - IPI_DONE(%g5, %g1, %g2, %g3, %g4, %g6) + IPI_DONE(%g5, %g1, %g2, %g3, %g4) retry END(tl_ipi_tlb_range_demap) @@ -283,7 +280,7 @@ ENTRY(tl_ipi_tlb_context_demap) stxa %g0, [%g1] ASI_IMMU_DEMAP flush %g3 - IPI_DONE(%g5, %g1, %g2, %g3, %g4, %g6) + IPI_DONE(%g5, %g1, %g2, %g3, %g4) retry END(tl_ipi_tlb_context_demap) @@ -295,7 +292,7 @@ ENTRY(tl_ipi_stick_rd) rd %asr24, %g2 stx %g2, [%g1] - IPI_DONE(%g5, %g1, %g2, %g3, %g4, %g6) + IPI_DONE(%g5, %g1, %g2, %g3, %g4) retry END(tl_ipi_stick_rd) @@ -307,6 +304,6 @@ ENTRY(tl_ipi_tick_rd) rd %tick, %g2 stx %g2, [%g1] - IPI_DONE(%g5, %g1, %g2, %g3, %g4, %g6) + IPI_DONE(%g5, %g1, %g2, %g3, %g4) retry END(tl_ipi_tick_rd) Modified: head/sys/sparc64/sparc64/pmap.c ============================================================================== --- head/sys/sparc64/sparc64/pmap.c Wed Dec 30 13:34:49 2015 (r292942) +++ head/sys/sparc64/sparc64/pmap.c Wed Dec 30 13:49:20 2015 (r292943) @@ -346,14 +346,18 @@ pmap_bootstrap(u_int cpu_impl) if (OF_getprop(pmem, "available", mra, sz) == -1) OF_panic("%s: getprop /memory/available", __func__); sz /= sizeof(*mra); - CTR0(KTR_PMAP, "pmap_bootstrap: physical memory"); +#ifdef DIAGNOSTIC + OF_printf("pmap_bootstrap: physical memory\n"); +#endif qsort(mra, sz, sizeof (*mra), mr_cmp); physsz = 0; getenv_quad("hw.physmem", &physmem); physmem = btoc(physmem); for (i = 0, j = 0; i < sz; i++, j += 2) { - CTR2(KTR_PMAP, "start=%#lx size=%#lx", mra[i].mr_start, +#ifdef DIAGNOSTIC + OF_printf("start=%#lx size=%#lx\n", mra[i].mr_start, mra[i].mr_size); +#endif if (physmem != 0 && btoc(physsz + mra[i].mr_size) >= physmem) { if (btoc(physsz) < physmem) { phys_avail[j] = mra[i].mr_start; @@ -617,13 +621,16 @@ pmap_bootstrap(u_int cpu_impl) __func__); sz /= sizeof(*translations); translations_size = sz; - CTR0(KTR_PMAP, "pmap_bootstrap: translations"); +#ifdef DIAGNOSTIC + OF_printf("pmap_bootstrap: translations\n"); +#endif qsort(translations, sz, sizeof (*translations), om_cmp); for (i = 0; i < sz; i++) { - CTR3(KTR_PMAP, - "translation: start=%#lx size=%#lx tte=%#lx", +#ifdef DIAGNOSTIC + OF_printf("translation: start=%#lx size=%#lx tte=%#lx\n", translations[i].om_start, translations[i].om_size, translations[i].om_tte); +#endif if ((translations[i].om_tte & TD_V) == 0) continue; if (translations[i].om_start < VM_MIN_PROM_ADDRESS || Modified: head/sys/sparc64/sparc64/swtch.S ============================================================================== --- head/sys/sparc64/sparc64/swtch.S Wed Dec 30 13:34:49 2015 (r292942) +++ head/sys/sparc64/sparc64/swtch.S Wed Dec 30 13:49:20 2015 (r292943) @@ -173,8 +173,7 @@ ENTRY(cpu_switch) * active on this CPU. */ mov _NCPUBITS, %l5 - mov %g0, %y - udiv %l3, %l5, %l6 + udivx %l3, %l5, %l6 srl %l6, 0, %l4 sllx %l4, PTR_SHIFT, %l4 add %l4, PM_ACTIVE, %l4 @@ -242,8 +241,7 @@ ENTRY(cpu_switch) * Mark the pmap as active on this CPU. */ mov _NCPUBITS, %l5 - mov %g0, %y - udiv %l3, %l5, %l6 + udivx %l3, %l5, %l6 srl %l6, 0, %l4 sllx %l4, PTR_SHIFT, %l4 add %l4, PM_ACTIVE, %l4 From owner-svn-src-all@freebsd.org Wed Dec 30 14:54:09 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E38CDA55580; Wed, 30 Dec 2015 14:54:09 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B18751EDE; Wed, 30 Dec 2015 14:54:09 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUEs8dY008319; Wed, 30 Dec 2015 14:54:08 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUEs8sp008317; Wed, 30 Dec 2015 14:54:08 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201512301454.tBUEs8sp008317@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 30 Dec 2015 14:54:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292946 - head/sys/dev/mlx5/mlx5_en X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 14:54:10 -0000 Author: hselasky Date: Wed Dec 30 14:54:08 2015 New Revision: 292946 URL: https://svnweb.freebsd.org/changeset/base/292946 Log: 10G ER/LR should present itself as LR. MFC after: 1 week Submitted by: Shahar Klein Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/mlx5_en/en.h head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Modified: head/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- head/sys/dev/mlx5/mlx5_en/en.h Wed Dec 30 14:06:01 2015 (r292945) +++ head/sys/dev/mlx5/mlx5_en/en.h Wed Dec 30 14:54:08 2015 (r292946) @@ -698,7 +698,7 @@ enum mlx5e_link_mode { MLX5E_56GBASE_R4 = 8, MLX5E_10GBASE_CR = 12, MLX5E_10GBASE_SR = 13, - MLX5E_10GBASE_ER = 14, + MLX5E_10GBASE_LR = 14, MLX5E_40GBASE_SR4 = 15, MLX5E_40GBASE_LR4 = 16, MLX5E_100GBASE_CR4 = 20, Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Wed Dec 30 14:06:01 2015 (r292945) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Wed Dec 30 14:54:08 2015 (r292946) @@ -106,8 +106,8 @@ static const struct { .subtype = IFM_10G_SR, .baudrate = IF_Gbps(10ULL), }, - [MLX5E_10GBASE_ER] = { - .subtype = IFM_10G_ER, + [MLX5E_10GBASE_LR] = { + .subtype = IFM_10G_LR, .baudrate = IF_Gbps(10ULL), }, [MLX5E_40GBASE_SR4] = { From owner-svn-src-all@freebsd.org Wed Dec 30 14:57:44 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2897DA55623; Wed, 30 Dec 2015 14:57:44 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EB3C5108C; Wed, 30 Dec 2015 14:57:43 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUEvha8008480; Wed, 30 Dec 2015 14:57:43 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUEvhIJ008479; Wed, 30 Dec 2015 14:57:43 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201512301457.tBUEvhIJ008479@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Wed, 30 Dec 2015 14:57:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292947 - head/sbin/reboot X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 14:57:44 -0000 Author: smh Date: Wed Dec 30 14:57:42 2015 New Revision: 292947 URL: https://svnweb.freebsd.org/changeset/base/292947 Log: Fix use of uninitialised Nflag Initialise Nflag to 0 preventing use of uninitialised value. Reported by: uqs MFC after: 1 week X-MFC-With: r292266 Sponsored by: Multiplay Differential Revision: https://reviews.freebsd.org/D4449 Modified: head/sbin/reboot/reboot.c Modified: head/sbin/reboot/reboot.c ============================================================================== --- head/sbin/reboot/reboot.c Wed Dec 30 14:54:08 2015 (r292946) +++ head/sbin/reboot/reboot.c Wed Dec 30 14:57:42 2015 (r292947) @@ -76,7 +76,7 @@ main(int argc, char *argv[]) howto = RB_HALT; } else howto = 0; - lflag = nflag = qflag = 0; + lflag = nflag = qflag = Nflag = 0; while ((ch = getopt(argc, argv, "dk:lNnpqr")) != -1) switch(ch) { case 'd': From owner-svn-src-all@freebsd.org Wed Dec 30 14:58:57 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0C0A1A5569D; Wed, 30 Dec 2015 14:58:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B67601251; Wed, 30 Dec 2015 14:58:56 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUEwtKV008562; Wed, 30 Dec 2015 14:58:55 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUEwtoJ008561; Wed, 30 Dec 2015 14:58:55 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201512301458.tBUEwtoJ008561@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 30 Dec 2015 14:58:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292948 - head/sys/dev/mlx5/mlx5_en X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 14:58:57 -0000 Author: hselasky Date: Wed Dec 30 14:58:55 2015 New Revision: 292948 URL: https://svnweb.freebsd.org/changeset/base/292948 Log: Allow I2C to read address 0x51 as well as address 0x50. MFC after: 1 week Submitted by: Shahar Klein Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Wed Dec 30 14:57:42 2015 (r292947) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Wed Dec 30 14:58:55 2015 (r292948) @@ -2298,6 +2298,7 @@ mlx5e_ioctl(struct ifnet *ifp, u_long co int size_read = 0; int module_num; int max_mtu; + uint8_t read_addr; priv = ifp->if_softc; @@ -2484,11 +2485,21 @@ out: } /* - * Note that we ignore i2c.addr here. The driver hardcodes - * the address to 0x50, while standard expects it to be 0xA0. + * Currently 0XA0 and 0xA2 are the only addresses permitted. + * The internal conversion is as follows: */ + if (i2c.dev_addr == 0xA0) + read_addr = MLX5E_I2C_ADDR_LOW; + else if (i2c.dev_addr == 0xA2) + read_addr = MLX5E_I2C_ADDR_HIGH; + else { + if_printf(ifp, "Query eeprom failed, " + "Invalid Address: %X\n", i2c.dev_addr); + error = EINVAL; + goto err_i2c; + } error = mlx5_query_eeprom(priv->mdev, - MLX5E_I2C_ADDR_LOW, MLX5E_EEPROM_LOW_PAGE, + read_addr, MLX5E_EEPROM_LOW_PAGE, (uint32_t)i2c.offset, (uint32_t)i2c.len, module_num, (uint32_t *)i2c.data, &size_read); if (error) { @@ -2499,7 +2510,7 @@ out: if (i2c.len > MLX5_EEPROM_MAX_BYTES) { error = mlx5_query_eeprom(priv->mdev, - MLX5E_I2C_ADDR_LOW, MLX5E_EEPROM_LOW_PAGE, + read_addr, MLX5E_EEPROM_LOW_PAGE, (uint32_t)(i2c.offset + size_read), (uint32_t)(i2c.len - size_read), module_num, (uint32_t *)(i2c.data + size_read), &size_read); From owner-svn-src-all@freebsd.org Wed Dec 30 15:01:48 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65915A55853; Wed, 30 Dec 2015 15:01:48 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 41825184D; Wed, 30 Dec 2015 15:01:48 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUF1lxO010778; Wed, 30 Dec 2015 15:01:47 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUF1lef010775; Wed, 30 Dec 2015 15:01:47 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201512301501.tBUF1lef010775@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 30 Dec 2015 15:01:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292949 - head/sys/dev/mlx5/mlx5_en X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 15:01:48 -0000 Author: hselasky Date: Wed Dec 30 15:01:47 2015 New Revision: 292949 URL: https://svnweb.freebsd.org/changeset/base/292949 Log: Add support for modifying coalescing parameters runtime. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/mlx5_en/en.h head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Modified: head/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- head/sys/dev/mlx5/mlx5_en/en.h Wed Dec 30 14:58:55 2015 (r292948) +++ head/sys/dev/mlx5/mlx5_en/en.h Wed Dec 30 15:01:47 2015 (r292949) @@ -787,5 +787,6 @@ void mlx5e_create_stats(struct sysctl_ct struct sysctl_oid_list *, const char *, const char **, unsigned, u64 *); void mlx5e_send_nop(struct mlx5e_sq *, u32, bool); +int mlx5e_refresh_channel_params(struct mlx5e_priv *); #endif /* _MLX5_EN_H_ */ Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Wed Dec 30 14:58:55 2015 (r292948) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Wed Dec 30 15:01:47 2015 (r292949) @@ -69,12 +69,49 @@ mlx5e_ethtool_handler(SYSCTL_HANDLER_ARG } else { error = 0; } - /* check if device is gone */ if (priv->gone) { error = ENXIO; goto done; } + /* import RX coal time */ + if (priv->params_ethtool.rx_coalesce_usecs < 1) + priv->params_ethtool.rx_coalesce_usecs = 0; + else if (priv->params_ethtool.rx_coalesce_usecs > + MLX5E_FLD_MAX(cqc, cq_period)) { + priv->params_ethtool.rx_coalesce_usecs = + MLX5E_FLD_MAX(cqc, cq_period); + } + priv->params.rx_cq_moderation_usec = priv->params_ethtool.rx_coalesce_usecs; + + /* import RX coal pkts */ + if (priv->params_ethtool.rx_coalesce_pkts < 1) + priv->params_ethtool.rx_coalesce_pkts = 0; + else if (priv->params_ethtool.rx_coalesce_pkts > + MLX5E_FLD_MAX(cqc, cq_max_count)) { + priv->params_ethtool.rx_coalesce_pkts = + MLX5E_FLD_MAX(cqc, cq_max_count); + } + priv->params.rx_cq_moderation_pkts = priv->params_ethtool.rx_coalesce_pkts; + + /* import TX coal time */ + if (priv->params_ethtool.tx_coalesce_usecs < 1) + priv->params_ethtool.tx_coalesce_usecs = 0; + else if (priv->params_ethtool.tx_coalesce_usecs > + MLX5E_FLD_MAX(cqc, cq_period)) { + priv->params_ethtool.tx_coalesce_usecs = + MLX5E_FLD_MAX(cqc, cq_period); + } + priv->params.tx_cq_moderation_usec = priv->params_ethtool.tx_coalesce_usecs; + + /* import TX coal pkts */ + if (priv->params_ethtool.tx_coalesce_pkts < 1) + priv->params_ethtool.tx_coalesce_pkts = 0; + else if (priv->params_ethtool.tx_coalesce_pkts > + MLX5E_FLD_MAX(cqc, cq_max_count)) { + priv->params_ethtool.tx_coalesce_pkts = MLX5E_FLD_MAX(cqc, cq_max_count); + } + priv->params.tx_cq_moderation_pkts = priv->params_ethtool.tx_coalesce_pkts; if (&priv->params_ethtool.arg[arg2] == &priv->params_ethtool.rx_pauseframe_control || &priv->params_ethtool.arg[arg2] == &priv->params_ethtool.tx_pauseframe_control) { @@ -92,9 +129,19 @@ mlx5e_ethtool_handler(SYSCTL_HANDLER_ARG } was_opened = test_bit(MLX5E_STATE_OPENED, &priv->state); - if (was_opened) - mlx5e_close_locked(priv->ifp); + if (was_opened) { + u64 *xarg = priv->params_ethtool.arg + arg2; + if (xarg == &priv->params_ethtool.tx_coalesce_pkts || + xarg == &priv->params_ethtool.rx_coalesce_pkts || + xarg == &priv->params_ethtool.tx_coalesce_usecs || + xarg == &priv->params_ethtool.rx_coalesce_usecs) { + /* avoid downing and upping the network interface */ + error = mlx5e_refresh_channel_params(priv); + goto done; + } + mlx5e_close_locked(priv->ifp); + } /* import TX queue size */ if (priv->params_ethtool.tx_queue_size < (1 << MLX5E_PARAMS_MINIMUM_LOG_SQ_SIZE)) { @@ -145,45 +192,6 @@ mlx5e_ethtool_handler(SYSCTL_HANDLER_ARG priv->params_ethtool.tx_coalesce_mode = 1; priv->params.tx_cq_moderation_mode = priv->params_ethtool.tx_coalesce_mode; - /* import RX coal time */ - if (priv->params_ethtool.rx_coalesce_usecs < 1) - priv->params_ethtool.rx_coalesce_usecs = 0; - else if (priv->params_ethtool.rx_coalesce_usecs > - MLX5E_FLD_MAX(cqc, cq_period)) { - priv->params_ethtool.rx_coalesce_usecs = - MLX5E_FLD_MAX(cqc, cq_period); - } - priv->params.rx_cq_moderation_usec = priv->params_ethtool.rx_coalesce_usecs; - - /* import RX coal pkts */ - if (priv->params_ethtool.rx_coalesce_pkts < 1) - priv->params_ethtool.rx_coalesce_pkts = 0; - else if (priv->params_ethtool.rx_coalesce_pkts > - MLX5E_FLD_MAX(cqc, cq_max_count)) { - priv->params_ethtool.rx_coalesce_pkts = - MLX5E_FLD_MAX(cqc, cq_max_count); - } - priv->params.rx_cq_moderation_pkts = priv->params_ethtool.rx_coalesce_pkts; - - /* import TX coal time */ - if (priv->params_ethtool.tx_coalesce_usecs < 1) - priv->params_ethtool.tx_coalesce_usecs = 0; - else if (priv->params_ethtool.tx_coalesce_usecs > - MLX5E_FLD_MAX(cqc, cq_period)) { - priv->params_ethtool.tx_coalesce_usecs = - MLX5E_FLD_MAX(cqc, cq_period); - } - priv->params.tx_cq_moderation_usec = priv->params_ethtool.tx_coalesce_usecs; - - /* import TX coal pkts */ - if (priv->params_ethtool.tx_coalesce_pkts < 1) - priv->params_ethtool.tx_coalesce_pkts = 0; - else if (priv->params_ethtool.tx_coalesce_pkts > - MLX5E_FLD_MAX(cqc, cq_max_count)) { - priv->params_ethtool.tx_coalesce_pkts = MLX5E_FLD_MAX(cqc, cq_max_count); - } - priv->params.tx_cq_moderation_pkts = priv->params_ethtool.tx_coalesce_pkts; - /* we always agree to turn off HW LRO - but not always to turn on */ if (priv->params_ethtool.hw_lro) { if (priv->params_ethtool.hw_lro != 1) { Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Wed Dec 30 14:58:55 2015 (r292948) +++ head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Wed Dec 30 15:01:47 2015 (r292949) @@ -1712,6 +1712,62 @@ mlx5e_close_channels(struct mlx5e_priv * } static int +mlx5e_refresh_sq_params(struct mlx5e_priv *priv, struct mlx5e_sq *sq) +{ + return (mlx5_core_modify_cq_moderation(priv->mdev, &sq->cq.mcq, + priv->params.tx_cq_moderation_usec, + priv->params.tx_cq_moderation_pkts)); +} + +static int +mlx5e_refresh_rq_params(struct mlx5e_priv *priv, struct mlx5e_rq *rq) +{ + return (mlx5_core_modify_cq_moderation(priv->mdev, &rq->cq.mcq, + priv->params.rx_cq_moderation_usec, + priv->params.rx_cq_moderation_pkts)); +} + +static int +mlx5e_refresh_channel_params_sub(struct mlx5e_priv *priv, struct mlx5e_channel *c) +{ + int err; + int i; + + if (c == NULL) + return (EINVAL); + + err = mlx5e_refresh_rq_params(priv, &c->rq); + if (err) + goto done; + + for (i = 0; i != c->num_tc; i++) { + err = mlx5e_refresh_sq_params(priv, &c->sq[i]); + if (err) + goto done; + } +done: + return (err); +} + +int +mlx5e_refresh_channel_params(struct mlx5e_priv *priv) +{ + int i; + + if (priv->channel == NULL) + return (EINVAL); + + for (i = 0; i < priv->params.num_channels; i++) { + int err; + + err = mlx5e_refresh_channel_params_sub(priv, priv->channel[i]); + if (err) + return (err); + } + return (0); +} + +static int mlx5e_open_tis(struct mlx5e_priv *priv, int tc) { struct mlx5_core_dev *mdev = priv->mdev; From owner-svn-src-all@freebsd.org Wed Dec 30 16:07:30 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A3D85A55017 for ; Wed, 30 Dec 2015 16:07:30 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1b.ore.mailhop.org (outbound1b.ore.mailhop.org [54.200.247.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 876EE1ADB for ; Wed, 30 Dec 2015 16:07:30 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound1.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Wed, 30 Dec 2015 16:05:14 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id tBUG4oxO018923; Wed, 30 Dec 2015 09:04:50 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1451491490.1369.41.camel@freebsd.org> Subject: Re: svn commit: r289421 - in head/etc: . mtree ntp From: Ian Lepore To: Colin Percival , Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, edwin@freebsd.org, Xin Li Date: Wed, 30 Dec 2015 09:04:50 -0700 In-Reply-To: <5683D325.6020409@freebsd.org> References: <201510161404.t9GE4GqM046436@repo.freebsd.org> <5683D325.6020409@freebsd.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 16:07:30 -0000 On Wed, 2015-12-30 at 04:50 -0800, Colin Percival wrote: > On 10/16/15 07:04, Cy Schubert wrote: > > Add default leap-seconds file. This should help ntp networks get > > the > > leap second date correct > > > > Added: > > head/etc/ntp/ > > head/etc/ntp/Makefile (contents, props changed) > > head/etc/ntp/leap-seconds (contents, props changed) > > So... is someone going to be keeping this file up to date? We seem > to have > the same information in contrib/tzdata/leapseconds (which is being > kept up > to date -- thank you edwin and delphij!) but having this file in > /etc/ntp/ > being out of date is making ntpd refuse to start. > I vaguely remember warning that something like this was likely to happen. Turning on leapfile processing by default without an already -in-place mechanism to keep the file up to date was a bad idea. There was some mumbling about a mechanism, but nobody wrote any code. Even if the mechanism existed, I think defaulting to using the leapfile is wrong. It's a thing that needs care and feeding or it causes problems, and thus it's a thing that should only be enabled by admins who know about the care and feeding aspect (an automatic fetch mechanism doesn't help much if there are firewalls blocking the fetch, for example). -- Ian From owner-svn-src-all@freebsd.org Wed Dec 30 16:14:32 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82A7DA552C5; Wed, 30 Dec 2015 16:14:32 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3957E1E39; Wed, 30 Dec 2015 16:14:32 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUGEVgu032286; Wed, 30 Dec 2015 16:14:31 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUGEVJm032283; Wed, 30 Dec 2015 16:14:31 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301614.tBUGEVJm032283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 16:14:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292950 - in head: contrib/llvm/patches contrib/llvm/tools/clang/tools/driver usr.bin/clang/clang X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 16:14:32 -0000 Author: dim Date: Wed Dec 30 16:14:30 2015 New Revision: 292950 URL: https://svnweb.freebsd.org/changeset/base/292950 Log: Drop the clang patch which adds recognition of 'CC' suffixes as aliases for --driver-mode=g++, since this was never upstreamed. For backwards compatibility, add a wrapper shell script. MFC after: 1 week Added: head/usr.bin/clang/clang/CC.sh (contents, props changed) Deleted: head/contrib/llvm/patches/patch-02-add-CC-aliases.diff Modified: head/contrib/llvm/tools/clang/tools/driver/driver.cpp head/usr.bin/clang/clang/Makefile Modified: head/contrib/llvm/tools/clang/tools/driver/driver.cpp ============================================================================== --- head/contrib/llvm/tools/clang/tools/driver/driver.cpp Wed Dec 30 15:01:47 2015 (r292949) +++ head/contrib/llvm/tools/clang/tools/driver/driver.cpp Wed Dec 30 16:14:30 2015 (r292950) @@ -214,13 +214,11 @@ static const DriverSuffix *FindDriverSuf {"clang", nullptr}, {"clang++", "--driver-mode=g++"}, {"clang-c++", "--driver-mode=g++"}, - {"clang-CC", "--driver-mode=g++"}, {"clang-cc", nullptr}, {"clang-cpp", "--driver-mode=cpp"}, {"clang-g++", "--driver-mode=g++"}, {"clang-gcc", nullptr}, {"clang-cl", "--driver-mode=cl"}, - {"CC", "--driver-mode=g++"}, {"cc", nullptr}, {"cpp", "--driver-mode=cpp"}, {"cl", "--driver-mode=cl"}, Added: head/usr.bin/clang/clang/CC.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/clang/clang/CC.sh Wed Dec 30 16:14:30 2015 (r292950) @@ -0,0 +1,4 @@ +#!/bin/sh +# $FreeBSD$ +# This file is in the public domain. +exec /usr/bin/c++ "$@" Modified: head/usr.bin/clang/clang/Makefile ============================================================================== --- head/usr.bin/clang/clang/Makefile Wed Dec 30 15:01:47 2015 (r292949) +++ head/usr.bin/clang/clang/Makefile Wed Dec 30 16:14:30 2015 (r292950) @@ -18,9 +18,11 @@ LINKS= ${BINDIR}/clang ${BINDIR}/clang++ MLINKS= clang.1 clang++.1 \ clang.1 clang-cpp.1 .if ${MK_CLANG_IS_CC} != "no" +SCRIPTS=CC.sh +SCRIPTSNAME=CC + LINKS+= ${BINDIR}/clang ${BINDIR}/cc \ ${BINDIR}/clang ${BINDIR}/c++ \ - ${BINDIR}/clang ${BINDIR}/CC \ ${BINDIR}/clang ${BINDIR}/cpp MLINKS+= clang.1 cc.1 \ clang.1 c++.1 \ From owner-svn-src-all@freebsd.org Wed Dec 30 16:31:41 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B502BA5597F; Wed, 30 Dec 2015 16:31:41 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mx1.sbone.de (mx1.sbone.de [IPv6:2a01:4f8:130:3ffc::401:25]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 78AE11CCD; Wed, 30 Dec 2015 16:31:41 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.sbone.de (Postfix) with ESMTPS id 5F48025D385E; Wed, 30 Dec 2015 16:31:37 +0000 (UTC) Received: from content-filter.sbone.de (content-filter.sbone.de [IPv6:fde9:577b:c1a9:31::2013:2742]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id 041B4C76FE4; Wed, 30 Dec 2015 16:31:37 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587]) by content-filter.sbone.de (content-filter.sbone.de [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024) with ESMTP id azXkCb3Q7dwa; Wed, 30 Dec 2015 16:31:35 +0000 (UTC) Received: from [IPv6:fde9:577b:c1a9:4410:6cc9:8940:35c:d8d5] (unknown [IPv6:fde9:577b:c1a9:4410:6cc9:8940:35c:d8d5]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id B5146C76FD8; Wed, 30 Dec 2015 16:31:34 +0000 (UTC) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r292914 - in head: tests/sys/kern tools/regression/sockets/unix_passfd From: "Bjoern A. Zeeb" In-Reply-To: <201512301115.tBUBF7Wr038402@repo.freebsd.org> Date: Wed, 30 Dec 2015 16:31:14 +0000 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <9CE6F38D-FD5A-4EF0-BFA8-4002ED3519A2@FreeBSD.org> References: <201512301115.tBUBF7Wr038402@repo.freebsd.org> To: Garrett Cooper X-Mailer: Apple Mail (2.2104) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 16:31:41 -0000 > On 30 Dec 2015, at 11:15 , Garrett Cooper wrote: >=20 > Author: ngie > Date: Wed Dec 30 11:15:07 2015 > New Revision: 292914 > URL: https://svnweb.freebsd.org/changeset/base/292914 >=20 > Log: > Integrate tools/regression/sockets/unix_passfd into the FreeBSD test > suite as tests/sys/kern/unix_passfd_test >=20 > - Convert testcases to ATF > - Fix an alignment issues > - Mark rights_creds_payload(..) as an expected failure (see PR # = 181741) >=20 > Based [in part] on the following Differential Revision: > https://reviews.freebsd.org/D689 >=20 > MFC after: 1 week > Submitted by: markj > Sponsored by: EMC / Isilon Storage Division n all gcc platforms this fails: /scratch/tmp/bz/head.svn/tests/sys/kern/unix_passfd_test.c: In function = 'sendfd': /scratch/tmp/bz/head.svn/tests/sys/kern/unix_passfd_test.c:146: warning: = declaration of 'sendfd' shadows a global declaration /scratch/tmp/bz/head.svn/tests/sys/kern/unix_passfd_test.c:147: warning: = shadowed declaration is here /scratch/tmp/bz/head.svn/tests/sys/kern/unix_passfd_test.c: In function = 'recvfd': /scratch/tmp/bz/head.svn/tests/sys/kern/unix_passfd_test.c:195: warning: = declaration of 'recvfd' shadows a global declaration /scratch/tmp/bz/head.svn/tests/sys/kern/unix_passfd_test.c:196: warning: = shadowed declaration is here From owner-svn-src-all@freebsd.org Wed Dec 30 17:10:05 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20728A565D6; Wed, 30 Dec 2015 17:10:05 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DBF791D41; Wed, 30 Dec 2015 17:10:04 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUHA4Bd047626; Wed, 30 Dec 2015 17:10:04 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUHA4pO047625; Wed, 30 Dec 2015 17:10:04 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201512301710.tBUHA4pO047625@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 30 Dec 2015 17:10:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292953 - head/sys/netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 17:10:05 -0000 Author: bz Date: Wed Dec 30 17:10:03 2015 New Revision: 292953 URL: https://svnweb.freebsd.org/changeset/base/292953 Log: This code is not in modules that need KPI stability so no need to use the wrapper functions as used in r252511. We can directly use the locking macros. Reviewed by: jtl, rwatson MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D4731 Modified: head/sys/netinet6/in6.c Modified: head/sys/netinet6/in6.c ============================================================================== --- head/sys/netinet6/in6.c Wed Dec 30 16:42:09 2015 (r292952) +++ head/sys/netinet6/in6.c Wed Dec 30 17:10:03 2015 (r292953) @@ -1552,7 +1552,7 @@ in6ifa_llaonifp(struct ifnet *ifp) if (ND_IFINFO(ifp)->flags & ND6_IFF_IFDISABLED) return (NULL); - if_addr_rlock(ifp); + IF_ADDR_RLOCK(ifp); TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family != AF_INET6) continue; @@ -1562,7 +1562,7 @@ in6ifa_llaonifp(struct ifnet *ifp) IN6_IS_ADDR_MC_NODELOCAL(&sin6->sin6_addr)) break; } - if_addr_runlock(ifp); + IF_ADDR_RUNLOCK(ifp); return ((struct in6_ifaddr *)ifa); } From owner-svn-src-all@freebsd.org Wed Dec 30 17:18:34 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E56CA56831 for ; Wed, 30 Dec 2015 17:18:34 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-wm0-x22c.google.com (mail-wm0-x22c.google.com [IPv6:2a00:1450:400c:c09::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 97B28130C for ; Wed, 30 Dec 2015 17:18:33 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-wm0-x22c.google.com with SMTP id u188so45376226wmu.1 for ; Wed, 30 Dec 2015 09:18:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=CBYO4LPWiVWT1JMw+DCcmXayAchdn7rY1LjjZ3bPQoE=; b=Z5HPilHB9JSOIaR8Eo66YtBrrGzdPuWlbqJvVLC2/6J6FYT3V6drh5K3B4Q0v33xSE AVMol32T1V/7QiqoW3toiCTfwLwDWlNq/b/U+++f5WpRnai29wgFiKih69OmcG6F6B5Y 42WliyxGY+nbbltIWsJZA48HKOmUqLJGu1kOFFm3FQXjom0x4fQZF+atoOPhK6a9BOpx X2rBHyH7t3bNsLOrhHoIwz5NxgvcG6py/ptLf+22z/Vprj/FzqKSGZhr9t87gsyaYnuA ncdqka3+GWuL95XWHrNPEu3Ni4Drao/+ZVtKdlKxorLkr9XZcDWusBHxIREPOwnSK9S3 7vsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=CBYO4LPWiVWT1JMw+DCcmXayAchdn7rY1LjjZ3bPQoE=; b=PsLbIrYiqoKR+6bbArEnRCC6bMGwgvcj7VKEmbKYe8Dyrl0IVEK0WTVebhc4PHUrcU aYhxt2HVhDleuRFt/aqcfnzdMYdyv7MtZYl+1aNSDYdMv1a5+aG7TsTfhPZYPAeSvDqJ HEE/YY6dd+B/haX2xTNECOUKqO1cSNjyRtsJmTN+oyvKVVp5cI772/m5SKSCQeeaD90o V5CrVHkIVb5aMTMzCK44aRO0Jfp+YFEWR2/O63Xhy/C0ONv3++4AnqS7GFlIMJ/qOIQY d/awGU58LeH+J6MclRQg+7qwok+s2NloWD7qZNhMMrHVBia5GpoinrGuDxxjmnFiB/kA phIg== X-Gm-Message-State: ALoCoQmUX65MQKz7VTdPh3uOCGCMed8WBn+T+ITIiXpPoNixumVOiGGn6QZCOP57bJqMMS0YmnM0MYBdDQFHKIldb9kxwyxL8ktUNlY19KFSO5vq6jW/QIw= MIME-Version: 1.0 X-Received: by 10.194.202.163 with SMTP id kj3mr68176181wjc.93.1451495911246; Wed, 30 Dec 2015 09:18:31 -0800 (PST) Received: by 10.194.85.167 with HTTP; Wed, 30 Dec 2015 09:18:31 -0800 (PST) In-Reply-To: <201512271733.tBRHXxgN031823@repo.freebsd.org> References: <201512271733.tBRHXxgN031823@repo.freebsd.org> Date: Wed, 30 Dec 2015 18:18:31 +0100 Message-ID: Subject: Re: svn commit: r292782 - in head: lib/libcrypt lib/libmd sbin/gbde sbin/geom/class/eli sbin/md5 sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/conf sys/crypto/sha2 sys/dev/random sys/geom/bde sys/... From: Oliver Pinter To: Allan Jude Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 17:18:34 -0000 On 12/27/15, Allan Jude wrote: > Author: allanjude > Date: Sun Dec 27 17:33:59 2015 > New Revision: 292782 > URL: https://svnweb.freebsd.org/changeset/base/292782 > > Log: > Replace sys/crypto/sha2/sha2.c with lib/libmd/sha512c.c > > cperciva's libmd implementation is 5-30% faster > > The same was done for SHA256 previously in r263218 > > cperciva's implementation was lacking SHA-384 which I implemented, > validated against OpenSSL and the NIST documentation > > Extend sbin/md5 to create sha384(1) > > Chase dependancies on sys/crypto/sha2/sha2.{c,h} and replace them with > sha512{c.c,.h} > > Reviewed by: cperciva, des, delphij > Approved by: secteam, bapt (mentor) > MFC after: 2 weeks > Sponsored by: ScaleEngine Inc. > Differential Revision: https://reviews.freebsd.org/D3929 > > Added: > head/sys/crypto/sha2/sha384.h (contents, props changed) > head/sys/crypto/sha2/sha512.h > - copied, changed from r292757, head/lib/libmd/sha512.h > head/sys/crypto/sha2/sha512c.c > - copied, changed from r289398, head/lib/libmd/sha512c.c > Deleted: > head/lib/libmd/sha512.h > head/lib/libmd/sha512c.c > head/sys/crypto/sha2/sha2.c > head/sys/crypto/sha2/sha2.h > Modified: > head/lib/libcrypt/Makefile > head/lib/libmd/Makefile > head/lib/libmd/sha512.3 > head/lib/libmd/shadriver.c > head/sbin/gbde/Makefile > head/sbin/gbde/gbde.c > head/sbin/geom/class/eli/Makefile > head/sbin/md5/Makefile > head/sbin/md5/md5.1 > head/sbin/md5/md5.c > head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c > head/sys/conf/files > head/sys/crypto/sha2/sha256.h > head/sys/dev/random/build.sh > head/sys/dev/random/fortuna.c > head/sys/dev/random/hash.c > head/sys/dev/random/other_algorithm.c > head/sys/dev/random/randomdev.c > head/sys/dev/random/unit_test.c > head/sys/dev/random/yarrow.c > head/sys/geom/bde/g_bde.c > head/sys/geom/bde/g_bde_crypt.c > head/sys/geom/bde/g_bde_lock.c > head/sys/geom/bde/g_bde_work.c > head/sys/geom/eli/g_eli.h > head/sys/modules/crypto/Makefile > head/sys/modules/geom/geom_bde/Makefile > head/sys/modules/zfs/Makefile > head/sys/netinet/sctp_os_bsd.h > head/sys/opencrypto/xform.h > > Modified: head/lib/libcrypt/Makefile > Hi Allan! Could you please bump __FreeBSD_version after this change? This breaks the building of some external module, whose use the crypto/sha2/sha2.h file. From owner-svn-src-all@freebsd.org Wed Dec 30 17:36:36 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4FC77A56CFF; Wed, 30 Dec 2015 17:36:36 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1BD0C1AE9; Wed, 30 Dec 2015 17:36:36 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUHaZuR056140; Wed, 30 Dec 2015 17:36:35 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUHaZlp056136; Wed, 30 Dec 2015 17:36:35 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201512301736.tBUHaZlp056136@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Wed, 30 Dec 2015 17:36:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292954 - in head/sys/arm64: arm64 include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 17:36:36 -0000 Author: andrew Date: Wed Dec 30 17:36:34 2015 New Revision: 292954 URL: https://svnweb.freebsd.org/changeset/base/292954 Log: Decode and print the ID_AA64* registers on boot. These registers hold information on what the core supports. In most cases these will be identical across most CPUs in the SoC, however there may be the case where, with a big.LITTLE setup they may differ. In this case we print the decoded data on all CPUs. Reviewed by: kib Sponsored by: ABT Systems Ltd Differential Revision: https://reviews.freebsd.org/D4725 Modified: head/sys/arm64/arm64/identcpu.c head/sys/arm64/arm64/mp_machdep.c head/sys/arm64/include/armreg.h head/sys/arm64/include/cpu.h Modified: head/sys/arm64/arm64/identcpu.c ============================================================================== --- head/sys/arm64/arm64/identcpu.c Wed Dec 30 17:10:03 2015 (r292953) +++ head/sys/arm64/arm64/identcpu.c Wed Dec 30 17:36:34 2015 (r292954) @@ -37,9 +37,12 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include +static int ident_lock; + char machine[] = "arm64"; SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD, machine, 0, @@ -56,6 +59,7 @@ SYSCTL_STRING(_hw, HW_MACHINE, machine, * Aff0 - CPU number in Aff1 cluster */ uint64_t __cpu_affinity[MAXCPU]; +static u_int cpu_aff_levels; struct cpu_desc { u_int cpu_impl; @@ -64,9 +68,32 @@ struct cpu_desc { u_int cpu_revision; const char *cpu_impl_name; const char *cpu_part_name; + + uint64_t mpidr; + uint64_t id_aa64afr0; + uint64_t id_aa64afr1; + uint64_t id_aa64dfr0; + uint64_t id_aa64dfr1; + uint64_t id_aa64isar0; + uint64_t id_aa64isar1; + uint64_t id_aa64mmfr0; + uint64_t id_aa64mmfr1; + uint64_t id_aa64pfr0; + uint64_t id_aa64pfr1; }; struct cpu_desc cpu_desc[MAXCPU]; +static u_int cpu_print_regs; +#define PRINT_ID_AA64_AFR0 0x00000001 +#define PRINT_ID_AA64_AFR1 0x00000002 +#define PRINT_ID_AA64_DFR0 0x00000004 +#define PRINT_ID_AA64_DFR1 0x00000008 +#define PRINT_ID_AA64_ISAR0 0x00000010 +#define PRINT_ID_AA64_ISAR1 0x00000020 +#define PRINT_ID_AA64_MMFR0 0x00000040 +#define PRINT_ID_AA64_MMFR1 0x00000080 +#define PRINT_ID_AA64_PFR0 0x00000100 +#define PRINT_ID_AA64_PFR1 0x00000200 struct cpu_parts { u_int part_id; @@ -124,7 +151,398 @@ const struct cpu_implementers cpu_implem CPU_IMPLEMENTER_NONE, }; -void identify_cpu(void); +void +print_cpu_features(u_int cpu) +{ + int printed; + + printf("CPU%3d: %s %s r%dp%d", cpu, cpu_desc[cpu].cpu_impl_name, + cpu_desc[cpu].cpu_part_name, cpu_desc[cpu].cpu_variant, + cpu_desc[cpu].cpu_revision); + + printf(" affinity:"); + switch(cpu_aff_levels) { + default: + case 4: + printf(" %2d", CPU_AFF3(cpu_desc[cpu].mpidr)); + /* FALLTHROUGH */ + case 3: + printf(" %2d", CPU_AFF2(cpu_desc[cpu].mpidr)); + /* FALLTHROUGH */ + case 2: + printf(" %2d", CPU_AFF1(cpu_desc[cpu].mpidr)); + /* FALLTHROUGH */ + case 1: + case 0: /* On UP this will be zero */ + printf(" %2d", CPU_AFF0(cpu_desc[cpu].mpidr)); + break; + } + printf("\n"); + + if (cpu != 0 && cpu_print_regs == 0) + return; + +#define SEP_STR ((printed++) == 0) ? "" : "," + + /* AArch64 Instruction Set Attribute Register 0 */ + if (cpu == 0 || (cpu_print_regs & PRINT_ID_AA64_ISAR0) != 0) { + printed = 0; + printf(" Instruction Set Attributes 0 = <"); + switch (ID_AA64ISAR0_AES(cpu_desc[cpu].id_aa64isar0)) { + case ID_AA64ISAR0_AES_NONE: + break; + case ID_AA64ISAR0_AES_BASE: + printf("%sAES", SEP_STR); + break; + case ID_AA64ISAR0_AES_PMULL: + printf("%sAES+PMULL", SEP_STR); + break; + default: + printf("%sUnknown AES", SEP_STR); + break; + } + + switch (ID_AA64ISAR0_SHA1(cpu_desc[cpu].id_aa64isar0)) { + case ID_AA64ISAR0_SHA1_NONE: + break; + case ID_AA64ISAR0_SHA1_BASE: + printf("%sSHA1", SEP_STR); + break; + default: + printf("%sUnknown SHA1", SEP_STR); + break; + } + + switch (ID_AA64ISAR0_SHA2(cpu_desc[cpu].id_aa64isar0)) { + case ID_AA64ISAR0_SHA2_NONE: + break; + case ID_AA64ISAR0_SHA2_BASE: + printf("%sSHA2", SEP_STR); + break; + default: + printf("%sUnknown SHA2", SEP_STR); + break; + } + + switch (ID_AA64ISAR0_CRC32(cpu_desc[cpu].id_aa64isar0)) { + case ID_AA64ISAR0_CRC32_NONE: + break; + case ID_AA64ISAR0_CRC32_BASE: + printf("%sCRC32", SEP_STR); + break; + default: + printf("%sUnknown CRC32", SEP_STR); + break; + } + + if ((cpu_desc[cpu].id_aa64isar0 & ~ID_AA64ISAR0_MASK) != 0) + printf("%s%#lx", SEP_STR, + cpu_desc[cpu].id_aa64isar0 & ~ID_AA64ISAR0_MASK); + + printf(">\n"); + } + + /* AArch64 Instruction Set Attribute Register 1 */ + if (cpu == 0 || (cpu_print_regs & PRINT_ID_AA64_ISAR1) != 0) { + printf(" Instruction Set Attributes 1 = <%#lx>\n", + cpu_desc[cpu].id_aa64isar1); + } + + /* AArch64 Processor Feature Register 0 */ + if (cpu == 0 || (cpu_print_regs & PRINT_ID_AA64_PFR0) != 0) { + printed = 0; + printf(" Processor Features 0 = <"); + switch (ID_AA64PFR0_GIC(cpu_desc[cpu].id_aa64pfr0)) { + case ID_AA64PFR0_GIC_CPUIF_NONE: + break; + case ID_AA64PFR0_GIC_CPUIF_EN: + printf("%sGIC", SEP_STR); + break; + default: + printf("%sUnknown GIC interface", SEP_STR); + break; + } + + switch (ID_AA64PFR0_ADV_SIMD(cpu_desc[cpu].id_aa64pfr0)) { + case ID_AA64PFR0_ADV_SIMD_NONE: + break; + case ID_AA64PFR0_ADV_SIMD_IMPL: + printf("%sAdvSIMD", SEP_STR); + break; + default: + printf("%sUnknown AdvSIMD", SEP_STR); + break; + } + + switch (ID_AA64PFR0_FP(cpu_desc[cpu].id_aa64pfr0)) { + case ID_AA64PFR0_FP_NONE: + break; + case ID_AA64PFR0_FP_IMPL: + printf("%sFloat", SEP_STR); + break; + default: + printf("%sUnknown Float", SEP_STR); + break; + } + + switch (ID_AA64PFR0_EL3(cpu_desc[cpu].id_aa64pfr0)) { + case ID_AA64PFR0_EL3_NONE: + printf("%sNo EL3", SEP_STR); + break; + case ID_AA64PFR0_EL3_64: + printf("%sEL3", SEP_STR); + break; + case ID_AA64PFR0_EL3_64_32: + printf("%sEL3 32", SEP_STR); + break; + default: + printf("%sUnknown EL3", SEP_STR); + break; + } + + switch (ID_AA64PFR0_EL2(cpu_desc[cpu].id_aa64pfr0)) { + case ID_AA64PFR0_EL2_NONE: + printf("%sNo EL2", SEP_STR); + break; + case ID_AA64PFR0_EL2_64: + printf("%sEL2", SEP_STR); + break; + case ID_AA64PFR0_EL2_64_32: + printf("%sEL2 32", SEP_STR); + break; + default: + printf("%sUnknown EL2", SEP_STR); + break; + } + + switch (ID_AA64PFR0_EL1(cpu_desc[cpu].id_aa64pfr0)) { + case ID_AA64PFR0_EL1_64: + printf("%sEL1", SEP_STR); + break; + case ID_AA64PFR0_EL1_64_32: + printf("%sEL1 32", SEP_STR); + break; + default: + printf("%sUnknown EL1", SEP_STR); + break; + } + + switch (ID_AA64PFR0_EL0(cpu_desc[cpu].id_aa64pfr0)) { + case ID_AA64PFR0_EL0_64: + printf("%sEL0", SEP_STR); + break; + case ID_AA64PFR0_EL0_64_32: + printf("%sEL0 32", SEP_STR); + break; + default: + printf("%sUnknown EL0", SEP_STR); + break; + } + + if ((cpu_desc[cpu].id_aa64pfr0 & ~ID_AA64PFR0_MASK) != 0) + printf("%s%#lx", SEP_STR, + cpu_desc[cpu].id_aa64pfr0 & ~ID_AA64PFR0_MASK); + + printf(">\n"); + } + + /* AArch64 Processor Feature Register 1 */ + if (cpu == 0 || (cpu_print_regs & PRINT_ID_AA64_PFR1) != 0) { + printf(" Processor Features 1 = <%#lx>\n", + cpu_desc[cpu].id_aa64pfr1); + } + + /* AArch64 Memory Model Feature Register 0 */ + if (cpu == 0 || (cpu_print_regs & PRINT_ID_AA64_MMFR0) != 0) { + printed = 0; + printf(" Memory Model Features 0 = <"); + switch (ID_AA64MMFR0_TGRAN4(cpu_desc[cpu].id_aa64mmfr0)) { + case ID_AA64MMFR0_TGRAN4_NONE: + break; + case ID_AA64MMFR0_TGRAN4_IMPL: + printf("%s4k Granule", SEP_STR); + break; + default: + printf("%sUnknown 4k Granule", SEP_STR); + break; + } + + switch (ID_AA64MMFR0_TGRAN16(cpu_desc[cpu].id_aa64mmfr0)) { + case ID_AA64MMFR0_TGRAN16_NONE: + break; + case ID_AA64MMFR0_TGRAN16_IMPL: + printf("%s16k Granule", SEP_STR); + break; + default: + printf("%sUnknown 16k Granule", SEP_STR); + break; + } + + switch (ID_AA64MMFR0_TGRAN64(cpu_desc[cpu].id_aa64mmfr0)) { + case ID_AA64MMFR0_TGRAN64_NONE: + break; + case ID_AA64MMFR0_TGRAN64_IMPL: + printf("%s64k Granule", SEP_STR); + break; + default: + printf("%sUnknown 64k Granule", SEP_STR); + break; + } + + switch (ID_AA64MMFR0_BIGEND(cpu_desc[cpu].id_aa64mmfr0)) { + case ID_AA64MMFR0_BIGEND_FIXED: + break; + case ID_AA64MMFR0_BIGEND_MIXED: + printf("%sMixedEndian", SEP_STR); + break; + default: + printf("%sUnknown Endian switching", SEP_STR); + break; + } + + switch (ID_AA64MMFR0_BIGEND_EL0(cpu_desc[cpu].id_aa64mmfr0)) { + case ID_AA64MMFR0_BIGEND_EL0_FIXED: + break; + case ID_AA64MMFR0_BIGEND_EL0_MIXED: + printf("%sEL0 MixEndian", SEP_STR); + break; + default: + printf("%sUnknown EL0 Endian switching", SEP_STR); + break; + } + + switch (ID_AA64MMFR0_S_NS_MEM(cpu_desc[cpu].id_aa64mmfr0)) { + case ID_AA64MMFR0_S_NS_MEM_NONE: + break; + case ID_AA64MMFR0_S_NS_MEM_DISTINCT: + printf("%sS/NS Mem", SEP_STR); + break; + default: + printf("%sUnknown S/NS Mem", SEP_STR); + break; + } + + switch (ID_AA64MMFR0_ASID_BITS(cpu_desc[cpu].id_aa64mmfr0)) { + case ID_AA64MMFR0_ASID_BITS_8: + printf("%s8bit ASID", SEP_STR); + break; + case ID_AA64MMFR0_ASID_BITS_16: + printf("%s16bit ASID", SEP_STR); + break; + default: + printf("%sUnknown ASID", SEP_STR); + break; + } + + switch (ID_AA64MMFR0_PA_RANGE(cpu_desc[cpu].id_aa64mmfr0)) { + case ID_AA64MMFR0_PA_RANGE_4G: + printf("%s4GB PA", SEP_STR); + break; + case ID_AA64MMFR0_PA_RANGE_64G: + printf("%s64GB PA", SEP_STR); + break; + case ID_AA64MMFR0_PA_RANGE_1T: + printf("%s1TB PA", SEP_STR); + break; + case ID_AA64MMFR0_PA_RANGE_4T: + printf("%s4TB PA", SEP_STR); + break; + case ID_AA64MMFR0_PA_RANGE_16T: + printf("%s16TB PA", SEP_STR); + break; + case ID_AA64MMFR0_PA_RANGE_256T: + printf("%s256TB PA", SEP_STR); + break; + default: + printf("%sUnknown PA Range", SEP_STR); + break; + } + + if ((cpu_desc[cpu].id_aa64mmfr0 & ~ID_AA64MMFR0_MASK) != 0) + printf("%s%#lx", SEP_STR, + cpu_desc[cpu].id_aa64mmfr0 & ~ID_AA64MMFR0_MASK); + printf(">\n"); + } + + /* AArch64 Memory Model Feature Register 1 */ + if (cpu == 0 || (cpu_print_regs & PRINT_ID_AA64_MMFR1) != 0) { + printf(" Memory Model Features 1 = <%#lx>\n", + cpu_desc[cpu].id_aa64mmfr1); + } + + /* AArch64 Debug Feature Register 0 */ + if (cpu == 0 || (cpu_print_regs & PRINT_ID_AA64_DFR0) != 0) { + printed = 0; + printf(" Debug Features 0 = <"); + printf("%s%lu CTX Breakpoints", SEP_STR, + ID_AA64DFR0_CTX_CMPS(cpu_desc[cpu].id_aa64dfr0)); + + printf("%s%lu Watchpoints", SEP_STR, + ID_AA64DFR0_WRPS(cpu_desc[cpu].id_aa64dfr0)); + + printf("%s%lu Breakpoints", SEP_STR, + ID_AA64DFR0_BRPS(cpu_desc[cpu].id_aa64dfr0)); + + switch (ID_AA64DFR0_PMU_VER(cpu_desc[cpu].id_aa64dfr0)) { + case ID_AA64DFR0_PMU_VER_NONE: + break; + case ID_AA64DFR0_PMU_VER_3: + printf("%sPMUv3", SEP_STR); + break; + case ID_AA64DFR0_PMU_VER_IMPL: + printf("%sImplementation defined PMU", SEP_STR); + break; + default: + printf("%sUnknown PMU", SEP_STR); + break; + } + + switch (ID_AA64DFR0_TRACE_VER(cpu_desc[cpu].id_aa64dfr0)) { + case ID_AA64DFR0_TRACE_VER_NONE: + break; + case ID_AA64DFR0_TRACE_VER_IMPL: + printf("%sTrace", SEP_STR); + break; + default: + printf("%sUnknown Trace", SEP_STR); + break; + } + + switch (ID_AA64DFR0_DEBUG_VER(cpu_desc[cpu].id_aa64dfr0)) { + case ID_AA64DFR0_DEBUG_VER_8: + printf("%sDebug v8", SEP_STR); + break; + default: + printf("%sUnknown Debug", SEP_STR); + break; + } + + if (cpu_desc[cpu].id_aa64dfr0 & ~ID_AA64DFR0_MASK) + printf("%s%#lx", SEP_STR, + cpu_desc[cpu].id_aa64dfr0 & ~ID_AA64DFR0_MASK); + printf(">\n"); + } + + /* AArch64 Memory Model Feature Register 1 */ + if (cpu == 0 || (cpu_print_regs & PRINT_ID_AA64_DFR1) != 0) { + printf(" Debug Features 1 = <%#lx>\n", + cpu_desc[cpu].id_aa64dfr1); + } + + /* AArch64 Auxiliary Feature Register 0 */ + if (cpu == 0 || (cpu_print_regs & PRINT_ID_AA64_AFR0) != 0) { + printf(" Auxiliary Features 0 = <%#lx>\n", + cpu_desc[cpu].id_aa64afr0); + } + + /* AArch64 Auxiliary Feature Register 1 */ + if (cpu == 0 || (cpu_print_regs & PRINT_ID_AA64_AFR1) != 0) { + printf(" Auxiliary Features 1 = <%#lx>\n", + cpu_desc[cpu].id_aa64afr1); + } + +#undef SEP_STR +} void identify_cpu(void) @@ -133,7 +551,6 @@ identify_cpu(void) u_int impl_id; u_int part_id; u_int cpu; - uint64_t mpidr; size_t i; const struct cpu_parts *cpu_partsp = NULL; @@ -171,19 +588,77 @@ identify_cpu(void) cpu_desc[cpu].cpu_variant = CPU_VAR(midr); /* Save affinity for current CPU */ - mpidr = get_mpidr(); - CPU_AFFINITY(cpu) = mpidr & CPU_AFF_MASK; + cpu_desc[cpu].mpidr = get_mpidr(); + CPU_AFFINITY(cpu) = cpu_desc[cpu].mpidr & CPU_AFF_MASK; - /* Print details for boot CPU or if we want verbose output */ - if (cpu == 0 || bootverbose) { - printf("CPU(%d): %s %s r%dp%d\n", cpu, - cpu_desc[cpu].cpu_impl_name, - cpu_desc[cpu].cpu_part_name, - cpu_desc[cpu].cpu_variant, - cpu_desc[cpu].cpu_revision); - } + cpu_desc[cpu].id_aa64dfr0 = READ_SPECIALREG(id_aa64dfr0_el1); + cpu_desc[cpu].id_aa64dfr1 = READ_SPECIALREG(id_aa64dfr1_el1); + cpu_desc[cpu].id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1); + cpu_desc[cpu].id_aa64isar1 = READ_SPECIALREG(id_aa64isar1_el1); + cpu_desc[cpu].id_aa64mmfr0 = READ_SPECIALREG(id_aa64mmfr0_el1); + cpu_desc[cpu].id_aa64mmfr1 = READ_SPECIALREG(id_aa64mmfr1_el1); + cpu_desc[cpu].id_aa64pfr0 = READ_SPECIALREG(id_aa64pfr0_el1); + cpu_desc[cpu].id_aa64pfr1 = READ_SPECIALREG(id_aa64pfr1_el1); + + if (cpu != 0) { + /* + * This code must run on one cpu at a time, but we are + * not scheduling on the current core so implement a + * simple spinlock. + */ + while (atomic_cmpset_acq_int(&ident_lock, 0, 1) == 0) + __asm __volatile("wfe" ::: "memory"); + + switch (cpu_aff_levels) { + case 0: + if (CPU_AFF0(cpu_desc[cpu].mpidr) != + CPU_AFF0(cpu_desc[0].mpidr)) + cpu_aff_levels = 1; + /* FALLTHROUGH */ + case 1: + if (CPU_AFF1(cpu_desc[cpu].mpidr) != + CPU_AFF1(cpu_desc[0].mpidr)) + cpu_aff_levels = 2; + /* FALLTHROUGH */ + case 2: + if (CPU_AFF2(cpu_desc[cpu].mpidr) != + CPU_AFF2(cpu_desc[0].mpidr)) + cpu_aff_levels = 3; + /* FALLTHROUGH */ + case 3: + if (CPU_AFF3(cpu_desc[cpu].mpidr) != + CPU_AFF3(cpu_desc[0].mpidr)) + cpu_aff_levels = 4; + break; + } - if (bootverbose) - printf("CPU%u affinity: %u.%u.%u.%u\n", 0, CPU_AFF0(mpidr), - CPU_AFF1(mpidr), CPU_AFF2(mpidr), CPU_AFF3(mpidr)); + if (cpu_desc[cpu].id_aa64afr0 != cpu_desc[0].id_aa64afr0) + cpu_print_regs |= PRINT_ID_AA64_AFR0; + if (cpu_desc[cpu].id_aa64afr1 != cpu_desc[0].id_aa64afr1) + cpu_print_regs |= PRINT_ID_AA64_AFR1; + + if (cpu_desc[cpu].id_aa64dfr0 != cpu_desc[0].id_aa64dfr0) + cpu_print_regs |= PRINT_ID_AA64_DFR0; + if (cpu_desc[cpu].id_aa64dfr1 != cpu_desc[0].id_aa64dfr1) + cpu_print_regs |= PRINT_ID_AA64_DFR1; + + if (cpu_desc[cpu].id_aa64isar0 != cpu_desc[0].id_aa64isar0) + cpu_print_regs |= PRINT_ID_AA64_ISAR0; + if (cpu_desc[cpu].id_aa64isar1 != cpu_desc[0].id_aa64isar1) + cpu_print_regs |= PRINT_ID_AA64_ISAR1; + + if (cpu_desc[cpu].id_aa64mmfr0 != cpu_desc[0].id_aa64mmfr0) + cpu_print_regs |= PRINT_ID_AA64_MMFR0; + if (cpu_desc[cpu].id_aa64mmfr1 != cpu_desc[0].id_aa64mmfr1) + cpu_print_regs |= PRINT_ID_AA64_MMFR1; + + if (cpu_desc[cpu].id_aa64pfr0 != cpu_desc[0].id_aa64pfr0) + cpu_print_regs |= PRINT_ID_AA64_PFR0; + if (cpu_desc[cpu].id_aa64pfr1 != cpu_desc[0].id_aa64pfr1) + cpu_print_regs |= PRINT_ID_AA64_PFR1; + + /* Wake up the other CPUs */ + atomic_store_rel_int(&ident_lock, 0); + __asm __volatile("sev" ::: "memory"); + } } Modified: head/sys/arm64/arm64/mp_machdep.c ============================================================================== --- head/sys/arm64/arm64/mp_machdep.c Wed Dec 30 17:10:03 2015 (r292953) +++ head/sys/arm64/arm64/mp_machdep.c Wed Dec 30 17:36:34 2015 (r292954) @@ -175,7 +175,7 @@ arm64_cpu_attach(device_t dev) static void release_aps(void *dummy __unused) { - int i; + int cpu, i; /* Setup the IPI handler */ for (i = 0; i < COUNT_IPI; i++) @@ -188,8 +188,14 @@ release_aps(void *dummy __unused) printf("Release APs\n"); for (i = 0; i < 2000; i++) { - if (smp_started) + if (smp_started) { + for (cpu = 0; cpu <= mp_maxid; cpu++) { + if (CPU_ABSENT(cpu)) + continue; + print_cpu_features(cpu); + } return; + } DELAY(1000); } Modified: head/sys/arm64/include/armreg.h ============================================================================== --- head/sys/arm64/include/armreg.h Wed Dec 30 17:10:03 2015 (r292953) +++ head/sys/arm64/include/armreg.h Wed Dec 30 17:36:34 2015 (r292954) @@ -121,19 +121,147 @@ /* ICC_SRE_EL2 */ #define ICC_SRE_EL2_EN (1U << 3) +/* ID_AA64DFR0_EL1 */ +#define ID_AA64DFR0_MASK 0xf0f0ffff +#define ID_AA64DFR0_DEBUG_VER_SHIFT 0 +#define ID_AA64DFR0_DEBUG_VER_MASK (0xf << ID_AA64DFR0_DEBUG_VER_SHIFT) +#define ID_AA64DFR0_DEBUG_VER(x) ((x) & ID_AA64DFR0_DEBUG_VER_MASK) +#define ID_AA64DFR0_DEBUG_VER_8 (0x6 << ID_AA64DFR0_DEBUG_VER_SHIFT) +#define ID_AA64DFR0_TRACE_VER_SHIFT 4 +#define ID_AA64DFR0_TRACE_VER_MASK (0xf << ID_AA64DFR0_TRACE_VER_SHIFT) +#define ID_AA64DFR0_TRACE_VER(x) ((x) & ID_AA64DFR0_TRACE_VER_MASK) +#define ID_AA64DFR0_TRACE_VER_NONE (0x0 << ID_AA64DFR0_TRACE_VER_SHIFT) +#define ID_AA64DFR0_TRACE_VER_IMPL (0x1 << ID_AA64DFR0_TRACE_VER_SHIFT) +#define ID_AA64DFR0_PMU_VER_SHIFT 8 +#define ID_AA64DFR0_PMU_VER_MASK (0xf << ID_AA64DFR0_PMU_VER_SHIFT) +#define ID_AA64DFR0_PMU_VER(x) ((x) & ID_AA64DFR0_PMU_VER_MASK) +#define ID_AA64DFR0_PMU_VER_NONE (0x0 << ID_AA64DFR0_PMU_VER_SHIFT) +#define ID_AA64DFR0_PMU_VER_3 (0x1 << ID_AA64DFR0_PMU_VER_SHIFT) +#define ID_AA64DFR0_PMU_VER_IMPL (0xf << ID_AA64DFR0_PMU_VER_SHIFT) +#define ID_AA64DFR0_BRPS_SHIFT 12 +#define ID_AA64DFR0_BRPS_MASK (0xf << ID_AA64DFR0_BRPS_SHIFT) +#define ID_AA64DFR0_BRPS(x) \ + ((((x) >> ID_AA64DFR0_BRPS_SHIFT) & 0xf) + 1) +#define ID_AA64DFR0_WRPS_SHIFT 20 +#define ID_AA64DFR0_WRPS_MASK (0xf << ID_AA64DFR0_WRPS_SHIFT) +#define ID_AA64DFR0_WRPS(x) \ + ((((x) >> ID_AA64DFR0_WRPS_SHIFT) & 0xf) + 1) +#define ID_AA64DFR0_CTX_CMPS_SHIFT 28 +#define ID_AA64DFR0_CTX_CMPS_MASK (0xf << ID_AA64DFR0_CTX_CMPS_SHIFT) +#define ID_AA64DFR0_CTX_CMPS(x) \ + ((((x) >> ID_AA64DFR0_CTX_CMPS_SHIFT) & 0xf) + 1) + +/* ID_AA64ISAR0_EL1 */ +#define ID_AA64ISAR0_MASK 0x000ffff0 +#define ID_AA64ISAR0_AES_SHIFT 4 +#define ID_AA64ISAR0_AES_MASK (0xf << ID_AA64ISAR0_AES_SHIFT) +#define ID_AA64ISAR0_AES(x) ((x) & ID_AA64ISAR0_AES_MASK) +#define ID_AA64ISAR0_AES_NONE (0x0 << ID_AA64ISAR0_AES_SHIFT) +#define ID_AA64ISAR0_AES_BASE (0x1 << ID_AA64ISAR0_AES_SHIFT) +#define ID_AA64ISAR0_AES_PMULL (0x2 << ID_AA64ISAR0_AES_SHIFT) +#define ID_AA64ISAR0_SHA1_SHIFT 8 +#define ID_AA64ISAR0_SHA1_MASK (0xf << ID_AA64ISAR0_SHA1_SHIFT) +#define ID_AA64ISAR0_SHA1(x) ((x) & ID_AA64ISAR0_SHA1_MASK) +#define ID_AA64ISAR0_SHA1_NONE (0x0 << ID_AA64ISAR0_SHA1_SHIFT) +#define ID_AA64ISAR0_SHA1_BASE (0x1 << ID_AA64ISAR0_SHA1_SHIFT) +#define ID_AA64ISAR0_SHA2_SHIFT 12 +#define ID_AA64ISAR0_SHA2_MASK (0xf << ID_AA64ISAR0_SHA2_SHIFT) +#define ID_AA64ISAR0_SHA2(x) ((x) & ID_AA64ISAR0_SHA2_MASK) +#define ID_AA64ISAR0_SHA2_NONE (0x0 << ID_AA64ISAR0_SHA2_SHIFT) +#define ID_AA64ISAR0_SHA2_BASE (0x1 << ID_AA64ISAR0_SHA2_SHIFT) +#define ID_AA64ISAR0_CRC32_SHIFT 16 +#define ID_AA64ISAR0_CRC32_MASK (0xf << ID_AA64ISAR0_CRC32_SHIFT) +#define ID_AA64ISAR0_CRC32(x) ((x) & ID_AA64ISAR0_CRC32_MASK) +#define ID_AA64ISAR0_CRC32_NONE (0x0 << ID_AA64ISAR0_CRC32_SHIFT) +#define ID_AA64ISAR0_CRC32_BASE (0x1 << ID_AA64ISAR0_CRC32_SHIFT) + +/* ID_AA64MMFR0_EL1 */ +#define ID_AA64MMFR0_MASK 0xffffffff +#define ID_AA64MMFR0_PA_RANGE_SHIFT 0 +#define ID_AA64MMFR0_PA_RANGE_MASK (0xf << ID_AA64MMFR0_PA_RANGE_SHIFT) +#define ID_AA64MMFR0_PA_RANGE(x) ((x) & ID_AA64MMFR0_PA_RANGE_MASK) +#define ID_AA64MMFR0_PA_RANGE_4G (0x0 << ID_AA64MMFR0_PA_RANGE_SHIFT) +#define ID_AA64MMFR0_PA_RANGE_64G (0x1 << ID_AA64MMFR0_PA_RANGE_SHIFT) +#define ID_AA64MMFR0_PA_RANGE_1T (0x2 << ID_AA64MMFR0_PA_RANGE_SHIFT) +#define ID_AA64MMFR0_PA_RANGE_4T (0x3 << ID_AA64MMFR0_PA_RANGE_SHIFT) +#define ID_AA64MMFR0_PA_RANGE_16T (0x4 << ID_AA64MMFR0_PA_RANGE_SHIFT) +#define ID_AA64MMFR0_PA_RANGE_256T (0x5 << ID_AA64MMFR0_PA_RANGE_SHIFT) +#define ID_AA64MMFR0_ASID_BITS_SHIFT 4 +#define ID_AA64MMFR0_ASID_BITS_MASK (0xf << ID_AA64MMFR0_ASID_BITS_SHIFT) +#define ID_AA64MMFR0_ASID_BITS(x) ((x) & ID_AA64MMFR0_ASID_BITS_MASK) +#define ID_AA64MMFR0_ASID_BITS_8 (0x0 << ID_AA64MMFR0_ASID_BITS_SHIFT) +#define ID_AA64MMFR0_ASID_BITS_16 (0x2 << ID_AA64MMFR0_ASID_BITS_SHIFT) +#define ID_AA64MMFR0_BIGEND_SHIFT 8 +#define ID_AA64MMFR0_BIGEND_MASK (0xf << ID_AA64MMFR0_BIGEND_SHIFT) +#define ID_AA64MMFR0_BIGEND(x) ((x) & ID_AA64MMFR0_BIGEND_MASK) +#define ID_AA64MMFR0_BIGEND_FIXED (0x0 << ID_AA64MMFR0_BIGEND_SHIFT) +#define ID_AA64MMFR0_BIGEND_MIXED (0x1 << ID_AA64MMFR0_BIGEND_SHIFT) +#define ID_AA64MMFR0_S_NS_MEM_SHIFT 12 +#define ID_AA64MMFR0_S_NS_MEM_MASK (0xf << ID_AA64MMFR0_S_NS_MEM_SHIFT) +#define ID_AA64MMFR0_S_NS_MEM(x) ((x) & ID_AA64MMFR0_S_NS_MEM_MASK) +#define ID_AA64MMFR0_S_NS_MEM_NONE (0x0 << ID_AA64MMFR0_S_NS_MEM_SHIFT) +#define ID_AA64MMFR0_S_NS_MEM_DISTINCT (0x1 << ID_AA64MMFR0_S_NS_MEM_SHIFT) +#define ID_AA64MMFR0_BIGEND_EL0_SHIFT 16 +#define ID_AA64MMFR0_BIGEND_EL0_MASK (0xf << ID_AA64MMFR0_BIGEND_EL0_SHIFT) +#define ID_AA64MMFR0_BIGEND_EL0(x) ((x) & ID_AA64MMFR0_BIGEND_EL0_MASK) +#define ID_AA64MMFR0_BIGEND_EL0_FIXED (0x0 << ID_AA64MMFR0_BIGEND_EL0_SHIFT) +#define ID_AA64MMFR0_BIGEND_EL0_MIXED (0x1 << ID_AA64MMFR0_BIGEND_EL0_SHIFT) +#define ID_AA64MMFR0_TGRAN16_SHIFT 20 +#define ID_AA64MMFR0_TGRAN16_MASK (0xf << ID_AA64MMFR0_TGRAN16_SHIFT) +#define ID_AA64MMFR0_TGRAN16(x) ((x) & ID_AA64MMFR0_TGRAN16_MASK) +#define ID_AA64MMFR0_TGRAN16_NONE (0x0 << ID_AA64MMFR0_TGRAN16_SHIFT) +#define ID_AA64MMFR0_TGRAN16_IMPL (0x1 << ID_AA64MMFR0_TGRAN16_SHIFT) +#define ID_AA64MMFR0_TGRAN64_SHIFT 24 +#define ID_AA64MMFR0_TGRAN64_MASK (0xf << ID_AA64MMFR0_TGRAN64_SHIFT) +#define ID_AA64MMFR0_TGRAN64(x) ((x) & ID_AA64MMFR0_TGRAN64_MASK) +#define ID_AA64MMFR0_TGRAN64_IMPL (0x0 << ID_AA64MMFR0_TGRAN64_SHIFT) +#define ID_AA64MMFR0_TGRAN64_NONE (0xf << ID_AA64MMFR0_TGRAN64_SHIFT) +#define ID_AA64MMFR0_TGRAN4_SHIFT 28 +#define ID_AA64MMFR0_TGRAN4_MASK (0xf << ID_AA64MMFR0_TGRAN4_SHIFT) +#define ID_AA64MMFR0_TGRAN4(x) ((x) & ID_AA64MMFR0_TGRAN4_MASK) +#define ID_AA64MMFR0_TGRAN4_IMPL (0x0 << ID_AA64MMFR0_TGRAN4_SHIFT) +#define ID_AA64MMFR0_TGRAN4_NONE (0xf << ID_AA64MMFR0_TGRAN4_SHIFT) + /* ID_AA64PFR0_EL1 */ -#define ID_AA64PFR0_EL0_MASK (0xf << 0) -#define ID_AA64PFR0_EL1_MASK (0xf << 4) -#define ID_AA64PFR0_EL2_MASK (0xf << 8) -#define ID_AA64PFR0_EL3_MASK (0xf << 12) -#define ID_AA64PFR0_FP_MASK (0xf << 16) -#define ID_AA64PFR0_FP_IMPL (0x0 << 16) /* Floating-point implemented */ -#define ID_AA64PFR0_FP_NONE (0xf << 16) /* Floating-point not implemented */ -#define ID_AA64PFR0_ADV_SIMD_MASK (0xf << 20) -#define ID_AA64PFR0_GIC_SHIFT (24) -#define ID_AA64PFR0_GIC_BITS (0x4) /* Number of bits in GIC field */ -#define ID_AA64PFR0_GIC_MASK (0xf << ID_AA64PFR0_GIC_SHIFT) -#define ID_AA64PFR0_GIC_CPUIF_EN (0x1 << ID_AA64PFR0_GIC_SHIFT) +#define ID_AA64PFR0_MASK 0x0fffffff +#define ID_AA64PFR0_EL0_SHIFT 0 +#define ID_AA64PFR0_EL0_MASK (0xf << ID_AA64PFR0_EL0_SHIFT) +#define ID_AA64PFR0_EL0(x) ((x) & ID_AA64PFR0_EL0_MASK) +#define ID_AA64PFR0_EL0_64 (1 << ID_AA64PFR0_EL0_SHIFT) +#define ID_AA64PFR0_EL0_64_32 (2 << ID_AA64PFR0_EL0_SHIFT) +#define ID_AA64PFR0_EL1_SHIFT 4 +#define ID_AA64PFR0_EL1_MASK (0xf << ID_AA64PFR0_EL1_SHIFT) +#define ID_AA64PFR0_EL1(x) ((x) & ID_AA64PFR0_EL1_MASK) +#define ID_AA64PFR0_EL1_64 (1 << ID_AA64PFR0_EL1_SHIFT) +#define ID_AA64PFR0_EL1_64_32 (2 << ID_AA64PFR0_EL1_SHIFT) +#define ID_AA64PFR0_EL2_SHIFT 8 +#define ID_AA64PFR0_EL2_MASK (0xf << ID_AA64PFR0_EL2_SHIFT) +#define ID_AA64PFR0_EL2(x) ((x) & ID_AA64PFR0_EL2_MASK) +#define ID_AA64PFR0_EL2_NONE (0 << ID_AA64PFR0_EL2_SHIFT) +#define ID_AA64PFR0_EL2_64 (1 << ID_AA64PFR0_EL2_SHIFT) +#define ID_AA64PFR0_EL2_64_32 (2 << ID_AA64PFR0_EL2_SHIFT) +#define ID_AA64PFR0_EL3_SHIFT 12 +#define ID_AA64PFR0_EL3_MASK (0xf << ID_AA64PFR0_EL3_SHIFT) +#define ID_AA64PFR0_EL3(x) ((x) & ID_AA64PFR0_EL3_MASK) +#define ID_AA64PFR0_EL3_NONE (0 << ID_AA64PFR0_EL3_SHIFT) +#define ID_AA64PFR0_EL3_64 (1 << ID_AA64PFR0_EL3_SHIFT) +#define ID_AA64PFR0_EL3_64_32 (2 << ID_AA64PFR0_EL3_SHIFT) +#define ID_AA64PFR0_FP_SHIFT 16 +#define ID_AA64PFR0_FP_MASK (0xf << ID_AA64PFR0_FP_SHIFT) +#define ID_AA64PFR0_FP(x) ((x) & ID_AA64PFR0_FP_MASK) +#define ID_AA64PFR0_FP_IMPL (0x0 << ID_AA64PFR0_FP_SHIFT) +#define ID_AA64PFR0_FP_NONE (0xf << ID_AA64PFR0_FP_SHIFT) +#define ID_AA64PFR0_ADV_SIMD_SHIFT 20 +#define ID_AA64PFR0_ADV_SIMD_MASK (0xf << ID_AA64PFR0_ADV_SIMD_SHIFT) +#define ID_AA64PFR0_ADV_SIMD(x) ((x) & ID_AA64PFR0_ADV_SIMD_MASK) +#define ID_AA64PFR0_ADV_SIMD_IMPL (0x0 << ID_AA64PFR0_ADV_SIMD_SHIFT) +#define ID_AA64PFR0_ADV_SIMD_NONE (0xf << ID_AA64PFR0_ADV_SIMD_SHIFT) +#define ID_AA64PFR0_GIC_BITS 0x4 /* Number of bits in GIC field */ +#define ID_AA64PFR0_GIC_SHIFT 24 +#define ID_AA64PFR0_GIC_MASK (0xf << ID_AA64PFR0_GIC_SHIFT) +#define ID_AA64PFR0_GIC(x) ((x) & ID_AA64PFR0_GIC_MASK) +#define ID_AA64PFR0_GIC_CPUIF_NONE (0x0 << ID_AA64PFR0_GIC_SHIFT) +#define ID_AA64PFR0_GIC_CPUIF_EN (0x1 << ID_AA64PFR0_GIC_SHIFT) /* MAIR_EL1 - Memory Attribute Indirection Register */ #define MAIR_ATTR_MASK(idx) (0xff << ((n)* 8)) Modified: head/sys/arm64/include/cpu.h ============================================================================== --- head/sys/arm64/include/cpu.h Wed Dec 30 17:10:03 2015 (r292953) +++ head/sys/arm64/include/cpu.h Wed Dec 30 17:36:34 2015 (r292954) @@ -145,6 +145,7 @@ void cpu_halt(void) __dead2; void cpu_reset(void) __dead2; void fork_trampoline(void); void identify_cpu(void); +void print_cpu_features(u_int); void swi_vm(void *v); #define CPU_AFFINITY(cpu) __cpu_affinity[(cpu)] From owner-svn-src-all@freebsd.org Wed Dec 30 18:04:51 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6B62BA5568A; Wed, 30 Dec 2015 18:04:51 +0000 (UTC) (envelope-from jtl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3CA341B43; Wed, 30 Dec 2015 18:04:51 +0000 (UTC) (envelope-from jtl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUI4oar065467; Wed, 30 Dec 2015 18:04:50 GMT (envelope-from jtl@FreeBSD.org) Received: (from jtl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUI4oGp065466; Wed, 30 Dec 2015 18:04:50 GMT (envelope-from jtl@FreeBSD.org) Message-Id: <201512301804.tBUI4oGp065466@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jtl set sender to jtl@FreeBSD.org using -f From: "Jonathan T. Looney" Date: Wed, 30 Dec 2015 18:04:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292955 - head/lib/libmd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 18:04:51 -0000 Author: jtl Date: Wed Dec 30 18:04:50 2015 New Revision: 292955 URL: https://svnweb.freebsd.org/changeset/base/292955 Log: Fix a file descriptor leak in mdXhl.c (which is used by numerous hashing algorithms. CID: 1305669,1305611,1305663,1305603,1305584,1305639,1346865,1305601 Differential Revision: https://reviews.freebsd.org/D4732 Reviewed by: allanjude, delphij MFC after: 2 weeks Sponsored by: Juniper Networks Modified: head/lib/libmd/mdXhl.c Modified: head/lib/libmd/mdXhl.c ============================================================================== --- head/lib/libmd/mdXhl.c Wed Dec 30 17:36:34 2015 (r292954) +++ head/lib/libmd/mdXhl.c Wed Dec 30 18:04:50 2015 (r292955) @@ -59,14 +59,18 @@ MDXFileChunk(const char *filename, char f = open(filename, O_RDONLY); if (f < 0) return 0; - if (fstat(f, &stbuf) < 0) - return 0; + if (fstat(f, &stbuf) < 0) { + i = -1; + goto error; + } if (ofs > stbuf.st_size) ofs = stbuf.st_size; if ((len == 0) || (len > stbuf.st_size - ofs)) len = stbuf.st_size - ofs; - if (lseek(f, ofs, SEEK_SET) < 0) - return 0; + if (lseek(f, ofs, SEEK_SET) < 0) { + i = -1; + goto error; + } n = len; i = 0; while (n > 0) { @@ -79,6 +83,7 @@ MDXFileChunk(const char *filename, char MDXUpdate(&ctx, buffer, i); n -= i; } +error: e = errno; close(f); errno = e; From owner-svn-src-all@freebsd.org Wed Dec 30 18:08:06 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E717DA5576B; Wed, 30 Dec 2015 18:08:06 +0000 (UTC) (envelope-from jtl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B475F1D18; Wed, 30 Dec 2015 18:08:06 +0000 (UTC) (envelope-from jtl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUI85fT065640; Wed, 30 Dec 2015 18:08:05 GMT (envelope-from jtl@FreeBSD.org) Received: (from jtl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUI85EJ065639; Wed, 30 Dec 2015 18:08:05 GMT (envelope-from jtl@FreeBSD.org) Message-Id: <201512301808.tBUI85EJ065639@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jtl set sender to jtl@FreeBSD.org using -f From: "Jonathan T. Looney" Date: Wed, 30 Dec 2015 18:08:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292956 - head/sys/netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 18:08:07 -0000 Author: jtl Date: Wed Dec 30 18:08:05 2015 New Revision: 292956 URL: https://svnweb.freebsd.org/changeset/base/292956 Log: Add the appropriate case statement for IPV6_BINDMULTI so the option can be retrieved with getsockopt(). CID: 1229928 Differential Revision: https://reviews.freebsd.org/D4737 Reviewed by: adrian Sponsored by: Juniper Networks Modified: head/sys/netinet6/ip6_output.c Modified: head/sys/netinet6/ip6_output.c ============================================================================== --- head/sys/netinet6/ip6_output.c Wed Dec 30 18:04:50 2015 (r292955) +++ head/sys/netinet6/ip6_output.c Wed Dec 30 18:08:05 2015 (r292956) @@ -1830,6 +1830,7 @@ do { \ case IPV6_RSSBUCKETID: case IPV6_RECVRSSBUCKETID: #endif + case IPV6_BINDMULTI: switch (optname) { case IPV6_RECVHOPOPTS: From owner-svn-src-all@freebsd.org Wed Dec 30 18:13:44 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 53835A55A32; Wed, 30 Dec 2015 18:13:44 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 16BF61154; Wed, 30 Dec 2015 18:13:44 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUIDhJn068426; Wed, 30 Dec 2015 18:13:43 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUIDhjS068425; Wed, 30 Dec 2015 18:13:43 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512301813.tBUIDhjS068425@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 30 Dec 2015 18:13:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292957 - head/tests/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 18:13:44 -0000 Author: ngie Date: Wed Dec 30 18:13:43 2015 New Revision: 292957 URL: https://svnweb.freebsd.org/changeset/base/292957 Log: Rename `recvfd` and `sendfd` variables in recvfd/sendfd functions to avoid -Wshadow issues with gcc MFC after: 1 week Reported by: bz, jenkins Sponsored by: EMC / Isilon Storage Division Modified: head/tests/sys/kern/unix_passfd_test.c Modified: head/tests/sys/kern/unix_passfd_test.c ============================================================================== --- head/tests/sys/kern/unix_passfd_test.c Wed Dec 30 18:08:05 2015 (r292956) +++ head/tests/sys/kern/unix_passfd_test.c Wed Dec 30 18:13:43 2015 (r292957) @@ -109,7 +109,7 @@ samefile(struct stat *sb1, struct stat * } static void -sendfd_payload(int sockfd, int sendfd, void *payload, size_t paylen) +sendfd_payload(int sockfd, int send_fd, void *payload, size_t paylen) { struct iovec iovec; char message[CMSG_SPACE(sizeof(int))]; @@ -133,7 +133,7 @@ sendfd_payload(int sockfd, int sendfd, v cmsghdr->cmsg_len = CMSG_LEN(sizeof(int)); cmsghdr->cmsg_level = SOL_SOCKET; cmsghdr->cmsg_type = SCM_RIGHTS; - memcpy(CMSG_DATA(cmsghdr), &sendfd, sizeof(int)); + memcpy(CMSG_DATA(cmsghdr), &send_fd, sizeof(int)); len = sendmsg(sockfd, &msghdr, 0); ATF_REQUIRE_MSG(len != -1, "sendmsg failed: %s", strerror(errno)); @@ -143,15 +143,15 @@ sendfd_payload(int sockfd, int sendfd, v } static void -sendfd(int sockfd, int sendfd) +sendfd(int sockfd, int send_fd) { char ch = 0; - return (sendfd_payload(sockfd, sendfd, &ch, sizeof(ch))); + return (sendfd_payload(sockfd, send_fd, &ch, sizeof(ch))); } static void -recvfd_payload(int sockfd, int *recvfd, void *buf, size_t buflen) +recvfd_payload(int sockfd, int *recv_fd, void *buf, size_t buflen) { struct cmsghdr *cmsghdr; char message[CMSG_SPACE(SOCKCREDSIZE(CMGROUP_MAX)) + sizeof(int)]; @@ -178,25 +178,25 @@ recvfd_payload(int sockfd, int *recvfd, cmsghdr = CMSG_FIRSTHDR(&msghdr); ATF_REQUIRE_MSG(cmsghdr != NULL, "recvmsg: did not receive control message"); - *recvfd = -1; + *recv_fd = -1; for (; cmsghdr != NULL; cmsghdr = CMSG_NXTHDR(&msghdr, cmsghdr)) { if (cmsghdr->cmsg_level == SOL_SOCKET && cmsghdr->cmsg_type == SCM_RIGHTS && cmsghdr->cmsg_len == CMSG_LEN(sizeof(int))) { - memcpy(recvfd, CMSG_DATA(cmsghdr), sizeof(int)); - ATF_REQUIRE(*recvfd != -1); + memcpy(recv_fd, CMSG_DATA(cmsghdr), sizeof(int)); + ATF_REQUIRE(*recv_fd != -1); } } - ATF_REQUIRE_MSG(*recvfd != -1, + ATF_REQUIRE_MSG(*recv_fd != -1, "recvmsg: did not receive single-fd message"); } static void -recvfd(int sockfd, int *recvfd) +recvfd(int sockfd, int *recv_fd) { char ch = 0; - return (recvfd_payload(sockfd, recvfd, &ch, sizeof(ch))); + return (recvfd_payload(sockfd, recv_fd, &ch, sizeof(ch))); } /* From owner-svn-src-all@freebsd.org Wed Dec 30 18:15:05 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 414D3A55AD8; Wed, 30 Dec 2015 18:15:05 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-ob0-x234.google.com (mail-ob0-x234.google.com [IPv6:2607:f8b0:4003:c01::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0CE0D1304; Wed, 30 Dec 2015 18:15:05 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-ob0-x234.google.com with SMTP id ba1so182551413obb.3; Wed, 30 Dec 2015 10:15:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=8UCpr7FKkny5b+NRxvugHITkpKuNRF2/PfUWc3d8l3Y=; b=nzwSVsasACcol3L6+VgBxkRVAcLpV9ANmwptFQRaHcocrGARmREEIEOmzHb3VuBVi4 OGtFkAgc6XvbMKa1JQHSWi/QygOaQdJ9iXXkEFikJ/lM2RqBTa4Ml6kQrSZteBBnDnV6 WTE0MLHQqX2nny4QR0T0Upsmmefrq7CB0ql+EndhH7PiMHKYc8K3ks4tRhxS821R407s 0Z0UC5/o537mJglBLqrflJj9UqSIuzlXDrazySad3hrVynEU+SMHVFo7NZ6a9PreYGJb IC1PQGwQkNK1rlc/hO9XrlhVYOnnM5Nl5nJ92H8ws25naZIShv0CU1+93HLh2hWlCxvB tPnQ== X-Received: by 10.182.108.229 with SMTP id hn5mr43540337obb.75.1451499304412; Wed, 30 Dec 2015 10:15:04 -0800 (PST) Received: from ?IPv6:2601:601:800:126d:9910:6b8e:28b:6700? ([2601:601:800:126d:9910:6b8e:28b:6700]) by smtp.gmail.com with ESMTPSA id px4sm10031942oec.7.2015.12.30.10.15.01 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 30 Dec 2015 10:15:02 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r292914 - in head: tests/sys/kern tools/regression/sockets/unix_passfd From: NGie Cooper In-Reply-To: <9CE6F38D-FD5A-4EF0-BFA8-4002ED3519A2@FreeBSD.org> Date: Wed, 30 Dec 2015 10:15:00 -0800 Cc: Garrett Cooper , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <02D10D41-F768-4463-BAE7-8E395C0986B8@gmail.com> References: <201512301115.tBUBF7Wr038402@repo.freebsd.org> <9CE6F38D-FD5A-4EF0-BFA8-4002ED3519A2@FreeBSD.org> To: "Bjoern A. Zeeb" X-Mailer: Apple Mail (2.2104) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 18:15:05 -0000 > On Dec 30, 2015, at 08:31, Bjoern A. Zeeb wrote: >=20 >>=20 >> On 30 Dec 2015, at 11:15 , Garrett Cooper wrote: >>=20 >> Author: ngie >> Date: Wed Dec 30 11:15:07 2015 >> New Revision: 292914 >> URL: https://svnweb.freebsd.org/changeset/base/292914 >>=20 >> Log: >> Integrate tools/regression/sockets/unix_passfd into the FreeBSD test >> suite as tests/sys/kern/unix_passfd_test >>=20 >> - Convert testcases to ATF >> - Fix an alignment issues >> - Mark rights_creds_payload(..) as an expected failure (see PR # = 181741) >>=20 >> Based [in part] on the following Differential Revision: >> https://reviews.freebsd.org/D689 >>=20 >> MFC after: 1 week >> Submitted by: markj >> Sponsored by: EMC / Isilon Storage Division >=20 > n all gcc platforms this fails: >=20 > /scratch/tmp/bz/head.svn/tests/sys/kern/unix_passfd_test.c: In = function 'sendfd': > /scratch/tmp/bz/head.svn/tests/sys/kern/unix_passfd_test.c:146: = warning: declaration of 'sendfd' shadows a global declaration > /scratch/tmp/bz/head.svn/tests/sys/kern/unix_passfd_test.c:147: = warning: shadowed declaration is here > /scratch/tmp/bz/head.svn/tests/sys/kern/unix_passfd_test.c: In = function 'recvfd': > /scratch/tmp/bz/head.svn/tests/sys/kern/unix_passfd_test.c:195: = warning: declaration of 'recvfd' shadows a global declaration > /scratch/tmp/bz/head.svn/tests/sys/kern/unix_passfd_test.c:196: = warning: shadowed declaration is here Ugh=E2=80=A6 yeah... I forgot about that (I did this work before = in a different branch, but it got wiped out). Thanks for the report! I=E2=80=99ve fixed it in r292957. -NGie= From owner-svn-src-all@freebsd.org Wed Dec 30 18:57:30 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A9262A5675C; Wed, 30 Dec 2015 18:57:30 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 72977137F; Wed, 30 Dec 2015 18:57:30 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUIvTJd079988; Wed, 30 Dec 2015 18:57:29 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUIvT8C079987; Wed, 30 Dec 2015 18:57:29 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201512301857.tBUIvT8C079987@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Wed, 30 Dec 2015 18:57:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292960 - head/sys/sparc64/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 18:57:30 -0000 Author: marius Date: Wed Dec 30 18:57:29 2015 New Revision: 292960 URL: https://svnweb.freebsd.org/changeset/base/292960 Log: Change the - hopefully - last piece of ktr(9) to use PCPU_GET(cpuid) instead of the MD module ID for KTR_CPU. Modified: head/sys/sparc64/include/ktr.h Modified: head/sys/sparc64/include/ktr.h ============================================================================== --- head/sys/sparc64/include/ktr.h Wed Dec 30 18:52:29 2015 (r292959) +++ head/sys/sparc64/include/ktr.h Wed Dec 30 18:57:29 2015 (r292960) @@ -59,7 +59,7 @@ l2: add r2, 1, r3 ; \ add r1, r2, r1 ; \ rd %tick, r2 ; \ stx r2, [r1 + KTR_TIMESTAMP] ; \ - lduw [PCPU(MID)], r2 ; \ + lduw [PCPU(CPUID)], r2 ; \ stw r2, [r1 + KTR_CPU] ; \ stw %g0, [r1 + KTR_LINE] ; \ stx %g0, [r1 + KTR_FILE] ; \ From owner-svn-src-all@freebsd.org Wed Dec 30 19:49:23 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E7041A554E1; Wed, 30 Dec 2015 19:49:23 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A92091C21; Wed, 30 Dec 2015 19:49:23 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUJnMH3094444; Wed, 30 Dec 2015 19:49:22 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUJnMWa094443; Wed, 30 Dec 2015 19:49:22 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201512301949.tBUJnMWa094443@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 30 Dec 2015 19:49:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292961 - head/sys/fs/nullfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 19:49:24 -0000 Author: kib Date: Wed Dec 30 19:49:22 2015 New Revision: 292961 URL: https://svnweb.freebsd.org/changeset/base/292961 Log: Force nullfs vnode reclaim after unlinking, to potentially unlink lower vnode. Otherwise, reference to the lower vnode from the upper one prevents final unlink. PR: 178238 Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/fs/nullfs/null_vnops.c Modified: head/sys/fs/nullfs/null_vnops.c ============================================================================== --- head/sys/fs/nullfs/null_vnops.c Wed Dec 30 18:57:29 2015 (r292960) +++ head/sys/fs/nullfs/null_vnops.c Wed Dec 30 19:49:22 2015 (r292961) @@ -568,14 +568,16 @@ static int null_remove(struct vop_remove_args *ap) { int retval, vreleit; - struct vnode *lvp; + struct vnode *lvp, *vp; - if (vrefcnt(ap->a_vp) > 1) { - lvp = NULLVPTOLOWERVP(ap->a_vp); + vp = ap->a_vp; + if (vrefcnt(vp) > 1) { + lvp = NULLVPTOLOWERVP(vp); VREF(lvp); vreleit = 1; } else vreleit = 0; + VTONULL(vp)->null_flags |= NULLV_DROP; retval = null_bypass(&ap->a_gen); if (vreleit != 0) vrele(lvp); From owner-svn-src-all@freebsd.org Wed Dec 30 20:19:21 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DBA1CA55E93; Wed, 30 Dec 2015 20:19:20 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.137]) by mx1.freebsd.org (Postfix) with ESMTP id 30B381AAC; Wed, 30 Dec 2015 20:19:20 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from spqr.komquats.com ([96.50.22.10]) by shaw.ca with SMTP id ENDEauUzydBaTENDFaF4Xp; Wed, 30 Dec 2015 13:19:14 -0700 X-Authority-Analysis: v=2.1 cv=He60Nnw8 c=1 sm=1 tr=0 a=jvE2nwUzI0ECrNeyr98KWA==:117 a=jvE2nwUzI0ECrNeyr98KWA==:17 a=BWvPGDcYAAAA:8 a=VxmjJ2MpAAAA:8 a=kj9zAlcOel0A:10 a=wUQvQvOEmiQA:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=awknIvsCzPwG_4OrAGYA:9 a=CjuIK1q_8ugA:10 a=oappaISLdyUA:10 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTP id 70A27138A4; Wed, 30 Dec 2015 12:19:12 -0800 (PST) Received: from slippy (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id tBUKJ9It008305; Wed, 30 Dec 2015 12:19:09 -0800 (PST) (envelope-from Cy.Schubert@komquats.com) Message-Id: <201512302019.tBUKJ9It008305@slippy.cwsent.com> X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.6 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.komquats.com/ To: Ian Lepore cc: Colin Percival , Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, edwin@freebsd.org, Xin Li , dwmalone@freebsd.org, roberto@freebsd.org, des@freebsd.org Subject: Re: svn commit: r289421 - in head/etc: . mtree ntp In-Reply-To: Message from Ian Lepore of "Wed, 30 Dec 2015 09:04:50 -0700." <1451491490.1369.41.camel@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 30 Dec 2015 12:19:09 -0800 X-CMAE-Envelope: MS4wfDYtsnsTwzCB0FPxnXM3EheltHTKzNTJTz45mnlFihRfyFRUvs2RS3wB7OcUuHHe50yd7dMK0t6iofITFO/35NgWLoe1dall+6n2u2UoKB+Cp7dqy5b4 LjX/93RUKAdm8SqmMmBik90x3NUCxCSNcIms0ruooZpwRRNJzU5uapjn9VjXUiwI8I42b3DO14NSfs50JVsiO6KpW4MMSIG1vwquVc7Q1KeOXdWs/iHk2UCO Eh6x9Cuz1eFfkzwJBD+eTtMc9PeyqlsSyEIcaBCSPlcB4qq7/+w3p498Wjg+Bf95Mqpj5dRMVRFLQ+I8xvvBizk7QSuU4dlM9mpQbysx4CFWRiclY+a3dnMa q9+FaO+tBGs4lr+y7HkcBnGBS2U+Y8NV1oGm3cir8CSF56/fIkajp7XbXAIA2rtfzM91xVFWFyvhDMv0ZVhOtPeJgQv8WtAEu/ya5eDJBQGVu+5Xvp8Jjatc YpInjOJcegtTeoN7 X-Mailman-Approved-At: Wed, 30 Dec 2015 20:46:30 +0000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 20:19:21 -0000 In message <1451491490.1369.41.camel@freebsd.org>, Ian Lepore writes: > On Wed, 2015-12-30 at 04:50 -0800, Colin Percival wrote: > > On 10/16/15 07:04, Cy Schubert wrote: > > > Add default leap-seconds file. This should help ntp networks get > > > the > > > leap second date correct > > > > > > Added: > > > head/etc/ntp/ > > > head/etc/ntp/Makefile (contents, props changed) > > > head/etc/ntp/leap-seconds (contents, props changed) > > > > So... is someone going to be keeping this file up to date? We seem > > to have > > the same information in contrib/tzdata/leapseconds (which is being > > kept up > > to date -- thank you edwin and delphij!) but having this file in > > /etc/ntp/ > > being out of date is making ntpd refuse to start. > > > > I vaguely remember warning that something like this was likely to > happen. Turning on leapfile processing by default without an already > -in-place mechanism to keep the file up to date was a bad idea. There > was some mumbling about a mechanism, but nobody wrote any code. > > Even if the mechanism existed, I think defaulting to using the leapfile > is wrong. It's a thing that needs care and feeding or it causes > problems, and thus it's a thing that should only be enabled by admins > who know about the care and feeding aspect (an automatic fetch > mechanism doesn't help much if there are firewalls blocking the fetch, > for example). The original idea was to update the file twice a year. Just before Christmas des@ suggested an alternative approach of fetching an update weekly or monthly because some upstream ntp servers not using the correct leap seconds and hosting the file locally would be more reliable. I've cc'd you on my last reply to des@ this morning. -- Cheers, Cy Schubert or FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-all@freebsd.org Wed Dec 30 22:43:09 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AE6AFA56802; Wed, 30 Dec 2015 22:43:09 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 50236117E; Wed, 30 Dec 2015 22:43:09 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUMh8Zk046095; Wed, 30 Dec 2015 22:43:08 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUMh8cx046090; Wed, 30 Dec 2015 22:43:08 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201512302243.tBUMh8cx046090@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Wed, 30 Dec 2015 22:43:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292963 - in head/sys: crypto opencrypto X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 22:43:09 -0000 Author: allanjude Date: Wed Dec 30 22:43:07 2015 New Revision: 292963 URL: https://svnweb.freebsd.org/changeset/base/292963 Log: Break up opencrypto/xform.c so it can be reused piecemeal Keep xform.c as a meta-file including the broken out bits existing code that includes xform.c continues to work as normal Individual algorithms can now be reused elsewhere, including outside of the kernel Reviewed by: bapt (previous version), gnn, delphij Approved by: secteam MFC after: 1 week Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D4674 Added: head/sys/opencrypto/xform_aes_icm.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_aes_xts.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_auth.h - copied, changed from r292837, head/sys/opencrypto/xform.h head/sys/opencrypto/xform_blf.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_cast5.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_cml.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_comp.h - copied, changed from r292837, head/sys/opencrypto/xform.h head/sys/opencrypto/xform_deflate.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_des1.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_des3.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_enc.h - copied, changed from r292837, head/sys/opencrypto/xform.h head/sys/opencrypto/xform_gmac.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_md5.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_null.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_rijndael.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_rmd160.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_sha1.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_sha2.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_skipjack.c - copied, changed from r292238, head/sys/opencrypto/xform.c head/sys/opencrypto/xform_userland.h (contents, props changed) Modified: head/sys/crypto/sha1.h head/sys/opencrypto/skipjack.h head/sys/opencrypto/xform.c head/sys/opencrypto/xform.h Modified: head/sys/crypto/sha1.h ============================================================================== --- head/sys/crypto/sha1.h Wed Dec 30 20:15:29 2015 (r292962) +++ head/sys/crypto/sha1.h Wed Dec 30 22:43:07 2015 (r292963) @@ -53,6 +53,7 @@ struct sha1_ctxt { } m; u_int8_t count; }; +typedef struct sha1_ctxt SHA1_CTX; #ifdef _KERNEL extern void sha1_init(struct sha1_ctxt *); @@ -61,7 +62,6 @@ extern void sha1_loop(struct sha1_ctxt * extern void sha1_result(struct sha1_ctxt *, caddr_t); /* compatibilty with other SHA1 source codes */ -typedef struct sha1_ctxt SHA1_CTX; #define SHA1Init(x) sha1_init((x)) #define SHA1Update(x, y, z) sha1_loop((x), (y), (z)) #define SHA1Final(x, y) sha1_result((y), (x)) Modified: head/sys/opencrypto/skipjack.h ============================================================================== --- head/sys/opencrypto/skipjack.h Wed Dec 30 20:15:29 2015 (r292962) +++ head/sys/opencrypto/skipjack.h Wed Dec 30 22:43:07 2015 (r292963) @@ -14,6 +14,11 @@ * 29 May 1998 */ +#ifndef _SKIPJACK_H_ +#define _SKIPJACK_H_ + extern void skipjack_forwards(u_int8_t *plain, u_int8_t *cipher, u_int8_t **key); extern void skipjack_backwards(u_int8_t *cipher, u_int8_t *plain, u_int8_t **key); extern void subkey_table_gen(u_int8_t *key, u_int8_t **key_tables); + +#endif Modified: head/sys/opencrypto/xform.c ============================================================================== --- head/sys/opencrypto/xform.c Wed Dec 30 20:15:29 2015 (r292962) +++ head/sys/opencrypto/xform.c Wed Dec 30 22:43:07 2015 (r292963) @@ -75,196 +75,9 @@ __FBSDID("$FreeBSD$"); #include #include -static int null_setkey(u_int8_t **, u_int8_t *, int); -static int des1_setkey(u_int8_t **, u_int8_t *, int); -static int des3_setkey(u_int8_t **, u_int8_t *, int); -static int blf_setkey(u_int8_t **, u_int8_t *, int); -static int cast5_setkey(u_int8_t **, u_int8_t *, int); -static int skipjack_setkey(u_int8_t **, u_int8_t *, int); -static int rijndael128_setkey(u_int8_t **, u_int8_t *, int); -static int aes_icm_setkey(u_int8_t **, u_int8_t *, int); -static int aes_xts_setkey(u_int8_t **, u_int8_t *, int); -static int cml_setkey(u_int8_t **, u_int8_t *, int); - -static void null_encrypt(caddr_t, u_int8_t *); -static void des1_encrypt(caddr_t, u_int8_t *); -static void des3_encrypt(caddr_t, u_int8_t *); -static void blf_encrypt(caddr_t, u_int8_t *); -static void cast5_encrypt(caddr_t, u_int8_t *); -static void skipjack_encrypt(caddr_t, u_int8_t *); -static void rijndael128_encrypt(caddr_t, u_int8_t *); -static void aes_xts_encrypt(caddr_t, u_int8_t *); -static void cml_encrypt(caddr_t, u_int8_t *); - -static void null_decrypt(caddr_t, u_int8_t *); -static void des1_decrypt(caddr_t, u_int8_t *); -static void des3_decrypt(caddr_t, u_int8_t *); -static void blf_decrypt(caddr_t, u_int8_t *); -static void cast5_decrypt(caddr_t, u_int8_t *); -static void skipjack_decrypt(caddr_t, u_int8_t *); -static void rijndael128_decrypt(caddr_t, u_int8_t *); -static void aes_xts_decrypt(caddr_t, u_int8_t *); -static void cml_decrypt(caddr_t, u_int8_t *); - -static void aes_icm_crypt(caddr_t, u_int8_t *); - -static void null_zerokey(u_int8_t **); -static void des1_zerokey(u_int8_t **); -static void des3_zerokey(u_int8_t **); -static void blf_zerokey(u_int8_t **); -static void cast5_zerokey(u_int8_t **); -static void skipjack_zerokey(u_int8_t **); -static void rijndael128_zerokey(u_int8_t **); -static void aes_icm_zerokey(u_int8_t **); -static void aes_xts_zerokey(u_int8_t **); -static void cml_zerokey(u_int8_t **); - -static void aes_icm_reinit(caddr_t, u_int8_t *); -static void aes_xts_reinit(caddr_t, u_int8_t *); -static void aes_gcm_reinit(caddr_t, u_int8_t *); - -static void null_init(void *); -static void null_reinit(void *ctx, const u_int8_t *buf, u_int16_t len); -static int null_update(void *, const u_int8_t *, u_int16_t); -static void null_final(u_int8_t *, void *); -static int MD5Update_int(void *, const u_int8_t *, u_int16_t); -static void SHA1Init_int(void *); -static int SHA1Update_int(void *, const u_int8_t *, u_int16_t); -static void SHA1Final_int(u_int8_t *, void *); -static int RMD160Update_int(void *, const u_int8_t *, u_int16_t); -static int SHA256Update_int(void *, const u_int8_t *, u_int16_t); -static int SHA384Update_int(void *, const u_int8_t *, u_int16_t); -static int SHA512Update_int(void *, const u_int8_t *, u_int16_t); - -static u_int32_t deflate_compress(u_int8_t *, u_int32_t, u_int8_t **); -static u_int32_t deflate_decompress(u_int8_t *, u_int32_t, u_int8_t **); - -#define AESICM_BLOCKSIZE AES_BLOCK_LEN - -struct aes_icm_ctx { - u_int32_t ac_ek[4*(RIJNDAEL_MAXNR + 1)]; - /* ac_block is initalized to IV */ - u_int8_t ac_block[AESICM_BLOCKSIZE]; - int ac_nr; -}; - MALLOC_DEFINE(M_XDATA, "xform", "xform data buffers"); /* Encryption instances */ -struct enc_xform enc_xform_null = { - CRYPTO_NULL_CBC, "NULL", - /* NB: blocksize of 4 is to generate a properly aligned ESP header */ - NULL_BLOCK_LEN, 0, NULL_MIN_KEY, NULL_MAX_KEY, - null_encrypt, - null_decrypt, - null_setkey, - null_zerokey, - NULL, -}; - -struct enc_xform enc_xform_des = { - CRYPTO_DES_CBC, "DES", - DES_BLOCK_LEN, DES_BLOCK_LEN, DES_MIN_KEY, DES_MAX_KEY, - des1_encrypt, - des1_decrypt, - des1_setkey, - des1_zerokey, - NULL, -}; - -struct enc_xform enc_xform_3des = { - CRYPTO_3DES_CBC, "3DES", - DES3_BLOCK_LEN, DES3_BLOCK_LEN, TRIPLE_DES_MIN_KEY, - TRIPLE_DES_MAX_KEY, - des3_encrypt, - des3_decrypt, - des3_setkey, - des3_zerokey, - NULL, -}; - -struct enc_xform enc_xform_blf = { - CRYPTO_BLF_CBC, "Blowfish", - BLOWFISH_BLOCK_LEN, BLOWFISH_BLOCK_LEN, BLOWFISH_MIN_KEY, - BLOWFISH_MAX_KEY, - blf_encrypt, - blf_decrypt, - blf_setkey, - blf_zerokey, - NULL, -}; - -struct enc_xform enc_xform_cast5 = { - CRYPTO_CAST_CBC, "CAST-128", - CAST128_BLOCK_LEN, CAST128_BLOCK_LEN, CAST_MIN_KEY, CAST_MAX_KEY, - cast5_encrypt, - cast5_decrypt, - cast5_setkey, - cast5_zerokey, - NULL, -}; - -struct enc_xform enc_xform_skipjack = { - CRYPTO_SKIPJACK_CBC, "Skipjack", - SKIPJACK_BLOCK_LEN, SKIPJACK_BLOCK_LEN, SKIPJACK_MIN_KEY, - SKIPJACK_MAX_KEY, - skipjack_encrypt, - skipjack_decrypt, skipjack_setkey, - skipjack_zerokey, - NULL, -}; - -struct enc_xform enc_xform_rijndael128 = { - CRYPTO_RIJNDAEL128_CBC, "Rijndael-128/AES", - RIJNDAEL128_BLOCK_LEN, RIJNDAEL128_BLOCK_LEN, RIJNDAEL_MIN_KEY, - RIJNDAEL_MAX_KEY, - rijndael128_encrypt, - rijndael128_decrypt, - rijndael128_setkey, - rijndael128_zerokey, - NULL, -}; - -struct enc_xform enc_xform_aes_icm = { - CRYPTO_AES_ICM, "AES-ICM", - AES_BLOCK_LEN, AES_BLOCK_LEN, AES_MIN_KEY, AES_MAX_KEY, - aes_icm_crypt, - aes_icm_crypt, - aes_icm_setkey, - rijndael128_zerokey, - aes_icm_reinit, -}; - -struct enc_xform enc_xform_aes_nist_gcm = { - CRYPTO_AES_NIST_GCM_16, "AES-GCM", - AES_ICM_BLOCK_LEN, AES_GCM_IV_LEN, AES_MIN_KEY, AES_MAX_KEY, - aes_icm_crypt, - aes_icm_crypt, - aes_icm_setkey, - aes_icm_zerokey, - aes_gcm_reinit, -}; - -struct enc_xform enc_xform_aes_nist_gmac = { - CRYPTO_AES_NIST_GMAC, "AES-GMAC", - AES_ICM_BLOCK_LEN, AES_GCM_IV_LEN, AES_MIN_KEY, AES_MAX_KEY, - NULL, - NULL, - NULL, - NULL, - NULL, -}; - -struct enc_xform enc_xform_aes_xts = { - CRYPTO_AES_XTS, "AES-XTS", - AES_BLOCK_LEN, AES_XTS_IV_LEN, AES_XTS_MIN_KEY, AES_XTS_MAX_KEY, - aes_xts_encrypt, - aes_xts_decrypt, - aes_xts_setkey, - aes_xts_zerokey, - aes_xts_reinit -}; - struct enc_xform enc_xform_arc4 = { CRYPTO_ARC4, "ARC4", ARC4_BLOCK_LEN, ARC4_IV_LEN, ARC4_MIN_KEY, ARC4_MAX_KEY, @@ -275,711 +88,26 @@ struct enc_xform enc_xform_arc4 = { NULL, }; -struct enc_xform enc_xform_camellia = { - CRYPTO_CAMELLIA_CBC, "Camellia", - CAMELLIA_BLOCK_LEN, CAMELLIA_BLOCK_LEN, CAMELLIA_MIN_KEY, - CAMELLIA_MAX_KEY, - cml_encrypt, - cml_decrypt, - cml_setkey, - cml_zerokey, - NULL, -}; - -/* Authentication instances */ -struct auth_hash auth_hash_null = { /* NB: context isn't used */ - CRYPTO_NULL_HMAC, "NULL-HMAC", - NULL_HMAC_KEY_LEN, NULL_HASH_LEN, sizeof(int), NULL_HMAC_BLOCK_LEN, - null_init, null_reinit, null_reinit, null_update, null_final -}; - -struct auth_hash auth_hash_hmac_md5 = { - CRYPTO_MD5_HMAC, "HMAC-MD5", - MD5_HMAC_KEY_LEN, MD5_HASH_LEN, sizeof(MD5_CTX), MD5_HMAC_BLOCK_LEN, - (void (*) (void *)) MD5Init, NULL, NULL, MD5Update_int, - (void (*) (u_int8_t *, void *)) MD5Final -}; - -struct auth_hash auth_hash_hmac_sha1 = { - CRYPTO_SHA1_HMAC, "HMAC-SHA1", - SHA1_HMAC_KEY_LEN, SHA1_HASH_LEN, sizeof(SHA1_CTX), SHA1_HMAC_BLOCK_LEN, - SHA1Init_int, NULL, NULL, SHA1Update_int, SHA1Final_int -}; - -struct auth_hash auth_hash_hmac_ripemd_160 = { - CRYPTO_RIPEMD160_HMAC, "HMAC-RIPEMD-160", - RIPEMD160_HMAC_KEY_LEN, RIPEMD160_HASH_LEN, sizeof(RMD160_CTX), - RIPEMD160_HMAC_BLOCK_LEN, - (void (*)(void *)) RMD160Init, NULL, NULL, RMD160Update_int, - (void (*)(u_int8_t *, void *)) RMD160Final -}; - -struct auth_hash auth_hash_key_md5 = { - CRYPTO_MD5_KPDK, "Keyed MD5", - NULL_HMAC_KEY_LEN, MD5_KPDK_HASH_LEN, sizeof(MD5_CTX), 0, - (void (*)(void *)) MD5Init, NULL, NULL, MD5Update_int, - (void (*)(u_int8_t *, void *)) MD5Final -}; - -struct auth_hash auth_hash_key_sha1 = { - CRYPTO_SHA1_KPDK, "Keyed SHA1", - NULL_HMAC_KEY_LEN, SHA1_KPDK_HASH_LEN, sizeof(SHA1_CTX), 0, - SHA1Init_int, NULL, NULL, SHA1Update_int, SHA1Final_int -}; - -struct auth_hash auth_hash_hmac_sha2_256 = { - CRYPTO_SHA2_256_HMAC, "HMAC-SHA2-256", - SHA2_256_HMAC_KEY_LEN, SHA2_256_HASH_LEN, sizeof(SHA256_CTX), - SHA2_256_HMAC_BLOCK_LEN, - (void (*)(void *)) SHA256_Init, NULL, NULL, SHA256Update_int, - (void (*)(u_int8_t *, void *)) SHA256_Final -}; - -struct auth_hash auth_hash_hmac_sha2_384 = { - CRYPTO_SHA2_384_HMAC, "HMAC-SHA2-384", - SHA2_384_HMAC_KEY_LEN, SHA2_384_HASH_LEN, sizeof(SHA384_CTX), - SHA2_384_HMAC_BLOCK_LEN, - (void (*)(void *)) SHA384_Init, NULL, NULL, SHA384Update_int, - (void (*)(u_int8_t *, void *)) SHA384_Final -}; - -struct auth_hash auth_hash_hmac_sha2_512 = { - CRYPTO_SHA2_512_HMAC, "HMAC-SHA2-512", - SHA2_512_HMAC_KEY_LEN, SHA2_512_HASH_LEN, sizeof(SHA512_CTX), - SHA2_512_HMAC_BLOCK_LEN, - (void (*)(void *)) SHA512_Init, NULL, NULL, SHA512Update_int, - (void (*)(u_int8_t *, void *)) SHA512_Final -}; - -struct auth_hash auth_hash_nist_gmac_aes_128 = { - CRYPTO_AES_128_NIST_GMAC, "GMAC-AES-128", - AES_128_GMAC_KEY_LEN, AES_GMAC_HASH_LEN, sizeof(struct aes_gmac_ctx), - GMAC_BLOCK_LEN, - (void (*)(void *)) AES_GMAC_Init, - (void (*)(void *, const u_int8_t *, u_int16_t)) AES_GMAC_Setkey, - (void (*)(void *, const u_int8_t *, u_int16_t)) AES_GMAC_Reinit, - (int (*)(void *, const u_int8_t *, u_int16_t)) AES_GMAC_Update, - (void (*)(u_int8_t *, void *)) AES_GMAC_Final -}; - -struct auth_hash auth_hash_nist_gmac_aes_192 = { - CRYPTO_AES_192_NIST_GMAC, "GMAC-AES-192", - AES_192_GMAC_KEY_LEN, AES_GMAC_HASH_LEN, sizeof(struct aes_gmac_ctx), - GMAC_BLOCK_LEN, - (void (*)(void *)) AES_GMAC_Init, - (void (*)(void *, const u_int8_t *, u_int16_t)) AES_GMAC_Setkey, - (void (*)(void *, const u_int8_t *, u_int16_t)) AES_GMAC_Reinit, - (int (*)(void *, const u_int8_t *, u_int16_t)) AES_GMAC_Update, - (void (*)(u_int8_t *, void *)) AES_GMAC_Final -}; - -struct auth_hash auth_hash_nist_gmac_aes_256 = { - CRYPTO_AES_256_NIST_GMAC, "GMAC-AES-256", - AES_256_GMAC_KEY_LEN, AES_GMAC_HASH_LEN, sizeof(struct aes_gmac_ctx), - GMAC_BLOCK_LEN, - (void (*)(void *)) AES_GMAC_Init, - (void (*)(void *, const u_int8_t *, u_int16_t)) AES_GMAC_Setkey, - (void (*)(void *, const u_int8_t *, u_int16_t)) AES_GMAC_Reinit, - (int (*)(void *, const u_int8_t *, u_int16_t)) AES_GMAC_Update, - (void (*)(u_int8_t *, void *)) AES_GMAC_Final -}; - -/* Compression instance */ -struct comp_algo comp_algo_deflate = { - CRYPTO_DEFLATE_COMP, "Deflate", - 90, deflate_compress, - deflate_decompress -}; - -/* - * Encryption wrapper routines. - */ -static void -null_encrypt(caddr_t key, u_int8_t *blk) -{ -} -static void -null_decrypt(caddr_t key, u_int8_t *blk) -{ -} -static int -null_setkey(u_int8_t **sched, u_int8_t *key, int len) -{ - *sched = NULL; - return 0; -} -static void -null_zerokey(u_int8_t **sched) -{ - *sched = NULL; -} - -static void -des1_encrypt(caddr_t key, u_int8_t *blk) -{ - des_cblock *cb = (des_cblock *) blk; - des_key_schedule *p = (des_key_schedule *) key; - - des_ecb_encrypt(cb, cb, p[0], DES_ENCRYPT); -} - -static void -des1_decrypt(caddr_t key, u_int8_t *blk) -{ - des_cblock *cb = (des_cblock *) blk; - des_key_schedule *p = (des_key_schedule *) key; - - des_ecb_encrypt(cb, cb, p[0], DES_DECRYPT); -} - -static int -des1_setkey(u_int8_t **sched, u_int8_t *key, int len) -{ - des_key_schedule *p; - int err; - - p = malloc(sizeof (des_key_schedule), - M_CRYPTO_DATA, M_NOWAIT|M_ZERO); - if (p != NULL) { - des_set_key((des_cblock *) key, p[0]); - err = 0; - } else - err = ENOMEM; - *sched = (u_int8_t *) p; - return err; -} - -static void -des1_zerokey(u_int8_t **sched) -{ - bzero(*sched, sizeof (des_key_schedule)); - free(*sched, M_CRYPTO_DATA); - *sched = NULL; -} - -static void -des3_encrypt(caddr_t key, u_int8_t *blk) -{ - des_cblock *cb = (des_cblock *) blk; - des_key_schedule *p = (des_key_schedule *) key; - - des_ecb3_encrypt(cb, cb, p[0], p[1], p[2], DES_ENCRYPT); -} - -static void -des3_decrypt(caddr_t key, u_int8_t *blk) -{ - des_cblock *cb = (des_cblock *) blk; - des_key_schedule *p = (des_key_schedule *) key; - - des_ecb3_encrypt(cb, cb, p[0], p[1], p[2], DES_DECRYPT); -} - -static int -des3_setkey(u_int8_t **sched, u_int8_t *key, int len) -{ - des_key_schedule *p; - int err; - - p = malloc(3*sizeof (des_key_schedule), - M_CRYPTO_DATA, M_NOWAIT|M_ZERO); - if (p != NULL) { - des_set_key((des_cblock *)(key + 0), p[0]); - des_set_key((des_cblock *)(key + 8), p[1]); - des_set_key((des_cblock *)(key + 16), p[2]); - err = 0; - } else - err = ENOMEM; - *sched = (u_int8_t *) p; - return err; -} - -static void -des3_zerokey(u_int8_t **sched) -{ - bzero(*sched, 3*sizeof (des_key_schedule)); - free(*sched, M_CRYPTO_DATA); - *sched = NULL; -} - -static void -blf_encrypt(caddr_t key, u_int8_t *blk) -{ - BF_LONG t[2]; - - memcpy(t, blk, sizeof (t)); - t[0] = ntohl(t[0]); - t[1] = ntohl(t[1]); - /* NB: BF_encrypt expects the block in host order! */ - BF_encrypt(t, (BF_KEY *) key); - t[0] = htonl(t[0]); - t[1] = htonl(t[1]); - memcpy(blk, t, sizeof (t)); -} - -static void -blf_decrypt(caddr_t key, u_int8_t *blk) -{ - BF_LONG t[2]; - - memcpy(t, blk, sizeof (t)); - t[0] = ntohl(t[0]); - t[1] = ntohl(t[1]); - /* NB: BF_decrypt expects the block in host order! */ - BF_decrypt(t, (BF_KEY *) key); - t[0] = htonl(t[0]); - t[1] = htonl(t[1]); - memcpy(blk, t, sizeof (t)); -} - -static int -blf_setkey(u_int8_t **sched, u_int8_t *key, int len) -{ - int err; - - *sched = malloc(sizeof(BF_KEY), - M_CRYPTO_DATA, M_NOWAIT|M_ZERO); - if (*sched != NULL) { - BF_set_key((BF_KEY *) *sched, len, key); - err = 0; - } else - err = ENOMEM; - return err; -} - -static void -blf_zerokey(u_int8_t **sched) -{ - bzero(*sched, sizeof(BF_KEY)); - free(*sched, M_CRYPTO_DATA); - *sched = NULL; -} - -static void -cast5_encrypt(caddr_t key, u_int8_t *blk) -{ - cast_encrypt((cast_key *) key, blk, blk); -} - -static void -cast5_decrypt(caddr_t key, u_int8_t *blk) -{ - cast_decrypt((cast_key *) key, blk, blk); -} - -static int -cast5_setkey(u_int8_t **sched, u_int8_t *key, int len) -{ - int err; - - *sched = malloc(sizeof(cast_key), M_CRYPTO_DATA, M_NOWAIT|M_ZERO); - if (*sched != NULL) { - cast_setkey((cast_key *)*sched, key, len); - err = 0; - } else - err = ENOMEM; - return err; -} - -static void -cast5_zerokey(u_int8_t **sched) -{ - bzero(*sched, sizeof(cast_key)); - free(*sched, M_CRYPTO_DATA); - *sched = NULL; -} - -static void -skipjack_encrypt(caddr_t key, u_int8_t *blk) -{ - skipjack_forwards(blk, blk, (u_int8_t **) key); -} - -static void -skipjack_decrypt(caddr_t key, u_int8_t *blk) -{ - skipjack_backwards(blk, blk, (u_int8_t **) key); -} - -static int -skipjack_setkey(u_int8_t **sched, u_int8_t *key, int len) -{ - int err; - - /* NB: allocate all the memory that's needed at once */ - *sched = malloc(10 * (sizeof(u_int8_t *) + 0x100), - M_CRYPTO_DATA, M_NOWAIT|M_ZERO); - if (*sched != NULL) { - u_int8_t** key_tables = (u_int8_t**) *sched; - u_int8_t* table = (u_int8_t*) &key_tables[10]; - int k; - - for (k = 0; k < 10; k++) { - key_tables[k] = table; - table += 0x100; - } - subkey_table_gen(key, (u_int8_t **) *sched); - err = 0; - } else - err = ENOMEM; - return err; -} - -static void -skipjack_zerokey(u_int8_t **sched) -{ - bzero(*sched, 10 * (sizeof(u_int8_t *) + 0x100)); - free(*sched, M_CRYPTO_DATA); - *sched = NULL; -} - -static void -rijndael128_encrypt(caddr_t key, u_int8_t *blk) -{ - rijndael_encrypt((rijndael_ctx *) key, (u_char *) blk, (u_char *) blk); -} - -static void -rijndael128_decrypt(caddr_t key, u_int8_t *blk) -{ - rijndael_decrypt(((rijndael_ctx *) key), (u_char *) blk, - (u_char *) blk); -} - -static int -rijndael128_setkey(u_int8_t **sched, u_int8_t *key, int len) -{ - int err; - - if (len != 16 && len != 24 && len != 32) - return (EINVAL); - *sched = malloc(sizeof(rijndael_ctx), M_CRYPTO_DATA, - M_NOWAIT|M_ZERO); - if (*sched != NULL) { - rijndael_set_key((rijndael_ctx *) *sched, (u_char *) key, - len * 8); - err = 0; - } else - err = ENOMEM; - return err; -} - -static void -rijndael128_zerokey(u_int8_t **sched) -{ - bzero(*sched, sizeof(rijndael_ctx)); - free(*sched, M_CRYPTO_DATA); - *sched = NULL; -} - -void -aes_icm_reinit(caddr_t key, u_int8_t *iv) -{ - struct aes_icm_ctx *ctx; - - ctx = (struct aes_icm_ctx *)key; - bcopy(iv, ctx->ac_block, AESICM_BLOCKSIZE); -} - -void -aes_gcm_reinit(caddr_t key, u_int8_t *iv) -{ - struct aes_icm_ctx *ctx; - - aes_icm_reinit(key, iv); - - ctx = (struct aes_icm_ctx *)key; - /* GCM starts with 2 as counter 1 is used for final xor of tag. */ - bzero(&ctx->ac_block[AESICM_BLOCKSIZE - 4], 4); - ctx->ac_block[AESICM_BLOCKSIZE - 1] = 2; -} - -void -aes_icm_crypt(caddr_t key, u_int8_t *data) -{ - struct aes_icm_ctx *ctx; - u_int8_t keystream[AESICM_BLOCKSIZE]; - int i; - - ctx = (struct aes_icm_ctx *)key; - rijndaelEncrypt(ctx->ac_ek, ctx->ac_nr, ctx->ac_block, keystream); - for (i = 0; i < AESICM_BLOCKSIZE; i++) - data[i] ^= keystream[i]; - explicit_bzero(keystream, sizeof(keystream)); - - /* increment counter */ - for (i = AESICM_BLOCKSIZE - 1; - i >= 0; i--) - if (++ctx->ac_block[i]) /* continue on overflow */ - break; -} - -int -aes_icm_setkey(u_int8_t **sched, u_int8_t *key, int len) -{ - struct aes_icm_ctx *ctx; - - if (len != 16 && len != 24 && len != 32) - return EINVAL; - - *sched = malloc(sizeof(struct aes_icm_ctx), M_CRYPTO_DATA, - M_NOWAIT | M_ZERO); - if (*sched == NULL) - return ENOMEM; - - ctx = (struct aes_icm_ctx *)*sched; - ctx->ac_nr = rijndaelKeySetupEnc(ctx->ac_ek, (u_char *)key, len * 8); - return 0; -} - -void -aes_icm_zerokey(u_int8_t **sched) -{ - - bzero(*sched, sizeof(struct aes_icm_ctx)); - free(*sched, M_CRYPTO_DATA); - *sched = NULL; -} - -#define AES_XTS_BLOCKSIZE 16 -#define AES_XTS_IVSIZE 8 -#define AES_XTS_ALPHA 0x87 /* GF(2^128) generator polynomial */ - -struct aes_xts_ctx { - rijndael_ctx key1; - rijndael_ctx key2; - u_int8_t tweak[AES_XTS_BLOCKSIZE]; -}; - -void -aes_xts_reinit(caddr_t key, u_int8_t *iv) -{ - struct aes_xts_ctx *ctx = (struct aes_xts_ctx *)key; - u_int64_t blocknum; - u_int i; - - /* - * Prepare tweak as E_k2(IV). IV is specified as LE representation - * of a 64-bit block number which we allow to be passed in directly. - */ - bcopy(iv, &blocknum, AES_XTS_IVSIZE); - for (i = 0; i < AES_XTS_IVSIZE; i++) { - ctx->tweak[i] = blocknum & 0xff; - blocknum >>= 8; - } - /* Last 64 bits of IV are always zero */ - bzero(ctx->tweak + AES_XTS_IVSIZE, AES_XTS_IVSIZE); - - rijndael_encrypt(&ctx->key2, ctx->tweak, ctx->tweak); -} - -static void -aes_xts_crypt(struct aes_xts_ctx *ctx, u_int8_t *data, u_int do_encrypt) -{ - u_int8_t block[AES_XTS_BLOCKSIZE]; - u_int i, carry_in, carry_out; - - for (i = 0; i < AES_XTS_BLOCKSIZE; i++) - block[i] = data[i] ^ ctx->tweak[i]; - - if (do_encrypt) - rijndael_encrypt(&ctx->key1, block, data); - else - rijndael_decrypt(&ctx->key1, block, data); - - for (i = 0; i < AES_XTS_BLOCKSIZE; i++) - data[i] ^= ctx->tweak[i]; - - /* Exponentiate tweak */ - carry_in = 0; - for (i = 0; i < AES_XTS_BLOCKSIZE; i++) { - carry_out = ctx->tweak[i] & 0x80; - ctx->tweak[i] = (ctx->tweak[i] << 1) | (carry_in ? 1 : 0); - carry_in = carry_out; - } - if (carry_in) - ctx->tweak[0] ^= AES_XTS_ALPHA; - bzero(block, sizeof(block)); -} - -void -aes_xts_encrypt(caddr_t key, u_int8_t *data) -{ - aes_xts_crypt((struct aes_xts_ctx *)key, data, 1); -} - -void -aes_xts_decrypt(caddr_t key, u_int8_t *data) -{ - aes_xts_crypt((struct aes_xts_ctx *)key, data, 0); -} - -int -aes_xts_setkey(u_int8_t **sched, u_int8_t *key, int len) -{ - struct aes_xts_ctx *ctx; - - if (len != 32 && len != 64) - return EINVAL; - - *sched = malloc(sizeof(struct aes_xts_ctx), M_CRYPTO_DATA, - M_NOWAIT | M_ZERO); - if (*sched == NULL) - return ENOMEM; - ctx = (struct aes_xts_ctx *)*sched; - - rijndael_set_key(&ctx->key1, key, len * 4); - rijndael_set_key(&ctx->key2, key + (len / 2), len * 4); - - return 0; -} - -void -aes_xts_zerokey(u_int8_t **sched) -{ - bzero(*sched, sizeof(struct aes_xts_ctx)); - free(*sched, M_CRYPTO_DATA); - *sched = NULL; -} - -static void -cml_encrypt(caddr_t key, u_int8_t *blk) -{ - camellia_encrypt((camellia_ctx *) key, (u_char *) blk, (u_char *) blk); -} - -static void -cml_decrypt(caddr_t key, u_int8_t *blk) -{ - camellia_decrypt(((camellia_ctx *) key), (u_char *) blk, - (u_char *) blk); -} - -static int -cml_setkey(u_int8_t **sched, u_int8_t *key, int len) -{ - int err; - - if (len != 16 && len != 24 && len != 32) - return (EINVAL); - *sched = malloc(sizeof(camellia_ctx), M_CRYPTO_DATA, - M_NOWAIT|M_ZERO); - if (*sched != NULL) { - camellia_set_key((camellia_ctx *) *sched, (u_char *) key, - len * 8); - err = 0; - } else - err = ENOMEM; - return err; -} - -static void -cml_zerokey(u_int8_t **sched) -{ - bzero(*sched, sizeof(camellia_ctx)); - free(*sched, M_CRYPTO_DATA); - *sched = NULL; -} - -/* - * And now for auth. - */ - -static void -null_init(void *ctx) -{ -} - -static void -null_reinit(void *ctx, const u_int8_t *buf, u_int16_t len) -{ -} - -static int -null_update(void *ctx, const u_int8_t *buf, u_int16_t len) -{ - return 0; -} - -static void -null_final(u_int8_t *buf, void *ctx) -{ - if (buf != (u_int8_t *) 0) - bzero(buf, 12); -} - -static int -RMD160Update_int(void *ctx, const u_int8_t *buf, u_int16_t len) -{ - RMD160Update(ctx, buf, len); - return 0; -} - -static int -MD5Update_int(void *ctx, const u_int8_t *buf, u_int16_t len) -{ - MD5Update(ctx, buf, len); - return 0; -} - -static void -SHA1Init_int(void *ctx) -{ - SHA1Init(ctx); -} - -static int -SHA1Update_int(void *ctx, const u_int8_t *buf, u_int16_t len) -{ - SHA1Update(ctx, buf, len); - return 0; -} - -static void -SHA1Final_int(u_int8_t *blk, void *ctx) -{ - SHA1Final(blk, ctx); -} - -static int -SHA256Update_int(void *ctx, const u_int8_t *buf, u_int16_t len) -{ - SHA256_Update(ctx, buf, len); - return 0; -} - -static int -SHA384Update_int(void *ctx, const u_int8_t *buf, u_int16_t len) -{ - SHA384_Update(ctx, buf, len); - return 0; -} - -static int -SHA512Update_int(void *ctx, const u_int8_t *buf, u_int16_t len) -{ - SHA512_Update(ctx, buf, len); - return 0; -} -/* - * And compression - */ +/* Include the encryption algorithms */ +#include "xform_null.c" +#include "xform_des1.c" +#include "xform_des3.c" +#include "xform_blf.c" +#include "xform_cast5.c" +#include "xform_skipjack.c" +#include "xform_rijndael.c" +#include "xform_aes_icm.c" +#include "xform_aes_xts.c" +#include "xform_cml.c" + +/* Include the authentication and hashing algorithms */ +#include "xform_gmac.c" +#include "xform_md5.c" +#include "xform_rmd160.c" +#include "xform_sha1.c" +#include "xform_sha2.c" -static u_int32_t -deflate_compress(data, size, out) - u_int8_t *data; - u_int32_t size; - u_int8_t **out; -{ - return deflate_global(data, size, 0, out); -} +/* Include the compression algorithms */ +#include "xform_deflate.c" -static u_int32_t -deflate_decompress(data, size, out) - u_int8_t *data; - u_int32_t size; - u_int8_t **out; -{ - return deflate_global(data, size, 1, out); -} Modified: head/sys/opencrypto/xform.h ============================================================================== --- head/sys/opencrypto/xform.h Wed Dec 30 20:15:29 2015 (r292962) +++ head/sys/opencrypto/xform.h Wed Dec 30 22:43:07 2015 (r292963) @@ -39,83 +39,9 @@ #include #include -/* Declarations */ -struct auth_hash { - int type; - char *name; - u_int16_t keysize; - u_int16_t hashsize; - u_int16_t ctxsize; - u_int16_t blocksize; - void (*Init) (void *); - void (*Setkey) (void *, const u_int8_t *, u_int16_t); - void (*Reinit) (void *, const u_int8_t *, u_int16_t); - int (*Update) (void *, const u_int8_t *, u_int16_t); - void (*Final) (u_int8_t *, void *); -}; - -/* XXX use a define common with other hash stuff ! */ -#define AH_ALEN_MAX 64 /* max authenticator hash length */ - -struct enc_xform { - int type; - char *name; - u_int16_t blocksize; - u_int16_t ivsize; - u_int16_t minkey, maxkey; - void (*encrypt) (caddr_t, u_int8_t *); - void (*decrypt) (caddr_t, u_int8_t *); - int (*setkey) (u_int8_t **, u_int8_t *, int len); - void (*zerokey) (u_int8_t **); - void (*reinit) (caddr_t, u_int8_t *); -}; - *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Dec 30 23:04:09 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7E2F5A56DCB; Wed, 30 Dec 2015 23:04:09 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 50B501C87; Wed, 30 Dec 2015 23:04:09 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUN48XR052425; Wed, 30 Dec 2015 23:04:08 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUN48JY052424; Wed, 30 Dec 2015 23:04:08 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201512302304.tBUN48JY052424@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Wed, 30 Dec 2015 23:04:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292964 - head/contrib/binutils/bfd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 23:04:09 -0000 Author: ian Date: Wed Dec 30 23:04:08 2015 New Revision: 292964 URL: https://svnweb.freebsd.org/changeset/base/292964 Log: Add the MOVT/MOVW types to the list of relocs which do not generate .plt entries. This fixes the segfaults in arm userland code compiled with -march= or -mcpu= values that allow the compiler to generate movw/movt sequences to load 32-bit constants. Modified: head/contrib/binutils/bfd/elf32-arm.c Modified: head/contrib/binutils/bfd/elf32-arm.c ============================================================================== --- head/contrib/binutils/bfd/elf32-arm.c Wed Dec 30 22:43:07 2015 (r292963) +++ head/contrib/binutils/bfd/elf32-arm.c Wed Dec 30 23:04:08 2015 (r292964) @@ -7720,12 +7720,26 @@ elf32_arm_check_relocs (bfd *abfd, struc refers to is in a different object. We can't tell for sure yet, because something later might force the symbol local. */ - if (r_type != R_ARM_ABS32 - && r_type != R_ARM_REL32 - && r_type != R_ARM_ABS32_NOI - && r_type != R_ARM_REL32_NOI - && r_type != R_ARM_ABS12) - h->needs_plt = 1; + switch (r_type) + { + case R_ARM_ABS12: + case R_ARM_ABS32: + case R_ARM_ABS32_NOI: + case R_ARM_REL32: + case R_ARM_REL32_NOI: + case R_ARM_MOVW_ABS_NC: + case R_ARM_MOVT_ABS: + case R_ARM_MOVW_PREL_NC: + case R_ARM_MOVT_PREL: + case R_ARM_THM_MOVW_ABS_NC: + case R_ARM_THM_MOVT_ABS: + case R_ARM_THM_MOVW_PREL_NC: + case R_ARM_THM_MOVT_PREL: + break; + default: + h->needs_plt = 1; + break; + } /* If we create a PLT entry, this relocation will reference it, even if it's an ABS32 relocation. */ From owner-svn-src-all@freebsd.org Wed Dec 30 23:25:46 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B0D77A563DE; Wed, 30 Dec 2015 23:25:46 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 66DAB1437; Wed, 30 Dec 2015 23:25:46 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUNPjta059002; Wed, 30 Dec 2015 23:25:45 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUNPjwU058999; Wed, 30 Dec 2015 23:25:45 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201512302325.tBUNPjwU058999@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 30 Dec 2015 23:25:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292965 - stable/10/usr.sbin/pw X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 23:25:46 -0000 Author: bapt Date: Wed Dec 30 23:25:45 2015 New Revision: 292965 URL: https://svnweb.freebsd.org/changeset/base/292965 Log: MFC: r292846, r292847, r292849 Restore dryrun support for pw groupmod Remove useless assignement of linelen Simplify code for parsing extra groups Modified: stable/10/usr.sbin/pw/pw_conf.c stable/10/usr.sbin/pw/pw_group.c stable/10/usr.sbin/pw/pw_vpw.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/pw/pw_conf.c ============================================================================== --- stable/10/usr.sbin/pw/pw_conf.c Wed Dec 30 23:04:08 2015 (r292964) +++ stable/10/usr.sbin/pw/pw_conf.c Wed Dec 30 23:25:45 2015 (r292965) @@ -313,7 +313,7 @@ read_userconfig(char const * file) ? NULL : newstr(q); break; case _UC_EXTRAGROUPS: - for (i = 0; q != NULL; q = strtok(NULL, toks)) { + while ((q = strtok(NULL, toks)) != NULL) { if (config.groups == NULL) config.groups = sl_init(); sl_add(config.groups, newstr(q)); Modified: stable/10/usr.sbin/pw/pw_group.c ============================================================================== --- stable/10/usr.sbin/pw/pw_group.c Wed Dec 30 23:04:08 2015 (r292964) +++ stable/10/usr.sbin/pw/pw_group.c Wed Dec 30 23:25:45 2015 (r292965) @@ -664,6 +664,11 @@ pw_group_mod(int argc, char **argv, char grp_add_members(&grp, newmembers); } + if (dryrun) { + print_group(grp, pretty); + return (EXIT_SUCCESS); + } + if ((rc = chggrent(name, grp)) != 0) { if (rc == -1) errx(EX_IOERR, "group '%s' not available (NIS?)", Modified: stable/10/usr.sbin/pw/pw_vpw.c ============================================================================== --- stable/10/usr.sbin/pw/pw_vpw.c Wed Dec 30 23:04:08 2015 (r292964) +++ stable/10/usr.sbin/pw/pw_vpw.c Wed Dec 30 23:25:45 2015 (r292965) @@ -70,7 +70,6 @@ vnextpwent(char const *nam, uid_t uid, i pw = NULL; line = NULL; linecap = 0; - linelen = 0; if (pwd_fp != NULL || (pwd_fp = fopen(getpwpath(_MASTERPASSWD), "r")) != NULL) { while ((linelen = getline(&line, &linecap, pwd_fp)) > 0) { @@ -153,7 +152,6 @@ vnextgrent(char const *nam, gid_t gid, i gr = NULL; line = NULL; linecap = 0; - linelen = 0; if (grp_fp != NULL || (grp_fp = fopen(getgrpath(_GROUP), "r")) != NULL) { while ((linelen = getline(&line, &linecap, grp_fp)) > 0) { From owner-svn-src-all@freebsd.org Wed Dec 30 23:27:26 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0B7ECA564AB; Wed, 30 Dec 2015 23:27:26 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CEC991645; Wed, 30 Dec 2015 23:27:25 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUNROZp059146; Wed, 30 Dec 2015 23:27:24 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUNROQ4059145; Wed, 30 Dec 2015 23:27:24 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201512302327.tBUNROQ4059145@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Wed, 30 Dec 2015 23:27:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292966 - head/sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 23:27:26 -0000 Author: allanjude Date: Wed Dec 30 23:27:24 2015 New Revision: 292966 URL: https://svnweb.freebsd.org/changeset/base/292966 Log: Bump __FreeBSD_version because r292782 removes sys/crypto/sha2.h Submitted by: Oliver Pinter Modified: head/sys/sys/param.h Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Wed Dec 30 23:25:45 2015 (r292965) +++ head/sys/sys/param.h Wed Dec 30 23:27:24 2015 (r292966) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1100092 /* Master, propagated to newvers */ +#define __FreeBSD_version 1100093 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Wed Dec 30 23:34:31 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F155AA56822 for ; Wed, 30 Dec 2015 23:34:31 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-wm0-x229.google.com (mail-wm0-x229.google.com [IPv6:2a00:1450:400c:c09::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8E1A41C9E for ; Wed, 30 Dec 2015 23:34:31 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-wm0-x229.google.com with SMTP id b14so65900219wmb.1 for ; Wed, 30 Dec 2015 15:34:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=eLSk17Y2MdxsWm/lZPu2yny0v5haA9oKOOzab5AyI5k=; b=BRGQPKvrW8XEtuIvs+6A2FAfk4E1XuIpq77Hj2xwymfkpulP1uRVc07Q/ZHyLrQcxg 60to9v82JTIc9lq6EPObFB3vk++/MLbHegjhk/LrU416OtNol8JVW8UFJtLKuu9vc0f0 loYoq+gfAS3mAcolsA5AnuX6DkND2pW5pP1eDyChdB28rzKsilRkNabw3iVmsGHyACNZ FyR5SnCpyUYI+h+Y+2NFSd0NOAoDaDGWbmNNrxq0+hHumy4KQHyhxVjUt1mqKQx/3PSN ezwXvmgGCWaIniv5MI3NDaaaIgP4V0zYRyKALFuixRaRZuKKCXw2r7ooWs3c/wlzZn2z orHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=eLSk17Y2MdxsWm/lZPu2yny0v5haA9oKOOzab5AyI5k=; b=Yn/kSyr5zez46kdYRVKDnJEcRUa1/QtlrGL5Am2JWxKFCeH+gA58B1mIYk6t9zF4JM 153dDSwNn2QNSP8XDo5+Raz0KoU+PukTZWKakzLJrW2d31g2C/VNRDYFfTx5kUQLgviu 6Ye9l1slT6YTs6JKW2BF/K6L8Kzg7DZno+X+ocbbTevz67JX+HPwT8f4NZrP6rAn2Z/W ogxcKWEw6Lkik478LT2Bj0knnALDvZNDUveWov94Ps1mj1bCbJpAa5sqUkQfoCguGJLd 43KN+DaiMMCG5Oa+EMbVuQ6jHEVEDljP4aTLMd9/nF8+NWZrH/T7LwnsMgzuWd7goVTC iKaQ== X-Gm-Message-State: ALoCoQnCp8fsq2r0MyGKUC50/hMqF7GkI650u9pox9AarM9mLocgBSRvDRIWwKQQ9qvN9fQ3aH499vwX5CoifTjF5paaYrY/dGyKa2lDgTb293bt5qy5PF0= MIME-Version: 1.0 X-Received: by 10.28.146.145 with SMTP id u139mr11512932wmd.81.1451518470144; Wed, 30 Dec 2015 15:34:30 -0800 (PST) Received: by 10.194.85.167 with HTTP; Wed, 30 Dec 2015 15:34:30 -0800 (PST) In-Reply-To: <201512302327.tBUNROQ4059145@repo.freebsd.org> References: <201512302327.tBUNROQ4059145@repo.freebsd.org> Date: Thu, 31 Dec 2015 00:34:30 +0100 Message-ID: Subject: Re: svn commit: r292966 - head/sys/sys From: Oliver Pinter To: Allan Jude Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 23:34:32 -0000 On 12/31/15, Allan Jude wrote: > Author: allanjude > Date: Wed Dec 30 23:27:24 2015 > New Revision: 292966 > URL: https://svnweb.freebsd.org/changeset/base/292966 > > Log: > Bump __FreeBSD_version because r292782 removes sys/crypto/sha2.h > > Submitted by: Oliver Pinter > > Modified: > head/sys/sys/param.h > > Modified: head/sys/sys/param.h > ============================================================================== > --- head/sys/sys/param.h Wed Dec 30 23:25:45 2015 (r292965) > +++ head/sys/sys/param.h Wed Dec 30 23:27:24 2015 (r292966) > @@ -58,7 +58,7 @@ > * in the range 5 to 9. > */ > #undef __FreeBSD_version > -#define __FreeBSD_version 1100092 /* Master, propagated to newvers */ > +#define __FreeBSD_version 1100093 /* Master, propagated to newvers */ > > /* > * __FreeBSD_kernel__ indicates that this system uses the kernel of > FreeBSD, Cool! Thank you! > _______________________________________________ > svn-src-head@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" > From owner-svn-src-all@freebsd.org Thu Dec 31 01:08:58 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E38DA56424 for ; Thu, 31 Dec 2015 01:08:58 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-wm0-x22a.google.com (mail-wm0-x22a.google.com [IPv6:2a00:1450:400c:c09::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BE0B91F2D for ; Thu, 31 Dec 2015 01:08:57 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-wm0-x22a.google.com with SMTP id f206so51572079wmf.0 for ; Wed, 30 Dec 2015 17:08:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=486WYNOrelc+SUlWNAfyIMtwSPb6tgMYlStgZQFD7BM=; b=2SnK4BPXIXi8UMlGkCfArIdI4xvMLs2v77CLwwMReS4my+hpSanJCfC7uGxC7xl9A4 t7oQ6wB2ZxWULps5roTpDeVVQ/uRnYEONo5By7FGeJr3+SaRKoOnLnIqApyXNHn/e6Xq J64lcqrpKCMyXFMnWswe0B8KrpE96FLqzllm3SWT3t50vthJmFZ2B7mQVNWxbLJ+uq26 +q/FjBVlzPp2G7GgI/DeGMG9PZmF/BMjGJgU5aDJgyW/JpYnBb3oL99EiNXYa3MFthbR soLN1Ju8lkpemmlBjS9PYAj28fZR9NxJH1wWIaDpBoPR+ir/u6vAjv5QS9SYHvR+2w7m 096A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=486WYNOrelc+SUlWNAfyIMtwSPb6tgMYlStgZQFD7BM=; b=ZxGINwJmwSZ2Rjl1Jt7qy9FO3s5alAI7kJCBrSf4ImC/0Z0iG9iU0dHNqyknhzL2on yCJreS+nj67mcu+/9rcPyTB0eDwB0TRKbs9R9Nda9g7W+7UTS+0WUC54pV3y7nQvXtUO REnb/lYPWpTa+DAc/MzeTkLY+nEixK6/AYXacMG+ocOSzlu7ERrT6/F7j9d8CdGx6GJB sEG9AWuUaEwBRqRs8joruhI+izi7RmxDHr1GusrKCrszppgmRVXTlczzMfKZk5siHvW0 8SRTCe5d+r14eVa+rvtjwuO2fr/1XYFyx692tvZqOViL4eSmYW3Qrk1J+SjwO+We86X9 eYHQ== X-Gm-Message-State: ALoCoQkFHyzO7tTz9HFS+tD/75Ra8CG4+O6ADXEEjEO7Y+5hw9Hl2nf8BeoxMiApjX1A7g508+1QIO4llifRdZTAA7HB8EP2snF5qOl444ta9GXD7250gs0= MIME-Version: 1.0 X-Received: by 10.194.178.70 with SMTP id cw6mr72662380wjc.73.1451524135067; Wed, 30 Dec 2015 17:08:55 -0800 (PST) Received: by 10.194.85.167 with HTTP; Wed, 30 Dec 2015 17:08:54 -0800 (PST) In-Reply-To: <201512181633.tBIGXFff046683@repo.freebsd.org> References: <201512181633.tBIGXFff046683@repo.freebsd.org> Date: Thu, 31 Dec 2015 02:08:54 +0100 Message-ID: Subject: Re: svn commit: r292440 - in head/sys: kern sys From: Oliver Pinter To: Mateusz Guzik Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 01:08:58 -0000 On 12/18/15, Mateusz Guzik wrote: > Author: mjg > Date: Fri Dec 18 16:33:15 2015 > New Revision: 292440 > URL: https://svnweb.freebsd.org/changeset/base/292440 > > Log: > proc: fix a race which could result in dereference of bad p_pgrp pointer > on fork > > During fork p_starcopy - p_endcopy area of a process is populated with > bcopy > with only proc lock held. Another forking thread can find such a process > and > proceed to access p_pgrp included in said area. > > Fix the problem by moving the field outside. It is being properly > assigned > later. > > Reviewed by: kib > Diagnosed by: kib > Tested by: Fabian Keil > MFC after: 10 days Hi mjg@! Just an MFC reminder and question: This patch is still needs on 10-STABLE? > > Modified: > head/sys/kern/kern_proc.c > head/sys/sys/proc.h > > Modified: head/sys/kern/kern_proc.c > From owner-svn-src-all@freebsd.org Thu Dec 31 01:24:17 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DD962A56B68; Thu, 31 Dec 2015 01:24:17 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9E12D1185; Thu, 31 Dec 2015 01:24:17 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV1OGFn095314; Thu, 31 Dec 2015 01:24:16 GMT (envelope-from jamie@FreeBSD.org) Received: (from jamie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV1OGSw095313; Thu, 31 Dec 2015 01:24:16 GMT (envelope-from jamie@FreeBSD.org) Message-Id: <201512310124.tBV1OGSw095313@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jamie set sender to jamie@FreeBSD.org using -f From: Jamie Gritton Date: Thu, 31 Dec 2015 01:24:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292967 - stable/10/etc/rc.d X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 01:24:18 -0000 Author: jamie Date: Thu Dec 31 01:24:16 2015 New Revision: 292967 URL: https://svnweb.freebsd.org/changeset/base/292967 Log: MFC r292759: Let old-style (shell-based) jail configuration handle jail names that contain characters not allowed in a shell variable (such as "-"). These will be replaced by an underscore in jail config variables, e.g. for jail "foo-bar" you would set "jail_foo_bar_hostname". This is separate from the current code that changes the jail names if they contain "." or "/". It also doesn't apply to jails defined in a jail.conf file. PR: 191181 Modified: stable/10/etc/rc.d/jail Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/rc.d/jail ============================================================================== --- stable/10/etc/rc.d/jail Wed Dec 30 23:27:24 2015 (r292966) +++ stable/10/etc/rc.d/jail Thu Dec 31 01:24:16 2015 (r292967) @@ -28,16 +28,16 @@ extra_commands="config console status" need_dad_wait= -# extract_var jail name param num defval -# Extract value from ${jail_$jail_$name} or ${jail_$name} and +# extract_var jv name param num defval +# Extract value from ${jail_$jv_$name} or ${jail_$name} and # set it to $param. If not defined, $defval is used. -# When $num is [0-9]*, ${jail_$jail_$name$num} are looked up and +# When $num is [0-9]*, ${jail_$jv_$name$num} are looked up and # $param is set by using +=. # When $num is YN or NY, the value is interpret as boolean. extract_var() { - local i _j _name _param _num _def _name1 _name2 - _j=$1 + local i _jv _name _param _num _def _name1 _name2 + _jv=$1 _name=$2 _param=$3 _num=$4 @@ -45,7 +45,7 @@ extract_var() case $_num in YN) - _name1=jail_${_j}_${_name} + _name1=jail_${_jv}_${_name} _name2=jail_${_name} eval $_name1=\"\${$_name1:-\${$_name2:-$_def}}\" if checkyesno $_name1; then @@ -55,7 +55,7 @@ extract_var() fi ;; NY) - _name1=jail_${_j}_${_name} + _name1=jail_${_jv}_${_name} _name2=jail_${_name} eval $_name1=\"\${$_name1:-\${$_name2:-$_def}}\" if checkyesno $_name1; then @@ -67,7 +67,7 @@ extract_var() [0-9]*) i=$_num while : ; do - _name1=jail_${_j}_${_name}${i} + _name1=jail_${_jv}_${_name}${i} _name2=jail_${_name}${i} eval _tmpargs=\"\${$_name1:-\${$_name2:-$_def}}\" if [ -n "$_tmpargs" ]; then @@ -79,7 +79,7 @@ extract_var() done ;; *) - _name1=jail_${_j}_${_name} + _name1=jail_${_jv}_${_name} _name2=jail_${_name} eval _tmpargs=\"\${$_name1:-\${$_name2:-$_def}}\" if [ -n "$_tmpargs" ]; then @@ -89,22 +89,23 @@ extract_var() esac } -# parse_options _j +# parse_options _j _jv # Parse options and create a temporary configuration file if necessary. # parse_options() { - local _j _p + local _j _jv _p _j=$1 + _jv=$2 _confwarn=0 if [ -z "$_j" ]; then warn "parse_options: you must specify a jail" return fi - eval _jconf=\"\${jail_${_j}_conf:-/etc/jail.${_j}.conf}\" - eval _rootdir=\"\$jail_${_j}_rootdir\" - eval _hostname=\"\$jail_${_j}_hostname\" + eval _jconf=\"\${jail_${_jv}_conf:-/etc/jail.${_j}.conf}\" + eval _rootdir=\"\$jail_${_jv}_rootdir\" + eval _hostname=\"\$jail_${_jv}_hostname\" if [ -z "$_rootdir" -o \ -z "$_hostname" ]; then if [ -r "$_jconf" ]; then @@ -120,7 +121,7 @@ parse_options() fi return 1 fi - eval _ip=\"\$jail_${_j}_ip\" + eval _ip=\"\$jail_${_jv}_ip\" if [ -z "$_ip" ] && ! check_kern_features vimage; then warn "no ipaddress specified and no vimage support. " \ "Jail $_j was ignored." @@ -138,10 +139,10 @@ parse_options() fi /usr/bin/install -m 0644 -o root -g wheel /dev/null $_conf || return 1 - eval : \${jail_${_j}_flags:=${jail_flags}} - eval _exec=\"\$jail_${_j}_exec\" - eval _exec_start=\"\$jail_${_j}_exec_start\" - eval _exec_stop=\"\$jail_${_j}_exec_stop\" + eval : \${jail_${_jv}_flags:=${jail_flags}} + eval _exec=\"\$jail_${_jv}_exec\" + eval _exec_start=\"\$jail_${_jv}_exec_start\" + eval _exec_stop=\"\$jail_${_jv}_exec_stop\" if [ -n "${_exec}" ]; then # simple/backward-compatible execution _exec_start="${_exec}" @@ -155,20 +156,20 @@ parse_options() fi fi fi - eval _interface=\"\${jail_${_j}_interface:-${jail_interface}}\" - eval _parameters=\"\${jail_${_j}_parameters:-${jail_parameters}}\" - eval _fstab=\"\${jail_${_j}_fstab:-${jail_fstab:-/etc/fstab.$_j}}\" + eval _interface=\"\${jail_${_jv}_interface:-${jail_interface}}\" + eval _parameters=\"\${jail_${_jv}_parameters:-${jail_parameters}}\" + eval _fstab=\"\${jail_${_jv}_fstab:-${jail_fstab:-/etc/fstab.$_j}}\" ( date +"# Generated by rc.d/jail at %Y-%m-%d %H:%M:%S" echo "$_j {" - extract_var $_j hostname host.hostname - "" - extract_var $_j rootdir path - "" + extract_var $_jv hostname host.hostname - "" + extract_var $_jv rootdir path - "" if [ -n "$_ip" ]; then - extract_var $_j interface interface - "" + extract_var $_jv interface interface - "" jail_handle_ips_option $_ip $_interface alias=0 while : ; do - eval _x=\"\$jail_${_j}_ip_multi${alias}\" + eval _x=\"\$jail_${_jv}_ip_multi${alias}\" [ -z "$_x" ] && break jail_handle_ips_option $_x $_interface @@ -184,37 +185,37 @@ parse_options() ;; esac # These are applicable only to non-vimage jails. - extract_var $_j fib exec.fib - "" - extract_var $_j socket_unixiproute_only \ + extract_var $_jv fib exec.fib - "" + extract_var $_jv socket_unixiproute_only \ allow.raw_sockets NY YES else echo " vnet;" - extract_var $_j vnet_interface vnet.interface - "" + extract_var $_jv vnet_interface vnet.interface - "" fi echo " exec.clean;" echo " exec.system_user = \"root\";" echo " exec.jail_user = \"root\";" - extract_var $_j exec_prestart exec.prestart 0 "" - extract_var $_j exec_poststart exec.poststart 0 "" - extract_var $_j exec_prestop exec.prestop 0 "" - extract_var $_j exec_poststop exec.poststop 0 "" + extract_var $_jv exec_prestart exec.prestart 0 "" + extract_var $_jv exec_poststart exec.poststart 0 "" + extract_var $_jv exec_prestop exec.prestop 0 "" + extract_var $_jv exec_poststop exec.poststop 0 "" echo " exec.start += \"$_exec_start\";" - extract_var $_j exec_afterstart exec.start 1 "" + extract_var $_jv exec_afterstart exec.start 1 "" echo " exec.stop = \"$_exec_stop\";" - extract_var $_j consolelog exec.consolelog - \ + extract_var $_jv consolelog exec.consolelog - \ /var/log/jail_${_j}_console.log if [ -r $_fstab ]; then echo " mount.fstab = \"$_fstab\";" fi - eval : \${jail_${_j}_devfs_enable:=${jail_devfs_enable:-NO}} - if checkyesno jail_${_j}_devfs_enable; then + eval : \${jail_${_jv}_devfs_enable:=${jail_devfs_enable:-NO}} + if checkyesno jail_${_jv}_devfs_enable; then echo " mount.devfs;" - eval _ruleset=\${jail_${_j}_devfs_ruleset:-${jail_devfs_ruleset}} + eval _ruleset=\${jail_${_jv}_devfs_ruleset:-${jail_devfs_ruleset}} case $_ruleset in "") ;; [0-9]*) echo " devfs_ruleset = \"$_ruleset\";" ;; @@ -227,22 +228,22 @@ parse_options() *) warn "devfs_ruleset must be an integer." ;; esac fi - eval : \${jail_${_j}_fdescfs_enable:=${jail_fdescfs_enable:-NO}} - if checkyesno jail_${_j}_fdescfs_enable; then + eval : \${jail_${_jv}_fdescfs_enable:=${jail_fdescfs_enable:-NO}} + if checkyesno jail_${_jv}_fdescfs_enable; then echo " mount.fdescfs;" fi - eval : \${jail_${_j}_procfs_enable:=${jail_procfs_enable:-NO}} - if checkyesno jail_${_j}_procfs_enable; then + eval : \${jail_${_jv}_procfs_enable:=${jail_procfs_enable:-NO}} + if checkyesno jail_${_jv}_procfs_enable; then echo " mount.procfs;" fi - eval : \${jail_${_j}_mount_enable:=${jail_mount_enable:-NO}} - if checkyesno jail_${_j}_mount_enable; then + eval : \${jail_${_jv}_mount_enable:=${jail_mount_enable:-NO}} + if checkyesno jail_${_jv}_mount_enable; then echo " allow.mount;" >> $_conf fi - extract_var $_j set_hostname_allow allow.set_hostname YN NO - extract_var $_j sysvipc_allow allow.sysvipc YN NO + extract_var $_jv set_hostname_allow allow.set_hostname YN NO + extract_var $_jv sysvipc_allow allow.sysvipc YN NO for _p in $_parameters; do echo " ${_p%\;};" done @@ -380,14 +381,15 @@ jail_handle_ips_option() jail_config() { - local _j + local _j _jv case $1 in _ALL) return ;; esac for _j in $@; do _j=$(echo $_j | tr /. _) - if parse_options $_j; then + _jv=$(echo -n $_j | tr -c '[:alnum:]' _) + if parse_options $_j $_jv; then echo "$_j: parameters are in $_conf." fi done @@ -395,7 +397,7 @@ jail_config() jail_console() { - local _j _cmd + local _j _jv _cmd # One argument that is not _ALL. case $#:$1 in @@ -403,9 +405,10 @@ jail_console() 1:*) ;; esac _j=$(echo $1 | tr /. _) + _jv=$(echo -n $1 | tr -c '[:alnum:]' _) shift case $# in - 0) eval _cmd=\${jail_${_j}_consolecmd:-$jail_consolecmd} ;; + 0) eval _cmd=\${jail_${_jv}_consolecmd:-$jail_consolecmd} ;; *) _cmd=$@ ;; esac $jail_jexec $_j $_cmd @@ -419,7 +422,7 @@ jail_status() jail_start() { - local _j _jid _jl _id _name + local _j _jv _jid _jl _id _name if [ $# = 0 ]; then return @@ -452,11 +455,12 @@ jail_start() _jl= for _j in $@; do _j=$(echo $_j | tr /. _) - parse_options $_j || continue + _jv=$(echo -n $_j | tr -c '[:alnum:]' _) + parse_options $_j $_jv || continue _jl="$_jl $_j" - eval rc_flags=\${jail_${_j}_flags:-$jail_flags} - eval command=\${jail_${_j}_program:-$jail_program} + eval rc_flags=\${jail_${_jv}_flags:-$jail_flags} + eval command=\${jail_${_jv}_program:-$jail_program} command_args="-i -f $_conf -c $_j" $command $rc_flags $command_args \ >/dev/null 2>&1 /dev/null 2>&1; then continue fi - eval command=\${jail_${_j}_program:-$jail_program} + eval command=\${jail_${_jv}_program:-$jail_program} echo -n " ${_hostname:-${_j}}" _tmp=`mktemp -t jail` || exit 3 $command -q -f $_conf -r $_j >> $_tmp 2>&1 From owner-svn-src-all@freebsd.org Thu Dec 31 01:26:44 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9757BA56C3B; Thu, 31 Dec 2015 01:26:44 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 67DF8134A; Thu, 31 Dec 2015 01:26:44 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV1QhSG095463; Thu, 31 Dec 2015 01:26:43 GMT (envelope-from jamie@FreeBSD.org) Received: (from jamie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV1Qhhg095462; Thu, 31 Dec 2015 01:26:43 GMT (envelope-from jamie@FreeBSD.org) Message-Id: <201512310126.tBV1Qhhg095462@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jamie set sender to jamie@FreeBSD.org using -f From: Jamie Gritton Date: Thu, 31 Dec 2015 01:26:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292968 - stable/10/etc/rc.d X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 01:26:44 -0000 Author: jamie Date: Thu Dec 31 01:26:43 2015 New Revision: 292968 URL: https://svnweb.freebsd.org/changeset/base/292968 Log: MFC r287220: Fix a conversion error in rc.d/jail Modified: stable/10/etc/rc.d/jail Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/rc.d/jail ============================================================================== --- stable/10/etc/rc.d/jail Thu Dec 31 01:24:16 2015 (r292967) +++ stable/10/etc/rc.d/jail Thu Dec 31 01:26:43 2015 (r292968) @@ -239,7 +239,7 @@ parse_options() eval : \${jail_${_jv}_mount_enable:=${jail_mount_enable:-NO}} if checkyesno jail_${_jv}_mount_enable; then - echo " allow.mount;" >> $_conf + echo " allow.mount;" fi extract_var $_jv set_hostname_allow allow.set_hostname YN NO From owner-svn-src-all@freebsd.org Thu Dec 31 01:54:08 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A41EFA5676A; Thu, 31 Dec 2015 01:54:08 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 78066106D; Thu, 31 Dec 2015 01:54:08 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV1s7Q6004166; Thu, 31 Dec 2015 01:54:07 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV1s7sj004165; Thu, 31 Dec 2015 01:54:07 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201512310154.tBV1s7sj004165@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Thu, 31 Dec 2015 01:54:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292969 - head/sys/xen/xenbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 01:54:08 -0000 Author: araujo Date: Thu Dec 31 01:54:07 2015 New Revision: 292969 URL: https://svnweb.freebsd.org/changeset/base/292969 Log: Clean up unused-but-set-variable spotted by gcc-4.9. Reviewed by: royger Approved by: rodrigc (mentor) Differential Revision: https://reviews.freebsd.org/D4733 Modified: head/sys/xen/xenbus/xenbusb.c Modified: head/sys/xen/xenbus/xenbusb.c ============================================================================== --- head/sys/xen/xenbus/xenbusb.c Thu Dec 31 01:26:43 2015 (r292968) +++ head/sys/xen/xenbus/xenbusb.c Thu Dec 31 01:54:07 2015 (r292969) @@ -561,7 +561,6 @@ xenbusb_devices_changed(struct xs_watch struct xenbusb_softc *xbs; device_t dev; char *node; - char *bus; char *type; char *id; char *p; @@ -580,7 +579,6 @@ xenbusb_devices_changed(struct xs_watch p = strchr(node, '/'); if (p == NULL) goto out; - bus = node; *p = 0; type = p + 1; From owner-svn-src-all@freebsd.org Thu Dec 31 01:55:53 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 21837A56893; Thu, 31 Dec 2015 01:55:53 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E70E8125A; Thu, 31 Dec 2015 01:55:52 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV1tq7X004277; Thu, 31 Dec 2015 01:55:52 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV1tqcr004276; Thu, 31 Dec 2015 01:55:52 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201512310155.tBV1tqcr004276@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Thu, 31 Dec 2015 01:55:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292970 - head/usr.sbin/bhyve X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 01:55:53 -0000 Author: araujo Date: Thu Dec 31 01:55:51 2015 New Revision: 292970 URL: https://svnweb.freebsd.org/changeset/base/292970 Log: Clean up unused-but-set-variable spotted by gcc-4.9. Reviewed by: grehan Approved by: bapt (mentor) Differential Revision: https://reviews.freebsd.org/D4735 Modified: head/usr.sbin/bhyve/pci_emul.c Modified: head/usr.sbin/bhyve/pci_emul.c ============================================================================== --- head/usr.sbin/bhyve/pci_emul.c Thu Dec 31 01:54:07 2015 (r292969) +++ head/usr.sbin/bhyve/pci_emul.c Thu Dec 31 01:55:51 2015 (r292970) @@ -863,10 +863,9 @@ msixcap_cfgwrite(struct pci_devinst *pi, int bytes, uint32_t val) { uint16_t msgctrl, rwmask; - int off, table_bar; + int off; off = offset - capoff; - table_bar = pi->pi_msix.table_bar; /* Message Control Register */ if (off == 2 && bytes == 2) { rwmask = PCIM_MSIXCTRL_MSIX_ENABLE | PCIM_MSIXCTRL_FUNCTION_MASK; From owner-svn-src-all@freebsd.org Thu Dec 31 01:57:56 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E5421A569BA; Thu, 31 Dec 2015 01:57:56 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B9550146A; Thu, 31 Dec 2015 01:57:56 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV1vtfK004380; Thu, 31 Dec 2015 01:57:55 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV1vtdP004379; Thu, 31 Dec 2015 01:57:55 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201512310157.tBV1vtdP004379@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Thu, 31 Dec 2015 01:57:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292971 - head/usr.sbin/camdd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 01:57:57 -0000 Author: araujo Date: Thu Dec 31 01:57:55 2015 New Revision: 292971 URL: https://svnweb.freebsd.org/changeset/base/292971 Log: Clean up unused-but-set-variable spotted by gcc-4.9. Approved by: bapt (mentor) Differential Revision: https://reviews.freebsd.org/D4736 Modified: head/usr.sbin/camdd/camdd.c Modified: head/usr.sbin/camdd/camdd.c ============================================================================== --- head/usr.sbin/camdd/camdd.c Thu Dec 31 01:55:51 2015 (r292970) +++ head/usr.sbin/camdd/camdd.c Thu Dec 31 01:57:55 2015 (r292971) @@ -1276,7 +1276,6 @@ camdd_probe_pass(struct cam_device *cam_ struct camdd_dev_pass *pass_dev; struct kevent ke; int scsi_dev_type; - int retval; dev = NULL; @@ -1336,7 +1335,6 @@ camdd_probe_pass(struct cam_device *cam_ if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { cam_error_print(cam_dev, ccb, CAM_ESF_ALL, CAM_EPF_ALL, stderr); - retval = 1; goto bailout; } @@ -1371,11 +1369,8 @@ camdd_probe_pass(struct cam_device *cam_ if (cam_send_ccb(cam_dev, ccb) < 0) { warn("error sending READ CAPACITY (16) command"); - cam_error_print(cam_dev, ccb, CAM_ESF_ALL, CAM_EPF_ALL, stderr); - - retval = 1; goto bailout; } From owner-svn-src-all@freebsd.org Thu Dec 31 02:01:22 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4B131A56B86; Thu, 31 Dec 2015 02:01:22 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1AB501814; Thu, 31 Dec 2015 02:01:22 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV21LH7004894; Thu, 31 Dec 2015 02:01:21 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV21L0C004893; Thu, 31 Dec 2015 02:01:21 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201512310201.tBV21L0C004893@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Thu, 31 Dec 2015 02:01:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292972 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 02:01:22 -0000 Author: araujo Date: Thu Dec 31 02:01:20 2015 New Revision: 292972 URL: https://svnweb.freebsd.org/changeset/base/292972 Log: Wrap using #ifdef 'notyet' those variables and statements not yet implemented to lower the compiler warnings. It fix the case of unused-but-set-variable spotted by gcc4.9. Reviewed by: ngie, ae Approved by: bapt (mentor) Differential Revision: https://reviews.freebsd.org/D4720 Modified: head/sys/net/if_gre.c Modified: head/sys/net/if_gre.c ============================================================================== --- head/sys/net/if_gre.c Thu Dec 31 01:57:55 2015 (r292971) +++ head/sys/net/if_gre.c Thu Dec 31 02:01:20 2015 (r292972) @@ -682,7 +682,10 @@ gre_input(struct mbuf **mp, int *offp, i struct grehdr *gh; struct ifnet *ifp; struct mbuf *m; - uint32_t *opts, key; + uint32_t *opts; +#ifdef notyet + uint32_t key; +#endif uint16_t flags; int hlen, isr, af; @@ -715,17 +718,28 @@ gre_input(struct mbuf **mp, int *offp, i opts++; } if (flags & GRE_FLAGS_KP) { +#ifdef notyet + /* + * XXX: The current implementation uses the key only for outgoing + * packets. But we can check the key value here, or even in the + * encapcheck function. + */ key = ntohl(*opts); +#endif hlen += sizeof(uint32_t); opts++; + } +#ifdef notyet } else key = 0; - /* + if (sc->gre_key != 0 && (key != sc->gre_key || key != 0)) goto drop; - */ +#endif if (flags & GRE_FLAGS_SP) { - /* seq = ntohl(*opts); */ +#ifdef notyet + seq = ntohl(*opts); +#endif hlen += sizeof(uint32_t); } switch (ntohs(gh->gre_proto)) { From owner-svn-src-all@freebsd.org Thu Dec 31 03:20:57 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DFC8CA56966; Thu, 31 Dec 2015 03:20:57 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-oi0-x235.google.com (mail-oi0-x235.google.com [IPv6:2607:f8b0:4003:c06::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AC5641EEA; Thu, 31 Dec 2015 03:20:57 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-oi0-x235.google.com with SMTP id o62so205639296oif.3; Wed, 30 Dec 2015 19:20:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=2nP8Aip1BNXULJjuNOS5g+QfQqy6biP/MdZYegnRtLc=; b=UF6Sz4syaysYC47LPOD+IePLcU/7Pl+FQ713X3fbjRAkLKe0ndrgN/lc4Eu8dia0qK uFcivvnOqc972awqsjSOMn6Fm3auGfPbhZeg8dlyTHxENCFYgiOg1FWDo7oy0GDsH1zh fKGgnS1iAEYxJO/GIrYcHIkdyBi+2dghuH3RlWJfM4yg/HDrcQYuAzZP9SO6C3q19d7/ 1CKOtltg04cRjJuk4sZhTMILkxf8T7l5r3u+INNtonfoIOWOW4sTFACCfHtYoCN+XUV7 SJ9To6gV+5TkNJBJq2ZgYfOrmmvQU/8+Ubn60hORlJiGNevEac7Z+YY639FIis1ym/wX gOfQ== X-Received: by 10.202.176.66 with SMTP id z63mr42779692oie.61.1451532056913; Wed, 30 Dec 2015 19:20:56 -0800 (PST) Received: from ?IPv6:2601:601:800:126d:9910:6b8e:28b:6700? ([2601:601:800:126d:9910:6b8e:28b:6700]) by smtp.gmail.com with ESMTPSA id ur2sm24626736obc.11.2015.12.30.19.20.54 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 30 Dec 2015 19:20:55 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r292969 - head/sys/xen/xenbus From: NGie Cooper In-Reply-To: <201512310154.tBV1s7sj004165@repo.freebsd.org> Date: Wed, 30 Dec 2015 19:20:53 -0800 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: 7bit Message-Id: References: <201512310154.tBV1s7sj004165@repo.freebsd.org> To: Marcelo Araujo X-Mailer: Apple Mail (2.2104) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 03:20:58 -0000 > On Dec 30, 2015, at 17:54, Marcelo Araujo wrote: > > Author: araujo > Date: Thu Dec 31 01:54:07 2015 > New Revision: 292969 > URL: https://svnweb.freebsd.org/changeset/base/292969 > > Log: > Clean up unused-but-set-variable spotted by gcc-4.9. > > Reviewed by: royger > Approved by: rodrigc (mentor) > Differential Revision: https://reviews.freebsd.org/D4733 Hi Marcelo! Do you plan on MFCing these changes (MFC after: XXX)? Thanks! -NGie From owner-svn-src-all@freebsd.org Thu Dec 31 03:24:47 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4DB49A56B59; Thu, 31 Dec 2015 03:24:47 +0000 (UTC) (envelope-from araujobsdport@gmail.com) Received: from mail-ob0-x22f.google.com (mail-ob0-x22f.google.com [IPv6:2607:f8b0:4003:c01::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1A3E813DC; Thu, 31 Dec 2015 03:24:47 +0000 (UTC) (envelope-from araujobsdport@gmail.com) Received: by mail-ob0-x22f.google.com with SMTP id 18so282825016obc.2; Wed, 30 Dec 2015 19:24:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=3iDLvfNrrv2MjPkdXFS9sW1AH2t9qidnRk026S4JzKs=; b=FwfoyEOqAW70bTfDRSLazF6y1d6Z2gH56zqLYrmwWKfdwQA/Whs0wOu15Z500QyMoF BAlxaCC01KOGzbfh7RMdUrRTR9dtSkFK8WMXmoeurrqN7NUoP7hpQVow9Pnjf2ba10DR 7hC0tcovoFBAuE41DMnvUJePyXV5qjgF8vnnPP2aMBFKVt7qYMBurZlAWO/JEoe3asvZ xhelF+ZUDEkRXPRn89NvCdyNWOgJncbL75d++jaoCpNOFYyF8RIL4epmZiO8DqpK+jCs Tgceuq3a7n4nS4CHlUxVSS+/Z20JwF4wiNKSvtlplMOMoLd6kgwCwzvDXoajnNVnrn1N sALw== MIME-Version: 1.0 X-Received: by 10.182.153.35 with SMTP id vd3mr19655520obb.16.1451532286422; Wed, 30 Dec 2015 19:24:46 -0800 (PST) Received: by 10.182.7.33 with HTTP; Wed, 30 Dec 2015 19:24:46 -0800 (PST) Reply-To: araujo@FreeBSD.org In-Reply-To: References: <201512310154.tBV1s7sj004165@repo.freebsd.org> Date: Thu, 31 Dec 2015 11:24:46 +0800 Message-ID: Subject: Re: svn commit: r292969 - head/sys/xen/xenbus From: Marcelo Araujo To: NGie Cooper Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 03:24:47 -0000 2015-12-31 11:20 GMT+08:00 NGie Cooper : > > > On Dec 30, 2015, at 17:54, Marcelo Araujo wrote: > > > > Author: araujo > > Date: Thu Dec 31 01:54:07 2015 > > New Revision: 292969 > > URL: https://svnweb.freebsd.org/changeset/base/292969 > > > > Log: > > Clean up unused-but-set-variable spotted by gcc-4.9. > > > > Reviewed by: royger > > Approved by: rodrigc (mentor) > > Differential Revision: https://reviews.freebsd.org/D4733 > > Hi Marcelo! > Do you plan on MFCing these changes (MFC after: XXX)? > Thanks! > -NGie > > Hi Ngie, I didn't make any plan to MFC these changes, because I saw in the latest weeks you are doing all of this job. Thanks for that! But, yes, I can do the MFC in case you don't want do it by yourself as you have been doing. Just let me know and I will schedule it to be MFC after couple weeks. Best, -- -- Marcelo Araujo (__)araujo@FreeBSD.org \\\'',)http://www.FreeBSD.org \/ \ ^ Power To Server. .\. /_) From owner-svn-src-all@freebsd.org Thu Dec 31 03:28:16 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7463A56C66; Thu, 31 Dec 2015 03:28:16 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8414217D1; Thu, 31 Dec 2015 03:28:16 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV3SFkE031719; Thu, 31 Dec 2015 03:28:15 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV3SFq7031711; Thu, 31 Dec 2015 03:28:15 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512310328.tBV3SFq7031711@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 31 Dec 2015 03:28:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292973 - in stable/10: cddl/lib/libnvpair contrib/mdocml etc/mtree lib lib/libnv share/mk sys/cddl/contrib/opensolaris/common/nvpair sys/conf sys/kern sys/modules/zfs sys/sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 03:28:16 -0000 Author: ngie Date: Thu Dec 31 03:28:14 2015 New Revision: 292973 URL: https://svnweb.freebsd.org/changeset/base/292973 Log: MFC nv(3) and part of nv(9) to stable/10 This includes the following revisions from head: r258065,r258594,r259430,r260222,r261407,r261408,r263479,r264021,r266351, r269603,r271026,r271027,r271028,r271241,r271578,r271579,r271847,r272102, r272843,r273752,r277920,r277921,r277925,r277926,r277927,r279421,r279422, r279423,r279424,r279425,r279426,r279427,r279428,r279429,r279430,r279431, r279432,r279434,r279435,r279436,r279438,r279439,r279440,r279760,r282122, r282254,r282257,r282304,r282312,r285339,r288340 This change reverts stable/10@r282122 and stable/10@r288340, and re-MFCs the series again (r282122, r285339, and r288340). More changes are pending to nv(9)/pci(4) after further review/work. Please see the Phabricator review for more details (both https://reviews.freebsd.org/D4232 and https://reviews.freebsd.org/D4249 ). - Tested with: -- Booting VMware Fusion 8.1.0 running on a Haswell Apple Macbook Pro -- Booting a Haswell machine with zfs and running some stress workloads with VirtualBox guests -- make tinderbox -- kyua test -k /usr/tests/lib/libnv Differential Revision: https://reviews.freebsd.org/D4249 (part of a larger diff) Relnotes: yes Reviewed by: oshogbo (implicit), sbruno (implicit) Submitted by: Kevin Bowling Sponsored by: EMC / Isilon Storage Division Added: stable/10/lib/libnv/ - copied from r292857, user/ngie/stable-10-libnv/lib/libnv/ stable/10/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_fnvpair.c - copied unchanged from r292857, user/ngie/stable-10-libnv/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_fnvpair.c stable/10/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair.c - copied unchanged from r292857, user/ngie/stable-10-libnv/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair.c stable/10/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair_alloc_fixed.c - copied unchanged from r292857, user/ngie/stable-10-libnv/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair_alloc_fixed.c stable/10/sys/kern/subr_dnvlist.c - copied unchanged from r292857, user/ngie/stable-10-libnv/sys/kern/subr_dnvlist.c stable/10/sys/kern/subr_nvlist.c - copied unchanged from r292857, user/ngie/stable-10-libnv/sys/kern/subr_nvlist.c stable/10/sys/kern/subr_nvpair.c - copied unchanged from r292857, user/ngie/stable-10-libnv/sys/kern/subr_nvpair.c stable/10/sys/sys/dnv.h - copied unchanged from r292857, user/ngie/stable-10-libnv/sys/sys/dnv.h stable/10/sys/sys/nv.h - copied unchanged from r292857, user/ngie/stable-10-libnv/sys/sys/nv.h stable/10/sys/sys/nv_impl.h - copied unchanged from r292857, user/ngie/stable-10-libnv/sys/sys/nv_impl.h stable/10/sys/sys/nvlist_impl.h - copied unchanged from r292857, user/ngie/stable-10-libnv/sys/sys/nvlist_impl.h stable/10/sys/sys/nvpair_impl.h - copied unchanged from r292857, user/ngie/stable-10-libnv/sys/sys/nvpair_impl.h Deleted: stable/10/sys/cddl/contrib/opensolaris/common/nvpair/fnvpair.c stable/10/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c stable/10/sys/cddl/contrib/opensolaris/common/nvpair/nvpair_alloc_fixed.c Modified: stable/10/cddl/lib/libnvpair/Makefile stable/10/contrib/mdocml/lib.in stable/10/etc/mtree/BSD.tests.dist stable/10/lib/Makefile stable/10/share/mk/bsd.libnames.mk stable/10/sys/conf/files stable/10/sys/modules/zfs/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/cddl/lib/libnvpair/Makefile ============================================================================== --- stable/10/cddl/lib/libnvpair/Makefile Thu Dec 31 02:01:20 2015 (r292972) +++ stable/10/cddl/lib/libnvpair/Makefile Thu Dec 31 03:28:14 2015 (r292973) @@ -7,10 +7,10 @@ LIB= nvpair SRCS= libnvpair.c \ nvpair_alloc_system.c \ - nvpair_alloc_fixed.c \ - nvpair.c \ nvpair_json.c \ - fnvpair.c + opensolaris_fnvpair.c \ + opensolaris_nvpair.c \ + opensolaris_nvpair_alloc_fixed.c WARNS?= 0 CFLAGS+= -I${.CURDIR}/../../../cddl/compat/opensolaris/include Modified: stable/10/contrib/mdocml/lib.in ============================================================================== --- stable/10/contrib/mdocml/lib.in Thu Dec 31 02:01:20 2015 (r292972) +++ stable/10/contrib/mdocml/lib.in Thu Dec 31 03:28:14 2015 (r292973) @@ -67,6 +67,7 @@ LINE("libmemstat", "Kernel Memory Alloca LINE("libmenu", "Curses Menu Library (libmenu, \\-lmenu)") LINE("libnetgraph", "Netgraph User Library (libnetgraph, \\-lnetgraph)") LINE("libnetpgp", "Netpgp signing, verification, encryption and decryption (libnetpgp, \\-lnetpgp)") +LINE("libnv", "Name/value pairs library (libnv, \\-lnv)") LINE("libossaudio", "OSS Audio Emulation Library (libossaudio, \\-lossaudio)") LINE("libpam", "Pluggable Authentication Module Library (libpam, \\-lpam)") LINE("libpcap", "Packet Capture Library (libpcap, \\-lpcap)") Modified: stable/10/etc/mtree/BSD.tests.dist ============================================================================== --- stable/10/etc/mtree/BSD.tests.dist Thu Dec 31 02:01:20 2015 (r292972) +++ stable/10/etc/mtree/BSD.tests.dist Thu Dec 31 03:28:14 2015 (r292973) @@ -144,6 +144,8 @@ .. libmp .. + libnv + .. librt .. libthr @@ -208,7 +210,6 @@ execve .. pipe - .. .. kqueue .. Modified: stable/10/lib/Makefile ============================================================================== --- stable/10/lib/Makefile Thu Dec 31 02:01:20 2015 (r292972) +++ stable/10/lib/Makefile Thu Dec 31 03:28:14 2015 (r292973) @@ -70,6 +70,7 @@ SUBDIR= ${SUBDIR_ORDERED} \ libnetbsd \ ${_libnetgraph} \ ${_libngatm} \ + libnv \ libopie \ libpam \ libpcap \ Modified: stable/10/share/mk/bsd.libnames.mk ============================================================================== --- stable/10/share/mk/bsd.libnames.mk Thu Dec 31 02:01:20 2015 (r292972) +++ stable/10/share/mk/bsd.libnames.mk Thu Dec 31 03:28:14 2015 (r292973) @@ -100,6 +100,7 @@ LIBNCURSES?= ${DESTDIR}${LIBDIR}/libncur LIBNCURSESW?= ${DESTDIR}${LIBDIR}/libncursesw.a LIBNETGRAPH?= ${DESTDIR}${LIBDIR}/libnetgraph.a LIBNGATM?= ${DESTDIR}${LIBDIR}/libngatm.a +LIBNV?= ${DESTDIR}${LIBDIR}/libnv.a LIBNVPAIR?= ${DESTDIR}${LIBDIR}/libnvpair.a LIBOPIE?= ${DESTDIR}${LIBDIR}/libopie.a Copied: stable/10/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_fnvpair.c (from r292857, user/ngie/stable-10-libnv/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_fnvpair.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_fnvpair.c Thu Dec 31 03:28:14 2015 (r292973, copy of r292857, user/ngie/stable-10-libnv/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_fnvpair.c) @@ -0,0 +1,512 @@ + +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2012 by Delphix. All rights reserved. + */ + +#include +#ifndef _KERNEL +#include +#else +#include +#include +#include +#include +#endif + +/* + * "Force" nvlist wrapper. + * + * These functions wrap the nvlist_* functions with assertions that assume + * the operation is successful. This allows the caller's code to be much + * more readable, especially for the fnvlist_lookup_* and fnvpair_value_* + * functions, which can return the requested value (rather than filling in + * a pointer). + * + * These functions use NV_UNIQUE_NAME, encoding NV_ENCODE_NATIVE, and allocate + * with KM_SLEEP. + * + * More wrappers should be added as needed -- for example + * nvlist_lookup_*_array and nvpair_value_*_array. + */ + +nvlist_t * +fnvlist_alloc(void) +{ + nvlist_t *nvl; + VERIFY0(nvlist_alloc(&nvl, NV_UNIQUE_NAME, KM_SLEEP)); + return (nvl); +} + +void +fnvlist_free(nvlist_t *nvl) +{ + nvlist_free(nvl); +} + +size_t +fnvlist_size(nvlist_t *nvl) +{ + size_t size; + VERIFY0(nvlist_size(nvl, &size, NV_ENCODE_NATIVE)); + return (size); +} + +/* + * Returns allocated buffer of size *sizep. Caller must free the buffer with + * fnvlist_pack_free(). + */ +char * +fnvlist_pack(nvlist_t *nvl, size_t *sizep) +{ + char *packed = 0; + VERIFY3U(nvlist_pack(nvl, &packed, sizep, NV_ENCODE_NATIVE, + KM_SLEEP), ==, 0); + return (packed); +} + +/*ARGSUSED*/ +void +fnvlist_pack_free(char *pack, size_t size) +{ +#ifdef _KERNEL + kmem_free(pack, size); +#else + free(pack); +#endif +} + +nvlist_t * +fnvlist_unpack(char *buf, size_t buflen) +{ + nvlist_t *rv; + VERIFY0(nvlist_unpack(buf, buflen, &rv, KM_SLEEP)); + return (rv); +} + +nvlist_t * +fnvlist_dup(nvlist_t *nvl) +{ + nvlist_t *rv; + VERIFY0(nvlist_dup(nvl, &rv, KM_SLEEP)); + return (rv); +} + +void +fnvlist_merge(nvlist_t *dst, nvlist_t *src) +{ + VERIFY0(nvlist_merge(dst, src, KM_SLEEP)); +} + +size_t +fnvlist_num_pairs(nvlist_t *nvl) +{ + size_t count = 0; + nvpair_t *pair; + + for (pair = nvlist_next_nvpair(nvl, 0); pair != NULL; + pair = nvlist_next_nvpair(nvl, pair)) + count++; + return (count); +} + +void +fnvlist_add_boolean(nvlist_t *nvl, const char *name) +{ + VERIFY0(nvlist_add_boolean(nvl, name)); +} + +void +fnvlist_add_boolean_value(nvlist_t *nvl, const char *name, boolean_t val) +{ + VERIFY0(nvlist_add_boolean_value(nvl, name, val)); +} + +void +fnvlist_add_byte(nvlist_t *nvl, const char *name, uchar_t val) +{ + VERIFY0(nvlist_add_byte(nvl, name, val)); +} + +void +fnvlist_add_int8(nvlist_t *nvl, const char *name, int8_t val) +{ + VERIFY0(nvlist_add_int8(nvl, name, val)); +} + +void +fnvlist_add_uint8(nvlist_t *nvl, const char *name, uint8_t val) +{ + VERIFY0(nvlist_add_uint8(nvl, name, val)); +} + +void +fnvlist_add_int16(nvlist_t *nvl, const char *name, int16_t val) +{ + VERIFY0(nvlist_add_int16(nvl, name, val)); +} + +void +fnvlist_add_uint16(nvlist_t *nvl, const char *name, uint16_t val) +{ + VERIFY0(nvlist_add_uint16(nvl, name, val)); +} + +void +fnvlist_add_int32(nvlist_t *nvl, const char *name, int32_t val) +{ + VERIFY0(nvlist_add_int32(nvl, name, val)); +} + +void +fnvlist_add_uint32(nvlist_t *nvl, const char *name, uint32_t val) +{ + VERIFY0(nvlist_add_uint32(nvl, name, val)); +} + +void +fnvlist_add_int64(nvlist_t *nvl, const char *name, int64_t val) +{ + VERIFY0(nvlist_add_int64(nvl, name, val)); +} + +void +fnvlist_add_uint64(nvlist_t *nvl, const char *name, uint64_t val) +{ + VERIFY0(nvlist_add_uint64(nvl, name, val)); +} + +void +fnvlist_add_string(nvlist_t *nvl, const char *name, const char *val) +{ + VERIFY0(nvlist_add_string(nvl, name, val)); +} + +void +fnvlist_add_nvlist(nvlist_t *nvl, const char *name, nvlist_t *val) +{ + VERIFY0(nvlist_add_nvlist(nvl, name, val)); +} + +void +fnvlist_add_nvpair(nvlist_t *nvl, nvpair_t *pair) +{ + VERIFY0(nvlist_add_nvpair(nvl, pair)); +} + +void +fnvlist_add_boolean_array(nvlist_t *nvl, const char *name, + boolean_t *val, uint_t n) +{ + VERIFY0(nvlist_add_boolean_array(nvl, name, val, n)); +} + +void +fnvlist_add_byte_array(nvlist_t *nvl, const char *name, uchar_t *val, uint_t n) +{ + VERIFY0(nvlist_add_byte_array(nvl, name, val, n)); +} + +void +fnvlist_add_int8_array(nvlist_t *nvl, const char *name, int8_t *val, uint_t n) +{ + VERIFY0(nvlist_add_int8_array(nvl, name, val, n)); +} + +void +fnvlist_add_uint8_array(nvlist_t *nvl, const char *name, uint8_t *val, uint_t n) +{ + VERIFY0(nvlist_add_uint8_array(nvl, name, val, n)); +} + +void +fnvlist_add_int16_array(nvlist_t *nvl, const char *name, int16_t *val, uint_t n) +{ + VERIFY0(nvlist_add_int16_array(nvl, name, val, n)); +} + +void +fnvlist_add_uint16_array(nvlist_t *nvl, const char *name, + uint16_t *val, uint_t n) +{ + VERIFY0(nvlist_add_uint16_array(nvl, name, val, n)); +} + +void +fnvlist_add_int32_array(nvlist_t *nvl, const char *name, int32_t *val, uint_t n) +{ + VERIFY0(nvlist_add_int32_array(nvl, name, val, n)); +} + +void +fnvlist_add_uint32_array(nvlist_t *nvl, const char *name, + uint32_t *val, uint_t n) +{ + VERIFY0(nvlist_add_uint32_array(nvl, name, val, n)); +} + +void +fnvlist_add_int64_array(nvlist_t *nvl, const char *name, int64_t *val, uint_t n) +{ + VERIFY0(nvlist_add_int64_array(nvl, name, val, n)); +} + +void +fnvlist_add_uint64_array(nvlist_t *nvl, const char *name, + uint64_t *val, uint_t n) +{ + VERIFY0(nvlist_add_uint64_array(nvl, name, val, n)); +} + +void +fnvlist_add_string_array(nvlist_t *nvl, const char *name, + char * const *val, uint_t n) +{ + VERIFY0(nvlist_add_string_array(nvl, name, val, n)); +} + +void +fnvlist_add_nvlist_array(nvlist_t *nvl, const char *name, + nvlist_t **val, uint_t n) +{ + VERIFY0(nvlist_add_nvlist_array(nvl, name, val, n)); +} + +void +fnvlist_remove(nvlist_t *nvl, const char *name) +{ + VERIFY0(nvlist_remove_all(nvl, name)); +} + +void +fnvlist_remove_nvpair(nvlist_t *nvl, nvpair_t *pair) +{ + VERIFY0(nvlist_remove_nvpair(nvl, pair)); +} + +nvpair_t * +fnvlist_lookup_nvpair(nvlist_t *nvl, const char *name) +{ + nvpair_t *rv; + VERIFY0(nvlist_lookup_nvpair(nvl, name, &rv)); + return (rv); +} + +/* returns B_TRUE if the entry exists */ +boolean_t +fnvlist_lookup_boolean(nvlist_t *nvl, const char *name) +{ + return (nvlist_lookup_boolean(nvl, name) == 0); +} + +boolean_t +fnvlist_lookup_boolean_value(nvlist_t *nvl, const char *name) +{ + boolean_t rv; + VERIFY0(nvlist_lookup_boolean_value(nvl, name, &rv)); + return (rv); +} + +uchar_t +fnvlist_lookup_byte(nvlist_t *nvl, const char *name) +{ + uchar_t rv; + VERIFY0(nvlist_lookup_byte(nvl, name, &rv)); + return (rv); +} + +int8_t +fnvlist_lookup_int8(nvlist_t *nvl, const char *name) +{ + int8_t rv; + VERIFY0(nvlist_lookup_int8(nvl, name, &rv)); + return (rv); +} + +int16_t +fnvlist_lookup_int16(nvlist_t *nvl, const char *name) +{ + int16_t rv; + VERIFY0(nvlist_lookup_int16(nvl, name, &rv)); + return (rv); +} + +int32_t +fnvlist_lookup_int32(nvlist_t *nvl, const char *name) +{ + int32_t rv; + VERIFY0(nvlist_lookup_int32(nvl, name, &rv)); + return (rv); +} + +int64_t +fnvlist_lookup_int64(nvlist_t *nvl, const char *name) +{ + int64_t rv; + VERIFY0(nvlist_lookup_int64(nvl, name, &rv)); + return (rv); +} + +uint8_t +fnvlist_lookup_uint8_t(nvlist_t *nvl, const char *name) +{ + uint8_t rv; + VERIFY0(nvlist_lookup_uint8(nvl, name, &rv)); + return (rv); +} + +uint16_t +fnvlist_lookup_uint16(nvlist_t *nvl, const char *name) +{ + uint16_t rv; + VERIFY0(nvlist_lookup_uint16(nvl, name, &rv)); + return (rv); +} + +uint32_t +fnvlist_lookup_uint32(nvlist_t *nvl, const char *name) +{ + uint32_t rv; + VERIFY0(nvlist_lookup_uint32(nvl, name, &rv)); + return (rv); +} + +uint64_t +fnvlist_lookup_uint64(nvlist_t *nvl, const char *name) +{ + uint64_t rv; + VERIFY0(nvlist_lookup_uint64(nvl, name, &rv)); + return (rv); +} + +char * +fnvlist_lookup_string(nvlist_t *nvl, const char *name) +{ + char *rv; + VERIFY0(nvlist_lookup_string(nvl, name, &rv)); + return (rv); +} + +nvlist_t * +fnvlist_lookup_nvlist(nvlist_t *nvl, const char *name) +{ + nvlist_t *rv; + VERIFY0(nvlist_lookup_nvlist(nvl, name, &rv)); + return (rv); +} + +boolean_t +fnvpair_value_boolean_value(nvpair_t *nvp) +{ + boolean_t rv; + VERIFY0(nvpair_value_boolean_value(nvp, &rv)); + return (rv); +} + +uchar_t +fnvpair_value_byte(nvpair_t *nvp) +{ + uchar_t rv; + VERIFY0(nvpair_value_byte(nvp, &rv)); + return (rv); +} + +int8_t +fnvpair_value_int8(nvpair_t *nvp) +{ + int8_t rv; + VERIFY0(nvpair_value_int8(nvp, &rv)); + return (rv); +} + +int16_t +fnvpair_value_int16(nvpair_t *nvp) +{ + int16_t rv; + VERIFY0(nvpair_value_int16(nvp, &rv)); + return (rv); +} + +int32_t +fnvpair_value_int32(nvpair_t *nvp) +{ + int32_t rv; + VERIFY0(nvpair_value_int32(nvp, &rv)); + return (rv); +} + +int64_t +fnvpair_value_int64(nvpair_t *nvp) +{ + int64_t rv; + VERIFY0(nvpair_value_int64(nvp, &rv)); + return (rv); +} + +uint8_t +fnvpair_value_uint8_t(nvpair_t *nvp) +{ + uint8_t rv; + VERIFY0(nvpair_value_uint8(nvp, &rv)); + return (rv); +} + +uint16_t +fnvpair_value_uint16(nvpair_t *nvp) +{ + uint16_t rv; + VERIFY0(nvpair_value_uint16(nvp, &rv)); + return (rv); +} + +uint32_t +fnvpair_value_uint32(nvpair_t *nvp) +{ + uint32_t rv; + VERIFY0(nvpair_value_uint32(nvp, &rv)); + return (rv); +} + +uint64_t +fnvpair_value_uint64(nvpair_t *nvp) +{ + uint64_t rv; + VERIFY0(nvpair_value_uint64(nvp, &rv)); + return (rv); +} + +char * +fnvpair_value_string(nvpair_t *nvp) +{ + char *rv; + VERIFY0(nvpair_value_string(nvp, &rv)); + return (rv); +} + +nvlist_t * +fnvpair_value_nvlist(nvpair_t *nvp) +{ + nvlist_t *rv; + VERIFY0(nvpair_value_nvlist(nvp, &rv)); + return (rv); +} Copied: stable/10/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair.c (from r292857, user/ngie/stable-10-libnv/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair.c Thu Dec 31 03:28:14 2015 (r292973, copy of r292857, user/ngie/stable-10-libnv/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair.c) @@ -0,0 +1,3306 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + */ + +#include +#include +#include +#include +#include + +#if defined(_KERNEL) && !defined(_BOOT) +#include +#include +#else +#include +#include +#include +#include +#endif + +#ifndef offsetof +#define offsetof(s, m) ((size_t)(&(((s *)0)->m))) +#endif +#define skip_whitespace(p) while ((*(p) == ' ') || (*(p) == '\t')) p++ + +#if defined(__FreeBSD__) && !defined(_KERNEL) +/* + * libnvpair is the lowest commen denominator for ZFS related libraries, + * defining aok here makes it usable by all ZFS related libraries + */ +int aok; +#endif + +/* + * nvpair.c - Provides kernel & userland interfaces for manipulating + * name-value pairs. + * + * Overview Diagram + * + * +--------------+ + * | nvlist_t | + * |--------------| + * | nvl_version | + * | nvl_nvflag | + * | nvl_priv -+-+ + * | nvl_flag | | + * | nvl_pad | | + * +--------------+ | + * V + * +--------------+ last i_nvp in list + * | nvpriv_t | +---------------------> + * |--------------| | + * +--+- nvp_list | | +------------+ + * | | nvp_last -+--+ + nv_alloc_t | + * | | nvp_curr | |------------| + * | | nvp_nva -+----> | nva_ops | + * | | nvp_stat | | nva_arg | + * | +--------------+ +------------+ + * | + * +-------+ + * V + * +---------------------+ +-------------------+ + * | i_nvp_t | +-->| i_nvp_t | +--> + * |---------------------| | |-------------------| | + * | nvi_next -+--+ | nvi_next -+--+ + * | nvi_prev (NULL) | <----+ nvi_prev | + * | . . . . . . . . . . | | . . . . . . . . . | + * | nvp (nvpair_t) | | nvp (nvpair_t) | + * | - nvp_size | | - nvp_size | + * | - nvp_name_sz | | - nvp_name_sz | + * | - nvp_value_elem | | - nvp_value_elem | + * | - nvp_type | | - nvp_type | + * | - data ... | | - data ... | + * +---------------------+ +-------------------+ + * + * + * + * +---------------------+ +---------------------+ + * | i_nvp_t | +--> +-->| i_nvp_t (last) | + * |---------------------| | | |---------------------| + * | nvi_next -+--+ ... --+ | nvi_next (NULL) | + * <-+- nvi_prev |<-- ... <----+ nvi_prev | + * | . . . . . . . . . | | . . . . . . . . . | + * | nvp (nvpair_t) | | nvp (nvpair_t) | + * | - nvp_size | | - nvp_size | + * | - nvp_name_sz | | - nvp_name_sz | + * | - nvp_value_elem | | - nvp_value_elem | + * | - DATA_TYPE_NVLIST | | - nvp_type | + * | - data (embedded) | | - data ... | + * | nvlist name | +---------------------+ + * | +--------------+ | + * | | nvlist_t | | + * | |--------------| | + * | | nvl_version | | + * | | nvl_nvflag | | + * | | nvl_priv --+---+----> + * | | nvl_flag | | + * | | nvl_pad | | + * | +--------------+ | + * +---------------------+ + * + * + * N.B. nvpair_t may be aligned on 4 byte boundary, so +4 will + * allow value to be aligned on 8 byte boundary + * + * name_len is the length of the name string including the null terminator + * so it must be >= 1 + */ +#define NVP_SIZE_CALC(name_len, data_len) \ + (NV_ALIGN((sizeof (nvpair_t)) + name_len) + NV_ALIGN(data_len)) + +static int i_get_value_size(data_type_t type, const void *data, uint_t nelem); +static int nvlist_add_common(nvlist_t *nvl, const char *name, data_type_t type, + uint_t nelem, const void *data); + +#define NV_STAT_EMBEDDED 0x1 +#define EMBEDDED_NVL(nvp) ((nvlist_t *)(void *)NVP_VALUE(nvp)) +#define EMBEDDED_NVL_ARRAY(nvp) ((nvlist_t **)(void *)NVP_VALUE(nvp)) + +#define NVP_VALOFF(nvp) (NV_ALIGN(sizeof (nvpair_t) + (nvp)->nvp_name_sz)) +#define NVPAIR2I_NVP(nvp) \ + ((i_nvp_t *)((size_t)(nvp) - offsetof(i_nvp_t, nvi_nvp))) + + +int +nv_alloc_init(nv_alloc_t *nva, const nv_alloc_ops_t *nvo, /* args */ ...) +{ + va_list valist; + int err = 0; + + nva->nva_ops = nvo; + nva->nva_arg = NULL; + + va_start(valist, nvo); + if (nva->nva_ops->nv_ao_init != NULL) + err = nva->nva_ops->nv_ao_init(nva, valist); + va_end(valist); + + return (err); +} + +void +nv_alloc_reset(nv_alloc_t *nva) +{ + if (nva->nva_ops->nv_ao_reset != NULL) + nva->nva_ops->nv_ao_reset(nva); +} + +void +nv_alloc_fini(nv_alloc_t *nva) +{ + if (nva->nva_ops->nv_ao_fini != NULL) + nva->nva_ops->nv_ao_fini(nva); +} + +nv_alloc_t * +nvlist_lookup_nv_alloc(nvlist_t *nvl) +{ + nvpriv_t *priv; + + if (nvl == NULL || + (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL) + return (NULL); + + return (priv->nvp_nva); +} + +static void * +nv_mem_zalloc(nvpriv_t *nvp, size_t size) +{ + nv_alloc_t *nva = nvp->nvp_nva; + void *buf; + + if ((buf = nva->nva_ops->nv_ao_alloc(nva, size)) != NULL) + bzero(buf, size); + + return (buf); +} + +static void +nv_mem_free(nvpriv_t *nvp, void *buf, size_t size) +{ + nv_alloc_t *nva = nvp->nvp_nva; + + nva->nva_ops->nv_ao_free(nva, buf, size); +} + +static void +nv_priv_init(nvpriv_t *priv, nv_alloc_t *nva, uint32_t stat) +{ + bzero(priv, sizeof (nvpriv_t)); + + priv->nvp_nva = nva; + priv->nvp_stat = stat; +} + +static nvpriv_t * +nv_priv_alloc(nv_alloc_t *nva) +{ + nvpriv_t *priv; + + /* + * nv_mem_alloc() cannot called here because it needs the priv + * argument. + */ + if ((priv = nva->nva_ops->nv_ao_alloc(nva, sizeof (nvpriv_t))) == NULL) + return (NULL); + + nv_priv_init(priv, nva, 0); + + return (priv); +} + +/* + * Embedded lists need their own nvpriv_t's. We create a new + * nvpriv_t using the parameters and allocator from the parent + * list's nvpriv_t. + */ +static nvpriv_t * +nv_priv_alloc_embedded(nvpriv_t *priv) +{ + nvpriv_t *emb_priv; + + if ((emb_priv = nv_mem_zalloc(priv, sizeof (nvpriv_t))) == NULL) + return (NULL); + + nv_priv_init(emb_priv, priv->nvp_nva, NV_STAT_EMBEDDED); + + return (emb_priv); +} + +static void +nvlist_init(nvlist_t *nvl, uint32_t nvflag, nvpriv_t *priv) +{ + nvl->nvl_version = NV_VERSION; + nvl->nvl_nvflag = nvflag & (NV_UNIQUE_NAME|NV_UNIQUE_NAME_TYPE); + nvl->nvl_priv = (uint64_t)(uintptr_t)priv; + nvl->nvl_flag = 0; + nvl->nvl_pad = 0; +} + +uint_t +nvlist_nvflag(nvlist_t *nvl) +{ + return (nvl->nvl_nvflag); +} + +/* + * nvlist_alloc - Allocate nvlist. + */ +/*ARGSUSED1*/ +int +nvlist_alloc(nvlist_t **nvlp, uint_t nvflag, int kmflag) +{ +#if defined(_KERNEL) && !defined(_BOOT) + return (nvlist_xalloc(nvlp, nvflag, + (kmflag == KM_SLEEP ? nv_alloc_sleep : nv_alloc_nosleep))); +#else + return (nvlist_xalloc(nvlp, nvflag, nv_alloc_nosleep)); +#endif +} + +int +nvlist_xalloc(nvlist_t **nvlp, uint_t nvflag, nv_alloc_t *nva) +{ + nvpriv_t *priv; + + if (nvlp == NULL || nva == NULL) + return (EINVAL); + + if ((priv = nv_priv_alloc(nva)) == NULL) + return (ENOMEM); + + if ((*nvlp = nv_mem_zalloc(priv, + NV_ALIGN(sizeof (nvlist_t)))) == NULL) { + nv_mem_free(priv, priv, sizeof (nvpriv_t)); + return (ENOMEM); + } + + nvlist_init(*nvlp, nvflag, priv); + + return (0); +} + +/* + * nvp_buf_alloc - Allocate i_nvp_t for storing a new nv pair. + */ +static nvpair_t * +nvp_buf_alloc(nvlist_t *nvl, size_t len) +{ + nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv; + i_nvp_t *buf; + nvpair_t *nvp; + size_t nvsize; + + /* + * Allocate the buffer + */ + nvsize = len + offsetof(i_nvp_t, nvi_nvp); + + if ((buf = nv_mem_zalloc(priv, nvsize)) == NULL) + return (NULL); + + nvp = &buf->nvi_nvp; + nvp->nvp_size = len; + + return (nvp); +} + +/* + * nvp_buf_free - de-Allocate an i_nvp_t. + */ +static void +nvp_buf_free(nvlist_t *nvl, nvpair_t *nvp) +{ + nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv; + size_t nvsize = nvp->nvp_size + offsetof(i_nvp_t, nvi_nvp); + + nv_mem_free(priv, NVPAIR2I_NVP(nvp), nvsize); +} + +/* + * nvp_buf_link - link a new nv pair into the nvlist. + */ +static void +nvp_buf_link(nvlist_t *nvl, nvpair_t *nvp) +{ + nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv; + i_nvp_t *curr = NVPAIR2I_NVP(nvp); + + /* Put element at end of nvlist */ + if (priv->nvp_list == NULL) { + priv->nvp_list = priv->nvp_last = curr; + } else { + curr->nvi_prev = priv->nvp_last; + priv->nvp_last->nvi_next = curr; + priv->nvp_last = curr; + } +} + +/* + * nvp_buf_unlink - unlink an removed nvpair out of the nvlist. + */ +static void +nvp_buf_unlink(nvlist_t *nvl, nvpair_t *nvp) +{ + nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv; + i_nvp_t *curr = NVPAIR2I_NVP(nvp); + + /* + * protect nvlist_next_nvpair() against walking on freed memory. + */ + if (priv->nvp_curr == curr) + priv->nvp_curr = curr->nvi_next; + + if (curr == priv->nvp_list) + priv->nvp_list = curr->nvi_next; + else + curr->nvi_prev->nvi_next = curr->nvi_next; + + if (curr == priv->nvp_last) + priv->nvp_last = curr->nvi_prev; + else + curr->nvi_next->nvi_prev = curr->nvi_prev; +} + +/* + * take a nvpair type and number of elements and make sure the are valid + */ +static int +i_validate_type_nelem(data_type_t type, uint_t nelem) +{ + switch (type) { + case DATA_TYPE_BOOLEAN: + if (nelem != 0) + return (EINVAL); + break; + case DATA_TYPE_BOOLEAN_VALUE: + case DATA_TYPE_BYTE: + case DATA_TYPE_INT8: + case DATA_TYPE_UINT8: + case DATA_TYPE_INT16: + case DATA_TYPE_UINT16: + case DATA_TYPE_INT32: + case DATA_TYPE_UINT32: + case DATA_TYPE_INT64: + case DATA_TYPE_UINT64: + case DATA_TYPE_STRING: + case DATA_TYPE_HRTIME: + case DATA_TYPE_NVLIST: +#if !defined(_KERNEL) + case DATA_TYPE_DOUBLE: +#endif + if (nelem != 1) + return (EINVAL); + break; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Dec 31 03:29:22 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 295D5A56D53; Thu, 31 Dec 2015 03:29:22 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail105.syd.optusnet.com.au (mail105.syd.optusnet.com.au [211.29.132.249]) by mx1.freebsd.org (Postfix) with ESMTP id E1D8119C0; Thu, 31 Dec 2015 03:29:21 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail105.syd.optusnet.com.au (Postfix) with ESMTPS id 3C6081044973; Thu, 31 Dec 2015 14:03:44 +1100 (AEDT) Date: Thu, 31 Dec 2015 14:03:43 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: "Jonathan T. Looney" cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292955 - head/lib/libmd In-Reply-To: <201512301804.tBUI4oGp065466@repo.freebsd.org> Message-ID: <20151231115651.R995@besplex.bde.org> References: <201512301804.tBUI4oGp065466@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=PfoC/XVd c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=n6x23ePlt3Etblb9PaIA:9 a=W7bupkRa8C25QxS4:21 a=arsscFRyo2p6TkLc:21 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 03:29:22 -0000 On Wed, 30 Dec 2015, Jonathan T. Looney wrote: > Log: > Fix a file descriptor leak in mdXhl.c (which is used by numerous hashing > algorithms. This code had amazingly low quality and is still especially broken near the main leak fixed. > Modified: head/lib/libmd/mdXhl.c > ============================================================================== > --- head/lib/libmd/mdXhl.c Wed Dec 30 17:36:34 2015 (r292954) > +++ head/lib/libmd/mdXhl.c Wed Dec 30 18:04:50 2015 (r292955) > @@ -59,14 +59,18 @@ MDXFileChunk(const char *filename, char > f = open(filename, O_RDONLY); > if (f < 0) > return 0; > - if (fstat(f, &stbuf) < 0) > - return 0; > + if (fstat(f, &stbuf) < 0) { > + i = -1; > + goto error; > + } > if (ofs > stbuf.st_size) > ofs = stbuf.st_size; st_size is only valid for regular files. The first bug is using it here. Usually it is 0 when it is invalid. This code sets the offset to 0 then. I think this is just to avoid a false negative in the buggy seek test. > if ((len == 0) || (len > stbuf.st_size - ofs)) > len = stbuf.st_size - ofs; Style bugs (extra parentheses) and second use of the invalid st_size. > - if (lseek(f, ofs, SEEK_SET) < 0) > - return 0; > + if (lseek(f, ofs, SEEK_SET) < 0) { > + i = -1; > + goto error; > + } md5 is very broken by using this function for non-seekable files. The main case of a non-seekable file is a pipe. This case works for at least md5(1) by not using this function -- it uses MDFilter() which uses stdio's fread() which works. (stdio knows better than to use st_size, but it naively trusts st_blksize and uses it to give a pessimized small block size for read() called from fread(). This code handles buffer sizing and allocation worse using its low quality methods: - its buffer used to have size BUFSIZ. This size is not usable for anything except possibly buffering keyboard input and stderr. It is mainly part of the broken setbuf() API. Its value is 1024, perhaps to avoid changing this API. 1024 large enough for more uses in 1980. - its buffer now has size 16*1024 (spelled with a style bug like that). This sometimes matches and sometimes exceeds the size used by stdio. stdio at least attempts to choose the best size, but is defeated by stat() putting useless sizes in st_blksize. - it also tries to pessimize the i/o by asking for a misaligned buffer. Its buffer is just a local char[] variable. Compilers usally mostly foil this attempt by aligning large variables on the stack. Misaligned usr buffers should only pessimize the i/o, but last time I looked they cause DMA errors in ahci. This breaks bsdlabel(8). bsdlabel ask for a misaligned buffer and gets it at least when statically linked because its buffer is a global char [] variable and the neither the compiler nor the linker gives more alignment than requested. The DMA error would break md5 (or just cat) similarly if the buffer were misaligend. But the main bug here breaks md5 on disks without trying any i/o. Back to the main bug. This seek test detects some cases of non-regular files. These files indeed cannot be handled by this code. But the error handling is broken -- it is just to set errno and return 0 (EOF). 0 means no error and errno is no set. So all non-seekable files are treated as empty regular files. E.g., md5 /proc/0/* gives: md5: /proc/0/ctl: Permission denied MD5 (/proc/0/cmdline) = d41d8cd98f00b204e9800998ecf8427e MD5 (/proc/0/etype) = d41d8cd98f00b204e9800998ecf8427e MD5 (/proc/0/rlimit) = d41d8cd98f00b204e9800998ecf8427e MD5 (/proc/0/status) = d41d8cd98f00b204e9800998ecf8427e (/proc gives my favourite examples of irregular regular files. It doesn't work to use S_ISREG(&stbuf) to determine if st_size can be trusted, since too many irregular files claim to be regular: e.g., file /proc/0/* gives: /proc/0/cmdline: empty /proc/0/ctl: empty /proc/0/etype: empty /proc/0/rlimit: empty /proc/0/status: empty wc /proc/0/* works. md5 works like wc using a hack to avoid calling this broken function. E.g., for i in $(ls /proc/0/*); do echo -n "$i: "; md5 <$i; done # gives /proc/0/cmdline: 3c5896b1ac441f4998f052e2126e8d20 /proc/0/ctl: d41d8cd98f00b204e9800998ecf8427e /proc/0/etype: 674441960ca1ba2de08ad4e50c9fde98 /proc/0/rlimit: 67d6ad67b412e1bceb7cb508a3492197 /proc/0/status: 3ccc3067b97c3232ea2dbcb64c458fd4 > n = len; > i = 0; > while (n > 0) { Disk device files are seekable, so the lseek test doesn't result in mishandling them. Instead, they are treated as empty files since their st_size is 0. E.g., md5 /dev/ad* gives: MD5 (/dev/ad0) = d41d8cd98f00b204e9800998ecf8427e MD5 (/dev/ad0s1) = d41d8cd98f00b204e9800998ecf8427e MD5 (/dev/ad0s2) = d41d8cd98f00b204e9800998ecf8427e MD5 (/dev/ad0s2a) = d41d8cd98f00b204e9800998ecf8427e ... The workarounds are much the same as for non-seekable files: for i in /dev/ad0s2a; do echo -n "$i: "; md5 <$i; done # gives /dev/ad0s2a: 3b4c134a41615cbc60ef778acd188ed4 Most disk devices are too large to run md5 on, but this partition has size 64MB. I sometimes run md5 and other utilities like cmp on partitions or USB disks of size up to 10GB and get annoyed by the i/o pessimizations. It is faster to copy everything to a regular file and check that. cp has reasonably good i/o buffer sizes and the disk cache works well. However, copying a disk to a regular file and looking at its partitions there using md(4) works even worse. md(4) defeats the disk cache using IO_DIRECT. > @@ -79,6 +83,7 @@ MDXFileChunk(const char *filename, char > MDXUpdate(&ctx, buffer, i); > n -= i; > } > +error: > e = errno; > close(f); > errno = e; I don't understand the plumbing for MDXFileChunk(). Usually the whole file is wanted. MDXFileChunk() cannot work with a nonzero offset on non-seekable files. But it is preferred to the working MDFilter() even in the usual case of a zero offset. MDFilter() is actually a static function in md5(1). libmd apparently has no working input function, since MDXFileChunk() is its only function that uses *read(). MDXFile() is just a wrapper around MDXFileChunk(). The seek test is also broken for certain offsets. FreeBSD supports kseeking to negative offsets on device files. Such offsets occur for high addresses in /dev/kmem on 64-bit systems. errno should be set to 0 before the call and used instead of the return value to determine if the syscall failed. See dd/dd.c for a seek test that is closer to working. dd checks for EPIPE. It also messes around with S_ISCHR(), S_ISBLK() and FIODTYPE. Its algorithm is: - trust S_ISCHR() and S_ISBLK() and don't do the general lseek test for these cases. These can be trusted more than S_ISREG(). - for device files according to this classification, abort the whole program if FDIOTYPE fails. Trust it for setting ISSEEK and ISTAPE flags if it succeeds. - otherwise, do a general lseek test with an EPIPE. MD shouldn't try as hard as dd since there are probably bugs in the complications. But it should try to fail safe since it is more security-related than dd. That means bailing out on any detected error and not trusting st_size unless it is nonzero even if the file is regular. MDXFileChunk()'s error handling seems to be to return 0 on all errors. This is undocumented, and is ambiguous since 0 is also returned for empty files and for files misclassified as empty. The ambiguity can sometimes be resolved by checking errno, but libmd and md5 never check errno. md5 ends up never checking the error and printing d41d8cd98f00b204e9800998ecf8427e for both empty files and for all errors that occur before any bytes are handled. Bruce From owner-svn-src-all@freebsd.org Thu Dec 31 03:55:03 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9C98BA576BD; Thu, 31 Dec 2015 03:55:03 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 69DDD18F0; Thu, 31 Dec 2015 03:55:03 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV3t25K040657; Thu, 31 Dec 2015 03:55:02 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV3t2VG040656; Thu, 31 Dec 2015 03:55:02 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512310355.tBV3t2VG040656@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 31 Dec 2015 03:55:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292975 - stable/10/sys/dev/pci X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 03:55:03 -0000 Author: ngie Date: Thu Dec 31 03:55:02 2015 New Revision: 292975 URL: https://svnweb.freebsd.org/changeset/base/292975 Log: MFC r278860: r278860 (by jmg): remove NULL check as M_WAITOK will not return NULL Reviewed by: jhb Sponsored by: FreeBSD Foundation Modified: stable/10/sys/dev/pci/pci.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/pci/pci.c ============================================================================== --- stable/10/sys/dev/pci/pci.c Thu Dec 31 03:32:43 2015 (r292974) +++ stable/10/sys/dev/pci/pci.c Thu Dec 31 03:55:02 2015 (r292975) @@ -615,8 +615,6 @@ pci_read_device(device_t pcib, int d, in if (REG(PCIR_DEVVENDOR, 4) != 0xfffffffful) { devlist_entry = malloc(size, M_DEVBUF, M_WAITOK | M_ZERO); - if (devlist_entry == NULL) - return (NULL); cfg = &devlist_entry->cfg; From owner-svn-src-all@freebsd.org Thu Dec 31 04:01:53 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDFDDA57916; Thu, 31 Dec 2015 04:01:53 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8B6081BFF; Thu, 31 Dec 2015 04:01:53 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV41qBh042891; Thu, 31 Dec 2015 04:01:52 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV41qBA042890; Thu, 31 Dec 2015 04:01:52 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512310401.tBV41qBA042890@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 31 Dec 2015 04:01:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292976 - stable/9/sys/dev/pci X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 04:01:53 -0000 Author: ngie Date: Thu Dec 31 04:01:52 2015 New Revision: 292976 URL: https://svnweb.freebsd.org/changeset/base/292976 Log: MFstable/10 r292975: MFC r278860: r278860 (by jmg): remove NULL check as M_WAITOK will not return NULL Reviewed by: jhb Sponsored by: FreeBSD Foundation Modified: stable/9/sys/dev/pci/pci.c Directory Properties: stable/9/ (props changed) stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/pci/pci.c ============================================================================== --- stable/9/sys/dev/pci/pci.c Thu Dec 31 03:55:02 2015 (r292975) +++ stable/9/sys/dev/pci/pci.c Thu Dec 31 04:01:52 2015 (r292976) @@ -605,8 +605,6 @@ pci_read_device(device_t pcib, int d, in if (REG(PCIR_DEVVENDOR, 4) != 0xfffffffful) { devlist_entry = malloc(size, M_DEVBUF, M_WAITOK | M_ZERO); - if (devlist_entry == NULL) - return (NULL); cfg = &devlist_entry->cfg; From owner-svn-src-all@freebsd.org Thu Dec 31 04:10:42 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9BAD2A57ADC; Thu, 31 Dec 2015 04:10:42 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail104.syd.optusnet.com.au (mail104.syd.optusnet.com.au [211.29.132.246]) by mx1.freebsd.org (Postfix) with ESMTP id 671BD1F08; Thu, 31 Dec 2015 04:10:42 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail104.syd.optusnet.com.au (Postfix) with ESMTPS id 70938422065; Thu, 31 Dec 2015 15:10:32 +1100 (AEDT) Date: Thu, 31 Dec 2015 15:10:32 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org cc: "Jonathan T. Looney" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292955 - head/lib/libmd In-Reply-To: <20151231115651.R995@besplex.bde.org> Message-ID: <20151231143314.Y1520@besplex.bde.org> References: <201512301804.tBUI4oGp065466@repo.freebsd.org> <20151231115651.R995@besplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=R4L+YolX c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=9cW_t1CCXrUA:10 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=nkSGdXzS_FKU9MRdIc0A:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 04:10:42 -0000 On Thu, 31 Dec 2015, Bruce Evans wrote: > > wc /proc/0/* works. md5 works like wc using a hack to avoid calling this > broken function. E.g., > > for i in $(ls /proc/0/*); do echo -n "$i: "; md5 <$i; done # gives > > /proc/0/cmdline: 3c5896b1ac441f4998f052e2126e8d20 > /proc/0/ctl: d41d8cd98f00b204e9800998ecf8427e > /proc/0/etype: 674441960ca1ba2de08ad4e50c9fde98 > /proc/0/rlimit: 67d6ad67b412e1bceb7cb508a3492197 > /proc/0/status: 3ccc3067b97c3232ea2dbcb64c458fd4 Further examples: md5 # on terminal input works correctly by not using MDXFileChunk(). md5 /dev/stdin # on the same terminal input produces the d41d8cd98f00b204e9800998ecf8427e garbage using MDXFileChunk(). truss shows that lseek() is broken too -- MDXFileChunk() tries it and it succeeds on the unseekable file /dev/stdin. Bugs in this area are common. E.g., lseek() on named pipes was broken so that it succeeded, by rearranging the plumbing use fileops more or less and not attaching lseek right. cat | md5 # on the same terminal input works correctly by not using MDXFileChunk(). cat | md5 /dev/stdin # on the same terminal input doesn't work correctly, but it fails better than without the pipe. Now a seek error occurs and is reported as "md5: /dev/stdin: Illegal seek" (I can't see where it is reported). Then md5 exits. Then cat waits to read input. Then cat fails to write output and is killed by SIGPIPE. So md5 handled the seek error in a fail-safe though incorrect way. One correct way is to fall back to the working code, but it is better to just use that without an lseek check. It is a bug that [l]stat() on /dev/stdin sees the device file and not the actual stdin file. md5 can't work around this except by not using stat(). Bruce From owner-svn-src-all@freebsd.org Thu Dec 31 05:03:29 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D70C1A55C47; Thu, 31 Dec 2015 05:03:29 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6D33B1756; Thu, 31 Dec 2015 05:03:29 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV53Sna061511; Thu, 31 Dec 2015 05:03:28 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV53RkI061498; Thu, 31 Dec 2015 05:03:27 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <201512310503.tBV53RkI061498@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Thu, 31 Dec 2015 05:03:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292978 - in head/sys: dev/cxgb/ulp/tom dev/cxgbe/tom net netinet netinet6 ofed/drivers/infiniband/ulp/ipoib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 05:03:30 -0000 Author: melifaro Date: Thu Dec 31 05:03:27 2015 New Revision: 292978 URL: https://svnweb.freebsd.org/changeset/base/292978 Log: Implement interface link header precomputation API. Add if_requestencap() interface method which is capable of calculating various link headers for given interface. Right now there is support for INET/INET6/ARP llheader calculation (IFENCAP_LL type request). Other types are planned to support more complex calculation (L2 multipath lagg nexthops, tunnel encap nexthops, etc..). Reshape 'struct route' to be able to pass additional data (with is length) to prepend to mbuf. These two changes permits routing code to pass pre-calculated nexthop data (like L2 header for route w/gateway) down to the stack eliminating the need for other lookups. It also brings us closer to more complex scenarios like transparently handling MPLS nexthops and tunnel interfaces. Last, but not least, it removes layering violation introduced by flowtable code (ro_lle) and simplifies handling of existing if_output consumers. ARP/ND changes: Make arp/ndp stack pre-calculate link header upon installing/updating lle record. Interface link address change are handled by re-calculating headers for all lles based on if_lladdr event. After these changes, arpresolve()/nd6_resolve() returns full pre-calculated header for supported interfaces thus simplifying if_output(). Move these lookups to separate ether_resolve_addr() function which ether returs error or fully-prepared link header. Add resolve_addr() compat versions to return link addresses instead of pre-calculated data. BPF changes: Raw bpf writes occupied _two_ cases: AF_UNSPEC and pseudo_AF_HDRCMPLT. Despite the naming, both of there have ther header "complete". The only difference is that interface source mac has to be filled by OS for AF_UNSPEC (controlled via BIOCGHDRCMPLT). This logic has to stay inside BPF and not pollute if_output() routines. Convert BPF to pass prepend data via new 'struct route' mechanism. Note that it does not change non-optimized if_output(): ro_prepend handling is purely optional. Side note: hackish pseudo_AF_HDRCMPLT is supported for ethernet and FDDI. It is not needed for ethernet anymore. The only remaining FDDI user is dev/pdq mostly untouched since 2007. FDDI support was eliminated from OpenBSD in 2013 (sys/net/if_fddisubr.c rev 1.65). Flowtable changes: Flowtable violates layering by saving (and not correctly managing) rtes/lles. Instead of passing lle pointer, pass pointer to pre-calculated header data from that lle. Differential Revision: https://reviews.freebsd.org/D4102 Modified: head/sys/dev/cxgb/ulp/tom/cxgb_l2t.c head/sys/dev/cxgbe/tom/t4_tom_l2t.c head/sys/net/bpf.c head/sys/net/flowtable.c head/sys/net/if.c head/sys/net/if_ethersubr.c head/sys/net/if_llatbl.c head/sys/net/if_llatbl.h head/sys/net/if_var.h head/sys/net/route.h head/sys/netinet/if_ether.c head/sys/netinet/if_ether.h head/sys/netinet/in.c head/sys/netinet/ip_output.c head/sys/netinet/toecore.c head/sys/netinet6/icmp6.c head/sys/netinet6/in6.c head/sys/netinet6/in6.h head/sys/netinet6/nd6.c head/sys/netinet6/nd6.h head/sys/netinet6/nd6_nbr.c head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Modified: head/sys/dev/cxgb/ulp/tom/cxgb_l2t.c ============================================================================== --- head/sys/dev/cxgb/ulp/tom/cxgb_l2t.c Thu Dec 31 04:14:05 2015 (r292977) +++ head/sys/dev/cxgb/ulp/tom/cxgb_l2t.c Thu Dec 31 05:03:27 2015 (r292978) @@ -215,7 +215,7 @@ resolve_entry(struct adapter *sc, struct struct tom_data *td = sc->tom_softc; struct toedev *tod = &td->tod; struct sockaddr_in sin = {0}; - uint8_t dmac[ETHER_ADDR_LEN]; + uint8_t dmac[ETHER_HDR_LEN]; uint16_t vtag = EVL_VLID_MASK; int rc; Modified: head/sys/dev/cxgbe/tom/t4_tom_l2t.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tom_l2t.c Thu Dec 31 04:14:05 2015 (r292977) +++ head/sys/dev/cxgbe/tom/t4_tom_l2t.c Thu Dec 31 05:03:27 2015 (r292978) @@ -233,7 +233,7 @@ resolve_entry(struct adapter *sc, struct struct sockaddr_in sin = {0}; struct sockaddr_in6 sin6 = {0}; struct sockaddr *sa; - uint8_t dmac[ETHER_ADDR_LEN]; + uint8_t dmac[ETHER_HDR_LEN]; uint16_t vtag = VLAN_NONE; int rc; Modified: head/sys/net/bpf.c ============================================================================== --- head/sys/net/bpf.c Thu Dec 31 04:14:05 2015 (r292977) +++ head/sys/net/bpf.c Thu Dec 31 05:03:27 2015 (r292978) @@ -69,6 +69,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #ifdef BPF_JITTER @@ -76,6 +77,7 @@ __FBSDID("$FreeBSD$"); #endif #include #include +#include #include #include @@ -164,7 +166,7 @@ static void bpf_detachd(struct bpf_d *); static void bpf_detachd_locked(struct bpf_d *); static void bpf_freed(struct bpf_d *); static int bpf_movein(struct uio *, int, struct ifnet *, struct mbuf **, - struct sockaddr *, int *, struct bpf_insn *); + struct sockaddr *, int *, struct bpf_d *); static int bpf_setif(struct bpf_d *, struct ifreq *); static void bpf_timed_out(void *); static __inline void @@ -454,7 +456,7 @@ bpf_ioctl_setzbuf(struct thread *td, str */ static int bpf_movein(struct uio *uio, int linktype, struct ifnet *ifp, struct mbuf **mp, - struct sockaddr *sockp, int *hdrlen, struct bpf_insn *wfilter) + struct sockaddr *sockp, int *hdrlen, struct bpf_d *d) { const struct ieee80211_bpf_params *p; struct ether_header *eh; @@ -549,7 +551,7 @@ bpf_movein(struct uio *uio, int linktype if (error) goto bad; - slen = bpf_filter(wfilter, mtod(m, u_char *), len, len); + slen = bpf_filter(d->bd_wfilter, mtod(m, u_char *), len, len); if (slen == 0) { error = EPERM; goto bad; @@ -566,6 +568,10 @@ bpf_movein(struct uio *uio, int linktype else m->m_flags |= M_MCAST; } + if (d->bd_hdrcmplt == 0) { + memcpy(eh->ether_shost, IF_LLADDR(ifp), + sizeof(eh->ether_shost)); + } break; } @@ -1088,6 +1094,7 @@ bpfwrite(struct cdev *dev, struct uio *u struct ifnet *ifp; struct mbuf *m, *mc; struct sockaddr dst; + struct route ro; int error, hlen; error = devfs_get_cdevpriv((void **)&d); @@ -1119,7 +1126,7 @@ bpfwrite(struct cdev *dev, struct uio *u hlen = 0; /* XXX: bpf_movein() can sleep */ error = bpf_movein(uio, (int)d->bd_bif->bif_dlt, ifp, - &m, &dst, &hlen, d->bd_wfilter); + &m, &dst, &hlen, d); if (error) { d->bd_wdcount++; return (error); @@ -1151,7 +1158,14 @@ bpfwrite(struct cdev *dev, struct uio *u BPFD_UNLOCK(d); #endif - error = (*ifp->if_output)(ifp, m, &dst, NULL); + bzero(&ro, sizeof(ro)); + if (hlen != 0) { + ro.ro_prepend = (u_char *)&dst.sa_data; + ro.ro_plen = hlen; + ro.ro_flags = RT_HAS_HEADER; + } + + error = (*ifp->if_output)(ifp, m, &dst, &ro); if (error) d->bd_wdcount++; Modified: head/sys/net/flowtable.c ============================================================================== --- head/sys/net/flowtable.c Thu Dec 31 04:14:05 2015 (r292977) +++ head/sys/net/flowtable.c Thu Dec 31 05:03:27 2015 (r292978) @@ -665,6 +665,7 @@ int flowtable_lookup(sa_family_t sa, struct mbuf *m, struct route *ro) { struct flentry *fle; + struct llentry *lle; if (V_flowtable_enable == 0) return (ENXIO); @@ -693,8 +694,15 @@ flowtable_lookup(sa_family_t sa, struct } ro->ro_rt = fle->f_rt; - ro->ro_lle = fle->f_lle; ro->ro_flags |= RT_NORTREF; + lle = fle->f_lle; + if (lle != NULL && (lle->la_flags & LLE_VALID)) { + ro->ro_prepend = lle->r_linkdata; + ro->ro_plen = lle->r_hdrlen; + ro->ro_flags |= RT_MAY_LOOP; + if (lle->la_flags & LLE_IFADDR) + ro->ro_flags |= RT_L2_ME; + } return (0); } Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Thu Dec 31 04:14:05 2015 (r292977) +++ head/sys/net/if.c Thu Dec 31 05:03:27 2015 (r292978) @@ -161,6 +161,7 @@ static int ifconf(u_long, caddr_t); static void if_freemulti(struct ifmultiaddr *); static void if_grow(void); static void if_input_default(struct ifnet *, struct mbuf *); +static int if_requestencap_default(struct ifnet *, struct if_encap_req *); static void if_route(struct ifnet *, int flag, int fam); static int if_setflag(struct ifnet *, int, int, int *, int); static int if_transmit(struct ifnet *ifp, struct mbuf *m); @@ -673,6 +674,9 @@ if_attach_internal(struct ifnet *ifp, in if (ifp->if_input == NULL) ifp->if_input = if_input_default; + if (ifp->if_requestencap == NULL) + ifp->if_requestencap = if_requestencap_default; + if (!vmove) { #ifdef MAC mac_ifnet_create(ifp); @@ -3398,6 +3402,43 @@ if_setlladdr(struct ifnet *ifp, const u_ } /* + * Compat function for handling basic encapsulation requests. + * Not converted stacks (FDDI, IB, ..) supports traditional + * output model: ARP (and other similar L2 protocols) are handled + * inside output routine, arpresolve/nd6_resolve() returns MAC + * address instead of full prepend. + * + * This function creates calculated header==MAC for IPv4/IPv6 and + * returns EAFNOSUPPORT (which is then handled in ARP code) for other + * address families. + */ +static int +if_requestencap_default(struct ifnet *ifp, struct if_encap_req *req) +{ + + if (req->rtype != IFENCAP_LL) + return (EOPNOTSUPP); + + if (req->bufsize < req->lladdr_len) + return (ENOMEM); + + switch (req->family) { + case AF_INET: + case AF_INET6: + break; + default: + return (EAFNOSUPPORT); + } + + /* Copy lladdr to storage as is */ + memmove(req->buf, req->lladdr, req->lladdr_len); + req->bufsize = req->lladdr_len; + req->lladdr_off = 0; + + return (0); +} + +/* * The name argument must be a pointer to storage which will last as * long as the interface does. For physical devices, the result of * device_get_name(dev) is a good choice and for pseudo-devices a Modified: head/sys/net/if_ethersubr.c ============================================================================== --- head/sys/net/if_ethersubr.c Thu Dec 31 04:14:05 2015 (r292977) +++ head/sys/net/if_ethersubr.c Thu Dec 31 05:03:27 2015 (r292978) @@ -113,6 +113,7 @@ static int ether_resolvemulti(struct ifn #ifdef VIMAGE static void ether_reassign(struct ifnet *, struct vnet *, char *); #endif +static int ether_requestencap(struct ifnet *, struct if_encap_req *); #define ETHER_IS_BROADCAST(addr) \ (bcmp(etherbroadcastaddr, (addr), ETHER_ADDR_LEN) == 0) @@ -136,6 +137,138 @@ update_mbuf_csumflags(struct mbuf *src, } /* + * Handle link-layer encapsulation requests. + */ +static int +ether_requestencap(struct ifnet *ifp, struct if_encap_req *req) +{ + struct ether_header *eh; + struct arphdr *ah; + uint16_t etype; + const u_char *lladdr; + + if (req->rtype != IFENCAP_LL) + return (EOPNOTSUPP); + + if (req->bufsize < ETHER_HDR_LEN) + return (ENOMEM); + + eh = (struct ether_header *)req->buf; + lladdr = req->lladdr; + req->lladdr_off = 0; + + switch (req->family) { + case AF_INET: + etype = htons(ETHERTYPE_IP); + break; + case AF_INET6: + etype = htons(ETHERTYPE_IPV6); + break; + case AF_ARP: + ah = (struct arphdr *)req->hdata; + ah->ar_hrd = htons(ARPHRD_ETHER); + + switch(ntohs(ah->ar_op)) { + case ARPOP_REVREQUEST: + case ARPOP_REVREPLY: + etype = htons(ETHERTYPE_REVARP); + break; + case ARPOP_REQUEST: + case ARPOP_REPLY: + default: + etype = htons(ETHERTYPE_ARP); + break; + } + + if (req->flags & IFENCAP_FLAG_BROADCAST) + lladdr = ifp->if_broadcastaddr; + break; + default: + return (EAFNOSUPPORT); + } + + memcpy(&eh->ether_type, &etype, sizeof(eh->ether_type)); + memcpy(eh->ether_dhost, lladdr, ETHER_ADDR_LEN); + memcpy(eh->ether_shost, IF_LLADDR(ifp), ETHER_ADDR_LEN); + req->bufsize = sizeof(struct ether_header); + + return (0); +} + + +static int +ether_resolve_addr(struct ifnet *ifp, struct mbuf *m, + const struct sockaddr *dst, struct route *ro, u_char *phdr, + uint32_t *pflags) +{ + struct ether_header *eh; + struct rtentry *rt; + uint32_t lleflags = 0; + int error = 0; +#if defined(INET) || defined(INET6) + uint16_t etype; +#endif + + eh = (struct ether_header *)phdr; + + switch (dst->sa_family) { +#ifdef INET + case AF_INET: + if ((m->m_flags & (M_BCAST | M_MCAST)) == 0) + error = arpresolve(ifp, 0, m, dst, phdr, &lleflags); + else { + if (m->m_flags & M_BCAST) + memcpy(eh->ether_dhost, ifp->if_broadcastaddr, + ETHER_ADDR_LEN); + else { + const struct in_addr *a; + a = &(((const struct sockaddr_in *)dst)->sin_addr); + ETHER_MAP_IP_MULTICAST(a, eh->ether_dhost); + } + etype = htons(ETHERTYPE_IP); + memcpy(&eh->ether_type, &etype, sizeof(etype)); + memcpy(eh->ether_shost, IF_LLADDR(ifp), ETHER_ADDR_LEN); + } + break; +#endif +#ifdef INET6 + case AF_INET6: + if ((m->m_flags & M_MCAST) == 0) + error = nd6_resolve(ifp, 0, m, dst, phdr, &lleflags); + else { + const struct in6_addr *a6; + a6 = &(((const struct sockaddr_in6 *)dst)->sin6_addr); + ETHER_MAP_IPV6_MULTICAST(a6, eh->ether_dhost); + etype = htons(ETHERTYPE_IPV6); + memcpy(&eh->ether_type, &etype, sizeof(etype)); + memcpy(eh->ether_shost, IF_LLADDR(ifp), ETHER_ADDR_LEN); + } + break; +#endif + default: + if_printf(ifp, "can't handle af%d\n", dst->sa_family); + if (m != NULL) + m_freem(m); + return (EAFNOSUPPORT); + } + + if (error == EHOSTDOWN) { + rt = (ro != NULL) ? ro->ro_rt : NULL; + if (rt != NULL && (rt->rt_flags & RTF_GATEWAY) != 0) + error = EHOSTUNREACH; + } + + if (error != 0) + return (error); + + *pflags = RT_MAY_LOOP; + if (lleflags & LLE_IFADDR) + *pflags |= RT_L2_ME; + + return (0); +} + +/* * Ethernet output routine. * Encapsulate a packet of type family for the local net. * Use trailer local net encapsulation if enough data in first @@ -145,27 +278,20 @@ int ether_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, struct route *ro) { - short type; - int error = 0, hdrcmplt = 0; - u_char edst[ETHER_ADDR_LEN]; - struct llentry *lle = NULL; - struct rtentry *rt0 = NULL; + int error = 0; + char linkhdr[ETHER_HDR_LEN], *phdr; struct ether_header *eh; struct pf_mtag *t; int loop_copy = 1; int hlen; /* link layer header length */ - int is_gw = 0; - uint32_t pflags = 0; + uint32_t pflags; + phdr = NULL; + pflags = 0; if (ro != NULL) { - if (!(m->m_flags & (M_BCAST | M_MCAST))) { - lle = ro->ro_lle; - if (lle != NULL) - pflags = lle->la_flags; - } - rt0 = ro->ro_rt; - if (rt0 != NULL && (rt0->rt_flags & RTF_GATEWAY) != 0) - is_gw = 1; + phdr = ro->ro_prepend; + hlen = ro->ro_plen; + pflags = ro->ro_flags; } #ifdef MAC error = mac_ifnet_check_transmit(ifp, m); @@ -180,94 +306,31 @@ ether_output(struct ifnet *ifp, struct m (ifp->if_drv_flags & IFF_DRV_RUNNING))) senderr(ENETDOWN); - hlen = ETHER_HDR_LEN; - switch (dst->sa_family) { -#ifdef INET - case AF_INET: - if (lle != NULL && (pflags & LLE_VALID) != 0) - memcpy(edst, &lle->ll_addr.mac16, sizeof(edst)); - else - error = arpresolve(ifp, is_gw, m, dst, edst, &pflags); - if (error) + if (phdr == NULL) { + /* No prepend data supplied. Try to calculate ourselves. */ + phdr = linkhdr; + hlen = ETHER_HDR_LEN; + error = ether_resolve_addr(ifp, m, dst, ro, phdr, &pflags); + if (error != 0) return (error == EWOULDBLOCK ? 0 : error); - type = htons(ETHERTYPE_IP); - break; - case AF_ARP: - { - struct arphdr *ah; - ah = mtod(m, struct arphdr *); - ah->ar_hrd = htons(ARPHRD_ETHER); - - loop_copy = 0; /* if this is for us, don't do it */ - - switch(ntohs(ah->ar_op)) { - case ARPOP_REVREQUEST: - case ARPOP_REVREPLY: - type = htons(ETHERTYPE_REVARP); - break; - case ARPOP_REQUEST: - case ARPOP_REPLY: - default: - type = htons(ETHERTYPE_ARP); - break; - } - - if (m->m_flags & M_BCAST) - bcopy(ifp->if_broadcastaddr, edst, ETHER_ADDR_LEN); - else - bcopy(ar_tha(ah), edst, ETHER_ADDR_LEN); - - } - break; -#endif -#ifdef INET6 - case AF_INET6: - if (lle != NULL && (pflags & LLE_VALID)) - memcpy(edst, &lle->ll_addr.mac16, sizeof(edst)); - else - error = nd6_resolve(ifp, is_gw, m, dst, (u_char *)edst, - &pflags); - if (error) - return (error == EWOULDBLOCK ? 0 : error); - type = htons(ETHERTYPE_IPV6); - break; -#endif - case pseudo_AF_HDRCMPLT: - { - const struct ether_header *eh; - - hdrcmplt = 1; - /* FALLTHROUGH */ - - case AF_UNSPEC: - loop_copy = 0; /* if this is for us, don't do it */ - eh = (const struct ether_header *)dst->sa_data; - (void)memcpy(edst, eh->ether_dhost, sizeof (edst)); - type = eh->ether_type; - break; - } - default: - if_printf(ifp, "can't handle af%d\n", dst->sa_family); - senderr(EAFNOSUPPORT); } - if ((pflags & LLE_IFADDR) != 0) { + if ((pflags & RT_L2_ME) != 0) { update_mbuf_csumflags(m, m); return (if_simloop(ifp, m, dst->sa_family, 0)); } + loop_copy = pflags & RT_MAY_LOOP; /* * Add local net header. If no space in first mbuf, * allocate another. */ - M_PREPEND(m, ETHER_HDR_LEN, M_NOWAIT); + M_PREPEND(m, hlen, M_NOWAIT); if (m == NULL) senderr(ENOBUFS); - eh = mtod(m, struct ether_header *); - if (hdrcmplt == 0) { - memcpy(&eh->ether_type, &type, sizeof(eh->ether_type)); - memcpy(eh->ether_dhost, edst, sizeof (edst)); - memcpy(eh->ether_shost, IF_LLADDR(ifp),sizeof(eh->ether_shost)); + if ((pflags & RT_HAS_HEADER) == 0) { + eh = mtod(m, struct ether_header *); + memcpy(eh, phdr, hlen); } /* @@ -279,34 +342,27 @@ ether_output(struct ifnet *ifp, struct m * on the wire). However, we don't do that here for security * reasons and compatibility with the original behavior. */ - if ((ifp->if_flags & IFF_SIMPLEX) && loop_copy && + if ((m->m_flags & M_BCAST) && loop_copy && (ifp->if_flags & IFF_SIMPLEX) && ((t = pf_find_mtag(m)) == NULL || !t->routed)) { - if (m->m_flags & M_BCAST) { - struct mbuf *n; + struct mbuf *n; - /* - * Because if_simloop() modifies the packet, we need a - * writable copy through m_dup() instead of a readonly - * one as m_copy[m] would give us. The alternative would - * be to modify if_simloop() to handle the readonly mbuf, - * but performancewise it is mostly equivalent (trading - * extra data copying vs. extra locking). - * - * XXX This is a local workaround. A number of less - * often used kernel parts suffer from the same bug. - * See PR kern/105943 for a proposed general solution. - */ - if ((n = m_dup(m, M_NOWAIT)) != NULL) { - update_mbuf_csumflags(m, n); - (void)if_simloop(ifp, n, dst->sa_family, hlen); - } else - if_inc_counter(ifp, IFCOUNTER_IQDROPS, 1); - } else if (bcmp(eh->ether_dhost, eh->ether_shost, - ETHER_ADDR_LEN) == 0) { - update_mbuf_csumflags(m, m); - (void) if_simloop(ifp, m, dst->sa_family, hlen); - return (0); /* XXX */ - } + /* + * Because if_simloop() modifies the packet, we need a + * writable copy through m_dup() instead of a readonly + * one as m_copy[m] would give us. The alternative would + * be to modify if_simloop() to handle the readonly mbuf, + * but performancewise it is mostly equivalent (trading + * extra data copying vs. extra locking). + * + * XXX This is a local workaround. A number of less + * often used kernel parts suffer from the same bug. + * See PR kern/105943 for a proposed general solution. + */ + if ((n = m_dup(m, M_NOWAIT)) != NULL) { + update_mbuf_csumflags(m, n); + (void)if_simloop(ifp, n, dst->sa_family, hlen); + } else + if_inc_counter(ifp, IFCOUNTER_IQDROPS, 1); } /* @@ -798,6 +854,7 @@ ether_ifattach(struct ifnet *ifp, const ifp->if_output = ether_output; ifp->if_input = ether_input; ifp->if_resolvemulti = ether_resolvemulti; + ifp->if_requestencap = ether_requestencap; #ifdef VIMAGE ifp->if_reassign = ether_reassign; #endif Modified: head/sys/net/if_llatbl.c ============================================================================== --- head/sys/net/if_llatbl.c Thu Dec 31 04:14:05 2015 (r292977) +++ head/sys/net/if_llatbl.c Thu Dec 31 05:03:27 2015 (r292978) @@ -278,10 +278,12 @@ lltable_drop_entry_queue(struct llentry void lltable_set_entry_addr(struct ifnet *ifp, struct llentry *lle, - const char *lladdr) + const char *linkhdr, size_t linkhdrsize, int lladdr_off) { - bcopy(lladdr, &lle->ll_addr, ifp->if_addrlen); + memcpy(lle->r_linkdata, linkhdr, linkhdrsize); + lle->r_hdrlen = linkhdrsize; + lle->ll_addr = &lle->r_linkdata[lladdr_off]; lle->la_flags |= LLE_VALID; lle->r_flags |= RLLE_VALID; } @@ -296,7 +298,7 @@ lltable_set_entry_addr(struct ifnet *ifp */ int lltable_try_set_entry_addr(struct ifnet *ifp, struct llentry *lle, - const char *lladdr) + const char *linkhdr, size_t linkhdrsize, int lladdr_off) { /* Perform real LLE update */ @@ -318,7 +320,7 @@ lltable_try_set_entry_addr(struct ifnet } /* Update data */ - lltable_set_entry_addr(ifp, lle, lladdr); + lltable_set_entry_addr(ifp, lle, linkhdr, linkhdrsize, lladdr_off); IF_AFDATA_WUNLOCK(ifp); @@ -327,6 +329,84 @@ lltable_try_set_entry_addr(struct ifnet return (1); } + /* + * Helper function used to pre-compute full/partial link-layer + * header data suitable for feeding into if_output(). + */ +int +lltable_calc_llheader(struct ifnet *ifp, int family, char *lladdr, + char *buf, size_t *bufsize, int *lladdr_off) +{ + struct if_encap_req ereq; + int error; + + bzero(buf, *bufsize); + bzero(&ereq, sizeof(ereq)); + ereq.buf = buf; + ereq.bufsize = *bufsize; + ereq.rtype = IFENCAP_LL; + ereq.family = family; + ereq.lladdr = lladdr; + ereq.lladdr_len = ifp->if_addrlen; + error = ifp->if_requestencap(ifp, &ereq); + if (error == 0) { + *bufsize = ereq.bufsize; + *lladdr_off = ereq.lladdr_off; + } + + return (error); +} + +/* + * Update link-layer header for given @lle after + * interface lladdr was changed. + */ +static int +llentry_update_ifaddr(struct lltable *llt, struct llentry *lle, void *farg) +{ + struct ifnet *ifp; + u_char linkhdr[LLE_MAX_LINKHDR]; + size_t linkhdrsize; + u_char *lladdr; + int lladdr_off; + + ifp = (struct ifnet *)farg; + + lladdr = lle->ll_addr; + + LLE_WLOCK(lle); + if ((lle->la_flags & LLE_VALID) == 0) { + LLE_WUNLOCK(lle); + return (0); + } + + if ((lle->la_flags & LLE_IFADDR) != 0) + lladdr = IF_LLADDR(ifp); + + linkhdrsize = sizeof(linkhdr); + lltable_calc_llheader(ifp, llt->llt_af, lladdr, linkhdr, &linkhdrsize, + &lladdr_off); + memcpy(lle->r_linkdata, linkhdr, linkhdrsize); + LLE_WUNLOCK(lle); + + return (0); +} + +/* + * Update all calculated headers for given @llt + */ +void +lltable_update_ifaddr(struct lltable *llt) +{ + + if (llt->llt_ifp->if_flags & IFF_LOOPBACK) + return; + + IF_AFDATA_WLOCK(llt->llt_ifp); + lltable_foreach_lle(llt, llentry_update_ifaddr, llt->llt_ifp); + IF_AFDATA_WUNLOCK(llt->llt_ifp); +} + /* * * Performes generic cleanup routines and frees lle. @@ -642,6 +722,9 @@ lla_rt_output(struct rt_msghdr *rtm, str struct ifnet *ifp; struct lltable *llt; struct llentry *lle, *lle_tmp; + uint8_t linkhdr[LLE_MAX_LINKHDR]; + size_t linkhdrsize; + int lladdr_off; u_int laflags = 0; int error; @@ -677,11 +760,14 @@ lla_rt_output(struct rt_msghdr *rtm, str if (lle == NULL) return (ENOMEM); - bcopy(LLADDR(dl), &lle->ll_addr, ifp->if_addrlen); + linkhdrsize = sizeof(linkhdr); + if (lltable_calc_llheader(ifp, dst->sa_family, LLADDR(dl), + linkhdr, &linkhdrsize, &lladdr_off) != 0) + return (EINVAL); + lltable_set_entry_addr(ifp, lle, linkhdr, linkhdrsize, + lladdr_off); if ((rtm->rtm_flags & RTF_ANNOUNCE)) lle->la_flags |= LLE_PUB; - lle->la_flags |= LLE_VALID; - lle->r_flags |= RLLE_VALID; lle->la_expire = rtm->rtm_rmx.rmx_expire; laflags = lle->la_flags; @@ -767,7 +853,7 @@ llatbl_lle_show(struct llentry_sa *la) db_printf(" ln_router=%u\n", lle->ln_router); db_printf(" ln_ntick=%ju\n", (uintmax_t)lle->ln_ntick); db_printf(" lle_refcnt=%d\n", lle->lle_refcnt); - bcopy(&lle->ll_addr.mac16, octet, sizeof(octet)); + bcopy(lle->ll_addr, octet, sizeof(octet)); db_printf(" ll_addr=%02x:%02x:%02x:%02x:%02x:%02x\n", octet[0], octet[1], octet[2], octet[3], octet[4], octet[5]); db_printf(" lle_timer=%p\n", &lle->lle_timer); Modified: head/sys/net/if_llatbl.h ============================================================================== --- head/sys/net/if_llatbl.h Thu Dec 31 04:14:05 2015 (r292977) +++ head/sys/net/if_llatbl.h Thu Dec 31 05:03:27 2015 (r292978) @@ -48,6 +48,7 @@ extern struct rwlock lltable_rwlock; #define LLTABLE_WUNLOCK() rw_wunlock(&lltable_rwlock) #define LLTABLE_LOCK_ASSERT() rw_assert(&lltable_rwlock, RA_LOCKED) +#define LLE_MAX_LINKHDR 24 /* Full IB header */ /* * Code referencing llentry must at least hold * a shared lock @@ -58,14 +59,11 @@ struct llentry { struct in_addr addr4; struct in6_addr addr6; } r_l3addr; - union { - uint64_t mac_aligned; - uint16_t mac16[3]; - uint8_t mac8[20]; /* IB needs 20 bytes. */ - } ll_addr; + char r_linkdata[LLE_MAX_LINKHDR]; /* L2 data */ + uint8_t r_hdrlen; /* length for LL header */ + uint8_t spare0[3]; uint16_t r_flags; /* LLE runtime flags */ uint16_t r_skip_req; /* feedback from fast path */ - uint64_t spare1; struct lltable *lle_tbl; struct llentries *lle_head; @@ -82,6 +80,7 @@ struct llentry { time_t lle_remtime; /* Real time remaining */ time_t lle_hittime; /* Time when r_skip_req was unset */ int lle_refcnt; + char *ll_addr; /* link-layer address */ LIST_ENTRY(llentry) lle_chain; /* chain of deleted items */ struct callout lle_timer; @@ -198,6 +197,8 @@ MALLOC_DECLARE(M_LLTABLE); /* LLE request flags */ #define LLE_EXCLUSIVE 0x2000 /* return lle xlocked */ #define LLE_UNLOCKED 0x4000 /* return lle unlocked */ +#define LLE_ADDRONLY 0x4000 /* return lladdr instead of full header */ +#define LLE_CREATE 0x8000 /* hint to avoid lle lookup */ /* LLE flags used by fastpath code */ #define RLLE_VALID 0x0001 /* entry is valid */ @@ -223,10 +224,13 @@ struct llentry *llentry_alloc(struct if /* helper functions */ size_t lltable_drop_entry_queue(struct llentry *); void lltable_set_entry_addr(struct ifnet *ifp, struct llentry *lle, - const char *lladdr); + const char *linkhdr, size_t linkhdrsize, int lladdr_off); int lltable_try_set_entry_addr(struct ifnet *ifp, struct llentry *lle, - const char *lladdr); + const char *linkhdr, size_t linkhdrsize, int lladdr_off); +int lltable_calc_llheader(struct ifnet *ifp, int family, char *lladdr, + char *buf, size_t *bufsize, int *lladdr_off); +void lltable_update_ifaddr(struct lltable *llt); struct llentry *lltable_alloc_entry(struct lltable *llt, u_int flags, const struct sockaddr *l4addr); void lltable_free_entry(struct lltable *llt, struct llentry *lle); Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Thu Dec 31 04:14:05 2015 (r292977) +++ head/sys/net/if_var.h Thu Dec 31 05:03:27 2015 (r292978) @@ -134,6 +134,48 @@ struct ifnet_hw_tsomax { u_int tsomaxsegsize; /* TSO maximum segment size in bytes */ }; +/* Interface encap request types */ +typedef enum { + IFENCAP_LL = 1 /* pre-calculate link-layer header */ +} ife_type; + +/* + * The structure below allows to request various pre-calculated L2/L3 headers + * for different media. Requests varies by type (rtype field). + * + * IFENCAP_LL type: pre-calculates link header based on address family + * and destination lladdr. + * + * Input data fields: + * buf: pointer to destination buffer + * bufsize: buffer size + * flags: IFENCAP_FLAG_BROADCAST if destination is broadcast + * family: address family defined by AF_ constant. + * lladdr: pointer to link-layer address + * lladdr_len: length of link-layer address + * hdata: pointer to L3 header (optional, used for ARP requests). + * Output data fields: + * buf: encap data is stored here + * bufsize: resulting encap length is stored here + * lladdr_off: offset of link-layer address from encap hdr start + * hdata: L3 header may be altered if necessary + */ + +struct if_encap_req { + u_char *buf; /* Destination buffer (w) */ + size_t bufsize; /* size of provided buffer (r) */ + ife_type rtype; /* request type (r) */ + uint32_t flags; /* Request flags (r) */ + int family; /* Address family AF_* (r) */ + int lladdr_off; /* offset from header start (w) */ + int lladdr_len; /* lladdr length (r) */ + char *lladdr; /* link-level address pointer (r) */ + char *hdata; /* Upper layer header data (rw) */ +}; + +#define IFENCAP_FLAG_BROADCAST 0x02 /* Destination is broadcast */ + + /* * Structure defining a network interface. * @@ -235,6 +277,8 @@ struct ifnet { void (*if_reassign) /* reassign to vnet routine */ (struct ifnet *, struct vnet *, char *); if_get_counter_t if_get_counter; /* get counter values */ + int (*if_requestencap) /* make link header from request */ + (struct ifnet *, struct if_encap_req *); /* Statistics. */ counter_u64_t if_counters[IFCOUNTERS]; Modified: head/sys/net/route.h ============================================================================== --- head/sys/net/route.h Thu Dec 31 04:14:05 2015 (r292977) +++ head/sys/net/route.h Thu Dec 31 05:03:27 2015 (r292978) @@ -51,14 +51,21 @@ */ struct route { struct rtentry *ro_rt; - struct llentry *ro_lle; - struct in_ifaddr *ro_ia; - int ro_flags; + char *ro_prepend; + uint16_t ro_plen; + uint16_t ro_flags; struct sockaddr ro_dst; }; +#define RT_L2_ME_BIT 2 /* dst L2 addr is our address */ +#define RT_MAY_LOOP_BIT 3 /* dst may require loop copy */ +#define RT_HAS_HEADER_BIT 4 /* mbuf already have its header prepended */ + #define RT_CACHING_CONTEXT 0x1 /* XXX: not used anywhere */ #define RT_NORTREF 0x2 /* doesn't hold reference on ro_rt */ +#define RT_L2_ME (1 << RT_L2_ME_BIT) +#define RT_MAY_LOOP (1 << RT_MAY_LOOP_BIT) +#define RT_HAS_HEADER (1 << RT_HAS_HEADER_BIT) struct rt_metrics { u_long rmx_locks; /* Kernel must leave these values alone */ Modified: head/sys/netinet/if_ether.c ============================================================================== --- head/sys/netinet/if_ether.c Thu Dec 31 04:14:05 2015 (r292977) +++ head/sys/netinet/if_ether.c Thu Dec 31 05:03:27 2015 (r292978) @@ -282,6 +282,37 @@ arptimer(void *arg) } /* + * Stores link-layer header for @ifp in format suitable for if_output() + * into buffer @buf. Resulting header length is stored in @bufsize. + * + * Returns 0 on success. + */ +static int +arp_fillheader(struct ifnet *ifp, struct arphdr *ah, int bcast, u_char *buf, + size_t *bufsize) +{ + struct if_encap_req ereq; + int error; + + bzero(buf, *bufsize); + bzero(&ereq, sizeof(ereq)); + ereq.buf = buf; + ereq.bufsize = *bufsize; + ereq.rtype = IFENCAP_LL; + ereq.family = AF_ARP; + ereq.lladdr = ar_tha(ah); + ereq.hdata = (u_char *)ah; + if (bcast) + ereq.flags = IFENCAP_FLAG_BROADCAST; + error = ifp->if_requestencap(ifp, &ereq); + if (error == 0) + *bufsize = ereq.bufsize; + + return (error); +} + + +/* * Broadcast an ARP request. Caller specifies: * - arp header source ip address * - arp header target ip address @@ -295,6 +326,10 @@ arprequest(struct ifnet *ifp, const stru struct arphdr *ah; struct sockaddr sa; u_char *carpaddr = NULL; + uint8_t linkhdr[LLE_MAX_LINKHDR]; + size_t linkhdrsize; + struct route ro; + int error; if (sip == NULL) { /* @@ -350,12 +385,28 @@ arprequest(struct ifnet *ifp, const stru bcopy(tip, ar_tpa(ah), ah->ar_pln); sa.sa_family = AF_ARP; sa.sa_len = 2; + + /* Calculate link header for sending frame */ + bzero(&ro, sizeof(ro)); + linkhdrsize = sizeof(linkhdr); + error = arp_fillheader(ifp, ah, 1, linkhdr, &linkhdrsize); + if (error != 0 && error != EAFNOSUPPORT) { + ARP_LOG(LOG_ERR, "Failed to calculate ARP header on %s: %d\n", + if_name(ifp), error); + return; + } + + ro.ro_prepend = linkhdr; + ro.ro_plen = linkhdrsize; + ro.ro_flags = 0; + m->m_flags |= M_BCAST; m_clrprotoflags(m); /* Avoid confusing lower layers. */ - (*ifp->if_output)(ifp, m, &sa, NULL); + (*ifp->if_output)(ifp, m, &sa, &ro); ARPSTAT_INC(txrequests); } + /* * Resolve an IP address into an ethernet address - heavy version. * Used internally by arpresolve(). @@ -368,18 +419,20 @@ arprequest(struct ifnet *ifp, const stru * Note that m_freem() handles NULL. */ static int -arpresolve_full(struct ifnet *ifp, int is_gw, int create, struct mbuf *m, +arpresolve_full(struct ifnet *ifp, int is_gw, int flags, struct mbuf *m, const struct sockaddr *dst, u_char *desten, uint32_t *pflags) { struct llentry *la = NULL, *la_tmp; struct mbuf *curr = NULL; struct mbuf *next = NULL; int error, renew; + char *lladdr; + int ll_len; if (pflags != NULL) *pflags = 0; - if (create == 0) { + if ((flags & LLE_CREATE) == 0) { IF_AFDATA_RLOCK(ifp); la = lla_lookup(LLTABLE(ifp), LLE_EXCLUSIVE, dst); IF_AFDATA_RUNLOCK(ifp); @@ -413,7 +466,14 @@ arpresolve_full(struct ifnet *ifp, int i if ((la->la_flags & LLE_VALID) && ((la->la_flags & LLE_STATIC) || la->la_expire > time_uptime)) { - bcopy(&la->ll_addr, desten, ifp->if_addrlen); + if (flags & LLE_ADDRONLY) { + lladdr = la->ll_addr; + ll_len = ifp->if_addrlen; + } else { + lladdr = la->r_linkdata; + ll_len = la->r_hdrlen; + } + bcopy(lladdr, desten, ll_len); /* Check if we have feedback request from arptimer() */ if (la->r_skip_req != 0) { @@ -485,15 +545,31 @@ arpresolve_full(struct ifnet *ifp, int i /* * Resolve an IP address into an ethernet address. + */ +int +arpresolve_addr(struct ifnet *ifp, int flags, const struct sockaddr *dst, + char *desten, uint32_t *pflags) +{ + int error; + + flags |= LLE_ADDRONLY; + error = arpresolve_full(ifp, 0, flags, NULL, dst, desten, pflags); + return (error); +} + + +/* + * Lookups link header based on an IP address. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Dec 31 06:01:08 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 701B2A56D36; Thu, 31 Dec 2015 06:01:08 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3BD161A69; Thu, 31 Dec 2015 06:01:08 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV617ci078030; Thu, 31 Dec 2015 06:01:07 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV6173E078029; Thu, 31 Dec 2015 06:01:07 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201512310601.tBV6173E078029@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Thu, 31 Dec 2015 06:01:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292979 - stable/10/sys/contrib/ipfilter/netinet X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 06:01:08 -0000 Author: cy Date: Thu Dec 31 06:01:07 2015 New Revision: 292979 URL: https://svnweb.freebsd.org/changeset/base/292979 Log: MFC r292813. Correct __FreeBSD__ check. Modified: stable/10/sys/contrib/ipfilter/netinet/ip_nat.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/contrib/ipfilter/netinet/ip_nat.c ============================================================================== --- stable/10/sys/contrib/ipfilter/netinet/ip_nat.c Thu Dec 31 05:03:27 2015 (r292978) +++ stable/10/sys/contrib/ipfilter/netinet/ip_nat.c Thu Dec 31 06:01:07 2015 (r292979) @@ -5235,7 +5235,7 @@ ipf_nat_out(fin, nat, natadd, nflags) uh->uh_ulen += fin->fin_plen; uh->uh_ulen = htons(uh->uh_ulen); #if !defined(_KERNEL) || defined(MENTAT) || defined(__sgi) || \ - defined(linux) || defined(BRIDGE_IPF) || defined(__FreeBSD) + defined(linux) || defined(BRIDGE_IPF) || defined(__FreeBSD__) ipf_fix_outcksum(0, &ip->ip_sum, sumd, 0); #endif From owner-svn-src-all@freebsd.org Thu Dec 31 07:03:42 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BAA11A57C99; Thu, 31 Dec 2015 07:03:42 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8836113CC; Thu, 31 Dec 2015 07:03:42 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV73fnh096125; Thu, 31 Dec 2015 07:03:41 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV73fqr096124; Thu, 31 Dec 2015 07:03:41 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201512310703.tBV73fqr096124@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Thu, 31 Dec 2015 07:03:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292980 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 07:03:42 -0000 Author: araujo Date: Thu Dec 31 07:03:41 2015 New Revision: 292980 URL: https://svnweb.freebsd.org/changeset/base/292980 Log: Clean up unused-but-set-variable spotted by gcc4.9. Reviewed by: ngie Approved by: rodrigc (mentor) Differential Revision: https://reviews.freebsd.org/D4719 Modified: head/sys/net/if_gif.c Modified: head/sys/net/if_gif.c ============================================================================== --- head/sys/net/if_gif.c Thu Dec 31 06:01:07 2015 (r292979) +++ head/sys/net/if_gif.c Thu Dec 31 07:03:41 2015 (r292980) @@ -529,7 +529,6 @@ gif_input(struct mbuf *m, struct ifnet * struct gif_softc *sc; struct ether_header *eh; struct ifnet *oldifp; - uint32_t gif_options; int isr, n, af; if (ifp == NULL) { @@ -538,7 +537,6 @@ gif_input(struct mbuf *m, struct ifnet * return; } sc = ifp->if_softc; - gif_options = sc->gif_options; m->m_pkthdr.rcvif = ifp; m_clrprotoflags(m); switch (proto) { From owner-svn-src-all@freebsd.org Thu Dec 31 07:08:23 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3677FA57E26; Thu, 31 Dec 2015 07:08:23 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F3E801635; Thu, 31 Dec 2015 07:08:22 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBV78MKr096315; Thu, 31 Dec 2015 07:08:22 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBV78MCR096314; Thu, 31 Dec 2015 07:08:22 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201512310708.tBV78MCR096314@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Thu, 31 Dec 2015 07:08:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292981 - head/usr.sbin/bhyve X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 07:08:23 -0000 Author: araujo Date: Thu Dec 31 07:08:21 2015 New Revision: 292981 URL: https://svnweb.freebsd.org/changeset/base/292981 Log: Clean up unused-but-set-variable spotted by gcc-4.9. Reviewed by: grehan Approved by: rodrigc (mentor) Differential Revision: https://reviews.freebsd.org/D4734 Modified: head/usr.sbin/bhyve/bhyverun.c Modified: head/usr.sbin/bhyve/bhyverun.c ============================================================================== --- head/usr.sbin/bhyve/bhyverun.c Thu Dec 31 07:03:41 2015 (r292980) +++ head/usr.sbin/bhyve/bhyverun.c Thu Dec 31 07:08:21 2015 (r292981) @@ -310,14 +310,13 @@ static int vmexit_inout(struct vmctx *ctx, struct vm_exit *vme, int *pvcpu) { int error; - int bytes, port, in, out, string; + int bytes, port, in, out; int vcpu; vcpu = *pvcpu; port = vme->u.inout.port; bytes = vme->u.inout.bytes; - string = vme->u.inout.string; in = vme->u.inout.in; out = !in; @@ -620,8 +619,6 @@ vm_loop(struct vmctx *ctx, int vcpu, uin if (error != 0) break; - prevcpu = vcpu; - exitcode = vmexit[vcpu].exitcode; if (exitcode >= VM_EXITCODE_MAX || handler[exitcode] == NULL) { fprintf(stderr, "vm_loop: unexpected exitcode 0x%x\n", @@ -629,7 +626,7 @@ vm_loop(struct vmctx *ctx, int vcpu, uin exit(1); } - rc = (*handler[exitcode])(ctx, &vmexit[vcpu], &vcpu); + rc = (*handler[exitcode])(ctx, &vmexit[vcpu], &vcpu); switch (rc) { case VMEXIT_CONTINUE: From owner-svn-src-all@freebsd.org Thu Dec 31 07:15:05 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70502A56061; Thu, 31 Dec 2015 07:15:05 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from mx1.scaleengine.net (mx1.scaleengine.net [209.51.186.6]) by mx1.freebsd.org (Postfix) with ESMTP id 323321AF2; Thu, 31 Dec 2015 07:15:04 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from [10.1.1.2] (unknown [10.1.1.2]) (Authenticated sender: allanjude.freebsd@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id B2FBCD2AA; Thu, 31 Dec 2015 07:15:03 +0000 (UTC) Subject: Re: svn commit: r292955 - head/lib/libmd To: Bruce Evans References: <201512301804.tBUI4oGp065466@repo.freebsd.org> <20151231115651.R995@besplex.bde.org> <20151231143314.Y1520@besplex.bde.org> Cc: "Jonathan T. Looney" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Allan Jude X-Enigmail-Draft-Status: N1110 Message-ID: <5684D606.3080609@freebsd.org> Date: Thu, 31 Dec 2015 02:15:18 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <20151231143314.Y1520@besplex.bde.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="cefVxOIBD2vm4RApBE5O4tQ0lfigJF2Qm" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 07:15:05 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --cefVxOIBD2vm4RApBE5O4tQ0lfigJF2Qm Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 2015-12-30 23:10, Bruce Evans wrote: > On Thu, 31 Dec 2015, Bruce Evans wrote: >=20 >> >> wc /proc/0/* works. md5 works like wc using a hack to avoid calling t= his >> broken function. E.g., >> >> for i in $(ls /proc/0/*); do echo -n "$i: "; md5 <$i; done # gives= >> >> /proc/0/cmdline: 3c5896b1ac441f4998f052e2126e8d20 >> /proc/0/ctl: d41d8cd98f00b204e9800998ecf8427e >> /proc/0/etype: 674441960ca1ba2de08ad4e50c9fde98 >> /proc/0/rlimit: 67d6ad67b412e1bceb7cb508a3492197 >> /proc/0/status: 3ccc3067b97c3232ea2dbcb64c458fd4 >=20 > Further examples: >=20 > md5 # on terminal input >=20 > works correctly by not using MDXFileChunk(). >=20 > md5 /dev/stdin # on the same terminal input >=20 > produces the d41d8cd98f00b204e9800998ecf8427e garbage using > MDXFileChunk(). truss shows that lseek() is broken too -- MDXFileChunk= () > tries it and it succeeds on the unseekable file /dev/stdin. Bugs in th= is > area are common. E.g., lseek() on named pipes was broken so that it > succeeded, by rearranging the plumbing use fileops more or less and not= > attaching lseek right. >=20 > cat | md5 # on the same terminal input >=20 > works correctly by not using MDXFileChunk(). >=20 > cat | md5 /dev/stdin # on the same terminal input >=20 > doesn't work correctly, but it fails better than without the pipe. Now= > a seek error occurs and is reported as "md5: /dev/stdin: Illegal seek" > (I can't see where it is reported). Then md5 exits. Then cat waits to= > read input. Then cat fails to write output and is killed by SIGPIPE. > So md5 handled the seek error in a fail-safe though incorrect way. One= > correct way is to fall back to the working code, but it is better to > just use that without an lseek check. >=20 > It is a bug that [l]stat() on /dev/stdin sees the device file and not t= he > actual stdin file. md5 can't work around this except by not using stat= (). >=20 > Bruce >=20 It seems these problems also slow things down, a lot: # time md5 /media/md5test/bigdata MD5 (/media/md5test/bigdata) =3D 6afad0bf5d8318093e943229be05be67 4.310u 3.476s 0:07.79 99.8% 20+167k 0+0io 0pf+0w # time env LD_PRELOAD=3D/usr/obj/media/svn/md5/head/tmp/lib/libmd.so /usr/obj/media/svn/md5/head/sbin/md5/md5 /media/md5test/bigdata MD5 (/media/md5test/bigdata) =3D 6afad0bf5d8318093e943229be05be67 4.133u 0.354s 0:04.49 99.7% 20+167k 1+0io 0pf+0w (file is fully cached in ZFS ARC, dd reads it at 11GB/s) Will investigate more tomorrow. char * MDXFile(const char *filename, char *buf) { unsigned char buffer[16*1024]; MDX_CTX ctx; int f, i; MDXInit(&ctx); f =3D open(filename, O_RDONLY); if (f < 0) return 0; i =3D 0; while (1) { i =3D read(f, buffer, sizeof(buffer)); if (i <=3D 0) break; MDXUpdate(&ctx, buffer, i); } close(f); return (MDXEnd(&ctx, buf)); } --=20 Allan Jude --cefVxOIBD2vm4RApBE5O4tQ0lfigJF2Qm Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (MingW32) iQIcBAEBAgAGBQJWhNYKAAoJEBmVNT4SmAt+E8cP/3R383YXkUdn1jV4haIADU/r SiVvOgU6eNOlrPv7koeL7A7qrkb23/Hs+D+ucXChaTx5cu8EBMdLgRrL4dKnu/tW CyXMpq8k1i2h9PLdFiAM+SybVJ5FFkZdMwYvc17DxWkIGRyGuYteOE6QTB4IE2IW V8FM7I372IpDGWzTyBzPhg7kO83WYrN3MfisC9PYuwQN2JoEg5TY5sjp84qiIJzl OQjf6ZAQ2wBXqhF90L97Wz2dzP+IqJ8RovfP6yajGjC432aLQMoEEd/lb8OS6ftd Fr68jJhmjGSCtSU0Ix+SFhofDe8p3AJuodU+XAaXIpMl/m0jNqW3TDsjyopHBY2L +W4QjIbx1IZ4a9v8q33hPnFmY+WMhrhD7I/g6cqAFK81Ahfi9NfKhidDosjvHJVl rFn/hxyv+qy7mvGhYFd/FkyNmXFKTfv3ZQC+C6x9hVE2jg4gC6zA4yCsNq1tSN40 50Nt2wCo2m5Zr+QyFx6o9JyRP0Z2FNW0DBy9hloUASg3+LgJ7dpCFKVvwsJR/h7h /Odz1hYe3kHR9Zo2Zh+6PE21FMA2OzcrT6XLPbiLbRqLHhuGKBSt08XZEa2pm50m yMG5SwYLKfB1kkqHKAScvZB65Cnq11t60xBHB1Al1HySGawwVib9tZSc5ehu8Ss9 yKFYIitpyPSRnpBV3WIh =S8Jb -----END PGP SIGNATURE----- --cefVxOIBD2vm4RApBE5O4tQ0lfigJF2Qm-- From owner-svn-src-all@freebsd.org Thu Dec 31 10:55:52 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3766FA56B5C; Thu, 31 Dec 2015 10:55:52 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 04A3C1D70; Thu, 31 Dec 2015 10:55:51 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVAtpD1065588; Thu, 31 Dec 2015 10:55:51 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVAtpLE065587; Thu, 31 Dec 2015 10:55:51 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201512311055.tBVAtpLE065587@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Thu, 31 Dec 2015 10:55:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292982 - head/usr.sbin/bhyve X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 10:55:52 -0000 Author: bz Date: Thu Dec 31 10:55:50 2015 New Revision: 292982 URL: https://svnweb.freebsd.org/changeset/base/292982 Log: Remove unused variable after r292981 to unbreak the build. Modified: head/usr.sbin/bhyve/bhyverun.c Modified: head/usr.sbin/bhyve/bhyverun.c ============================================================================== --- head/usr.sbin/bhyve/bhyverun.c Thu Dec 31 07:08:21 2015 (r292981) +++ head/usr.sbin/bhyve/bhyverun.c Thu Dec 31 10:55:50 2015 (r292982) @@ -598,7 +598,7 @@ static vmexit_handler_t handler[VM_EXITC static void vm_loop(struct vmctx *ctx, int vcpu, uint64_t startrip) { - int error, rc, prevcpu; + int error, rc; enum vm_exitcode exitcode; cpuset_t active_cpus; From owner-svn-src-all@freebsd.org Thu Dec 31 11:02:59 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 25150A56FDE; Thu, 31 Dec 2015 11:02:59 +0000 (UTC) (envelope-from araujobsdport@gmail.com) Received: from mail-ob0-x22d.google.com (mail-ob0-x22d.google.com [IPv6:2607:f8b0:4003:c01::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E30ED1E19; Thu, 31 Dec 2015 11:02:58 +0000 (UTC) (envelope-from araujobsdport@gmail.com) Received: by mail-ob0-x22d.google.com with SMTP id bx1so168243469obb.0; Thu, 31 Dec 2015 03:02:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=BBCN3MAKQ8ON1pSPMngAI2y7iky++GNy/Y7WUMQ5xXQ=; b=ap2Gb7T8z62Xg57Kia+zEIokmZLNllf51d6oSL4Dq37BYD6l0VcB2fhydR/gaVpiXp jCmvTgoXtrSB7c8gJH9gbGXZgsdLf4oH+L06Kr78IIp2UjC/lA3Z1TMlNi9YM7mIZuG3 S+FLa67neH9pHZpDsn9A2x9CW8E7cDktxF6r4mfFGzm0qU7zt0em99yzx+6Ofb58knGO hxQBXlEJyePdLa1IT6xr7tdHCcdeOlYSh3aCVVHtsaHizfcjxxAHJV8Azlw6BwfbIIOc 7kl2p1G79Vyxf6LGSMXxSNcdrsPbiphNNzfXKcJ3ObVpPEpOTSl/AVfO9R81+cvA4fXe OxBA== MIME-Version: 1.0 X-Received: by 10.182.236.3 with SMTP id uq3mr44102412obc.25.1451559778122; Thu, 31 Dec 2015 03:02:58 -0800 (PST) Received: by 10.182.7.33 with HTTP; Thu, 31 Dec 2015 03:02:58 -0800 (PST) Reply-To: araujo@FreeBSD.org In-Reply-To: <201512311055.tBVAtpLE065587@repo.freebsd.org> References: <201512311055.tBVAtpLE065587@repo.freebsd.org> Date: Thu, 31 Dec 2015 19:02:58 +0800 Message-ID: Subject: Re: svn commit: r292982 - head/usr.sbin/bhyve From: Marcelo Araujo To: "Bjoern A. Zeeb" Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 11:02:59 -0000 2015-12-31 18:55 GMT+08:00 Bjoern A. Zeeb : > Author: bz > Date: Thu Dec 31 10:55:50 2015 > New Revision: 292982 > URL: https://svnweb.freebsd.org/changeset/base/292982 > > Log: > Remove unused variable after r292981 to unbreak the build. > > Modified: > head/usr.sbin/bhyve/bhyverun.c > > Modified: head/usr.sbin/bhyve/bhyverun.c > > ============================================================================== > --- head/usr.sbin/bhyve/bhyverun.c Thu Dec 31 07:08:21 2015 > (r292981) > +++ head/usr.sbin/bhyve/bhyverun.c Thu Dec 31 10:55:50 2015 > (r292982) > @@ -598,7 +598,7 @@ static vmexit_handler_t handler[VM_EXITC > static void > vm_loop(struct vmctx *ctx, int vcpu, uint64_t startrip) > { > - int error, rc, prevcpu; > + int error, rc; > enum vm_exitcode exitcode; > cpuset_t active_cpus; > > _______________________________________________ > svn-src-head@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" > Sorry and thank you! Best, -- -- Marcelo Araujo (__)araujo@FreeBSD.org \\\'',)http://www.FreeBSD.org \/ \ ^ Power To Server. .\. /_) From owner-svn-src-all@freebsd.org Thu Dec 31 11:21:46 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B4E60A576ED; Thu, 31 Dec 2015 11:21:46 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 87C9E17CA; Thu, 31 Dec 2015 11:21:46 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVBLj9r074303; Thu, 31 Dec 2015 11:21:45 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVBLjuA074109; Thu, 31 Dec 2015 11:21:45 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201512311121.tBVBLjuA074109@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Thu, 31 Dec 2015 11:21:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292983 - in head: . sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 11:21:46 -0000 Author: bz Date: Thu Dec 31 11:21:45 2015 New Revision: 292983 URL: https://svnweb.freebsd.org/changeset/base/292983 Log: Bump copyright year. Happy New Year 2016! Modified: head/COPYRIGHT head/sys/sys/copyright.h Modified: head/COPYRIGHT ============================================================================== --- head/COPYRIGHT Thu Dec 31 10:55:50 2015 (r292982) +++ head/COPYRIGHT Thu Dec 31 11:21:45 2015 (r292983) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2015 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2016 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: head/sys/sys/copyright.h ============================================================================== --- head/sys/sys/copyright.h Thu Dec 31 10:55:50 2015 (r292982) +++ head/sys/sys/copyright.h Thu Dec 31 11:21:45 2015 (r292983) @@ -1,5 +1,5 @@ /*- - * Copyright (C) 1992-2015 The FreeBSD Project. All rights reserved. + * Copyright (C) 1992-2016 The FreeBSD Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -34,7 +34,7 @@ /* FreeBSD */ #define COPYRIGHT_FreeBSD \ - "Copyright (c) 1992-2015 The FreeBSD Project.\n" + "Copyright (c) 1992-2016 The FreeBSD Project.\n" /* Foundation */ #define TRADEMARK_Foundation \ From owner-svn-src-all@freebsd.org Thu Dec 31 11:23:40 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AA5E6A57766; Thu, 31 Dec 2015 11:23:40 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7D5C51A1C; Thu, 31 Dec 2015 11:23:40 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVBNdan076049; Thu, 31 Dec 2015 11:23:39 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVBNdoL076047; Thu, 31 Dec 2015 11:23:39 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201512311123.tBVBNdoL076047@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Thu, 31 Dec 2015 11:23:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292984 - in stable/10: . sys/sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 11:23:40 -0000 Author: bz Date: Thu Dec 31 11:23:39 2015 New Revision: 292984 URL: https://svnweb.freebsd.org/changeset/base/292984 Log: MFC r292983: Bump copyright year. Happy New Year 2016! Modified: stable/10/COPYRIGHT stable/10/sys/sys/copyright.h Directory Properties: stable/10/ (props changed) Modified: stable/10/COPYRIGHT ============================================================================== --- stable/10/COPYRIGHT Thu Dec 31 11:21:45 2015 (r292983) +++ stable/10/COPYRIGHT Thu Dec 31 11:23:39 2015 (r292984) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2015 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2016 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: stable/10/sys/sys/copyright.h ============================================================================== --- stable/10/sys/sys/copyright.h Thu Dec 31 11:21:45 2015 (r292983) +++ stable/10/sys/sys/copyright.h Thu Dec 31 11:23:39 2015 (r292984) @@ -1,5 +1,5 @@ /*- - * Copyright (C) 1992-2015 The FreeBSD Project. All rights reserved. + * Copyright (C) 1992-2016 The FreeBSD Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -30,7 +30,7 @@ /* FreeBSD */ #define COPYRIGHT_FreeBSD \ - "Copyright (c) 1992-2015 The FreeBSD Project.\n" + "Copyright (c) 1992-2016 The FreeBSD Project.\n" /* Foundation */ #define TRADEMARK_Foundation \ From owner-svn-src-all@freebsd.org Thu Dec 31 11:25:47 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 36C6DA57802; Thu, 31 Dec 2015 11:25:47 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 05C8F1BB6; Thu, 31 Dec 2015 11:25:46 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVBPktg076180; Thu, 31 Dec 2015 11:25:46 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVBPju0076178; Thu, 31 Dec 2015 11:25:45 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201512311125.tBVBPju0076178@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Thu, 31 Dec 2015 11:25:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r292985 - in stable/9: . sys/sys X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 11:25:47 -0000 Author: bz Date: Thu Dec 31 11:25:45 2015 New Revision: 292985 URL: https://svnweb.freebsd.org/changeset/base/292985 Log: MFC r292983: Bump copyright year. Happy New Year 2016! Modified: stable/9/COPYRIGHT (contents, props changed) stable/9/sys/sys/copyright.h Directory Properties: stable/9/sys/ (props changed) stable/9/sys/sys/ (props changed) Modified: stable/9/COPYRIGHT ============================================================================== --- stable/9/COPYRIGHT Thu Dec 31 11:23:39 2015 (r292984) +++ stable/9/COPYRIGHT Thu Dec 31 11:25:45 2015 (r292985) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2015 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2016 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: stable/9/sys/sys/copyright.h ============================================================================== --- stable/9/sys/sys/copyright.h Thu Dec 31 11:23:39 2015 (r292984) +++ stable/9/sys/sys/copyright.h Thu Dec 31 11:25:45 2015 (r292985) @@ -1,5 +1,5 @@ /*- - * Copyright (C) 1992-2015 The FreeBSD Project. All rights reserved. + * Copyright (C) 1992-2016 The FreeBSD Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -30,7 +30,7 @@ /* FreeBSD */ #define COPYRIGHT_FreeBSD \ - "Copyright (c) 1992-2015 The FreeBSD Project.\n" + "Copyright (c) 1992-2016 The FreeBSD Project.\n" /* Foundation */ #define TRADEMARK_Foundation \ From owner-svn-src-all@freebsd.org Thu Dec 31 11:27:37 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8C4EBA5787D; Thu, 31 Dec 2015 11:27:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4629E1D2E; Thu, 31 Dec 2015 11:27:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVBRaCQ076298; Thu, 31 Dec 2015 11:27:36 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVBRasi076295; Thu, 31 Dec 2015 11:27:36 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201512311127.tBVBRasi076295@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 31 Dec 2015 11:27:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292986 - in head/sys/compat/linuxkpi/common: include/linux src X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 11:27:37 -0000 Author: hselasky Date: Thu Dec 31 11:27:36 2015 New Revision: 292986 URL: https://svnweb.freebsd.org/changeset/base/292986 Log: Make the kobject refcounting compliant with Linux. Refcounting on the parent kobject cannot be factored out and must be done by the kobject consumers. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/cdev.h head/sys/compat/linuxkpi/common/src/linux_compat.c Modified: head/sys/compat/linuxkpi/common/include/linux/cdev.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/cdev.h Thu Dec 31 11:25:45 2015 (r292985) +++ head/sys/compat/linuxkpi/common/include/linux/cdev.h Thu Dec 31 11:27:36 2015 (r292986) @@ -54,21 +54,27 @@ static inline void cdev_release(struct kobject *kobj) { struct linux_cdev *cdev; + struct kobject *parent; cdev = container_of(kobj, struct linux_cdev, kobj); + parent = kobj->parent; if (cdev->cdev) destroy_dev(cdev->cdev); kfree(cdev); + kobject_put(parent); } static inline void cdev_static_release(struct kobject *kobj) { struct linux_cdev *cdev; + struct kobject *parent; cdev = container_of(kobj, struct linux_cdev, kobj); + parent = kobj->parent; if (cdev->cdev) destroy_dev(cdev->cdev); + kobject_put(parent); } static struct kobj_type cdev_ktype = { @@ -114,6 +120,7 @@ cdev_add(struct linux_cdev *cdev, dev_t cdev->dev = dev; cdev->cdev->si_drv1 = cdev; + kobject_get(cdev->kobj.parent); return (0); } Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_compat.c Thu Dec 31 11:25:45 2015 (r292985) +++ head/sys/compat/linuxkpi/common/src/linux_compat.c Thu Dec 31 11:27:36 2015 (r292986) @@ -157,7 +157,7 @@ kobject_add_complete(struct kobject *kob struct kobj_type *t; int error; - kobj->parent = kobject_get(parent); + kobj->parent = parent; error = sysfs_create_dir(kobj); if (error == 0 && kobj->ktype && kobj->ktype->default_attrs) { struct attribute **attr; @@ -198,9 +198,6 @@ kobject_release(struct kref *kref) kobj = container_of(kref, struct kobject, kref); sysfs_remove_dir(kobj); - if (kobj->parent) - kobject_put(kobj->parent); - kobj->parent = NULL; name = kobj->name; if (kobj->ktype && kobj->ktype->release) kobj->ktype->release(kobj); From owner-svn-src-all@freebsd.org Thu Dec 31 12:30:21 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0146AA57363; Thu, 31 Dec 2015 12:30:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B99591E38; Thu, 31 Dec 2015 12:30:20 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVCUJ5A094029; Thu, 31 Dec 2015 12:30:19 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVCUJB7094023; Thu, 31 Dec 2015 12:30:19 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201512311230.tBVCUJB7094023@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 31 Dec 2015 12:30:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292987 - in head/sys/compat/linuxkpi/common: include/linux src X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 12:30:21 -0000 Author: hselasky Date: Thu Dec 31 12:30:19 2015 New Revision: 292987 URL: https://svnweb.freebsd.org/changeset/base/292987 Log: Minor LinuxKPI code cleanup: - Declare some static functions in linux_compat.c instead if inside various header files. - Prefix FreeBSD local functions in the LinuxKPI with "linux_" to avoid symbol name conflicts in the future and to make debugging easier. - Make the "struct kobj_ktype" declaractions constant to shave off a few bytes from the data segment. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/cdev.h head/sys/compat/linuxkpi/common/include/linux/device.h head/sys/compat/linuxkpi/common/include/linux/kobject.h head/sys/compat/linuxkpi/common/include/linux/miscdevice.h head/sys/compat/linuxkpi/common/src/linux_compat.c head/sys/compat/linuxkpi/common/src/linux_pci.c Modified: head/sys/compat/linuxkpi/common/include/linux/cdev.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/cdev.h Thu Dec 31 11:27:36 2015 (r292986) +++ head/sys/compat/linuxkpi/common/include/linux/cdev.h Thu Dec 31 12:30:19 2015 (r292987) @@ -41,6 +41,8 @@ struct inode; struct module; extern struct cdevsw linuxcdevsw; +extern const struct kobj_type linux_cdev_ktype; +extern const struct kobj_type linux_cdev_static_ktype; struct linux_cdev { struct kobject kobj; @@ -51,45 +53,10 @@ struct linux_cdev { }; static inline void -cdev_release(struct kobject *kobj) -{ - struct linux_cdev *cdev; - struct kobject *parent; - - cdev = container_of(kobj, struct linux_cdev, kobj); - parent = kobj->parent; - if (cdev->cdev) - destroy_dev(cdev->cdev); - kfree(cdev); - kobject_put(parent); -} - -static inline void -cdev_static_release(struct kobject *kobj) -{ - struct linux_cdev *cdev; - struct kobject *parent; - - cdev = container_of(kobj, struct linux_cdev, kobj); - parent = kobj->parent; - if (cdev->cdev) - destroy_dev(cdev->cdev); - kobject_put(parent); -} - -static struct kobj_type cdev_ktype = { - .release = cdev_release, -}; - -static struct kobj_type cdev_static_ktype = { - .release = cdev_static_release, -}; - -static inline void cdev_init(struct linux_cdev *cdev, const struct file_operations *ops) { - kobject_init(&cdev->kobj, &cdev_static_ktype); + kobject_init(&cdev->kobj, &linux_cdev_static_ktype); cdev->ops = ops; } @@ -100,7 +67,7 @@ cdev_alloc(void) cdev = kzalloc(sizeof(struct linux_cdev), M_WAITOK); if (cdev) - kobject_init(&cdev->kobj, &cdev_ktype); + kobject_init(&cdev->kobj, &linux_cdev_ktype); return (cdev); } Modified: head/sys/compat/linuxkpi/common/include/linux/device.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/device.h Thu Dec 31 11:27:36 2015 (r292986) +++ head/sys/compat/linuxkpi/common/include/linux/device.h Thu Dec 31 12:30:19 2015 (r292987) @@ -73,8 +73,10 @@ struct device { unsigned int msix_max; }; -extern struct device linux_rootdev; -extern struct kobject class_root; +extern struct device linux_root_device; +extern struct kobject linux_class_root; +extern const struct kobj_type linux_dev_ktype; +extern const struct kobj_type linux_class_ktype; struct class_attribute { struct attribute attr; @@ -170,62 +172,14 @@ put_device(struct device *dev) kobject_put(&dev->kobj); } -static inline ssize_t -class_show(struct kobject *kobj, struct attribute *attr, char *buf) -{ - struct class_attribute *dattr; - ssize_t error; - - dattr = container_of(attr, struct class_attribute, attr); - error = -EIO; - if (dattr->show) - error = dattr->show(container_of(kobj, struct class, kobj), - dattr, buf); - return (error); -} - -static inline ssize_t -class_store(struct kobject *kobj, struct attribute *attr, const char *buf, - size_t count) -{ - struct class_attribute *dattr; - ssize_t error; - - dattr = container_of(attr, struct class_attribute, attr); - error = -EIO; - if (dattr->store) - error = dattr->store(container_of(kobj, struct class, kobj), - dattr, buf, count); - return (error); -} - -static inline void -class_release(struct kobject *kobj) -{ - struct class *class; - - class = container_of(kobj, struct class, kobj); - if (class->class_release) - class->class_release(class); -} - -static struct sysfs_ops class_sysfs = { - .show = class_show, - .store = class_store, -}; -static struct kobj_type class_ktype = { - .release = class_release, - .sysfs_ops = &class_sysfs -}; - static inline int class_register(struct class *class) { class->bsdclass = devclass_create(class->name); - kobject_init(&class->kobj, &class_ktype); + kobject_init(&class->kobj, &linux_class_ktype); kobject_set_name(&class->kobj, class->name); - kobject_add(&class->kobj, &class_root, class->name); + kobject_add(&class->kobj, &linux_class_root, class->name); return (0); } @@ -237,54 +191,6 @@ class_unregister(struct class *class) kobject_put(&class->kobj); } -static inline void -device_release(struct kobject *kobj) -{ - struct device *dev; - - dev = container_of(kobj, struct device, kobj); - /* This is the precedence defined by linux. */ - if (dev->release) - dev->release(dev); - else if (dev->class && dev->class->dev_release) - dev->class->dev_release(dev); -} - -static inline ssize_t -dev_show(struct kobject *kobj, struct attribute *attr, char *buf) -{ - struct device_attribute *dattr; - ssize_t error; - - dattr = container_of(attr, struct device_attribute, attr); - error = -EIO; - if (dattr->show) - error = dattr->show(container_of(kobj, struct device, kobj), - dattr, buf); - return (error); -} - -static inline ssize_t -dev_store(struct kobject *kobj, struct attribute *attr, const char *buf, - size_t count) -{ - struct device_attribute *dattr; - ssize_t error; - - dattr = container_of(attr, struct device_attribute, attr); - error = -EIO; - if (dattr->store) - error = dattr->store(container_of(kobj, struct device, kobj), - dattr, buf, count); - return (error); -} - -static struct sysfs_ops dev_sysfs = { .show = dev_show, .store = dev_store, }; -static struct kobj_type dev_ktype = { - .release = device_release, - .sysfs_ops = &dev_sysfs -}; - /* * Devices are registered and created for exporting to sysfs. create * implies register and register assumes the device fields have been @@ -311,7 +217,7 @@ device_register(struct device *dev) device_set_softc(bsddev, dev); } dev->bsddev = bsddev; - kobject_init(&dev->kobj, &dev_ktype); + kobject_init(&dev->kobj, &linux_dev_ktype); kobject_add(&dev->kobj, &dev->class->kobj, dev_name(dev)); return (0); @@ -346,7 +252,7 @@ device_destroy(struct class *class, dev_ } static inline void -class_kfree(struct class *class) +linux_class_kfree(struct class *class) { kfree(class); @@ -361,7 +267,7 @@ class_create(struct module *owner, const class = kzalloc(sizeof(*class), M_WAITOK); class->owner = owner; class->name= name; - class->class_release = class_kfree; + class->class_release = linux_class_kfree; error = class_register(class); if (error) { kfree(class); @@ -414,7 +320,8 @@ class_remove_file(struct class *class, c sysfs_remove_file(&class->kobj, &attr->attr); } -static inline int dev_to_node(struct device *dev) +static inline int +dev_to_node(struct device *dev) { return -1; } Modified: head/sys/compat/linuxkpi/common/include/linux/kobject.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/kobject.h Thu Dec 31 11:27:36 2015 (r292986) +++ head/sys/compat/linuxkpi/common/include/linux/kobject.h Thu Dec 31 12:30:19 2015 (r292987) @@ -46,13 +46,13 @@ struct kobj_type { struct attribute **default_attrs; }; -extern struct kobj_type kfree_type; +extern const struct kobj_type linux_kfree_type; struct kobject { struct kobject *parent; char *name; struct kref kref; - struct kobj_type *ktype; + const struct kobj_type *ktype; struct list_head entry; struct sysctl_oid *oidp; }; @@ -74,7 +74,7 @@ struct kobj_attribute { }; static inline void -kobject_init(struct kobject *kobj, struct kobj_type *ktype) +kobject_init(struct kobject *kobj, const struct kobj_type *ktype) { kref_init(&kobj->kref); @@ -83,15 +83,14 @@ kobject_init(struct kobject *kobj, struc kobj->oidp = NULL; } -static inline void kobject_put(struct kobject *kobj); -void kobject_release(struct kref *kref); +void linux_kobject_release(struct kref *kref); static inline void kobject_put(struct kobject *kobj) { if (kobj) - kref_put(&kobj->kref, kobject_release); + kref_put(&kobj->kref, linux_kobject_release); } static inline struct kobject * @@ -115,7 +114,7 @@ kobject_create(void) kobj = kzalloc(sizeof(*kobj), GFP_KERNEL); if (kobj == NULL) return (NULL); - kobject_init(kobj, &kfree_type); + kobject_init(kobj, &linux_kfree_type); return (kobj); } @@ -135,7 +134,6 @@ kobject_create_and_add(const char *name, return (NULL); } - static inline char * kobject_name(const struct kobject *kobj) { @@ -144,7 +142,7 @@ kobject_name(const struct kobject *kobj) } int kobject_set_name(struct kobject *kobj, const char *fmt, ...); -int kobject_init_and_add(struct kobject *kobj, struct kobj_type *ktype, +int kobject_init_and_add(struct kobject *kobj, const struct kobj_type *ktype, struct kobject *parent, const char *fmt, ...); #endif /* _LINUX_KOBJECT_H_ */ Modified: head/sys/compat/linuxkpi/common/include/linux/miscdevice.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/miscdevice.h Thu Dec 31 11:27:36 2015 (r292986) +++ head/sys/compat/linuxkpi/common/include/linux/miscdevice.h Thu Dec 31 12:30:19 2015 (r292987) @@ -46,13 +46,13 @@ struct miscdevice { umode_t mode; }; -extern struct class miscclass; +extern struct class linux_class_misc; static inline int misc_register(struct miscdevice *misc) { - misc->this_device = device_create(&miscclass, &linux_rootdev, 0, misc, - misc->name); + misc->this_device = device_create(&linux_class_misc, + &linux_root_device, 0, misc, misc->name); misc->cdev = cdev_alloc(); if (misc->cdev == NULL) return -ENOMEM; @@ -67,7 +67,7 @@ misc_register(struct miscdevice *misc) static inline int misc_deregister(struct miscdevice *misc) { - device_destroy(&miscclass, misc->this_device->devt); + device_destroy(&linux_class_misc, misc->this_device->devt); cdev_del(misc->cdev); return (0); Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_compat.c Thu Dec 31 11:27:36 2015 (r292986) +++ head/sys/compat/linuxkpi/common/src/linux_compat.c Thu Dec 31 12:30:19 2015 (r292987) @@ -77,9 +77,9 @@ MALLOC_DEFINE(M_KMALLOC, "linux", "Linux #undef cdev #define RB_ROOT(head) (head)->rbh_root -struct kobject class_root; -struct device linux_rootdev; -struct class miscclass; +struct kobject linux_class_root; +struct device linux_root_device; +struct class linux_class_misc; struct list_head pci_drivers; struct list_head pci_devices; struct net init_net; @@ -151,10 +151,10 @@ kobject_set_name(struct kobject *kobj, c return (error); } -static inline int +static int kobject_add_complete(struct kobject *kobj, struct kobject *parent) { - struct kobj_type *t; + const struct kobj_type *t; int error; kobj->parent = parent; @@ -191,7 +191,7 @@ kobject_add(struct kobject *kobj, struct } void -kobject_release(struct kref *kref) +linux_kobject_release(struct kref *kref) { struct kobject *kobj; char *name; @@ -205,28 +205,131 @@ kobject_release(struct kref *kref) } static void -kobject_kfree(struct kobject *kobj) +linux_kobject_kfree(struct kobject *kobj) { kfree(kobj); } static void -kobject_kfree_name(struct kobject *kobj) +linux_kobject_kfree_name(struct kobject *kobj) { if (kobj) { kfree(kobj->name); } } -struct kobj_type kfree_type = { .release = kobject_kfree }; +const struct kobj_type linux_kfree_type = { + .release = linux_kobject_kfree +}; static void -dev_release(struct device *dev) +linux_device_release(struct device *dev) { - pr_debug("dev_release: %s\n", dev_name(dev)); + pr_debug("linux_device_release: %s\n", dev_name(dev)); kfree(dev); } +static ssize_t +linux_class_show(struct kobject *kobj, struct attribute *attr, char *buf) +{ + struct class_attribute *dattr; + ssize_t error; + + dattr = container_of(attr, struct class_attribute, attr); + error = -EIO; + if (dattr->show) + error = dattr->show(container_of(kobj, struct class, kobj), + dattr, buf); + return (error); +} + +static ssize_t +linux_class_store(struct kobject *kobj, struct attribute *attr, const char *buf, + size_t count) +{ + struct class_attribute *dattr; + ssize_t error; + + dattr = container_of(attr, struct class_attribute, attr); + error = -EIO; + if (dattr->store) + error = dattr->store(container_of(kobj, struct class, kobj), + dattr, buf, count); + return (error); +} + +static void +linux_class_release(struct kobject *kobj) +{ + struct class *class; + + class = container_of(kobj, struct class, kobj); + if (class->class_release) + class->class_release(class); +} + +static const struct sysfs_ops linux_class_sysfs = { + .show = linux_class_show, + .store = linux_class_store, +}; + +const struct kobj_type linux_class_ktype = { + .release = linux_class_release, + .sysfs_ops = &linux_class_sysfs +}; + +static void +linux_dev_release(struct kobject *kobj) +{ + struct device *dev; + + dev = container_of(kobj, struct device, kobj); + /* This is the precedence defined by linux. */ + if (dev->release) + dev->release(dev); + else if (dev->class && dev->class->dev_release) + dev->class->dev_release(dev); +} + +static ssize_t +linux_dev_show(struct kobject *kobj, struct attribute *attr, char *buf) +{ + struct device_attribute *dattr; + ssize_t error; + + dattr = container_of(attr, struct device_attribute, attr); + error = -EIO; + if (dattr->show) + error = dattr->show(container_of(kobj, struct device, kobj), + dattr, buf); + return (error); +} + +static ssize_t +linux_dev_store(struct kobject *kobj, struct attribute *attr, const char *buf, + size_t count) +{ + struct device_attribute *dattr; + ssize_t error; + + dattr = container_of(attr, struct device_attribute, attr); + error = -EIO; + if (dattr->store) + error = dattr->store(container_of(kobj, struct device, kobj), + dattr, buf, count); + return (error); +} + +static const struct sysfs_ops linux_dev_sysfs = { + .show = linux_dev_show, + .store = linux_dev_store, +}; + +const struct kobj_type linux_dev_ktype = { + .release = linux_dev_release, + .sysfs_ops = &linux_dev_sysfs +}; + struct device * device_create(struct class *class, struct device *parent, dev_t devt, void *drvdata, const char *fmt, ...) @@ -239,7 +342,7 @@ device_create(struct class *class, struc dev->class = class; dev->devt = devt; dev->driver_data = drvdata; - dev->release = dev_release; + dev->release = linux_device_release; va_start(args, fmt); kobject_set_name_vargs(&dev->kobj, fmt, args); va_end(args); @@ -249,7 +352,7 @@ device_create(struct class *class, struc } int -kobject_init_and_add(struct kobject *kobj, struct kobj_type *ktype, +kobject_init_and_add(struct kobject *kobj, const struct kobj_type *ktype, struct kobject *parent, const char *fmt, ...) { va_list args; @@ -999,6 +1102,41 @@ destroy_workqueue(struct workqueue_struc } static void +linux_cdev_release(struct kobject *kobj) +{ + struct linux_cdev *cdev; + struct kobject *parent; + + cdev = container_of(kobj, struct linux_cdev, kobj); + parent = kobj->parent; + if (cdev->cdev) + destroy_dev(cdev->cdev); + kfree(cdev); + kobject_put(parent); +} + +static void +linux_cdev_static_release(struct kobject *kobj) +{ + struct linux_cdev *cdev; + struct kobject *parent; + + cdev = container_of(kobj, struct linux_cdev, kobj); + parent = kobj->parent; + if (cdev->cdev) + destroy_dev(cdev->cdev); + kobject_put(parent); +} + +const struct kobj_type linux_cdev_ktype = { + .release = linux_cdev_release, +}; + +const struct kobj_type linux_cdev_static_ktype = { + .release = linux_cdev_static_release, +}; + +static void linux_compat_init(void *arg) { struct sysctl_oid *rootoid; @@ -1006,18 +1144,18 @@ linux_compat_init(void *arg) rootoid = SYSCTL_ADD_ROOT_NODE(NULL, OID_AUTO, "sys", CTLFLAG_RD|CTLFLAG_MPSAFE, NULL, "sys"); - kobject_init(&class_root, &class_ktype); - kobject_set_name(&class_root, "class"); - class_root.oidp = SYSCTL_ADD_NODE(NULL, SYSCTL_CHILDREN(rootoid), + kobject_init(&linux_class_root, &linux_class_ktype); + kobject_set_name(&linux_class_root, "class"); + linux_class_root.oidp = SYSCTL_ADD_NODE(NULL, SYSCTL_CHILDREN(rootoid), OID_AUTO, "class", CTLFLAG_RD|CTLFLAG_MPSAFE, NULL, "class"); - kobject_init(&linux_rootdev.kobj, &dev_ktype); - kobject_set_name(&linux_rootdev.kobj, "device"); - linux_rootdev.kobj.oidp = SYSCTL_ADD_NODE(NULL, + kobject_init(&linux_root_device.kobj, &linux_dev_ktype); + kobject_set_name(&linux_root_device.kobj, "device"); + linux_root_device.kobj.oidp = SYSCTL_ADD_NODE(NULL, SYSCTL_CHILDREN(rootoid), OID_AUTO, "device", CTLFLAG_RD, NULL, "device"); - linux_rootdev.bsddev = root_bus; - miscclass.name = "misc"; - class_register(&miscclass); + linux_root_device.bsddev = root_bus; + linux_class_misc.name = "misc"; + class_register(&linux_class_misc); INIT_LIST_HEAD(&pci_drivers); INIT_LIST_HEAD(&pci_devices); spin_lock_init(&pci_lock); @@ -1030,9 +1168,9 @@ SYSINIT(linux_compat, SI_SUB_DRIVERS, SI static void linux_compat_uninit(void *arg) { - kobject_kfree_name(&class_root); - kobject_kfree_name(&linux_rootdev.kobj); - kobject_kfree_name(&miscclass.kobj); + linux_kobject_kfree_name(&linux_class_root); + linux_kobject_kfree_name(&linux_root_device.kobj); + linux_kobject_kfree_name(&linux_class_misc.kobj); } SYSUNINIT(linux_compat, SI_SUB_DRIVERS, SI_ORDER_SECOND, linux_compat_uninit, NULL); Modified: head/sys/compat/linuxkpi/common/src/linux_pci.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_pci.c Thu Dec 31 11:27:36 2015 (r292986) +++ head/sys/compat/linuxkpi/common/src/linux_pci.c Thu Dec 31 12:30:19 2015 (r292987) @@ -119,16 +119,16 @@ linux_pci_attach(device_t dev) pdrv = linux_pci_find(dev, &id); pdev = device_get_softc(dev); - pdev->dev.parent = &linux_rootdev; + pdev->dev.parent = &linux_root_device; pdev->dev.bsddev = dev; INIT_LIST_HEAD(&pdev->dev.irqents); pdev->device = id->device; pdev->vendor = id->vendor; pdev->dev.dma_mask = &pdev->dma_mask; pdev->pdrv = pdrv; - kobject_init(&pdev->dev.kobj, &dev_ktype); + kobject_init(&pdev->dev.kobj, &linux_dev_ktype); kobject_set_name(&pdev->dev.kobj, device_get_nameunit(dev)); - kobject_add(&pdev->dev.kobj, &linux_rootdev.kobj, + kobject_add(&pdev->dev.kobj, &linux_root_device.kobj, kobject_name(&pdev->dev.kobj)); rle = _pci_get_rle(pdev, SYS_RES_IRQ, 0); if (rle) From owner-svn-src-all@freebsd.org Thu Dec 31 14:47:46 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F803A579C9; Thu, 31 Dec 2015 14:47:46 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 44A9D1D59; Thu, 31 Dec 2015 14:47:46 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVEljSN035689; Thu, 31 Dec 2015 14:47:45 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVEljHv035688; Thu, 31 Dec 2015 14:47:45 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201512311447.tBVEljHv035688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 31 Dec 2015 14:47:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292989 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 14:47:46 -0000 Author: hselasky Date: Thu Dec 31 14:47:45 2015 New Revision: 292989 URL: https://svnweb.freebsd.org/changeset/base/292989 Log: Handle when filedescriptors are closed before initialized. An early fdclose() call can cause fget_unlocked() to fail. Found by: mjg @ MFC after: 1 week Reviewed by: Mark Block Sponsored by: Mellanox Technologies Differential Revision: https://reviews.freebsd.org/D4351 Modified: head/sys/compat/linuxkpi/common/include/linux/file.h Modified: head/sys/compat/linuxkpi/common/include/linux/file.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/file.h Thu Dec 31 14:39:45 2015 (r292988) +++ head/sys/compat/linuxkpi/common/include/linux/file.h Thu Dec 31 14:47:45 2015 (r292989) @@ -101,10 +101,11 @@ fd_install(unsigned int fd, struct linux if (fget_unlocked(curthread->td_proc->p_fd, fd, cap_rights_init(&rights), &file, NULL) != 0) { - file = NULL; + filp->_file = NULL; + } else { + filp->_file = file; + finit(file, filp->f_mode, DTYPE_DEV, filp, &linuxfileops); } - filp->_file = file; - finit(file, filp->f_mode, DTYPE_DEV, filp, &linuxfileops); /* drop the extra reference */ fput(filp); From owner-svn-src-all@freebsd.org Thu Dec 31 16:58:13 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98C91A56BB4; Thu, 31 Dec 2015 16:58:13 +0000 (UTC) (envelope-from john@baldwin.cx) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 71A0712D5; Thu, 31 Dec 2015 16:58:13 +0000 (UTC) (envelope-from john@baldwin.cx) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 2831CB946; Thu, 31 Dec 2015 11:58:11 -0500 (EST) From: John Baldwin To: Garrett Cooper Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: Re: svn commit: r292975 - stable/10/sys/dev/pci Date: Thu, 31 Dec 2015 08:42:51 -0800 Message-ID: <2893860.oDiG4KQizb@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.2-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <201512310355.tBV3t2VG040656@repo.freebsd.org> References: <201512310355.tBV3t2VG040656@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Thu, 31 Dec 2015 11:58:11 -0500 (EST) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 16:58:13 -0000 On Thursday, December 31, 2015 03:55:02 AM Garrett Cooper wrote: > Author: ngie > Date: Thu Dec 31 03:55:02 2015 > New Revision: 292975 > URL: https://svnweb.freebsd.org/changeset/base/292975 > > Log: > MFC r278860: > r278860 (by jmg): > > remove NULL check as M_WAITOK will not return NULL > > Reviewed by: jhb > Sponsored by: FreeBSD Foundation Including the metadata from the HEAD commit in the MFC can be misleading, and I think it is best ommitted. For example, I did not review this MFC (and reviewing MFC's in their own right matters since they may require additional work than commits to HEAD due to ABI concerns), nor did the Foundation sponsor the MFC. Rather, I think MFCs should only specify metadata related to the actual merge itself. -- John Baldwin From owner-svn-src-all@freebsd.org Thu Dec 31 17:51:17 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 048FBA57CF6; Thu, 31 Dec 2015 17:51:17 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C8E261B7E; Thu, 31 Dec 2015 17:51:16 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVHpGaE089521; Thu, 31 Dec 2015 17:51:16 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVHpGBE089520; Thu, 31 Dec 2015 17:51:16 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201512311751.tBVHpGBE089520@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Thu, 31 Dec 2015 17:51:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292991 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 17:51:17 -0000 Author: jilles Date: Thu Dec 31 17:51:15 2015 New Revision: 292991 URL: https://svnweb.freebsd.org/changeset/base/292991 Log: sh: Perform IFS splitting during the first expansion phases. This simplifies the code and should be faster in some cases. Side effect: the order of operations is different so that the value of IFS used when IFS is modified during expansion (${IFS:=...}, ${IFS=...} or $((...IFS=...))) may be different. Note that this order is highly unportable between shells. Modified: head/bin/sh/expand.c Modified: head/bin/sh/expand.c ============================================================================== --- head/bin/sh/expand.c Thu Dec 31 17:37:35 2015 (r292990) +++ head/bin/sh/expand.c Thu Dec 31 17:51:15 2015 (r292991) @@ -3,6 +3,8 @@ * The Regents of the University of California. All rights reserved. * Copyright (c) 1997-2005 * Herbert Xu . All rights reserved. + * Copyright (c) 2010-2015 + * Jilles Tjoelker . All rights reserved. * * This code is derived from software contributed to Berkeley by * Kenneth Almquist. @@ -79,42 +81,32 @@ __FBSDID("$FreeBSD$"); #include "show.h" #include "builtins.h" -/* - * Structure specifying which parts of the string should be searched - * for IFS characters. - */ +enum wordstate { WORD_IDLE, WORD_WS_DELIMITED, WORD_QUOTEMARK }; -struct ifsregion { - struct ifsregion *next; /* next region in list */ - int begoff; /* offset of start of region */ - int endoff; /* offset of end of region */ - int inquotes; /* search for nul bytes only */ +struct worddest { + struct arglist list; + enum wordstate state; }; - static char *expdest; /* output of current string */ static struct nodelist *argbackq; /* list of back quote expressions */ -static struct ifsregion ifsfirst; /* first struct in list of ifs regions */ -static struct ifsregion *ifslastp; /* last struct in list */ -static char *argstr(char *, int); +static char *argstr(char *, int, struct worddest *); static char *exptilde(char *, int); -static char *expari(char *); -static void expbackq(union node *, int, int); -static int subevalvar_trim(char *, int, int, int, int); +static char *expari(char *, int, struct worddest *); +static void expbackq(union node *, int, int, struct worddest *); +static void subevalvar_trim(char *, int, int, int); static int subevalvar_misc(char *, const char *, int, int, int); -static char *evalvar(char *, int); +static char *evalvar(char *, int, struct worddest *); static int varisset(const char *, int); -static void strtodest(const char *, int, int, int); -static void varvalue(const char *, int, int, int); -static void recordregion(int, int, int); -static void removerecordregions(int); -static void ifsbreakup(char *, struct arglist *); +static void strtodest(const char *, int, int, int, struct worddest *); +static void reprocess(int, int, int, int, struct worddest *); +static void varvalue(const char *, int, int, int, struct worddest *); static void expandmeta(struct arglist *, struct arglist *); static void expmeta(char *, char *, struct arglist *); static int expsortcmp(const void *, const void *); -static int patmatch(const char *, const char *, int); -static char *cvtnum(int, char *); +static int patmatch(const char *, const char *); +static void cvtnum(int, char *); static int collate_range_cmp(wchar_t, wchar_t); void @@ -169,6 +161,50 @@ stputs_quotes(const char *data, const ch } #define STPUTS_QUOTES(data, syntax, p) p = stputs_quotes((data), syntax, p) +static char * +nextword(char c, char *p, struct worddest *dst) +{ + int is_ws; + + is_ws = c == '\t' || c == '\n' || c == ' '; + if (p != stackblock() || (is_ws ? dst->state == WORD_QUOTEMARK : + dst->state != WORD_WS_DELIMITED) || c == '\0') { + STPUTC('\0', p); + appendarglist(&dst->list, grabstackstr(p)); + dst->state = is_ws ? WORD_WS_DELIMITED : WORD_IDLE; + } else if (!is_ws && dst->state == WORD_WS_DELIMITED) + dst->state = WORD_IDLE; + /* Reserve space while the stack string is empty. */ + appendarglist(&dst->list, NULL); + dst->list.count--; + STARTSTACKSTR(p); + return p; +} +#define NEXTWORD(c, p, dstlist) p = nextword(c, p, dstlist) + +static char * +stputs_split(const char *data, const char *syntax, char *p, + struct worddest *dst) +{ + const char *ifs; + char c; + + ifs = ifsset() ? ifsval() : " \t\n"; + while (*data) { + CHECKSTRSPACE(2, p); + c = *data++; + if (strchr(ifs, c) != NULL) { + NEXTWORD(c, p, dst); + continue; + } + if (syntax[(int)c] == CCTL) + USTPUTC(CTLESC, p); + USTPUTC(c, p); + } + return (p); +} +#define STPUTS_SPLIT(data, syntax, p, dst) p = stputs_split((data), syntax, p, dst) + /* * Perform expansions on an argument, placing the resulting list of arguments * in arglist. Parameter expansion, command substitution and arithmetic @@ -184,34 +220,27 @@ stputs_quotes(const char *data, const ch void expandarg(union node *arg, struct arglist *arglist, int flag) { - struct arglist exparg; - char *p; + struct worddest exparg; argbackq = arg->narg.backquote; + emptyarglist(&exparg.list); + exparg.state = WORD_IDLE; STARTSTACKSTR(expdest); - ifsfirst.next = NULL; - ifslastp = NULL; - argstr(arg->narg.text, flag); + argstr(arg->narg.text, flag, &exparg); if (arglist == NULL) { STACKSTRNUL(expdest); return; /* here document expanded */ } - STPUTC('\0', expdest); - p = grabstackstr(expdest); - emptyarglist(&exparg); - if (flag & EXP_FULL) { - ifsbreakup(p, &exparg); - expandmeta(&exparg, arglist); - } else - appendarglist(arglist, p); - while (ifsfirst.next != NULL) { - struct ifsregion *ifsp; - INTOFF; - ifsp = ifsfirst.next->next; - ckfree(ifsfirst.next); - ifsfirst.next = ifsp; - INTON; + if ((flag & EXP_FULL) == 0 || expdest != stackblock() || + exparg.state == WORD_QUOTEMARK) { + STPUTC('\0', expdest); + if (flag & EXP_FULL) + appendarglist(&exparg.list, grabstackstr(expdest)); } + if (flag & EXP_FULL) + expandmeta(&exparg.list, arglist); + else + appendarglist(arglist, grabstackstr(expdest)); } @@ -223,10 +252,11 @@ expandarg(union node *arg, struct arglis * This is used to expand word in ${var+word} etc. * If EXP_FULL or EXP_CASE are set, keep and/or generate CTLESC * characters to allow for further processing. - * If EXP_FULL is set, also preserve CTLQUOTEMARK characters. + * + * If EXP_FULL is set, dst receives any complete words produced. */ static char * -argstr(char *p, int flag) +argstr(char *p, int flag, struct worddest *dst) { char c; int quotes = flag & (EXP_FULL | EXP_CASE); /* do CTLESC */ @@ -253,32 +283,33 @@ argstr(char *p, int flag) if (p[0] == CTLVAR && (p[1] & VSQUOTE) != 0 && p[2] == '@' && p[3] == '=') break; - if ((flag & EXP_FULL) != 0) - USTPUTC(c, expdest); + if ((flag & EXP_FULL) != 0 && expdest == stackblock()) + dst->state = WORD_QUOTEMARK; break; case CTLQUOTEEND: lit_quoted = 0; break; case CTLESC: - if (quotes) - USTPUTC(c, expdest); c = *p++; + if (split_lit && !lit_quoted && + strchr(ifsset() ? ifsval() : " \t\n", c) != NULL) { + NEXTWORD(c, expdest, dst); + break; + } + if (quotes) + USTPUTC(CTLESC, expdest); USTPUTC(c, expdest); - if (split_lit && !lit_quoted) - recordregion(expdest - stackblock() - - (quotes ? 2 : 1), - expdest - stackblock(), 0); break; case CTLVAR: - p = evalvar(p, flag); + p = evalvar(p, flag, dst); break; case CTLBACKQ: case CTLBACKQ|CTLQUOTE: - expbackq(argbackq->n, c & CTLQUOTE, flag); + expbackq(argbackq->n, c & CTLQUOTE, flag, dst); argbackq = argbackq->next; break; case CTLARI: - p = expari(p); + p = expari(p, flag, dst); break; case ':': case '=': @@ -286,10 +317,12 @@ argstr(char *p, int flag) * sort of a hack - expand tildes in variable * assignments (after the first '=' and after ':'s). */ + if (split_lit && !lit_quoted && + strchr(ifsset() ? ifsval() : " \t\n", c) != NULL) { + NEXTWORD(c, expdest, dst); + break; + } USTPUTC(c, expdest); - if (split_lit && !lit_quoted) - recordregion(expdest - stackblock() - 1, - expdest - stackblock(), 0); if (flag & EXP_VARTILDE && *p == '~' && (c != '=' || firsteq)) { if (c == '=') @@ -298,10 +331,12 @@ argstr(char *p, int flag) } break; default: + if (split_lit && !lit_quoted && + strchr(ifsset() ? ifsval() : " \t\n", c) != NULL) { + NEXTWORD(c, expdest, dst); + break; + } USTPUTC(c, expdest); - if (split_lit && !lit_quoted) - recordregion(expdest - stackblock() - 1, - expdest - stackblock(), 0); } } } @@ -345,7 +380,7 @@ exptilde(char *p, int flag) *p = c; if (home == NULL || *home == '\0') return (startp); - strtodest(home, flag, VSNORMAL, 1); + strtodest(home, flag, VSNORMAL, 1, NULL); return (p); } p++; @@ -353,51 +388,11 @@ exptilde(char *p, int flag) } -static void -removerecordregions(int endoff) -{ - if (ifslastp == NULL) - return; - - if (ifsfirst.endoff > endoff) { - while (ifsfirst.next != NULL) { - struct ifsregion *ifsp; - INTOFF; - ifsp = ifsfirst.next->next; - ckfree(ifsfirst.next); - ifsfirst.next = ifsp; - INTON; - } - if (ifsfirst.begoff > endoff) - ifslastp = NULL; - else { - ifslastp = &ifsfirst; - ifsfirst.endoff = endoff; - } - return; - } - - ifslastp = &ifsfirst; - while (ifslastp->next && ifslastp->next->begoff < endoff) - ifslastp=ifslastp->next; - while (ifslastp->next != NULL) { - struct ifsregion *ifsp; - INTOFF; - ifsp = ifslastp->next->next; - ckfree(ifslastp->next); - ifslastp->next = ifsp; - INTON; - } - if (ifslastp->endoff > endoff) - ifslastp->endoff = endoff; -} - /* * Expand arithmetic expression. - * Note that flag is not required as digits never require CTLESC characters. */ static char * -expari(char *p) +expari(char *p, int flag, struct worddest *dst) { char *q, *start; arith_t result; @@ -407,8 +402,7 @@ expari(char *p) quoted = *p++ == '"'; begoff = expdest - stackblock(); - p = argstr(p, 0); - removerecordregions(begoff); + p = argstr(p, 0, NULL); STPUTC('\0', expdest); start = stackblock() + begoff; @@ -425,7 +419,7 @@ expari(char *p) adj = strlen(expdest); STADJUST(adj, expdest); if (!quoted) - recordregion(begoff, expdest - stackblock(), 0); + reprocess(expdest - adj - stackblock(), flag, VSNORMAL, 0, dst); return p; } @@ -434,35 +428,34 @@ expari(char *p) * Perform command substitution. */ static void -expbackq(union node *cmd, int quoted, int flag) +expbackq(union node *cmd, int quoted, int flag, struct worddest *dst) { struct backcmd in; int i; char buf[128]; char *p; char *dest = expdest; - struct ifsregion saveifs, *savelastp; struct nodelist *saveargbackq; char lastc; - int startloc = dest - stackblock(); char const *syntax = quoted? DQSYNTAX : BASESYNTAX; int quotes = flag & (EXP_FULL | EXP_CASE); size_t nnl; + const char *ifs; INTOFF; - saveifs = ifsfirst; - savelastp = ifslastp; saveargbackq = argbackq; p = grabstackstr(dest); evalbackcmd(cmd, &in); ungrabstackstr(p, dest); - ifsfirst = saveifs; - ifslastp = savelastp; argbackq = saveargbackq; p = in.buf; lastc = '\0'; nnl = 0; + if (!quoted && flag & EXP_FULL) + ifs = ifsset() ? ifsval() : " \t\n"; + else + ifs = ""; /* Don't copy trailing newlines */ for (;;) { if (--in.nleft < 0) { @@ -476,15 +469,27 @@ expbackq(union node *cmd, int quoted, in in.nleft = i - 1; } lastc = *p++; - if (lastc != '\0') { - if (lastc == '\n') { - nnl++; - } else { - CHECKSTRSPACE(nnl + 2, dest); - while (nnl > 0) { - nnl--; - USTPUTC('\n', dest); + if (lastc == '\0') + continue; + if (lastc == '\n') { + nnl++; + } else { + if (nnl > 0) { + if (strchr(ifs, '\n') != NULL) { + NEXTWORD('\n', dest, dst); + nnl = 0; + } else { + CHECKSTRSPACE(nnl + 2, dest); + while (nnl > 0) { + nnl--; + USTPUTC('\n', dest); + } } + } + if (strchr(ifs, lastc) != NULL) + NEXTWORD(lastc, dest, dst); + else { + CHECKSTRSPACE(2, dest); if (quotes && syntax[(int)lastc] == CCTL) USTPUTC(CTLESC, dest); USTPUTC(lastc, dest); @@ -498,8 +503,6 @@ expbackq(union node *cmd, int quoted, in ckfree(in.buf); if (in.jp) exitstatus = waitforjob(in.jp, (int *)NULL); - if (quoted == 0) - recordregion(startloc, dest - stackblock(), 0); TRACE(("expbackq: size=%td: \"%.*s\"\n", ((dest - stackblock()) - startloc), (int)((dest - stackblock()) - startloc), @@ -521,18 +524,17 @@ recordleft(const char *str, const char * *startp++ = *loc++; } -static int -subevalvar_trim(char *p, int strloc, int subtype, int startloc, int quotes) +static void +subevalvar_trim(char *p, int strloc, int subtype, int startloc) { char *startp; char *loc = NULL; - char *q; char *str; int c = 0; struct nodelist *saveargbackq = argbackq; int amount; - argstr(p, EXP_CASE | EXP_TILDE); + argstr(p, EXP_CASE | EXP_TILDE, NULL); STACKSTRNUL(expdest); argbackq = saveargbackq; startp = stackblock() + startloc; @@ -543,72 +545,56 @@ subevalvar_trim(char *p, int strloc, int for (loc = startp; loc < str; loc++) { c = *loc; *loc = '\0'; - if (patmatch(str, startp, quotes)) { + if (patmatch(str, startp)) { *loc = c; recordleft(str, loc, startp); - return 1; + return; } *loc = c; - if (quotes && *loc == CTLESC) - loc++; } - return 0; + break; case VSTRIMLEFTMAX: for (loc = str - 1; loc >= startp;) { c = *loc; *loc = '\0'; - if (patmatch(str, startp, quotes)) { + if (patmatch(str, startp)) { *loc = c; recordleft(str, loc, startp); - return 1; + return; } *loc = c; loc--; - if (quotes && loc > startp && *(loc - 1) == CTLESC) { - for (q = startp; q < loc; q++) - if (*q == CTLESC) - q++; - if (q > loc) - loc--; - } } - return 0; + break; case VSTRIMRIGHT: for (loc = str - 1; loc >= startp;) { - if (patmatch(str, loc, quotes)) { + if (patmatch(str, loc)) { amount = loc - expdest; STADJUST(amount, expdest); - return 1; + return; } loc--; - if (quotes && loc > startp && *(loc - 1) == CTLESC) { - for (q = startp; q < loc; q++) - if (*q == CTLESC) - q++; - if (q > loc) - loc--; - } } - return 0; + break; case VSTRIMRIGHTMAX: for (loc = startp; loc < str - 1; loc++) { - if (patmatch(str, loc, quotes)) { + if (patmatch(str, loc)) { amount = loc - expdest; STADJUST(amount, expdest); - return 1; + return; } - if (quotes && *loc == CTLESC) - loc++; } - return 0; + break; default: abort(); } + amount = (expdest - stackblock() - strloc) + 1; + STADJUST(-amount, expdest); } @@ -620,7 +606,7 @@ subevalvar_misc(char *p, const char *var struct nodelist *saveargbackq = argbackq; int amount; - argstr(p, EXP_TILDE); + argstr(p, EXP_TILDE, NULL); STACKSTRNUL(expdest); argbackq = saveargbackq; startp = stackblock() + startloc; @@ -653,7 +639,7 @@ subevalvar_misc(char *p, const char *var */ static char * -evalvar(char *p, int flag) +evalvar(char *p, int flag, struct worddest *dst) { int subtype; int varflags; @@ -666,9 +652,7 @@ evalvar(char *p, int flag) int startloc; int varlen; int varlenb; - int easy; - int quotes = flag & (EXP_FULL | EXP_CASE); - int record = 0; + char buf[21]; varflags = (unsigned char)*p++; subtype = varflags & VSTYPE; @@ -710,10 +694,16 @@ again: /* jump here after setting a vari if (set && subtype != VSPLUS) { /* insert the value of the variable */ if (special) { - if (varflags & VSLINENO) - STPUTBIN(var, p - var - 1, expdest); - else - varvalue(var, varflags & VSQUOTE, subtype, flag); + if (varflags & VSLINENO) { + if (p - var > (ptrdiff_t)sizeof(buf)) + abort(); + memcpy(buf, var, p - var - 1); + buf[p - var - 1] = '\0'; + strtodest(buf, flag, subtype, + varflags & VSQUOTE, dst); + } else + varvalue(var, varflags & VSQUOTE, subtype, flag, + dst); if (subtype == VSLENGTH) { varlenb = expdest - stackblock() - startloc; varlen = varlenb; @@ -734,35 +724,29 @@ again: /* jump here after setting a vari } else strtodest(val, flag, subtype, - varflags & VSQUOTE); + varflags & VSQUOTE, dst); } } if (subtype == VSPLUS) set = ! set; - easy = ((varflags & VSQUOTE) == 0 || - (*var == '@' && shellparam.nparam != 1)); - - switch (subtype) { case VSLENGTH: - expdest = cvtnum(varlen, expdest); - record = 1; + cvtnum(varlen, buf); + strtodest(buf, flag, VSNORMAL, varflags & VSQUOTE, dst); break; case VSNORMAL: - record = easy; break; case VSPLUS: case VSMINUS: if (!set) { argstr(p, flag | (flag & EXP_FULL ? EXP_SPLIT_LIT : 0) | - (varflags & VSQUOTE ? EXP_LIT_QUOTED : 0)); + (varflags & VSQUOTE ? EXP_LIT_QUOTED : 0), dst); break; } - record = easy; break; case VSTRIMLEFT: @@ -777,14 +761,10 @@ again: /* jump here after setting a vari */ STPUTC('\0', expdest); patloc = expdest - stackblock(); - if (subevalvar_trim(p, patloc, subtype, - startloc, quotes) == 0) { - int amount = (expdest - stackblock() - patloc) + 1; - STADJUST(-amount, expdest); - } - /* Remove any recorded regions beyond start of variable */ - removerecordregions(startloc); - record = 1; + subevalvar_trim(p, patloc, subtype, startloc); + reprocess(startloc, flag, VSNORMAL, varflags & VSQUOTE, dst); + if (flag & EXP_FULL && *var == '@' && varflags & VSQUOTE) + dst->state = WORD_QUOTEMARK; break; case VSASSIGN: @@ -793,16 +773,10 @@ again: /* jump here after setting a vari if (subevalvar_misc(p, var, subtype, startloc, varflags)) { varflags &= ~VSNUL; - /* - * Remove any recorded regions beyond - * start of variable - */ - removerecordregions(startloc); goto again; } break; } - record = easy; break; case VSERROR: @@ -814,11 +788,6 @@ again: /* jump here after setting a vari abort(); } - if (record) - recordregion(startloc, expdest - stackblock(), - varflags & VSQUOTE || (ifsset() && ifsval()[0] == '\0' && - (*var == '@' || *var == '*'))); - if (subtype != VSNORMAL) { /* skip to end of alternative */ int nesting = 1; for (;;) { @@ -884,26 +853,80 @@ varisset(const char *name, int nulok) } static void -strtodest(const char *p, int flag, int subtype, int quoted) +strtodest(const char *p, int flag, int subtype, int quoted, + struct worddest *dst) { - if (flag & (EXP_FULL | EXP_CASE) && subtype != VSLENGTH) + if (subtype == VSLENGTH || subtype == VSTRIMLEFT || + subtype == VSTRIMLEFTMAX || subtype == VSTRIMRIGHT || + subtype == VSTRIMRIGHTMAX) + STPUTS(p, expdest); + else if (flag & EXP_FULL && !quoted && dst != NULL) + STPUTS_SPLIT(p, BASESYNTAX, expdest, dst); + else if (flag & (EXP_FULL | EXP_CASE)) STPUTS_QUOTES(p, quoted ? DQSYNTAX : BASESYNTAX, expdest); else STPUTS(p, expdest); } +static void +reprocess(int startloc, int flag, int subtype, int quoted, + struct worddest *dst) +{ + static char *buf = NULL; + static size_t buflen = 0; + char *startp; + size_t len, zpos, zlen; + + startp = stackblock() + startloc; + len = expdest - startp; + if (len >= SIZE_MAX / 2) + abort(); + INTOFF; + if (len >= buflen) { + ckfree(buf); + buf = NULL; + } + if (buflen < 128) + buflen = 128; + while (len >= buflen) + buflen <<= 1; + if (buf == NULL) + buf = ckmalloc(buflen); + INTON; + memcpy(buf, startp, len); + buf[len] = '\0'; + STADJUST(-len, expdest); + for (zpos = 0;;) { + zlen = strlen(buf + zpos); + strtodest(buf + zpos, flag, subtype, quoted, dst); + zpos += zlen + 1; + if (zpos == len + 1) + break; + if (flag & EXP_FULL && (quoted || (zlen > 0 && zpos < len))) + NEXTWORD('\0', expdest, dst); + } +} + /* * Add the value of a specialized variable to the stack string. */ static void -varvalue(const char *name, int quoted, int subtype, int flag) +varvalue(const char *name, int quoted, int subtype, int flag, + struct worddest *dst) { int num; char *p; int i; + int splitlater; char sep[2]; char **ap; + char buf[(NSHORTOPTS > 10 ? NSHORTOPTS : 10) + 1]; + + if (subtype == VSLENGTH) + flag &= ~EXP_FULL; + splitlater = subtype == VSTRIMLEFT || subtype == VSTRIMLEFTMAX || + subtype == VSTRIMRIGHT || subtype == VSTRIMRIGHTMAX; switch (*name) { case '$': @@ -919,18 +942,27 @@ varvalue(const char *name, int quoted, i num = backgndpidval(); break; case '-': + p = buf; for (i = 0 ; i < NSHORTOPTS ; i++) { if (optlist[i].val) - STPUTC(optlist[i].letter, expdest); + *p++ = optlist[i].letter; } + *p = '\0'; + strtodest(buf, flag, subtype, quoted, dst); return; case '@': if (flag & EXP_FULL && quoted) { for (ap = shellparam.p ; (p = *ap++) != NULL ; ) { - strtodest(p, flag, subtype, quoted); - if (*ap) - STPUTC('\0', expdest); + strtodest(p, flag, subtype, quoted, dst); + if (*ap) { + if (splitlater) + STPUTC('\0', expdest); + else + NEXTWORD('\0', expdest, dst); + } } + if (shellparam.nparam > 0) + dst->state = WORD_QUOTEMARK; return; } /* FALLTHROUGH */ @@ -941,13 +973,17 @@ varvalue(const char *name, int quoted, i sep[0] = ' '; sep[1] = '\0'; for (ap = shellparam.p ; (p = *ap++) != NULL ; ) { - strtodest(p, flag, subtype, quoted); + strtodest(p, flag, subtype, quoted, dst); if (!*ap) break; if (sep[0]) - strtodest(sep, flag, subtype, quoted); - else if (flag & EXP_FULL && !quoted && **ap != '\0') - STPUTC('\0', expdest); + strtodest(sep, flag, subtype, quoted, dst); + else if (flag & EXP_FULL && !quoted && **ap != '\0') { + if (splitlater) + STPUTC('\0', expdest); + else + NEXTWORD('\0', expdest, dst); + } } return; default: @@ -959,149 +995,16 @@ varvalue(const char *name, int quoted, i p = shellparam.p[num - 1]; else return; - strtodest(p, flag, subtype, quoted); + strtodest(p, flag, subtype, quoted, dst); } return; } - expdest = cvtnum(num, expdest); + cvtnum(num, buf); + strtodest(buf, flag, subtype, quoted, dst); } -/* - * Record the fact that we have to scan this region of the - * string for IFS characters. - */ - -static void -recordregion(int start, int end, int inquotes) -{ - struct ifsregion *ifsp; - - INTOFF; - if (ifslastp == NULL) { - ifsp = &ifsfirst; - } else { - if (ifslastp->endoff == start - && ifslastp->inquotes == inquotes) { - /* extend previous area */ - ifslastp->endoff = end; - INTON; - return; - } - ifsp = (struct ifsregion *)ckmalloc(sizeof (struct ifsregion)); - ifslastp->next = ifsp; - } - ifslastp = ifsp; - ifslastp->next = NULL; - ifslastp->begoff = start; - ifslastp->endoff = end; - ifslastp->inquotes = inquotes; - INTON; -} - - - -/* - * Break the argument string into pieces based upon IFS and add the - * strings to the argument list. The regions of the string to be - * searched for IFS characters have been stored by recordregion. - * CTLESC characters are preserved but have little effect in this pass - * other than escaping CTL* characters. In particular, they do not escape - * IFS characters: that should be done with the ifsregion mechanism. - * CTLQUOTEMARK characters are used to preserve empty quoted strings. - * This pass treats them as a regular character, making the string non-empty. - * Later, they are removed along with the other CTL* characters. - */ -static void -ifsbreakup(char *string, struct arglist *arglist) -{ - struct ifsregion *ifsp; - char *start; - char *p; - char *q; - const char *ifs; - const char *ifsspc; - int had_param_ch = 0; - - start = string; - - if (ifslastp == NULL) { - /* Return entire argument, IFS doesn't apply to any of it */ - appendarglist(arglist, start); - return; - } - - ifs = ifsset() ? ifsval() : " \t\n"; - - for (ifsp = &ifsfirst; ifsp != NULL; ifsp = ifsp->next) { - p = string + ifsp->begoff; - while (p < string + ifsp->endoff) { - q = p; - if (*p == CTLESC) - p++; - if (ifsp->inquotes) { - /* Only NULs (should be from "$@") end args */ - had_param_ch = 1; - if (*p != 0) { - p++; - continue; - } - ifsspc = NULL; - } else { - if (!strchr(ifs, *p)) { - had_param_ch = 1; - p++; - continue; - } - ifsspc = strchr(" \t\n", *p); - - /* Ignore IFS whitespace at start */ - if (q == start && ifsspc != NULL) { - p++; - start = p; - continue; - } - had_param_ch = 0; - } - - /* Save this argument... */ - *q = '\0'; - appendarglist(arglist, start); - p++; - - if (ifsspc != NULL) { - /* Ignore further trailing IFS whitespace */ - for (; p < string + ifsp->endoff; p++) { - q = p; - if (*p == CTLESC) - p++; - if (strchr(ifs, *p) == NULL) { - p = q; - break; - } - if (strchr(" \t\n", *p) == NULL) { - p++; - break; - } - } - } - start = p; - } - } - - /* - * Save anything left as an argument. - * Traditionally we have treated 'IFS=':'; set -- x$IFS' as - * generating 2 arguments, the second of which is empty. - * Some recent clarification of the Posix spec say that it - * should only generate one.... - */ - if (had_param_ch || *start != 0) - appendarglist(arglist, start); -} - - static char expdir[PATH_MAX]; #define expdir_end (expdir + sizeof(expdir)) @@ -1264,7 +1167,7 @@ expmeta(char *enddir, char *name, struct while (! int_pending() && (dp = readdir(dirp)) != NULL) { if (dp->d_name[0] == '.' && ! matchdot) continue; - if (patmatch(start, dp->d_name, 0)) { + if (patmatch(start, dp->d_name)) { namlen = dp->d_namlen; if (enddir + namlen + 1 > expdir_end) continue; @@ -1354,7 +1257,7 @@ match_charclass(const char *p, wchar_t c */ static int -patmatch(const char *pattern, const char *string, int squoted) +patmatch(const char *pattern, const char *string) { const char *p, *q, *end; const char *bt_p, *bt_q; @@ -1372,16 +1275,12 @@ patmatch(const char *pattern, const char goto backtrack; return 1; case CTLESC: - if (squoted && *q == CTLESC) - q++; if (*q++ != *p++) goto backtrack; break; case CTLQUOTEMARK: continue; case '?': - if (squoted && *q == CTLESC) - q++; if (*q == '\0') return 0; if (localeisutf8) { @@ -1426,8 +1325,6 @@ patmatch(const char *pattern, const char *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Dec 31 18:12:37 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5F161A56424; Thu, 31 Dec 2015 18:12:37 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2C098178B; Thu, 31 Dec 2015 18:12:37 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVICapF097499; Thu, 31 Dec 2015 18:12:36 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVICaUp097497; Thu, 31 Dec 2015 18:12:36 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201512311812.tBVICaUp097497@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Thu, 31 Dec 2015 18:12:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292992 - in head/sys/dev/usb: . net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 18:12:37 -0000 Author: kp Date: Thu Dec 31 18:12:35 2015 New Revision: 292992 URL: https://svnweb.freebsd.org/changeset/base/292992 Log: Add suppoort for the Sitecom LN-031 This is an AX88178 chip, which we already support so all we have to do is add the USB product and vendor ID. Modified: head/sys/dev/usb/net/if_axe.c head/sys/dev/usb/usbdevs Modified: head/sys/dev/usb/net/if_axe.c ============================================================================== --- head/sys/dev/usb/net/if_axe.c Thu Dec 31 17:51:15 2015 (r292991) +++ head/sys/dev/usb/net/if_axe.c Thu Dec 31 18:12:35 2015 (r292992) @@ -175,6 +175,7 @@ static const STRUCT_USB_HOST_ID axe_devs AXE_DEV(PLANEX3, GU1000T, AXE_FLAG_178), AXE_DEV(SITECOM, LN029, 0), AXE_DEV(SITECOMEU, LN028, AXE_FLAG_178), + AXE_DEV(SITECOMEU, LN031, AXE_FLAG_178), AXE_DEV(SYSTEMTALKS, SGCX2UL, 0), #undef AXE_DEV }; Modified: head/sys/dev/usb/usbdevs ============================================================================== --- head/sys/dev/usb/usbdevs Thu Dec 31 17:51:15 2015 (r292991) +++ head/sys/dev/usb/usbdevs Thu Dec 31 18:12:35 2015 (r292992) @@ -4203,6 +4203,7 @@ product SITECOMEU RTL8188CU_1 0x0052 RTL product SITECOMEU RTL8188CU_2 0x005c RTL8188CU product SITECOMEU RTL8192CU 0x0061 RTL8192CU product SITECOMEU LN032 0x0072 LN-032 +product SITECOMEU LN031 0x0056 LN-031 product SITECOMEU LN028 0x061c LN-028 product SITECOMEU WL113 0x9071 WL-113 product SITECOMEU ZD1211B 0x9075 ZD1211B From owner-svn-src-all@freebsd.org Thu Dec 31 18:16:05 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AE168A56524; Thu, 31 Dec 2015 18:16:05 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mx1.sbone.de (mx1.sbone.de [IPv6:2a01:4f8:130:3ffc::401:25]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 14B81198B; Thu, 31 Dec 2015 18:16:05 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.sbone.de (Postfix) with ESMTPS id 9DD1025D37D1; Thu, 31 Dec 2015 18:16:01 +0000 (UTC) Received: from content-filter.sbone.de (content-filter.sbone.de [IPv6:fde9:577b:c1a9:31::2013:2742]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id C0F09C76FE0; Thu, 31 Dec 2015 18:16:00 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587]) by content-filter.sbone.de (content-filter.sbone.de [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024) with ESMTP id Jj_M4QoVjdDs; Thu, 31 Dec 2015 18:15:57 +0000 (UTC) Received: from [IPv6:fde9:577b:c1a9:4410:6d48:e7a2:24b8:358e] (unknown [IPv6:fde9:577b:c1a9:4410:6d48:e7a2:24b8:358e]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id E51C2C76FD4; Thu, 31 Dec 2015 18:15:56 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r292987 - in head/sys/compat/linuxkpi/common: include/linux src From: "Bjoern A. Zeeb" In-Reply-To: <201512311230.tBVCUJB7094023@repo.freebsd.org> Date: Thu, 31 Dec 2015 18:15:37 +0000 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <1F2A43B0-6A36-4C8C-B09C-5BA66B3BFE6C@FreeBSD.org> References: <201512311230.tBVCUJB7094023@repo.freebsd.org> To: Hans Petter Selasky X-Mailer: Apple Mail (2.2104) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 18:16:05 -0000 > On 31 Dec 2015, at 12:30 , Hans Petter Selasky = wrote: >=20 > Author: hselasky > Date: Thu Dec 31 12:30:19 2015 > New Revision: 292987 > URL: https://svnweb.freebsd.org/changeset/base/292987 >=20 > Log: > Minor LinuxKPI code cleanup: > - Declare some static functions in linux_compat.c instead if inside > various header files. > - Prefix FreeBSD local functions in the LinuxKPI with "linux_" to > avoid symbol name conflicts in the future and to make debugging > easier. > - Make the "struct kobj_ktype" declaractions constant to shave off a > few bytes from the data segment. >=20 > MFC after: 1 week > Sponsored by: Mellanox Technologies >=20 > Modified: > head/sys/compat/linuxkpi/common/include/linux/cdev.h > head/sys/compat/linuxkpi/common/include/linux/device.h > head/sys/compat/linuxkpi/common/include/linux/kobject.h > head/sys/compat/linuxkpi/common/include/linux/miscdevice.h > head/sys/compat/linuxkpi/common/src/linux_compat.c > head/sys/compat/linuxkpi/common/src/linux_pci.c I can only guess if it was this commit? This is i386.LINT* erroring = (but there might be other kernels as well; don=E2=80=99t know yet): linking kernel cm.o: In function `ib_cm_init': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/cm.c:(.text+0x81= f5): undefined reference to `class_root' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/cm.c:(.text+0x82= 7d): undefined reference to `kobject_release' cm.o: In function `cm_add_one': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/cm.c:(.text+0x86= 4f): undefined reference to `kobject_release' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/cm.c:(.text+0x86= 8f): undefined reference to `kobject_release' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/cm.c:(.text+0x88= 5c): undefined reference to `kobject_release' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/cm.c:(.text+0x88= 93): undefined reference to `kobject_release' = cm.o:/scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/cm.c:(.text= +0x88d3): more undefined references to `kobject_release' follow sysfs.o: In function `ib_device_register_sysfs': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/sysfs.c:(.text+0= x489): undefined reference to `kfree_type' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/sysfs.c:(.text+0= x4e5): undefined reference to `kobject_release' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/sysfs.c:(.text+0= x5f5): undefined reference to `kobject_release' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/sysfs.c:(.text+0= x63b): undefined reference to `kobject_release' sysfs.o: In function `add_port': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/sysfs.c:(.text+0= xf3e): undefined reference to `kobject_release' sysfs.o: In function `device_unregister': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/sysfs.c:(.text+0= x1051): undefined reference to `kobject_release' = sysfs.o:/scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/sysfs.c:= (.text+0x1254): more undefined references to `kobject_release' follow sysfs.o: In function `ib_sysfs_setup': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/sysfs.c:(.text+0= x145a): undefined reference to `class_root' sysfs.o: In function `ib_sysfs_cleanup': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/sysfs.c:(.text+0= x14be): undefined reference to `kobject_release' ucm.o: In function `ib_ucm_remove_one': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/ucm.c:(.text+0x7= e4): undefined reference to `kobject_release' ucm.o: In function `ib_ucm_release_dev': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/ucm.c:(.text+0x8= 6c): undefined reference to `kobject_release' ucma.o: In function `ucma_init': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/ucma.c:(.text+0x= 140): undefined reference to `linux_rootdev' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/ucma.c:(.text+0x= 147): undefined reference to `miscclass' ucma.o: In function `misc_deregister': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/ucma.c:(.text+0x= 301): undefined reference to `miscclass' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/ucma.c:(.text+0x= 3bc): undefined reference to `kobject_release' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/ucma.c:(.text+0x= 40b): undefined reference to `kobject_release' user_mad.o: In function `ib_umad_init': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/user_mad.c:(.tex= t+0x1d7): undefined reference to `class_root' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/user_mad.c:(.tex= t+0x2fd): undefined reference to `kobject_release' user_mad.o: In function `ib_umad_add_one': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/user_mad.c:(.tex= t+0xf6e): undefined reference to `kobject_release' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/user_mad.c:(.tex= t+0xfd0): undefined reference to `kobject_release' user_mad.o: In function `put_umad_dev': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/user_mad.c:(.tex= t+0x1458): undefined reference to `kobject_release' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/user_mad.c:(.tex= t+0x14a8): undefined reference to `kobject_release' = user_mad.o:/scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/user_= mad.c:(.text+0x15f2): more undefined references to `kobject_release' = follow uverbs_main.o: In function `ib_uverbs_init': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/uverbs_main.c:(.= text+0x10de): undefined reference to `class_root' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/uverbs_main.c:(.= text+0x1204): undefined reference to `kobject_release' uverbs_main.o: In function `ib_uverbs_add_one': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/uverbs_main.c:(.= text+0x1b0f): undefined reference to `kobject_release' uverbs_main.o: In function `ib_uverbs_remove_one': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/uverbs_main.c:(.= text+0x1cc2): undefined reference to `kobject_release' uverbs_main.o: In function `device_destroy': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/uverbs_main.c:(.= text+0x1e92): undefined reference to `kobject_release' uverbs_main.o: In function `ib_uverbs_cleanup': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/core/uverbs_main.c:(.= text+0x32a6): undefined reference to `kobject_release' = mlx4ib_sysfs.o:/scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/hw/mlx= 4/sysfs.c:(.text+0x755): more undefined references to `kobject_release' = follow mlx4ib_sysfs.o: In function `kobject_create_and_add': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/hw/mlx4/sysfs.c:(.tex= t+0x1417): undefined reference to `kfree_type' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/hw/mlx4/sysfs.c:(.tex= t+0x146a): undefined reference to `kobject_release' mlx4ib_sysfs.o: In function `mlx4_ib_device_unregister_sysfs': = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/hw/mlx4/sysfs.c:(.tex= t+0x1635): undefined reference to `kobject_release' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/hw/mlx4/sysfs.c:(.tex= t+0x166e): undefined reference to `kobject_release' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/hw/mlx4/sysfs.c:(.tex= t+0x16a7): undefined reference to `kobject_release' = /scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/hw/mlx4/sysfs.c:(.tex= t+0x16df): undefined reference to `kobject_release' = mlx4ib_sysfs.o:/scratch/tmp/bz/head.svn/sys/ofed/drivers/infiniband/hw/mlx= 4/sysfs.c:(.text+0x1718): more undefined references to `kobject_release' = follow --- kernel --- *** [kernel] Error code 1 =E2=80=94=20 Bjoern A. Zeeb Charles Haddon Spurgeon: "Friendship is one of the sweetest joys of life. Many might have failed beneath the bitterness of their trial had they not found a friend." From owner-svn-src-all@freebsd.org Thu Dec 31 18:29:26 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1E6B9A56893; Thu, 31 Dec 2015 18:29:26 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E46781E1C; Thu, 31 Dec 2015 18:29:25 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVITPZw000866; Thu, 31 Dec 2015 18:29:25 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVITP0V000865; Thu, 31 Dec 2015 18:29:25 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201512311829.tBVITP0V000865@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Thu, 31 Dec 2015 18:29:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292993 - head/lib/libstand X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 18:29:26 -0000 Author: ian Date: Thu Dec 31 18:29:24 2015 New Revision: 292993 URL: https://svnweb.freebsd.org/changeset/base/292993 Log: When building libstand for arm, don't emit instructions that require relocation fixups unsupported by the self_reloc() code, and don't optimize memcpy/memset using floating point registers, because in a standalone environment nothing has initialized the fpu hardware. Modified: head/lib/libstand/Makefile Modified: head/lib/libstand/Makefile ============================================================================== --- head/lib/libstand/Makefile Thu Dec 31 18:12:35 2015 (r292992) +++ head/lib/libstand/Makefile Thu Dec 31 18:29:24 2015 (r292993) @@ -44,6 +44,12 @@ SRCS+= bcmp.c bcopy.c bzero.c ffs.c memc .if ${MACHINE_CPUARCH} == "arm" .PATH: ${LIBC_SRC}/arm/gen +# Do not generate movt/movw, because the relocation fixup for them does not +# translate to the -Bsymbolic -pie format required by self_reloc() in loader(8). +# Also, the fpu is not available in a standalone environment. +CFLAGS.clang+= -mllvm -arm-use-movt=0 +CFLAGS.clang+= -mfpu=none + # Compiler support functions .PATH: ${LIBSTAND_SRC}/../../contrib/compiler-rt/lib/builtins/ # __clzsi2 and ctzsi2 for various builtin functions From owner-svn-src-all@freebsd.org Thu Dec 31 18:45:03 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB9FEA56EB7; Thu, 31 Dec 2015 18:45:03 +0000 (UTC) (envelope-from jtl@freebsd.org) Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0119.outbound.protection.outlook.com [207.46.100.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "MSIT Machine Auth CA 2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 39400180C; Thu, 31 Dec 2015 18:45:02 +0000 (UTC) (envelope-from jtl@freebsd.org) Received: from BY2PR05CA047.namprd05.prod.outlook.com (10.141.250.37) by BY1PR0501MB1381.namprd05.prod.outlook.com (10.160.107.139) with Microsoft SMTP Server (TLS) id 15.1.361.13; Thu, 31 Dec 2015 18:29:20 +0000 Received: from BL2FFO11OLC008.protection.gbl (2a01:111:f400:7c09::168) by BY2PR05CA047.outlook.office365.com (2a01:111:e400:2c5f::37) with Microsoft SMTP Server (TLS) id 15.1.361.13 via Frontend Transport; Thu, 31 Dec 2015 18:29:20 +0000 Authentication-Results: spf=softfail (sender IP is 66.129.239.19) smtp.mailfrom=freebsd.org; freebsd.org; dkim=none (message not signed) header.d=none;freebsd.org; dmarc=none action=none header.from=freebsd.org; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning freebsd.org discourages use of 66.129.239.19 as permitted sender) Received: from p-emfe01b-sac.jnpr.net (66.129.239.19) by BL2FFO11OLC008.mail.protection.outlook.com (10.173.160.143) with Microsoft SMTP Server (TLS) id 15.1.355.15 via Frontend Transport; Thu, 31 Dec 2015 18:29:20 +0000 Received: from magenta.juniper.net (172.17.27.123) by p-emfe01b-sac.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.123.3; Thu, 31 Dec 2015 10:29:16 -0800 Received: from [172.29.33.31] ([172.29.33.31]) by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id tBVITCD93990; Thu, 31 Dec 2015 10:29:13 -0800 (PST) (envelope-from jtl@freebsd.org) User-Agent: Microsoft-MacOutlook/14.5.9.151119 Date: Thu, 31 Dec 2015 13:29:12 -0500 Subject: Re: svn commit: r292955 - head/lib/libmd From: "Jonathan T. Looney" Sender: Jonathan Looney To: Bruce Evans CC: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Message-ID: Thread-Topic: svn commit: r292955 - head/lib/libmd References: <201512301804.tBUI4oGp065466@repo.freebsd.org> <20151231115651.R995@besplex.bde.org> In-Reply-To: <20151231115651.R995@besplex.bde.org> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC008; 1:gGOwnbLeHJ6myRWB98EeJ/7TK3S8wkVOWi2a6sOQifKptR0qskfde/v38xlmP5LuA+FklAVhRGzPXRyywmyq9aI7JbhXAhmOshPOlJ3cuIDHLsj6IkMKSYXJJknmuySE5gXejf4l3k0jlL7/xp9uphN0TDcZtn1Js8QfxPmJzc2pRNiblXOwCJN3HsyMY84dqtSmQH0jL5IjpPztcm/1rdWYhTqcw4qoCVmbtNGhYJh/iyY2ikRjbn742OnVbiii8Ul/2iw+O0tsaNUikn2V5CHzndhTBHlvufuLGOh0kJD1D/Fy5qpf4uBAy+DOucA5X/9HQ+h98lMgUXoCIv8YpiwQTODaY3OJ7eciSQLAMeB92ZA7f1QQxyCA0q+OgdDuRJaWJ+MK+9mW7ohwj8R6pQ== X-Forefront-Antispam-Report: CIP:66.129.239.19; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(377454003)(189002)(24454002)(199003)(479174004)(4001350100001)(47776003)(2950100001)(230700001)(92566002)(97736004)(46406003)(6806005)(50986999)(50466002)(16796002)(4326007)(586003)(54356999)(69596002)(23726003)(81156007)(76176999)(5001960100002)(1220700001)(83506001)(1096002)(11100500001)(36756003)(189998001)(87936001)(105596002)(86362001)(106466001)(77096005)(19580405001)(19580395003)(110136002)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:BY1PR0501MB1381; H:p-emfe01b-sac.jnpr.net; FPR:; SPF:SoftFail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0501MB1381; 2:8EaYlhfaKUgz5DWjhg54OH3rbwt8JLAJlnq712yKZ4ItjY86HVWhYOxDgVhjJyaEkeRNC3a3DVykoHvSurtb4KiUTUCmzGYO71z8N2TbKK2FgjK9rtMgRirK0sU0GsIdYlbOKwIf+i2ZxxA9TF5sew==; 3:7fT/18wvYl7ibSToH//cKrlobKZv4OqIIKFnI5QfFbRiu4zslMUs4o1RY/fHuIElb8bNVyXVNldUZKxrDaAbSdTD43XovxqeZgtSwSCpu6k564O5tlZW3wApDUYL84i/Kmvp4ft/hC0phPve66kAR126d3exB8TDx5Ql+qm6dJ8VbBRXZDd6XIU0tTf+P1Hb4QIs3FkRJpiJjSo/5kbYQT2CsHTdhQ91wmJOb0ls+j0=; 25:fI0I8Ws7fxxbf4b9ZV5hcUSQyH/M2qoRCz9RgILc25AnYYRBUUVSrzKxxrTJhTUeJAyIiRPV8rsCi5S4ZN5fzUvsZfozacXDIFDLX3ebHrW29QeIQS+Vw79n9MHlQqIclL27DVL2V1wylKHh3fSfzlEHUohQu2agp2XUDlSwFNBbLAIVH58zl/W5iU0clm9iI5tlKpxyoEpxFBSGyggK6ONDTVyI4BeoT23XjopLCyudsvWw5brN2Vo9LWL13Jya6Av2qmHPIyPkcmP/ARdjjg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0501MB1381; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0501MB1381; 20:2M7brepewhJZRi2iTKwaGoThHbiNmd9cN36X7agXt9Sc/TrDO9p7iZDnssWyEXUOa8tNpouZPJrM29uesdTI8R4X7aHpv6/kCyJNqjmg7H42N5qcVm8DPm3NRA/bvv7dWaAXoqONCMrd3WIFHwfIxK/4QGz+92AjdBQmzAQzoPXXhzM02POy99bs+VAb8XGsobuKthiVtl0/356haLeVRmBBFDR59Kw1MXmmx3wD0i1lr9SVrBs6d3aksMivETmsLq4VeN/gcSedQtA97cSwij+eZW/cc19krkVej+Q0V5BZdRUn7GoUg6zjQ+DPWQvw4XGWDrW7vS43SDTHz0m70/69ozY9Kdc9JOXdM5/BeHW8AKNyr1534IfHaReaidsTE+RoK1bdmUmAEsB7tzpdcEGRdcSHmeqCTSMTN4pso3oJnu4ZqfriBwnU+Wl2/tXKbmlEg+3uMhvvUGfuBxTkrEtib3MJXxqxay9MS3zrTIo5oQyQILfd5thbUmEOcDGC; 4:h16YszazFTe0n1loUyfB7nBwPERl6+rG4xLIK7PjKKO+LFjyO+JCs4PXb2fgYqgg1b4Sf6EsZ/abC9dhDzPPtjerwYmjrf7iuN2PuqAdYoxBlm4g24t7m3B/He2P52KoLGdFYNktS8mUQUvj0mSyKxQ0nxeVyiPMgsxxd4A80qPiI2E1Y6/1v7ql+d0r2OLGxG0VW4rRjwXMehAC07McGvEWL8yu4W9Vear8VppXZ7fl9OlEllTDq13BxvlXOwoL+3J5ow6Nv2oqXNZUghKJWjkFMo6KeG+5SBn/CW9qmfkc94qE69v1oAbsIe5TBcQUD6VAFlcmZfKOZWk2NvIJhbydhj+Vn+UcghY3IJLGrgWLdjlJYx8snaeBvCrhi1qJ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(10201501046)(3002001); SRVR:BY1PR0501MB1381; BCL:0; PCL:0; RULEID:; SRVR:BY1PR0501MB1381; X-Forefront-PRVS: 08076ABC99 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR0501MB1381; 23:YeJKbtVFhv5a+NZK0y2aaZ8ywnw5hbL4G1EXBMg?= =?us-ascii?Q?MoyaBVqV1HGyqD+2VtnHhbfuPXUukI7BmnHNXwr8MKBF0pvpvGpjhSUABNqD?= =?us-ascii?Q?hQ6vkBzA/w6tGgG1MplvIST/wsOxQjdgEcdyH6lUjRxhE0Z1JWoAv+09JDJ5?= =?us-ascii?Q?rhS5vHeTGre2yzOBZRYF9jioTk/l5oGAox+RIkL/ykBbx4BKO6UHfKs8DWaN?= =?us-ascii?Q?QkWxmlqmeETJW30Pzlv/9hapiF+f+lyROjyLFfpw7EePV02w4981gRdneDxK?= =?us-ascii?Q?U8cdjgsYvNOV6sxxvXTbPh04D+7Pra3kIJZ3Y6p/QF4jq8TqDUBISRpiYiFk?= =?us-ascii?Q?lIneCfSCGuavl4J+KQxtH+tgjT3Y+v6p7QlZQS0ZYVRTXM5vIgrDNrkx6m+N?= =?us-ascii?Q?9kloRWWAtH3U/b4j/nU5eNLJLqdswcrwPUkatXvtm3US5CY6Lb4fj8LOCjH1?= =?us-ascii?Q?tHGgnhU9+2BEJLFPpfZ9nmaPcbGV7s7Yfd6abPqm/844+RMIR5LPjLom2FHU?= =?us-ascii?Q?Oytg7ZB2v/vyO1X2ohXQ4FvpPCgbH62KOjULWCN0wleEZ7Qvz2orLdUx93wF?= =?us-ascii?Q?YLIwkT8iaYq5qNXEZkbiMaTNuLqTfblXe6sgMGjAILNdnZXeDvEokRE+YlvD?= =?us-ascii?Q?9wZYeTu6rM6vSqO8mRFRhRsArcMRsxkU0DG2pQ7NTuv1MOjZzsC3oQX+ViQJ?= =?us-ascii?Q?pZS+P8kd3caO1Ea09Wh7f2fyKY3U69kTNzccGSf8Rfy5Wb/XDuEexCDex+bl?= =?us-ascii?Q?FOIrkftq5FnV9voU5Vn3lwbIkOZznAVlAZCutkkkIb+3oxu4DasTuPsKzRjf?= =?us-ascii?Q?geax8uN8qfTyn5PQ5uRFZke36hOkP+7C6hpSbuLGvY1MmUxY7PqwIiJr6tWt?= =?us-ascii?Q?5wcilhBJYwiamL+LFhdv3ockmls6LOOzR4vbZNLS6r1+6ZSLyO7SnILgyIe0?= =?us-ascii?Q?yrQ1Qx6L30NeaeEm4SuuwbKQxpa8wNHXFUl5k0Zq1c3j+GXrw3TslCfcUH9x?= =?us-ascii?Q?B8LgCZnIdtLRmHtM+6kH5AKExLIQBKKE3wEcI1RiTUzCwQ6fWXo7XLqk/nzi?= =?us-ascii?Q?nwk7d5xKuHfnbQmTQ/oBi2v7Yf6yj?= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0501MB1381; 5:narI+FHB9a8Emjzfg/1tBQ+RAPze/CO+DiOUI+fEewo0cQHTc+7wjOwJMmof4oSx5+oyuL1LHkCzZgI55f22zGL8E/JgORKWRgDmMjDTdiXDxEKGUQxn97R0yAQGiadvyfqcw8KxIubMrudQW2a37A==; 24:iAuG9vCHvMI2d/F59imxJKCPHWq1TIJApNRTByqIrC+LtACOskc1pROelzd3nQP+mshzCBVDaQHaWvR9m1dL+kqdUEBiu/gcOi08vvJbcWs= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: juniper.net X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2015 18:29:20.0107 (UTC) X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.19]; Helo=[p-emfe01b-sac.jnpr.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0501MB1381 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 18:45:03 -0000 Dear Bruce, On 12/30/15, 10:03 PM, "Bruce Evans" wrote: >On Wed, 30 Dec 2015, Jonathan T. Looney wrote: > >> Log: >> Fix a file descriptor leak in mdXhl.c (which is used by numerous >>hashing >> algorithms. > >This code had amazingly low quality and is still especially broken near >the main leak fixed. Thanks for your attention to our code, and for pointing out these bugs. I just volunteered to fix the "new" Coverity alert for a file descriptor leak. (It was a "new" alert due to r292782, which reused this file for SHA384.) However, I agree that there are still bugs in the code, and I'm happy to work on those, too. Happy New Year! Jonathan From owner-svn-src-all@freebsd.org Thu Dec 31 18:46:38 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DDEACA56F39; Thu, 31 Dec 2015 18:46:38 +0000 (UTC) (envelope-from jtl@freebsd.org) Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0142.outbound.protection.outlook.com [207.46.100.142]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "MSIT Machine Auth CA 2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4385119E6; Thu, 31 Dec 2015 18:46:37 +0000 (UTC) (envelope-from jtl@freebsd.org) Received: from SN1PR05CA0034.namprd05.prod.outlook.com (10.163.68.172) by BY1PR0501MB1381.namprd05.prod.outlook.com (10.160.107.139) with Microsoft SMTP Server (TLS) id 15.1.361.13; Thu, 31 Dec 2015 18:32:08 +0000 Received: from BL2FFO11FD048.protection.gbl (2a01:111:f400:7c09::112) by SN1PR05CA0034.outlook.office365.com (2a01:111:e400:5197::44) with Microsoft SMTP Server (TLS) id 15.1.361.13 via Frontend Transport; Thu, 31 Dec 2015 18:32:07 +0000 Authentication-Results: spf=softfail (sender IP is 66.129.239.19) smtp.mailfrom=freebsd.org; optusnet.com.au; dkim=none (message not signed) header.d=none;optusnet.com.au; dmarc=none action=none header.from=freebsd.org; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning freebsd.org discourages use of 66.129.239.19 as permitted sender) Received: from p-emfe01b-sac.jnpr.net (66.129.239.19) by BL2FFO11FD048.mail.protection.outlook.com (10.173.161.210) with Microsoft SMTP Server (TLS) id 15.1.355.15 via Frontend Transport; Thu, 31 Dec 2015 18:32:07 +0000 Received: from magenta.juniper.net (172.17.27.123) by p-emfe01b-sac.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.123.3; Thu, 31 Dec 2015 10:32:06 -0800 Received: from [172.29.33.31] ([172.29.33.31]) by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id tBVIW2D96601; Thu, 31 Dec 2015 10:32:02 -0800 (PST) (envelope-from jtl@freebsd.org) User-Agent: Microsoft-MacOutlook/14.5.9.151119 Date: Thu, 31 Dec 2015 13:32:02 -0500 Subject: Re: svn commit: r292955 - head/lib/libmd From: "Jonathan T. Looney" Sender: Jonathan Looney To: Allan Jude , Bruce Evans CC: , , Message-ID: Thread-Topic: svn commit: r292955 - head/lib/libmd References: <201512301804.tBUI4oGp065466@repo.freebsd.org> <20151231115651.R995@besplex.bde.org> <20151231143314.Y1520@besplex.bde.org> <5684D606.3080609@freebsd.org> In-Reply-To: <5684D606.3080609@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD048; 1:pKyZDNcYafqHQLYzpB97ZLjnI7FflffRyLWizDVm8cLdDSmiVdrxxmG1Ma5atZQtpQ2/z2Drjd3rFDemVpTF14lWb87tl2rInp5aFVqKbhItLDZbfipE+jJfBaHdDypSAM1soCptsnxRguhtiEid7GwgI8uEF3iv9c3N9RgZRBWA8KGe9iv1MHs8Le+LPxPJ7c6TSqdTsw3LA9kdccjkFL81GRaRCTdsjPAztCAciZMAIJkASLm4eefRbUpH4D+4mQK7Ik9rvnv1hF2SHwWNl6H9xzPdLvfczACpNk6V0TLV78RBtUo+TwJyb+EN+4SPNaRqAFr6qCjy8rDw6pdH2ndTeQibW+Maq0vbTYjYZK7wc3nvjlMPmmiV1zgkQe7/mJhQdvYVB7TKqGEbp31JJg== X-Forefront-Antispam-Report: CIP:66.129.239.19; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(377454003)(189002)(24454002)(199003)(479174004)(4001350100001)(47776003)(2950100001)(230700001)(92566002)(97736004)(46406003)(6806005)(50986999)(50466002)(16796002)(4326007)(5001770100001)(586003)(54356999)(69596002)(23726003)(81156007)(93886004)(76176999)(5001960100002)(1220700001)(83506001)(1096002)(11100500001)(36756003)(189998001)(87936001)(105596002)(575784001)(86362001)(106466001)(77096005)(19580405001)(19580395003)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:BY1PR0501MB1381; H:p-emfe01b-sac.jnpr.net; FPR:; SPF:SoftFail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0501MB1381; 2:ZvY/hlnq5AkDnmgfDWOSAtwcr7MTFdHfWlJWiqlFuAaVdUuUqoNhuomk58O0cfh876iSE9FFiZ93ernI7XPkHGgsj04U31x2zKArfupjwQKB8dP8N76oe9Ad/9/pdG+d8h1nB4tNwQZMdl6mSlTOKg==; 3:guDUEuc5SzJrecu91DNdThFoKgvHK+ETjYA04ZI9XBw7vR0BYStcb/7OXYVu8eXnWIsm0KDBTqC20CLLw4gaYpNl9FblWws0i/2kxiK/IW9TsSY0L5wywGKGOid+YD0hshI57vRsFJK2wdlbIUn/y6oZsM44qlLIRDtt6p7iYM4DylRZQCk+Y7fnvYd8gJgv+2IuW/7+UV6YgQklHY3a1dLU2GGN3xDQvGxUr4VdyDY=; 25:QN5dlLu5LuJ9VfpvSEY2uXkXHenl3fjBIfMLJNJsfmMGdPt+xRqmzkP5S3nZkgEo5QyE6BFT6k4ETbTI2AfQShfsjRVZVOk8YXlqjpPjNjzAwaZROxwmcNoadyFqzFcdSm46PPcUAfh5Sn0ukW+boePKbdE4PDImUTS0L3kxQ0yyYt9UTAsWW8LyOraerqd3dk1NDpIrSTyAqfGCFHSUD0B6SSl07gLFHtYwGogrZexGc/maWv02EpBGWLp9cS1k6mL1QHnWLM8pYOgHTTW6AA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0501MB1381; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0501MB1381; 20:PsTzCi9d/SF6ZiBg6ZVxKQ8VcqMycpbb/Oxidav4VGoqRIImAHIVzaRiTWhr3z2PZDuXfoyyRgHxQFa4zcXLPokSDjefvUg4m27dHPVugSxv4rNUpoxCAH/IbjCRBszzpxn3tEMZjUyapVge7GIQWvVydrFr/kLjYJwJYOvHibI5N05eUnBwOFk7PyTeenCu+Pd0GgTOo4OJ218hpbxsNgz9Q4/RLcSZhWkEdy+irjeu2yLWzoJjxQhv86KCssS82f11yMaMr36KzQXlSwLgmjkIH8UBOQYUeUZNwJV8qPnMrcfV2K/RQcmuPaBaZDLHIZj0Di9mLKNw8dnDZrurFIMNOTOLTCERYm9IbkHpq4E5wV8XlDMifcyAcmL5JZEGmq1492Ge33zjh1WaQYVhBVafE9cJsxWgHr5dgrZRAZkzqxDaPwREJiFe4sMbqTQylCb5if5fOM9bHqOVdjOWacmINCaLOkTMBQPBkn++dKlJv5D4fkZd4trr7ssS+o8s; 4:J+RrDpNJBJZcuX3AqHIodnQJecahVRDXUnK7OOoELa5eXxBAzdZdANxQN3x/ImBNTqIVsVKw2xjRKQlzNdZ6XWbhgviPIsQsHeNOne9qfwYNefK7F1bnbQrIQc61r6Ux0ehsfx8FItLSuOSDAV9Nc+f8Tw0wwdBEw3OJSAP+071izTf3N3gFllmcTldvdnYuGiwMLvmjroum8GnUHPSoa26PlNeFiMYIwzrdq+BpGfMK5Hr0pxTIY/c/1kSqdn2VnBJ86tCkTwz060AcgNNBWh4yHhG8a+gtzK5PKPDIXgsne6CmXJI/l/3/Z0GtXZu7J+xl+v3FSWQMMDEC4RMZA7derA2MHDppaTePq6nQCrCigPInZnobNhV8DKVhik2G X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(10201501046)(3002001); SRVR:BY1PR0501MB1381; BCL:0; PCL:0; RULEID:; SRVR:BY1PR0501MB1381; X-Forefront-PRVS: 08076ABC99 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR0501MB1381; 23:rltxLYZgfjFcd0YI1O8/arNmk8z9QSezacizPhG?= =?us-ascii?Q?uZyDZAxI/T73ufGdkMtlpZMB4vG2YwsraCwSMo949q2FeKq6CyvT3OBMWAQ1?= =?us-ascii?Q?samSAhqTM+ujX+p6iFscSHTjjr6MJKHE9YCFiIjuLM9l5jl0cDIV7j7Hceql?= =?us-ascii?Q?ZPvfN+4rp6lGsDhBZTwOnTPN02v3SP9bW1bmNkQIpS+Xclrraaac4r7Tu5OH?= =?us-ascii?Q?opua+P5MMk/DIDMsvKIDO0PYsyhEa425y07JAo1W3sxLGyyajHvUChv7ouYc?= =?us-ascii?Q?sCxLLXqzIxZMjTfC47lVlbzh31fW8AQitilBD+PJo4kubriQCsthWRS9mC7h?= =?us-ascii?Q?QgQjfvRXxjLF4j4LQjrVMX5srEwSmNydtMblsgxKixXUOtmQi8uwzeh1kYdS?= =?us-ascii?Q?V84WqocsqtyJQYgJz1aN+8X5h9Jt6AeubTtQLHtMt3G8k2xM54GyAd9IFtLH?= =?us-ascii?Q?B/1nDGHFGiOqkVtCJAOUk1OP7YgZkJqyzLd5orPfI1NvH5MI9vKFT3vIDWqg?= =?us-ascii?Q?0l2nabonQ4jDEccEOcqXT/KgiS4VANOhH5n+dYGoud7kn6wgIQIWhnRm/EX9?= =?us-ascii?Q?sD5vyPpjMua9AJn+yqNcStP2e+8+rejiJ1d7t2gPbmKEiQyqgMbaK0QbYXRm?= =?us-ascii?Q?71/+vJYQxSlBKn0wuQs+U5J+dAZv1iT1KhhZ67d/KobKAn/3tiSIOFDaZKm5?= =?us-ascii?Q?pNAO1UDW9/CDZKgpzwiH2xawB+oZxptoQ5b0s35UizdmVKUhnOKaoBDh06Iw?= =?us-ascii?Q?R9E6Upwo61nsvcxWywsgL1i5GDMVtsxkcW3Rl7JW7/t+leBye7ayrUaWGnGO?= =?us-ascii?Q?PKjz1IJAcfae5EO+UcYfJxrhYn8SmbUInzZ+k2DLlaFuScKTdNth/MBGNckD?= =?us-ascii?Q?ZMWOcsWJIOL7Xjtq1XYTRdMLp0SX/DByoF9RUMcSFdYyDuANWbSS47kXGt9h?= =?us-ascii?Q?S7bxu+Db2S3gpsJ9202OydTvxgKpdS9CUulO9AuQByJ9k+Al7DA8SOJEBwlo?= =?us-ascii?Q?QHqnAmcd5vxQsjSzlIYPHP/NkRwpZg8UguQZpZxvrBWwa/5Gyz+J4q9Xff+B?= =?us-ascii?Q?bFA0IDWShg7soJPifk5bKNcLCMlOXe7/Wc+dDMyjmWPh4J7flFACrBQuhoTt?= =?us-ascii?Q?tmn9eP5mN9nXmXkzIn/Hce+LWnURSjNHX?= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0501MB1381; 5:x+n8do2IKQd/woo0hhgVBy91Wc0oCqgGosFs/o3a1O/Dg/XIyMbvZVjj9aJNAbutDN1XVYxwTanUzDUGA1JI92stXk8nxU5cUhCqKlMRKGG/8MQW6Fae4qZNa2l5mCEcB4nQsNWK2OzjkLBxnAA1lA==; 24:/I/vKTdnRJaIgXrqKsU1aq8HDJxd/VBWC2g8C0GatX44385/hVIFhf/QFU6VuldAGLSljxTIntBdoaEddTj/oA4ZgcR63JniHO5QFdrgG1c= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: juniper.net X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2015 18:32:07.6114 (UTC) X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.19]; Helo=[p-emfe01b-sac.jnpr.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0501MB1381 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 18:46:39 -0000 On 12/31/15, 2:15 AM, "Allan Jude" wrote: >It seems these problems also slow things down, a lot: > ># time md5 /media/md5test/bigdata >MD5 (/media/md5test/bigdata) = 6afad0bf5d8318093e943229be05be67 >4.310u 3.476s 0:07.79 99.8% 20+167k 0+0io 0pf+0w ># time env LD_PRELOAD=/usr/obj/media/svn/md5/head/tmp/lib/libmd.so >/usr/obj/media/svn/md5/head/sbin/md5/md5 /media/md5test/bigdata >MD5 (/media/md5test/bigdata) = 6afad0bf5d8318093e943229be05be67 >4.133u 0.354s 0:04.49 99.7% 20+167k 1+0io 0pf+0w > >(file is fully cached in ZFS ARC, dd reads it at 11GB/s) > >Will investigate more tomorrow. md5 will be slower than dd due to the extra processing it needs to do to generate the hash. I suspect that explains the difference you're seeing between those utilities. Jonathan From owner-svn-src-all@freebsd.org Thu Dec 31 18:47:56 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 496BEA56FBD; Thu, 31 Dec 2015 18:47:56 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 23AC61B48; Thu, 31 Dec 2015 18:47:56 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVIltMO007471; Thu, 31 Dec 2015 18:47:55 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVIltHT007469; Thu, 31 Dec 2015 18:47:55 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201512311847.tBVIltHT007469@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Thu, 31 Dec 2015 18:47:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292994 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 18:47:56 -0000 Author: jilles Date: Thu Dec 31 18:47:54 2015 New Revision: 292994 URL: https://svnweb.freebsd.org/changeset/base/292994 Log: sh: Perform pathname generation during the first expansion phases. This avoids the need to add and remove CTLESC bytes if pathname generation will not be performed (set -f). Side effect: the order of operations is slightly different: pathname generation in ${$+* $(CMD)} will not see filesystem changes from CMD. Modified: head/bin/sh/expand.c head/bin/sh/expand.h Modified: head/bin/sh/expand.c ============================================================================== --- head/bin/sh/expand.c Thu Dec 31 18:29:24 2015 (r292993) +++ head/bin/sh/expand.c Thu Dec 31 18:47:54 2015 (r292994) @@ -84,7 +84,7 @@ __FBSDID("$FreeBSD$"); enum wordstate { WORD_IDLE, WORD_WS_DELIMITED, WORD_QUOTEMARK }; struct worddest { - struct arglist list; + struct arglist *list; enum wordstate state; }; @@ -102,7 +102,7 @@ static int varisset(const char *, int); static void strtodest(const char *, int, int, int, struct worddest *); static void reprocess(int, int, int, int, struct worddest *); static void varvalue(const char *, int, int, int, struct worddest *); -static void expandmeta(struct arglist *, struct arglist *); +static void expandmeta(char *, struct arglist *); static void expmeta(char *, char *, struct arglist *); static int expsortcmp(const void *, const void *); static int patmatch(const char *, const char *); @@ -162,7 +162,7 @@ stputs_quotes(const char *data, const ch #define STPUTS_QUOTES(data, syntax, p) p = stputs_quotes((data), syntax, p) static char * -nextword(char c, char *p, struct worddest *dst) +nextword(char c, int flag, char *p, struct worddest *dst) { int is_ws; @@ -170,20 +170,23 @@ nextword(char c, char *p, struct worddes if (p != stackblock() || (is_ws ? dst->state == WORD_QUOTEMARK : dst->state != WORD_WS_DELIMITED) || c == '\0') { STPUTC('\0', p); - appendarglist(&dst->list, grabstackstr(p)); + if (flag & EXP_GLOB) + expandmeta(grabstackstr(p), dst->list); + else + appendarglist(dst->list, grabstackstr(p)); dst->state = is_ws ? WORD_WS_DELIMITED : WORD_IDLE; } else if (!is_ws && dst->state == WORD_WS_DELIMITED) dst->state = WORD_IDLE; /* Reserve space while the stack string is empty. */ - appendarglist(&dst->list, NULL); - dst->list.count--; + appendarglist(dst->list, NULL); + dst->list->count--; STARTSTACKSTR(p); return p; } -#define NEXTWORD(c, p, dstlist) p = nextword(c, p, dstlist) +#define NEXTWORD(c, flag, p, dstlist) p = nextword(c, flag, p, dstlist) static char * -stputs_split(const char *data, const char *syntax, char *p, +stputs_split(const char *data, const char *syntax, int flag, char *p, struct worddest *dst) { const char *ifs; @@ -194,16 +197,16 @@ stputs_split(const char *data, const cha CHECKSTRSPACE(2, p); c = *data++; if (strchr(ifs, c) != NULL) { - NEXTWORD(c, p, dst); + NEXTWORD(c, flag, p, dst); continue; } - if (syntax[(int)c] == CCTL) + if (flag & EXP_GLOB && syntax[(int)c] == CCTL) USTPUTC(CTLESC, p); USTPUTC(c, p); } return (p); } -#define STPUTS_SPLIT(data, syntax, p, dst) p = stputs_split((data), syntax, p, dst) +#define STPUTS_SPLIT(data, syntax, flag, p, dst) p = stputs_split((data), syntax, flag, p, dst) /* * Perform expansions on an argument, placing the resulting list of arguments @@ -222,8 +225,10 @@ expandarg(union node *arg, struct arglis { struct worddest exparg; + if (fflag) + flag &= ~EXP_GLOB; argbackq = arg->narg.backquote; - emptyarglist(&exparg.list); + exparg.list = arglist; exparg.state = WORD_IDLE; STARTSTACKSTR(expdest); argstr(arg->narg.text, flag, &exparg); @@ -231,15 +236,17 @@ expandarg(union node *arg, struct arglis STACKSTRNUL(expdest); return; /* here document expanded */ } - if ((flag & EXP_FULL) == 0 || expdest != stackblock() || + if ((flag & EXP_SPLIT) == 0 || expdest != stackblock() || exparg.state == WORD_QUOTEMARK) { STPUTC('\0', expdest); - if (flag & EXP_FULL) - appendarglist(&exparg.list, grabstackstr(expdest)); + if (flag & EXP_SPLIT) { + if (flag & EXP_GLOB) + expandmeta(grabstackstr(expdest), exparg.list); + else + appendarglist(exparg.list, grabstackstr(expdest)); + } } - if (flag & EXP_FULL) - expandmeta(&exparg.list, arglist); - else + if ((flag & EXP_SPLIT) == 0) appendarglist(arglist, grabstackstr(expdest)); } @@ -250,16 +257,16 @@ expandarg(union node *arg, struct arglis * expansion, and tilde expansion if requested via EXP_TILDE/EXP_VARTILDE. * Processing ends at a CTLENDVAR or CTLENDARI character as well as '\0'. * This is used to expand word in ${var+word} etc. - * If EXP_FULL or EXP_CASE are set, keep and/or generate CTLESC + * If EXP_GLOB or EXP_CASE are set, keep and/or generate CTLESC * characters to allow for further processing. * - * If EXP_FULL is set, dst receives any complete words produced. + * If EXP_SPLIT is set, dst receives any complete words produced. */ static char * argstr(char *p, int flag, struct worddest *dst) { char c; - int quotes = flag & (EXP_FULL | EXP_CASE); /* do CTLESC */ + int quotes = flag & (EXP_GLOB | EXP_CASE); /* do CTLESC */ int firsteq = 1; int split_lit; int lit_quoted; @@ -283,7 +290,7 @@ argstr(char *p, int flag, struct worddes if (p[0] == CTLVAR && (p[1] & VSQUOTE) != 0 && p[2] == '@' && p[3] == '=') break; - if ((flag & EXP_FULL) != 0 && expdest == stackblock()) + if ((flag & EXP_SPLIT) != 0 && expdest == stackblock()) dst->state = WORD_QUOTEMARK; break; case CTLQUOTEEND: @@ -293,7 +300,7 @@ argstr(char *p, int flag, struct worddes c = *p++; if (split_lit && !lit_quoted && strchr(ifsset() ? ifsval() : " \t\n", c) != NULL) { - NEXTWORD(c, expdest, dst); + NEXTWORD(c, flag, expdest, dst); break; } if (quotes) @@ -319,7 +326,7 @@ argstr(char *p, int flag, struct worddes */ if (split_lit && !lit_quoted && strchr(ifsset() ? ifsval() : " \t\n", c) != NULL) { - NEXTWORD(c, expdest, dst); + NEXTWORD(c, flag, expdest, dst); break; } USTPUTC(c, expdest); @@ -333,7 +340,7 @@ argstr(char *p, int flag, struct worddes default: if (split_lit && !lit_quoted && strchr(ifsset() ? ifsval() : " \t\n", c) != NULL) { - NEXTWORD(c, expdest, dst); + NEXTWORD(c, flag, expdest, dst); break; } USTPUTC(c, expdest); @@ -438,7 +445,7 @@ expbackq(union node *cmd, int quoted, in struct nodelist *saveargbackq; char lastc; char const *syntax = quoted? DQSYNTAX : BASESYNTAX; - int quotes = flag & (EXP_FULL | EXP_CASE); + int quotes = flag & (EXP_GLOB | EXP_CASE); size_t nnl; const char *ifs; @@ -452,7 +459,7 @@ expbackq(union node *cmd, int quoted, in p = in.buf; lastc = '\0'; nnl = 0; - if (!quoted && flag & EXP_FULL) + if (!quoted && flag & EXP_SPLIT) ifs = ifsset() ? ifsval() : " \t\n"; else ifs = ""; @@ -476,7 +483,7 @@ expbackq(union node *cmd, int quoted, in } else { if (nnl > 0) { if (strchr(ifs, '\n') != NULL) { - NEXTWORD('\n', dest, dst); + NEXTWORD('\n', flag, dest, dst); nnl = 0; } else { CHECKSTRSPACE(nnl + 2, dest); @@ -487,7 +494,7 @@ expbackq(union node *cmd, int quoted, in } } if (strchr(ifs, lastc) != NULL) - NEXTWORD(lastc, dest, dst); + NEXTWORD(lastc, flag, dest, dst); else { CHECKSTRSPACE(2, dest); if (quotes && syntax[(int)lastc] == CCTL) @@ -743,7 +750,7 @@ again: /* jump here after setting a vari case VSPLUS: case VSMINUS: if (!set) { - argstr(p, flag | (flag & EXP_FULL ? EXP_SPLIT_LIT : 0) | + argstr(p, flag | (flag & EXP_SPLIT ? EXP_SPLIT_LIT : 0) | (varflags & VSQUOTE ? EXP_LIT_QUOTED : 0), dst); break; } @@ -763,7 +770,7 @@ again: /* jump here after setting a vari patloc = expdest - stackblock(); subevalvar_trim(p, patloc, subtype, startloc); reprocess(startloc, flag, VSNORMAL, varflags & VSQUOTE, dst); - if (flag & EXP_FULL && *var == '@' && varflags & VSQUOTE) + if (flag & EXP_SPLIT && *var == '@' && varflags & VSQUOTE) dst->state = WORD_QUOTEMARK; break; @@ -860,9 +867,9 @@ strtodest(const char *p, int flag, int s subtype == VSTRIMLEFTMAX || subtype == VSTRIMRIGHT || subtype == VSTRIMRIGHTMAX) STPUTS(p, expdest); - else if (flag & EXP_FULL && !quoted && dst != NULL) - STPUTS_SPLIT(p, BASESYNTAX, expdest, dst); - else if (flag & (EXP_FULL | EXP_CASE)) + else if (flag & EXP_SPLIT && !quoted && dst != NULL) + STPUTS_SPLIT(p, BASESYNTAX, flag, expdest, dst); + else if (flag & (EXP_GLOB | EXP_CASE)) STPUTS_QUOTES(p, quoted ? DQSYNTAX : BASESYNTAX, expdest); else STPUTS(p, expdest); @@ -902,8 +909,8 @@ reprocess(int startloc, int flag, int su zpos += zlen + 1; if (zpos == len + 1) break; - if (flag & EXP_FULL && (quoted || (zlen > 0 && zpos < len))) - NEXTWORD('\0', expdest, dst); + if (flag & EXP_SPLIT && (quoted || (zlen > 0 && zpos < len))) + NEXTWORD('\0', flag, expdest, dst); } } @@ -951,14 +958,15 @@ varvalue(const char *name, int quoted, i strtodest(buf, flag, subtype, quoted, dst); return; case '@': - if (flag & EXP_FULL && quoted) { + if (flag & EXP_SPLIT && quoted) { for (ap = shellparam.p ; (p = *ap++) != NULL ; ) { strtodest(p, flag, subtype, quoted, dst); if (*ap) { if (splitlater) STPUTC('\0', expdest); else - NEXTWORD('\0', expdest, dst); + NEXTWORD('\0', flag, expdest, + dst); } } if (shellparam.nparam > 0) @@ -978,11 +986,11 @@ varvalue(const char *name, int quoted, i break; if (sep[0]) strtodest(sep, flag, subtype, quoted, dst); - else if (flag & EXP_FULL && !quoted && **ap != '\0') { + else if (flag & EXP_SPLIT && !quoted && **ap != '\0') { if (splitlater) STPUTC('\0', expdest); else - NEXTWORD('\0', expdest, dst); + NEXTWORD('\0', flag, expdest, dst); } } return; @@ -1014,40 +1022,34 @@ static char expdir[PATH_MAX]; * The results are stored in the list dstlist. */ static void -expandmeta(struct arglist *srclist, struct arglist *dstlist) +expandmeta(char *pattern, struct arglist *dstlist) { char *p; int firstmatch; - int i; char c; - for (i = 0; i < srclist->count; i++) { firstmatch = dstlist->count; - if (!fflag) { - p = srclist->args[i]; + p = pattern; for (; (c = *p) != '\0'; p++) { /* fast check for meta chars */ if (c == '*' || c == '?' || c == '[') { INTOFF; - expmeta(expdir, srclist->args[i], - dstlist); + expmeta(expdir, pattern, dstlist); INTON; break; } } - } if (dstlist->count == firstmatch) { /* * no matches */ - rmescapes(srclist->args[i]); - appendarglist(dstlist, srclist->args[i]); + rmescapes(pattern); + appendarglist(dstlist, pattern); } else { qsort(&dstlist->args[firstmatch], dstlist->count - firstmatch, sizeof(dstlist->args[0]), expsortcmp); } - } } Modified: head/bin/sh/expand.h ============================================================================== --- head/bin/sh/expand.h Thu Dec 31 18:29:24 2015 (r292993) +++ head/bin/sh/expand.h Thu Dec 31 18:47:54 2015 (r292994) @@ -43,12 +43,15 @@ struct arglist { /* * expandarg() flags */ -#define EXP_FULL 0x1 /* perform word splitting & file globbing */ +#define EXP_SPLIT 0x1 /* perform word splitting */ #define EXP_TILDE 0x2 /* do normal tilde expansion */ #define EXP_VARTILDE 0x4 /* expand tildes in an assignment */ #define EXP_CASE 0x10 /* keeps quotes around for CASE pattern */ #define EXP_SPLIT_LIT 0x20 /* IFS split literal text ${v+-a b c} */ #define EXP_LIT_QUOTED 0x40 /* for EXP_SPLIT_LIT, start off quoted */ +#define EXP_GLOB 0x80 /* perform file globbing */ + +#define EXP_FULL (EXP_SPLIT | EXP_GLOB) void emptyarglist(struct arglist *); From owner-svn-src-all@freebsd.org Thu Dec 31 18:50:46 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EEFB9A550AE; Thu, 31 Dec 2015 18:50:46 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from mx1.scaleengine.net (mx1.scaleengine.net [209.51.186.6]) by mx1.freebsd.org (Postfix) with ESMTP id CF6A21D21; Thu, 31 Dec 2015 18:50:46 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from [10.1.1.2] (unknown [10.1.1.2]) (Authenticated sender: allanjude.freebsd@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id 36366DAD5; Thu, 31 Dec 2015 18:50:40 +0000 (UTC) Subject: Re: svn commit: r292955 - head/lib/libmd To: "Jonathan T. Looney" , Bruce Evans References: <201512301804.tBUI4oGp065466@repo.freebsd.org> <20151231115651.R995@besplex.bde.org> <20151231143314.Y1520@besplex.bde.org> <5684D606.3080609@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Allan Jude Message-ID: <56857911.5010205@freebsd.org> Date: Thu, 31 Dec 2015 13:50:57 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="O083ff9QVAvbmPH4aqR4UNC1wvdF6BD95" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 18:50:47 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --O083ff9QVAvbmPH4aqR4UNC1wvdF6BD95 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 2015-12-31 13:32, Jonathan T. Looney wrote: > On 12/31/15, 2:15 AM, "Allan Jude" wrote: >=20 >> It seems these problems also slow things down, a lot: >> >> # time md5 /media/md5test/bigdata >> MD5 (/media/md5test/bigdata) =3D 6afad0bf5d8318093e943229be05be67 >> 4.310u 3.476s 0:07.79 99.8% 20+167k 0+0io 0pf+0w >> # time env LD_PRELOAD=3D/usr/obj/media/svn/md5/head/tmp/lib/libmd.so >> /usr/obj/media/svn/md5/head/sbin/md5/md5 /media/md5test/bigdata >> MD5 (/media/md5test/bigdata) =3D 6afad0bf5d8318093e943229be05be67 >> 4.133u 0.354s 0:04.49 99.7% 20+167k 1+0io 0pf+0w >> >> (file is fully cached in ZFS ARC, dd reads it at 11GB/s) >> >> Will investigate more tomorrow. >=20 > md5 will be slower than dd due to the extra processing it needs to do t= o > generate the hash. I suspect that explains the difference you're seeing= > between those utilities. >=20 > Jonathan >=20 >=20 >=20 Sorry, you missed my point here. I replaced MDXFile() with the implementation included in my earlier email. Using the newer libmd with that code, cut the time to md5 the SAME data down a lot. I need to do a more scientific test on a box that isn't doing other stuff still though. The comment about dd doing 11GB/s, was just to clarify that I wasn't reading the file from disk, which would introduce other variables. --=20 Allan Jude --O083ff9QVAvbmPH4aqR4UNC1wvdF6BD95 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (MingW32) iQIcBAEBAgAGBQJWhXkVAAoJEBmVNT4SmAt+ILUQAIqfQHl2vbev0r4P50O25avg c4M8u2z+rWZ0ETMKwT1ND5vAA+tCnJ8qC816Pk/RvuJSCBUYTXTRysV00WWGBlyP DcJ43uvOjdRDu8xjOQ7FTsR3F3jXE1Sbf6g8MRO6ZkuPXPrEhFj2ejSBWIIQ2UE6 1KhkMbGUHeRWWiyHA4epCCwiVm9v0jB8Njf7ruZFQeT6OBYEWNqq1RCpwRrsey1b UGUczXjIa530YLZjBIAw1en/Kkm2JrPG9iY3QosVqbmp+jEsKSSqk7CPeKpV+uy0 vmAThXR2p7rb7YRjn/YRw7wDi5ynqaSpzYGQ1AvO+aTU2gE87dTQJdhLzjdEujPs NzgWsT5aZHrlLrXpFuE4rCrmE2yfrpJAOeXdVz6q3Eh3spQXxTNZnD+peM1vA/DC yoNx2mm8Sa/vCvUP2/0nEHJwKzzP02fwXB6RzaXhUfXJzGrMDGSxnSOXW+SYLWU4 oZnC3/2/4wLnJRFuoB0D3M0kyei+JMBF0ZFNY12FDuyZGOQg818PPRlcLR9YdUIm v74O1Am8H42NXCjWreZlWGXXmfK22zixF92K2dk2ySVj+PmbljBjXKzX1M/qzkPL KHeQZiW24C5AUWoiilWEmHZBa9SbxdyyMCesLxVBEM0uySbJUeXyONkR/m6pmjNU q5jvRUJq8CyWeX02BZY+ =89t7 -----END PGP SIGNATURE----- --O083ff9QVAvbmPH4aqR4UNC1wvdF6BD95-- From owner-svn-src-all@freebsd.org Thu Dec 31 18:56:12 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E3D13A55340; Thu, 31 Dec 2015 18:56:12 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B630410F3; Thu, 31 Dec 2015 18:56:12 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVIuBSD010659; Thu, 31 Dec 2015 18:56:11 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVIuB6q010658; Thu, 31 Dec 2015 18:56:11 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201512311856.tBVIuB6q010658@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Thu, 31 Dec 2015 18:56:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292995 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 18:56:13 -0000 Author: jilles Date: Thu Dec 31 18:56:11 2015 New Revision: 292995 URL: https://svnweb.freebsd.org/changeset/base/292995 Log: sh: Reindent expandmeta(). Modified: head/bin/sh/expand.c Modified: head/bin/sh/expand.c ============================================================================== --- head/bin/sh/expand.c Thu Dec 31 18:47:54 2015 (r292994) +++ head/bin/sh/expand.c Thu Dec 31 18:56:11 2015 (r292995) @@ -1028,28 +1028,28 @@ expandmeta(char *pattern, struct arglist int firstmatch; char c; - firstmatch = dstlist->count; - p = pattern; - for (; (c = *p) != '\0'; p++) { - /* fast check for meta chars */ - if (c == '*' || c == '?' || c == '[') { - INTOFF; - expmeta(expdir, pattern, dstlist); - INTON; - break; - } - } - if (dstlist->count == firstmatch) { - /* - * no matches - */ - rmescapes(pattern); - appendarglist(dstlist, pattern); - } else { - qsort(&dstlist->args[firstmatch], - dstlist->count - firstmatch, - sizeof(dstlist->args[0]), expsortcmp); + firstmatch = dstlist->count; + p = pattern; + for (; (c = *p) != '\0'; p++) { + /* fast check for meta chars */ + if (c == '*' || c == '?' || c == '[') { + INTOFF; + expmeta(expdir, pattern, dstlist); + INTON; + break; } + } + if (dstlist->count == firstmatch) { + /* + * no matches + */ + rmescapes(pattern); + appendarglist(dstlist, pattern); + } else { + qsort(&dstlist->args[firstmatch], + dstlist->count - firstmatch, + sizeof(dstlist->args[0]), expsortcmp); + } } From owner-svn-src-all@freebsd.org Thu Dec 31 19:00:46 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9CE0DA554C3; Thu, 31 Dec 2015 19:00:46 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6B59713C8; Thu, 31 Dec 2015 19:00:46 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVJ0jxt011439; Thu, 31 Dec 2015 19:00:45 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVJ0jbJ011421; Thu, 31 Dec 2015 19:00:45 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201512311900.tBVJ0jbJ011421@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Thu, 31 Dec 2015 19:00:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292996 - head/sys/boot/forth X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 19:00:46 -0000 Author: dteske Date: Thu Dec 31 19:00:45 2015 New Revision: 292996 URL: https://svnweb.freebsd.org/changeset/base/292996 Log: Remove debugging messages. NB: SVN r187143 reads: comment out some debugging messages that slipped in by mistake (removing them 7 years after they have been commented out) MFC after: 1 week Modified: head/sys/boot/forth/support.4th Modified: head/sys/boot/forth/support.4th ============================================================================== --- head/sys/boot/forth/support.4th Thu Dec 31 18:56:11 2015 (r292995) +++ head/sys/boot/forth/support.4th Thu Dec 31 19:00:45 2015 (r292996) @@ -852,7 +852,6 @@ only forth also support-functions defini \ Interface to loading conf files : load_conf ( addr len -- ) - \ ." ----- Trying conf " 2dup type cr \ debugging 0 to end_of_file? reset_line_reading O_RDONLY fopen fd ! @@ -944,7 +943,6 @@ string current_file_name_ref \ used to p \ loader_conf_files processing support functions : get_conf_files ( -- addr len ) \ put addr/len on stack, reset var - \ ." -- starting on <" conf_files strtype ." >" cr \ debugging conf_files strget 0 0 conf_files strset ; @@ -971,7 +969,6 @@ string current_file_name_ref \ used to p pos char+ to pos repeat addr len pos addr r@ + pos r> - - \ 2dup ." get_file_name has " type cr \ debugging ; : get_next_file ( addr len ptr -- addr len ptr' addr' len' | 0 ) From owner-svn-src-all@freebsd.org Thu Dec 31 19:25:37 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 128E0A55D57; Thu, 31 Dec 2015 19:25:37 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D715410DB; Thu, 31 Dec 2015 19:25:36 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVJPZkC019722; Thu, 31 Dec 2015 19:25:35 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVJPZAt019721; Thu, 31 Dec 2015 19:25:35 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201512311925.tBVJPZAt019721@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 31 Dec 2015 19:25:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292997 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 19:25:37 -0000 Author: emaste Date: Thu Dec 31 19:25:35 2015 New Revision: 292997 URL: https://svnweb.freebsd.org/changeset/base/292997 Log: newvers.sh: put variable assignments on separate lines This makes it easier to grep for where they're set, and may simplify future merging for FreeBSD derivatives that change these. Modified: head/sys/conf/newvers.sh Modified: head/sys/conf/newvers.sh ============================================================================== --- head/sys/conf/newvers.sh Thu Dec 31 19:00:45 2015 (r292996) +++ head/sys/conf/newvers.sh Thu Dec 31 19:25:35 2015 (r292997) @@ -97,7 +97,10 @@ then fi touch version -v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} +v=`cat version` +u=${USER:-root} +d=`pwd` +h=${HOSTNAME:-`hostname`} if [ -n "$SOURCE_DATE_EPOCH" ]; then if ! t=`date -r $SOURCE_DATE_EPOCH 2>/dev/null`; then echo "Invalid SOURCE_DATE_EPOCH" >&2 From owner-svn-src-all@freebsd.org Thu Dec 31 19:32:48 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5260BA570BA; Thu, 31 Dec 2015 19:32:48 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1ED09159A; Thu, 31 Dec 2015 19:32:48 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVJWlDT022541; Thu, 31 Dec 2015 19:32:47 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVJWl0i022540; Thu, 31 Dec 2015 19:32:47 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512311932.tBVJWl0i022540@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 31 Dec 2015 19:32:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r292998 - stable/10/contrib/bsnmp/snmpd X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 19:32:48 -0000 Author: ngie Date: Thu Dec 31 19:32:46 2015 New Revision: 292998 URL: https://svnweb.freebsd.org/changeset/base/292998 Log: MFC r292710: Remove unused function `act_getkernstring` This fixes a clang -Wunused warning Differential Revision: https://reviews.freebsd.org/D4697 Reported by: Jenkins Reviewed by: araujo, bapt Sponsored by: EMC / Isilon Storage Division Modified: stable/10/contrib/bsnmp/snmpd/action.c Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/bsnmp/snmpd/action.c ============================================================================== --- stable/10/contrib/bsnmp/snmpd/action.c Thu Dec 31 19:25:35 2015 (r292997) +++ stable/10/contrib/bsnmp/snmpd/action.c Thu Dec 31 19:32:46 2015 (r292998) @@ -60,29 +60,6 @@ static const struct asn_oid #endif /* - * Get a string value from the KERN sysctl subtree. - */ -static char * -act_getkernstring(int id) -{ - int mib[2]; - size_t len; - char *string; - - mib[0] = CTL_KERN; - mib[1] = id; - if (sysctl(mib, 2, NULL, &len, NULL, 0) != 0) - return (NULL); - if ((string = malloc(len)) == NULL) - return (NULL); - if (sysctl(mib, 2, string, &len, NULL, 0) != 0) { - free(string); - return (NULL); - } - return (string); -} - -/* * Get an integer value from the KERN sysctl subtree. */ static char * From owner-svn-src-all@freebsd.org Thu Dec 31 19:33:19 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39D8CA57110; Thu, 31 Dec 2015 19:33:19 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 06F2417B3; Thu, 31 Dec 2015 19:33:18 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVJXIvu022621; Thu, 31 Dec 2015 19:33:18 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVJXI7j022620; Thu, 31 Dec 2015 19:33:18 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201512311933.tBVJXI7j022620@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Thu, 31 Dec 2015 19:33:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292999 - head/sys/boot/forth X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 19:33:19 -0000 Author: dteske Date: Thu Dec 31 19:33:17 2015 New Revision: 292999 URL: https://svnweb.freebsd.org/changeset/base/292999 Log: Fix a memory leak. nextboot_conf_file is not volatile, as far as I can tell, and thus the strdup is entirely unnecessary. Thanks to: Toomas Soome (tsoome at-me dot-com) MFC after: 1 week Modified: head/sys/boot/forth/support.4th Modified: head/sys/boot/forth/support.4th ============================================================================== --- head/sys/boot/forth/support.4th Thu Dec 31 19:32:46 2015 (r292998) +++ head/sys/boot/forth/support.4th Thu Dec 31 19:33:17 2015 (r292999) @@ -1019,7 +1019,7 @@ string current_file_name_ref \ used to p ; : get_nextboot_conf_file ( -- addr len ) - nextboot_conf_file strget strdup + nextboot_conf_file strget ; : rewrite_nextboot_file ( -- ) From owner-svn-src-all@freebsd.org Thu Dec 31 19:37:15 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC4D4A573AC; Thu, 31 Dec 2015 19:37:15 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9996A1C0E; Thu, 31 Dec 2015 19:37:15 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVJbE2u022790; Thu, 31 Dec 2015 19:37:14 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVJbEHC022789; Thu, 31 Dec 2015 19:37:14 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201512311937.tBVJbEHC022789@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Thu, 31 Dec 2015 19:37:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293000 - head/sys/boot/forth X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 19:37:15 -0000 Author: dteske Date: Thu Dec 31 19:37:14 2015 New Revision: 293000 URL: https://svnweb.freebsd.org/changeset/base/293000 Log: Remove supposition comment that code would better live elsewhere. Thinking this through, and looking at process_assignment, I believe moving the code would be wrong considering that set_conf_files is called in one condition while set_nextboot_conf is guarded by a different condition of having nextboot_enable="YES". So these must stay separated and not combined. MFC after: 1 week Modified: head/sys/boot/forth/support.4th Modified: head/sys/boot/forth/support.4th ============================================================================== --- head/sys/boot/forth/support.4th Thu Dec 31 19:33:17 2015 (r292999) +++ head/sys/boot/forth/support.4th Thu Dec 31 19:37:14 2015 (r293000) @@ -684,7 +684,7 @@ only forth also support-functions also f s" loader_conf_files" getenv conf_files string= ; -: set_nextboot_conf \ XXX maybe do as set_conf_files ? +: set_nextboot_conf value_buffer strget unquote nextboot_conf_file string= ; From owner-svn-src-all@freebsd.org Thu Dec 31 20:00:55 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 00C7AA57BC9; Thu, 31 Dec 2015 20:00:55 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C29E315F5; Thu, 31 Dec 2015 20:00:54 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVK0sLG028863; Thu, 31 Dec 2015 20:00:54 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVK0rmi028854; Thu, 31 Dec 2015 20:00:53 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201512312000.tBVK0rmi028854@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Thu, 31 Dec 2015 20:00:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293001 - in head/sys/boot: forth i386/loader zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 20:00:55 -0000 Author: allanjude Date: Thu Dec 31 20:00:53 2015 New Revision: 293001 URL: https://svnweb.freebsd.org/changeset/base/293001 Log: Introduce the ZFS Boot Environments menu to the loader menu If the system was booted with ZFS, a new menu item (#7) appears It contains an autogenerated list of ZFS Boot Environments This allows the user to switch to an alternate root file system Use Cases: - Revert a failed upgrade - Concurrently run different versions of FreeBSD with common home directory - Easier integration with the sysadmin/beadm utility Requested by: many Reviewed by: dteske MFC after: 10 days Relnotes: yes Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D3167 Modified: head/sys/boot/forth/loader.conf head/sys/boot/forth/menu-commands.4th head/sys/boot/forth/menu.rc head/sys/boot/forth/support.4th head/sys/boot/i386/loader/main.c head/sys/boot/zfs/libzfs.h head/sys/boot/zfs/zfs.c head/sys/boot/zfs/zfsimpl.c Modified: head/sys/boot/forth/loader.conf ============================================================================== --- head/sys/boot/forth/loader.conf Thu Dec 31 19:37:14 2015 (r293000) +++ head/sys/boot/forth/loader.conf Thu Dec 31 20:00:53 2015 (r293001) @@ -90,6 +90,7 @@ ram_blacklist_type="ram_blacklist" # Req #password="" # Prevent changes to boot options #bootlock_password="" # Prevent booting (see check-password.4th(8)) #geom_eli_passphrase_prompt="NO" # Prompt for geli(8) passphrase to mount root +bootenv_autolist="YES" # Auto populate the list of ZFS Boot Environments #beastie_disable="NO" # Turn the beastie boot menu on and off #kernels="kernel kernel.old" # Kernels to display in the boot menu #loader_logo="orbbw" # Desired logo: orbbw, orb, fbsdbw, beastiebw, beastie, none Modified: head/sys/boot/forth/menu-commands.4th ============================================================================== --- head/sys/boot/forth/menu-commands.4th Thu Dec 31 19:37:14 2015 (r293000) +++ head/sys/boot/forth/menu-commands.4th Thu Dec 31 20:00:53 2015 (r293001) @@ -351,4 +351,68 @@ also menu-namespace also menu-command-he 2 goto_menu ; +\ +\ Set boot environment defaults +\ + +: init_bootenv ( -- ) + s" set menu_caption[1]=${bemenu_current}${vfs.root.mountfrom}" evaluate + s" set ansi_caption[1]=${beansi_current}${vfs.root.mountfrom}" evaluate + s" set menu_caption[2]=${bemenu_bootfs}${zfs_be_active}" evaluate + s" set ansi_caption[2]=${beansi_bootfs}${zfs_be_active}" evaluate + s" set menu_caption[3]=${bemenu_page}${zfs_be_currpage}${bemenu_pageof}${zfs_be_pages}" evaluate + s" set ansi_caption[3]=${beansi_page}${zfs_be_currpage}${bemenu_pageof}${zfs_be_pages}" evaluate +; + +\ +\ Redraw the entire screen. A long BE name can corrupt the menu +\ + +: be_draw_screen + clear \ Clear the screen (in screen.4th) + print_version \ print version string (bottom-right; see version.4th) + draw-beastie \ Draw FreeBSD logo at right (in beastie.4th) + draw-brand \ Draw brand.4th logo at top (in brand.4th) + menu-init \ Initialize menu and draw bounding box (in menu.4th) +; + +\ +\ Select a boot environment +\ + +: set_bootenv ( N -- N TRUE ) + dup s" set vfs.root.mountfrom=${bootenv_root[E]}" 38 +c! evaluate + s" set currdev=${vfs.root.mountfrom}:" evaluate + s" unload" evaluate + free-module-options + s" /boot/defaults/loader.conf" read-conf + s" /boot/loader.conf" read-conf + s" /boot/loader.conf.local" read-conf + init_bootenv + be_draw_screen + menu-redraw + TRUE +; + +\ +\ Switch to the next page of boot environments +\ + +: set_be_page ( N -- N TRUE ) + s" zfs_be_currpage" getenv dup -1 = if + drop s" 1" + else + 0 s>d 2swap + >number ( ud caddr/u -- ud' caddr'/u' ) \ convert string to numbers + 2drop \ drop the string + 1 um/mod ( ud u1 -- u2 u3 ) \ convert double ud' to single u3' and remainder u2 + swap drop ( ud2 u3 -- u3 ) \ drop the remainder u2 + 1+ \ increment the page number + s>d <# #s #> \ convert back to a string + then + s" zfs_be_currpage" setenv + s" reloadbe" evaluate + 3 goto_menu +; + only forth definitions Modified: head/sys/boot/forth/menu.rc ============================================================================== --- head/sys/boot/forth/menu.rc Thu Dec 31 19:37:14 2015 (r293000) +++ head/sys/boot/forth/menu.rc Thu Dec 31 20:00:53 2015 (r293001) @@ -68,6 +68,13 @@ set mainmenu_command[6]="2 goto_menu" set mainmenu_keycode[6]=111 set mainansi_caption[6]="Configure Boot ^[1mO^[mptions..." +s" currdev" getenv dup 0> [if] drop 4 s" zfs:" compare 0= [if] + set mainmenu_caption[7]="Select Boot [E]nvironment..." + set mainmenu_command[7]="3 goto_menu" + set mainmenu_keycode[7]=101 + set mainansi_caption[7]="Select Boot ^[1mE^[37mnvironment..." +[then] [else] drop [then] + \ \ BOOT OPTIONS MENU \ @@ -119,6 +126,37 @@ set optionsmenu_keycode[6]=118 set optionsansi_caption[6]="^[1mV^[merbose..... ^[34;1mOff^[m" set optionstoggled_ansi[6]="^[1mV^[merbose..... ^[32;7mOn^[m" +\ +\ BOOT ENVIRONMENT MENU +\ + +set menuset_name3="bootenv" + +set bemenu_current="Active: " +set beansi_current="^[1m${bemenu_current}^[m" +set bemenu_bootfs="bootfs: " +set beansi_bootfs="^[1m${bemenu_bootfs}^[m" +set bemenu_page="[P]age: " +set beansi_page="^[1mP^[mage: " +set bemenu_pageof=" of " +set beansi_pageof="${bemenu_pageof}" +set zfs_be_currpage=1 + +set bootenvmenu_init="init_bootenv" + +set bootenvmenu_command[1]="be_draw_screen 1 goto_menu" +set bootenvmenu_keycode[1]=8 + +set bootenvmenu_command[2]="set_bootenv" +set bootenvmenu_keycode[2]=97 +set bootenv_root[2]="${zfs_be_active}" + +set bootenvmenu_command[3]="set_be_page" +set bootenvmenu_keycode[3]=112 + +set bootenvmenu_options=4 +set bootenvmenu_optionstext="Boot Environments:" + \ Enable automatic booting (add ``autoboot_delay=N'' to loader.conf(5) to \ customize the timeout; default is 10-seconds) \ @@ -128,6 +166,21 @@ set menu_timeout_command="boot" \ try-include /boot/menu.rc.local +\ Initialize boot environment variables +\ +s" reloadbe" sfind ( xt|0 bool ) [if] + s" bootenv_autolist" getenv dup -1 = [if] + drop s" execute" evaluate \ Use evaluate to avoid passing + \ reloadbe an optional parameter + [else] + s" YES" compare-insensitive 0= [if] + s" execute" evaluate + [then] + [then] +[else] + drop ( xt=0 ) +[then] + \ Display the main menu (see `menu.4th') set menuset_initial=1 menuset-loadinitial Modified: head/sys/boot/forth/support.4th ============================================================================== --- head/sys/boot/forth/support.4th Thu Dec 31 19:37:14 2015 (r293000) +++ head/sys/boot/forth/support.4th Thu Dec 31 20:00:53 2015 (r293001) @@ -930,6 +930,30 @@ only forth definitions also support-func repeat ; +: free-one-module { addr -- addr } + addr module.name strfree + addr module.loadname strfree + addr module.type strfree + addr module.args strfree + addr module.beforeload strfree + addr module.afterload strfree + addr module.loaderror strfree + addr +; + +: free-module-options + module_options @ + begin + ?dup + while + free-one-module + dup module.next @ + swap free-memory + repeat + 0 module_options ! + 0 last_module_option ! +; + only forth also support-functions definitions \ Variables used for processing multiple conf files Modified: head/sys/boot/i386/loader/main.c ============================================================================== --- head/sys/boot/i386/loader/main.c Thu Dec 31 19:37:14 2015 (r293000) +++ head/sys/boot/i386/loader/main.c Thu Dec 31 20:00:53 2015 (r293001) @@ -69,6 +69,7 @@ static int isa_inb(int port); static void isa_outb(int port, int value); void exit(int code); #ifdef LOADER_ZFS_SUPPORT +static void init_zfs_bootenv(char *currdev); static void i386_zfs_probe(void); #endif @@ -294,12 +295,40 @@ extract_currdev(void) new_currdev.d_unit = 0; } +#ifdef LOADER_ZFS_SUPPORT + init_zfs_bootenv(zfs_fmtdev(&new_currdev)); +#endif + env_setenv("currdev", EV_VOLATILE, i386_fmtdev(&new_currdev), i386_setcurrdev, env_nounset); env_setenv("loaddev", EV_VOLATILE, i386_fmtdev(&new_currdev), env_noset, env_nounset); } +#ifdef LOADER_ZFS_SUPPORT +static void +init_zfs_bootenv(char *currdev) +{ + char *beroot; + + /* Remove the trailing : */ + currdev[strlen(currdev) - 1] = '\0'; + setenv("zfs_be_active", currdev, 1); + /* Do not overwrite if already set */ + setenv("vfs.root.mountfrom", currdev, 0); + /* Forward past zfs: */ + currdev = strchr(currdev, ':'); + currdev++; + /* Remove the last element (current bootenv) */ + beroot = strrchr(currdev, '/'); + beroot[0] = '\0'; + + beroot = currdev; + + setenv("zfs_be_root", beroot, 1); +} +#endif + COMMAND_SET(reboot, "reboot", "reboot the system", command_reboot); static int @@ -353,6 +382,34 @@ command_lszfs(int argc, char *argv[]) command_errmsg = strerror(err); return (CMD_ERROR); } + + return (CMD_OK); +} + +COMMAND_SET(reloadbe, "reloadbe", "refresh the list of ZFS Boot Environments", + command_reloadbe); + +static int +command_reloadbe(int argc, char *argv[]) +{ + int err; + + if (argc > 2) { + command_errmsg = "wrong number of arguments"; + return (CMD_ERROR); + } + + if (argc == 2) { + err = zfs_bootenv(argv[1]); + } else { + err = zfs_bootenv(getenv("zfs_be_root")); + } + + if (err != 0) { + command_errmsg = strerror(err); + return (CMD_ERROR); + } + return (CMD_OK); } #endif Modified: head/sys/boot/zfs/libzfs.h ============================================================================== --- head/sys/boot/zfs/libzfs.h Thu Dec 31 19:37:14 2015 (r293000) +++ head/sys/boot/zfs/libzfs.h Thu Dec 31 20:00:53 2015 (r293001) @@ -62,6 +62,9 @@ int zfs_parsedev(struct zfs_devdesc *dev char *zfs_fmtdev(void *vdev); int zfs_probe_dev(const char *devname, uint64_t *pool_guid); int zfs_list(const char *name); +int zfs_bootenv(const char *name); +int zfs_belist_add(const char *name); +int zfs_set_env(void); extern struct devsw zfs_dev; extern struct fs_ops zfs_fsops; Modified: head/sys/boot/zfs/zfs.c ============================================================================== --- head/sys/boot/zfs/zfs.c Thu Dec 31 19:37:14 2015 (r293000) +++ head/sys/boot/zfs/zfs.c Thu Dec 31 20:00:53 2015 (r293001) @@ -48,6 +48,10 @@ __FBSDID("$FreeBSD$"); #include "zfsimpl.c" +/* Define the range of indexes to be populated with ZFS Boot Environments */ +#define ZFS_BE_FIRST 4 +#define ZFS_BE_LAST 8 + static int zfs_open(const char *path, struct open_file *f); static int zfs_write(struct open_file *f, void *buf, size_t size, size_t *resid); static int zfs_close(struct open_file *f); @@ -80,6 +84,16 @@ struct file { zap_leaf_phys_t *f_zap_leaf; /* zap leaf buffer */ }; +static int zfs_env_index; +static int zfs_env_count; + +SLIST_HEAD(zfs_be_list, zfs_be_entry) zfs_be_head = SLIST_HEAD_INITIALIZER(zfs_be_head); +struct zfs_be_list *zfs_be_headp; +struct zfs_be_entry { + const char *name; + SLIST_ENTRY(zfs_be_entry) entries; +} *zfs_be, *zfs_be_tmp; + /* * Open a file. */ @@ -691,6 +705,156 @@ zfs_list(const char *name) rv = zfs_lookup_dataset(spa, dsname, &objid); if (rv != 0) return (rv); - rv = zfs_list_dataset(spa, objid); + + return (zfs_list_dataset(spa, objid)); +} + +int +zfs_bootenv(const char *name) +{ + static char poolname[ZFS_MAXNAMELEN], *dsname; + char becount[4]; + uint64_t objid; + spa_t *spa; + int len, rv, pages, perpage, currpage; + + if (strcmp(name, getenv("zfs_be_root")) != 0) { + if (setenv("zfs_be_root", name, 1) != 0) + return (ENOMEM); + } + + SLIST_INIT(&zfs_be_head); + zfs_env_count = 0; + len = strlen(name); + dsname = strchr(name, '/'); + if (dsname != NULL) { + len = dsname - name; + dsname++; + } else + dsname = ""; + memcpy(poolname, name, len); + poolname[len] = '\0'; + + spa = spa_find_by_name(poolname); + if (!spa) + return (ENXIO); + rv = zfs_lookup_dataset(spa, dsname, &objid); + if (rv != 0) + return (rv); + rv = zfs_callback_dataset(spa, objid, zfs_belist_add); + + /* Calculate and store the number of pages of BEs */ + perpage = (ZFS_BE_LAST - ZFS_BE_FIRST + 1); + pages = (zfs_env_count / perpage) + ((zfs_env_count % perpage) > 0 ? 1 : 0); + snprintf(becount, 4, "%d", pages); + if (setenv("zfs_be_pages", becount, 1) != 0) + return (ENOMEM); + + /* Roll over the page counter if it has exceeded the maximum */ + currpage = strtol(getenv("zfs_be_currpage"), NULL, 10); + if (currpage > pages) { + if (setenv("zfs_be_currpage", "1", 1) != 0) + return (ENOMEM); + } + + /* Populate the menu environment variables */ + zfs_set_env(); + + /* Clean up the SLIST of ZFS BEs */ + while (!SLIST_EMPTY(&zfs_be_head)) { + zfs_be = SLIST_FIRST(&zfs_be_head); + SLIST_REMOVE_HEAD(&zfs_be_head, entries); + free(zfs_be); + } + return (rv); } + +int +zfs_belist_add(const char *name) +{ + + /* Add the boot environment to the head of the SLIST */ + zfs_be = malloc(sizeof(struct zfs_be_entry)); + zfs_be->name = name; + SLIST_INSERT_HEAD(&zfs_be_head, zfs_be, entries); + zfs_env_count++; + + return (0); +} + +int +zfs_set_env(void) +{ + char envname[32], envval[256]; + char *beroot, *pagenum; + int rv, page, ctr; + + beroot = getenv("zfs_be_root"); + if (beroot == NULL) { + return (1); + } + + pagenum = getenv("zfs_be_currpage"); + if (pagenum != NULL) { + page = strtol(pagenum, NULL, 10); + } else { + page = 1; + } + + ctr = 1; + rv = 0; + zfs_env_index = ZFS_BE_FIRST; + SLIST_FOREACH_SAFE(zfs_be, &zfs_be_head, entries, zfs_be_tmp) { + /* Skip to the requested page number */ + if (ctr <= ((ZFS_BE_LAST - ZFS_BE_FIRST + 1) * (page - 1))) { + ctr++; + continue; + } + + snprintf(envname, sizeof(envname), "bootenvmenu_caption[%d]", zfs_env_index); + snprintf(envval, sizeof(envval), "%s", zfs_be->name); + rv = setenv(envname, envval, 1); + if (rv != 0) { + break; + } + + snprintf(envname, sizeof(envname), "bootenvansi_caption[%d]", zfs_env_index); + rv = setenv(envname, envval, 1); + if (rv != 0){ + break; + } + + snprintf(envname, sizeof(envname), "bootenvmenu_command[%d]", zfs_env_index); + rv = setenv(envname, "set_bootenv", 1); + if (rv != 0){ + break; + } + + snprintf(envname, sizeof(envname), "bootenv_root[%d]", zfs_env_index); + snprintf(envval, sizeof(envval), "zfs:%s/%s", beroot, zfs_be->name); + rv = setenv(envname, envval, 1); + if (rv != 0){ + break; + } + + zfs_env_index++; + if (zfs_env_index > ZFS_BE_LAST) { + break; + } + + } + + for (; zfs_env_index <= ZFS_BE_LAST; zfs_env_index++) { + snprintf(envname, sizeof(envname), "bootenvmenu_caption[%d]", zfs_env_index); + (void)unsetenv(envname); + snprintf(envname, sizeof(envname), "bootenvansi_caption[%d]", zfs_env_index); + (void)unsetenv(envname); + snprintf(envname, sizeof(envname), "bootenvmenu_command[%d]", zfs_env_index); + (void)unsetenv(envname); + snprintf(envname, sizeof(envname), "bootenv_root[%d]", zfs_env_index); + (void)unsetenv(envname); + } + + return (rv); +} \ No newline at end of file Modified: head/sys/boot/zfs/zfsimpl.c ============================================================================== --- head/sys/boot/zfs/zfsimpl.c Thu Dec 31 19:37:14 2015 (r293000) +++ head/sys/boot/zfs/zfsimpl.c Thu Dec 31 20:00:53 2015 (r293001) @@ -1473,7 +1473,7 @@ zap_lookup(const spa_t *spa, const dnode * the directory contents. */ static int -mzap_list(const dnode_phys_t *dnode) +mzap_list(const dnode_phys_t *dnode, int (*callback)(const char *)) { const mzap_phys_t *mz; const mzap_ent_phys_t *mze; @@ -1492,7 +1492,7 @@ mzap_list(const dnode_phys_t *dnode) mze = &mz->mz_chunk[i]; if (mze->mze_name[0]) //printf("%-32s 0x%jx\n", mze->mze_name, (uintmax_t)mze->mze_value); - printf("%s\n", mze->mze_name); + callback(mze->mze_name); } return (0); @@ -1503,7 +1503,7 @@ mzap_list(const dnode_phys_t *dnode) * the directory header. */ static int -fzap_list(const spa_t *spa, const dnode_phys_t *dnode) +fzap_list(const spa_t *spa, const dnode_phys_t *dnode, int (*callback)(const char *)) { int bsize = dnode->dn_datablkszsec << SPA_MINBLOCKSHIFT; zap_phys_t zh = *(zap_phys_t *) zap_scratch; @@ -1566,13 +1566,21 @@ fzap_list(const spa_t *spa, const dnode_ value = fzap_leaf_value(&zl, zc); //printf("%s 0x%jx\n", name, (uintmax_t)value); - printf("%s\n", name); + callback((const char *)name); } } return (0); } +static int zfs_printf(const char *name) +{ + + printf("%s\n", name); + + return (0); +} + /* * List a zap directory. */ @@ -1587,9 +1595,9 @@ zap_list(const spa_t *spa, const dnode_p zap_type = *(uint64_t *) zap_scratch; if (zap_type == ZBT_MICRO) - return mzap_list(dnode); + return mzap_list(dnode, zfs_printf); else - return fzap_list(spa, dnode); + return fzap_list(spa, dnode, zfs_printf); } static int @@ -1858,6 +1866,48 @@ zfs_list_dataset(const spa_t *spa, uint6 return (zap_list(spa, &child_dir_zap) != 0); } + +int +zfs_callback_dataset(const spa_t *spa, uint64_t objnum, int (*callback)(const char *name)) +{ + uint64_t dir_obj, child_dir_zapobj, zap_type; + dnode_phys_t child_dir_zap, dir, dataset; + dsl_dataset_phys_t *ds; + dsl_dir_phys_t *dd; + int err; + + err = objset_get_dnode(spa, &spa->spa_mos, objnum, &dataset); + if (err != 0) { + printf("ZFS: can't find dataset %ju\n", (uintmax_t)objnum); + return (err); + } + ds = (dsl_dataset_phys_t *) &dataset.dn_bonus; + dir_obj = ds->ds_dir_obj; + + err = objset_get_dnode(spa, &spa->spa_mos, dir_obj, &dir); + if (err != 0) { + printf("ZFS: can't find dirobj %ju\n", (uintmax_t)dir_obj); + return (err); + } + dd = (dsl_dir_phys_t *)&dir.dn_bonus; + + child_dir_zapobj = dd->dd_child_dir_zapobj; + err = objset_get_dnode(spa, &spa->spa_mos, child_dir_zapobj, &child_dir_zap); + if (err != 0) { + printf("ZFS: can't find child zap %ju\n", (uintmax_t)dir_obj); + return (err); + } + + err = dnode_read(spa, &child_dir_zap, 0, zap_scratch, child_dir_zap.dn_datablkszsec * 512); + if (err != 0) + return (err); + + zap_type = *(uint64_t *) zap_scratch; + if (zap_type == ZBT_MICRO) + return mzap_list(&child_dir_zap, callback); + else + return fzap_list(spa, &child_dir_zap, callback); +} #endif /* From owner-svn-src-all@freebsd.org Thu Dec 31 20:15:58 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A3173A5606A; Thu, 31 Dec 2015 20:15:58 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5AB441E84; Thu, 31 Dec 2015 20:15:58 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVKFvxe034550; Thu, 31 Dec 2015 20:15:57 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVKFvqG034549; Thu, 31 Dec 2015 20:15:57 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201512312015.tBVKFvqG034549@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Thu, 31 Dec 2015 20:15:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293002 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 20:15:58 -0000 Author: jilles Date: Thu Dec 31 20:15:57 2015 New Revision: 293002 URL: https://svnweb.freebsd.org/changeset/base/293002 Log: sh: Remove redundant CTLQUOTEMARK checks. With the new expand.c code, the intermediate representation passed to the pathname generation code only contains CTLESC, not CTLQUOTEMARK. CTLQUOTEMARK now only occurs in the text of NARG nodes (output of the parser). Modified: head/bin/sh/expand.c Modified: head/bin/sh/expand.c ============================================================================== --- head/bin/sh/expand.c Thu Dec 31 20:00:53 2015 (r293001) +++ head/bin/sh/expand.c Thu Dec 31 20:15:57 2015 (r293002) @@ -1018,7 +1018,7 @@ static char expdir[PATH_MAX]; /* * Perform pathname generation and remove control characters. - * At this point, the only control characters should be CTLESC and CTLQUOTEMARK. + * At this point, the only control characters should be CTLESC. * The results are stored in the list dstlist. */ static void @@ -1083,8 +1083,6 @@ expmeta(char *enddir, char *name, struct if (*q == '!' || *q == '^') q++; for (;;) { - while (*q == CTLQUOTEMARK) - q++; if (*q == CTLESC) q++; if (*q == '/' || *q == '\0') @@ -1096,8 +1094,6 @@ expmeta(char *enddir, char *name, struct } } else if (*p == '\0') break; - else if (*p == CTLQUOTEMARK) - continue; else { if (*p == CTLESC) esc++; @@ -1112,8 +1108,6 @@ expmeta(char *enddir, char *name, struct if (enddir != expdir) metaflag++; for (p = name ; ; p++) { - if (*p == CTLQUOTEMARK) - continue; if (*p == CTLESC) p++; *enddir++ = *p; @@ -1130,8 +1124,6 @@ expmeta(char *enddir, char *name, struct if (start != name) { p = name; while (p < start) { - while (*p == CTLQUOTEMARK) - p++; if (*p == CTLESC) p++; *enddir++ = *p++; @@ -1160,8 +1152,6 @@ expmeta(char *enddir, char *name, struct } matchdot = 0; p = start; - while (*p == CTLQUOTEMARK) - p++; if (*p == CTLESC) p++; if (*p == '.') @@ -1280,8 +1270,6 @@ patmatch(const char *pattern, const char if (*q++ != *p++) goto backtrack; break; - case CTLQUOTEMARK: - continue; case '?': if (*q == '\0') return 0; @@ -1298,7 +1286,7 @@ patmatch(const char *pattern, const char break; case '*': c = *p; - while (c == CTLQUOTEMARK || c == '*') + while (c == '*') c = *++p; /* * If the pattern ends here, we know the string @@ -1342,8 +1330,6 @@ patmatch(const char *pattern, const char c = '['; goto dft; } - if (c == CTLQUOTEMARK) - continue; if (c == '[' && *p == ':') { found |= match_charclass(p, chr, &end); if (end != NULL) @@ -1360,8 +1346,6 @@ patmatch(const char *pattern, const char wc = (unsigned char)c; if (*p == '-' && p[1] != ']') { p++; - while (*p == CTLQUOTEMARK) - p++; if (*p == CTLESC) p++; if (localeisutf8) { From owner-svn-src-all@freebsd.org Thu Dec 31 20:25:28 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B464A56336; Thu, 31 Dec 2015 20:25:28 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D46D712A4; Thu, 31 Dec 2015 20:25:27 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVKPQoX037488; Thu, 31 Dec 2015 20:25:26 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVKPQoK037487; Thu, 31 Dec 2015 20:25:26 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512312025.tBVKPQoK037487@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 31 Dec 2015 20:25:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r293003 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 20:25:28 -0000 Author: ngie Date: Thu Dec 31 20:25:26 2015 New Revision: 293003 URL: https://svnweb.freebsd.org/changeset/base/293003 Log: MFC r292640,r292641: r292640: Clean up trailing whitespace; no functional change Sponsored by: EMC / Isilon Storage Division r292641: Fix r292640 vim overzealously removed some trailing `+' and I didn't check the diff Pointyhat to: ngie Sponsored by: EMC / Isilon Storage Division Modified: stable/10/sys/kern/link_elf.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/link_elf.c ============================================================================== --- stable/10/sys/kern/link_elf.c Thu Dec 31 20:15:57 2015 (r293002) +++ stable/10/sys/kern/link_elf.c Thu Dec 31 20:25:26 2015 (r293003) @@ -575,7 +575,7 @@ parse_dynamic(elf_file_t ef) static int parse_dpcpu(elf_file_t ef) -{ +{ int count; int error; @@ -606,7 +606,7 @@ parse_dpcpu(elf_file_t ef) #ifdef VIMAGE static int parse_vnet(elf_file_t ef) -{ +{ int count; int error; @@ -872,7 +872,7 @@ link_elf_load_file(linker_class_t cls, c */ base_offset = trunc_page(segs[0]->p_offset); base_vaddr = trunc_page(segs[0]->p_vaddr); - base_vlimit = round_page(segs[nsegs - 1]->p_vaddr + + base_vlimit = round_page(segs[nsegs - 1]->p_vaddr + segs[nsegs - 1]->p_memsz); mapsize = base_vlimit - base_vaddr; @@ -1416,7 +1416,7 @@ link_elf_each_function_name(linker_file_ elf_file_t ef = (elf_file_t)file; const Elf_Sym *symp; int i, error; - + /* Exhaustive search */ for (i = 0, symp = ef->ddbsymtab; i < ef->ddbsymcnt; i++, symp++) { if (symp->st_value != 0 && @@ -1602,7 +1602,7 @@ link_elf_symtab_get(linker_file_t lf, co return (ef->ddbsymcnt); } - + static long link_elf_strtab_get(linker_file_t lf, caddr_t *strtab) { From owner-svn-src-all@freebsd.org Thu Dec 31 20:38:54 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23362A5679C; Thu, 31 Dec 2015 20:38:54 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pf0-x236.google.com (mail-pf0-x236.google.com [IPv6:2607:f8b0:400e:c00::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EF3691A1C; Thu, 31 Dec 2015 20:38:53 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pf0-x236.google.com with SMTP id 65so115375688pff.3; Thu, 31 Dec 2015 12:38:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=n9QVxbl6YeVq3HSaUZaaQTJK0cGIk0LIEnOOEEY1c3A=; b=sg5QJmmRe89BKMygu3RFlTtsCJCRB185g/4asqLLnBO1HAveIHWtPVzId7MOBA9G63 nY5Wj5HaotU1jNSwZRJK/1nz2PA0m1ebDhzSE9yqnoq/IcImWtNy60lgMDyhWX0a9FY7 CIe7jOvHC19sGKJb8woUyyYxBslVnwyYJbboQR3/vj+ODzUIDVfLsyZilIzfz3tcWVkM veoLQFeRLix4kU0Y0aunxur34M9UNmVsNITeC/782FESwNnsb6PImxEq8QG9HbfztDpp qHZGN51qpMicG9xTiNelMHQWrvXYGpdJ6XtSqCBxnX5YtJcT9TZePRbQpP443vzPIq9T WTWg== X-Received: by 10.98.14.69 with SMTP id w66mr73202279pfi.67.1451594333616; Thu, 31 Dec 2015 12:38:53 -0800 (PST) Received: from ?IPv6:2601:601:800:126d:9910:6b8e:28b:6700? ([2601:601:800:126d:9910:6b8e:28b:6700]) by smtp.gmail.com with ESMTPSA id u26sm47895540pfa.86.2015.12.31.12.38.51 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 31 Dec 2015 12:38:52 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r292975 - stable/10/sys/dev/pci From: NGie Cooper In-Reply-To: <2893860.oDiG4KQizb@ralph.baldwin.cx> Date: Thu, 31 Dec 2015 12:38:50 -0800 Cc: Garrett Cooper , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <633EF3EE-0899-45A1-B12C-CC2290A1FA29@gmail.com> References: <201512310355.tBV3t2VG040656@repo.freebsd.org> <2893860.oDiG4KQizb@ralph.baldwin.cx> To: John Baldwin X-Mailer: Apple Mail (2.2104) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 20:38:54 -0000 > On Dec 31, 2015, at 08:42, John Baldwin wrote: >=20 > On Thursday, December 31, 2015 03:55:02 AM Garrett Cooper wrote: >> Author: ngie >> Date: Thu Dec 31 03:55:02 2015 >> New Revision: 292975 >> URL: https://svnweb.freebsd.org/changeset/base/292975 >>=20 >> Log: >> MFC r278860: >> r278860 (by jmg): >>=20 >> remove NULL check as M_WAITOK will not return NULL >>=20 >> Reviewed by: jhb >> Sponsored by: FreeBSD Foundation >=20 > Including the metadata from the HEAD commit in the MFC can be = misleading, and > I think it is best ommitted. For example, I did not review this MFC = (and > reviewing MFC's in their own right matters since they may require = additional > work than commits to HEAD due to ABI concerns), nor did the Foundation = sponsor > the MFC. Rather, I think MFCs should only specify metadata related to = the > actual merge itself. Agreed. I=E2=80=99ve changed my mfc_log script to skip over some more = unnecessary svn log metadata: = https://github.com/yaneurabeya/scratch/commit/4f897efb96f96f951ff3909857f6= 7e63b24b733a . Thanks :)! -NGie= From owner-svn-src-all@freebsd.org Thu Dec 31 20:51:06 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9BC5DA56C31; Thu, 31 Dec 2015 20:51:06 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6C76F121D; Thu, 31 Dec 2015 20:51:06 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVKp5Sn045610; Thu, 31 Dec 2015 20:51:05 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVKp5jR045609; Thu, 31 Dec 2015 20:51:05 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512312051.tBVKp5jR045609@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 31 Dec 2015 20:51:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r293004 - stable/9/contrib/bsnmp/snmpd X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 20:51:06 -0000 Author: ngie Date: Thu Dec 31 20:51:05 2015 New Revision: 293004 URL: https://svnweb.freebsd.org/changeset/base/293004 Log: MFstable/10 r292998: MFC r292710: Remove unused function `act_getkernstring` This fixes a clang -Wunused warning Differential Revision: https://reviews.freebsd.org/D4697 Reported by: Jenkins Reviewed by: araujo, bapt Sponsored by: EMC / Isilon Storage Division Modified: stable/9/contrib/bsnmp/snmpd/action.c Directory Properties: stable/9/ (props changed) stable/9/contrib/ (props changed) stable/9/contrib/bsnmp/ (props changed) Modified: stable/9/contrib/bsnmp/snmpd/action.c ============================================================================== --- stable/9/contrib/bsnmp/snmpd/action.c Thu Dec 31 20:25:26 2015 (r293003) +++ stable/9/contrib/bsnmp/snmpd/action.c Thu Dec 31 20:51:05 2015 (r293004) @@ -60,29 +60,6 @@ static const struct asn_oid #endif /* - * Get a string value from the KERN sysctl subtree. - */ -static char * -act_getkernstring(int id) -{ - int mib[2]; - size_t len; - char *string; - - mib[0] = CTL_KERN; - mib[1] = id; - if (sysctl(mib, 2, NULL, &len, NULL, 0) != 0) - return (NULL); - if ((string = malloc(len)) == NULL) - return (NULL); - if (sysctl(mib, 2, string, &len, NULL, 0) != 0) { - free(string); - return (NULL); - } - return (string); -} - -/* * Get an integer value from the KERN sysctl subtree. */ static char * From owner-svn-src-all@freebsd.org Thu Dec 31 20:52:40 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7CA2A56D93; Thu, 31 Dec 2015 20:52:40 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 95D0E158B; Thu, 31 Dec 2015 20:52:40 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVKqdxm046231; Thu, 31 Dec 2015 20:52:39 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVKqdC2046230; Thu, 31 Dec 2015 20:52:39 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201512312052.tBVKqdC2046230@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 31 Dec 2015 20:52:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r293005 - stable/9/sys/kern X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 20:52:40 -0000 Author: ngie Date: Thu Dec 31 20:52:39 2015 New Revision: 293005 URL: https://svnweb.freebsd.org/changeset/base/293005 Log: MFstable/10 r293003: MFC r292640,r292641: r292640: Clean up trailing whitespace; no functional change r292641: Fix r292640 vim overzealously removed some trailing `+' and I didn't check the diff Pointyhat to: ngie Modified: stable/9/sys/kern/link_elf.c Directory Properties: stable/9/ (props changed) stable/9/sys/ (props changed) Modified: stable/9/sys/kern/link_elf.c ============================================================================== --- stable/9/sys/kern/link_elf.c Thu Dec 31 20:51:05 2015 (r293004) +++ stable/9/sys/kern/link_elf.c Thu Dec 31 20:52:39 2015 (r293005) @@ -575,7 +575,7 @@ parse_dynamic(elf_file_t ef) static int parse_dpcpu(elf_file_t ef) -{ +{ int count; int error; @@ -606,7 +606,7 @@ parse_dpcpu(elf_file_t ef) #ifdef VIMAGE static int parse_vnet(elf_file_t ef) -{ +{ int count; int error; @@ -884,7 +884,7 @@ link_elf_load_file(linker_class_t cls, c */ base_offset = trunc_page(segs[0]->p_offset); base_vaddr = trunc_page(segs[0]->p_vaddr); - base_vlimit = round_page(segs[nsegs - 1]->p_vaddr + + base_vlimit = round_page(segs[nsegs - 1]->p_vaddr + segs[nsegs - 1]->p_memsz); mapsize = base_vlimit - base_vaddr; @@ -1439,7 +1439,7 @@ link_elf_each_function_name(linker_file_ elf_file_t ef = (elf_file_t)file; const Elf_Sym *symp; int i, error; - + /* Exhaustive search */ for (i = 0, symp = ef->ddbsymtab; i < ef->ddbsymcnt; i++, symp++) { if (symp->st_value != 0 && @@ -1613,7 +1613,7 @@ link_elf_symtab_get(linker_file_t lf, co return (ef->ddbsymcnt); } - + static long link_elf_strtab_get(linker_file_t lf, caddr_t *strtab) { From owner-svn-src-all@freebsd.org Thu Dec 31 22:31:45 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 12F0EA57896; Thu, 31 Dec 2015 22:31:45 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A780A1607; Thu, 31 Dec 2015 22:31:44 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVMVhHn075727; Thu, 31 Dec 2015 22:31:43 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVMVh8K075724; Thu, 31 Dec 2015 22:31:43 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201512312231.tBVMVh8K075724@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Thu, 31 Dec 2015 22:31:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293009 - head/sys/contrib/dev/rtwn X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 22:31:45 -0000 Author: adrian Date: Thu Dec 31 22:31:43 2015 New Revision: 293009 URL: https://svnweb.freebsd.org/changeset/base/293009 Log: [rtwn] add rtwn firmware. Submitted by: kevlo Added: head/sys/contrib/dev/rtwn/ head/sys/contrib/dev/rtwn/LICENSE head/sys/contrib/dev/rtwn/rtwn-rtl8192cfwU.fw.uu head/sys/contrib/dev/rtwn/rtwn-rtl8192cfwU_B.fw.uu Added: head/sys/contrib/dev/rtwn/LICENSE ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/contrib/dev/rtwn/LICENSE Thu Dec 31 22:31:43 2015 (r293009) @@ -0,0 +1,39 @@ +Copyright (c) 2010, Realtek Semiconductor Corporation +All rights reserved. + +Redistribution. Redistribution and use in binary form, without +modification, are permitted provided that the following conditions are +met: + +* Redistributions must reproduce the above copyright notice and the + following disclaimer in the documentation and/or other materials + provided with the distribution. +* Neither the name of Realtek Semiconductor Corporation nor the names of its + suppliers may be used to endorse or promote products derived from this + software without specific prior written permission. +* No reverse engineering, decompilation, or disassembly of this software + is permitted. + +Limited patent license. Realtek Semiconductor Corporation grants a world-wide, +royalty-free, non-exclusive license under patents it now or hereafter +owns or controls to make, have made, use, import, offer to sell and +sell ("Utilize") this software, but solely to the extent that any +such patent is necessary to Utilize the software alone, or in +combination with an operating system licensed under an approved Open +Source license as listed by the Open Source Initiative at +http://opensource.org/licenses. The patent license shall not apply to +any other combinations which include this software. No hardware per +se is licensed hereunder. + +DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. Added: head/sys/contrib/dev/rtwn/rtwn-rtl8192cfwU.fw.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/contrib/dev/rtwn/rtwn-rtl8192cfwU.fw.uu Thu Dec 31 22:31:43 2015 (r293009) @@ -0,0 +1,333 @@ +begin 444 rtwn-rtl8192cfwU.fw.uu +MP8@"`$@````%$!!3PCD!`(%C`0`````````````````"0[H````````````` +M`````````E!$```````````````````````````````````````````````` +M`````````````E;@```````"2VH```4$`P(``P8%!`,`!`8%!`(`!`@'!@0` +M!@H)"`8`"`H)"`0`"`H)"`(`"`H)"```"!(1$`@`$!H9&!``&"(A(!@`("(A +M(!``("(A(`@`("(A'`@`("(A%`@`("(@&`@`(#$P(!``,#$P&```,#$O$!`` +M,#$L$!``,#$H$```,#$@$```,#$0$```,`0$!`4$!`0%!04&!@0$!`4%!08& +M!`0%!04%!@8$!`4%!04&!PH+#1`$!04&!@D,$0@("0D*#!`1!`0$!00$!0<' +M!P@*!`0$!`8*"PT%!0<'"`L-#P0$!`4'!PD)#`X0$@0$!04&"A$3"0D)"0P. +M$1,````````````D)BH8&AT?(2`"@`,@!0`&0`>`",`$L`4`!X`+0`^@$L`9`!]```@`" +M``0`"``,`!(`&``D`#``2`!@`&P`*``\`%``9`"@`,@`\`$8`&0`H`#P`6@! +M]`)8`R`#Z`("`@("`@,#!`0%!P0$!PH*#`P2!0<'"`L2)#P!`0$!`0(#!`4& +M!P@!`@,$!08'"`4&!P@)"@L,(!X<&!`8````````````````NP$,Y8(I]8+E +M@SKU@^`B4`;I)8+XYB*[_@;I)8+XXB+E@BGU@N6#.O6#Y),BNP$&B8**@_`B +M4`+W(KO^`?,B^+L!#>6"*?6"Y8,Z]8/H\")0!NDE@LCV(KO^!>DE@LCR(L7P +M^*/@*/#%\/CE@A6"<`(5@^`X\"*[`0J)@HJ#X/7PH^`B4`:'\`GG&2*[_@?C +M]?`)XQDBB8**@^23]?!T`9,BNP$0Y8(I]8+E@SKU@^#U\*/@(E`)Z26"^(;P +M".8BN_X*Z26"^.+U\`CB(N6#*O6#Z9/U\*/IDR*[`0J)@HJ#\.7PH_`B4`;W +M":?P&2*[_@;SY?`)\QDB^+L!$>6"*?6"Y8,Z]8/H\.7PH_`B4`GI)8+(]@BF +M\"*[_@GI)8+(\N7P"/(B[TO_[DK^[4G][$C\(N#\H^#]H^#^H^#_(J0E@O6" +MY?`U@_6#(N#[H^#ZH^#Y(OC@^Z.CX/DE\/#E@A6"<`(5@^#Z./`BZ_"CZO"C +MZ?`BT(/0@OCDDW`2=`&3<`VCHY/X=`&3]8*(@^1S=`*3:&#OHZ.C@-\"0_@" +M2"_DDZ/XY).C0`/V@`'R"-_T@"GDDZ/X5`1^`9-@O*/_5#\PY0E4'_[DDZ-@`0[/5,`EX&"H +M0+CDDZ/ZY).C^.23H\C%@LC*Q8/*\*/(Q8+(RL6#RM_IWN>`OD&7?P!!EZ$` +M09=K@$&7HP``CX*.@Z.CH^3P(N3U(W]@?@&`[=,0KP'#P-"0EUUQBY"777%K +MD``!4<+ZY?`D`/_D.OZ0EUUQ:Y```>Z/\'$9$B1B_V`HM2,4D)==<6N0``%1 +MPF4E<`3E)&7P8!^0EUUQ:Y```5'"_Z[PL5.`#I"777%K$B1B92-@`I%8T-"2 +MKR+T_Y``0^!?\-,0KP'#P-!_$-_^T-"2KR*0`=,0KP'#P-"+8(IAB6*0EXAQBZMCJF2I99"7BW&+ +MKV859N]@&Y"7B^1U\`%Q=!(D8O^0EXCD=?`!<73O44V`WJM@JF&I8M#0DJ\B +MD)=@[O"C[_!U(P&.)/4EY/U_"[&6Y/U_`K&6$FU;Y/^1YN3U)Y`!R>4G\)"7 +M8.#\H^#][/N-1.3U17T!?V!^`0(P8M,0KP'#P-"0EV/M\)"78N_PTY0'4$ZC +MX'`:D)=BX/]T`:@'"(`"PS/8_/3_D`!'X%_P@!>0EV+@_W0!J`<(@`+#,]C\ +M_Y``1^!/\)'6D)=BX/]T`:@'"(`"PS/8_/3_D`!&@%F0EV+@)/CPH^!P'9"7 +M8N#_=`&H!PB``L,SV/S$5/#T_Y``0^!?\(`:D)=BX/]T`:@'"(`"PS/8_,14 +M\/^0`$/@3_"1UI"78N#_=`&H!PB``L,SV/ST_Y``0^!?\)'6T-"2KR+@_WT! +MD)>4[_"C[?#DH_"C\.5J8`7D_Q).>9"7E.`PX`F0EY;D\*-T@/"0!!W@8!V0 +M!2+@D)>8\.#_5)!@[)`!R'3\\.]4;Y`%(O"`W9"7E.#_PQ.0_1#PD`0E[_"0 +MEY7@8!^CH^#_)`_U@N0T_/6#X$2`\'00+_6"Y#3\]8/@1(#PD)>6H^#__20( +M]8+D-/SU@^3P=`DM]8+D-/SU@^!4\/!T(2_U@N0T_/6#X%3W\)"7EN#^H^#_ +M(O"0`$7@5/[]?T73$*\!P\#0CX)U@P#M\)'6T-"2KR+O%&`P%&!E)`)@`N': +MD)!$$/U_18!OY)"7./"0 +MES1Q4Y"`EA(E"'^`?@@2*PB0`$7@1._]?T7Q()``1>!4[_U_1?$@D`!&X$00 +M_7]&@#>0ESAT`?"0ESYQ4Y"`EA(E"'^`?@@2*PB0`$7@1"#]?T7Q()``1>!$ +M$/U_1?$@D`!&X$00_7]&\2`BD`!)X)"7I/#@5`_P1/#]?TGQ()"7I.!$L/U_ +M2>$@=2@SY/4I=2H"]2N0`3#E*/"CY2GPH^4J\*/E*_`B=3`?=3$!Y/4RD`$X +MY3#PH^4Q\*/E,O`BY)"73_"C\'6.`A)LK9```N!4X)"7AF`%=`'P@`-T`O"0 +M`//@,.,(D)>'=`'P@`7DD)>'\)"7A^"T`1.0`/+@,.<,D)=]=/WPHW0S\(`* +MD)=]=/WPHW0O\.3U5Q)JZQ)O\A)?K!(N`1)M5Q)'^9``\^`PX@V0!4%T$/"0 +M!5KPH^3PD`%D=*#P=43_Y/5%^WT!?U!^`1(P8A$7$D4"$G=(D)=1Y=GP$E`5 +MPJ^0`(#@1$#P$D36=>@#0ZB%TJ^0ET_@9`'P)"^0`<3P=$BC\.57,.0*PJ]3 +M5^_2KQ)7@.57,.86PJ]35[_2KQ)A9)"7/.#_8`.T`0(Q8)"7/.!P`Q)WIC$S +M@+B0!C3@8"8435_^7X!$FSUOP$)D`8UX%0/\(`%@``";)[DD`8T +M\"*0ES/@PY044`7@!/!!&)"7,^!D%&`"01B0ET+@<"60ET7@0!/W@5/[PD)="X)`$1/"0ET/@D`1%\)"71."0 +M!$;PH^3PD)=%X)`$2/"0ET;@D`1)\)"71^"0!$KPH^3PD)#^TY]0"Y"72^##GM.4`4`0D)"0ETGPD`5BX)"72O"0!6/@D)=+\,-T_Y_^D)=)X-.>0![@+_"CX+3_#^3P +MH^"T_P/D\"*0ETN``Y"72N`$\"*0ETG@+_`BD)#_46*0ETQT`1)'%H!`D)=,X&0!<#B0ESW@_U%BY)"73/"0`$7@1`']?T42 +M1R"0ES+@8!60ES020U.0@)82)0A_@'X($BL(@`60!2+D\)`%A^!D@/"0ETC@ +MD`6$\)"72>"0!87PD)=*X)`%AO"0ETO@D`6'\"+`X,#PP(/`@L#0==``P`#` +M`<`"P`/`!,`%P`;`!Y`!Q'1J\'1+H_!3D=^0`3S@53#U-*/@53'U-:/@53+U +M-J/@53/U-^4T,.`&D`$\=`'PY30PX0B0`3QT`O#QJ^4T,.(RD`$\=`3PD`:2 +MX##@'G5$%'5%`.3[_7]8?@$2,&*0`5MT!?"0!I)T`?"`!Y"7=N3PD8KE-##C +M,I`!/'0(\)`&DN`PX1YU1!1U10#D^_U_7'X!$C!BD`%?=`7PD`:2=`+P@`>0 +MEW7D\)&*Y30PY`F0`3QT$/`2;7?E-##E")`!/'0@\%&TY34PX!"0`3UT`?"0 +M`(/@D)=Y\)&*=&H$D`'$\'1+H_#0!]`&T`70!-`#T`+0`=``T-#0@M"#T/#0 +MX#*0EWG@_WT!@`1]`7\,CV>-:.5G5`__D)=WX%0/;V!QY6]@*[%.D)=WX%0/_[\$#>5G(.(($E8Q[V`4T920EW?@5`__ +MOP(($F`)[V`"T>!4O_`BD`8$X$1`\.5IM`$$?P'Q2)"7=^!4\/#@1`3P +M(N]D`7`N?7U_`A(Q+'T"?P,2,2R0`5?D\)`!/'0"\)&3Y/_1>9`&!.!4?_"0 +M!@K@5/CP(I`!-G1]\*-T`O!]??\2,9U]`G\#$C&=D`8$X$2`\)`&"N!$!_"0 +MEW+@H^"0!5CPY6DPX!J0EV_@%&`O)`-P0'\!@#JK$:H2J1.0 +M``(20B#]Y/_14X`GJQ&J$JD3D``"$D(@_7\!T5,?@!.K$:H2J1.0``(20B#] +M?P+14^3_L6HB[R3^8`L$V0EWAP!70%\(`"[?"0EWC@D)=M +M\"+O8`N0EX?@M`$0Y/^`"9"7A^"T`05_`1)O^R*0`3=T`O"0!2)T__`2;E_O +M<`:0`BX&`%D`4BY/"0EW?@ +M5/#PX$0$\"*0!@3@5+_P[V`)Y6FT`03D__%(D)=WX%3P\.!$#/`B$E/\OP$: +MD)=VX'`4D)=UX'`.D)=YX%0/TY0$4`-_`2)_`"*/:Y"7@A)&7>5K8!!T(2_U +M@N0T_/6#X$00\(`.="$O]8+D-/SU@^!4[_"0!!]T`?`B?0)_`Q(Q+.5J%"3] +M4`*`(9"7>N!@!GT!?PR`#Y"7=^!4#\.4!%`&?0%_!)&7Y/_1>2*0EWO@8`[D +M\*/@5/WPX%0'<">`(Y"7;N`$\)"7?.!4[_"0EV[@TY0!0`WE:;0!"J/@<`;@ +M!/`BD8HBD`$PY/"C\*/PH_"0`3CPH_"C\*/P_7]0$D<@Y/U_41)'(.3]?U(2 +M1R#D_7]3`D<@D`$\=/_PH_"C\)`!-/"C\*/PH_#]?U021R!]_W]5$D<@??]_ +M5A)'('W_?U<"1R#`X,#PP(/`@L#0==``P`#``<`"P`/`!,`%P`;`!Y`!Q'1$ +M\'10H_"0`33@52CU+)`!-N!5*O4NH^!5*_4OY2P@X`(AVY`!-'0!\(713872 +M3H733X744(7548764H774X795.545$##$__E4U0@;W`"(9+E5##E`B&2Y5)4 +M'_4(Y4U4/_4)Y5%4'__E""7@)./U@N0TE/6#Y(_P$D*!Y5-4'__E""7@),#U +M@N0TD?6#Y(_P$D*!Y0G3E`1``W4)!'7P"N4(D)``$D-?=?`"Y0D20U_@_J/@ +M_^535!\O_^0^_G7P"N4(D)``$D-?=?`"Y0D20U_N\*/O\.54(.8CY5-4'__E +M""7@)&/U@N0TE/6#Y(_P$D*!Y4\PYS2O"+'#@"[E4U0?_^4()>`DH_6"Y#24 +M]8/DC_`20H'E3S#G$>5/5'_]Y5-4'_4-JPFO")&PY6H4)/U0`H!`D)=ZX&`R +MD`%;Y/"0`3QT!/!Q_.]D`7`H=404]47[_7]8?@$2,&*0`5MT!?"0!I)T`?"0 +MEW;P@`AQ_+\!`Q),BN4L,.$FD`$T=`+PD/T0='_PA=%8A=)9A=-:A=1;A=5< +MA=9=A==>A=E?D0OE+##C!I`!-'0(\.4L,.0)D`$T=!#P0U<0Y2PPY2:0`<_@ +M,.4?X%3?\)`!-'0@\'6H`'7H`!)/Y9```^!4^_`21-:`_N4L,.8&D`$T=$#P +MY2XPX3R0`39T`O!#5T"0`0+@5`-D`7`ID`$WX##@"G0!\)"7?^3P@!B0EW_@ +M!/#@PY0*0`SD\)`$&>`PX`,21/+E+C#@")`!-G0!\-%EY2XPXG&0`39T!/#E +M:60!<&7E:F!AY6ID`F`&Y6ID!7`GD`:KX)"7;?"0!JK@D)=X\)"7;>!P!Y"7 +M>.#_@`60EVW@_Y"7;>_PD)=OX&`#X!3PD)=NY/"0`5?PD`$\=`+PD)=\X%3] +M\.!4[_#E:A0D_5`"@`*Q$.4N,.,QD`$V=`CPY6ED`7`EY6I@(9`!5^3PD`$\ +M=`+P=40#=44`Y/O]?U1^`1(P8I`!5W0%\.4N,.0OD`$V=!#PY6ED`7`CY6I@ +M'Y`!5^3PD`$\=`+PD)=[Y/"0EWS@5/WPX%0'<`,23(KE+C#E'9`!-G0@\.5I +MM`$2Y6I@#I"7>N!D`F`$L7B``K&)Y2XPYAZ0`39T0/#E:;0!$^5J8`^0EWS@ +M5/[PX%0'<`,23(KE+S#A"9`!-W0"\!)/>71$!)`!Q/!T4*/PT`?0!M`%T`30 +M`]`"T`'0`-#0T(+0@]#PT.`RD`0;X%1_9']_`6`"?P`BD)=-X%3P1`/P5`]$ +M@/![`'H`>5B0EY$20XL+>I=Y3=,0KP'#P-"0EXX20XN0EX;@9`)@;)`!K^!@ +M"9`!Q^`$\/"`\9"7H^#_!/"0EXX20VN0``'O$D)?D)>.$D-KBV.*9(EE=68" +M>P%Z`7F@$D4)D)>1$D-KBV.*9(EED)>.$D-K$B1B_\14#_5F>P%Z`7FB$D4) +MD`&O=/_PD`'+X&2`\-#0DJ\BJ07I5!_U#W0!+_6"Y#22]8/@]0Z0!/W@M`$% +M=1`#@`-U$`'KPY400`*AP^4.)0W^Y0^00=:3_>[3G70!0!0EWS@1`'PD)=ZX&0"8`2Q>(`+L8F`!Y"7?.!4_O#E"I"7?##G +M(.!$`O!U1`/D]47[_7]4?@$2,&*0`5=T!?"0EWMT`?`BX%3]\"*0EX'@_^3] +M$D9AD`0?=`'P(I`!7^3PD`$\=`CP=404Y/5%^_U_7'X!$C!BD`%?=`7PD`:2 +M=`+PD)=U%/"0EW?@5`_#E`Q0`Q),DR*M!W7P">V0DR<20U_@_W2E+?6"Y#26 +M]8/@5!_\TY]``JP'["7@))[U@N0T0?6#Y)/^=`&3_^PEX"1F]8+D-$'U@W0! +MDR__Y),^PQ/^[Q/_[27@).'U@N0TDO6#[O"C[_!TA"WU@N0T!/6#[/#_(G'\ +M[V0!<"J0EWS@5`-P(I"7>>!4#].4`E`7D)=\X"#B$)"7?.`@Y`F0EV_@<`-_ +M`2)_`"+DD)=-\.5J8''E:60!<&OE:A1@*23]8"4D`B3[4`*`(Y"7;>`4\.!@ +M!*/@8!:0EVW@<`J0EWC@D)=M\(``D)=-=`'PD)=-X&`QD)=\X$00\)"7=.#U +M1.3U1?O]?U1^`1(P8I`!5W0%\)"7=^!4#\.4!%`'?0%_!!),ER+`X,#PP(/` +M@L#0==``P`#``<`"P`/`!,`%P`;`!Y`!Q'3@\'16H_!3D>^0`%'@_Y``5>!? +M]3WE/3#F&'1`\)"7.^!4`_^_`PN0ESC@8`5_`1)'->4],.<5D`!5=(#PD)<[ +MX%0#_[\#!7\"$D0EZ'@_W0! +M?@"H!PB`!<,SSC/.V/G_[UUP`P)8O9"7H>!U\`20`=`20U_@D)=3\'5C`75D +MEW5E4W5F`7L!>I=Y5!)%"9"75.#_Q!,3$U0!D)>A,.!9X'7P`I``B!)#7^"0 +MEU7PD)>AX'7P`I``B1)#7^"0EU;PD)>AX'7P!)`!T1)#7^"0EU?PD)>AX'7P +M!)`!TA)#7^"0EUCPD)>AX'7P!)`!TQ)#7^"0EUGP@#/@=?`$D`'1$D-?X)"7 +M5?"0EZ'@=?`$D`'2$D-?X)"75O"0EZ'@=?`$D`'3$D-?X)"75_#O5'__>P%Z +MEWE5$#^=`&H!@B``L,SV/ST7Y"74O"0EZ'@_W0!J`<(@`+# +M,]C\D`',\)"7H>`$\.!4`_`"5XJ0`<;@1`+P`E>*(I"76A)#B^\20Y18]`%8 +M_`)9!`-9#`59%`991@=9'`E9)0Q9+@U9-@X``%D_D)=:$D-KP=B0EUH20VO! +MTI"76A)#:^%DD)=:$D-KX0*0EUH20VN`*Y"76A)#:P)$89"76A)#:P)X?Y"7 +M6A)#:^$QD)=:$D-K`G9PD`'&X$0!\"*0``020B#_5!_^[U0@Q!-4!_VO!I"7 +M7>_PH^WPHQ)#BY"77Q)#:Y```Q)"(%3PQ%0/D)=B\)``!!)"(%1`Q!,35`.0 +MEV/PD)==X/]U\`F0DR420U^M@JR#D)=D[/"C[?#O=?`)I"0C^723-?#Z>P&C +M$D.+D)=?$D-KD``#$D(@5`__D)=F$D-K[Q)"39"77Q)#:Y```A)"(/^0EV82 +M0VN0``'O$D)?D)=?$D-KD``!$D(@_Y"79.#\H^#]]8*,@^_P$B1BC8*,@Z/P +MD)=BX/Z0EUW@_R3!]8+D-)+U@^[PD)=>X/YU\`GOD),I$D-?[O!U\`GOD),J +M$D-?=`'PD)=CX/YU\`GOD),K$D-?[O"/$>\EX"3D]8+D-)6O@O43CQ3E$77P +M`J0D@?ETDC7P=14!]1:)%W7P">41D),E$D-?KX*%@QB/&>41=?`)I"0C^723 +M-?!U&@'U&XD<=,$E$?6"Y#22]8/@$D.46M4`6NH!6O\"6Q0#6ST$6U(%6V<& +M6XT,6[H-6^<.7!0/``!<2.41)>`DY/6"Y#25]8-T\/"C=!6`/.41)>`DY/6" +MY#25]8-T\/"C=!"`)^41)>`DY/6"Y#25]8-T\/"C=`6`$N41)>`DY/6"Y#25 +M]8-T\/"CY/#E$27@)('U@N0TDO6#=`_PHW2/\(%(Y1$EX"3D]8+D-)7U@W0/ +M\*-T]8`GY1$EX"3D]8+D-)7U@W0/\*-T\(`2Y1$EX"3D]8+D-)7U@^3PHW0- +M\.41)>`D@?6"Y#22]8/D\*/P@4B0!$?@JQ6J%JD7$D)-D`1&X*L5JA:I%Y`` +M`1)"7Y`$1>"%%(*%$X/PD`1$@3^0!$O@JQ6J%JD7$D)-D`1*X*L5JA:I%Y`` +M`1)"7Y`$2>"%%(*%$X/PD`1(@%B0!$_@JQ6J%JD7$D)-D`1.X*L5JA:I%Y`` +M`1)"7Y`$3>"%%(*%$X/PD`1,@"N0!%/@JQ6J%JD7$D)-D`12X*L5JA:I%Y`` +M`1)"7Y`$4>"%%(*%$X/PD`10X(44@H43@Z/PJQ6J%JD7P`/``L`!$B1B_ZL: +MJANI'!(D8E_0`=`"T`,20DVK%>47)`'YY#46^L`#P`+``1(D8O^K&JH;J1R0 +M``$20B!?T`'0`M`#$D)-A12"A1.#P(/`@N#_A1F"A1B#X/[O7M""T(/PA12" +MA1.#H\"#P(+@_X49@H48@Z/@_N]>T(+0@_#E$27@)('U@N0TDO6#X/ZCX$Y@ +M.W42"W0!?@"H$@B`!<,SSC/.V/G_Y1$EX"2!]8+D-)+U@^!>_J/@7TY@!N42 +M)!"`7142Y1+#E`!0RH!6Y1$EX"3D]8+D-)7U@^#^H^!.8#UU$@]T`7X`J!(( +M@`7#,\XSSMCY_^41)>`DY/6"Y#25]8/@7OZCX%].8`B0EVGE$O"`$!42Y1+# +ME`!0R(`%Y)"7:?#E$27@).3U@N0TE?6#X/ZCX$Y@.^3U$G0!?@"H$@B`!<,S +MSC/.V/G_Y1$EX"3D]8+D-)7U@^!>_J/@7TY@")"7:N42\(!;!1+E$K00RH!2 +MY1$EX"2!]8+D-)+U@^#^H^!.8#GD]1)T`7X`J!((@`7#,\XSSMCY_^41)>`D +M@?6"Y#22]8/@7OZCX%].8`;E$B00@`H%$N42M`S,@`7DD)=J\)"7:>#_=?`) +MY1&0DR<20U_O\)"7:N#^=?`)Y1&0DR@20U_N\'2$)1'U@N0T!/6#X-.?0!^0 +MEVG@_W2$)1'U@N0TEO6#[_!TA"41]8+D-`3U@^_P=(0E$?6"Y#0$]8/@PYY0 +M'Y"7:N#_=(0E$?6"Y#26]8/O\'2$)1'U@N0T!/6#[_"0EVG@_].4$T`(D),B +M=`/P@"'OTY0+0`B0DR)T`O"`$^_3E`-`")"3(G0!\(`%Y)"3(O"0DR+@D`2Q +M\"(2)&+U:2+3$*\!P\#0D``!$D(@D)=Z\)```Q)"()"7;/`2)&)E:F`#$DWQ +MT-"2KR(2)&+U$<.4(%`5D``"$D(@_W0C)1'U@N0TE?6#[_`BY1&T(`J0``(2 +M0B"0DR'P(I```A)"()"7//#@8`3@]'`AHJ_D,_41PJ^0`$?@5/O]?T<21R!] +M0'\!$C%FY1$D_Y*O(I`"">#]$B1B_J\%[2Z0EX#PD``!$D(@_^TOD)>!\)`` +M`A)"(/_M+Y"7@O"0``,20B#_[2^0EX/PD``$$D(@_ZX%[2^0EX3P(N3U:9"7 +M?/#U:I"7>70,\)"7=_#DD)=Z\)"7=O"0EW7PD)=X!/"0EVWPY)"7>_"0EV_P +MD)=T=`?PY)"7;O"0EW+PHW0"\.20EW'PD)=L\"+DD)=[\)"7;O"0EWSP(N57 +M<#>0EWG@5`_3E`%0+)`"A^!P)I"7AN"T`A"0EWW@_J/@]8*.@^!@"(`/D`&O +MX'`)D)=QX&`#?P$B?P`BD``KX$0!\'_H?@,2,A60``C@1!#]?P@21R"0``G@ +M5/?]?PD21R"0`"C@5/[]?R@21R"0`"#@5/[]?R`21R"0`"7@1$#]?R421R"0 +M``G@5._]?PD"1R"0`"7@5+_]?R421R"0`"#@1`']?R`21R"0`"C@1`']?R@2 +M1R"0`/#@,.'YD``)X$0(_7\)$D<@D``(X%3O_7\($D<@D``KX%3^_7\K$D<@ +M?^A^`P(R%8]LD)>#$D9=Y6Q@$'0A+_6"Y#3\]8/@1!#P@`YT(2_U@N0T_/6# +MX%3O\)`$'W0!\"+OPY0@4#GO,.`7[<14\/WOPQ/^)*3U@N0T!/6#X%0/@!#O +MPQ/^)*3U@N0T!/6#X%3P\'2D+O6"Y#0$]8/@3?`BY/41=?`)Y1&0DRH20U_@ +M9`%@`N%AY1$EX"3`]8+D-)'U@^#^H^#3E`#NE`!0`N%AY1%U\`JD)`#Y=)`U +M\'46`?47B1CE$27@),#U@N0TD?6#X/^CX)"75L_PH^_PY1$EX"1C]8+D-)3U +M@^#_H^"0EUC/\*/O\'2$)1'U@N0T!/6#X%0_D)=2\.#^5!^C\'7P">41D),G +M$D-?X)"76_!T9"41]8+D-);U@^##E`5``H$[D)=;X/^0EU/@GT`3D)=;X)"7 +M4_#N5$#^D)=2\.].\)`$_>!D`7`ID)=3X/^004J3_G0C)1'U@N0TE?6#X,.> +M0`;OD$#:@#"0EU/@D$#V@">0EU/@_Y!!2I/^=",E$?6"Y#25]8/@PYY`!N^0 +M01*`!Y"74^"002Z3D)=:\)"76N!U\`:D)%#Y=$`U\'43__44B160EU+@D$'R +MD__3D)=9X)^0EUC@E`!`">3]KQ$2:5K!^.41)>`DX?6"Y#22]8/@]1FCX/4: +MJQ.J%*D5$B1B_WX`JQ:J%ZD8$D*7_:SP$B1[[R4:]1KN-1GU&:L3JA2I%9`` +M`1)"(/]^`*L6JA>I&)```A)"POVL\!(D>^\E&O4:[C49]1FK$ZH4J160``(2 +M0B#_?@"K%JH7J1B0``020L+]K/`2)'OO)1KU&NXU&?49JQ.J%*D5D``#$D(@ +M_WX`JQ:J%ZD8D``&$D+"_:SP$B1[[R4:]1KN-1GU&:L3JA2I%9``!!)"(/]^ +M`*L6JA>I&)``"!)"POVL\!(D>^\E&O4:[C49]1FK$ZH4J160``420B#_?@"0 +MEU;@_*/@_1(D>]/E&I_E&9Y`#.4:G_4:Y1F>]1F`!>3U&?4:Y1$EX"3A]8+D +M-)+U@^49\*/E&O"0EU+@)>`D9O6"Y#1!]8/#=`&3E1KDDY494`:O$?%MP`DGO6"Y#1!]8/3=`&3E1KDDY494`+!S'T!KQ$2:5K!S'1D)1'U@N0T +MEO6#X/QD!6`"H=:0DR+@_[0#"Y"74^##E!E`/8`N[[0""Y"74^##E!%`+H`? +MD),BX/^T`0N0EU/@PY0*0!N`#.]P$9"74^##E`-`#9"50W0!\(`%Y)"50_!T +M0R41]8+D-)3U@^#U&W0C)1'U@N0TE?6#X/_#E#!0`J&#D)5#X&0!8`*A@W1$ +M)1'U@N0TE?6#X&0*8%'O)`7_Y#/^="$E$?6"Y#22]8/@_=.?[F2`^'2`F%`R +M[20%_^0S_G0C)1'U@N0TE?6#X-.?[F2`^'2`F%`4=(0E$?6"Y#26]8/@_Y"7 +M4^!O8#UT(R41]8+D-)7U@^#_TY1"0`5U&P6`#N_3E#E`!74;`X`#=1L!="$E +M$?6"Y#22]8/O\'1$)1'U@N0TE8`I=&0E$?6"Y#26]8/D\'1$)1'U@N0TE?6# +MX`3P@!#D]1MT9"41]8+D-);U@^3PD)=3X/]TA"41]8+D-);U@^_P=$,E$?6" +MY#24]8/E&_!U\`GE$9"3*Q)#7^"T`1#D]1MT9"41]8+D-);U@^3PK1O!R.QD +M!F`"PI&'7P`N42I/6"A?"#$D+"_:SPY1*00@Z3_WX`$B1[[R4: +M]1KN-1GU&<.0EU7@E1J0EU3@E1E`!P42Y1*T!;WE$L,3]1+E&[0!!N42<$:` +M$^4;M`,5Y1)P!74;`X`YY1*T`05U&P&`+X`JY1NT!2CE$G`%=1L%@`WE$K0! +M!74;`X`#=1L!TY"76>"4`Y"76."4`$`#Y/4;TY"76>"4`Y"76."4`$`#Y/4; +M=$,E$?6"Y#24]8/E&_#]KQ$Q)'1D)1'U@N0TEO6#X-.4!71D4`XE$?6"Y#26 +M]8/@!/"`"R41]8+D-);U@^3PJQ:J%ZD8Y/7P$D+ZJQ:J%ZD8D``"Y/7P$D,9 +MD``$Y/7P$D,9D``&Y/7P$D,9D``(Y/7P$D,9Y1$EX"3`]8+D-)'U@^3PH_#E +M$27@)&/U@N0TE/6#Y/"C\.41)>`DH_6"Y#24]8/D\*/P!1'E$<.4(%`"(6S#E!!`(>PD\/]T`7X`J`<(@`7#,\XSSMCY +M_Y"77>!>_J/@7TYP(^S#E!!0.70!?@"H!`B`!<,SSC/.V/G_D)=?X%[^H^!? +M3F`<[&038`CL9!)@`[P1"9"77>`PX`)\&*T$C1R`-`R`BY"77.#\;7!I=*4I +M]8+D-);U@^WP=?`)Z9"3*1)#7^"T`0SE'"#F!^U$0/4<@`.O'"+M)>`DGO6" +MY#1!]8/DD_YT`9/_[27@)&;U@N0T0?6#=`&3+__DDS[#$_[O$__I)>`DX?6" +MY#22]8/N\*/O\(!;[=.<0%:0EUS@_W2E*?6"Y#26]8/O\*T'CQSM)>`DGO6" +MY#1!]8/DD_YT`9/_[27@)&;U@N0T0?6#=`&3+__DDS[#$_[O$__I)>`DX?6" +MY#22]8/N\*/O\*\<(G0!*?6"Y#22]8/D\.4<1(#_=(0I]8+D-`3U@^_P(JH' +M=(0J]8+D-`3U@^!4?_M4'_F0EU[P=?`)ZI"3*!)#7^"0EV#P=?`)ZI"3)Q)# +M7^"0EV'P_.HEX"3D]8+D-)7U@^#_H^"0EV+/\*/O\.HEX"2!]8+D-)+U@^#_ +MH^"0EV3/\*/O\.G3G$`)D)=AX)"77O#[[7`"09V0EU_M\.LPY@F0EU[@^Z/@ +M%/"0EU_@<`)!G9"77N#_TY0`4`)!G>20EUWP[Q20EUSPD)=@X/F0EUS@_M.9 +M0'+NE!!`)>XD\/]T`7X`J`<(@`7#,\XSSMCY_Y"79.#\H^#][%[^[5].<"N0 +MEUS@_\.4$%`V=`%^`*@'"(`%PS/.,\[8^?^0EV+@_*/@_>Q>_NU?3F`5D)=< +MX/NCX`3PD)=?X/^0EUW@;V`(D)=##GU`,D)=`DX?6"Y#22]8/N\*/O\'2$*O6"Y#0$]8/K\/\BD`1$=!'P +MHW3P\*-T#_"CY/#]=*0M]8+D-`3U@^3P#;T0\.3]=?`*[9"0`!)#7^3PH_!U +M\`KMD)`"$D-?Y/"C\'7P"NV0D`020U_D\*/P=?`*[9"0!A)#7^3PH_!U\`KM +MD)`($D-?Y/"C\'2$+?6"Y#26]8-T$_!T1"WU@N0TE?6#Y/!T0RWU@N0TE/6# +MY/#M)>`DP/6"Y#21]8/D\*/P[27@)&/U@N0TE/6#Y/"C\.TEX"3C]8+D-)3U +M@^3PH_#M)>`DH_6"Y#24]8/D\*/P[27@)&3U@N0TE?6#Y/"C\.TEX"2D]8+D +M-)7U@^3PH_!T1"WU@N0TEO6#Y/!T)"WU@N0TEO6#Y/!T9"WU@N0TEO6#Y/"0 +M0<23_G0!D_^008QT`9,O_^23/L,3_N\3_^TEX"3A]8+D-)+U@^[PH^_P=?`) +M[9"3*A)#7W0!\'7P">V0DRD20U]T`?!TP2WU@N0TDO6#=`SP=?`)[9"3)1)# +M7W3_\*/P=?`)[9"3(Q)#7^3PHW0/\'7P">V0DR<20U]T$_!U\`GMD),H$D-? +MY/!TA"WU@N0T!/6#=!/P#>UD(&`"80\BD`8T=/_PY*/PH_"C\"(BY)"7A?"B +MKS.0EU/PD`"`X"#A&A(R*Q(R*Y"74N!D`?#@)*V0`<3P=&RC\(#?D`8P=`'P +MPJ^0`(#@1(#P$D36D)=3X"3_DJ\BCA&/$HL3BA2)%>20EU+P[Y``,?`21-;E +M$50#_Y``,N!4_$_P$D36D``SX%1_\!)$UI``,^`@YPZ0EU+@PY1D4`7@!/"` +MZY"74N##E&10$)``,."K$ZH4J1420DU_`2)_`"+D]28B?PNQON]E)F`0Y2:T +M`07D]2:``W4F`7\!(G\`(N4C9`%P0+%;OP$%?P$21.:0`$;@1`3]?T821R"0 +M`$3@5/O]?T021R"0`$;@5/O]?T821R!_`K&^CR>0`_PTY0'4$?@_W0!J`<(@`+#,]C\]/^0`$;@7_`21-:0EZ7@_70! +M?@"H!0B`!<,SSC/.V/G_D`!$X/OD_N];J`4(@`;.HN<3SA/8^/^`1)"7I>`D +M^/#@_W0!J`<(@`+#,]C\$D3.D)>EX/UT`7X`J`4(@`7#,\XSSMCY_Y``0N#[ +MY/[O6Z@%"(`&SJ+G$\X3V/C_T-"2KR+DD)>=\*/PD`7XX'`/H^!P"Z/@<`>C +MX'`#?P$BTY"7GN"4Z)"7G>"4`T`#?P`B?S)^`!(R%9"7G>1U\`$20H&`QI`` +M$>!$"?`21-:0EQT20U.0@)82)0A_>'X($BL(D)3]_Q(P+)"7A^"T`1&0@&@2)10``RV5Y/U_`1(P+")_>'X($B)ED)<= +M$B4(?P1^#!(B99"7(1(E"'\`?@@2(F60ER42)0B0EX?@D)<=M`$-$D-3[U3' +M_^U4Q_V`!Q)#4^]4Q__LD("6$B4(?WA^"!(K")"7(1)#4^]4#__LD("6$B4( +M?P1^#!(K")"7)1)#4^]$`O_LD("6$B4(?P!^"!(K"']P?@X2(F60ERD2)0B0 +M@)82)10`&R6@?W!^#A(K")"`:!(E%`````#D_?\2,"R0EX?@M`$1D(!H$B44 +M`````.3]?P$2,"R0`!'@5/;P`D36D)>'X)"7+?`B[W`"(;&0ERW@8`*A?)"7 +M&1)#4Y"`EA(E"'^,?@@2*PB0EL420U.0@)82)0A_1'X($BL(D);)$D-3D("6 +M$B4(?UQ^"!(K")"6S1)#4Y"`EA(E"']L?@X2*PB0EM$20U.0@)82)0A_<'X. +M$BL(D);5$D-3D("6$B4(?W1^#A(K")"6V1)#4Y"`EA(E"']X?@X2*PB0EMT2 +M0U.0@)82)0A_?'X.$BL(D);A$D-3D("6$B4(?X!^#A(K")"6Y1)#4Y"`EA(E +M"'^$?@X2*PB0END20U.0@)82)0A_B'X.$BL(D);M$D-3D("6$B4(?XQ^#A(K +M")"6\1)#4Y"`EA(E"'_0?@X2*PB0EO420U.0@)82)0A_U'X.$BL(D);Y$D-3 +MD("6$B4(?]A^#A(K")"6_1)#4Y"`EA(E"'_9$B4(D)>9$D-3[43`_>R0EYD2)0B0EYD20U.0@)82)0A_C'X( +M$BL(D("6$B44``$``']$?@@2*PB0@)82)10`VR6D?UQ^"!(K")"`EA(E%"#; +M):1_;'X.$BL(D("6$B44(-LEI']P?@X2*PB0@)82)10$&R6D?W1^#A(K")"` +MEA(E%`0;):1_>'X.$BL(D("6$B44!!LEI']\?@X2*PB0@)82)10$&R6D?X!^ +M#A(K")"`EA(E%&/;):1_A'X.$BL(D("6$B44!!LEI'^(?@X2*PB0@)82)10@ +MVR6D?XQ^#A(K")"`EA(E%"#;):1_T'X.$BL(D("6$B44(-LEI'_4?@X2*PB0 +M@)82)10@VR6D?]A^#A(K")"`EA(E%``;):1_W'X.$BL(D("6$B44`!LEI'_@ +M?@X2*PB0@)82)10DVR6D?^Q^#A(K"'\$?@P2(F60EYD2)0B0EYD20U/D_^R0 +MEYD2)0B0EYD20U/O1!'_[)"7F1(E")"7F1)#4Y"`EA(E"'\$?@P2*PA_!'X- +M$B)ED)>9$B4(D)>9$D-3[U3P_^R0EYD2)0B0EYD20U/O1`'_[)"7F1(E")"7 +MF1)#4Y"`EA(E"'\$?@T2*PA_#'X)$B)ED)>9$B4(D)>9$D-3Y/_LD)>9$B4( +MD)>9$D-3[T01_^R0EYD2)0B0EYD20U.0@)82)0A_#'X)$BL(?PQ^"1(B99"7 +MF1(E")"7F1)#4^U4#_WL5/#\D)>9$B4(D)>9$D-3[400_>Q$`?R0EYD2)0B0 +MEYD20U.0@)82)0A_#'X)$BL(?P1^"!(B99"7F1(E")"7F1)#4^]4\/_LD)>9 +M$B4(D)>9$D-3[T0!_^R0EYD2)0B0EYD20U.0@)82)0A_!'X($BL(Y)"7+?`B +MTQ"O`?[_#3E`=09>#_=`&H!PB``L,SV/ST_Y``1^!?\!)$ +MUI"7G^#_=`&H!PB``L,SV/S_D`!&X$_P$D36D)>@X&`6D)>?X/]T`:@'"(`" +MPS/8_/^0`$6`:)"7G^#_=`&H!PB``L,SV/ST_Y``18!MD)>?X"3X\.#_=`&H +M!PB``L,SV/S$5/`21,Z0EY_@_W0!J`<(@`+#,]C\_Y``0^!/\!)$UI"7H.!@ +M&Y"7G^#_=`&H!PB``L,SV/S$5/#_D`!"X$^`&I"7G^#_=`&H!PB``L,SV/S$ +M5/#T_Y``0N!?\!)$UM#0DJ\BBQ&*$HD3D``"$D(@D)<[\.`PX$N0ES)T`?!_ +M@'X($B)ED)D`!'X%3S_7]'$D<@D`!(X%3S_7]($D<@D`!&X%3O_7]& +M$D<@Y)"7./`BY/U_11)'()`$_>3PH_"0ESSPD)="\)"71?"0ET/PD)=&\)"7 +M1/"0ET?PD)!$P/U_40)'()"73.!D`6`)D)`$\(`DD)=#X,.4 +M_U`&X`3PY(`1D)=$X,.4_U`,X`3PY)"70_"0ET+PD`!$X##C,I"71>##E/]0 +M!>`$\(`DD)=&X,.4_U`&X`3PY(`1D)='X,.4_U`,X`3PY)"71O"0ET7PD`3] +MX$0!\"*0``(20B"0ESKPD``!$D(@)>`EX)"7.?`2)&(EX"7@D)<]\)`%8."0 +METCPD`5AX)"72?"0!6+@D)=*\)`%8^"0ETOPHJ_D,Y"77?#"KY"7.>#_$DIB +MD)==X"3_DJ^0ESK@<`(AB9"7.>!P`B&)D)<]X'`"(8FBK^0SD)==\,*OD)=, +M=`'PD)==X"3_DJ\21Q>0`$;@1`']?T821R"0ES+@8!60ESX20U.0@)82)0A_ +M@'X($BL(@`:0!2)T?_"0`$7@5._]?T421R"0!8?@9(#PD)=(X)`%A/"0ETG@ +MD`6%\)"72N"0!8;PD)=+X)`%A_"BK^0SD)==\,*OD`$\X$0@\'T@Y/\2,;>` +M+9"7.N!P+Y"73!)'%I``1N!4_OU_1A)'()`%(N3PHJ\SD)==\,*O?2#D_Q(Q +-29"77>`D_Y*O(@"'%P`` +` +end Added: head/sys/contrib/dev/rtwn/rtwn-rtl8192cfwU_B.fw.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/contrib/dev/rtwn/rtwn-rtl8192cfwU_B.fw.uu Thu Dec 31 22:31:43 2015 (r293009) @@ -0,0 +1,366 @@ +begin 444 rtwn-rtl8192cfwU_B.fw.uu +MPH@"`%@``@`'%11$K#\!`,S,S,P````````````````"19L````````````` +M`````````EE4```````````````````````````````````````````````` +M`````````````F2,```````"2[(```4$`P(``P8%!`,`!`8%!`(`!`@'!@0` +M!@H)"`8`"`H)"`0`"`H)"`(`"`H)"```"!(1$`@`$!H9&!``&"(A(!@`("(A +M(!``("(A(`@`("(A'`@`("(A%`@`("(@&`@`(#$P(!``,#$P&```,#$O$!`` +M,#$L$!``,#$H$```,#$@$```,#$0$```,`0$!`4$!`0%!04&!@0$!`4%!08& +M!`0%!04%!@8$!`4%!04&!PH+#1`$!04&!@D,$0@("0D*#!`1!`0$!00$!0<' +M!P@*!`0$!`8*"PT%!0<'"`L-#P0$!`4'!PD)#`X0$@8'"0H,#A$3"0D)"0P. +M$1,````````````D)BH8&AT?(2`"@`,@!0`&0`>`",`$L`4`!X`+0`^@$L`9`!]```@`" +M``0`"``,`!(`&``D`#``2`!@`&P`*``\`%``9`"@`,@`\`$8`&0`H`#P`6@! +M]`)8`R`#Z`("`@("`@,#!`0%!P(#!`H,#A`2!0<'"`L2)#P!`0$!`0(#!`4& +M!P@!`@,$!08'"`4&!P@)"@L,(!X<&!`8````````````````NP$,Y8(I]8+E +M@SKU@^`B4`;I)8+XYB*[_@;I)8+XXB+E@BGU@N6#.O6#Y),BNP$&B8**@_`B +M4`+W(KO^`?,B^+L!#>6"*?6"Y8,Z]8/H\")0!NDE@LCV(KO^!>DE@LCR(L7P +M^*/@*/#%\/CE@A6"<`(5@^`X\"*[`0J)@HJ#X/7PH^`B4`:'\`GG&2*[_@?C +M]?`)XQDBB8**@^23]?!T`9,BNP$0Y8(I]8+E@SKU@^#U\*/@(E`)Z26"^(;P +M".8BN_X*Z26"^.+U\`CB(N6#*O6#Z9/U\*/IDR*[`0J)@HJ#\.7PH_`B4`;W +M":?P&2*[_@;SY?`)\QDB^+L!$>6"*?6"Y8,Z]8/H\.7PH_`B4`GI)8+(]@BF +M\"*[_@GI)8+(\N7P"/(B[TO_[DK^[4G][$C\(N#\H^#]H^#^H^#_(J0E@O6" +MY?`U@_6#(N#[H^#ZH^#Y(OC@^Z.CX/DE\/#E@A6"<`(5@^#Z./`BZ_"CZO"C +MZ?`BT(/0@OCDDW`2=`&3<`VCHY/X=`&3]8*(@^1S=`*3:&#OHZ.C@-_0@]"" +M^.23]D`6`(D`&Y=`'P@&[E)50#8`B0`;ET`O"`8.4C5`_3 +ME`)`")`!N70$\(!/Y24PX@B0`;ET"/"`0N4E,.0(D`&Y=!#P@#60DE?@8`B0 +M`;ET(/"`)Y"27.!@")`!N72`\(`9Y29@!Y`!N>3P@`Z0`;GD\)`!N'0$\'\! +M(I`!N'0$\'\`(@)%`P)%!GT!?PS3$*\!P\#0CV>-:.5G5`__Y2)4#V]@4B5`__OP0.Y6<@X@D21'SO +M8!022C/E(E0/_[\""1)+@N]@`Q)+,=#0DJ\B`D79`E%WY).C^.23HT`#]H`! +M\@C?](`IY).C^%0')`S(PS/$5`]$(,B#0`3T5H`!1O;?Y(`+`0($"!`@0("0 +M2T3D?@&38+RC_U0_,.4)5!_^Y).C8`$.SU3`)>!@J$"XY).C^N23H_CDDZ/( +MQ8+(RL6#RO"CR,6"R,K%@\K?Z=[G@+[D_^4D8'7E(60!<&_E)!1@*R3]8"`4\.!@!*/@8!20DE7@<`B0DF/@D))5\'\!@`)_`>]@.D,E +M$.20DH/PD))6X'7P`Z3_D))?X"^0DH3PY/O]?U1^`1)+EY`!5W0%\.4B5`_# +ME`10!WT!?P0210TBY2%D`7!GY21@8^4D9`)@!N4D9`5P)Y`&J^"0DE7PD`:J +MX)"28_"0DE7@<`>0DF/@_X`%D))5X/^0DE7O\)"25^!@`N3PY)"25O"0!5AT +M`_"0`5?D\)`!/'0"\%,E_5,E[^4D%"3]4`*``Q)'""+DD)(0\)`&J>"0DA#P +MX%3`<`E3)?Y3)?T22WN0DA#@,.850R4!D))DX&0"8`422LR`"!))\X`#4R7^ +MD)(0X##G)T,E`N20DH/PD));X)"2A/#D^_U_5'X!$DN7D`%7=`7PD))E=`'P +M(E,E_2+O9`%P,'UX?P(2-G5]`G\#$C9UD`%7Y/"0`3QT`O`210GD_Q)8II`& +M!.!4?_"0!@K@5/CP(I`!-G1[\*-T`O!]>_\2-N9]`G\#$C;FD`8$X$2`\)`& +M"N!$!_`22W#E(2#@!>20DE?P(I"2*1)#BQ)+9)"2*1)#:Q(IV?4D%&`.%&`? +M%&`Q)`-P1'\!@#V0DBD20VN0``(20B#]Y/\22F6`*9"2*1)#:Y```A)"(/U_ +M`1)*91^`%)"2*1)#:Y```A)"(/U_`A)*9>3_$D=T(N3U)?4D=2,,=2(,D))D +M\)"28O"0DF'PD))C!/"0DE7PY)"29?"0DE?PD))?=`7PY)"25O"0DEWPHW0# +M\)"26O"C=`7PD))9=!3PD))@=`7PY)"26/"0DE3PD))]\)"27/`B$DM5[V0! +M8`B0`;ET`?"`1Y"28N!@")`!N70"\(`YD))AX&`(D`&Y=`3P@"OE(U0/TY0$ +M0`B0`;ET"/"`&N4F8`B0`;ET(/"`#I`!N>3PD`&X=`CP?P$BD`&X=`CP?P`B +MY)"2%O#E)&!)D))EX&`-Y/!3)?WE)50'<#B`,Y"25N`$\%,E[Y"2%N#_D)): +MX"__Y#/^D))6X-.?[F2`^'2`F$`-Y2&T`0NCX'`'X`3P(A)+>R+E)!0D_5`" +M@$>0DF3@8"P210GDD)*#\)"26>"0DH3PY/O]?UA^`1)+EY`!6W0%\)`&DG0! +M\)"28O"`$.4B5`_#E`10!WT!?P0210WD_Q)8IB+3$*\!P\#0CV.0!!W@8"20 +M!2+@]69T__`2=F6_`0V0DGC@_WT!$E@*$D/GD`4BY6;P@`V0DGC@_WT!$E@* +M$D/GD`0?="#PT-"2KR*0`5_D\)`!/'0(\.20DH/PD))9X)"2A/#D^_U_7'X! +M$DN7D`%?=`7PD`:2=`+PD))A%/#E(E0/PY0,4`,210DBD`$W=`+PD`4B=/_P +M$G9E[W`&D`'(=/WP?0)_`Q(VYN4D8`5_`1)8IA)W&U,B\$,B`B+O)/Y@"P1P +M(I"28W0!\(`6[7`*D))@X)"28_"`!9"28^WPD))CX)"25?`B[V`/="$M]8+D +M-/SU@^!$$/`B="$M]8+D-/SU@^!4[_`BD`8$X%2_\.]@"N4AM`$%Y/\22:A3 +M(O!#(@PBD`0=X'`4D))WX/_D_1)8"HYICVJ0!!]T(/`BD)*I[_`2=J:0DJG@ +M8`60!2+D\%,B\$,B!"*0!@3@1$#PY2&T`05_`1))J%,B\$,B!"+E(S#F$N4C +M5`__D`$OX%2`3V2`\%,COR)3(O!#(@$22X422X93(O!#(@(B09)U`$&2J`!! +MDJH`09*B``"0!!O@5']D?W\!8`)_`"+DD))E\)"25O#U)2*0DEW@H^"0!5CP +M(GT!KR,"10U_`"(B(O"0DEG@D)*$\.3[_7]8?@'3$*\!P\#0D)*#X/NCX/5$ +MY/5%$C6KT-"2KR+`X,#PP(/`@L#0==``P`#``<`"P`/`!,`%P`;`!W4.`%.1 +MWY`!/.!5,/4TH^!5,?4UH^!5,O4VH^!5,_4WY30PX`:0`3QT`?#E-##A")`! +M/'0"\#$$Y30PXBR0`3QT!/#E)&`BD`:2X##@%)"2@^1QAY`!6W0%\)`&DG0! +M\(`'D))BY/!Q>^4T,.,\D`$\=`CPY21@,I`&DN`PX220DH/D\)"26>"0DH3P +MY/O]?UQ^`7&7D`%?=`7PD`:2=`+P@`>0DF'D\'%[Y30PY`B0`3QT$/"1]N4T +M,.4)D`$\="#P$E._Y34PX!:0`3UT`?"0`(/@]2.0`;OE(_!Q&7%[Y34PX@:0 +M`3UT!/#E-3#D!I`!/700\.4V,.`&D`$^=`'PY38PX0:0`3YT`O#0!]`&T`70 +M!-`#T`+0`=``T-#0@M"#T/#0X#+E7F0!<#OQN[\!!'\!\:^0`$;@1`3]?T:Q +M0I``1.!4^_U_1+%"D`!&X%3[_7]&L4)_`O'ZCV*0`20DC_PD)([$D-3 +MD("%$BI_?X!^"!(OV9``1>!$[_U_1;%"D`!%X%3O_7]%L4*0`$;@1!#]?T:` +M.)"2/W0!\)"211)#4Y"`A1(J?W^`?@@2+]F0`$7@1"#]?T6Q0I``1>!$$/U_ +M1;%"D`!&X$00_7]&L4(BD``"$D(@D))!\)```1)"("7@)>"0DD#P$BG9)>`E +MX)"21/"0!6#@D))/\)`%8>"0DE#PD`5BX)"24?"0!6/@D))2\**OY#.0DB7P +MPJ^0DD#@_Q)3;9"2)>`D_Y*OD))!X'`"X0:0DD#@<`+A!I"21.!P`N$&HJ_D +M,Y"2)?#"KY"24W0!\)"2)>`D_Y*OL3F0`$;@1`']?T:Q0I"2.>!@%9"211)# +M4Y"`A1(J?W^`?@@2+]F`!I`%(G1_\)``1>!4[_U_1;%"D`6'X&2`\)"23^"0 +M!83PD))0X)`%A?"0DE'@D`6&\)"24N"0!8?PHJ_D,Y"2)?#"KY`!/.!$(/!] +M(.3_$C<`@"N0DD'@<"V0DE.Q.)``1N!4_OU_1K%"D`4BY/"BKS.0DB7PPJ]] +M(.3_$C:2D)(EX"3_DJ\BD`$\=/_PH_"C\)`!-/"C\*/PH_#]?U2Q0GW_?U6Q +M0GW_?U:Q0GW_?U>A0I`!,.3PH_"C\*/PD`$X\*/PH_"C\/U_4+%"Y/U_4;%" +MY/U_4K%"Y/U_4Z%"D`!)X)"2J_#@5`_P1/#]?TFQ0I"2J^!$L/U_2:%"D`'* +MY6'P[V`"\9$B?POQ^N]E86`0Y6&T`07D]6&``W5A`7\!(G\`(N20DGOPD`"` +MX$2`_7^`H4+@7_#3$*\!P\#0?Q#?_M#0DJ\BTQ"O`0DJS@_70!?@"H!0B`!<,SSC/.V/G_D`!$ +MX/OD_N];J`4(@`;.HN<3SA/8^/^`3)"2K.`D^/#@_W0!J`<(@`+#,]C\]/^0 +M`$/@7_`23^J0DJS@_70!?@"H!0B`!<,SSC/.V/G_D`!"X/OD_N];J`4(@`;. +MHN<3SA/8^/_0T)*O(I`"A._PH^[PHW0%\"+OCO`20[I0RP!`4/,`@%$>`0!1 +M,@(`44H$````46?M5#]P!/[_@`1^`']`[RW_[CS^[W@&SL,3SA/8^7@&PS/. +M,\[8^8`F[51_<`3^_X`$?@!_@.\M_^X\_N]X!\[#$\X3V/EX!\,SSC/.V/G] +MK`:`2>UP!/[_@`1^`7\`[RWN/'T`_(`U[%0!37`$_O^`!'X"?P#O+>X\PQ-] +M`(`:[%0#37`$_O^`!'X$?P#O+>X\$Q-4/WT`)>`EX/RN!*\%(I`!Y'18\*-T +M`O`BY)"2%_"C\'6.`A)/U]&ED))\[_#1F9"2?N_PT>V0DG/N\*/O\.3U5?4A +M$G#6T9`22$(2,CW1A1)/.O$%T<#1B='5T811)Q)^=)"2&>79\,*OD`"`X$1` +M\!)/ZG7H`T.HA=*O,6R0DA?@9`'PY54PY`G"KU-5[]*OD77E53#F%L*O4U6_ +MTJ\2:;R0DD/@_V`#M`$"46N0DD/@<`,2?M)1/Y`!O>4B\)"29."0`;SP@+60 +MDJ/@5/[PY)"2I?"0DJ/@5'_PHW0*\"*0!C3@8"4435_^7X!$G8# +MOP$)D`8UX%0/\(`$@`#!LN20!C3P(I"2.N##E!10!>`$\&$CD)(ZX&048`)A +M(Y"22>!P)9"23.!P'Y"22N!P&9"23>!P$Y"22^!P#9"23N!P!Y`$_>!4_O"0 +MDDG@D`1$\)"22N"0!$7PD))+X)`$1O"CY/"0DDS@D`1(\)"23>"0!$GPD)). +MX)`$2O"CY/"0DC7@D`1,\)"2-N"0!$WPD)(WX)`$3O"0DCC@D`1/\.20DCKP +MD)(U!/#DH_"C\*/PD)))\*/PH_"C\*/PH_"0!6#@D)(:\)`%8>"0DAOPD`5B +MX)"2'/"0!6/@D)(=\)"24N#_D)(=X/[3GU`+D))2X,.>TY0!0!"0DD#@M`$" +M@`.0DD3@_W%M(I`%8."0DD_PD`5AX)"24/"0!6+@D))1\)`%8^"0DE+PPW3_ +MG_Z0DE#@TYY`'N`O\*/@M/\/Y/"CX+3_`^3P(I"24H`#D))1X`3P(I"24.`O +M\"*0DD'@9`%@`H%TD`!&X$0!_7]&$DU"D))3X'`RD)(YX&`5D))%$D-3D("% +M$BI_?X!^"!(OV8`&D`4B='_PD))`X/]Q;9"24W0!$DTX@$"0DE/@9`%P.)"2 +M1.#_<6WDD))3\)``1>!$`?U_11)-0I"2.>!@%9"2.Q)#4Y"`A1(J?W^`?@@2 +M+]F`!9`%(N3PD`6'X&2`\)"23^"0!83PD))0X)`%A?"0DE'@D`6&\)"24N"0 +M!8?P(M,0KP'#P-"0`DG4?&W4@`7L! +M>I)Y'+'"D)(\)"2J.!U\`20`=,20U_@D)(?\.]4?_][`7J2>1T27 +MJ1^0DH@20XNO(!4@[V`>D)*(Y'7P`1)#=!(IV?^0DH7D=?`!$D-T[Q)"38#; +MJQJJ&ZDB1]U(`)[`7H!>:"QPI"2CA)#:XL=BAZ)'Y"2BQ)#:Q(IV?_$ +M5`_U('L!>@%YHK'"D`&O=/_PD)*JX`3PD`'+X&2`\-#0DJ\B(N3U82*0`61T +MH/`BD))^X)"2#_`BD`#SX'\`,.,"?P$BD``"X%3@?P%@`G\`(I`&-'3_\.2C +M\*/PH_`BD`#SX##B#9`%0700\)`%6O"CY/`B=3`?=3$!Y/4RD`$XY3#PH^4Q +M\*/E,O`BD))^X+0!#)``\N`PYP5^_7\S(G[]?R\B=2@SY/4I=2H']2N0`3#E +M*/"CY2GPH^4J\*/E*_`BD)(0X%3P1`/P5`]$@/![`'H`>5:0DHX20XL+>I)Y +M$,$1TQ"O`931$=#0DJ\BTQ"O`I)Y9GT"\430T)*O +M(H^"CH.CHZ/D\"+D]5Y_8'X!@.W3$*\!P\#0D`0=X&`:D`4BX%208`>0`<;@ +M1$#PD`''X##AY'\`@`)_`=#0DJ\BTQ"O`_PD)*7X&`?HZ/@ +M_R0/]8+D-/SU@^!$@/!T$"_U@N0T_/6#X$2`\)"2F*/@__TD"/6"Y#3\]8/D +M\'0)+?6"Y#3\]8/@5/#P="$O]8+D-/SU@^!4]_"0DIC@_J/@_]#0DJ\B[V`+ +MD))^X+0!$.3_@`F0DG[@M`$%?P$2=^4B$E?0`33@52CU+*/@52GU+:/@52KU+J/@52OU +M+^4L(.`"0=^0`31T`?"%T4V%TDZ%TT^%U%"%U5&%UE*%UU.%V53E5%1`PQ/_ +MY5-4(&]P`D&515!__Y0@EX"3$]8+D-(WU +M@^2/\!)"@>535!__Y0@EX"2`]8+D-(?U@^2/\!)"@>4)TY0$0`-U"01U\`KE +M")"$`!)#7W7P`N4)$D-?X/ZCX/_E4U0?+__D/OYU\`KE")"$`!)#7W7P`N4) +M$D-?[O"C[_#E5"#F(^535!__Y0@EX"3$]8+D-(SU@^2/\!)"@>5/,.535!_U#:L) +MKPB1F^4D%"3]4`*`.I"29.!@*Y`!6^3PD`$\=`3P$DM5[V0!<"&0DH,22X>0 +M`5MT!?"0!I)T`?"0DF+P@`D22U6_`0,22WOE+##A(9`!-'0"\(715H725X73 +M6(7468756H766X777(7971)7(^4L,.,&D`$T=`CPY2PPY`F0`31T$/!#51#E +M+##E)I`!S^`PY1_@5-_PD`$T="#P=:@`=>@`$D]ED``#X%3[\!)/ZH#^Y2PP +MY@:0`31T0/#E+C#@%)"2?70!\)`!-O`21AZ199"2?>3PY2XPX0N0`39T`O!# +M54`1U^4N,.()D`$V=`3P$D::Y2XPXSB0`39T"/#E(60!<"SE)&`HD`%7Y/"0 +M`3QT`O"0DH/D\)"26^"0DH3PY/O]?U1^`1)+EY`!5W0%\.4N,.0KD`$V=!#P +MY2&T`2#E)&`4E5`=P`Q)+>^4N,.4?D`$V +M="#PY2&T`13E)&`0D))DX&0"8`422LR``Q))\^4N,.8;D`$V=$#PY2&T`1#E +M)&`,4R7^Y254!W`#$DM[Y2\PX0F0`3=T`O`225?0!]`&T`70!-`#T`+0`=`` +MT-#0@M"#T/#0X#*0DJ/@,.`NY2&T`2F0DJ+@!/#@M`H+D)*EX`3PY)"2HO"0 +MDJ7@_Y"2I.#3GU`'L9'DD)*E\"*/"HT+Y0M4'Y"2$O!T`2_U@N0TB/6#X)"2 +M$/"0!/W@D)(3M`$%=`/P@`-T`?"0DA/@_^O#GT`$KPJ`/)"2$.`E#?^C\*/@ +MD$'6D_[OTYY`%'0!)0KU@N0TB/6#Y/"M"Z\*`E>`D)(1X/]T`24*]8+D-(CU +M@^_P(JT'=?`)[9"*2!)#7^#_D)(5\'1G+?6"Y#21]8/@5!^0DA3PTY]`!J/@ +MD)(4\)"2%.#_)>`DGO6"Y#1!]8/DD_IT`9/[[R7@)&;U@N0T0?6#=`&3*__D +MDSK#$_[O$__M)>`DPO6"Y#2)]8/N\*/O\*\%D)(4X/T25X"0DA3@_R+D_P)) +MJ)"2)1)#BQ(IV50!_Y"2H^!4_D_PX##@`K&1D)(E$D-K$BG9PQ,PX`J0``$2 +M0B"0DJ3P(I"2(A)#B^\20Y1>$`%>!P)>-`->/05>1@9>DP=>3@E>5PQ>8`U> +M:0Y>>QQ>&2U>(BY>A#!>*SL``%Z,D)(B$D-K`G-CD)(B$D-K`G-ID)(B +M$D-K`G.>D)(B$D-K`G/FD)(B$D-K`G0?D)(B$D-K`G0XD)(B$D-K`G+,D)(B +M$D-K@$:0DB(20VL"=("0DB(20VL"3?^0DB(20VL"?D&0DB(20VL"?6F0DB(2 +M0VL"#_=?`)D(I&$D-?K8*L@Y"2+.SPH^WP[W7P":0D1/ET +MBC7P^GL!HQ)#BY"2)Q)#:Y```Q)"(%0/_Y"2+A)#:^\20DV0DB<20VN0``(2 +M0B#_D)(N$D-KD``![Q)"7Y"2)Q)#:Y```1)"(/^0DBS@_*/@_?6"C(/O\!(I +MV8V"C(.C\)"2*N#^D)(EX/\D@O6"Y#2)]8/N\)"2)N#^=?`)[Y"*2A)#7^[P +M=?`)[Y"*2Q)#7W0!\)"2*^#^=?`)[Y"*3!)#7^[PCP_O)>`DQO6"Y#2/KX+U +M$(\1Y0]U\`*D)`+Y=(DU\'42`?43B11U\`GE#Y"*1A)#7Z^"A8,5CQ;E#W7P +M":0D1/ETBC7P=14/)>`DQO6" +MY#2/]8-T#_"C=/6`)^4/)>`DQO6"Y#2/]8-T#_"C=/"`$N4/)>`DQO6"Y#2/ +M]8/D\*-T#?#E#R7@)`+U@N0TB?6#Y/"C\"&5D`1'X*L2JA.I%!)"39`$1N"K +M$JH3J120``$20E^0!$7@A1&"A1"#\)`$1"&,D`1+X*L2JA.I%!)"39`$2N"K +M$JH3J120``$20E^0!$G@A1&"A1"#\)`$2(!8D`1/X*L2JA.I%!)"39`$3N"K +M$JH3J120``$20E^0!$W@A1&"A1"#\)`$3(`KD`13X*L2JA.I%!)"39`$4N"K +M$JH3J120``$20E^0!%'@A1&"A1"#\)`$4."%$8*%$(.C\*L2JA.I%,`#P`+` +M`1(IV?^K%ZH8J1D2*=E?T`'0`M`#$D)-JQ+E%"0!^>0U$_K``\`"P`$2*=G_ +MJQ>J&*D9D``!$D(@7]`!T`+0`Q)"3841@H40@\"#P(+@_X46@H45@^#^[U[0 +M@M"#\(41@H40@Z/`@\""X/^%%H*%%8.CX/[O7M""T(/PY0\EX"0"]8+D-(GU +M@^#^H^!.8$N0DC%T"_"0DC'@_\.4`%`"0=IT`7X`J`<(@`7#,\XSSMCY_^4/ +M)>`D`O6"Y#2)]8/@7OZCX%].8`J0DC'@)!"C\(!HD)(QX!3P@+OE#R7@),;U +M@N0TC_6#X/ZCX$Y@1Y"2,70/\)"2,>#_PY0`0#QT`7X`J`<(@`7#,\XSSMCY +M_^4/)>`DQO6"Y#2/]8/@7OZCX%].8`B0DC'@H_"`#9"2,>`4\("_Y)"2,O#E +M#R7@),;U@N0TC_6#X/ZCX$Y@1N20DC'PD)(QX/_#E!!``F&3=`%^`*@'"(`% +MPS/.,\[8^?_E#R7@),;U@N0TC_6#X%[^H^!?3F`&D)(QX(!CD)(QX`3P@+_E +M#R7@)`+U@N0TB?6#X/ZCX$Y@1N20DC'PD)(QX/_#E`Q0/'0!?@"H!PB`!<,S +MSC/.V/G_Y0\EX"0"]8+D-(GU@^!>_J/@7TY@")"2,>`D$(`)D)(QX`3P@+_D +MD)(S\)"2,N#_=?`)Y0^0BD@20U_O\)"2,^#^=?`)Y0^0BDD20U_N\.4/PY0@ +M4"QTA"4/]8+D-`3U@^#3GT`"@$=TA"4/]8+D-`3U@^##GE`(D)(SX*/P@#>` +M+72F)0_U@N0TD/6#X/^0DC+@_N_3GD`'D)(T[O"`%Y"2,^#^[\.>4`6C[O"` +M")"2,N"0DC3PD)(TX/VO#Q)7@)"2-.#_="8E#_6"Y#21]8/O\)"2,N#_TY03 +M0`>0BD-T`_`B[].4"T`'D(I#=`+P(N_3E`-`!Y"*0W0!\"+DD(I#\"+3$*\! +MP\#0Y/W\[S#@`GV`[\,3D/T0\*X$KP70T)*O(L#@P/#`@\""P-!UT`#``,`! +MP`+``\`$P`7`!L`'4Y'OD`!1X/^0`%7@7_4]D`!2X/^0`%;@7_4^Y3TPY`:0 +M`%5T$/#E/3#E!I``570@\.4],.8;D`!5=$#PD))"X%0#_[\#"Y"2/^!@!7\! +M$DU7Y3TPYQ60`%5T@/"0DD+@5`/_OP,%?P(235?E/C#@!I``5G0!\.4^,.$& +MD`!6=`+PY3XPX@:0`%9T!/#E/C#C!I``5G0(\-`'T`;0!=`$T`/0`M`!T`#0 +MT-""T(/0\-#@,N_#E"!0.>\PX!?MQ%3P_>_#$_XDI/6"Y#0$]8/@5`^`$._# +M$_XDI/6"Y#0$]8/@5/#P=*0N]8+D-`3U@^!-\"*M!^W#E"!0$W2$+?6"Y#0$ +M]8/@5'^0DBGP@!%TIBWU@N0TD/6#X%1_D)(I\)"2*>#Y5!^C\'7P">V0BD@2 +M0U_@_Y"2+/#M)>`D`O6"Y#2)]8/@^Z/@D)(MR_"CZ_#M)>`DQO6"Y#2/]8/@ +M^Z/@D)(OR_"CZ_"0DBK@_B7@)&;U@N0T0?6#Y)/Z=`&3^^TEX"3"]8+D-(GU +M@^KPH^OP[L.?0`+!^)"2*N#_=&XD\/]T`7X`J`<(@`7#,\XSSMCY_Y"2+>!>_J/@7TYP +M)Y"2*^#_PY004%ET`7X`J`<(@`7#,\XSSMCY_Y"2+^!>_J/@7TY@/)"2*^"T +M$0V0DB[@,.<&D)(K=!?PD)(KX/]D$V`$[[02#9"2+>`PX`:0DBMT&/"0DBO@ +MD)(J\)"2*?"`0I"2*^`$\,%6D)(LX/R0DBK@_VQP<71G+?6"Y#21]8/O\'7P +M">V0BDH20U_@M`$0Z2#F#)"2*N!$0)"2*?"``Z\!(I"2*N#_)>`DGO6"Y#1! +M]8/DD_IT`9/[[R7@)&;U@N0T0?6#=`&3*__DDSK#$_[O$__M)>`DPO6"Y#2) +M]8/N\*/O\(!FD)(JX-.<0%Z0DBS@_W1G+?6"Y#21]8/O\)"2*N_PD)(I\/RC +MX/\EX"2>]8+D-$'U@^23^G0!D_OO)>`D9O6"Y#1!]8-T`9,K_^23.L,3_N\3 +M_^TEX"3"]8+D-(GU@^[PH^_PKP0B=`$M]8+D-(CU@^3PKP60DBG@1(#]$E>` +MD)(IX$2`_R*L!^S#E"!0$W2$+/6"Y#0$]8/@5'^0DBGP@!%TIBSU@N0TD/6# +MX%1_D)(I\)"2*>!4'_^0DBSP=?`)[)"*21)#7^"0DB[P=?`)[)"*2!)#7^#^ +MD)(O\.PEX"3&]8+D-(_U@^#[H^"0DC#+\*/K\.PEX"0"]8+D-(GU@^#[H^"0 +MDC++\*/K\._3GD`,D)(OX)"2+/"0DBGP[7`"(6J0DBWM\)"2*>`PY@Z0DBS@ +MD)(I\)"2+>`4\)"2+>!P`B%JD)(LX/_3E`!0`B%JY)"2*_#O%)"2*O"0DB[@ +M_9"2*N#_TYU`;^^4$$`A[R3P_W0!?@"H!PB`!<,SSC/.V/G_D)(RX%[^H^!? +M3G`GD)(JX/_#E!!0-W0!?@"H!PB`!<,SSC/.V/G_D)(PX%[^H^!?3F`:D)(J +MX)"2*?"0DBO@!/"0DBW@_Y"2*^!O8`B0DBK@%/"`@Y"2+>#_D)(KX,.?4`^0 +MDBK@M04(D)(NX)"2*?"0DBG@_R7@))[U@N0T0?6#Y)/Z=`&3^^\EX"1F]8+D +M-$'U@W0!DRO_Y),ZPQ/^[Q/_["7@),+U@N0TB?6#[O"C[_"O!)"2*>#]$E>` +MD)(IX/\BY)"2&O"0DAK@_\.40$`#`G#5[[0@%)".Q>`$\)")`>#_D([%X+4' +M`N3PD)(:X/]U\`F0BDL20U_@9`%@`P)PS.\EX"2`]8+D-(?U@^#^H^#3E`#N +ME`!0`P)PS)"2&N"4($`)D([%X&`#`G#5D)(:X'7P"J0D`/ETA#7P=1(!]1.) +M%.#_)>`D@/6"Y#2']8/@_:/@D)(?S?"C[?#O)>`DQ/6"Y#2,]8/@_Z/@D)(A +MS_"C[_"0DAK@_\.4(%`3=(0O]8+D-`3U@^!4/Y"2&_"`%)"2&N`DIO6"Y#20 +M]8/@5#^0DAOPD)(;X/Y4'Z/PD)(:X/]U\`F0BD@20U_@D)(D\'3F+_6"Y#20 +M]8/@PY0%0`*A'I"2).#_D)(0`;OD$$2@`>0DAS@D$$N +MDY"2(_"0DB/@=?`&I"10^71`-?!U#__U$(D1D)(;X)!!\I/_TY"2(N"?D)(A +MX)0`0`V0DAK@_^3]$F?\`G!BD)(:X"7@),+U@N0TB?6#X/^CX)"2'<_PH^_P +MJP^J$*D1$BG9_WX`JQ*J$ZD4$D*7_:SP$BGRD)(=[H_P$D*!JP^J$*D1D``! +M$D(@_WX`JQ*J$ZD4D``"$D+"_:SP$BGRD)(=[H_P$D*!JP^J$*D1D``"$D(@ +M_WX`JQ*J$ZD4D``$$D+"_:SP$BGRD)(=[H_P$D*!JP^J$*D1D``#$D(@_WX` +MJQ*J$ZD4D``&$D+"_:SP$BGRD)(=[H_P$D*!JP^J$*D1D``$$D(@_WX`JQ*J +M$ZD4D``($D+"_:SP$BGRD)(=[H_P$D*!JP^J$*D1D``%$D(@_WX`D)(?X/RC +MX/T2*?+3D)(>X)^0DAW@GD`,H^"?\)"2'>">\(`'Y)"2'?"C\)"2'>#\H^#] +MD)(:X/\EX"3"]8+D-(GU@^SPH^WPD)(;X"7@)&;U@N0T0?6#Y)/Z=`&3^]/M +MF^R:0`8299L"<#"0DAO@)>`DGO6"Y#1!]8/DD_YT`9/_PY"2'N"?D)(=X)Y` +M`P)P,)"2&N#_?0$29_P"<#"0DAK@_R3F]8+D-)#U@^#\9`5@`L']D(I#X/ZT +M`PN0DAS@PY090#V`+NZT`@N0DAS@PY010"Z`'Y"*0^#^M`$+D)(20CH3PD)(:X/XDA/6"Y#2,]8/@D)(H +M\'1$+O6"Y#2.]8/@_L.4,%`*Y)"2*/!TYB_!IY".A.!D`6`"P9R0DAK@)(7U +M@N0TCO6#X&0*8%N0DAK@_^XD!?OD,_IT02_U@N0TB/6#X/_3F^ID@/AT@)A0 +M.)"2&N#^[R0%^^0S^G1$+O6"Y#2.]8/@TYOJ9(#X=("84!:0DAK@)";U@N0T +MD?6#X/^0DAS@;V!6D)(:X"1$]8+D-([U@^#_TY1"0`B0DBAT!?"`$>_3E#F0 +MDBA`!70#\(`#=`'PD)(:X/\D1/6"Y#2.]8/@_G1!+_6"Y#2(]8/N\)"2&N`D +MA?6"Y#2.@"^0DAK@_R3F]8+D-)#U@^3P=(4O]8+D-([U@^`$\(`4Y)"2*/"0 +MDAK@).;U@N0TD/6#Y/"0DAS@_I"2&N#_)";U@N0TD?6#[O"0DBC@_G2$+_6" +MY#2,]8/N\'7P">^0BDP20U_@M`$1Y)"2*/!TYB_U@N0TD/6#Y/"0DBC@_0)P +M+>QD!F`#`G`PD)(=\*/PD$(3D_]^`)"2'^#\H^#]$BGRD)(F[O"C[_"0DAK@ +M)(3U@N0TC/6#X)"2*/#DD)(E\)"2)>#_TY0$4$>K$JH3J11U\`+OI/6"A?"# +M$D+"_:SP[Y!"#I/_?@`2*?*0DAWNC_`20H&0DB;@_J/@_].0DA[@GY"2'>"> +M4`B0DB7@!/"`KY"2)>##$_"0DBC@_[0!#9"2)>!P79"2*`3P@%OOM`,=D)(E +MX/]P")"2*'0#\(!([[0!")"2*'0!\(`\@#60DBC@9`5P,I"2)>#_<`B0DBAT +M!?"`#^^0DBBT`05T`_"``W0!\-.0DB+@E`.0DB'@E`!`!>20DBCPTY"2(N"4 +M`Y"2(>"4`$`%Y)"2*/"0DBC@_9"2&N#_)(3U@N0TC/6#[?`295N0DAK@_R3F +M]8+D-)#U@^#3E`50#W3F+_6"Y#20]8/@!/"`#Y"2&N`DYO6"Y#20]8/D\*L2 +MJA.I%.3U\!)"^JL2JA.I%)```N3U\!)#&9``!.3U\!)#&9``!N3U\!)#&9`` +M".3U\!)#&9"2&N#_)>`D@/6"Y#2']8/D\*/P[R7@),3U@N0TC/6#Y/"C\.\E +MX"1$]8+D-(WU@^3PH_"0DAK@!/`":<$BD`1$=!'PHW3P\*-T#_"CY/"0DAKP +MD)(:X/_#E!!0%'2D+_6"Y#0$]8/D\)"2&N`$\(#BY)".Q?"0B0$$\.20DAKP +MD)(:X/_#E$!``D'+=?`*[Y"$`!)#7^3PH_!U\`KOD(0"$D-?Y/"C\'7P"N^0 +MA`020U_D\*/P=?`*[Y"$!A)#7^3PH_!U\`KOD(0($D-?Y/"C\'0F+_6"Y#21 +M]8-T$_!TA2_U@N0TCO6#Y/!TA"_U@N0TC/6#Y/#O)>`D@/6"Y#2']8/D\*/P +M[R7@),3U@N0TC/6#Y/"C\.\EX"3$]8+D-(WU@^3PH_#O)>`D1/6"Y#2-]8/D +M\*/P[R7@),;U@N0TCO6#Y/"C\.\EX"1&]8+D-(_U@^3PH_!TAB_U@N0TD/6# +MY/!T1B_U@N0TD/6#Y/!TYB_U@N0TD/6#Y/"00<23_G0!D_^008QT`9,O_^23 +M/L,3_N\3_Y"2&N#])>`DPO6"Y#2)]8/N\*/O\'7P">V0BDL20U]T`?!U\`GM +MD(I*$D-?=`'P=((M]8+D-(GU@W0,\'7P">V0BD820U]T__"C\'7P">V0BD02 +M0U_D\*-T#_!U\`GMD(I($D-?=!/P=?`)[9"*21)#7^3P[<.4(%`/=(0M]8+D +M-`3U@W03\(`-=*8M]8+D-)#U@W03\)"2&N`$\"$8(A(IV?_#E$!0%)```A)" +M(/YT1"_U@N0TCO6#[O`B[[1`"I```A)"()"*0O`BD``$$D(@_U0__N]4@,03 +M$Q-4`?VO!@)>J!(IV9")`?`BD)*:[O"C[_#DH_"C\)"2FN#^H^#U@HZ#X&`L +MPY"2G>"4Z)"2G."4`T`*D`'&X$00\'\`(I"2G.1U\`$20H%_"GX`$C=4@,9_ +M`2(2*=GU(2+3$*\!P\#0D)(E$BJ+`````)```1)"()"29/"0``,20B"0DE3P +M$D?3PH^_P@`^0DE]T!?"0DEWD\*-T`_"0 +MDEW@H^"0!5CP(A(IV9"27/!@!^3]?P0210V0DES@D`'G\"*0`@G@_1(IV?ZO +M!>TND))V\)```1)"(/_M+Y"2=_"0``(20B#_[2^0DGCPD``#$D(@_^TOD))Y +M\)``!!)"(/^N!>TOD))Z\"+3$*\!P\#0D)(E$D.+D)(E$D-KD``!$D+"^N7P +M)`#_Y#K^D)(E$D-KD``![H_P$D,9$BG9_V`LM5X6D)(E$D-KD``!$D+"96!P +M!.5?9?!@(Y"2)1)#:Y```1)"PO^N\)'X@!"0DB420VL2*=EE7F`#$E?3T-"2 +MKR*0DBCN\*/O\'5>`8Y?]6#D_7\+L3SD_7\"L3P23[OD_Q)/K^3U8I`!R>5B +M\)"2*.#\H^#][/N-1.3U17T!?V!^`0(UJ],0KP'#P-"0DBOM\)"2*N_PTY0' +M4$^CX'`:D)(JX/]T`:@'"(`"PS/8_/3_D`!'X%_P@!>0DBK@_W0!J`<(@`+# +M,]C\_Y``1^!/\!)/ZI"2*N#_=`&H!PB``L,SV/ST_Y``1H!:D)(JX"3X\*/@ +M`$\(#KD)(:X,.49%`0D``PX*L1JA*I$Q)" +M37\!(G\`(N20DJ;PH_"0!?C@<`^CX'`+H^!P!Z/@<`-_`2+3D)*GX)3HD)*F +MX)0#0`-_`")_,GX`$C=4D)*FY'7P`1)"@8#&D)'_$D-3D("%$BI_?WA^"!(O +MV9"2`Q)#4Y"`A1(J?W\$?@P2+]F0D@<20U.0@(42*G]_`'X($B_9D)(+$D-3 +MD("%$BI_?W!^#A(OV9"`61(JBP`#+97D_?\2-(&0DG[@M`$1D(!9$BJ+``,M +ME>3]?P$2-($B?WA^"!(GWI"1_Q(J?W\$?@P2)]Z0D@,2*G]_`'X($B?>D)(' +M$BI_D))^X)"1_[0!#1)#4^]4Q__M5,?]@`<20U/O5,?_[)"`A1(J?W]X?@@2 +M+]F0D@,20U/O5`__[)"`A1(J?W\$?@P2+]F0D@<20U/O1`+_[)"`A1(J?W\` +M?@@2+]E_<'X.$B?>D)(+$BI_D("%$BJ+`!LEH']P?@X2+]F0@%D2*HL````` +MY/W_$C2!D))^X+0!$9"`61(JBP````#D_7\!$C2!(N]P`P)YG9"2#^!@`P)] +M:)"1^Q)#4Y"`A1(J?W^,?@@2+]F0D:<20U.0@(42*G]_1'X($B_9D)&K$D-3 +MD("%$BI_?UQ^"!(OV9"1KQ)#4Y"`A1(J?W]L?@X2+]F0D;,20U.0@(42*G]_ +M<'X.$B_9D)&W$D-3D("%$BI_?W1^#A(OV9"1NQ)#4Y"`A1(J?W]X?@X2+]F0 +MD;\20U.0@(42*G]_?'X.$B_9D)'#$D-3D("%$BI_?X!^#A(OV9"1QQ)#4Y"` +MA1(J?W^$?@X2+]F0D,20U.0@(42 +M*G]_X'X.$B_9D)'G$D-3D("%$BI_?^Q^#A(OV9"1ZQ)#4Y"`A1(J?W\$?@P2 +M+]F0D>\20U.0@(42*G]_!'X-$B_9D)'S$D-3D("%$BI_?PQ^"1(OV9"1]Q)# +M4Y"`A1(J?W\$?@@2+]F0D@]T`?`BD)(/X&0!8`*A:'^,?@@2)]Z0D?L2*G]_ +M1'X($B?>D)&G$BI_?UQ^"!(GWI"1JQ(J?W]L?@X2)]Z0D:\2*G]_<'X.$B?> +MD)&S$BI_?W1^#A(GWI"1MQ(J?W]X?@X2)]Z0D;L2*G]_?'X.$B?>D)&_$BI_ +M?X!^#A(GWI"1PQ(J?W^$?@X2)]Z0D<<2*G]_B'X.$B?>D)'+$BI_?XQ^#A(G +MWI"1SQ(J?W_0?@X2)]Z0D=,2*G]_U'X.$B?>D)'7$BI_?]A^#A(GWI"1VQ(J +M?W_D)'C$BI_?^Q^#A(GWI"1YQ(J?W\$?@P2 +M)]Z0D>L2*G]_!'X-$B?>D)'O$BI_?PQ^"1(GWI"1\Q(J?W\$?@@2)]Z0D?<2 +M*G]_C'X($B?>D)*>$BI_D)*>$D-3[43`_>R0DIX2*G^0DIX20U.0@(42*G]_ +MC'X($B_9D("%$BJ+``$``']$?@@2+]F0@(42*HL`VR6D?UQ^"!(OV9"`A1(J +MBR#;):1_;'X.$B_9D("%$BJ+(-LEI']P?@X2+]F0@(42*HL$&R6D?W1^#A(O +MV9"`A1(JBP0;):1_>'X.$B_9D("%$BJ+!!LEI']\?@X2+]F0@(42*HL$&R6D +M?X!^#A(OV9"`A1(JBV/;):1_A'X.$B_9D("%$BJ+!!LEI'^(?@X2+]F0@(42 +M*HL@VR6D?XQ^#A(OV9"`A1(JBR#;):1_T'X.$B_9D("%$BJ+(-LEI'_4?@X2 +M+]F0@(42*HL@VR6D?]A^#A(OV9"`A1(JBP`;):1_W'X.$B_9D("%$BJ+`!LE +MI'_@?@X2+]F0@(42*HLDVR6D?^Q^#A(OV7\$?@P2)]Z0DIX2*G^0DIX20U/D +M_^R0DIX2*G^0DIX20U/O1!'_[)"2GA(J?Y"2GA)#4Y"`A1(J?W\$?@P2+]E_ +M!'X-$B?>D)*>$BI_D)*>$D-3[U3P_^R0DIX2*G^0DIX20U/O1`'_[)"2GA(J +M?Y"2GA)#4Y"`A1(J?W\$?@T2+]E_#'X)$B?>D)*>$BI_D)*>$D-3Y/_LD)*> +M$BI_D)*>$D-3[T01_^R0DIX2*G^0DIX20U.0@(42*G]_#'X)$B_9?PQ^"1(G +MWI"2GA(J?Y"2GA)#4^U4#_WL5/#\D)*>$BI_D)*>$D-3[400_>Q$`?R0DIX2 +M*G^0DIX20U.0@(42*G]_#'X)$B_9?P1^"!(GWI"2GA(J?Y"2GA)#4^]4\/_L +MD)*>$BI_D)*>$D-3[T0!_^R0DIX2*G^0DIX20U.0@(42*G]_!'X($B_9Y)"2 +M#_`BBP^*$(D1D``"$D(@D))"\.`PX$N0DCET`?!_@'X($B?>D)([$BI_JP^J +M$*D1D``!$D(@_^3\_?YX&A(J;*@$J06J!JL'D)([$D-3[%0#_!)#1I"211(J +M?Y`%(N3P@"WDD)(Y\'^`?@@2)][L5`/\[$3`_)"2.Q(J?Y"2.Q)#4Y"`A1(J +M?W^`?@@2+]F0DD+@,.$;?0Q_1Q)-0I``2.!$#/U_2!)-0I``1N!$$(`>D`!' +MX%3S_7]'$DU"D`!(X%3S_7]($DU"D`!&X%3O_7]&$DU"Y)"2/_`BD``"$D(@ +MD))#\.!@!.#T<"&BK^0S]0_"KY``1^!4^_U_1Q)-0GU`?P$2-J_E#R3_DJ\B +MY/U_11)-0I`$_>3PH_"0DD/PD)))\)"23/"0DDKPD))-\)"22_"0DD[PD)(U +M!/#DH_"C\*/PD)(Z\)"2/_"0DD'PD))3\)"21/"0DD#PD)(Y\)``4>!$P/U_ +M40)-0I"24^!D`6`(D))!X&`"X:F0DC7@PY3_4`7@!/"`.Y"2-N##E/]0!N`$ +M\.2`*)"2-^##E/]0"N`$\.20DC;P@!60DCC@PY3_4!#@!/#DD)(W\)"2-O"0 +MDC7PD`!$X%0,8';@,.(RD)))X,.4_U`%X`3P@"20DDK@PY3_4`;@!/#D@!&0 +MDDO@PY3_4`S@!/#DD))*\)"22?"0`$3@,.,RD)),X,.4_U`%X`3P@"20DDW@ +JPY3_4`;@!/#D@!&0DD[@PY3_4`S@!/#DD))-\)"23/"0!/W@1`'P(GP. +` +end From owner-svn-src-all@freebsd.org Thu Dec 31 22:32:37 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8DF05A57906; Thu, 31 Dec 2015 22:32:37 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5276418C5; Thu, 31 Dec 2015 22:32:37 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVMWaAm075800; Thu, 31 Dec 2015 22:32:36 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVMWaDZ075798; Thu, 31 Dec 2015 22:32:36 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201512312232.tBVMWaDZ075798@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Thu, 31 Dec 2015 22:32:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293010 - head/sys/dev/rtwn X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 22:32:37 -0000 Author: adrian Date: Thu Dec 31 22:32:36 2015 New Revision: 293010 URL: https://svnweb.freebsd.org/changeset/base/293010 Log: [rtwn] bring over initial rtwn driver. This is a port from openbsd. It's incomplete and unstable, but it's better than nothing. I have no plans to MFC this until it's complete and stable. Submitted by: kevlo Added: head/sys/dev/rtwn/ head/sys/dev/rtwn/if_rtwn.c (contents, props changed) head/sys/dev/rtwn/if_rtwnreg.h (contents, props changed) Added: head/sys/dev/rtwn/if_rtwn.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/rtwn/if_rtwn.c Thu Dec 31 22:32:36 2015 (r293010) @@ -0,0 +1,3490 @@ +/* $OpenBSD: if_rtwn.c,v 1.6 2015/08/28 00:03:53 deraadt Exp $ */ + +/*- + * Copyright (c) 2010 Damien Bergamini + * Copyright (c) 2015 Stefan Sperling + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +__FBSDID("$FreeBSD$"); + +/* + * Driver for Realtek RTL8188CE + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#define RTWN_DEBUG +#ifdef RTWN_DEBUG +#define DPRINTF(x) do { if (sc->sc_debug > 0) printf x; } while (0) +#define DPRINTFN(n, x) do { if (sc->sc_debug >= (n)) printf x; } while (0) +#else +#define DPRINTF(x) +#define DPRINTFN(n, x) +#endif + +/* + * PCI configuration space registers. + */ +#define RTWN_PCI_IOBA 0x10 /* i/o mapped base */ +#define RTWN_PCI_MMBA 0x18 /* memory mapped base */ + +#define RTWN_INT_ENABLE (R92C_IMR_ROK | R92C_IMR_VODOK | R92C_IMR_VIDOK | \ + R92C_IMR_BEDOK | R92C_IMR_BKDOK | R92C_IMR_MGNTDOK | \ + R92C_IMR_HIGHDOK | R92C_IMR_BDOK | R92C_IMR_RDU | \ + R92C_IMR_RXFOVW) + +struct rtwn_ident { + uint16_t vendor; + uint16_t device; + const char *name; +}; + + +static const struct rtwn_ident rtwn_ident_table[] = { + { 0x10ec, 0x8176, "Realtek RTL8188CE" }, + { 0, 0, NULL } +}; + + +static void rtwn_dma_map_addr(void *, bus_dma_segment_t *, int, int); +static void rtwn_setup_rx_desc(struct rtwn_softc *, struct r92c_rx_desc *, + bus_addr_t, size_t, int); +static int rtwn_alloc_rx_list(struct rtwn_softc *); +static void rtwn_reset_rx_list(struct rtwn_softc *); +static void rtwn_free_rx_list(struct rtwn_softc *); +static int rtwn_alloc_tx_list(struct rtwn_softc *, int); +static void rtwn_reset_tx_list(struct rtwn_softc *, int); +static void rtwn_free_tx_list(struct rtwn_softc *, int); +static struct ieee80211vap *rtwn_vap_create(struct ieee80211com *, + const char [IFNAMSIZ], int, enum ieee80211_opmode, int, + const uint8_t [IEEE80211_ADDR_LEN], + const uint8_t [IEEE80211_ADDR_LEN]); +static void rtwn_vap_delete(struct ieee80211vap *); +static void rtwn_write_1(struct rtwn_softc *, uint16_t, uint8_t); +static void rtwn_write_2(struct rtwn_softc *, uint16_t, uint16_t); +static void rtwn_write_4(struct rtwn_softc *, uint16_t, uint32_t); +static uint8_t rtwn_read_1(struct rtwn_softc *, uint16_t); +static uint16_t rtwn_read_2(struct rtwn_softc *, uint16_t); +static uint32_t rtwn_read_4(struct rtwn_softc *, uint16_t); +static int rtwn_fw_cmd(struct rtwn_softc *, uint8_t, const void *, int); +static void rtwn_rf_write(struct rtwn_softc *, int, uint8_t, uint32_t); +static uint32_t rtwn_rf_read(struct rtwn_softc *, int, uint8_t); +static int rtwn_llt_write(struct rtwn_softc *, uint32_t, uint32_t); +static uint8_t rtwn_efuse_read_1(struct rtwn_softc *, uint16_t); +static void rtwn_efuse_read(struct rtwn_softc *); +static int rtwn_read_chipid(struct rtwn_softc *); +static void rtwn_read_rom(struct rtwn_softc *); +static int rtwn_ra_init(struct rtwn_softc *); +static void rtwn_tsf_sync_enable(struct rtwn_softc *); +static void rtwn_set_led(struct rtwn_softc *, int, int); +static void rtwn_calib_to(void *); +static int rtwn_newstate(struct ieee80211vap *, enum ieee80211_state, int); +static int rtwn_updateedca(struct ieee80211com *); +static void rtwn_update_avgrssi(struct rtwn_softc *, int, int8_t); +static int8_t rtwn_get_rssi(struct rtwn_softc *, int, void *); +static void rtwn_rx_frame(struct rtwn_softc *, struct r92c_rx_desc *, + struct rtwn_rx_data *, int); +static int rtwn_tx(struct rtwn_softc *, struct mbuf *, + struct ieee80211_node *); +static void rtwn_tx_done(struct rtwn_softc *, int); +static int rtwn_raw_xmit(struct ieee80211_node *, struct mbuf *, + const struct ieee80211_bpf_params *); +static int rtwn_transmit(struct ieee80211com *, struct mbuf *); +static void rtwn_parent(struct ieee80211com *); +static void rtwn_start(struct rtwn_softc *sc); +static void rtwn_watchdog(void *); +static int rtwn_power_on(struct rtwn_softc *); +static int rtwn_llt_init(struct rtwn_softc *); +static void rtwn_fw_reset(struct rtwn_softc *); +static void rtwn_fw_loadpage(struct rtwn_softc *, int, const uint8_t *, + int); +static int rtwn_load_firmware(struct rtwn_softc *); +static int rtwn_dma_init(struct rtwn_softc *); +static void rtwn_mac_init(struct rtwn_softc *); +static void rtwn_bb_init(struct rtwn_softc *); +static void rtwn_rf_init(struct rtwn_softc *); +static void rtwn_cam_init(struct rtwn_softc *); +static void rtwn_pa_bias_init(struct rtwn_softc *); +static void rtwn_rxfilter_init(struct rtwn_softc *); +static void rtwn_edca_init(struct rtwn_softc *); +static void rtwn_write_txpower(struct rtwn_softc *, int, uint16_t[]); +static void rtwn_get_txpower(struct rtwn_softc *, int, + struct ieee80211_channel *, struct ieee80211_channel *, + uint16_t[]); +static void rtwn_set_txpower(struct rtwn_softc *, + struct ieee80211_channel *, struct ieee80211_channel *); +static void rtwn_scan_start(struct ieee80211com *); +static void rtwn_scan_end(struct ieee80211com *); +static void rtwn_set_channel(struct ieee80211com *); +static void rtwn_update_mcast(struct ieee80211com *); +static void rtwn_set_chan(struct rtwn_softc *, + struct ieee80211_channel *, struct ieee80211_channel *); +static int rtwn_iq_calib_chain(struct rtwn_softc *, int, uint16_t[2], + uint16_t[2]); +static void rtwn_iq_calib_run(struct rtwn_softc *, int, uint16_t[2][2], + uint16_t[2][2]); +static int rtwn_iq_calib_compare_results(uint16_t[2][2], uint16_t[2][2], + uint16_t[2][2], uint16_t[2][2], int); +static void rtwn_iq_calib_write_results(struct rtwn_softc *, uint16_t[2], + uint16_t[2], int); +static void rtwn_iq_calib(struct rtwn_softc *); +static void rtwn_lc_calib(struct rtwn_softc *); +static void rtwn_temp_calib(struct rtwn_softc *); +static void rtwn_init_locked(struct rtwn_softc *); +static void rtwn_init(struct rtwn_softc *); +static void rtwn_stop_locked(struct rtwn_softc *); +static void rtwn_stop(struct rtwn_softc *); +static void rtwn_intr(void *); +static void rtwn_hw_reset(void *, int); + +/* Aliases. */ +#define rtwn_bb_write rtwn_write_4 +#define rtwn_bb_read rtwn_read_4 + +static int rtwn_probe(device_t); +static int rtwn_attach(device_t); +static int rtwn_detach(device_t); +static int rtwn_shutdown(device_t); +static int rtwn_suspend(device_t); +static int rtwn_resume(device_t); + +static device_method_t rtwn_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, rtwn_probe), + DEVMETHOD(device_attach, rtwn_attach), + DEVMETHOD(device_detach, rtwn_detach), + DEVMETHOD(device_shutdown, rtwn_shutdown), + DEVMETHOD(device_suspend, rtwn_suspend), + DEVMETHOD(device_resume, rtwn_resume), + + DEVMETHOD_END +}; + +static driver_t rtwn_driver = { + "rtwn", + rtwn_methods, + sizeof (struct rtwn_softc) +}; +static devclass_t rtwn_devclass; + +DRIVER_MODULE(rtwn, pci, rtwn_driver, rtwn_devclass, NULL, NULL); + +MODULE_VERSION(rtwn, 1); + +MODULE_DEPEND(rtwn, pci, 1, 1, 1); +MODULE_DEPEND(rtwn, wlan, 1, 1, 1); +MODULE_DEPEND(rtwn, firmware, 1, 1, 1); + +static int +rtwn_probe(device_t dev) +{ + const struct rtwn_ident *ident; + + for (ident = rtwn_ident_table; ident->name != NULL; ident++) { + if (pci_get_vendor(dev) == ident->vendor && + pci_get_device(dev) == ident->device) { + device_set_desc(dev, ident->name); + return (BUS_PROBE_DEFAULT); + } + } + return (ENXIO); +} + +static int +rtwn_attach(device_t dev) +{ + struct rtwn_softc *sc = device_get_softc(dev); + struct ieee80211com *ic = &sc->sc_ic; + uint32_t lcsr; + uint8_t bands; + int i, count, error, rid; + + sc->sc_dev = dev; + sc->sc_debug = 0; + + /* + * Get the offset of the PCI Express Capability Structure in PCI + * Configuration Space. + */ + error = pci_find_cap(dev, PCIY_EXPRESS, &sc->sc_cap_off); + if (error != 0) { + device_printf(dev, "PCIe capability structure not found!\n"); + return (error); + } + + /* Enable bus-mastering. */ + pci_enable_busmaster(dev); + + rid = PCIR_BAR(2); + sc->mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, + RF_ACTIVE); + if (sc->mem == NULL) { + device_printf(dev, "can't map mem space\n"); + return (ENOMEM); + } + sc->sc_st = rman_get_bustag(sc->mem); + sc->sc_sh = rman_get_bushandle(sc->mem); + + /* Install interrupt handler. */ + count = 1; + rid = 0; + if (pci_alloc_msi(dev, &count) == 0) + rid = 1; + sc->irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE | + (rid != 0 ? 0 : RF_SHAREABLE)); + if (sc->irq == NULL) { + device_printf(dev, "can't map interrupt\n"); + return (ENXIO); + } + + RTWN_LOCK_INIT(sc); + callout_init_mtx(&sc->calib_to, &sc->sc_mtx, 0); + callout_init_mtx(&sc->watchdog_to, &sc->sc_mtx, 0); + TASK_INIT(&sc->sc_reinit_task, 0, rtwn_hw_reset, sc); + mbufq_init(&sc->sc_snd, ifqmaxlen); + + error = rtwn_read_chipid(sc); + if (error != 0) { + device_printf(dev, "unsupported test chip\n"); + goto fail; + } + + /* Disable PCIe Active State Power Management (ASPM). */ + lcsr = pci_read_config(sc->sc_dev, sc->sc_cap_off + PCIER_LINK_CTL, 4); + lcsr &= ~PCIEM_LINK_CTL_ASPMC; + pci_write_config(sc->sc_dev, sc->sc_cap_off + PCIER_LINK_CTL, lcsr, 4); + + /* Allocate Tx/Rx buffers. */ + error = rtwn_alloc_rx_list(sc); + if (error != 0) { + device_printf(dev, "could not allocate Rx buffers\n"); + goto fail; + } + for (i = 0; i < RTWN_NTXQUEUES; i++) { + error = rtwn_alloc_tx_list(sc, i); + if (error != 0) { + device_printf(dev, "could not allocate Tx buffers\n"); + goto fail; + } + } + + /* Determine number of Tx/Rx chains. */ + if (sc->chip & RTWN_CHIP_92C) { + sc->ntxchains = (sc->chip & RTWN_CHIP_92C_1T2R) ? 1 : 2; + sc->nrxchains = 2; + } else { + sc->ntxchains = 1; + sc->nrxchains = 1; + } + rtwn_read_rom(sc); + + device_printf(sc->sc_dev, "MAC/BB RTL%s, RF 6052 %dT%dR\n", + (sc->chip & RTWN_CHIP_92C) ? "8192CE" : "8188CE", + sc->ntxchains, sc->nrxchains); + + ic->ic_softc = sc; + ic->ic_name = device_get_nameunit(dev); + ic->ic_opmode = IEEE80211_M_STA; + ic->ic_phytype = IEEE80211_T_OFDM; /* not only, but not used */ + + /* set device capabilities */ + ic->ic_caps = + IEEE80211_C_STA /* station mode */ + | IEEE80211_C_MONITOR /* monitor mode */ + | IEEE80211_C_SHPREAMBLE /* short preamble supported */ + | IEEE80211_C_SHSLOT /* short slot time supported */ + | IEEE80211_C_WPA /* capable of WPA1+WPA2 */ + | IEEE80211_C_BGSCAN /* capable of bg scanning */ + | IEEE80211_C_WME /* 802.11e */ + ; + + bands = 0; + setbit(&bands, IEEE80211_MODE_11B); + setbit(&bands, IEEE80211_MODE_11G); + ieee80211_init_channels(ic, NULL, &bands); + + ieee80211_ifattach(ic); + + ic->ic_wme.wme_update = rtwn_updateedca; + ic->ic_update_mcast = rtwn_update_mcast; + ic->ic_scan_start =rtwn_scan_start; + ic->ic_scan_end = rtwn_scan_end; + ic->ic_set_channel = rtwn_set_channel; + ic->ic_raw_xmit = rtwn_raw_xmit; + ic->ic_transmit = rtwn_transmit; + ic->ic_parent = rtwn_parent; + ic->ic_vap_create = rtwn_vap_create; + ic->ic_vap_delete = rtwn_vap_delete; + + ieee80211_radiotap_attach(ic, + &sc->sc_txtap.wt_ihdr, sizeof(sc->sc_txtap), + RTWN_TX_RADIOTAP_PRESENT, + &sc->sc_rxtap.wr_ihdr, sizeof(sc->sc_rxtap), + RTWN_RX_RADIOTAP_PRESENT); + + /* + * Hook our interrupt after all initialization is complete. + */ + error = bus_setup_intr(dev, sc->irq, INTR_TYPE_NET | INTR_MPSAFE, + NULL, rtwn_intr, sc, &sc->sc_ih); + if (error != 0) { + device_printf(dev, "can't establish interrupt, error %d\n", + error); + goto fail; + } + + if (bootverbose) + ieee80211_announce(ic); + + return (0); + +fail: + rtwn_detach(dev); + return (error); +} + + +static int +rtwn_detach(device_t dev) +{ + struct rtwn_softc *sc = device_get_softc(dev); + int i; + + if (sc->sc_ic.ic_softc != NULL) { + ieee80211_draintask(&sc->sc_ic, &sc->sc_reinit_task); + rtwn_stop(sc); + + callout_drain(&sc->calib_to); + callout_drain(&sc->watchdog_to); + ieee80211_ifdetach(&sc->sc_ic); + mbufq_drain(&sc->sc_snd); + } + + /* Uninstall interrupt handler. */ + if (sc->irq != NULL) { + bus_teardown_intr(dev, sc->irq, sc->sc_ih); + bus_release_resource(dev, SYS_RES_IRQ, rman_get_rid(sc->irq), + sc->irq); + pci_release_msi(dev); + } + + /* Free Tx/Rx buffers. */ + for (i = 0; i < RTWN_NTXQUEUES; i++) + rtwn_free_tx_list(sc, i); + rtwn_free_rx_list(sc); + + if (sc->mem != NULL) + bus_release_resource(dev, SYS_RES_MEMORY, + rman_get_rid(sc->mem), sc->mem); + + RTWN_LOCK_DESTROY(sc); + return (0); +} + +static int +rtwn_shutdown(device_t dev) +{ + + return (0); +} + +static int +rtwn_suspend(device_t dev) +{ + return (0); +} + +static int +rtwn_resume(device_t dev) +{ + + return (0); +} + +static void +rtwn_dma_map_addr(void *arg, bus_dma_segment_t *segs, int nsegs, int error) +{ + + if (error != 0) + return; + KASSERT(nsegs == 1, ("too many DMA segments, %d should be 1", nsegs)); + *(bus_addr_t *)arg = segs[0].ds_addr; +} + +static void +rtwn_setup_rx_desc(struct rtwn_softc *sc, struct r92c_rx_desc *desc, + bus_addr_t addr, size_t len, int idx) +{ + + memset(desc, 0, sizeof(*desc)); + desc->rxdw0 = htole32(SM(R92C_RXDW0_PKTLEN, len) | + ((idx == RTWN_RX_LIST_COUNT - 1) ? R92C_RXDW0_EOR : 0)); + desc->rxbufaddr = htole32(addr); + bus_space_barrier(sc->sc_st, sc->sc_sh, 0, sc->sc_mapsize, + BUS_SPACE_BARRIER_WRITE); + desc->rxdw0 |= htole32(R92C_RXDW0_OWN); +} + +static int +rtwn_alloc_rx_list(struct rtwn_softc *sc) +{ + struct rtwn_rx_ring *rx_ring = &sc->rx_ring; + struct rtwn_rx_data *rx_data; + bus_size_t size; + int i, error; + + /* Allocate Rx descriptors. */ + size = sizeof(struct r92c_rx_desc) * RTWN_RX_LIST_COUNT; + error = bus_dma_tag_create(bus_get_dma_tag(sc->sc_dev), 1, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + size, 1, size, 0, NULL, NULL, &rx_ring->desc_dmat); + if (error != 0) { + device_printf(sc->sc_dev, "could not create rx desc DMA tag\n"); + goto fail; + } + + error = bus_dmamem_alloc(rx_ring->desc_dmat, (void **)&rx_ring->desc, + BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_COHERENT, + &rx_ring->desc_map); + if (error != 0) { + device_printf(sc->sc_dev, "could not allocate rx desc\n"); + goto fail; + } + error = bus_dmamap_load(rx_ring->desc_dmat, rx_ring->desc_map, + rx_ring->desc, size, rtwn_dma_map_addr, &rx_ring->paddr, 0); + if (error != 0) { + device_printf(sc->sc_dev, "could not load rx desc DMA map\n"); + goto fail; + } + bus_dmamap_sync(rx_ring->desc_dmat, rx_ring->desc_map, + BUS_DMASYNC_PREWRITE); + + /* Create RX buffer DMA tag. */ + error = bus_dma_tag_create(bus_get_dma_tag(sc->sc_dev), 1, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, + 1, MCLBYTES, 0, NULL, NULL, &rx_ring->data_dmat); + if (error != 0) { + device_printf(sc->sc_dev, "could not create rx buf DMA tag\n"); + goto fail; + } + + /* Allocate Rx buffers. */ + for (i = 0; i < RTWN_RX_LIST_COUNT; i++) { + rx_data = &rx_ring->rx_data[i]; + error = bus_dmamap_create(rx_ring->data_dmat, 0, &rx_data->map); + if (error != 0) { + device_printf(sc->sc_dev, + "could not create rx buf DMA map\n"); + goto fail; + } + + rx_data->m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); + if (rx_data->m == NULL) { + device_printf(sc->sc_dev, + "could not allocate rx mbuf\n"); + error = ENOMEM; + goto fail; + } + + error = bus_dmamap_load(rx_ring->data_dmat, rx_data->map, + mtod(rx_data->m, void *), MCLBYTES, rtwn_dma_map_addr, + &rx_data->paddr, BUS_DMA_NOWAIT); + if (error != 0) { + device_printf(sc->sc_dev, + "could not load rx buf DMA map"); + goto fail; + } + + rtwn_setup_rx_desc(sc, &rx_ring->desc[i], rx_data->paddr, + MCLBYTES, i); + } + return (0); + +fail: + rtwn_free_rx_list(sc); + return (error); +} + +static void +rtwn_reset_rx_list(struct rtwn_softc *sc) +{ + struct rtwn_rx_ring *rx_ring = &sc->rx_ring; + struct rtwn_rx_data *rx_data; + int i; + + for (i = 0; i < RTWN_RX_LIST_COUNT; i++) { + rx_data = &rx_ring->rx_data[i]; + rtwn_setup_rx_desc(sc, &rx_ring->desc[i], rx_data->paddr, + MCLBYTES, i); + } +} + +static void +rtwn_free_rx_list(struct rtwn_softc *sc) +{ + struct rtwn_rx_ring *rx_ring = &sc->rx_ring; + struct rtwn_rx_data *rx_data; + int i; + + if (rx_ring->desc_dmat != NULL) { + if (rx_ring->desc != NULL) { + bus_dmamap_unload(rx_ring->desc_dmat, + rx_ring->desc_map); + bus_dmamem_free(rx_ring->desc_dmat, rx_ring->desc, + rx_ring->desc_map); + rx_ring->desc = NULL; + } + bus_dma_tag_destroy(rx_ring->desc_dmat); + rx_ring->desc_dmat = NULL; + } + + for (i = 0; i < RTWN_RX_LIST_COUNT; i++) { + rx_data = &rx_ring->rx_data[i]; + + if (rx_data->m != NULL) { + bus_dmamap_unload(rx_ring->data_dmat, rx_data->map); + m_freem(rx_data->m); + rx_data->m = NULL; + } + bus_dmamap_destroy(rx_ring->data_dmat, rx_data->map); + rx_data->map = NULL; + } + if (rx_ring->data_dmat != NULL) { + bus_dma_tag_destroy(rx_ring->data_dmat); + rx_ring->data_dmat = NULL; + } +} + +static int +rtwn_alloc_tx_list(struct rtwn_softc *sc, int qid) +{ + struct rtwn_tx_ring *tx_ring = &sc->tx_ring[qid]; + struct rtwn_tx_data *tx_data; + bus_size_t size; + int i, error; + + size = sizeof(struct r92c_tx_desc) * RTWN_TX_LIST_COUNT; + error = bus_dma_tag_create(bus_get_dma_tag(sc->sc_dev), PAGE_SIZE, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + size, 1, size, 0, NULL, NULL, &tx_ring->desc_dmat); + if (error != 0) { + device_printf(sc->sc_dev, "could not create tx ring DMA tag\n"); + goto fail; + } + + error = bus_dmamem_alloc(tx_ring->desc_dmat, (void **)&tx_ring->desc, + BUS_DMA_NOWAIT | BUS_DMA_ZERO, &tx_ring->desc_map); + if (error != 0) { + device_printf(sc->sc_dev, "can't map tx ring DMA memory\n"); + goto fail; + } + error = bus_dmamap_load(tx_ring->desc_dmat, tx_ring->desc_map, + tx_ring->desc, size, rtwn_dma_map_addr, &tx_ring->paddr, + BUS_DMA_NOWAIT); + if (error != 0) { + device_printf(sc->sc_dev, "could not load desc DMA map\n"); + goto fail; + } + + error = bus_dma_tag_create(bus_get_dma_tag(sc->sc_dev), 1, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, + 1, MCLBYTES, 0, NULL, NULL, &tx_ring->data_dmat); + if (error != 0) { + device_printf(sc->sc_dev, "could not create tx buf DMA tag\n"); + goto fail; + } + + for (i = 0; i < RTWN_TX_LIST_COUNT; i++) { + struct r92c_tx_desc *desc = &tx_ring->desc[i]; + + /* setup tx desc */ + desc->nextdescaddr = htole32(tx_ring->paddr + + + sizeof(struct r92c_tx_desc) + * ((i + 1) % RTWN_TX_LIST_COUNT)); + tx_data = &tx_ring->tx_data[i]; + error = bus_dmamap_create(tx_ring->data_dmat, 0, &tx_data->map); + if (error != 0) { + device_printf(sc->sc_dev, + "could not create tx buf DMA map\n"); + goto fail; + } + tx_data->m = NULL; + tx_data->ni = NULL; + } + return (0); + +fail: + rtwn_free_tx_list(sc, qid); + return (error); +} + +static void +rtwn_reset_tx_list(struct rtwn_softc *sc, int qid) +{ + struct rtwn_tx_ring *tx_ring = &sc->tx_ring[qid]; + int i; + + for (i = 0; i < RTWN_TX_LIST_COUNT; i++) { + struct r92c_tx_desc *desc = &tx_ring->desc[i]; + struct rtwn_tx_data *tx_data = &tx_ring->tx_data[i]; + + memset(desc, 0, sizeof(*desc) - + (sizeof(desc->reserved) + sizeof(desc->nextdescaddr64) + + sizeof(desc->nextdescaddr))); + + if (tx_data->m != NULL) { + bus_dmamap_unload(tx_ring->data_dmat, tx_data->map); + m_freem(tx_data->m); + tx_data->m = NULL; + } + if (tx_data->ni != NULL) { + ieee80211_free_node(tx_data->ni); + tx_data->ni = NULL; + } + } + + bus_dmamap_sync(tx_ring->desc_dmat, tx_ring->desc_map, + BUS_DMASYNC_POSTWRITE); + + sc->qfullmsk &= ~(1 << qid); + tx_ring->queued = 0; + tx_ring->cur = 0; +} + +static void +rtwn_free_tx_list(struct rtwn_softc *sc, int qid) +{ + struct rtwn_tx_ring *tx_ring = &sc->tx_ring[qid]; + struct rtwn_tx_data *tx_data; + int i; + + if (tx_ring->desc_dmat != NULL) { + if (tx_ring->desc != NULL) { + bus_dmamap_unload(tx_ring->desc_dmat, + tx_ring->desc_map); + bus_dmamem_free(tx_ring->desc_dmat, tx_ring->desc, + tx_ring->desc_map); + } + bus_dma_tag_destroy(tx_ring->desc_dmat); + } + + for (i = 0; i < RTWN_TX_LIST_COUNT; i++) { + tx_data = &tx_ring->tx_data[i]; + + if (tx_data->m != NULL) { + bus_dmamap_unload(tx_ring->data_dmat, tx_data->map); + m_freem(tx_data->m); + tx_data->m = NULL; + } + } + if (tx_ring->data_dmat != NULL) { + bus_dma_tag_destroy(tx_ring->data_dmat); + tx_ring->data_dmat = NULL; + } + + sc->qfullmsk &= ~(1 << qid); + tx_ring->queued = 0; + tx_ring->cur = 0; +} + + +static struct ieee80211vap * +rtwn_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], int unit, + enum ieee80211_opmode opmode, int flags, + const uint8_t bssid[IEEE80211_ADDR_LEN], + const uint8_t mac[IEEE80211_ADDR_LEN]) +{ + struct rtwn_vap *rvp; + struct ieee80211vap *vap; + + if (!TAILQ_EMPTY(&ic->ic_vaps)) + return (NULL); + + rvp = malloc(sizeof(struct rtwn_vap), M_80211_VAP, M_WAITOK | M_ZERO); + vap = &rvp->vap; + if (ieee80211_vap_setup(ic, vap, name, unit, opmode, + flags | IEEE80211_CLONE_NOBEACONS, bssid) != 0) { + /* out of memory */ + free(rvp, M_80211_VAP); + return (NULL); + } + + /* Override state transition machine. */ + rvp->newstate = vap->iv_newstate; + vap->iv_newstate = rtwn_newstate; + + /* Complete setup. */ + ieee80211_vap_attach(vap, ieee80211_media_change, + ieee80211_media_status, mac); + ic->ic_opmode = opmode; + return (vap); +} + +static void +rtwn_vap_delete(struct ieee80211vap *vap) +{ + struct rtwn_vap *rvp = RTWN_VAP(vap); + + ieee80211_vap_detach(vap); + free(rvp, M_80211_VAP); +} + +static void +rtwn_write_1(struct rtwn_softc *sc, uint16_t addr, uint8_t val) +{ + + bus_space_write_1(sc->sc_st, sc->sc_sh, addr, val); +} + +static void +rtwn_write_2(struct rtwn_softc *sc, uint16_t addr, uint16_t val) +{ + + val = htole16(val); + bus_space_write_2(sc->sc_st, sc->sc_sh, addr, val); +} + +static void +rtwn_write_4(struct rtwn_softc *sc, uint16_t addr, uint32_t val) +{ + + val = htole32(val); + bus_space_write_4(sc->sc_st, sc->sc_sh, addr, val); +} + +static uint8_t +rtwn_read_1(struct rtwn_softc *sc, uint16_t addr) +{ + + return (bus_space_read_1(sc->sc_st, sc->sc_sh, addr)); +} + +static uint16_t +rtwn_read_2(struct rtwn_softc *sc, uint16_t addr) +{ + + return (bus_space_read_2(sc->sc_st, sc->sc_sh, addr)); +} + +static uint32_t +rtwn_read_4(struct rtwn_softc *sc, uint16_t addr) +{ + + return (bus_space_read_4(sc->sc_st, sc->sc_sh, addr)); +} + +static int +rtwn_fw_cmd(struct rtwn_softc *sc, uint8_t id, const void *buf, int len) +{ + struct r92c_fw_cmd cmd; + int ntries; + + /* Wait for current FW box to be empty. */ + for (ntries = 0; ntries < 100; ntries++) { + if (!(rtwn_read_1(sc, R92C_HMETFR) & (1 << sc->fwcur))) + break; + DELAY(1); + } + if (ntries == 100) { + device_printf(sc->sc_dev, + "could not send firmware command %d\n", id); + return (ETIMEDOUT); + } + memset(&cmd, 0, sizeof(cmd)); + cmd.id = id; + if (len > 3) + cmd.id |= R92C_CMD_FLAG_EXT; + KASSERT(len <= sizeof(cmd.msg), ("rtwn_fw_cmd\n")); + memcpy(cmd.msg, buf, len); + + /* Write the first word last since that will trigger the FW. */ + rtwn_write_2(sc, R92C_HMEBOX_EXT(sc->fwcur), *((uint8_t *)&cmd + 4)); + rtwn_write_4(sc, R92C_HMEBOX(sc->fwcur), *((uint8_t *)&cmd + 0)); + + sc->fwcur = (sc->fwcur + 1) % R92C_H2C_NBOX; + + /* Give firmware some time for processing. */ + DELAY(2000); + + return (0); +} + +static void +rtwn_rf_write(struct rtwn_softc *sc, int chain, uint8_t addr, uint32_t val) +{ + rtwn_bb_write(sc, R92C_LSSI_PARAM(chain), + SM(R92C_LSSI_PARAM_ADDR, addr) | + SM(R92C_LSSI_PARAM_DATA, val)); +} + +static uint32_t +rtwn_rf_read(struct rtwn_softc *sc, int chain, uint8_t addr) +{ + uint32_t reg[R92C_MAX_CHAINS], val; + + reg[0] = rtwn_bb_read(sc, R92C_HSSI_PARAM2(0)); + if (chain != 0) + reg[chain] = rtwn_bb_read(sc, R92C_HSSI_PARAM2(chain)); + + rtwn_bb_write(sc, R92C_HSSI_PARAM2(0), + reg[0] & ~R92C_HSSI_PARAM2_READ_EDGE); + DELAY(1000); + + rtwn_bb_write(sc, R92C_HSSI_PARAM2(chain), + RW(reg[chain], R92C_HSSI_PARAM2_READ_ADDR, addr) | + R92C_HSSI_PARAM2_READ_EDGE); + DELAY(1000); + + rtwn_bb_write(sc, R92C_HSSI_PARAM2(0), + reg[0] | R92C_HSSI_PARAM2_READ_EDGE); + DELAY(1000); + + if (rtwn_bb_read(sc, R92C_HSSI_PARAM1(chain)) & R92C_HSSI_PARAM1_PI) + val = rtwn_bb_read(sc, R92C_HSPI_READBACK(chain)); + else + val = rtwn_bb_read(sc, R92C_LSSI_READBACK(chain)); + return (MS(val, R92C_LSSI_READBACK_DATA)); +} + +static int +rtwn_llt_write(struct rtwn_softc *sc, uint32_t addr, uint32_t data) +{ + int ntries; + + rtwn_write_4(sc, R92C_LLT_INIT, + SM(R92C_LLT_INIT_OP, R92C_LLT_INIT_OP_WRITE) | + SM(R92C_LLT_INIT_ADDR, addr) | + SM(R92C_LLT_INIT_DATA, data)); + /* Wait for write operation to complete. */ + for (ntries = 0; ntries < 20; ntries++) { + if (MS(rtwn_read_4(sc, R92C_LLT_INIT), R92C_LLT_INIT_OP) == + R92C_LLT_INIT_OP_NO_ACTIVE) + return (0); + DELAY(5); + } + return (ETIMEDOUT); +} + +static uint8_t +rtwn_efuse_read_1(struct rtwn_softc *sc, uint16_t addr) +{ + uint32_t reg; + int ntries; + + reg = rtwn_read_4(sc, R92C_EFUSE_CTRL); + reg = RW(reg, R92C_EFUSE_CTRL_ADDR, addr); + reg &= ~R92C_EFUSE_CTRL_VALID; + rtwn_write_4(sc, R92C_EFUSE_CTRL, reg); + /* Wait for read operation to complete. */ + for (ntries = 0; ntries < 100; ntries++) { + reg = rtwn_read_4(sc, R92C_EFUSE_CTRL); + if (reg & R92C_EFUSE_CTRL_VALID) + return (MS(reg, R92C_EFUSE_CTRL_DATA)); + DELAY(5); + } + device_printf(sc->sc_dev, + "could not read efuse byte at address 0x%x\n", addr); + return (0xff); +} + +static void +rtwn_efuse_read(struct rtwn_softc *sc) +{ + uint8_t *rom = (uint8_t *)&sc->rom; + uint16_t addr = 0; + uint32_t reg; + uint8_t off, msk; + int i; + + reg = rtwn_read_2(sc, R92C_SYS_ISO_CTRL); + if (!(reg & R92C_SYS_ISO_CTRL_PWC_EV12V)) { + rtwn_write_2(sc, R92C_SYS_ISO_CTRL, + reg | R92C_SYS_ISO_CTRL_PWC_EV12V); + } + reg = rtwn_read_2(sc, R92C_SYS_FUNC_EN); + if (!(reg & R92C_SYS_FUNC_EN_ELDR)) { + rtwn_write_2(sc, R92C_SYS_FUNC_EN, + reg | R92C_SYS_FUNC_EN_ELDR); + } + reg = rtwn_read_2(sc, R92C_SYS_CLKR); + if ((reg & (R92C_SYS_CLKR_LOADER_EN | R92C_SYS_CLKR_ANA8M)) != + (R92C_SYS_CLKR_LOADER_EN | R92C_SYS_CLKR_ANA8M)) { + rtwn_write_2(sc, R92C_SYS_CLKR, + reg | R92C_SYS_CLKR_LOADER_EN | R92C_SYS_CLKR_ANA8M); + } + memset(&sc->rom, 0xff, sizeof(sc->rom)); + while (addr < 512) { + reg = rtwn_efuse_read_1(sc, addr); + if (reg == 0xff) + break; + addr++; + off = reg >> 4; + msk = reg & 0xf; + for (i = 0; i < 4; i++) { + if (msk & (1 << i)) + continue; + rom[off * 8 + i * 2 + 0] = + rtwn_efuse_read_1(sc, addr); + addr++; + rom[off * 8 + i * 2 + 1] = + rtwn_efuse_read_1(sc, addr); + addr++; + } + } +#ifdef RTWN_DEBUG + if (sc->sc_debug >= 2) { + /* Dump ROM content. */ + printf("\n"); + for (i = 0; i < sizeof(sc->rom); i++) + printf("%02x:", rom[i]); + printf("\n"); + } +#endif *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Dec 31 22:33:34 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A7610A57984; Thu, 31 Dec 2015 22:33:34 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6760A1A76; Thu, 31 Dec 2015 22:33:34 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVMXX7O075904; Thu, 31 Dec 2015 22:33:33 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVMXXGa075898; Thu, 31 Dec 2015 22:33:33 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201512312233.tBVMXXGa075898@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Thu, 31 Dec 2015 22:33:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293011 - in head/sys/modules: . rtwnfw rtwnfw/rtwnrtl8192cU rtwnfw/rtwnrtl8192cUB X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 22:33:34 -0000 Author: adrian Date: Thu Dec 31 22:33:32 2015 New Revision: 293011 URL: https://svnweb.freebsd.org/changeset/base/293011 Log: [rtwn] Add rtwn firmware and driver module. Submitted by: kevlo Added: head/sys/modules/rtwnfw/ head/sys/modules/rtwnfw/Makefile (contents, props changed) head/sys/modules/rtwnfw/Makefile.inc (contents, props changed) head/sys/modules/rtwnfw/rtwnrtl8192cU/ head/sys/modules/rtwnfw/rtwnrtl8192cU/Makefile (contents, props changed) head/sys/modules/rtwnfw/rtwnrtl8192cUB/ head/sys/modules/rtwnfw/rtwnrtl8192cUB/Makefile (contents, props changed) Modified: head/sys/modules/Makefile Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Thu Dec 31 22:32:36 2015 (r293010) +++ head/sys/modules/Makefile Thu Dec 31 22:33:32 2015 (r293011) @@ -311,6 +311,8 @@ SUBDIR= \ re \ reiserfs \ rl \ + rtwn \ + rtwnfw \ ${_s3} \ ${_safe} \ ${_sbni} \ Added: head/sys/modules/rtwnfw/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/modules/rtwnfw/Makefile Thu Dec 31 22:33:32 2015 (r293011) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +SUBDIR= rtwnrtl8192cU rtwnrtl8192cUB + +.include Added: head/sys/modules/rtwnfw/Makefile.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/modules/rtwnfw/Makefile.inc Thu Dec 31 22:33:32 2015 (r293011) @@ -0,0 +1,15 @@ +# $FreeBSD$ +# +# Common rules for building firmware. Note this gets auto-included +# by the subdir Makefile's as a consequence of included bsd.kmod.mk. + +_FIRM= ${IMG}.fw + +CLEANFILES+= ${_FIRM} + +FIRMWS= ${_FIRM}:${KMOD}:111 + +FIRMWARE_LICENSE= realtek + +${_FIRM}: ${.CURDIR}/../../../contrib/dev/rtwn/${_FIRM}.uu + uudecode -p $? > ${.TARGET} Added: head/sys/modules/rtwnfw/rtwnrtl8192cU/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/modules/rtwnfw/rtwnrtl8192cU/Makefile Thu Dec 31 22:33:32 2015 (r293011) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +KMOD= rtwn-rtl8192cfwU +IMG= rtwn-rtl8192cfwU + +.include Added: head/sys/modules/rtwnfw/rtwnrtl8192cUB/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/modules/rtwnfw/rtwnrtl8192cUB/Makefile Thu Dec 31 22:33:32 2015 (r293011) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +KMOD= rtwn-rtl8192cfwU_B +IMG= rtwn-rtl8192cfwU_B + +.include From owner-svn-src-all@freebsd.org Thu Dec 31 22:34:17 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D18C0A57A06; Thu, 31 Dec 2015 22:34:17 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 916DD1C0D; Thu, 31 Dec 2015 22:34:17 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVMYGFW075984; Thu, 31 Dec 2015 22:34:16 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVMYGgl075981; Thu, 31 Dec 2015 22:34:16 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201512312234.tBVMYGgl075981@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Thu, 31 Dec 2015 22:34:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293012 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 22:34:18 -0000 Author: adrian Date: Thu Dec 31 22:34:16 2015 New Revision: 293012 URL: https://svnweb.freebsd.org/changeset/base/293012 Log: [rtwn] Add initial manpages for the rtwn driver. Added: head/share/man/man4/rtwn.4 (contents, props changed) head/share/man/man4/rtwnfw.4 (contents, props changed) Modified: head/share/man/man4/Makefile Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Thu Dec 31 22:33:32 2015 (r293011) +++ head/share/man/man4/Makefile Thu Dec 31 22:34:16 2015 (r293012) @@ -424,6 +424,8 @@ MAN= aac.4 \ rndtest.4 \ route.4 \ rp.4 \ + rtwn.4 \ + rtwnfw.4 \ rue.4 \ rum.4 \ run.4 \ Added: head/share/man/man4/rtwn.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/rtwn.4 Thu Dec 31 22:34:16 2015 (r293012) @@ -0,0 +1,165 @@ +.\" $OpenBSD: rtwn.4,v 1.2 2015/07/09 11:28:53 stsp Exp $ +.\" +.\" Copyright (c) 2010 Damien Bergamini +.\" Copyright (c) 2015 Stefan Sperling +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $FreeBSD$ +.\" +.Dd October 28, 2015 +.Dt RTWN 4 +.Os +.Sh NAME +.Nm rtwn +.Nd Realtek RTL8188CE PCIe IEEE 802.11b/g/n wireless network device +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device rtwn" +.Cd "device rtwnfw" +.Cd "device wlan" +.Cd "device firmware" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +if_rtwn_load="YES" +.Ed +.Pp +After you have read the license in +.Pa /usr/share/doc/legal/realtek.LICENSE +you will want to add the following lines to +.Xr loader.conf 5 : +.Bd -literal -offset indent +legal.realtek.license_ack=1 +rtwn-rtl8192cfwU_load="YES" +rtwn-rtl8192cfwU_B_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver supports PCIe wireless network devices based on the Realtek +RTL8188CE chipset. +.Pp +The RTL8188CE is a highly integrated 802.11n adapter that combines a MAC, +a 1T1R capable baseband and an RF in a single chip. +It operates in the 2GHz spectrum only. +.Pp +These are the modes the +.Nm +driver can operate in: +.Bl -tag -width "IBSS-masterXX" +.It BSS mode +Also known as +.Em infrastructure +mode, this is used when associating with an access point, through +which all traffic passes. +This mode is the default. +.It monitor mode +In this mode the driver is able to receive packets without +associating with an access point. +This disables the internal receive filter and enables the card to +capture packets from networks which it wouldn't normally have access to, +or to scan for access points. +.El +.Pp +The +.Nm +driver can be configured to use +Wired Equivalent Privacy (WEP) or +Wi-Fi Protected Access (WPA-PSK and WPA2-PSK). +WPA is the current encryption standard for wireless networks. +It is strongly recommended that WEP +not be used as the sole mechanism +to secure wireless communication, +due to serious weaknesses in it. +.Pp +The +.Nm +driver can be configured at runtime with +.Xr ifconfig 8 . +.Sh FILES +The driver needs at least version 1.0 of the following firmware files, +which are loaded when an interface is brought up: +.Pp +.Bl -tag -width Ds -offset indent -compact +.It Pa /boot/kernel/rtwn-rtl8192cfwU.ko +.It Pa /boot/kernel/rtwn-rtl8192cfwU_B.ko +.El +.Sh EXAMPLES +Join an existing BSS network (i.e., connect to an access point): +.Bd -literal -offset indent +ifconfig wlan create wlandev rtwn0 inet 192.168.0.20 \e + netmask 0xffffff00 +.Ed +.Pp +Join a specific BSS network with network name +.Dq Li my_net : +.Pp +.Dl "ifconfig wlan create wlandev rtwn0 ssid my_net up" +.Pp +Join a specific BSS network with 64-bit WEP encryption: +.Bd -literal -offset indent +ifconfig wlan create wlandev rtwn0 ssid my_net \e + wepmode on wepkey 0x1234567890 weptxkey 1 up +.Ed +.Sh DIAGNOSTICS +.Bl -diag +.It "could not read firmware %s" +For some reason, the driver was unable to read the microcode file from the +filesystem. +The file might be missing or corrupted. +.It "device timeout" +A frame dispatched to the hardware for transmission did not complete in time. +The driver will reset the hardware. +This should not happen. +.El +.Sh SEE ALSO +.Xr pci 4 , +.Xr rtwnfw 4 , +.Xr wlan 4 , +.Xr wlan_ccmp 4 , +.Xr wlan_tkip 4 , +.Xr wlan_wep 4 , +.Xr ifconfig 8 , +.Xr wpa_supplicant 8 +.Sh HISTORY +The +.Nm +driver first appeared in +.Ox 5.8 . +.Sh AUTHORS +The +.Nm +driver was written by +.An -nosplit +.An Stefan Sperling Aq Mt stsp@openbsd.org +and ported by +.An Kevin Lo Aq Mt kevlo@freebsd.org . +It was based on the +.Xr urtwn 4 +driver written by +.An Damien Bergamini Aq Mt damien.bergamini@free.fr . +.Sh CAVEATS +The +.Nm +driver does not support any of the 802.11n capabilities offered by the +adapters. +Additional work is required in +.Xr ieee80211 9 +before those features can be supported. Added: head/share/man/man4/rtwnfw.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/rtwnfw.4 Thu Dec 31 22:34:16 2015 (r293012) @@ -0,0 +1,74 @@ +.\" Copyright (c) 2015 Kevin Lo +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd October 28, 2015 +.Dt RTWNFW 4 +.Os +.Sh NAME +.Nm rtwnfw +.Nd "Firmware Module for Realtek Wireless driver" +.Sh SYNOPSIS +To compile this module into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device rtwnfw" +.Ed +.Pp +This will include three firmware images inside the kernel. +If you want to pick only the firmware image for your network adapter choose one +of the following: +.Bd -ragged -offset indent +.Cd "device rtwn-rtl8192cfwU" +.Cd "device rtwn-rtl8192cfwU_B" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +rtwn-rtl8192cfwU_load="YES" +rtwn-rtl8192cfwU_B_load="YES" +.Ed +.Sh DESCRIPTION +This module provides access to firmware sets for the +Realtek RTL8188CE chip based PCIe adapters. +It may be +statically linked into the kernel, or loaded as a module. +.Pp +For the loaded firmware to be enabled for use the license at +.Pa /usr/share/doc/legal/realtek.LICENSE +must be agreed to by adding the following line to +.Xr loader.conf 5 : +.Pp +.Dl "legal.realtek.license_ack=1" +.Sh FILES +.Bl -tag -width ".Pa /usr/share/doc/legal/realtek.LICENSE" -compact +.It Pa /usr/share/doc/legal/realtek.LICENSE +.Nm +firmware license +.El +.Sh SEE ALSO +.Xr rtwn 4 , +.Xr firmware 9 From owner-svn-src-all@freebsd.org Thu Dec 31 22:48:47 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6697EA57D2C; Thu, 31 Dec 2015 22:48:47 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 357B81547; Thu, 31 Dec 2015 22:48:47 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVMmk6V078979; Thu, 31 Dec 2015 22:48:46 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVMmkdd078978; Thu, 31 Dec 2015 22:48:46 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512312248.tBVMmkdd078978@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 31 Dec 2015 22:48:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293014 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 22:48:47 -0000 Author: dim Date: Thu Dec 31 22:48:46 2015 New Revision: 293014 URL: https://svnweb.freebsd.org/changeset/base/293014 Log: Merge r293006 from clang380-import branch: For determining the compiler version, quote the string to be echo'd, otherwise the command might fail. This is because clang -v now results in the following: FreeBSD clang version 3.8.0 (trunk 256633) (based on LLVM 3.8.0svn) The second "3.8.8svn)" string tripped up the shell command. MFC after: 3 days Modified: head/share/mk/bsd.compiler.mk Directory Properties: head/ (props changed) head/share/ (props changed) Modified: head/share/mk/bsd.compiler.mk ============================================================================== --- head/share/mk/bsd.compiler.mk Thu Dec 31 22:45:00 2015 (r293013) +++ head/share/mk/bsd.compiler.mk Thu Dec 31 22:48:46 2015 (r293014) @@ -138,7 +138,7 @@ COMPILER_TYPE:= clang . endif .endif .if !defined(COMPILER_VERSION) -COMPILER_VERSION!=echo ${_v:M[1-9].[0-9]*} | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}' +COMPILER_VERSION!=echo "${_v:M[1-9].[0-9]*}" | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}' .endif .undef _v .endif From owner-svn-src-all@freebsd.org Thu Dec 31 22:52:12 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B3FF6A57F08; Thu, 31 Dec 2015 22:52:12 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7F7871948; Thu, 31 Dec 2015 22:52:12 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVMqBpw079766; Thu, 31 Dec 2015 22:52:11 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVMqBUi079765; Thu, 31 Dec 2015 22:52:11 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512312252.tBVMqBUi079765@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 31 Dec 2015 22:52:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293015 - head/contrib/pf/pflogd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 22:52:12 -0000 Author: dim Date: Thu Dec 31 22:52:11 2015 New Revision: 293015 URL: https://svnweb.freebsd.org/changeset/base/293015 Log: Merge r293013 from clang380-import branch: Fix a clang 3.8.0 warning in pflogd.c: contrib/pf/pflogd/pflogd.c:769:8: error: logical not is only applied to the left hand side of this comparison [-Werror,-Wlogical-not-parentheses] if (!if_exists(interface) == -1) { ^ ~~ The if_exists() function does not return -1, and even if it did, it would not be the correct way to check. Just ditch the == -1 instead. Obtained from: OpenBSD's pflogd.c 1.49 MFC after: 3 days Modified: head/contrib/pf/pflogd/pflogd.c Directory Properties: head/ (props changed) head/contrib/pf/ (props changed) Modified: head/contrib/pf/pflogd/pflogd.c ============================================================================== --- head/contrib/pf/pflogd/pflogd.c Thu Dec 31 22:48:46 2015 (r293014) +++ head/contrib/pf/pflogd/pflogd.c Thu Dec 31 22:52:11 2015 (r293015) @@ -766,7 +766,7 @@ main(int argc, char **argv) np = pcap_dispatch(hpcap, PCAP_NUM_PKTS, phandler, (u_char *)dpcap); if (np < 0) { - if (!if_exists(interface) == -1) { + if (!if_exists(interface)) { logmsg(LOG_NOTICE, "interface %s went away", interface); ret = -1; From owner-svn-src-all@freebsd.org Thu Dec 31 23:48:09 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54D98A56E76; Thu, 31 Dec 2015 23:48:09 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1F04B1F56; Thu, 31 Dec 2015 23:48:09 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBVNm8fC096420; Thu, 31 Dec 2015 23:48:08 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBVNm8bQ096419; Thu, 31 Dec 2015 23:48:08 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201512312348.tBVNm8bQ096419@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Thu, 31 Dec 2015 23:48:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293017 - head/sys/modules/rtwn X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Dec 2015 23:48:09 -0000 Author: adrian Date: Thu Dec 31 23:48:07 2015 New Revision: 293017 URL: https://svnweb.freebsd.org/changeset/base/293017 Log: [rtwn] add rtwn module directory. Pointed out by: dim Added: head/sys/modules/rtwn/ head/sys/modules/rtwn/Makefile (contents, props changed) Added: head/sys/modules/rtwn/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/modules/rtwn/Makefile Thu Dec 31 23:48:07 2015 (r293017) @@ -0,0 +1,8 @@ +# $FreeBSD$ + +.PATH: ${.CURDIR}/../../dev/rtwn + +KMOD = if_rtwn +SRCS = if_rtwn.c device_if.h bus_if.h pci_if.h + +.include From owner-svn-src-all@freebsd.org Fri Jan 1 00:11:30 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B97D9A57796; Fri, 1 Jan 2016 00:11:30 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7A1C71DA7; Fri, 1 Jan 2016 00:11:30 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u010BTU7003898; Fri, 1 Jan 2016 00:11:29 GMT (envelope-from nwhitehorn@FreeBSD.org) Received: (from nwhitehorn@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u010BTjO003896; Fri, 1 Jan 2016 00:11:29 GMT (envelope-from nwhitehorn@FreeBSD.org) Message-Id: <201601010011.u010BTjO003896@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: nwhitehorn set sender to nwhitehorn@FreeBSD.org using -f From: Nathan Whitehorn Date: Fri, 1 Jan 2016 00:11:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293018 - head/libexec/rtld-elf/powerpc64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 00:11:30 -0000 Author: nwhitehorn Date: Fri Jan 1 00:11:29 2016 New Revision: 293018 URL: https://svnweb.freebsd.org/changeset/base/293018 Log: Unify the ELFv1 and ELFv2 code paths and make ELFv1 (the normal ABI) more correct in the process. MFC after: 2 weeks Modified: head/libexec/rtld-elf/powerpc64/reloc.c head/libexec/rtld-elf/powerpc64/rtld_start.S Modified: head/libexec/rtld-elf/powerpc64/reloc.c ============================================================================== --- head/libexec/rtld-elf/powerpc64/reloc.c Thu Dec 31 23:48:07 2015 (r293017) +++ head/libexec/rtld-elf/powerpc64/reloc.c Fri Jan 1 00:11:29 2016 (r293018) @@ -338,26 +338,19 @@ static int reloc_plt_object(Obj_Entry *obj, const Elf_Rela *rela) { Elf_Addr *where = (Elf_Addr *)(obj->relocbase + rela->r_offset); -#if !defined(_CALL_ELF) || _CALL_ELF == 1 - Elf_Addr *glink; -#endif long reloff; reloff = rela - obj->pltrela; + dbg(" reloc_plt_object: where=%p,reloff=%lx,glink=%#lx", (void *)where, + reloff, obj->glink); + #if !defined(_CALL_ELF) || _CALL_ELF == 1 - if (obj->priv == NULL) - obj->priv = xmalloc(obj->pltrelasize); - glink = obj->priv + reloff*sizeof(Elf_Addr)*2; - - dbg(" reloc_plt_object: where=%p,reloff=%lx,glink=%p", (void *)where, reloff, glink); - - memcpy(where, _rtld_bind_start, sizeof(struct funcdesc)); - ((struct funcdesc *)(where))->env = (Elf_Addr)glink; - *(glink++) = (Elf_Addr)obj; - *(glink++) = reloff*sizeof(Elf_Rela); + /* Glink code is 3 instructions after the first 32k, 2 before */ + *where = (Elf_Addr)obj->glink + 32 + + 8*((reloff < 0x8000) ? reloff : 0x8000) + + 12*((reloff < 0x8000) ? 0 : (reloff - 0x8000)); #else - dbg(" reloc_plt_object: where=%p,reloff=%lx,glink=%#lx", (void *)where, reloff, obj->glink); *where = (Elf_Addr)obj->glink + 4*reloff + 32; #endif @@ -416,13 +409,6 @@ reloc_jmpslots(Obj_Entry *obj, int flags target = (Elf_Addr)(defobj->relocbase + def->st_value); -#if 0 - /* PG XXX */ - dbg("\"%s\" in \"%s\" --> %p in \"%s\"", - defobj->strtab + def->st_name, basename(obj->path), - (void *)target, basename(defobj->path)); -#endif - if (def == &sym_zero) { /* Zero undefined weak symbols */ #if !defined(_CALL_ELF) || _CALL_ELF == 1 @@ -461,12 +447,28 @@ reloc_jmpslot(Elf_Addr *wherep, Elf_Addr (void *)wherep, (void *)target, *(Elf_Addr *)target, (Elf_Addr)defobj->relocbase); + /* + * For the trampoline, the second two elements of the function + * descriptor are unused, so we are fine replacing those at any time + * with the real ones with no thread safety implications. However, we + * need to make sure the main entry point pointer ([0]) is seen to be + * modified *after* the second two elements. This can't be done in + * general, since there are no barriers in the reading code, but put in + * some isyncs to at least make it a little better. + */ memcpy(wherep, (void *)target, sizeof(struct funcdesc)); + wherep[2] = ((Elf_Addr *)target)[2]; + wherep[1] = ((Elf_Addr *)target)[1]; + __asm __volatile ("isync" : : : "memory"); + wherep[0] = ((Elf_Addr *)target)[0]; + __asm __volatile ("isync" : : : "memory"); + if (((struct funcdesc *)(wherep))->addr < (Elf_Addr)defobj->relocbase) { /* - * XXX: It is possible (e.g. LD_BIND_NOW) that the function + * It is possible (LD_BIND_NOW) that the function * descriptor we are copying has not yet been relocated. - * If this happens, fix it. + * If this happens, fix it. Don't worry about threading in + * this case since LD_BIND_NOW makes it irrelevant. */ ((struct funcdesc *)(wherep))->addr += @@ -481,8 +483,6 @@ reloc_jmpslot(Elf_Addr *wherep, Elf_Addr *wherep = target; #endif - __asm __volatile("sync" ::: "memory"); - return (target); } @@ -506,7 +506,6 @@ reloc_gnu_ifunc(Obj_Entry *obj, int flag void init_pltgot(Obj_Entry *obj) { -#if defined(_CALL_ELF) && _CALL_ELF == 2 Elf_Addr *pltcall; pltcall = obj->pltgot; @@ -515,10 +514,12 @@ init_pltgot(Obj_Entry *obj) return; } +#if defined(_CALL_ELF) && _CALL_ELF == 2 pltcall[0] = (Elf_Addr)&_rtld_bind_start; pltcall[1] = (Elf_Addr)obj; - - __asm __volatile("sync" ::: "memory"); +#else + memcpy(pltcall, _rtld_bind_start, sizeof(struct funcdesc)); + pltcall[2] = (Elf_Addr)obj; #endif } Modified: head/libexec/rtld-elf/powerpc64/rtld_start.S ============================================================================== --- head/libexec/rtld-elf/powerpc64/rtld_start.S Thu Dec 31 23:48:07 2015 (r293017) +++ head/libexec/rtld-elf/powerpc64/rtld_start.S Fri Jan 1 00:11:29 2016 (r293018) @@ -111,10 +111,7 @@ _ENTRY(_rtld_start) * * Call into the MI binder. This routine is reached via the PLT call cell * - * For ELFv1, on entry, %r11 contains a pointer to the (object, relocation) - * tuple. - * - * For ELFv2, %r11 contains an object pointer and %r0 contains the PLT index. + * On entry, %r11 contains an object pointer and %r0 contains the PLT index. * * Save all registers, call into the binder to resolve and fixup the external * routine, and then transfer to the external routine on return. @@ -122,7 +119,7 @@ _ENTRY(_rtld_start) .globl _rtld_bind _ENTRY(_rtld_bind_start) - mr %r12,%r0 # shunt r0 immediately to r12 for ELFv2 + mr %r12,%r0 # save r0 (index) immediately to r12 mflr %r0 std %r0,16(%r1) # save lr mfcr %r0 @@ -139,13 +136,9 @@ _ENTRY(_rtld_bind_start) std %r9,64+6*8(%r1) std %r10,64+7*8(%r1) -#if !defined(_CALL_ELF) || _CALL_ELF == 1 - ld %r3,0(%r11) - ld %r4,8(%r11) -#else mr %r3,%r11 - mulli %r4,%r12,24 /* Multiply index by sizeof(Elf_Rela) */ -#endif + mulli %r4,%r12,24 # Multiply index by sizeof(Elf_Rela) + bl _rtld_bind # target addr = _rtld_bind(obj, reloff) nop From owner-svn-src-all@freebsd.org Fri Jan 1 00:21:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AE8D2A57ADB; Fri, 1 Jan 2016 00:21:08 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5F83A1509; Fri, 1 Jan 2016 00:21:08 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u010L7tJ006628; Fri, 1 Jan 2016 00:21:07 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u010L7sW006625; Fri, 1 Jan 2016 00:21:07 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201601010021.u010L7sW006625@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Fri, 1 Jan 2016 00:21:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293022 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 00:21:08 -0000 Author: adrian Date: Fri Jan 1 00:21:07 2016 New Revision: 293022 URL: https://svnweb.freebsd.org/changeset/base/293022 Log: [net80211] document the (not completely complete) set of places where we're assuming hz=1000 and not gracefully handling when it isn't. The math involved will return 0 for hz < 1000, which it is on some platforms and on DragonflyBSD. This doesn't fix it, it: * converts one manual use over to use the macro, and * comments where it needs some thought/fixing. I'll think about this a bit more before fixing it. Submitted by: imre@vdsz.com Modified: head/sys/net80211/ieee80211_freebsd.h head/sys/net80211/ieee80211_scan_sw.c head/sys/net80211/ieee80211_var.h Modified: head/sys/net80211/ieee80211_freebsd.h ============================================================================== --- head/sys/net80211/ieee80211_freebsd.h Fri Jan 1 00:16:54 2016 (r293021) +++ head/sys/net80211/ieee80211_freebsd.h Fri Jan 1 00:21:07 2016 (r293022) @@ -246,9 +246,11 @@ void ieee80211_vap_destroy(struct ieee80 (((_ifp)->if_flags & IFF_UP) && \ ((_ifp)->if_drv_flags & IFF_DRV_RUNNING)) +/* XXX TODO: cap these at 1, as hz may not be 1000 */ #define msecs_to_ticks(ms) (((ms)*hz)/1000) #define ticks_to_msecs(t) (1000*(t) / hz) #define ticks_to_secs(t) ((t) / hz) + #define time_after(a,b) ((long)(b) - (long)(a) < 0) #define time_before(a,b) time_after(b,a) #define time_after_eq(a,b) ((long)(a) - (long)(b) >= 0) Modified: head/sys/net80211/ieee80211_scan_sw.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sw.c Fri Jan 1 00:16:54 2016 (r293021) +++ head/sys/net80211/ieee80211_scan_sw.c Fri Jan 1 00:21:07 2016 (r293022) @@ -641,7 +641,7 @@ scan_task(void *arg, int pending) * XXX Should use M_TXCB mechanism to eliminate this. */ cv_timedwait(&SCAN_PRIVATE(ss)->ss_scan_cv, - IEEE80211_LOCK_OBJ(ic), hz / 1000); + IEEE80211_LOCK_OBJ(ic), msecs_to_ticks(1)); if (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_ABORT) goto done; } Modified: head/sys/net80211/ieee80211_var.h ============================================================================== --- head/sys/net80211/ieee80211_var.h Fri Jan 1 00:16:54 2016 (r293021) +++ head/sys/net80211/ieee80211_var.h Fri Jan 1 00:21:07 2016 (r293022) @@ -84,6 +84,7 @@ #define IEEE80211_MS_TO_TU(x) (((x) * 1000) / 1024) #define IEEE80211_TU_TO_MS(x) (((x) * 1024) / 1000) +/* XXX TODO: cap this at 1, in case hz is not 1000 */ #define IEEE80211_TU_TO_TICKS(x)(((x) * 1024 * hz) / (1000 * 1000)) /* From owner-svn-src-all@freebsd.org Fri Jan 1 00:35:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3113FA57F5F; Fri, 1 Jan 2016 00:35:08 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D8E031B14; Fri, 1 Jan 2016 00:35:07 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u010Z6Pm012120; Fri, 1 Jan 2016 00:35:06 GMT (envelope-from ume@FreeBSD.org) Received: (from ume@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u010Z6vA012118; Fri, 1 Jan 2016 00:35:06 GMT (envelope-from ume@FreeBSD.org) Message-Id: <201601010035.u010Z6vA012118@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ume set sender to ume@FreeBSD.org using -f From: Hajimu UMEMOTO Date: Fri, 1 Jan 2016 00:35:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r293023 - stable/10/lib/libc/net X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 00:35:08 -0000 Author: ume Date: Fri Jan 1 00:35:06 2016 New Revision: 293023 URL: https://svnweb.freebsd.org/changeset/base/293023 Log: MFC r292719: Remove _gethostbynisname() and _gethostbynisaddr(). These functions used to be called from getipnodebyname(). Modified: stable/10/lib/libc/net/gethostbynis.c stable/10/lib/libc/net/netdb_private.h Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/net/gethostbynis.c ============================================================================== --- stable/10/lib/libc/net/gethostbynis.c Fri Jan 1 00:21:07 2016 (r293022) +++ stable/10/lib/libc/net/gethostbynis.c Fri Jan 1 00:35:06 2016 (r293023) @@ -198,61 +198,6 @@ _gethostbynisaddr_r(const void *addr, so } #endif /* YP */ -/* XXX _gethostbynisname/_gethostbynisaddr only used by getipnodeby*() */ -struct hostent * -_gethostbynisname(const char *name, int af) -{ -#ifdef YP - struct hostent *he; - struct hostent_data *hed; - u_long oresopt; - int error; - res_state statp; - - statp = __res_state(); - if ((he = __hostent_init()) == NULL || - (hed = __hostent_data_init()) == NULL) { - RES_SET_H_ERRNO(statp, NETDB_INTERNAL); - return (NULL); - } - - oresopt = statp->options; - statp->options &= ~RES_USE_INET6; - error = _gethostbynisname_r(name, af, he, hed); - statp->options = oresopt; - return (error == 0) ? he : NULL; -#else - return (NULL); -#endif -} - -struct hostent * -_gethostbynisaddr(const void *addr, socklen_t len, int af) -{ -#ifdef YP - struct hostent *he; - struct hostent_data *hed; - u_long oresopt; - int error; - res_state statp; - - statp = __res_state(); - if ((he = __hostent_init()) == NULL || - (hed = __hostent_data_init()) == NULL) { - RES_SET_H_ERRNO(statp, NETDB_INTERNAL); - return (NULL); - } - - oresopt = statp->options; - statp->options &= ~RES_USE_INET6; - error = _gethostbynisaddr_r(addr, len, af, he, hed); - statp->options = oresopt; - return (error == 0) ? he : NULL; -#else - return (NULL); -#endif -} - int _nis_gethostbyname(void *rval, void *cb_data, va_list ap) { Modified: stable/10/lib/libc/net/netdb_private.h ============================================================================== --- stable/10/lib/libc/net/netdb_private.h Fri Jan 1 00:21:07 2016 (r293022) +++ stable/10/lib/libc/net/netdb_private.h Fri Jan 1 00:35:06 2016 (r293023) @@ -133,8 +133,6 @@ void _endhostdnsent(void); void _endhosthtent(struct hostent_data *); void _endnetdnsent(void); void _endnethtent(struct netent_data *); -struct hostent *_gethostbynisaddr(const void *, socklen_t, int); -struct hostent *_gethostbynisname(const char *, int); void _map_v4v6_address(const char *, char *); void _map_v4v6_hostent(struct hostent *, char **, char *); void _sethostdnsent(int); From owner-svn-src-all@freebsd.org Fri Jan 1 00:36:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDF37A57FEF; Fri, 1 Jan 2016 00:36:21 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 70A9A1E2B; Fri, 1 Jan 2016 00:36:21 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u010aKpq012224; Fri, 1 Jan 2016 00:36:20 GMT (envelope-from ume@FreeBSD.org) Received: (from ume@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u010aKNp012222; Fri, 1 Jan 2016 00:36:20 GMT (envelope-from ume@FreeBSD.org) Message-Id: <201601010036.u010aKNp012222@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ume set sender to ume@FreeBSD.org using -f From: Hajimu UMEMOTO Date: Fri, 1 Jan 2016 00:36:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r293024 - stable/9/lib/libc/net X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 00:36:21 -0000 Author: ume Date: Fri Jan 1 00:36:20 2016 New Revision: 293024 URL: https://svnweb.freebsd.org/changeset/base/293024 Log: MFC r292719: Remove _gethostbynisname() and _gethostbynisaddr(). These functions used to be called from getipnodebyname(). Modified: stable/9/lib/libc/net/gethostbynis.c stable/9/lib/libc/net/netdb_private.h Directory Properties: stable/9/lib/libc/ (props changed) Modified: stable/9/lib/libc/net/gethostbynis.c ============================================================================== --- stable/9/lib/libc/net/gethostbynis.c Fri Jan 1 00:35:06 2016 (r293023) +++ stable/9/lib/libc/net/gethostbynis.c Fri Jan 1 00:36:20 2016 (r293024) @@ -198,61 +198,6 @@ _gethostbynisaddr_r(const void *addr, so } #endif /* YP */ -/* XXX _gethostbynisname/_gethostbynisaddr only used by getipnodeby*() */ -struct hostent * -_gethostbynisname(const char *name, int af) -{ -#ifdef YP - struct hostent *he; - struct hostent_data *hed; - u_long oresopt; - int error; - res_state statp; - - statp = __res_state(); - if ((he = __hostent_init()) == NULL || - (hed = __hostent_data_init()) == NULL) { - RES_SET_H_ERRNO(statp, NETDB_INTERNAL); - return (NULL); - } - - oresopt = statp->options; - statp->options &= ~RES_USE_INET6; - error = _gethostbynisname_r(name, af, he, hed); - statp->options = oresopt; - return (error == 0) ? he : NULL; -#else - return (NULL); -#endif -} - -struct hostent * -_gethostbynisaddr(const void *addr, socklen_t len, int af) -{ -#ifdef YP - struct hostent *he; - struct hostent_data *hed; - u_long oresopt; - int error; - res_state statp; - - statp = __res_state(); - if ((he = __hostent_init()) == NULL || - (hed = __hostent_data_init()) == NULL) { - RES_SET_H_ERRNO(statp, NETDB_INTERNAL); - return (NULL); - } - - oresopt = statp->options; - statp->options &= ~RES_USE_INET6; - error = _gethostbynisaddr_r(addr, len, af, he, hed); - statp->options = oresopt; - return (error == 0) ? he : NULL; -#else - return (NULL); -#endif -} - int _nis_gethostbyname(void *rval, void *cb_data, va_list ap) { Modified: stable/9/lib/libc/net/netdb_private.h ============================================================================== --- stable/9/lib/libc/net/netdb_private.h Fri Jan 1 00:35:06 2016 (r293023) +++ stable/9/lib/libc/net/netdb_private.h Fri Jan 1 00:36:20 2016 (r293024) @@ -133,8 +133,6 @@ void _endhostdnsent(void); void _endhosthtent(struct hostent_data *); void _endnetdnsent(void); void _endnethtent(struct netent_data *); -struct hostent *_gethostbynisaddr(const void *, socklen_t, int); -struct hostent *_gethostbynisname(const char *, int); void _map_v4v6_address(const char *, char *); void _map_v4v6_hostent(struct hostent *, char **, char *); void _sethostdnsent(int); From owner-svn-src-all@freebsd.org Fri Jan 1 00:37:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 55AC3A5805E; Fri, 1 Jan 2016 00:37:00 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 25DD41F77; Fri, 1 Jan 2016 00:37:00 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u010ax4N012294; Fri, 1 Jan 2016 00:36:59 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u010ax6x012293; Fri, 1 Jan 2016 00:36:59 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601010036.u010ax6x012293@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Fri, 1 Jan 2016 00:36:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r293025 - stable/10/usr.sbin/makefs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 00:37:00 -0000 Author: ngie Date: Fri Jan 1 00:36:59 2016 New Revision: 293025 URL: https://svnweb.freebsd.org/changeset/base/293025 Log: MFC r292884: Fix getopt(3) argument after r290180; I forgot to change -r to -R by accident Pointyhat to: ngie Modified: stable/10/usr.sbin/makefs/makefs.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/makefs/makefs.c ============================================================================== --- stable/10/usr.sbin/makefs/makefs.c Fri Jan 1 00:36:20 2016 (r293024) +++ stable/10/usr.sbin/makefs/makefs.c Fri Jan 1 00:36:59 2016 (r293025) @@ -113,7 +113,7 @@ main(int argc, char *argv[]) start_time.tv_sec = start.tv_sec; start_time.tv_nsec = start.tv_usec * 1000; - while ((ch = getopt(argc, argv, "B:b:Dd:f:F:M:m:N:o:pr:s:S:t:xZ")) != -1) { + while ((ch = getopt(argc, argv, "B:b:Dd:f:F:M:m:N:o:pR:s:S:t:xZ")) != -1) { switch (ch) { case 'B': From owner-svn-src-all@freebsd.org Fri Jan 1 00:38:18 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AEF46A580D3; Fri, 1 Jan 2016 00:38:18 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7ECAC10FD; Fri, 1 Jan 2016 00:38:18 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u010cHZt012402; Fri, 1 Jan 2016 00:38:17 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u010cHkB012401; Fri, 1 Jan 2016 00:38:17 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601010038.u010cHkB012401@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Fri, 1 Jan 2016 00:38:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r293026 - stable/9/usr.sbin/makefs X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 00:38:18 -0000 Author: ngie Date: Fri Jan 1 00:38:17 2016 New Revision: 293026 URL: https://svnweb.freebsd.org/changeset/base/293026 Log: MFstable/10 r293025: MFC r292884: Fix getopt(3) argument after r290180; I forgot to change -r to -R by accident Pointyhat to: ngie Modified: stable/9/usr.sbin/makefs/makefs.c Directory Properties: stable/9/ (props changed) stable/9/usr.sbin/ (props changed) stable/9/usr.sbin/makefs/ (props changed) Modified: stable/9/usr.sbin/makefs/makefs.c ============================================================================== --- stable/9/usr.sbin/makefs/makefs.c Fri Jan 1 00:36:59 2016 (r293025) +++ stable/9/usr.sbin/makefs/makefs.c Fri Jan 1 00:38:17 2016 (r293026) @@ -113,7 +113,7 @@ main(int argc, char *argv[]) start_time.tv_sec = start.tv_sec; start_time.tv_nsec = start.tv_usec * 1000; - while ((ch = getopt(argc, argv, "B:b:Dd:f:F:M:m:N:o:pr:s:S:t:xZ")) != -1) { + while ((ch = getopt(argc, argv, "B:b:Dd:f:F:M:m:N:o:pR:s:S:t:xZ")) != -1) { switch (ch) { case 'B': From owner-svn-src-all@freebsd.org Fri Jan 1 02:22:46 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E8199A5692D; Fri, 1 Jan 2016 02:22:46 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AB20414BB; Fri, 1 Jan 2016 02:22:46 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u012MjOw043510; Fri, 1 Jan 2016 02:22:45 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u012Mjpo043509; Fri, 1 Jan 2016 02:22:45 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601010222.u012Mjpo043509@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Fri, 1 Jan 2016 02:22:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293028 - head/tools/regression X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 02:22:47 -0000 Author: ngie Date: Fri Jan 1 02:22:45 2016 New Revision: 293028 URL: https://svnweb.freebsd.org/changeset/base/293028 Log: - Use geom load instead of g load; g doesn't exist for all geom classes, e.g. geom_uzip(4) - These tests require root. Skip all of the tests if they're run as non-root MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/tools/regression/geom_subr.sh Modified: head/tools/regression/geom_subr.sh ============================================================================== --- head/tools/regression/geom_subr.sh Fri Jan 1 01:04:53 2016 (r293027) +++ head/tools/regression/geom_subr.sh Fri Jan 1 02:22:45 2016 (r293028) @@ -1,7 +1,12 @@ #!/bin/sh # $FreeBSD$ -kldstat -q -m g_${class} || g${class} load || exit 1 +if [ $(id -u) -ne 0 ]; then + echo 'Tests must be run as root' + echo 'Bail out!' + exit 1 +fi +kldstat -q -m g_${class} || geom ${class} load || exit 1 devwait() { From owner-svn-src-all@freebsd.org Fri Jan 1 02:25:12 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 51041A56A22; Fri, 1 Jan 2016 02:25:12 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1F17C195F; Fri, 1 Jan 2016 02:25:12 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u012PBa8043635; Fri, 1 Jan 2016 02:25:11 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u012PBCe043634; Fri, 1 Jan 2016 02:25:11 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601010225.u012PBCe043634@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Fri, 1 Jan 2016 02:25:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293029 - head/tools/regression X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 02:25:12 -0000 Author: ngie Date: Fri Jan 1 02:25:10 2016 New Revision: 293029 URL: https://svnweb.freebsd.org/changeset/base/293029 Log: Add functions for managing md(4) devices and cleaning up said md(4) devices These will be used soon in the various test scripts that source geom_subr.sh MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/tools/regression/geom_subr.sh Modified: head/tools/regression/geom_subr.sh ============================================================================== --- head/tools/regression/geom_subr.sh Fri Jan 1 02:22:45 2016 (r293028) +++ head/tools/regression/geom_subr.sh Fri Jan 1 02:25:10 2016 (r293029) @@ -17,3 +17,32 @@ devwait() sleep 0.2 done } + +# Need to keep track of the test md devices to avoid the scenario where a test +# failing will cause the other tests to bomb out, or a test failing will leave +# a large number of md(4) devices lingering around +: ${TMPDIR=/tmp} +export TMPDIR +TEST_MDS_FILE=${TMPDIR}/test_mds + +attach_md() +{ + local test_md + + test_md=$(mdconfig -a "$@") || exit + echo $test_md >> $TEST_MDS_FILE || exit + echo $test_md +} + +geom_test_cleanup() +{ + local test_md + + if [ -f $TEST_MDS_FILE ]; then + while read test_md; do + # The "#" tells the TAP parser this is a comment + echo "# Removing test memory disk: $test_md" + mdconfig -d -u $test_md + done < $TEST_MDS_FILE + fi +} From owner-svn-src-all@freebsd.org Fri Jan 1 02:47:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 84ACBA57102; Fri, 1 Jan 2016 02:47:42 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4031713C4; Fri, 1 Jan 2016 02:47:42 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u012lfNT049870; Fri, 1 Jan 2016 02:47:41 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u012led7049864; Fri, 1 Jan 2016 02:47:40 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201601010247.u012led7049864@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Fri, 1 Jan 2016 02:47:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293030 - in head/sys/powerpc: include mpc85xx powerpc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 02:47:42 -0000 Author: jhibbits Date: Fri Jan 1 02:47:40 2016 New Revision: 293030 URL: https://svnweb.freebsd.org/changeset/base/293030 Log: Extend idle support for newer Book-E cores. Newer Book-E cores (e500mc, e5500, e6500) do not support the WE bit in the MSR, and instead delegate CPU idling to the SoC. Perhaps in the future the QORIQ_DPAA option for the mpc85xx platform will become a subclass, which will eliminate most of the #ifdef's. Modified: head/sys/powerpc/include/platform.h head/sys/powerpc/mpc85xx/mpc85xx.h head/sys/powerpc/mpc85xx/platform_mpc85xx.c head/sys/powerpc/powerpc/cpu.c head/sys/powerpc/powerpc/platform.c head/sys/powerpc/powerpc/platform_if.m Modified: head/sys/powerpc/include/platform.h ============================================================================== --- head/sys/powerpc/include/platform.h Fri Jan 1 02:25:10 2016 (r293029) +++ head/sys/powerpc/include/platform.h Fri Jan 1 02:47:40 2016 (r293030) @@ -57,6 +57,8 @@ void platform_smp_ap_init(void); const char *installed_platform(void); void platform_probe_and_attach(void); +void platform_cpu_idle(int); + void platform_sleep(void); #endif /* _MACHINE_PLATFORM_H_ */ Modified: head/sys/powerpc/mpc85xx/mpc85xx.h ============================================================================== --- head/sys/powerpc/mpc85xx/mpc85xx.h Fri Jan 1 02:25:10 2016 (r293029) +++ head/sys/powerpc/mpc85xx/mpc85xx.h Fri Jan 1 02:47:40 2016 (r293030) @@ -132,6 +132,12 @@ extern vm_offset_t ccsrbar_va; #define OCP85XX_RSTCR (CCSRBAR_VA + 0xe00b0) /* + * Run Control/Power Management Registers. + */ +#define OCP85XX_RCPM_CDOZSR (CCSRBAR_VA + 0xe2004) +#define OCP85XX_RCPM_CDOZCR (CCSRBAR_VA + 0xe200c) + +/* * Prototypes. */ uint32_t ccsr_read4(uintptr_t addr); Modified: head/sys/powerpc/mpc85xx/platform_mpc85xx.c ============================================================================== --- head/sys/powerpc/mpc85xx/platform_mpc85xx.c Fri Jan 1 02:25:10 2016 (r293029) +++ head/sys/powerpc/mpc85xx/platform_mpc85xx.c Fri Jan 1 02:47:40 2016 (r293030) @@ -80,6 +80,8 @@ static int mpc85xx_smp_first_cpu(platfor static int mpc85xx_smp_next_cpu(platform_t, struct cpuref *cpuref); static int mpc85xx_smp_get_bsp(platform_t, struct cpuref *cpuref); static int mpc85xx_smp_start_cpu(platform_t, struct pcpu *cpu); +static void mpc85xx_idle(platform_t, int cpu); +static int mpc85xx_idle_wakeup(platform_t plat, int cpu); static void mpc85xx_reset(platform_t); @@ -95,6 +97,8 @@ static platform_method_t mpc85xx_methods PLATFORMMETHOD(platform_smp_start_cpu, mpc85xx_smp_start_cpu), PLATFORMMETHOD(platform_reset, mpc85xx_reset), + PLATFORMMETHOD(platform_idle, mpc85xx_idle), + PLATFORMMETHOD(platform_idle_wakeup, mpc85xx_idle_wakeup), PLATFORMMETHOD_END }; @@ -478,3 +482,36 @@ mpc85xx_reset(platform_t plat) ; } +static void +mpc85xx_idle(platform_t plat, int cpu) +{ +#ifdef QORIQ_DPAA + uint32_t reg; + + reg = ccsr_read4(OCP85XX_RCPM_CDOZCR); + ccsr_write4(OCP85XX_RCPM_CDOZCR, reg | (1 << cpu)); + ccsr_read4(OCP85XX_RCPM_CDOZCR); +#else + register_t msr; + + msr = mfmsr(); + /* Freescale E500 core RM section 6.4.1. */ + __asm __volatile("msync; mtmsr %0; isync" :: + "r" (msr | PSL_WE)); +#endif +} + +static int +mpc85xx_idle_wakeup(platform_t plat, int cpu) +{ +#ifdef QORIQ_DPAA + uint32_t reg; + + reg = ccsr_read4(OCP85XX_RCPM_CDOZCR); + ccsr_write4(OCP85XX_RCPM_CDOZCR, reg & ~(1 << cpu)); + ccsr_read4(OCP85XX_RCPM_CDOZCR); + + return (1); +#endif + return (0); +} Modified: head/sys/powerpc/powerpc/cpu.c ============================================================================== --- head/sys/powerpc/powerpc/cpu.c Fri Jan 1 02:25:10 2016 (r293029) +++ head/sys/powerpc/powerpc/cpu.c Fri Jan 1 02:47:40 2016 (r293030) @@ -607,12 +607,6 @@ cpu_idle(int busy) busy, curcpu); } -int -cpu_idle_wakeup(int cpu) -{ - return (0); -} - static void cpu_idle_60x(sbintime_t sbt) { @@ -651,14 +645,9 @@ cpu_idle_60x(sbintime_t sbt) static void cpu_idle_booke(sbintime_t sbt) { - register_t msr; - - msr = mfmsr(); #ifdef E500 - /* Freescale E500 core RM section 6.4.1. */ - __asm __volatile("msync; mtmsr %0; isync" :: - "r" (msr | PSL_WE)); + platform_cpu_idle(PCPU_GET(cpuid)); #endif } Modified: head/sys/powerpc/powerpc/platform.c ============================================================================== --- head/sys/powerpc/powerpc/platform.c Fri Jan 1 02:25:10 2016 (r293029) +++ head/sys/powerpc/powerpc/platform.c Fri Jan 1 02:47:40 2016 (r293030) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -252,6 +253,19 @@ cpu_reset() PLATFORM_RESET(plat_obj); } +int +cpu_idle_wakeup(int cpu) +{ + return (PLATFORM_IDLE_WAKEUP(plat_obj, cpu)); +} + +void +platform_cpu_idle(int cpu) +{ + + PLATFORM_IDLE(plat_obj, cpu); +} + /* * Platform install routines. Highest priority wins, using the same * algorithm as bus attachment. Modified: head/sys/powerpc/powerpc/platform_if.m ============================================================================== --- head/sys/powerpc/powerpc/platform_if.m Fri Jan 1 02:25:10 2016 (r293029) +++ head/sys/powerpc/powerpc/platform_if.m Fri Jan 1 02:47:40 2016 (r293030) @@ -84,6 +84,14 @@ CODE { { return; } + static void platform_null_idle(platform_t plat, int cpu) + { + return; + } + static int platform_null_idle_wakeup(platform_t plat, int cpu) + { + return (0); + } }; /** @@ -211,6 +219,22 @@ METHOD void reset { }; /** + * @brief Idle a CPU + */ +METHOD void idle { + platform_t _plat; + int _cpu; +} DEFAULT platform_null_idle; + +/** + * @brief Wake up an idle CPU + */ +METHOD int idle_wakeup { + platform_t _plat; + int _cpu; +} DEFAULT platform_null_idle_wakeup; + +/** * @brief Suspend the CPU */ METHOD void sleep { From owner-svn-src-all@freebsd.org Fri Jan 1 03:12:52 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F0130A5784C; Fri, 1 Jan 2016 03:12:52 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A12D311BF; Fri, 1 Jan 2016 03:12:52 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u013CpWO059993; Fri, 1 Jan 2016 03:12:51 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u013Cpvs059988; Fri, 1 Jan 2016 03:12:51 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601010312.u013Cpvs059988@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Fri, 1 Jan 2016 03:12:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293032 - in head/tools/regression: geom_concat geom_mirror geom_raid3 geom_shsec geom_stripe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 03:12:53 -0000 Author: ngie Date: Fri Jan 1 03:12:51 2016 New Revision: 293032 URL: https://svnweb.freebsd.org/changeset/base/293032 Log: Use randomly generated device names in testcases via mktemp -u instead of using the hardcoded device name, "test" MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/tools/regression/geom_concat/conf.sh head/tools/regression/geom_mirror/conf.sh head/tools/regression/geom_raid3/conf.sh head/tools/regression/geom_shsec/conf.sh head/tools/regression/geom_stripe/conf.sh Modified: head/tools/regression/geom_concat/conf.sh ============================================================================== --- head/tools/regression/geom_concat/conf.sh Fri Jan 1 02:52:29 2016 (r293031) +++ head/tools/regression/geom_concat/conf.sh Fri Jan 1 03:12:51 2016 (r293032) @@ -1,7 +1,7 @@ #!/bin/sh # $FreeBSD$ -name="test" +name="$(mktemp -u concat.XXXXXX)" class="concat" base=`basename $0` Modified: head/tools/regression/geom_mirror/conf.sh ============================================================================== --- head/tools/regression/geom_mirror/conf.sh Fri Jan 1 02:52:29 2016 (r293031) +++ head/tools/regression/geom_mirror/conf.sh Fri Jan 1 03:12:51 2016 (r293032) @@ -1,7 +1,7 @@ #!/bin/sh # $FreeBSD$ -name="test" +name="$(mktemp -u mirror.XXXXXX)" class="mirror" base=`basename $0` Modified: head/tools/regression/geom_raid3/conf.sh ============================================================================== --- head/tools/regression/geom_raid3/conf.sh Fri Jan 1 02:52:29 2016 (r293031) +++ head/tools/regression/geom_raid3/conf.sh Fri Jan 1 03:12:51 2016 (r293032) @@ -1,7 +1,7 @@ #!/bin/sh # $FreeBSD$ -name="test" +name="$(mktemp -u graid3.XXXXXX)" class="raid3" base=`basename $0` Modified: head/tools/regression/geom_shsec/conf.sh ============================================================================== --- head/tools/regression/geom_shsec/conf.sh Fri Jan 1 02:52:29 2016 (r293031) +++ head/tools/regression/geom_shsec/conf.sh Fri Jan 1 03:12:51 2016 (r293032) @@ -1,7 +1,7 @@ #!/bin/sh # $FreeBSD$ -name="test" +name="$(mktemp -u shsec.XXXXXX)" class="shsec" base=`basename $0` Modified: head/tools/regression/geom_stripe/conf.sh ============================================================================== --- head/tools/regression/geom_stripe/conf.sh Fri Jan 1 02:52:29 2016 (r293031) +++ head/tools/regression/geom_stripe/conf.sh Fri Jan 1 03:12:51 2016 (r293032) @@ -1,7 +1,7 @@ #!/bin/sh # $FreeBSD$ -name="test" +name="$(mktemp -u stripe.XXXXXX)" class="stripe" base=`basename $0` From owner-svn-src-all@freebsd.org Fri Jan 1 03:57:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9823A58141 for ; Fri, 1 Jan 2016 03:57:42 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-wm0-x22b.google.com (mail-wm0-x22b.google.com [IPv6:2a00:1450:400c:c09::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 828C61462 for ; Fri, 1 Jan 2016 03:57:42 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-wm0-x22b.google.com with SMTP id f206so128155668wmf.0 for ; Thu, 31 Dec 2015 19:57:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=MHldRlDll4QTsWIOGP/GsqYes6n11/HNCb9UoBLUwWk=; b=JreS9IFE0kDHGQPGrSyhN28yUHoGfjaVskM84aKbs/EBVFOF28vXlth+n4LmSK8781 qRoPT5KFWiko0r2IQEc9tZfIpTO3D5/y7fMYHgUt3yJTM0ut4ZnotABguTWvYnxp/F+8 l0yzhVuz9ZUVzJFNYO/7minA47hNtkvt3QH8nAqXBlHxepbLZQmcJkEiaPTkfTnsrpnM qfecHEeshx8kMW4X4L8L+y+mVDY2MGVtWJkCRtGN+l00MH29kgTs24beGuM3+oObLCae qPcQ05WL8hXKnHzS25HY+/1D1gMddlwKeazBDd6eL/Vd7vfIzVVE+4iN0+/wo/YZ0ZSA Q6ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=MHldRlDll4QTsWIOGP/GsqYes6n11/HNCb9UoBLUwWk=; b=fqSlCsDj8vTuokVzBpK5jEmX6vaPpJb01hIjqRp41IkjSHDDyHO2ODAA1HEAUP/Mir 3K9uWLQoQE1+taUXD5Dxh53RqDLcxN3DM6xf+oZYo7vkRfq4ylN1mffUVAm8fVbT1RrD /J0qkzNSGMwKV4xVW0dx6ka4VVvStjyQjzFp69Qe86gKza2s0eNgKit6LY7bufoazQz1 2/i8qKCSbSXlodP6ZOJucRKO+mVitpwA1MyNDncaqyU3AuRKPjyb+TDk4nVxZifG/2TY fMDkBYZ5wpV+Wwx1onwK6jfa2OJ96YgXFMyTymrq0JoCyTvUyc73O7bb/fPkE7mZhhle 5hOQ== X-Gm-Message-State: ALoCoQl9oRICOzyhAOdXn1J6ftNvyI5a88PQTFZtzjce7AwHnMZk67+S98czTxyeU1T6lyaESXDdghC8OvAgqL5YF5JZmMO8eKFWvv3ASozFgq/sRAQUgE4= MIME-Version: 1.0 X-Received: by 10.28.228.87 with SMTP id b84mr32100062wmh.81.1451620660873; Thu, 31 Dec 2015 19:57:40 -0800 (PST) Received: by 10.194.85.167 with HTTP; Thu, 31 Dec 2015 19:57:40 -0800 (PST) In-Reply-To: <633EF3EE-0899-45A1-B12C-CC2290A1FA29@gmail.com> References: <201512310355.tBV3t2VG040656@repo.freebsd.org> <2893860.oDiG4KQizb@ralph.baldwin.cx> <633EF3EE-0899-45A1-B12C-CC2290A1FA29@gmail.com> Date: Fri, 1 Jan 2016 04:57:40 +0100 Message-ID: Subject: Re: svn commit: r292975 - stable/10/sys/dev/pci From: Oliver Pinter To: NGie Cooper Cc: John Baldwin , "svn-src-stable@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , "svn-src-stable-10@freebsd.org" , Garrett Cooper Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 03:57:43 -0000 On Thursday, December 31, 2015, NGie Cooper wrote: > > > On Dec 31, 2015, at 08:42, John Baldwin = > > wrote: > > > > On Thursday, December 31, 2015 03:55:02 AM Garrett Cooper wrote: > >> Author: ngie > >> Date: Thu Dec 31 03:55:02 2015 > >> New Revision: 292975 > >> URL: https://svnweb.freebsd.org/changeset/base/292975 > >> > >> Log: > >> MFC r278860: > >> r278860 (by jmg): > >> > >> remove NULL check as M_WAITOK will not return NULL > >> > >> Reviewed by: jhb > >> Sponsored by: FreeBSD Foundation > > > > Including the metadata from the HEAD commit in the MFC can be > misleading, and > > I think it is best ommitted. For example, I did not review this MFC (a= nd > > reviewing MFC's in their own right matters since they may require > additional > > work than commits to HEAD due to ABI concerns), nor did the Foundation > sponsor > > the MFC. Rather, I think MFCs should only specify metadata related to > the > > actual merge itself. > > Agreed. I=E2=80=99ve changed my mfc_log script to skip over some more unn= ecessary > svn log metadata: > https://github.com/yaneurabeya/scratch/commit/4f897efb96f96f951ff3909857f= 67e63b24b733a > . > Thanks :)! > -NGie It would be nice to commit this script under tools directory. > _______________________________________________ > svn-src-stable-10@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10 > To unsubscribe, send any mail to " > svn-src-stable-10-unsubscribe@freebsd.org " From owner-svn-src-all@freebsd.org Fri Jan 1 03:59:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EEDCAA581BA; Fri, 1 Jan 2016 03:59:10 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BA00D1613; Fri, 1 Jan 2016 03:59:10 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u013x9G8073504; Fri, 1 Jan 2016 03:59:09 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u013x9Gh073503; Fri, 1 Jan 2016 03:59:09 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601010359.u013x9Gh073503@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Fri, 1 Jan 2016 03:59:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293033 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 03:59:11 -0000 Author: des Date: Fri Jan 1 03:59:09 2016 New Revision: 293033 URL: https://svnweb.freebsd.org/changeset/base/293033 Log: In the unload target, check that the module is loaded first. Add a reload target which unloads and then loads the module. Modified: head/sys/conf/kmod.mk Modified: head/sys/conf/kmod.mk ============================================================================== --- head/sys/conf/kmod.mk Fri Jan 1 03:12:51 2016 (r293032) +++ head/sys/conf/kmod.mk Fri Jan 1 03:59:09 2016 (r293033) @@ -28,6 +28,9 @@ # # KMODUNLOAD Command to unload a kernel module [/sbin/kldunload] # +# KMODISLOADED Command to check whether a kernel module is +# loaded [/sbin/kldstat -q -n] +# # PROG The name of the kernel module to build. # If not supplied, ${KMOD}.ko is used. # @@ -56,10 +59,14 @@ # unload: # Unload a module. # +# reload: +# Unload if loaded, then load. +# AWK?= awk KMODLOAD?= /sbin/kldload KMODUNLOAD?= /sbin/kldunload +KMODISLOADED?= /sbin/kldstat -q -n OBJCOPY?= objcopy .include @@ -325,7 +332,11 @@ load: ${PROG} .if !target(unload) unload: - ${KMODUNLOAD} -v ${PROG} + if ${KMODISLOADED} ${PROG} ; then ${KMODUNLOAD} -v ${PROG} ; fi +.endif + +.if !target(reload) +reload: unload load .endif .if defined(KERNBUILDDIR) From owner-svn-src-all@freebsd.org Fri Jan 1 04:04:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 77CF2A5837E; Fri, 1 Jan 2016 04:04:42 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3A3C91AD0; Fri, 1 Jan 2016 04:04:42 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0144frk076435; Fri, 1 Jan 2016 04:04:41 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0144e1A076429; Fri, 1 Jan 2016 04:04:40 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601010404.u0144e1A076429@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Fri, 1 Jan 2016 04:04:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293034 - in head: share/man/man4 sys/dev/syscons/plasma sys/modules/syscons sys/modules/syscons/plasma X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 04:04:42 -0000 Author: des Date: Fri Jan 1 04:04:40 2016 New Revision: 293034 URL: https://svnweb.freebsd.org/changeset/base/293034 Log: 17 years and change after I wrote warp_saver, here's a simple plasma effect (currently only three circular patterns) which requires quite a bit of fixed-point arithmetic, including sqrt() and cos(). Happy New Year! Added: head/sys/dev/syscons/plasma/ head/sys/dev/syscons/plasma/fp16.c (contents, props changed) head/sys/dev/syscons/plasma/fp16.h (contents, props changed) head/sys/dev/syscons/plasma/plasma_saver.c (contents, props changed) head/sys/modules/syscons/plasma/ head/sys/modules/syscons/plasma/Makefile (contents, props changed) Modified: head/share/man/man4/splash.4 head/sys/modules/syscons/Makefile Modified: head/share/man/man4/splash.4 ============================================================================== --- head/share/man/man4/splash.4 Fri Jan 1 03:59:09 2016 (r293033) +++ head/share/man/man4/splash.4 Fri Jan 1 04:04:40 2016 (r293034) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 29, 2010 +.Dd December 31, 2015 .Dt SPLASH 4 .Os .Sh NAME @@ -130,6 +130,8 @@ the screen will also be powered off. Animated graphical .Fx logo. +.It Pa plasma_saver.ko +Draws an animated interference pattern. .It Pa rain_saver.ko Draws a shower on the screen. .It Pa snake_saver.ko @@ -282,6 +284,14 @@ based on the code, with some additional inspiration from the .Pa daemon_saver code. +The +.Pa logo_saver , +.Pa plasma_saver , +.Pa rain_saver +and +.Pa warp_saver +modules were written by +.An Dag-Erling Sm\(/orgrav Aq Mt des@FreeBSD.org . .Sh CAVEATS Both the splash screen and the screen saver work with .Xr syscons 4 Added: head/sys/dev/syscons/plasma/fp16.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/syscons/plasma/fp16.c Fri Jan 1 04:04:40 2016 (r293034) @@ -0,0 +1,131 @@ +/*- + * Copyright (c) 2015 Dag-Erling Smørgrav + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifdef _KERNEL +#include +#else +#include +#include +#endif + +#include "fp16.h" + +/* + * Compute the quare root of x, using Newton's method with 2^(log2(x)/2) + * as the initial estimate. + */ +fp16_t +fp16_sqrt(fp16_t x) +{ + fp16_t y, delta; + signed int log2x; + + /* special case */ + if (x == 0) + return (0); + + /* shift toward 0 by half the logarithm */ + log2x = flsl(x) - 1; + if (log2x >= 16) { + y = x >> (log2x - 16) / 2; + } else { +#if 0 + y = x << (16 - log2x) / 2; +#else + /* XXX for now, return 0 for anything < 1 */ + return (0); +#endif + } + while (y > 0) { + /* delta = y^2 / 2y */ + delta = fp16_div(fp16_sub(fp16_mul(y, y), x), y * 2); + if (delta == 0) + break; + y = fp16_sub(y, delta); + } + return (y); +} + +static fp16_t fp16_cos_table[256] = { + 65536, 65534, 65531, 65524, 65516, 65505, 65491, 65475, + 65457, 65436, 65412, 65386, 65358, 65327, 65294, 65258, + 65220, 65179, 65136, 65091, 65043, 64992, 64939, 64884, + 64826, 64766, 64703, 64638, 64571, 64501, 64428, 64353, + 64276, 64197, 64115, 64030, 63943, 63854, 63762, 63668, + 63571, 63473, 63371, 63268, 63162, 63053, 62942, 62829, + 62714, 62596, 62475, 62353, 62228, 62100, 61971, 61839, + 61705, 61568, 61429, 61288, 61144, 60998, 60850, 60700, + 60547, 60392, 60235, 60075, 59913, 59749, 59583, 59414, + 59243, 59070, 58895, 58718, 58538, 58356, 58172, 57986, + 57797, 57606, 57414, 57219, 57022, 56822, 56621, 56417, + 56212, 56004, 55794, 55582, 55368, 55152, 54933, 54713, + 54491, 54266, 54040, 53811, 53581, 53348, 53114, 52877, + 52639, 52398, 52155, 51911, 51665, 51416, 51166, 50914, + 50660, 50403, 50146, 49886, 49624, 49360, 49095, 48828, + 48558, 48288, 48015, 47740, 47464, 47186, 46906, 46624, + 46340, 46055, 45768, 45480, 45189, 44897, 44603, 44308, + 44011, 43712, 43412, 43110, 42806, 42501, 42194, 41885, + 41575, 41263, 40950, 40636, 40319, 40002, 39682, 39362, + 39039, 38716, 38390, 38064, 37736, 37406, 37075, 36743, + 36409, 36074, 35738, 35400, 35061, 34721, 34379, 34036, + 33692, 33346, 32999, 32651, 32302, 31952, 31600, 31247, + 30893, 30538, 30181, 29824, 29465, 29105, 28745, 28383, + 28020, 27656, 27291, 26925, 26557, 26189, 25820, 25450, + 25079, 24707, 24334, 23960, 23586, 23210, 22833, 22456, + 22078, 21699, 21319, 20938, 20557, 20175, 19792, 19408, + 19024, 18638, 18253, 17866, 17479, 17091, 16702, 16313, + 15923, 15533, 15142, 14751, 14359, 13966, 13573, 13179, + 12785, 12390, 11995, 11600, 11204, 10807, 10410, 10013, + 9616, 9218, 8819, 8421, 8022, 7623, 7223, 6823, + 6423, 6023, 5622, 5222, 4821, 4420, 4018, 3617, + 3215, 2814, 2412, 2010, 1608, 1206, 804, 402, +}; + +/* + * Compute the cosine of theta. + */ +fp16_t +fp16_cos(fp16_t theta) +{ + unsigned int i; + + i = 1024 * (theta % FP16_2PI) / FP16_2PI; + switch (i / 256) { + case 0: + return (fp16_cos_table[i % 256]); + case 1: + return (-fp16_cos_table[255 - i % 256]); + case 2: + return (-fp16_cos_table[i % 256]); + case 3: + return (fp16_cos_table[255 - i % 256]); + default: + /* inconceivable! */ + return (0); + } +} Added: head/sys/dev/syscons/plasma/fp16.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/syscons/plasma/fp16.h Fri Jan 1 04:04:40 2016 (r293034) @@ -0,0 +1,84 @@ +/*- + * Copyright (c) 2015 Dag-Erling Smørgrav + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef FP16_H_INCLUDED +#define FP16_H_INCLUDED + +typedef signed long long fp16_t; + +#define ItoFP16(n) ((signed long long)(n) << 16) +#define FP16toI(n) ((signed long long)(n) >> 16) + +#ifndef _KERNEL +#define FP16toF(n) ((n) / 65536.0) +#endif + +/* add a and b */ +static inline fp16_t +fp16_add(fp16_t a, fp16_t b) +{ + + return (a + b); +} + +/* subtract b from a */ +static inline fp16_t +fp16_sub(fp16_t a, fp16_t b) +{ + + return (a - b); +} + +/* multiply a by b */ +static inline fp16_t +fp16_mul(fp16_t a, fp16_t b) +{ + + return (a * b >> 16); +} + +/* divide a by b */ +static inline fp16_t +fp16_div(fp16_t a, fp16_t b) +{ + + return ((a << 16) / b); +} + +/* square root */ +fp16_t fp16_sqrt(fp16_t); + +#define FP16_2PI 411774 +#define FP16_PI 205887 +#define FP16_PI_2 102943 +#define FP16_PI_4 51471 + +/* cosine */ +fp16_t fp16_cos(fp16_t); + +#endif Added: head/sys/dev/syscons/plasma/plasma_saver.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/syscons/plasma/plasma_saver.c Fri Jan 1 04:04:40 2016 (r293034) @@ -0,0 +1,239 @@ +/*- + * Copyright (c) 2015 Dag-Erling Smørgrav + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + * + * To CJA, in appreciation of Nighthawk brunches past and future. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define SAVER_NAME "plasma_saver" + +#include "fp16.h" + +/* + * Preferred video modes + */ +static int modes[] = { + M_VGA_CG640, + M_PC98_PEGC640x480, + M_PC98_PEGC640x400, + M_VGA_CG320, + -1 +}; + +/* + * Display parameters + */ +static unsigned char *vid; +static unsigned int banksize, scrmode, scrw, scrh; +static unsigned int blanked; + +/* + * List of foci + */ +#define FOCI 3 +static struct { + int x, y; /* coordinates */ + int vx, vy; /* velocity */ +} plasma_foci[FOCI]; + +/* + * Palette + */ +static struct { + unsigned char r, g, b; +} plasma_pal[256]; + +/* + * Draw a new frame + */ +static void +plasma_update(video_adapter_t *adp) +{ + unsigned int x, y; /* coordinates */ + signed int dx, dy; /* horizontal / vertical distance */ + fp16_t sqd, d; /* square of distance and distance */ + fp16_t m; /* magnitude */ + unsigned int org, off; /* origin and offset */ + unsigned int i; /* loop index */ + + /* switch to bank 0 */ + vidd_set_win_org(adp, 0); + /* for each scan line */ + for (y = org = off = 0; y < scrh; ++y) { + /* for each pixel on scan line */ + for (x = 0; x < scrw; ++x, ++off) { + /* for each focus */ + for (i = m = 0; i < FOCI; ++i) { + dx = x - plasma_foci[i].x; + dy = y - plasma_foci[i].y; + sqd = ItoFP16(dx * dx + dy * dy); + d = fp16_sqrt(sqd); + /* divide by 4 to stretch out the pattern */ + m = fp16_add(m, fp16_cos(d / 4)); + } + /* + * m is now in the range +/- FOCI, but we need a + * value between 0 and 255. We scale to +/- 127 + * and add 127, which moves it into the range [0, + * 254]. + */ + m = fp16_mul(m, ItoFP16(127)); + m = fp16_div(m, ItoFP16(FOCI)); + m = fp16_add(m, ItoFP16(127)); + /* switch banks if necessary */ + if (off > banksize) { + off -= banksize; + org += banksize; + vidd_set_win_org(adp, org); + } + /* plot */ + vid[off] = FP16toI(m); + } + } + /* now move the foci */ + for (i = 0; i < FOCI; ++i) { + plasma_foci[i].x += plasma_foci[i].vx; + if (plasma_foci[i].x < 0) { + /* bounce against left wall */ + plasma_foci[i].vx = -plasma_foci[i].vx; + plasma_foci[i].x = -plasma_foci[i].x; + } else if (plasma_foci[i].x >= scrw) { + /* bounce against right wall */ + plasma_foci[i].vx = -plasma_foci[i].vx; + plasma_foci[i].x = scrw - (plasma_foci[i].x - scrw); + } + plasma_foci[i].y += plasma_foci[i].vy; + if (plasma_foci[i].y < 0) { + /* bounce against ceiling */ + plasma_foci[i].vy = -plasma_foci[i].vy; + plasma_foci[i].y = -plasma_foci[i].y; + } else if (plasma_foci[i].y >= scrh) { + /* bounce against floor */ + plasma_foci[i].vy = -plasma_foci[i].vy; + plasma_foci[i].y = scrh - (plasma_foci[i].y - scrh); + } + } +} + +/* + * Start or stop the screensaver + */ +static int +plasma_saver(video_adapter_t *adp, int blank) +{ + int pl; + + if (blank) { + /* switch to graphics mode */ + if (blanked <= 0) { + pl = splhigh(); + vidd_set_mode(adp, scrmode); + vidd_load_palette(adp, (unsigned char *)plasma_pal); + vidd_set_border(adp, 0); + blanked++; + vid = (unsigned char *)adp->va_window; + banksize = adp->va_window_size; + splx(pl); + vidd_clear(adp); + } + /* update display */ + plasma_update(adp); + } else { + blanked = 0; + } + return (0); +} + +/* + * Initialize on module load + */ +static int +plasma_init(video_adapter_t *adp) +{ + video_info_t info; + int i; + + /* select video mode */ + for (i = 0; modes[i] >= 0; ++i) + if (vidd_get_info(adp, modes[i], &info) == 0) + break; + if (modes[i] < 0) { + log(LOG_NOTICE, "%s: no supported video modes\n", SAVER_NAME); + return (ENODEV); + } + scrmode = modes[i]; + scrw = info.vi_width; + scrh = info.vi_height; + + /* initialize the palette */ + for (i = 0; i < 256; ++i) + plasma_pal[i].r = plasma_pal[i].g = plasma_pal[i].b = i; + + /* randomize the foci */ + for (i = 0; i < FOCI; i++) { + plasma_foci[i].x = random() % scrw; + plasma_foci[i].y = random() % scrh; + plasma_foci[i].vx = random() % 5 - 2; + plasma_foci[i].vy = random() % 5 - 2; + } + + return (0); +} + +/* + * Clean up before module unload + */ +static int +plasma_term(video_adapter_t *adp) +{ + + return (0); +} + +/* + * Boilerplate + */ +static scrn_saver_t plasma_module = { + SAVER_NAME, + plasma_init, + plasma_term, + plasma_saver, + NULL +}; + +SAVER_MODULE(plasma_saver, plasma_module); Modified: head/sys/modules/syscons/Makefile ============================================================================== --- head/sys/modules/syscons/Makefile Fri Jan 1 03:59:09 2016 (r293033) +++ head/sys/modules/syscons/Makefile Fri Jan 1 04:04:40 2016 (r293034) @@ -9,6 +9,7 @@ SUBDIR= ${_apm} \ ${_fire} \ green \ ${_logo} \ + ${_plasma} \ ${_rain} \ ${_snake} \ ${_star} \ @@ -25,6 +26,7 @@ _daemon= daemon _dragon= dragon _fire= fire _logo= logo +_plasma= plasma _rain= rain _snake= snake _star= star Added: head/sys/modules/syscons/plasma/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/modules/syscons/plasma/Makefile Fri Jan 1 04:04:40 2016 (r293034) @@ -0,0 +1,8 @@ +# $FreeBSD$ + +.PATH: ${.CURDIR}/../../../dev/syscons/plasma + +KMOD= plasma_saver +SRCS= fp16.c plasma_saver.c + +.include From owner-svn-src-all@freebsd.org Fri Jan 1 10:15:07 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81ECAA5D36C; Fri, 1 Jan 2016 10:15:07 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5025D1601; Fri, 1 Jan 2016 10:15:07 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u01AF6FJ090126; Fri, 1 Jan 2016 10:15:06 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u01AF62N090123; Fri, 1 Jan 2016 10:15:06 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <201601011015.u01AF62N090123@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Fri, 1 Jan 2016 10:15:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293035 - in head/sys: net netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 10:15:07 -0000 Author: melifaro Date: Fri Jan 1 10:15:06 2016 New Revision: 293035 URL: https://svnweb.freebsd.org/changeset/base/293035 Log: Remove second EVENTHANDLER_REGISTER slipped in r292978. Describe the reason of doing unconditional M_PREPEND in ether_output(). Modified: head/sys/net/if_ethersubr.c head/sys/netinet/if_ether.c Modified: head/sys/net/if_ethersubr.c ============================================================================== --- head/sys/net/if_ethersubr.c Fri Jan 1 04:04:40 2016 (r293034) +++ head/sys/net/if_ethersubr.c Fri Jan 1 10:15:06 2016 (r293035) @@ -324,6 +324,10 @@ ether_output(struct ifnet *ifp, struct m /* * Add local net header. If no space in first mbuf, * allocate another. + * + * Note that we do prepend regardless of RT_HAS_HEADER flag. + * This is done because BPF code shifts m_data pointer + * to the end of ethernet header prior to calling if_output(). */ M_PREPEND(m, hlen, M_NOWAIT); if (m == NULL) Modified: head/sys/netinet/if_ether.c ============================================================================== --- head/sys/netinet/if_ether.c Fri Jan 1 04:04:40 2016 (r293034) +++ head/sys/netinet/if_ether.c Fri Jan 1 10:15:06 2016 (r293035) @@ -1334,8 +1334,5 @@ arp_init(void) if (IS_DEFAULT_VNET(curvnet)) iflladdr_tag = EVENTHANDLER_REGISTER(iflladdr_event, arp_iflladdr, NULL, EVENTHANDLER_PRI_ANY); - if (IS_DEFAULT_VNET(curvnet)) - iflladdr_tag = EVENTHANDLER_REGISTER(iflladdr_event, - arp_iflladdr, NULL, EVENTHANDLER_PRI_ANY); } SYSINIT(arp, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY, arp_init, 0); From owner-svn-src-all@freebsd.org Fri Jan 1 11:57:33 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86A1DA544F3; Fri, 1 Jan 2016 11:57:33 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5372E172E; Fri, 1 Jan 2016 11:57:33 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u01BvWBn020040; Fri, 1 Jan 2016 11:57:32 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u01BvWLj020039; Fri, 1 Jan 2016 11:57:32 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201601011157.u01BvWLj020039@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Fri, 1 Jan 2016 11:57:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293037 - head/etc/ntp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 11:57:33 -0000 Author: cy Date: Fri Jan 1 11:57:32 2016 New Revision: 293037 URL: https://svnweb.freebsd.org/changeset/base/293037 Log: Update leap-seconds to latest. This will satisfy the ntpd leap-second version check. Obtained from: ftp://tycho.usno.navy.mil/pub/ntp/. See also: http://www.iers.org/SharedDocs/News/EN/BulletinC.html Modified: head/etc/ntp/leap-seconds Modified: head/etc/ntp/leap-seconds ============================================================================== --- head/etc/ntp/leap-seconds Fri Jan 1 11:19:32 2016 (r293036) +++ head/etc/ntp/leap-seconds Fri Jan 1 11:57:32 2016 (r293037) @@ -1,119 +1,221 @@ # # $FreeBSD$ # -# ATOMIC TIME. -# The Coordinated Universal Time (UTC) is the reference time scale derived -# from The "Temps Atomique International" (TAI) calculated by the Bureau -# International des Poids et Mesures (BIPM) using a worldwide network of atomic -# clocks. UTC differs from TAI by an integer number of seconds; it is the basis -# of all activities in the world. -# -# -# ASTRONOMICAL TIME (UT1) is the time scale based on the rate of rotation of the earth. -# It is now mainly derived from Very Long Baseline Interferometry (VLBI). The various -# irregular fluctuations progressively detected in the rotation rate of the Earth lead -# in 1972 to the replacement of UT1 by UTC as the reference time scale. -# -# -# LEAP SECOND -# Atomic clocks are more stable than the rate of the earth rotatiob since the later -# undergoes a full range of geophysical perturbations at various time scales (lunisolar -# and core-mantle torques,atmospheric and oceanic effetcs, ...) -# Leap seconds are needed to keep the two time scales in agreement, i.e. UT1-UTC smaller -# than 0.9 second. So, when necessary a "leap second" is introduced in UTC. -# Since the adoption of this system in 1972 it has been necessary to add 26 seconds to UTC, -# firstly due to the initial choice of the value of the second (1/86400 mean solar day of -# the year 1820) and secondly to the general slowing down of the Earth's rotation. It is -# theorically possible to have a negative leap second (a second removed from UTC), but so far, -# all leap seconds have been positive (a second has been added to UTC). Based on what we know about the earth's rotation, -# it is unlikely that we will ever have a negative leap second. -# -# -# HISTORY -# The first leap second was added on June 30, 1972. Until 2000, it was necessary in average to add a leap second at a rate -# of 1 to 2 years. Since 2000, due to the fact that the earth rate of rotation is accelerating, leap seconds are introduced -# with an average frequency of 3 to 4 years. -# -# -# RESPONSABILITY OF THE DECISION TO INTRODUCE A LEAP SECOND IN UTC -# The decision to introduce a leap second in UTC is the responsibility of the Earth Orientation Center of -# the International Earth Rotation and reference System Service (IERS). This center is located at Paris -# Observatory. According to international agreements, leap second date have to occur at fixed date : -# first preference is given to the end of December and June, and second preference at the end of March -# and September. Since the system was introduced in 1972, only dates in June and December were used. -# -# Questions or comments to: -# Daniel Gambis, daniel.gambis@obspm.fr -# Christian Bizouard: christian.bizouard@obspm.fr -# Earth orientation Center of the IERS -# Paris Observatory, France -# -# -# -# VALIDITY OF THE FILE -# It is important to express the validity of the file. These next two dates are -# given in units of seconds since 1900.0. -# -# 1) Last update of the file. -# -# Updated through IERS Bulletin C (ftp://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat) -# -# The following line shows the last update of this file in NTP timestamp: -# -#$ 3645216000 -# -# 2) Expiration date of the file given on a semi-annual basis: last June or last December -# -# File expires on 28 December 2015 -# -# Expire date in NTP timestamp: -# -#@ 3660249600 -# -# -# LIST OF LEAP SECONDS -# NTP timestamp (X parameter) is the number of seconds since 1900.0 -# -# MJD: The Modified Julian Day number. MJD = X/86400 + 15020 -# -# DTAI: The difference DTAI= TAI-UTC in units of seconds -# It is the quantity to add to UTC to get the time in TAI -# -# Day Month Year : epoch in clear -# -#NTP Time DTAI Day Month Year -# -2272060800 10 # 1 Jan 1972 -2287785600 11 # 1 Jul 1972 -2303683200 12 # 1 Jan 1973 -2335219200 13 # 1 Jan 1974 -2366755200 14 # 1 Jan 1975 -2398291200 15 # 1 Jan 1976 -2429913600 16 # 1 Jan 1977 -2461449600 17 # 1 Jan 1978 -2492985600 18 # 1 Jan 1979 -2524521600 19 # 1 Jan 1980 -2571782400 20 # 1 Jul 1981 -2603318400 21 # 1 Jul 1982 -2634854400 22 # 1 Jul 1983 -2698012800 23 # 1 Jul 1985 -2776982400 24 # 1 Jan 1988 -2840140800 25 # 1 Jan 1990 -2871676800 26 # 1 Jan 1991 -2918937600 27 # 1 Jul 1992 -2950473600 28 # 1 Jul 1993 -2982009600 29 # 1 Jul 1994 -3029443200 30 # 1 Jan 1996 -3076704000 31 # 1 Jul 1997 -3124137600 32 # 1 Jan 1999 -3345062400 33 # 1 Jan 2006 -3439756800 34 # 1 Jan 2009 -3550089600 35 # 1 Jul 2012 -3644697600 36 # 1 Jul 2015 -# -# In order to verify the integrity of this file, a hash code -# has been generated. For more information how to use -# this hash code, please consult the README file under the -# 'sha' repertory. +# In the following text, the symbol '#' introduces +# a comment, which continues from that symbol until +# the end of the line. A plain comment line has a +# whitespace character following the comment indicator. +# There are also special comment lines defined below. +# A special comment will always have a non-whitespace +# character in column 2. +# +# A blank line should be ignored. +# +# The following table shows the corrections that must +# be applied to compute International Atomic Time (TAI) +# from the Coordinated Universal Time (UTC) values that +# are transmitted by almost all time services. +# +# The first column shows an epoch as a number of seconds +# since 1900.0 and the second column shows the number of +# seconds that must be added to UTC to compute TAI for +# any timestamp at or after that epoch. The value on +# each line is valid from the indicated initial instant +# until the epoch given on the next one or indefinitely +# into the future if there is no next line. +# (The comment on each line shows the representation of +# the corresponding initial epoch in the usual +# day-month-year format. The epoch always begins at +# 00:00:00 UTC on the indicated day. See Note 5 below.) +# +# Important notes: +# +# 1. Coordinated Universal Time (UTC) is often referred to +# as Greenwich Mean Time (GMT). The GMT time scale is no +# longer used, and the use of GMT to designate UTC is +# discouraged. +# +# 2. The UTC time scale is realized by many national +# laboratories and timing centers. Each laboratory +# identifies its realization with its name: Thus +# UTC(NIST), UTC(USNO), etc. The differences among +# these different realizations are typically on the +# order of a few nanoseconds (i.e., 0.000 000 00x s) +# and can be ignored for many purposes. These differences +# are tabulated in Circular T, which is published monthly +# by the International Bureau of Weights and Measures +# (BIPM). See www.bipm.fr for more information. +# +# 3. The current defintion of the relationship between UTC +# and TAI dates from 1 January 1972. A number of different +# time scales were in use before than epoch, and it can be +# quite difficult to compute precise timestamps and time +# intervals in those "prehistoric" days. For more information, +# consult: +# +# The Explanatory Supplement to the Astronomical +# Ephemeris. +# or +# Terry Quinn, "The BIPM and the Accurate Measurement +# of Time," Proc. of the IEEE, Vol. 79, pp. 894-905, +# July, 1991. +# +# 4. The insertion of leap seconds into UTC is currently the +# responsibility of the International Earth Rotation Service, +# which is located at the Paris Observatory: +# +# Central Bureau of IERS +# 61, Avenue de l'Observatoire +# 75014 Paris, France. +# +# Leap seconds are announced by the IERS in its Bulletin C +# +# See hpiers.obspm.fr or www.iers.org for more details. +# +# All national laboratories and timing centers use the +# data from the BIPM and the IERS to construct their +# local realizations of UTC. +# +# Although the definition also includes the possibility +# of dropping seconds ("negative" leap seconds), this has +# never been done and is unlikely to be necessary in the +# foreseeable future. +# +# 5. If your system keeps time as the number of seconds since +# some epoch (e.g., NTP timestamps), then the algorithm for +# assigning a UTC time stamp to an event that happens during a positive +# leap second is not well defined. The official name of that leap +# second is 23:59:60, but there is no way of representing that time +# in these systems. +# Many systems of this type effectively stop the system clock for +# one second during the leap second and use a time that is equivalent +# to 23:59:59 UTC twice. For these systems, the corresponding TAI +# timestamp would be obtained by advancing to the next entry in the +# following table when the time equivalent to 23:59:59 UTC +# is used for the second time. Thus the leap second which +# occurred on 30 June 1972 at 23:59:59 UTC would have TAI +# timestamps computed as follows: +# +# ... +# 30 June 1972 23:59:59 (2287785599, first time): TAI= UTC + 10 seconds +# 30 June 1972 23:59:60 (2287785599,second time): TAI= UTC + 11 seconds +# 1 July 1972 00:00:00 (2287785600) TAI= UTC + 11 seconds +# ... +# +# If your system realizes the leap second by repeating 00:00:00 UTC twice +# (this is possible but not usual), then the advance to the next entry +# in the table must occur the second time that a time equivlent to +# 00:00:00 UTC is used. Thus, using the same example as above: +# +# ... +# 30 June 1972 23:59:59 (2287785599): TAI= UTC + 10 seconds +# 30 June 1972 23:59:60 (2287785600, first time): TAI= UTC + 10 seconds +# 1 July 1972 00:00:00 (2287785600,second time): TAI= UTC + 11 seconds +# ... +# +# in both cases the use of timestamps based on TAI produces a smooth +# time scale with no discontinuity in the time interval. +# +# This complexity would not be needed for negative leap seconds (if they +# are ever used). The UTC time would skip 23:59:59 and advance from +# 23:59:58 to 00:00:00 in that case. The TAI offset would decrease by +# 1 second at the same instant. This is a much easier situation to deal +# with, since the difficulty of unambiguously representing the epoch +# during the leap second does not arise. +# +# Questions or comments to: +# Jeff Prillaman +# Time Service Department +# US Naval Observatory +# Washington, DC +# jeffrey.prillaman@usno.navy.mil +# +# Last Update of leap second values: 31 Dec 2015 +# +# The following line shows this last update date in NTP timestamp +# format. This is the date on which the most recent change to +# the leap second data was added to the file. This line can +# be identified by the unique pair of characters in the first two +# columns as shown below. +# +#$ 3660508800 +# +# The data in this file will be updated periodically as new leap +# seconds are announced. In addition to being entered on the line +# above, the update time (in NTP format) will be added to the basic +# file name leap-seconds to form the name leap-seconds.. +# In addition, the generic name leap-seconds.list will always point to +# the most recent version of the file. +# +# This update procedure will be performed only when a new leap second +# is announced. +# +# The following entry specifies the expiration date of the data +# in this file in units of seconds since 1900.0. This expiration date +# will be changed at least twice per year whether or not a new leap +# second is announced. These semi-annual changes will be made no +# later than 1 June and 1 December of each year to indicate what +# action (if any) is to be taken on 30 June and 31 December, +# respectively. (These are the customary effective dates for new +# leap seconds.) This expiration date will be identified by a +# unique pair of characters in columns 1 and 2 as shown below. +# In the unlikely event that a leap second is announced with an +# effective date other than 30 June or 31 December, then this +# file will be edited to include that leap second as soon as it is +# announced or at least one month before the effective date +# (whichever is later). +# If an announcement by the IERS specifies that no leap second is +# scheduled, then only the expiration date of the file will +# be advanced to show that the information in the file is still +# current -- the update time stamp, the data and the name of the file +# will not change. +# +# Updated through IERS Bulletin C 50 +# File expires on: 1 Jun 2016 +# +#@ 3673728000 +# +2272060800 10 # 1 Jan 1972 +2287785600 11 # 1 Jul 1972 +2303683200 12 # 1 Jan 1973 +2335219200 13 # 1 Jan 1974 +2366755200 14 # 1 Jan 1975 +2398291200 15 # 1 Jan 1976 +2429913600 16 # 1 Jan 1977 +2461449600 17 # 1 Jan 1978 +2492985600 18 # 1 Jan 1979 +2524521600 19 # 1 Jan 1980 +2571782400 20 # 1 Jul 1981 +2603318400 21 # 1 Jul 1982 +2634854400 22 # 1 Jul 1983 +2698012800 23 # 1 Jul 1985 +2776982400 24 # 1 Jan 1988 +2840140800 25 # 1 Jan 1990 +2871676800 26 # 1 Jan 1991 +2918937600 27 # 1 Jul 1992 +2950473600 28 # 1 Jul 1993 +2982009600 29 # 1 Jul 1994 +3029443200 30 # 1 Jan 1996 +3076704000 31 # 1 Jul 1997 +3124137600 32 # 1 Jan 1999 +3345062400 33 # 1 Jan 2006 +3439756800 34 # 1 Jan 2009 +3550089600 35 # 1 Jul 2012 +3644697600 36 # 1 Jul 2015 +# +# the following special comment contains the +# hash value of the data in this file computed +# use the secure hash algorithm as specified +# by FIPS 180-1. See the files in ~/sha for +# the details of how this hash value is +# computed. Note that the hash computation +# ignores comments and whitespace characters +# in data lines. It includes the NTP values +# of both the last modification time and the +# expiration time of the file, but not the +# white space on those lines. +# the hash line is also ignored in the +# computation. +# +#h 44a44c49 35b22601 a9c7054c 8c56cf57 9b6f6ed5 # -#h 620ba8af 37900668 95ac09ba d77640f9 6fd75493 From owner-svn-src-all@freebsd.org Fri Jan 1 12:35:34 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65E69A56A6B; Fri, 1 Jan 2016 12:35:34 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2C6881ADE; Fri, 1 Jan 2016 12:35:34 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u01CZX5A031618; Fri, 1 Jan 2016 12:35:33 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u01CZXDZ031617; Fri, 1 Jan 2016 12:35:33 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <201601011235.u01CZXDZ031617@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Fri, 1 Jan 2016 12:35:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293038 - head/sys/netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 12:35:34 -0000 Author: melifaro Date: Fri Jan 1 12:35:33 2016 New Revision: 293038 URL: https://svnweb.freebsd.org/changeset/base/293038 Log: Use lltable_get_ifp() instead of direct access to lltable fields. Modified: head/sys/netinet6/nd6_nbr.c Modified: head/sys/netinet6/nd6_nbr.c ============================================================================== --- head/sys/netinet6/nd6_nbr.c Fri Jan 1 11:57:32 2016 (r293037) +++ head/sys/netinet6/nd6_nbr.c Fri Jan 1 12:35:33 2016 (r293038) @@ -877,6 +877,7 @@ nd6_na_input(struct mbuf *m, int off, in */ struct nd_defrouter *dr; struct in6_addr *in6; + struct ifnet *nd6_ifp; in6 = &ln->r_l3addr.addr6; @@ -886,10 +887,11 @@ nd6_na_input(struct mbuf *m, int off, in * is only called under the network software interrupt * context. However, we keep it just for safety. */ - dr = defrouter_lookup(in6, ln->lle_tbl->llt_ifp); + nd6_ifp = lltable_get_ifp(ln->lle_tbl); + dr = defrouter_lookup(in6, nd6_ifp); if (dr) defrtrlist_del(dr); - else if (ND_IFINFO(ln->lle_tbl->llt_ifp)->flags & + else if (ND_IFINFO(nd6_ifp)->flags & ND6_IFF_ACCEPT_RTADV) { /* * Even if the neighbor is not in the default From owner-svn-src-all@freebsd.org Fri Jan 1 12:45:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A2030A56D74; Fri, 1 Jan 2016 12:45:00 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (heidi.turbocat.net [88.198.202.214]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6BB791F2B; Fri, 1 Jan 2016 12:44:59 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 9E1C31FE024; Fri, 1 Jan 2016 13:44:50 +0100 (CET) Subject: Re: svn commit: r292987 - in head/sys/compat/linuxkpi/common: include/linux src To: "Bjoern A. Zeeb" References: <201512311230.tBVCUJB7094023@repo.freebsd.org> <1F2A43B0-6A36-4C8C-B09C-5BA66B3BFE6C@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Hans Petter Selasky Message-ID: <56867540.9020003@selasky.org> Date: Fri, 1 Jan 2016 13:46:56 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <1F2A43B0-6A36-4C8C-B09C-5BA66B3BFE6C@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 12:45:00 -0000 On 12/31/15 19:15, Bjoern A. Zeeb wrote: > >> On 31 Dec 2015, at 12:30 , Hans Petter Selasky wrote: >> >> Author: hselasky >> Date: Thu Dec 31 12:30:19 2015 >> New Revision: 292987 >> URL: https://svnweb.freebsd.org/changeset/base/292987 >> >> Log: >> Minor LinuxKPI code cleanup: >> - Declare some static functions in linux_compat.c instead if inside >> various header files. >> - Prefix FreeBSD local functions in the LinuxKPI with "linux_" to >> avoid symbol name conflicts in the future and to make debugging >> easier. >> - Make the "struct kobj_ktype" declaractions constant to shave off a >> few bytes from the data segment. >> >> MFC after: 1 week >> Sponsored by: Mellanox Technologies >> >> Modified: >> head/sys/compat/linuxkpi/common/include/linux/cdev.h >> head/sys/compat/linuxkpi/common/include/linux/device.h >> head/sys/compat/linuxkpi/common/include/linux/kobject.h >> head/sys/compat/linuxkpi/common/include/linux/miscdevice.h >> head/sys/compat/linuxkpi/common/src/linux_compat.c >> head/sys/compat/linuxkpi/common/src/linux_pci.c > > > I can only guess if it was this commit? This is i386.LINT* erroring (but there might be other kernels as well; don’t know yet): > I'll check it out. Did you build from clean? --HPS From owner-svn-src-all@freebsd.org Fri Jan 1 12:55:36 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1D4FDA5D0B7; Fri, 1 Jan 2016 12:55:36 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (mail.turbocat.net [IPv6:2a01:4f8:d16:4514::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DE3E31395; Fri, 1 Jan 2016 12:55:35 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 950DD1FE024; Fri, 1 Jan 2016 13:55:32 +0100 (CET) Subject: Re: svn commit: r292987 - in head/sys/compat/linuxkpi/common: include/linux src To: "Bjoern A. Zeeb" References: <201512311230.tBVCUJB7094023@repo.freebsd.org> <1F2A43B0-6A36-4C8C-B09C-5BA66B3BFE6C@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Hans Petter Selasky Message-ID: <568677C2.3040907@selasky.org> Date: Fri, 1 Jan 2016 13:57:38 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <1F2A43B0-6A36-4C8C-B09C-5BA66B3BFE6C@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 12:55:36 -0000 On 12/31/15 19:15, Bjoern A. Zeeb wrote: > >> On 31 Dec 2015, at 12:30 , Hans Petter Selasky wrote: >> >> Author: hselasky >> Date: Thu Dec 31 12:30:19 2015 >> New Revision: 292987 >> URL: https://svnweb.freebsd.org/changeset/base/292987 >> >> Log: >> Minor LinuxKPI code cleanup: >> - Declare some static functions in linux_compat.c instead if inside >> various header files. >> - Prefix FreeBSD local functions in the LinuxKPI with "linux_" to >> avoid symbol name conflicts in the future and to make debugging >> easier. >> - Make the "struct kobj_ktype" declaractions constant to shave off a >> few bytes from the data segment. >> >> MFC after: 1 week >> Sponsored by: Mellanox Technologies >> >> Modified: >> head/sys/compat/linuxkpi/common/include/linux/cdev.h >> head/sys/compat/linuxkpi/common/include/linux/device.h >> head/sys/compat/linuxkpi/common/include/linux/kobject.h >> head/sys/compat/linuxkpi/common/include/linux/miscdevice.h >> head/sys/compat/linuxkpi/common/src/linux_compat.c >> head/sys/compat/linuxkpi/common/src/linux_pci.c > > > I can only guess if it was this commit? This is i386.LINT* erroring (but there might be other kernels as well; don’t know yet): > Hi, There are currently missing dependency rules, which is due to a lack in the "config" utility, for the infiniband code, so you'll need to clean your already compiled objects manually, and the compile errors will go away I think. I'll double check my LINT builds locally and come back to you if it is a real issue. --HPS From owner-svn-src-all@freebsd.org Fri Jan 1 15:17:25 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CE140A5E7BE; Fri, 1 Jan 2016 15:17:25 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 977D61328; Fri, 1 Jan 2016 15:17:25 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u01FHOcr079301; Fri, 1 Jan 2016 15:17:24 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u01FHOCo079299; Fri, 1 Jan 2016 15:17:24 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201601011517.u01FHOCo079299@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Fri, 1 Jan 2016 15:17:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293039 - in head/sys/dev: sec tsec X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 15:17:25 -0000 Author: jhibbits Date: Fri Jan 1 15:17:24 2016 New Revision: 293039 URL: https://svnweb.freebsd.org/changeset/base/293039 Log: Fix a couple printf formats. This was found when working on 64-bit PowerPC book-e support. Modified: head/sys/dev/sec/sec.c head/sys/dev/tsec/if_tsec.c Modified: head/sys/dev/sec/sec.c ============================================================================== --- head/sys/dev/sec/sec.c Fri Jan 1 12:35:33 2016 (r293038) +++ head/sys/dev/sec/sec.c Fri Jan 1 15:17:24 2016 (r293039) @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -235,7 +236,7 @@ sec_probe(device_t dev) sc->sc_version = 3; break; default: - device_printf(dev, "unknown SEC ID 0x%016llx!\n", id); + device_printf(dev, "unknown SEC ID 0x%16"PRIx64"!\n", id); return (ENXIO); } Modified: head/sys/dev/tsec/if_tsec.c ============================================================================== --- head/sys/dev/tsec/if_tsec.c Fri Jan 1 12:35:33 2016 (r293038) +++ head/sys/dev/tsec/if_tsec.c Fri Jan 1 15:17:24 2016 (r293039) @@ -561,7 +561,7 @@ tsec_set_mac_address(struct tsec_softc * TSEC_GLOBAL_LOCK_ASSERT(sc); KASSERT((ETHER_ADDR_LEN <= sizeof(macbuf)), - ("tsec_set_mac_address: (%d <= %d", ETHER_ADDR_LEN, + ("tsec_set_mac_address: (%d <= %zd", ETHER_ADDR_LEN, sizeof(macbuf))); macbufp = (char *)macbuf; From owner-svn-src-all@freebsd.org Fri Jan 1 15:30:13 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2056FA5EAE6; Fri, 1 Jan 2016 15:30:13 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EB1F91D35; Fri, 1 Jan 2016 15:30:12 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u01FUBsr082326; Fri, 1 Jan 2016 15:30:11 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u01FUBSK082324; Fri, 1 Jan 2016 15:30:11 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201601011530.u01FUBSK082324@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 1 Jan 2016 15:30:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293040 - in head: lib/libstand sys/boot/libstand32 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 15:30:13 -0000 Author: emaste Date: Fri Jan 1 15:30:11 2016 New Revision: 293040 URL: https://svnweb.freebsd.org/changeset/base/293040 Log: Reduce libstand Makefile duplication libstand is built in three places (lib/libstand, sys/boot/libstand32, and sys/boot/userboot/libstand). Reduce Makefile duplication by .including libstand/Makefile from sys/boot/libstand32/Makefile. sys/boot/userboot/libstand/Makefile will be addressed later, as it contains additional differences yet to be handled. This change also switches libstand32 to use the new uuid_from_string and uuid_to_string, which was not included in r292473. Reviewed by: jhb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D4747 Modified: head/lib/libstand/Makefile head/sys/boot/libstand32/Makefile Modified: head/lib/libstand/Makefile ============================================================================== --- head/lib/libstand/Makefile Fri Jan 1 15:17:24 2016 (r293039) +++ head/lib/libstand/Makefile Fri Jan 1 15:30:11 2016 (r293040) @@ -11,13 +11,14 @@ MK_SSP= no .include -LIBSTAND_SRC= ${.CURDIR} +LIBSTAND_SRC?= ${.CURDIR} +LIBSTAND_CPUARCH?=${MACHINE_CPUARCH} LIBC_SRC= ${LIBSTAND_SRC}/../libc LIB= stand NO_PIC= INCS= stand.h -MAN= libstand.3 +MAN?= libstand.3 WARNS?= 0 @@ -78,7 +79,7 @@ SRCS+= syncicache.c SRCS+= uuid_create_nil.c uuid_equal.c uuid_from_string.c uuid_is_nil.c uuid_to_string.c # _setjmp/_longjmp -.PATH: ${LIBSTAND_SRC}/${MACHINE_CPUARCH} +.PATH: ${LIBSTAND_SRC}/${LIBSTAND_CPUARCH} SRCS+= _setjmp.S # decompression functionality from libbz2 Modified: head/sys/boot/libstand32/Makefile ============================================================================== --- head/sys/boot/libstand32/Makefile Fri Jan 1 15:17:24 2016 (r293039) +++ head/sys/boot/libstand32/Makefile Fri Jan 1 15:30:11 2016 (r293040) @@ -1,151 +1,23 @@ # $FreeBSD$ -# Originally from $NetBSD: Makefile,v 1.21 1997/10/26 22:08:38 lukem Exp $ -# -# Notes: -# - We don't use the libc strerror/sys_errlist because the string table is -# quite large. -# - -MAN= .include -MK_SSP= no LIBSTAND_SRC= ${.CURDIR}/../../../lib/libstand -LIBC_SRC= ${LIBSTAND_SRC}/../libc - -.PATH: ${LIBSTAND_SRC} -LIB= stand -INTERNALLIB= -MK_PROFILE= no -NO_PIC= -.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "powerpc64" -CFLAGS+= -m32 -I. -.endif - -WARNS?= 0 - -# standalone components and stuff we have modified locally -SRCS+= gzguts.h zutil.h __main.c assert.c bcd.c bswap.c environment.c getopt.c gets.c \ - globals.c pager.c printf.c strdup.c strerror.c strtol.c strtoul.c random.c \ - sbrk.c twiddle.c zalloc.c zalloc_malloc.c - -# private (pruned) versions of libc string functions -SRCS+= strcasecmp.c - -.PATH: ${LIBC_SRC}/net - -SRCS+= ntoh.c - -# string functions from libc -.PATH: ${LIBC_SRC}/string -SRCS+= bcmp.c bcopy.c bzero.c ffs.c memccpy.c memchr.c memcmp.c memcpy.c \ - memmove.c memset.c qdivrem.c strcat.c strchr.c strcmp.c strcpy.c \ - strcspn.c strlcat.c strlcpy.c strlen.c strncat.c strncmp.c strncpy.c \ - strpbrk.c strrchr.c strsep.c strspn.c strstr.c strtok.c swab.c -.if ${MACHINE_CPUARCH} == "arm" -.PATH: ${LIBC_SRC}/arm/gen - -# Compiler support functions -.PATH: ${LIBSTAND_SRC}/../../contrib/compiler-rt/lib/builtins/ -# __clzsi2 and ctzsi2 for various builtin functions -SRCS+= clzsi2.c ctzsi2.c -# Divide and modulus functions called by the compiler -SRCS+= divmoddi4.c divmodsi4.c divdi3.c divsi3.c moddi3.c modsi3.c -SRCS+= udivmoddi4.c udivmodsi4.c udivdi3.c udivsi3.c umoddi3.c umodsi3.c - -.PATH: ${LIBSTAND_SRC}/../../contrib/compiler-rt/lib/builtins/arm/ -SRCS+= aeabi_idivmod.S aeabi_ldivmod.S aeabi_uidivmod.S aeabi_uldivmod.S -SRCS+= aeabi_memcmp.S aeabi_memcpy.S aeabi_memmove.S aeabi_memset.S - -.endif -.if ${MACHINE_CPUARCH} == "powerpc" -.PATH: ${LIBC_SRC}/quad -SRCS+= ashldi3.c ashrdi3.c -SRCS+= syncicache.c -.endif - -# uuid functions from libc -.PATH: ${LIBC_SRC}/uuid -SRCS+= uuid_equal.c uuid_is_nil.c - -# _setjmp/_longjmp .if ${MACHINE_CPUARCH} == "amd64" -.PATH: ${LIBSTAND_SRC}/i386 +LIBSTAND_CPUARCH=i386 .else -.PATH: ${LIBSTAND_SRC}/${MACHINE_CPUARCH} +LIBSTAND_CPUARCH=${MACHINE_CPUARCH} .endif -SRCS+= _setjmp.S - -# decompression functionality from libbz2 -# NOTE: to actually test this functionality after libbz2 upgrade compile -# loader(8) with LOADER_BZIP2_SUPPORT defined -.PATH: ${LIBSTAND_SRC}/../../contrib/bzip2 -CFLAGS+= -DBZ_NO_STDIO -DBZ_NO_COMPRESS -SRCS+= libstand_bzlib_private.h - -.for file in bzlib.c crctable.c decompress.c huffman.c randtable.c -SRCS+= _${file} -CLEANFILES+= _${file} - -_${file}: ${file} - sed "s|bzlib_private\.h|libstand_bzlib_private.h|" \ - ${.ALLSRC} > ${.TARGET} -.endfor - -CLEANFILES+= libstand_bzlib_private.h -libstand_bzlib_private.h: bzlib_private.h - sed -e 's||"stand.h"|' \ - ${.ALLSRC} > ${.TARGET} - -# decompression functionality from libz -.PATH: ${LIBSTAND_SRC}/../libz -CFLAGS+=-DHAVE_MEMCPY -I${LIBSTAND_SRC}/../libz -SRCS+= adler32.c crc32.c libstand_zutil.h libstand_gzguts.h - -.for file in infback.c inffast.c inflate.c inftrees.c zutil.c -SRCS+= _${file} -CLEANFILES+= _${file} - -_${file}: ${file} - sed -e "s|zutil\.h|libstand_zutil.h|" \ - -e "s|gzguts\.h|libstand_gzguts.h|" \ - ${.ALLSRC} > ${.TARGET} -.endfor - -# depend on stand.h being able to be included multiple times -.for file in zutil.h gzguts.h -CLEANFILES+= libstand_${file} -libstand_${file}: ${file} - sed -e 's||"stand.h"|' \ - -e 's||"stand.h"|' \ - -e 's||"stand.h"|' \ - -e 's||"stand.h"|' \ - -e 's||"stand.h"|' \ - ${.ALLSRC} > ${.TARGET} -.endfor - -# io routines -SRCS+= closeall.c dev.c ioctl.c nullfs.c stat.c \ - fstat.c close.c lseek.c open.c read.c write.c readdir.c - -# network routines -SRCS+= arp.c ether.c inet_ntoa.c in_cksum.c net.c udp.c netif.c rpc.c - -# network info services: -SRCS+= bootp.c rarp.c bootparam.c +LIBC_SRC= ${LIBSTAND_SRC}/../libc +INTERNALLIB= +MAN= +.PATH: ${LIBSTAND_SRC} -# boot filesystems -SRCS+= ufs.c nfs.c cd9660.c tftp.c gzipfs.c bzipfs.c -SRCS+= dosfs.c ext2fs.c -SRCS+= splitfs.c -SRCS+= pkgfs.c -.if ${MK_NAND} != "no" -SRCS+= nandfs.c +.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "powerpc64" +CFLAGS+= -m32 -I. .endif -.include -.include +.include "${LIBSTAND_SRC}/Makefile" .if ${MACHINE_CPUARCH} == "amd64" CLEANFILES+= machine From owner-svn-src-all@freebsd.org Fri Jan 1 15:36:58 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 33421A5EC91; Fri, 1 Jan 2016 15:36:58 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F20B410CD; Fri, 1 Jan 2016 15:36:57 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u01Fav8d085146; Fri, 1 Jan 2016 15:36:57 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u01Favhj085145; Fri, 1 Jan 2016 15:36:57 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201601011536.u01Favhj085145@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Fri, 1 Jan 2016 15:36:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293041 - head/sys/powerpc/mpc85xx X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 15:36:58 -0000 Author: jhibbits Date: Fri Jan 1 15:36:56 2016 New Revision: 293041 URL: https://svnweb.freebsd.org/changeset/base/293041 Log: Use uint32_t for LBC block size. LBC block size can only be up to 4GB. The existing code already clamps it, but mixes unsigned long and uint32_t. This works on 32-bit targets, but not 64-bit, so isn't completely correct. This fixes the type confusion. Modified: head/sys/powerpc/mpc85xx/lbc.c Modified: head/sys/powerpc/mpc85xx/lbc.c ============================================================================== --- head/sys/powerpc/mpc85xx/lbc.c Fri Jan 1 15:30:11 2016 (r293040) +++ head/sys/powerpc/mpc85xx/lbc.c Fri Jan 1 15:36:56 2016 (r293041) @@ -126,11 +126,11 @@ lbc_address_mask(uint32_t size) { int n = 15; - if (size == ~0UL) + if (size == ~0) return (0); while (n < 32) { - if (size == (1UL << n)) + if (size == (1U << n)) break; n++; } @@ -267,7 +267,7 @@ lbc_banks_map(struct lbc_softc *sc) static int lbc_banks_enable(struct lbc_softc *sc) { - u_long size; + uint32_t size; uint32_t regval; int error, i; From owner-svn-src-all@freebsd.org Fri Jan 1 15:48:49 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 74349A5EF55; Fri, 1 Jan 2016 15:48:49 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3B8821628; Fri, 1 Jan 2016 15:48:49 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u01FmmL6088141; Fri, 1 Jan 2016 15:48:48 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u01Fmm81088140; Fri, 1 Jan 2016 15:48:48 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201601011548.u01Fmm81088140@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 1 Jan 2016 15:48:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293042 - head/sys/fs/devfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 15:48:49 -0000 Author: kib Date: Fri Jan 1 15:48:48 2016 New Revision: 293042 URL: https://svnweb.freebsd.org/changeset/base/293042 Log: Minor style cleanup. Submitted by: bde MFC after: 1 week Modified: head/sys/fs/devfs/devfs_vnops.c Modified: head/sys/fs/devfs/devfs_vnops.c ============================================================================== --- head/sys/fs/devfs/devfs_vnops.c Fri Jan 1 15:36:56 2016 (r293041) +++ head/sys/fs/devfs/devfs_vnops.c Fri Jan 1 15:48:48 2016 (r293042) @@ -1147,7 +1147,7 @@ devfs_open(struct vop_open_args *ap) error = dsw->d_fdopen(dev, ap->a_mode, td, fp); else error = dsw->d_open(dev, ap->a_mode, S_IFCHR, td); - /* cleanup any cdevpriv upon error */ + /* Clean up any cdevpriv upon error. */ if (error != 0) devfs_clear_cdevpriv(); td->td_fpop = fpop; From owner-svn-src-all@freebsd.org Fri Jan 1 17:06:18 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4AC54A5DCC4; Fri, 1 Jan 2016 17:06:18 +0000 (UTC) (envelope-from jpaetzel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F21131542; Fri, 1 Jan 2016 17:06:17 +0000 (UTC) (envelope-from jpaetzel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u01H6HY5013412; Fri, 1 Jan 2016 17:06:17 GMT (envelope-from jpaetzel@FreeBSD.org) Received: (from jpaetzel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u01H6G9n013410; Fri, 1 Jan 2016 17:06:16 GMT (envelope-from jpaetzel@FreeBSD.org) Message-Id: <201601011706.u01H6G9n013410@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jpaetzel set sender to jpaetzel@FreeBSD.org using -f From: Josh Paetzel Date: Fri, 1 Jan 2016 17:06:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293043 - in head: sys/kgssapi usr.sbin/gssd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 17:06:18 -0000 Author: jpaetzel Date: Fri Jan 1 17:06:16 2016 New Revision: 293043 URL: https://svnweb.freebsd.org/changeset/base/293043 Log: Unset the gss kernel state when gssd exits When gssd exits it leaves the kernel state set by gssd_syscall(). nfsd sees this and waits endlessly in an unkillable state for gssd to come back. If you had acidentally started gssd then stopped it, then started nfsd you'd be in a bad way until you either restarted gssd or rebooted the system. This change fixes that by setting the kernel state to "" when gssd exits. Reviewed by: rmacklem MFC after: 1 week Sponsored by: iXsystems Modified: head/sys/kgssapi/gss_impl.c head/usr.sbin/gssd/gssd.c Modified: head/sys/kgssapi/gss_impl.c ============================================================================== --- head/sys/kgssapi/gss_impl.c Fri Jan 1 15:48:48 2016 (r293042) +++ head/sys/kgssapi/gss_impl.c Fri Jan 1 17:06:16 2016 (r293043) @@ -105,14 +105,17 @@ sys_gssd_syscall(struct thread *td, stru if (error) return (error); - sun.sun_family = AF_LOCAL; - strcpy(sun.sun_path, path); - sun.sun_len = SUN_LEN(&sun); - - nconf = getnetconfigent("local"); - cl = clnt_reconnect_create(nconf, - (struct sockaddr *) &sun, GSSD, GSSDVERS, - RPC_MAXDATASIZE, RPC_MAXDATASIZE); + if (path[0] != '\0') { + sun.sun_family = AF_LOCAL; + strcpy(sun.sun_path, path); + sun.sun_len = SUN_LEN(&sun); + + nconf = getnetconfigent("local"); + cl = clnt_reconnect_create(nconf, + (struct sockaddr *) &sun, GSSD, GSSDVERS, + RPC_MAXDATASIZE, RPC_MAXDATASIZE); + } else + cl = NULL; mtx_lock(&kgss_gssd_lock); oldcl = kgss_gssd_handle; Modified: head/usr.sbin/gssd/gssd.c ============================================================================== --- head/usr.sbin/gssd/gssd.c Fri Jan 1 15:48:48 2016 (r293042) +++ head/usr.sbin/gssd/gssd.c Fri Jan 1 17:06:16 2016 (r293043) @@ -254,6 +254,7 @@ main(int argc, char **argv) gssd_syscall(_PATH_GSSDSOCK); svc_run(); + gssd_syscall(""); return (0); } @@ -1285,6 +1286,7 @@ void gssd_terminate(int sig __unused) if (hostbased_initiator_cred != 0) unlink(GSSD_CREDENTIAL_CACHE_FILE); #endif + gssd_syscall(""); exit(0); } From owner-svn-src-all@freebsd.org Fri Jan 1 17:30:23 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 41F80A5E3D7; Fri, 1 Jan 2016 17:30:23 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-yk0-f171.google.com (mail-yk0-f171.google.com [209.85.160.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0DB44133C; Fri, 1 Jan 2016 17:30:22 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-yk0-f171.google.com with SMTP id x67so199735518ykd.2; Fri, 01 Jan 2016 09:30:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=XksIpdFWjfs5TOtXdg/XnTPFQBJzz9G8lTwfFoZh2HQ=; b=jg+SJ8k8PbHszOnjQ4J5XLvftAiHAnBftmRDysQQwnKgn2POu70aOBIjQna9RJi6JJ P6J4zH5O/WYsicaTcxCC52LEQHXYftxdrgp80+9UL4sc7UwgPRaHQHRNN2cMGqCl28uy v7eK5dM7YDbC1zUDlX27Ex82R/cBIl7GkYrSrmEEEgZh1eAqwCbsUgkv84BfB5/wvhuH 5Et0g/kkJSTK3i9pyszuf+bO1GyjaHTwJHuSQpIE7VnV5G01Zr8Ajo7yYICqVc3/GhOM Tu+WXhSipD0V7lBnPt34g8BQXs43Rwn9i+mlluD+6tSpslSKN98b3L3cGst5CcZ2w8/s SGeQ== X-Received: by 10.129.116.213 with SMTP id p204mr47047110ywc.322.1451668978472; Fri, 01 Jan 2016 09:22:58 -0800 (PST) Received: from mail-yk0-f178.google.com (mail-yk0-f178.google.com. [209.85.160.178]) by smtp.gmail.com with ESMTPSA id g66sm65588698ywd.56.2016.01.01.09.22.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 01 Jan 2016 09:22:58 -0800 (PST) Received: by mail-yk0-f178.google.com with SMTP id a85so123257870ykb.1; Fri, 01 Jan 2016 09:22:57 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.13.232.83 with SMTP id r80mr54889036ywe.237.1451668977733; Fri, 01 Jan 2016 09:22:57 -0800 (PST) Reply-To: cem@FreeBSD.org Received: by 10.37.4.69 with HTTP; Fri, 1 Jan 2016 09:22:57 -0800 (PST) In-Reply-To: <201601011517.u01FHOCo079299@repo.freebsd.org> References: <201601011517.u01FHOCo079299@repo.freebsd.org> Date: Fri, 1 Jan 2016 09:22:57 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r293039 - in head/sys/dev: sec tsec From: Conrad Meyer To: Justin Hibbits Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 17:30:23 -0000 On Fri, Jan 1, 2016 at 7:17 AM, Justin Hibbits wrote: > Author: jhibbits > Date: Fri Jan 1 15:17:24 2016 > New Revision: 293039 > URL: https://svnweb.freebsd.org/changeset/base/293039 > > Log: > Fix a couple printf formats. > > ... > @@ -235,7 +236,7 @@ sec_probe(device_t dev) > sc->sc_version = 3; > break; > default: > - device_printf(dev, "unknown SEC ID 0x%016llx!\n", id); > + device_printf(dev, "unknown SEC ID 0x%16"PRIx64"!\n", id); > return (ENXIO); > } Hi, The 0 got dropped, which makes this a slightly different format. The zero is ignored if a precision is given, but the 16 in the format string represents a field width. (Either "%016" or "%.16" should print the same as the original, I think.) Best, Conrad From owner-svn-src-all@freebsd.org Fri Jan 1 17:56:53 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 44534A5ECD4; Fri, 1 Jan 2016 17:56:53 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 151161C95; Fri, 1 Jan 2016 17:56:53 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u01Huq7j029845; Fri, 1 Jan 2016 17:56:52 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u01Huq4R029844; Fri, 1 Jan 2016 17:56:52 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201601011756.u01Huq4R029844@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Fri, 1 Jan 2016 17:56:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293044 - head/sys/dev/sec X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 17:56:53 -0000 Author: jhibbits Date: Fri Jan 1 17:56:52 2016 New Revision: 293044 URL: https://svnweb.freebsd.org/changeset/base/293044 Log: Accidentally dropped the 0 padding. Pointed out by: cmeyer Modified: head/sys/dev/sec/sec.c Modified: head/sys/dev/sec/sec.c ============================================================================== --- head/sys/dev/sec/sec.c Fri Jan 1 17:06:16 2016 (r293043) +++ head/sys/dev/sec/sec.c Fri Jan 1 17:56:52 2016 (r293044) @@ -236,7 +236,7 @@ sec_probe(device_t dev) sc->sc_version = 3; break; default: - device_printf(dev, "unknown SEC ID 0x%16"PRIx64"!\n", id); + device_printf(dev, "unknown SEC ID 0x%016"PRIx64"!\n", id); return (ENXIO); } From owner-svn-src-all@freebsd.org Fri Jan 1 18:01:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E1A9A5EE71; Fri, 1 Jan 2016 18:01:32 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-ob0-x22e.google.com (mail-ob0-x22e.google.com [IPv6:2607:f8b0:4003:c01::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0318D1EE5; Fri, 1 Jan 2016 18:01:31 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: by mail-ob0-x22e.google.com with SMTP id 18so305439140obc.2; Fri, 01 Jan 2016 10:01:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=GHyWbIHLGphJR/DF7lTMa7Fgv27HhnelvfSqCNG0yl8=; b=OuBey12+nmzVgGWG6V3sn4e19Ou+YLZDK35GllY0cxVPPAusmYNmpOE4WXoVSO/qSd x74VMPw/kKJLUaarpOQfjhexgZ+Txzt9X4i0qzGaI594p8Ae8ez/cF1HZ+0zrfdfsrjE fAsjbEtCHzje0MXjjC9ITE+52ux5/zmlrV0lACedz2QbrObLxCilQQI2qHicOpHBSSmc wwAGMLDNibH5bSdT99vg9FpN52ES8tNj7OGHzU1HcsUvH5H0IyrQYktBJ0sMJb8YT2ak 6rM3ynJIqwZGvGfnmdGAHJv1dlz38n6GxpXXNY1L2PjAO9sZiLfM0UVmW2BQ1b5th73U 8XFQ== MIME-Version: 1.0 X-Received: by 10.182.241.3 with SMTP id we3mr49200674obc.82.1451671290971; Fri, 01 Jan 2016 10:01:30 -0800 (PST) Sender: chmeeedalf@gmail.com Received: by 10.182.184.84 with HTTP; Fri, 1 Jan 2016 10:01:30 -0800 (PST) Received: by 10.182.184.84 with HTTP; Fri, 1 Jan 2016 10:01:30 -0800 (PST) In-Reply-To: References: <201601011517.u01FHOCo079299@repo.freebsd.org> Date: Fri, 1 Jan 2016 12:01:30 -0600 X-Google-Sender-Auth: bIF_r44WGaPCC6Hbp9ANz0bbNDo Message-ID: Subject: Re: svn commit: r293039 - in head/sys/dev: sec tsec From: Justin Hibbits To: cem@freebsd.org Cc: src-committers , svn-src-head@freebsd.org, svn-src-all@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 18:01:32 -0000 On Jan 1, 2016 11:30, "Conrad Meyer" wrote: > > On Fri, Jan 1, 2016 at 7:17 AM, Justin Hibbits wrote: > > Author: jhibbits > > Date: Fri Jan 1 15:17:24 2016 > > New Revision: 293039 > > URL: https://svnweb.freebsd.org/changeset/base/293039 > > > > Log: > > Fix a couple printf formats. > > > > ... > > @@ -235,7 +236,7 @@ sec_probe(device_t dev) > > sc->sc_version = 3; > > break; > > default: > > - device_printf(dev, "unknown SEC ID 0x%016llx!\n", id); > > + device_printf(dev, "unknown SEC ID 0x%16"PRIx64"!\n", id); > > return (ENXIO); > > } > > Hi, > > The 0 got dropped, which makes this a slightly different format. The > zero is ignored if a precision is given, but the 16 in the format > string represents a field width. (Either "%016" or "%.16" should > print the same as the original, I think.) > > Best, > Conrad Oops, fixed in r293044. Thanks! -Justin From owner-svn-src-all@freebsd.org Fri Jan 1 19:01:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8F19A5EE00; Fri, 1 Jan 2016 19:01:43 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-ob0-x231.google.com (mail-ob0-x231.google.com [IPv6:2607:f8b0:4003:c01::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8334815F3; Fri, 1 Jan 2016 19:01:43 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: by mail-ob0-x231.google.com with SMTP id wp13so78111550obc.1; Fri, 01 Jan 2016 11:01:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:content-type; bh=DDYTBpgqCa2qqwEfzwh4lXs4YQqrvP1NwQwJ2nNliTQ=; b=g5N5o6qzZXSFbe5mlnPxjA76FTzcK9xXZqFGTT3kPjsiQIeAQwy6fXiQe4gB/VeE2d y3iXxRpXK6tGQ4tRW/8N0m+yATFCwXsToJnCh/RDIjbYVbhWVf8HBAq/5RP4Y5VwfmdN R5AWGvd4Op1Yp5veiexQyb4rep+TrApIl3LFC0xr5O3vVLaP9BPD84KUP0gKg18Vtjzn 4Tppd+iutarF4/bcvOrICSBWnTbACEzu9do7j3yVwTEF7GoXkIWvx8K77raGidIs2Gvr 8In5IB/2+NHCyRCQPsD5k41tPO+gTV9GrD7a/y4weJAD8+sYaPcAxc6WIHlP/Wmes4nM g5EQ== MIME-Version: 1.0 X-Received: by 10.182.120.101 with SMTP id lb5mr37181543obb.37.1451674902735; Fri, 01 Jan 2016 11:01:42 -0800 (PST) Sender: chmeeedalf@gmail.com Received: by 10.182.184.84 with HTTP; Fri, 1 Jan 2016 11:01:42 -0800 (PST) In-Reply-To: <201601011756.u01Huq4R029844@repo.freebsd.org> References: <201601011756.u01Huq4R029844@repo.freebsd.org> Date: Fri, 1 Jan 2016 13:01:42 -0600 X-Google-Sender-Auth: MHO0NY1C8B3VbfsrZZ32DvSlLq4 Message-ID: Subject: Re: svn commit: r293044 - head/sys/dev/sec From: Justin Hibbits To: src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 19:01:43 -0000 On Fri, Jan 1, 2016 at 11:56 AM, Justin Hibbits wrote: > Author: jhibbits > Date: Fri Jan 1 17:56:52 2016 > New Revision: 293044 > URL: https://svnweb.freebsd.org/changeset/base/293044 > > Log: > Accidentally dropped the 0 padding. > > Pointed out by: cmeyer That should be cem. - Justin From owner-svn-src-all@freebsd.org Fri Jan 1 21:50:50 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23F9EA5EDFF; Fri, 1 Jan 2016 21:50:50 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 049E51F89; Fri, 1 Jan 2016 21:50:50 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 531F4B980; Fri, 1 Jan 2016 16:50:48 -0500 (EST) From: John Baldwin To: Adrian Chadd Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r293022 - head/sys/net80211 Date: Fri, 01 Jan 2016 11:50:55 -0800 Message-ID: <5919271.R3YaC4QkYh@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.2-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <201601010021.u010L7sW006625@repo.freebsd.org> References: <201601010021.u010L7sW006625@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Fri, 01 Jan 2016 16:50:48 -0500 (EST) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jan 2016 21:50:50 -0000 On Friday, January 01, 2016 12:21:07 AM Adrian Chadd wrote: > Author: adrian > Date: Fri Jan 1 00:21:07 2016 > New Revision: 293022 > URL: https://svnweb.freebsd.org/changeset/base/293022 > > Log: > [net80211] document the (not completely complete) set of places where > we're assuming hz=1000 and not gracefully handling when it isn't. > > The math involved will return 0 for hz < 1000, which it is on some > platforms and on DragonflyBSD. > > This doesn't fix it, it: > > * converts one manual use over to use the macro, and > * comments where it needs some thought/fixing. > > I'll think about this a bit more before fixing it. > > Submitted by: imre@vdsz.com > > Modified: > head/sys/net80211/ieee80211_freebsd.h > head/sys/net80211/ieee80211_scan_sw.c > head/sys/net80211/ieee80211_var.h > > Modified: head/sys/net80211/ieee80211_scan_sw.c > ============================================================================== > --- head/sys/net80211/ieee80211_scan_sw.c Fri Jan 1 00:16:54 2016 (r293021) > +++ head/sys/net80211/ieee80211_scan_sw.c Fri Jan 1 00:21:07 2016 (r293022) > @@ -641,7 +641,7 @@ scan_task(void *arg, int pending) > * XXX Should use M_TXCB mechanism to eliminate this. > */ > cv_timedwait(&SCAN_PRIVATE(ss)->ss_scan_cv, > - IEEE80211_LOCK_OBJ(ic), hz / 1000); > + IEEE80211_LOCK_OBJ(ic), msecs_to_ticks(1)); It would be better to use SBT_1MS instead with cv_timedwait_sbt(). Especially if the 1 ms is fuzzy you can specify "how" fuzzy it is to permit coalescing of timer interrupts to reduce power usage. This would seem to be especially useful for 802.11 since it is commonly used in devices for which power usage is more impactful. -- John Baldwin From owner-svn-src-all@freebsd.org Sat Jan 2 02:53:51 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06C74A5D0A2; Sat, 2 Jan 2016 02:53:51 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D7B6C1617; Sat, 2 Jan 2016 02:53:50 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u022ro44085765; Sat, 2 Jan 2016 02:53:50 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u022rmn7085754; Sat, 2 Jan 2016 02:53:48 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601020253.u022rmn7085754@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 2 Jan 2016 02:53:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293045 - in head/sys: amd64/amd64 arm/arm arm/xscale/ixp425 arm64/arm64 boot i386/i386 kern mips/beri powerpc/powerpc sparc64/sparc64 x86/xen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 02:53:51 -0000 Author: ian Date: Sat Jan 2 02:53:48 2016 New Revision: 293045 URL: https://svnweb.freebsd.org/changeset/base/293045 Log: Make the 'env' directive described in config(5) work on all architectures, providing compiled-in static environment data that is used instead of any data passed in from a boot loader. Previously 'env' worked only on i386 and arm xscale systems, because it required the MD startup code to examine the global envmode variable and decide whether to use static_env or an environment obtained from the boot loader, and set the global kern_envp accordingly. Most startup code wasn't doing so. Making things even more complex, some mips startup code uses an alternate scheme that involves calling init_static_kenv() to pass an empty buffer and its size, then uses a series of kern_setenv() calls to populate that buffer. Now all MD startup code calls init_static_kenv(), and that routine provides a single point where envmode is checked and the decision is made whether to use the compiled-in static_kenv or the values provided by the MD code. The routine also continues to serve its original purpose for mips; if a non-zero buffer size is passed the routine installs the empty buffer ready to accept kern_setenv() values. Now if the size is zero, the provided buffer full of existing env data is installed. A NULL pointer can be passed if the boot loader provides no env data; this allows the static env to be installed if envmode is set to do so. Most of the work here is a near-mechanical change to call the init function instead of directly setting kern_envp. A notable exception is in xen/pv.c; that code was originally installing a buffer full of preformatted env data along with its non-zero size (like mips code does), which would have allowed kern_setenv() calls to wipe out the preformatted data. Now it passes a zero for the size so that the buffer of data it installs is treated as non-writeable. Modified: head/sys/amd64/amd64/machdep.c head/sys/arm/arm/machdep.c head/sys/arm/xscale/ixp425/avila_machdep.c head/sys/arm64/arm64/machdep.c head/sys/boot/Makefile.arm head/sys/i386/i386/machdep.c head/sys/kern/kern_environment.c head/sys/mips/beri/beri_machdep.c head/sys/powerpc/powerpc/machdep.c head/sys/sparc64/sparc64/machdep.c head/sys/x86/xen/pv.c Modified: head/sys/amd64/amd64/machdep.c ============================================================================== --- head/sys/amd64/amd64/machdep.c Fri Jan 1 17:56:52 2016 (r293044) +++ head/sys/amd64/amd64/machdep.c Sat Jan 2 02:53:48 2016 (r293045) @@ -1484,6 +1484,7 @@ static caddr_t native_parse_preload_data(u_int64_t modulep) { caddr_t kmdp; + char *envp; #ifdef DDB vm_offset_t ksym_start; vm_offset_t ksym_end; @@ -1495,7 +1496,10 @@ native_parse_preload_data(u_int64_t modu if (kmdp == NULL) kmdp = preload_search_by_type("elf64 kernel"); boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *) + KERNBASE; + envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); + if (envp != NULL) + envp += KERNBASE; + init_static_kenv(envp, 0); #ifdef DDB ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t); Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Fri Jan 1 17:56:52 2016 (r293044) +++ head/sys/arm/arm/machdep.c Sat Jan 2 02:53:48 2016 (r293045) @@ -1002,6 +1002,8 @@ fake_preload_metadata(struct arm_boot_pa fake_preload[i] = 0; preload_metadata = (void *)fake_preload; + init_static_kenv(NULL, 0); + return (lastaddr); } @@ -1074,6 +1076,8 @@ linux_parse_boot_param(struct arm_boot_p bcopy(atag_list, atags, (char *)walker - (char *)atag_list + ATAG_SIZE(walker)); + init_static_kenv(NULL, 0); + return fake_preload_metadata(abp); } #endif @@ -1106,7 +1110,7 @@ freebsd_parse_boot_param(struct arm_boot return 0; boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); + init_static_kenv(MD_FETCH(kmdp, MODINFOMD_ENVP, char *), 0); lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t); #ifdef DDB ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); Modified: head/sys/arm/xscale/ixp425/avila_machdep.c ============================================================================== --- head/sys/arm/xscale/ixp425/avila_machdep.c Fri Jan 1 17:56:52 2016 (r293044) +++ head/sys/arm/xscale/ixp425/avila_machdep.c Sat Jan 2 02:53:48 2016 (r293045) @@ -225,8 +225,8 @@ initarm(struct arm_boot_params *abp) pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); - if (envmode == 1) - kern_envp = static_env; + init_static_kenv(NULL, 0); + /* Do basic tuning, hz etc */ init_param1(); @@ -426,10 +426,6 @@ initarm(struct arm_boot_params *abp) init_param2(physmem); kdb_init(); - /* use static kernel environment if so configured */ - if (envmode == 1) - kern_envp = static_env; - return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - sizeof(struct pcb))); #undef next_page Modified: head/sys/arm64/arm64/machdep.c ============================================================================== --- head/sys/arm64/arm64/machdep.c Fri Jan 1 17:56:52 2016 (r293044) +++ head/sys/arm64/arm64/machdep.c Sat Jan 2 02:53:48 2016 (r293045) @@ -820,7 +820,7 @@ initarm(struct arm64_bootparams *abp) kmdp = preload_search_by_type("elf64 kernel"); boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); + init_static_kenv(MD_FETCH(kmdp, MODINFOMD_ENVP, char *), 0); #ifdef FDT try_load_dtb(kmdp); Modified: head/sys/boot/Makefile.arm ============================================================================== --- head/sys/boot/Makefile.arm Fri Jan 1 17:56:52 2016 (r293044) +++ head/sys/boot/Makefile.arm Sat Jan 2 02:53:48 2016 (r293045) @@ -5,3 +5,10 @@ SUBDIR+= fdt .endif SUBDIR+= efi uboot + +# Do not generate movt/movw, because the relocation fixup for them does not +# translate to the -Bsymbolic -pie format required by self_reloc() in loader(8). +# Also, the fpu is not available in a standalone environment. +CFLAGS.clang+= -mllvm -arm-use-movt=0 +CFLAGS.clang+= -mfpu=none +.export: CFLAGS.clang Modified: head/sys/i386/i386/machdep.c ============================================================================== --- head/sys/i386/i386/machdep.c Fri Jan 1 17:56:52 2016 (r293044) +++ head/sys/i386/i386/machdep.c Sat Jan 2 02:53:48 2016 (r293045) @@ -2462,10 +2462,11 @@ init386(first) } else { metadata_missing = 1; } - if (envmode == 1) - kern_envp = static_env; - else if (bootinfo.bi_envp) - kern_envp = (caddr_t)bootinfo.bi_envp + KERNBASE; + + if (bootinfo.bi_envp) + init_static_kenv((caddr_t)bootinfo.bi_envp + KERNBASE, 0); + else + init_static_kenv(NULL, 0); /* Init basic tunables, hz etc */ init_param1(); Modified: head/sys/kern/kern_environment.c ============================================================================== --- head/sys/kern/kern_environment.c Fri Jan 1 17:56:52 2016 (r293044) +++ head/sys/kern/kern_environment.c Sat Jan 2 02:53:48 2016 (r293045) @@ -210,12 +210,44 @@ done: return (error); } +/* + * Populate the initial kernel environment. + * + * This is called very early in MD startup, either to provide a copy of the + * environment obtained from a boot loader, or to provide an empty buffer into + * which MD code can store an initial environment using kern_setenv() calls. + * + * If the global envmode is 1, the environment is initialized from the global + * static_env[], regardless of the arguments passed. This implements the env + * keyword described in config(5). In this case env_pos is set to env_len, + * causing kern_setenv() to return -1 (if len > 0) or panic (if len == 0) until + * the dynamic environment is available. The envmode and static_env variables + * are defined in env.c which is generated by config(8). + * + * If len is non-zero, the caller is providing an empty buffer. The caller will + * subsequently use kern_setenv() to add up to len bytes of initial environment + * before the dynamic environment is available. + * + * If len is zero, the caller is providing a pre-loaded buffer containing + * environment strings. Additional strings cannot be added until the dynamic + * environment is available. The memory pointed to must remain stable at least + * until sysinit runs init_dynamic_kenv(). If no initial environment is + * available from the boot loader, passing a NULL pointer allows the static_env + * to be installed if it is configured. + */ void init_static_kenv(char *buf, size_t len) { - kern_envp = buf; - env_len = len; - env_pos = 0; + + if (envmode == 1) { + kern_envp = static_env; + env_len = len; + env_pos = len; + } else { + kern_envp = buf; + env_len = len; + env_pos = 0; + } } /* Modified: head/sys/mips/beri/beri_machdep.c ============================================================================== --- head/sys/mips/beri/beri_machdep.c Fri Jan 1 17:56:52 2016 (r293044) +++ head/sys/mips/beri/beri_machdep.c Sat Jan 2 02:53:48 2016 (r293045) @@ -273,7 +273,7 @@ platform_start(__register_t a0, __regist * Configure more boot-time parameters passed in by loader. */ boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); + init_static_kenv(MD_FETCH(kmdp, MODINFOMD_ENVP, char *), 0); /* * Get bootargs from FDT if specified. Modified: head/sys/powerpc/powerpc/machdep.c ============================================================================== --- head/sys/powerpc/powerpc/machdep.c Fri Jan 1 17:56:52 2016 (r293044) +++ head/sys/powerpc/powerpc/machdep.c Sat Jan 2 02:53:48 2016 (r293045) @@ -261,7 +261,8 @@ powerpc_init(vm_offset_t fdt, vm_offset_ kmdp = preload_search_by_type("elf kernel"); if (kmdp != NULL) { boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); + init_static_kenv(MD_FETCH(kmdp, MODINFOMD_ENVP, char *), + 0); endkernel = ulmax(endkernel, MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t)); #ifdef DDB Modified: head/sys/sparc64/sparc64/machdep.c ============================================================================== --- head/sys/sparc64/sparc64/machdep.c Fri Jan 1 17:56:52 2016 (r293044) +++ head/sys/sparc64/sparc64/machdep.c Sat Jan 2 02:53:48 2016 (r293045) @@ -379,7 +379,8 @@ sparc64_init(caddr_t mdp, u_long o1, u_l kmdp = preload_search_by_type("elf kernel"); if (kmdp != NULL) { boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); + init_static_kenv(MD_FETCH(kmdp, MODINFOMD_ENVP, char *), + 0); end = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t); kernel_tlb_slots = MD_FETCH(kmdp, MODINFOMD_DTLB_SLOTS, int); Modified: head/sys/x86/xen/pv.c ============================================================================== --- head/sys/x86/xen/pv.c Fri Jan 1 17:56:52 2016 (r293044) +++ head/sys/x86/xen/pv.c Sat Jan 2 02:53:48 2016 (r293045) @@ -296,7 +296,7 @@ xen_pv_set_env(void) for (cmd_line_next = cmd_line; strsep(&cmd_line_next, ",") != NULL;) ; - init_static_kenv(cmd_line, env_size); + init_static_kenv(cmd_line, 0); } static void @@ -382,6 +382,7 @@ xen_pv_parse_preload_data(u_int64_t modu caddr_t kmdp; vm_ooffset_t off; vm_paddr_t metadata; + char *envp; if (HYPERVISOR_start_info->mod_start != 0) { preload_metadata = (caddr_t)(HYPERVISOR_start_info->mod_start); @@ -404,8 +405,10 @@ xen_pv_parse_preload_data(u_int64_t modu preload_bootstrap_relocate(off); boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); - kern_envp += off; + envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); + if (envp != NULL) + envp += off; + init_static_kenv(envp, 0); } else { /* Parse the extra boot information given by Xen */ xen_pv_set_env(); From owner-svn-src-all@freebsd.org Sat Jan 2 03:00:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C4C3CA5D370; Sat, 2 Jan 2016 03:00:32 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9513F1A0D; Sat, 2 Jan 2016 03:00:32 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0230VR3086167; Sat, 2 Jan 2016 03:00:31 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0230V55086166; Sat, 2 Jan 2016 03:00:31 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601020300.u0230V55086166@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 2 Jan 2016 03:00:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293046 - head/sys/boot X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 03:00:32 -0000 Author: ian Date: Sat Jan 2 03:00:31 2016 New Revision: 293046 URL: https://svnweb.freebsd.org/changeset/base/293046 Log: Revert accidental change that snuck into r293045. Modified: head/sys/boot/Makefile.arm Modified: head/sys/boot/Makefile.arm ============================================================================== --- head/sys/boot/Makefile.arm Sat Jan 2 02:53:48 2016 (r293045) +++ head/sys/boot/Makefile.arm Sat Jan 2 03:00:31 2016 (r293046) @@ -5,10 +5,3 @@ SUBDIR+= fdt .endif SUBDIR+= efi uboot - -# Do not generate movt/movw, because the relocation fixup for them does not -# translate to the -Bsymbolic -pie format required by self_reloc() in loader(8). -# Also, the fpu is not available in a standalone environment. -CFLAGS.clang+= -mllvm -arm-use-movt=0 -CFLAGS.clang+= -mfpu=none -.export: CFLAGS.clang From owner-svn-src-all@freebsd.org Sat Jan 2 03:41:43 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C6B3A5E12D; Sat, 2 Jan 2016 03:41:43 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-io0-x232.google.com (mail-io0-x232.google.com [IPv6:2607:f8b0:4001:c06::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F0FE61F3D; Sat, 2 Jan 2016 03:41:42 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: by mail-io0-x232.google.com with SMTP id o67so397436396iof.3; Fri, 01 Jan 2016 19:41:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=cEIr0GV58HpzwYJ/sUISTJQfPIic4EO3E/7louVdmcE=; b=Fv7Xb4Rdi6TPyHFbX+g+Q9UCXBrcbGH0BvsNRNS27OCrXDbvPC+Fw5zTc0U/Hiet3b 2kfuWhwcUBv0Y1cKZ3BPu2xMo6kwd6dUbRwGizgGOgnY9IwOs7hPDiFPYtTFOOiUc+z2 4jcxmAnUKQi6YnJimUMCt4JKbXQJwG3KgSFl8Yx8XoDSfnEAY+lYe2Kip3zj8bru2EBz LF41AS0ZypE98CyWwtTkB+KyIg7ERagEfPg4mF8dnEYUmo22uNQ3dKRJrsIjgDI1/IPe oyXEFjcgxD8+FXqERQk+FBLUfju7gIsrDKSA5VQOwYuSMv3FTJK62Mmz+0E/urk4aPh+ +h+w== MIME-Version: 1.0 X-Received: by 10.107.10.217 with SMTP id 86mr60395872iok.75.1451706102453; Fri, 01 Jan 2016 19:41:42 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.36.121.202 with HTTP; Fri, 1 Jan 2016 19:41:42 -0800 (PST) In-Reply-To: <5919271.R3YaC4QkYh@ralph.baldwin.cx> References: <201601010021.u010L7sW006625@repo.freebsd.org> <5919271.R3YaC4QkYh@ralph.baldwin.cx> Date: Fri, 1 Jan 2016 19:41:42 -0800 X-Google-Sender-Auth: YpNkqGrx-8zbZ1GdjZ7Ph_AYU0k Message-ID: Subject: Re: svn commit: r293022 - head/sys/net80211 From: Adrian Chadd To: John Baldwin Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 03:41:43 -0000 yup. all of this is ... terrible atm. I do need to be able to give a bounds though. :( -a From owner-svn-src-all@freebsd.org Sat Jan 2 04:42:55 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79223A5E177; Sat, 2 Jan 2016 04:42:55 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 41A8619AE; Sat, 2 Jan 2016 04:42:55 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u024gsAd022235; Sat, 2 Jan 2016 04:42:54 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u024grvH022226; Sat, 2 Jan 2016 04:42:53 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201601020442.u024grvH022226@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sat, 2 Jan 2016 04:42:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293047 - head/share/vt/keymaps X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 04:42:55 -0000 Author: emaste Date: Sat Jan 2 04:42:53 2016 New Revision: 293047 URL: https://svnweb.freebsd.org/changeset/base/293047 Log: Use correct name 'us' for character 31 in keymaps 'ns' was a historical accident, and kbdcontrol(1) has accepted the correct 'us' as well as 'ns' since r38139. PR: 205776 MFC after: 1 week Modified: head/share/vt/keymaps/gr.101.acc.kbd head/share/vt/keymaps/gr.elot.acc.kbd head/share/vt/keymaps/hu.101.kbd head/share/vt/keymaps/hu.102.kbd head/share/vt/keymaps/lt.kbd head/share/vt/keymaps/pt.acc.kbd head/share/vt/keymaps/pt.kbd head/share/vt/keymaps/ua.kbd head/share/vt/keymaps/ua.shift.alt.kbd Modified: head/share/vt/keymaps/gr.101.acc.kbd ============================================================================== --- head/share/vt/keymaps/gr.101.acc.kbd Sat Jan 2 03:00:31 2016 (r293046) +++ head/share/vt/keymaps/gr.101.acc.kbd Sat Jan 2 04:42:53 2016 (r293047) @@ -18,7 +18,7 @@ 009 '8' '*' nop nop '8' '*' nop nop O 010 '9' '(' nop nop '9' '(' nop nop O 011 '0' ')' nop nop '0' ')' nop nop O - 012 '-' '_' ns ns '-' '_' ns ns O + 012 '-' '_' us us '-' '_' us us O 013 '=' '+' nop nop '=' '+' nop nop O 014 bs bs del del bs bs del del O 015 ht btab nop nop ht btab nop nop O @@ -90,7 +90,7 @@ 081 fkey59 '3' '3' '3' '3' '3' '3' '3' N 082 fkey60 '0' '0' '0' '0' '0' '0' '0' N 083 del '.' '.' '.' '.' '.' boot boot N - 084 ns ns ns ns ns ns ns ns O + 084 us us us us us us us us O 085 nop nop nop nop nop nop nop nop O 086 '\' '|' nop nop '\' '|' nop nop O 087 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O @@ -148,7 +148,7 @@ 137 '8' '*' nop nop '8' '*' nop nop O 138 '9' '(' nop nop '9' '(' nop nop O 139 '0' ')' nop nop '0' ')' nop nop O - 140 '-' '_' ns ns '-' '_' ns ns O + 140 '-' '_' us us '-' '_' us us O 141 '=' '+' nop nop '=' '+' nop nop O 142 bs bs del del bs bs del del O 143 ht btab nop nop ht btab nop nop O @@ -220,7 +220,7 @@ 209 fkey59 '3' '3' '3' '3' '3' '3' '3' N 210 fkey60 '0' '0' '0' '0' '0' '0' '0' N 211 del '.' '.' '.' '.' '.' boot boot N - 212 ns ns ns ns ns ns ns ns O + 212 us us us us us us us us O 213 nop nop nop nop nop nop nop nop O 214 '\' '|' nop nop '\' '|' nop nop O 215 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O Modified: head/share/vt/keymaps/gr.elot.acc.kbd ============================================================================== --- head/share/vt/keymaps/gr.elot.acc.kbd Sat Jan 2 03:00:31 2016 (r293046) +++ head/share/vt/keymaps/gr.elot.acc.kbd Sat Jan 2 04:42:53 2016 (r293047) @@ -18,7 +18,7 @@ 009 '8' '*' nop nop '8' '*' nop nop O 010 '9' '(' nop nop '9' '(' nop nop O 011 '0' ')' nop nop '0' ')' nop nop O - 012 '-' '_' ns ns '-' '_' ns ns O + 012 '-' '_' us us '-' '_' us us O 013 '=' '+' nop nop '=' '+' nop nop O 014 bs bs del del bs bs del del O 015 ht btab nop nop ht btab nop nop O @@ -90,7 +90,7 @@ 081 fkey59 '3' '3' '3' '3' '3' '3' '3' N 082 fkey60 '0' '0' '0' '0' '0' '0' '0' N 083 del '.' '.' '.' '.' '.' boot boot N - 084 ns ns ns ns ns ns ns ns O + 084 us us us us us us us us O 085 nop nop nop nop nop nop nop nop O 086 '\' '|' nop nop '\' '|' nop nop O 087 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O @@ -148,7 +148,7 @@ 137 '8' '*' nop nop '8' '*' nop nop O 138 '9' '(' nop nop '9' '(' nop nop O 139 '0' ')' nop nop '0' ')' nop nop O - 140 '-' '_' ns ns '-' '_' ns ns O + 140 '-' '_' us us '-' '_' us us O 141 '=' '+' nop nop '=' '+' nop nop O 142 bs bs del del bs bs del del O 143 ht btab nop nop ht btab nop nop O @@ -220,7 +220,7 @@ 209 fkey59 '3' '3' '3' '3' '3' '3' '3' N 210 fkey60 '0' '0' '0' '0' '0' '0' '0' N 211 del '.' '.' '.' '.' '.' boot boot N - 212 ns ns ns ns ns ns ns ns O + 212 us us us us us us us us O 213 nop nop nop nop nop nop nop nop O 214 '\' '|' nop nop '\' '|' nop nop O 215 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O Modified: head/share/vt/keymaps/hu.101.kbd ============================================================================== --- head/share/vt/keymaps/hu.101.kbd Sat Jan 2 03:00:31 2016 (r293046) +++ head/share/vt/keymaps/hu.101.kbd Sat Jan 2 04:42:53 2016 (r293047) @@ -46,7 +46,7 @@ 009 '8' '*' nop nop '8' '*' nop nop O 010 '9' '(' nop nop '9' '(' nop nop O 011 '0' ')' nop nop 0xf6 0xd6 nop nop O - 012 '-' '_' ns ns 0xfc 0xdc ns ns C + 012 '-' '_' us us 0xfc 0xdc us us C 013 '=' '+' nop nop 0xf3 0xd3 nop nop C 014 bs bs del del bs bs del del O 015 ht btab nop nop ht btab nop nop O @@ -175,7 +175,7 @@ 137 '8' '*' nop nop '8' '*' nop nop O 138 '9' '(' nop nop '9' '(' nop nop O 139 0xf6 0xd6 nop nop '0' ')' nop nop O - 140 0xfc 0xdc ns ns '-' '_' ns ns C + 140 0xfc 0xdc us us '-' '_' us us C 141 0xf3 0xd3 nop nop '=' '+' nop nop C 142 bs bs del del bs bs del del O 143 ht btab nop nop ht btab nop nop O Modified: head/share/vt/keymaps/hu.102.kbd ============================================================================== --- head/share/vt/keymaps/hu.102.kbd Sat Jan 2 03:00:31 2016 (r293046) +++ head/share/vt/keymaps/hu.102.kbd Sat Jan 2 04:42:53 2016 (r293047) @@ -60,7 +60,7 @@ 050 'm' 'M' cr cr '<' nop cr cr C 051 ',' '?' nop nop ';' nop nop nop O 052 '.' ':' nop nop '>' nop nop nop O - 053 '-' '_' ns ns '*' nop nop nop O + 053 '-' '_' us us '*' nop nop nop O 054 rshift rshift rshift rshift rshift rshift rshift rshift O 055 '*' '*' '*' '*' '*' '*' '*' '*' O 056 lalt lalt lalt lalt lalt lalt lalt lalt O Modified: head/share/vt/keymaps/lt.kbd ============================================================================== --- head/share/vt/keymaps/lt.kbd Sat Jan 2 03:00:31 2016 (r293046) +++ head/share/vt/keymaps/lt.kbd Sat Jan 2 04:42:53 2016 (r293047) @@ -15,7 +15,7 @@ 009 '8' '*' nop nop 0x016b 0x0172 nop nop O 010 '9' '(' nop nop '9' '(' nop nop O 011 '0' ')' nop nop '0' ')' nop nop O - 012 '-' '_' ns ns '-' '_' ns ns O + 012 '-' '_' us us '-' '_' us us O 013 '=' '+' nop nop 0x017e 0x017d nop nop O 014 bs bs del del bs bs del del O 015 ht btab nop nop ht btab nop nop O @@ -87,7 +87,7 @@ 081 fkey59 '3' '3' '3' '3' '3' '3' '3' N 082 fkey60 '0' '0' '0' '0' '0' '0' '0' N 083 del '.' ',' ',' del ',' boot boot N - 084 ns ns ns ns ns ns ns ns O + 084 us us us us us us us us O 085 nop nop nop nop nop nop nop nop O 086 ralt ralt ralt ralt ralt ralt ralt ralt O 087 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O @@ -143,7 +143,7 @@ 137 0x016b 0x016a nop nop '8' '*' nop nop C 138 '9' '(' nop nop '9' '(' nop nop O 139 '0' ')' nop nop '0' ')' nop nop O - 140 '-' '_' ns ns '-' '_' ns ns O + 140 '-' '_' us us '-' '_' us us O 141 0x017e 0x017d nop nop '=' '+' nop nop C 142 bs bs del del bs bs del del O 143 ht btab nop nop ht btab nop nop O @@ -215,7 +215,7 @@ 209 fkey59 '3' '3' '3' '3' '3' '3' '3' N 210 fkey60 '0' '0' '0' '0' '0' '0' '0' N 211 del ',' '.' '.' del '.' boot boot N - 212 ns ns ns ns ns ns ns ns O + 212 us us us us us us us us O 213 nop nop nop nop nop nop nop nop O 214 ralt ralt ralt ralt ralt ralt ralt ralt O 215 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O Modified: head/share/vt/keymaps/pt.acc.kbd ============================================================================== --- head/share/vt/keymaps/pt.acc.kbd Sat Jan 2 03:00:31 2016 (r293046) +++ head/share/vt/keymaps/pt.acc.kbd Sat Jan 2 04:42:53 2016 (r293047) @@ -17,7 +17,7 @@ 009 '8' '(' nop nop '[' '*' nop nop O 010 '9' ')' nop nop ']' '(' nop nop O 011 '0' '=' nop nop '}' ')' nop nop O - 012 ''' '?' ns ns '-' '_' ns ns O + 012 ''' '?' us us '-' '_' us us O 013 '=' '+' nop nop '=' '+' nop nop O 014 bs bs del del bs bs del del O 015 ht btab nop nop ht btab nop nop O Modified: head/share/vt/keymaps/pt.kbd ============================================================================== --- head/share/vt/keymaps/pt.kbd Sat Jan 2 03:00:31 2016 (r293046) +++ head/share/vt/keymaps/pt.kbd Sat Jan 2 04:42:53 2016 (r293047) @@ -17,7 +17,7 @@ 009 '8' '(' nop nop '[' '*' nop nop O 010 '9' ')' nop nop ']' '(' nop nop O 011 '0' '=' nop nop '}' ')' nop nop O - 012 ''' '?' ns ns '-' '_' ns ns O + 012 ''' '?' us us '-' '_' us us O 013 '=' '+' nop nop '=' '+' nop nop O 014 bs bs del del bs bs del del O 015 ht btab nop nop ht btab nop nop O Modified: head/share/vt/keymaps/ua.kbd ============================================================================== --- head/share/vt/keymaps/ua.kbd Sat Jan 2 03:00:31 2016 (r293046) +++ head/share/vt/keymaps/ua.kbd Sat Jan 2 04:42:53 2016 (r293047) @@ -15,7 +15,7 @@ 009 '8' '*' nop nop '8' ';' nop nop O 010 '9' '(' nop nop '9' '?' nop nop O 011 '0' ')' nop nop '0' '%' nop nop O - 012 '-' '_' ns ns '-' '_' ns ns O + 012 '-' '_' us us '-' '_' us us O 013 '=' '+' nop nop '=' '+' nop nop O 014 bs bs del del bs bs del del O 015 ht btab nop nop btab btab nop nop O @@ -144,7 +144,7 @@ 137 '8' ';' nop nop '8' '*' nop nop O 138 '9' '?' nop nop '9' '(' nop nop O 139 '0' '%' nop nop '0' ')' nop nop O - 140 '-' '_' ns ns '-' '_' ns ns O + 140 '-' '_' us us '-' '_' us us O 141 '=' '+' nop nop '=' '+' nop nop O 142 bs bs del del bs bs del del O 143 ht btab nop nop btab btab nop nop O Modified: head/share/vt/keymaps/ua.shift.alt.kbd ============================================================================== --- head/share/vt/keymaps/ua.shift.alt.kbd Sat Jan 2 03:00:31 2016 (r293046) +++ head/share/vt/keymaps/ua.shift.alt.kbd Sat Jan 2 04:42:53 2016 (r293047) @@ -27,7 +27,7 @@ 009 '8' '*' nop nop '8' '*' nop nop O 010 '9' '(' nop nop '9' '(' nop nop O 011 '0' ')' nop nop '0' ')' nop nop O - 012 '-' '_' ns ns 0x0456 0x0406 0xf7 0xf7 O + 012 '-' '_' us us 0x0456 0x0406 0xf7 0xf7 O 013 '=' '+' nop nop 0x0454 0x0404 nop nop O 014 bs bs del del bs bs 0x042a 0x042a O 015 ht btab nop nop ht btab nop nop O @@ -155,7 +155,7 @@ 137 '8' '*' nop nop '8' '*' nop nop O 138 '9' '(' nop nop '9' '(' nop nop O 139 '0' ')' nop nop '0' ')' nop nop O - 140 0x0456 0x0406 ns ns '-' '_' 0xf7 0xf7 O + 140 0x0456 0x0406 us us '-' '_' 0xf7 0xf7 O 141 0x0454 0x0404 nop nop '=' '+' nop nop O 142 bs bs del del bs bs 0x042a 0x042a O 143 ht btab nop nop ht btab nop nop O From owner-svn-src-all@freebsd.org Sat Jan 2 06:28:10 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04693A5FA74; Sat, 2 Jan 2016 06:28:10 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from mx1.scaleengine.net (mx1.scaleengine.net [209.51.186.6]) by mx1.freebsd.org (Postfix) with ESMTP id CF23D1221; Sat, 2 Jan 2016 06:28:09 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from [10.1.1.2] (unknown [10.1.1.2]) (Authenticated sender: allanjude.freebsd@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id DA847DE5B; Sat, 2 Jan 2016 06:28:02 +0000 (UTC) Subject: Re: svn commit: r292955 - head/lib/libmd To: "Jonathan T. Looney" , Bruce Evans References: <201512301804.tBUI4oGp065466@repo.freebsd.org> <20151231115651.R995@besplex.bde.org> <20151231143314.Y1520@besplex.bde.org> <5684D606.3080609@freebsd.org> <56857911.5010205@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Allan Jude Message-ID: <56876DF1.4030807@freebsd.org> Date: Sat, 2 Jan 2016 01:28:01 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <56857911.5010205@freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="o512q8QPWFHJtvrgCfHRr1eoILvnNqKbC" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 06:28:10 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --o512q8QPWFHJtvrgCfHRr1eoILvnNqKbC Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 2015-12-31 13:50, Allan Jude wrote: > On 2015-12-31 13:32, Jonathan T. Looney wrote: >> On 12/31/15, 2:15 AM, "Allan Jude" wrote: >> >>> It seems these problems also slow things down, a lot: >>> >>> # time md5 /media/md5test/bigdata >>> MD5 (/media/md5test/bigdata) =3D 6afad0bf5d8318093e943229be05be67 >>> 4.310u 3.476s 0:07.79 99.8% 20+167k 0+0io 0pf+0w >>> # time env LD_PRELOAD=3D/usr/obj/media/svn/md5/head/tmp/lib/libmd.so >>> /usr/obj/media/svn/md5/head/sbin/md5/md5 /media/md5test/bigdata >>> MD5 (/media/md5test/bigdata) =3D 6afad0bf5d8318093e943229be05be67 >>> 4.133u 0.354s 0:04.49 99.7% 20+167k 1+0io 0pf+0w >>> >>> (file is fully cached in ZFS ARC, dd reads it at 11GB/s) >>> >>> Will investigate more tomorrow. >> >> md5 will be slower than dd due to the extra processing it needs to do = to >> generate the hash. I suspect that explains the difference you're seein= g >> between those utilities. >> >> Jonathan >> >> >> >=20 > Sorry, you missed my point here. >=20 > I replaced MDXFile() with the implementation included in my earlier > email. Using the newer libmd with that code, cut the time to md5 the > SAME data down a lot. I need to do a more scientific test on a box that= > isn't doing other stuff still though. >=20 > The comment about dd doing 11GB/s, was just to clarify that I wasn't > reading the file from disk, which would introduce other variables. >=20 I found the cause of my bogus benchmark, the world on my test machine was just old enough to be missing jmg@'s bufsize patch. Now the difference is about 1 second on a 2GB file, so ignore my foolishness. --=20 Allan Jude --o512q8QPWFHJtvrgCfHRr1eoILvnNqKbC Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (MingW32) iQIcBAEBAgAGBQJWh230AAoJEBmVNT4SmAt+DvoQAJ47k8w+2fxCLPHv6XwZxFzh o3Fy0W4OVh8DdZPh1i2Q38aTkQTZrN0YYAe+8kbQ2S2Rv8ALA+Ezy+VV9U0qtc37 ZIi958iISK9f0Z+JZ7OmU3Esw804f8yYCLoheyc73cK9tjgtc5Lqk7mQ6UeTo8fp oRt5GAj6DHa06LEGCqbIInxuqpKLBBybAD4rkRo8W5X3xLjnVg12QHSDRftcZM/2 sdodS53pP/lJVVm/Y4oML6dg8umAKIx772CN5c+cQAFXQkzOAwT3Xctxw7/Y7CjK vEBZ2AtpwSDFbkAJtuxPMp6c+DysuCea/QbpqmpxPOe4YfM/bYcquek++rslArLB +q/M90Judv4wtCUYg2hpM/AGSWbSEtluExUvldHZ1hR7kUD49qXy4zKmPyWDdsDA Q5SbgY/susvQf8MjwZye44Aj07CRuCgl1ssePv1LYmURD2RCP4kdwBn60I3ivv97 JfPSS0xEtfQCqGtewGDnXeaeDC/ocAcXM24Y+s3qdGyf2H90gGUUDGj8PuW79/ey QVy8dVhKesQZ0S793Gka9Zv8nIskuF+M5XYhN2QIZx+aQG7gWN2guaxnEqB/1Giy uU8YpOXhNQbz5LGCTCkF94Bz4l3csgInZbUXalklm/P8iJWODxryBDNrCHW4KDFp F0cOfSIfi6U2ejRdF79n =XYxK -----END PGP SIGNATURE----- --o512q8QPWFHJtvrgCfHRr1eoILvnNqKbC-- From owner-svn-src-all@freebsd.org Sat Jan 2 10:07:27 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A0C05A5E6C8; Sat, 2 Jan 2016 10:07:27 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail107.syd.optusnet.com.au (mail107.syd.optusnet.com.au [211.29.132.53]) by mx1.freebsd.org (Postfix) with ESMTP id 5BC221843; Sat, 2 Jan 2016 10:07:26 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail107.syd.optusnet.com.au (Postfix) with ESMTPS id A5EE8D42B23; Sat, 2 Jan 2016 21:07:16 +1100 (AEDT) Date: Sat, 2 Jan 2016 21:07:15 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Allan Jude cc: "Jonathan T. Looney" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r292955 - head/lib/libmd In-Reply-To: <56876DF1.4030807@freebsd.org> Message-ID: <20160102210313.M934@besplex.bde.org> References: <201512301804.tBUI4oGp065466@repo.freebsd.org> <20151231115651.R995@besplex.bde.org> <20151231143314.Y1520@besplex.bde.org> <5684D606.3080609@freebsd.org> <56857911.5010205@freebsd.org> <56876DF1.4030807@freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=PfoC/XVd c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=6I5d2MoRAAAA:8 a=JKkEluhCpGZgfhysuqUA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 10:07:27 -0000 On Sat, 2 Jan 2016, Allan Jude wrote: > On 2015-12-31 13:50, Allan Jude wrote: >> On 2015-12-31 13:32, Jonathan T. Looney wrote: >>> On 12/31/15, 2:15 AM, "Allan Jude" wrote: >>> >>>> It seems these problems also slow things down, a lot: >>>> >>>> # time md5 /media/md5test/bigdata >>>> MD5 (/media/md5test/bigdata) = 6afad0bf5d8318093e943229be05be67 >>>> 4.310u 3.476s 0:07.79 99.8% 20+167k 0+0io 0pf+0w >>>> # time env LD_PRELOAD=/usr/obj/media/svn/md5/head/tmp/lib/libmd.so >>>> /usr/obj/media/svn/md5/head/sbin/md5/md5 /media/md5test/bigdata >>>> MD5 (/media/md5test/bigdata) = 6afad0bf5d8318093e943229be05be67 >>>> 4.133u 0.354s 0:04.49 99.7% 20+167k 1+0io 0pf+0w >>>> >>>> (file is fully cached in ZFS ARC, dd reads it at 11GB/s) >>>> >>>> Will investigate more tomorrow. >>> >>> md5 will be slower than dd due to the extra processing it needs to do to >>> generate the hash. I suspect that explains the difference you're seeing >>> between those utilities. >> >> Sorry, you missed my point here. >> >> I replaced MDXFile() with the implementation included in my earlier >> email. Using the newer libmd with that code, cut the time to md5 the >> SAME data down a lot. I need to do a more scientific test on a box that >> isn't doing other stuff still though. >> >> The comment about dd doing 11GB/s, was just to clarify that I wasn't >> reading the file from disk, which would introduce other variables. > > I found the cause of my bogus benchmark, the world on my test machine > was just old enough to be missing jmg@'s bufsize patch. > > Now the difference is about 1 second on a 2GB file, so ignore my > foolishness. That patch is surprisingly new. The main slowness that I complained about was for the other path in md5 that must be used for special files. That uses stdio so it suffers from stdio trusting st_blksize. But st_blksize is rarely as small as the old size BUFSIZ in MDXFile. Bruce From owner-svn-src-all@freebsd.org Sat Jan 2 10:07:32 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB6B0A5E6FB; Sat, 2 Jan 2016 10:07:32 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8F0BD188F; Sat, 2 Jan 2016 10:07:32 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02A7VlV017650; Sat, 2 Jan 2016 10:07:31 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02A7VHn017649; Sat, 2 Jan 2016 10:07:31 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601021007.u02A7VHn017649@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sat, 2 Jan 2016 10:07:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293048 - head/tools/regression X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 10:07:32 -0000 Author: ngie Date: Sat Jan 2 10:07:31 2016 New Revision: 293048 URL: https://svnweb.freebsd.org/changeset/base/293048 Log: - Use a temporary file for the temporary md(4) devices instead of hardcoding it - Remove the temporary file in the cleanup routine MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/tools/regression/geom_subr.sh Modified: head/tools/regression/geom_subr.sh ============================================================================== --- head/tools/regression/geom_subr.sh Sat Jan 2 04:42:53 2016 (r293047) +++ head/tools/regression/geom_subr.sh Sat Jan 2 10:07:31 2016 (r293048) @@ -23,7 +23,7 @@ devwait() # a large number of md(4) devices lingering around : ${TMPDIR=/tmp} export TMPDIR -TEST_MDS_FILE=${TMPDIR}/test_mds +TEST_MDS_FILE=$(mktemp ${TMPDIR}/test_mds.XXXXXX) || exit 1 attach_md() { @@ -45,4 +45,5 @@ geom_test_cleanup() mdconfig -d -u $test_md done < $TEST_MDS_FILE fi + rm -f $TEST_MDS_FILE } From owner-svn-src-all@freebsd.org Sat Jan 2 14:26:16 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E01CA5F12B; Sat, 2 Jan 2016 14:26:16 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) (using TLSv1.1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0707717B4; Sat, 2 Jan 2016 14:26:16 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from [192.168.200.3] (c-73-147-115-187.hsd1.va.comcast.net [73.147.115.187]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: gallatin) by duke.cs.duke.edu (Postfix) with ESMTPSA id B5380F80108; Sat, 2 Jan 2016 09:19:37 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=cs.duke.edu; s=mail; t=1451744378; bh=+eXUiS2CfuA4RvciEg/w1kUS6jPfeHd0nVMM49s3MH4=; h=Subject:To:From:Date; b=fYo10J8Xm9bl4ZZQMUfjBoSsskmZ0jsJPkYIFOxBoN49VfHhsXqAejuQtFLSfZDq7 7VeMOuwtZHxLg5nQsocj4J0TMW0cSHUUZFg/4tcnpFf0BTERN+A71bcy+j6s8Vtl/R yy6wJCS4cpZ9U7aGUd+VecQmDIbpa3Iiytw2UytdmCRAx2Eqf2KXYK/L8sz+VHcnT0 U3bn+x0xlSENCk3AJnszv0++VgFANmYigDej//eR+tI7oB9DrhYA2dJKahkA+Q99XF LCcLXHvEln+1pQdNO6t+KIvNyhh/LKF9sGekrPyNeAHxbngkgXuP9HX29IRl0wCG3C hohRX1TRXcQoQ== Subject: Re: svn commit: r292949 - head/sys/dev/mlx5/mlx5_en To: Hans Petter Selasky , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201512301501.tBUF1lef010775@repo.freebsd.org> From: Andrew Gallatin Message-ID: <5687DC76.40307@cs.duke.edu> Date: Sat, 2 Jan 2016 09:19:34 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <201512301501.tBUF1lef010775@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 14:26:16 -0000 On 12/30/2015 10:01, Hans Petter Selasky wrote: > Author: hselasky > Date: Wed Dec 30 15:01:47 2015 > New Revision: 292949 > URL: https://svnweb.freebsd.org/changeset/base/292949 > > Log: > Add support for modifying coalescing parameters runtime. > Thank you -- this will be very helpful! Drew From owner-svn-src-all@freebsd.org Sat Jan 2 16:40:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7A5DA5F8E7; Sat, 2 Jan 2016 16:40:38 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 91B6614A8; Sat, 2 Jan 2016 16:40:38 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02GebKH030991; Sat, 2 Jan 2016 16:40:37 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02GebdU030988; Sat, 2 Jan 2016 16:40:37 GMT (envelope-from des@FreeBSD.org) Message-Id: <201601021640.u02GebdU030988@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 2 Jan 2016 16:40:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293049 - head/sys/dev/syscons/plasma X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 16:40:38 -0000 Author: des Date: Sat Jan 2 16:40:37 2016 New Revision: 293049 URL: https://svnweb.freebsd.org/changeset/base/293049 Log: Replace the cosine table with a sine table, which (due to the vagaries of rounding) has better spread. Implement fp16_sin() to go along with fp16_cos(). In the rendering loop, switch from addition to subtraction so the center of the pattern will be a trough rather than a peak. This is completely arbitrary, of course, but looks better to me. Modified: head/sys/dev/syscons/plasma/fp16.c head/sys/dev/syscons/plasma/fp16.h head/sys/dev/syscons/plasma/plasma_saver.c Modified: head/sys/dev/syscons/plasma/fp16.c ============================================================================== --- head/sys/dev/syscons/plasma/fp16.c Sat Jan 2 10:07:31 2016 (r293048) +++ head/sys/dev/syscons/plasma/fp16.c Sat Jan 2 16:40:37 2016 (r293049) @@ -71,42 +71,66 @@ fp16_sqrt(fp16_t x) return (y); } -static fp16_t fp16_cos_table[256] = { - 65536, 65534, 65531, 65524, 65516, 65505, 65491, 65475, - 65457, 65436, 65412, 65386, 65358, 65327, 65294, 65258, - 65220, 65179, 65136, 65091, 65043, 64992, 64939, 64884, - 64826, 64766, 64703, 64638, 64571, 64501, 64428, 64353, - 64276, 64197, 64115, 64030, 63943, 63854, 63762, 63668, - 63571, 63473, 63371, 63268, 63162, 63053, 62942, 62829, - 62714, 62596, 62475, 62353, 62228, 62100, 61971, 61839, - 61705, 61568, 61429, 61288, 61144, 60998, 60850, 60700, - 60547, 60392, 60235, 60075, 59913, 59749, 59583, 59414, - 59243, 59070, 58895, 58718, 58538, 58356, 58172, 57986, - 57797, 57606, 57414, 57219, 57022, 56822, 56621, 56417, - 56212, 56004, 55794, 55582, 55368, 55152, 54933, 54713, - 54491, 54266, 54040, 53811, 53581, 53348, 53114, 52877, - 52639, 52398, 52155, 51911, 51665, 51416, 51166, 50914, - 50660, 50403, 50146, 49886, 49624, 49360, 49095, 48828, - 48558, 48288, 48015, 47740, 47464, 47186, 46906, 46624, - 46340, 46055, 45768, 45480, 45189, 44897, 44603, 44308, - 44011, 43712, 43412, 43110, 42806, 42501, 42194, 41885, - 41575, 41263, 40950, 40636, 40319, 40002, 39682, 39362, - 39039, 38716, 38390, 38064, 37736, 37406, 37075, 36743, - 36409, 36074, 35738, 35400, 35061, 34721, 34379, 34036, - 33692, 33346, 32999, 32651, 32302, 31952, 31600, 31247, - 30893, 30538, 30181, 29824, 29465, 29105, 28745, 28383, - 28020, 27656, 27291, 26925, 26557, 26189, 25820, 25450, - 25079, 24707, 24334, 23960, 23586, 23210, 22833, 22456, - 22078, 21699, 21319, 20938, 20557, 20175, 19792, 19408, - 19024, 18638, 18253, 17866, 17479, 17091, 16702, 16313, - 15923, 15533, 15142, 14751, 14359, 13966, 13573, 13179, - 12785, 12390, 11995, 11600, 11204, 10807, 10410, 10013, - 9616, 9218, 8819, 8421, 8022, 7623, 7223, 6823, - 6423, 6023, 5622, 5222, 4821, 4420, 4018, 3617, - 3215, 2814, 2412, 2010, 1608, 1206, 804, 402, +static fp16_t fp16_sin_table[256] = { + 0, 402, 804, 1206, 1608, 2010, 2412, 2814, + 3215, 3617, 4018, 4420, 4821, 5222, 5622, 6023, + 6423, 6823, 7223, 7623, 8022, 8421, 8819, 9218, + 9616, 10013, 10410, 10807, 11204, 11600, 11995, 12390, + 12785, 13179, 13573, 13966, 14359, 14751, 15142, 15533, + 15923, 16313, 16702, 17091, 17479, 17866, 18253, 18638, + 19024, 19408, 19792, 20175, 20557, 20938, 21319, 21699, + 22078, 22456, 22833, 23210, 23586, 23960, 24334, 24707, + 25079, 25450, 25820, 26189, 26557, 26925, 27291, 27656, + 28020, 28383, 28745, 29105, 29465, 29824, 30181, 30538, + 30893, 31247, 31600, 31952, 32302, 32651, 32999, 33346, + 33692, 34036, 34379, 34721, 35061, 35400, 35738, 36074, + 36409, 36743, 37075, 37406, 37736, 38064, 38390, 38716, + 39039, 39362, 39682, 40002, 40319, 40636, 40950, 41263, + 41575, 41885, 42194, 42501, 42806, 43110, 43412, 43712, + 44011, 44308, 44603, 44897, 45189, 45480, 45768, 46055, + 46340, 46624, 46906, 47186, 47464, 47740, 48015, 48288, + 48558, 48828, 49095, 49360, 49624, 49886, 50146, 50403, + 50660, 50914, 51166, 51416, 51665, 51911, 52155, 52398, + 52639, 52877, 53114, 53348, 53581, 53811, 54040, 54266, + 54491, 54713, 54933, 55152, 55368, 55582, 55794, 56004, + 56212, 56417, 56621, 56822, 57022, 57219, 57414, 57606, + 57797, 57986, 58172, 58356, 58538, 58718, 58895, 59070, + 59243, 59414, 59583, 59749, 59913, 60075, 60235, 60392, + 60547, 60700, 60850, 60998, 61144, 61288, 61429, 61568, + 61705, 61839, 61971, 62100, 62228, 62353, 62475, 62596, + 62714, 62829, 62942, 63053, 63162, 63268, 63371, 63473, + 63571, 63668, 63762, 63854, 63943, 64030, 64115, 64197, + 64276, 64353, 64428, 64501, 64571, 64638, 64703, 64766, + 64826, 64884, 64939, 64992, 65043, 65091, 65136, 65179, + 65220, 65258, 65294, 65327, 65358, 65386, 65412, 65436, + 65457, 65475, 65491, 65505, 65516, 65524, 65531, 65534, }; /* + * Compute the sine of theta. + */ +fp16_t +fp16_sin(fp16_t theta) +{ + unsigned int i; + + i = 1024 * (theta % FP16_2PI) / FP16_2PI; + switch (i / 256) { + case 0: + return (fp16_sin_table[i % 256]); + case 1: + return (fp16_sin_table[255 - i % 256]); + case 2: + return (-fp16_sin_table[i % 256]); + case 3: + return (-fp16_sin_table[255 - i % 256]); + default: + /* inconceivable! */ + return (0); + } +} + +/* * Compute the cosine of theta. */ fp16_t @@ -117,13 +141,13 @@ fp16_cos(fp16_t theta) i = 1024 * (theta % FP16_2PI) / FP16_2PI; switch (i / 256) { case 0: - return (fp16_cos_table[i % 256]); + return (fp16_sin_table[255 - i % 256]); case 1: - return (-fp16_cos_table[255 - i % 256]); + return (-fp16_sin_table[i % 256]); case 2: - return (-fp16_cos_table[i % 256]); + return (-fp16_sin_table[255 - i % 256]); case 3: - return (fp16_cos_table[255 - i % 256]); + return (fp16_sin_table[i % 256]); default: /* inconceivable! */ return (0); Modified: head/sys/dev/syscons/plasma/fp16.h ============================================================================== --- head/sys/dev/syscons/plasma/fp16.h Sat Jan 2 10:07:31 2016 (r293048) +++ head/sys/dev/syscons/plasma/fp16.h Sat Jan 2 16:40:37 2016 (r293049) @@ -78,7 +78,8 @@ fp16_t fp16_sqrt(fp16_t); #define FP16_PI_2 102943 #define FP16_PI_4 51471 -/* cosine */ +/* sine and cosine */ +fp16_t fp16_sin(fp16_t); fp16_t fp16_cos(fp16_t); #endif Modified: head/sys/dev/syscons/plasma/plasma_saver.c ============================================================================== --- head/sys/dev/syscons/plasma/plasma_saver.c Sat Jan 2 10:07:31 2016 (r293048) +++ head/sys/dev/syscons/plasma/plasma_saver.c Sat Jan 2 16:40:37 2016 (r293049) @@ -104,7 +104,7 @@ plasma_update(video_adapter_t *adp) sqd = ItoFP16(dx * dx + dy * dy); d = fp16_sqrt(sqd); /* divide by 4 to stretch out the pattern */ - m = fp16_add(m, fp16_cos(d / 4)); + m = fp16_sub(m, fp16_cos(d / 4)); } /* * m is now in the range +/- FOCI, but we need a From owner-svn-src-all@freebsd.org Sat Jan 2 17:14:23 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C3D98A5E1E5; Sat, 2 Jan 2016 17:14:23 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A0C2C1E01; Sat, 2 Jan 2016 17:14:23 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02HEM6k042498; Sat, 2 Jan 2016 17:14:22 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02HEMMK042496; Sat, 2 Jan 2016 17:14:22 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201601021714.u02HEMMK042496@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sat, 2 Jan 2016 17:14:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293050 - head/sys/dev/ath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 17:14:23 -0000 Author: adrian Date: Sat Jan 2 17:14:22 2016 New Revision: 293050 URL: https://svnweb.freebsd.org/changeset/base/293050 Log: [ath] add explicit bus barriers. The ath hal and driver code all assume the world is an x86 or the bus layer does an explicit bus flush after each operation (eg netbsd.) However, we don't do that. So, to be "correct" on platforms like sparc64, mips and ppc (and maybe ARM, I am not sure), just do explicit barriers after each operation. Now, this does slow things down a tad on embedded platforms but I'd rather things be "correct" versus "fast." At some later point if someone wishes it to be fast then we should add the barrier calls to the HAL and driver. Tested: * carambola 2 (AR9331.) Modified: head/sys/dev/ath/ah_osdep.c head/sys/dev/ath/ah_osdep.h Modified: head/sys/dev/ath/ah_osdep.c ============================================================================== --- head/sys/dev/ath/ah_osdep.c Sat Jan 2 16:40:37 2016 (r293049) +++ head/sys/dev/ath/ah_osdep.c Sat Jan 2 17:14:22 2016 (r293050) @@ -291,6 +291,7 @@ ath_hal_reg_write(struct ath_hal *ah, u_ if (ah->ah_config.ah_serialise_reg_war) mtx_lock_spin(&ah_regser_mtx); bus_space_write_4(tag, h, reg, val); + OS_BUS_BARRIER_REG(ah, reg, OS_BUS_BARRIER_WRITE); if (ah->ah_config.ah_serialise_reg_war) mtx_unlock_spin(&ah_regser_mtx); } @@ -311,6 +312,7 @@ ath_hal_reg_read(struct ath_hal *ah, u_i if (ah->ah_config.ah_serialise_reg_war) mtx_lock_spin(&ah_regser_mtx); + OS_BUS_BARRIER_REG(ah, reg, OS_BUS_BARRIER_READ); val = bus_space_read_4(tag, h, reg); if (ah->ah_config.ah_serialise_reg_war) mtx_unlock_spin(&ah_regser_mtx); @@ -371,6 +373,7 @@ ath_hal_reg_write(struct ath_hal *ah, u_ if (ah->ah_config.ah_serialise_reg_war) mtx_lock_spin(&ah_regser_mtx); bus_space_write_4(tag, h, reg, val); + OS_BUS_BARRIER_REG(ah, reg, OS_BUS_BARRIER_WRITE); if (ah->ah_config.ah_serialise_reg_war) mtx_unlock_spin(&ah_regser_mtx); } @@ -391,6 +394,7 @@ ath_hal_reg_read(struct ath_hal *ah, u_i if (ah->ah_config.ah_serialise_reg_war) mtx_lock_spin(&ah_regser_mtx); + OS_BUS_BARRIER_REG(ah, reg, OS_BUS_BARRIER_READ); val = bus_space_read_4(tag, h, reg); if (ah->ah_config.ah_serialise_reg_war) mtx_unlock_spin(&ah_regser_mtx); Modified: head/sys/dev/ath/ah_osdep.h ============================================================================== --- head/sys/dev/ath/ah_osdep.h Sat Jan 2 16:40:37 2016 (r293049) +++ head/sys/dev/ath/ah_osdep.h Sat Jan 2 17:14:22 2016 (r293050) @@ -110,6 +110,27 @@ struct ath_hal; do { } while (0) /* + * Read and write barriers. Some platforms require more strongly ordered + * operations and unfortunately most of the HAL is written assuming everything + * is either an x86 or the bus layer will do the barriers for you. + * + * Read barriers should occur before each read, and write barriers + * occur after each write. + * + * Later on for SDIO/USB parts we will methodize this and make them no-ops; + * register accesses will go via USB commands. + */ +#define OS_BUS_BARRIER_READ BUS_SPACE_BARRIER_READ +#define OS_BUS_BARRIER_WRITE BUS_SPACE_BARRIER_WRITE +#define OS_BUS_BARRIER_RW \ + (BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE) +#define OS_BUS_BARRIER(_ah, _start, _len, _t) \ + bus_space_barrier((bus_space_tag_t)(_ah)->ah_st, \ + (bus_space_handle_t)(_ah)->ah_sh, (_start), (_len), (_t)) +#define OS_BUS_BARRIER_REG(_ah, _reg, _t) \ + OS_BUS_BARRIER((_ah), (_reg), 4, (_t)) + +/* * Register read/write operations are either handled through * platform-dependent routines (or when debugging is enabled * with AH_DEBUG); or they are inline expanded using the macros @@ -123,11 +144,17 @@ extern void ath_hal_reg_write(struct ath extern u_int32_t ath_hal_reg_read(struct ath_hal *ah, u_int reg); #else #define OS_REG_WRITE(_ah, _reg, _val) \ + do { \ bus_space_write_4((bus_space_tag_t)(_ah)->ah_st, \ - (bus_space_handle_t)(_ah)->ah_sh, (_reg), (_val)) + (bus_space_handle_t)(_ah)->ah_sh, (_reg), (_val)); \ + OS_BUS_BARRIER_REG((_ah), (_reg), OS_BUS_BARRIER_WRITE); \ + } while (0) #define OS_REG_READ(_ah, _reg) \ + do { \ + OS_BUS_BARRIER_REG((_ah), (_reg), OS_BUS_BARRIER_READ); \ bus_space_read_4((bus_space_tag_t)(_ah)->ah_st, \ - (bus_space_handle_t)(_ah)->ah_sh, (_reg)) + (bus_space_handle_t)(_ah)->ah_sh, (_reg)); \ + } while (0) #endif #ifdef AH_DEBUG_ALQ From owner-svn-src-all@freebsd.org Sat Jan 2 18:10:55 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3720BA5F25B; Sat, 2 Jan 2016 18:10:55 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 032DF18AC; Sat, 2 Jan 2016 18:10:54 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02IAs56057789; Sat, 2 Jan 2016 18:10:54 GMT (envelope-from nwhitehorn@FreeBSD.org) Received: (from nwhitehorn@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02IArou057787; Sat, 2 Jan 2016 18:10:53 GMT (envelope-from nwhitehorn@FreeBSD.org) Message-Id: <201601021810.u02IArou057787@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: nwhitehorn set sender to nwhitehorn@FreeBSD.org using -f From: Nathan Whitehorn Date: Sat, 2 Jan 2016 18:10:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293051 - head/sys/powerpc/aim X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 18:10:55 -0000 Author: nwhitehorn Date: Sat Jan 2 18:10:53 2016 New Revision: 293051 URL: https://svnweb.freebsd.org/changeset/base/293051 Log: Switch setting MSR[SF] to C code. This removes any CPU-specific code (MSF[SF] is a Book 3-S thing) in the 64-bit locore64.S. Modified: head/sys/powerpc/aim/aim_machdep.c head/sys/powerpc/aim/locore64.S Modified: head/sys/powerpc/aim/aim_machdep.c ============================================================================== --- head/sys/powerpc/aim/aim_machdep.c Sat Jan 2 17:14:22 2016 (r293050) +++ head/sys/powerpc/aim/aim_machdep.c Sat Jan 2 18:10:53 2016 (r293051) @@ -179,6 +179,17 @@ aim_cpu_init(vm_offset_t toc) trap_offset = 0; cacheline_warn = 0; + #ifdef __powerpc64__ + /* + * Switch to 64-bit mode, if the bootloader didn't, before we start + * using memory beyond what the bootloader might have set up. + * Guaranteed not to cause an implicit branch since we either (a) + * started with a 32-bit bootloader below 4 GB or (b) were already in + * 64-bit mode, making this a no-op. + */ + mtmsrd(mfmsr() | PSL_SF); + #endif + /* Various very early CPU fix ups */ switch (mfpvr() >> 16) { /* Modified: head/sys/powerpc/aim/locore64.S ============================================================================== --- head/sys/powerpc/aim/locore64.S Sat Jan 2 17:14:22 2016 (r293050) +++ head/sys/powerpc/aim/locore64.S Sat Jan 2 18:10:53 2016 (r293051) @@ -157,13 +157,6 @@ ASENTRY_NOPROF(__start) ld %r5,64(%r1) ld %r6,72(%r1) - /* Switch to 64-bit mode */ - mfmsr %r9 - li %r8,1 - insrdi %r9,%r8,1,0 - mtmsrd %r9 - isync - /* Begin CPU init */ mr %r4,%r2 /* Replace ignored r4 with tocbase for trap handlers */ bl powerpc_init From owner-svn-src-all@freebsd.org Sat Jan 2 18:15:11 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A70CFA5F483; Sat, 2 Jan 2016 18:15:11 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6714E1CCD; Sat, 2 Jan 2016 18:15:11 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02IFAvT060545; Sat, 2 Jan 2016 18:15:10 GMT (envelope-from nwhitehorn@FreeBSD.org) Received: (from nwhitehorn@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02IFAip060542; Sat, 2 Jan 2016 18:15:10 GMT (envelope-from nwhitehorn@FreeBSD.org) Message-Id: <201601021815.u02IFAip060542@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: nwhitehorn set sender to nwhitehorn@FreeBSD.org using -f From: Nathan Whitehorn Date: Sat, 2 Jan 2016 18:15:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293052 - in head/sys/powerpc: booke include powerpc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 18:15:11 -0000 Author: nwhitehorn Date: Sat Jan 2 18:15:10 2016 New Revision: 293052 URL: https://svnweb.freebsd.org/changeset/base/293052 Log: Bring CPU features list in line with the ABI requirements. MFC after: 1 week Modified: head/sys/powerpc/booke/booke_machdep.c head/sys/powerpc/include/cpu.h head/sys/powerpc/powerpc/cpu.c Modified: head/sys/powerpc/booke/booke_machdep.c ============================================================================== --- head/sys/powerpc/booke/booke_machdep.c Sat Jan 2 18:10:53 2016 (r293051) +++ head/sys/powerpc/booke/booke_machdep.c Sat Jan 2 18:15:10 2016 (r293052) @@ -211,6 +211,8 @@ void booke_cpu_init(void) { + cpu_features |= PPC_FEATURE_BOOKE; + pmap_mmu_install(MMU_TYPE_BOOKE, BUS_PROBE_GENERIC); } Modified: head/sys/powerpc/include/cpu.h ============================================================================== --- head/sys/powerpc/include/cpu.h Sat Jan 2 18:10:53 2016 (r293051) +++ head/sys/powerpc/include/cpu.h Sat Jan 2 18:15:10 2016 (r293052) @@ -48,19 +48,32 @@ */ extern int cpu_features; +extern int cpu_features2; #define PPC_FEATURE_32 0x80000000 /* Always true */ #define PPC_FEATURE_64 0x40000000 /* Defined on a 64-bit CPU */ #define PPC_FEATURE_HAS_ALTIVEC 0x10000000 #define PPC_FEATURE_HAS_FPU 0x08000000 #define PPC_FEATURE_HAS_MMU 0x04000000 -#define PPC_FEATURE_UNIFIED_CACHE 0x01000000 -#define PPC_FEATURE_HAS_VSX 0x00000080 +#define PPC_FEATURE_UNIFIED_CACHE 0x01000000 +#define PPC_FEATURE_BOOKE 0x00008000 +#define PPC_FEATURE_SMT 0x00004000 +#define PPC_FEATURE_ARCH_2_05 0x00001000 +#define PPC_FEATURE_HAS_DFP 0x00000400 +#define PPC_FEATURE_ARCH_2_06 0x00000100 +#define PPC_FEATURE_HAS_VSX 0x00000080 + +#define PPC_FEATURE2_ARCH_2_07 0x80000000 +#define PPC_FEATURE2_HAS_HTM 0x40000000 +#define PPC_FEATURE2_HAS_VCRYPTO 0x02000000 #define PPC_FEATURE_BITMASK \ "\20" \ "\040PPC32\037PPC64\035ALTIVEC\034FPU\033MMU\031UNIFIEDCACHE" \ - "\010VSX" + "\020BOOKE\017SMT\015ARCH205\013DFP\011ARCH206\010VSX" +#define PPC_FEATURE2_BITMASK \ + "\20" \ + "\040ARCH207\037HTM\032VCRYPTO" #define TRAPF_USERMODE(frame) (((frame)->srr1 & PSL_PR) != 0) #define TRAPF_PC(frame) ((frame)->srr0) Modified: head/sys/powerpc/powerpc/cpu.c ============================================================================== --- head/sys/powerpc/powerpc/cpu.c Sat Jan 2 18:10:53 2016 (r293051) +++ head/sys/powerpc/powerpc/cpu.c Sat Jan 2 18:15:10 2016 (r293052) @@ -91,6 +91,7 @@ struct cputab { uint16_t revfmt; int features; /* Do not include PPC_FEATURE_32 or * PPC_FEATURE_HAS_MMU */ + int features2; void (*cpu_setup)(int cpuid, uint16_t vers); }; #define REVFMT_MAJMIN 1 /* %u.%u */ @@ -98,93 +99,102 @@ struct cputab { #define REVFMT_DEC 3 /* %u */ static const struct cputab models[] = { { "Motorola PowerPC 601", MPC601, REVFMT_DEC, - PPC_FEATURE_HAS_FPU | PPC_FEATURE_UNIFIED_CACHE, cpu_6xx_setup }, + PPC_FEATURE_HAS_FPU | PPC_FEATURE_UNIFIED_CACHE, 0, cpu_6xx_setup }, { "Motorola PowerPC 602", MPC602, REVFMT_DEC, - PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 603", MPC603, REVFMT_MAJMIN, - PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 603e", MPC603e, REVFMT_MAJMIN, - PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 603ev", MPC603ev, REVFMT_MAJMIN, - PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 604", MPC604, REVFMT_MAJMIN, - PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 604ev", MPC604ev, REVFMT_MAJMIN, - PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 620", MPC620, REVFMT_HEX, - PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, NULL }, + PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, 0, NULL }, { "Motorola PowerPC 750", MPC750, REVFMT_MAJMIN, - PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "IBM PowerPC 750FX", IBM750FX, REVFMT_MAJMIN, - PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "IBM PowerPC 970", IBM970, REVFMT_MAJMIN, PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, - cpu_970_setup }, + 0, cpu_970_setup }, { "IBM PowerPC 970FX", IBM970FX, REVFMT_MAJMIN, PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, - cpu_970_setup }, + 0, cpu_970_setup }, { "IBM PowerPC 970GX", IBM970GX, REVFMT_MAJMIN, PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, - cpu_970_setup }, + 0, cpu_970_setup }, { "IBM PowerPC 970MP", IBM970MP, REVFMT_MAJMIN, PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, - cpu_970_setup }, + 0, cpu_970_setup }, { "IBM POWER4", IBMPOWER4, REVFMT_MAJMIN, - PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, NULL }, + PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, 0, NULL }, { "IBM POWER4+", IBMPOWER4PLUS, REVFMT_MAJMIN, - PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, NULL }, + PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, 0, NULL }, { "IBM POWER5", IBMPOWER5, REVFMT_MAJMIN, - PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, NULL }, + PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU | PPC_FEATURE_SMT, 0, NULL }, { "IBM POWER5+", IBMPOWER5PLUS, REVFMT_MAJMIN, - PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, NULL }, + PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU | PPC_FEATURE_SMT, 0, NULL }, { "IBM POWER6", IBMPOWER6, REVFMT_MAJMIN, - PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, - NULL }, + PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU | + PPC_FEATURE_SMT | PPC_FEATURE_ARCH_2_05, 0, NULL }, { "IBM POWER7", IBMPOWER7, REVFMT_MAJMIN, PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU | - PPC_FEATURE_HAS_VSX, NULL }, + PPC_FEATURE_SMT | PPC_FEATURE_ARCH_2_05 | PPC_FEATURE_ARCH_2_06 | + PPC_FEATURE_HAS_VSX, 0, NULL }, { "IBM POWER7+", IBMPOWER7PLUS, REVFMT_MAJMIN, PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU | - PPC_FEATURE_HAS_VSX, NULL }, + PPC_FEATURE_SMT | PPC_FEATURE_ARCH_2_05 | PPC_FEATURE_ARCH_2_06 | + PPC_FEATURE_HAS_VSX, 0, NULL }, { "IBM POWER8E", IBMPOWER8E, REVFMT_MAJMIN, PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU | - PPC_FEATURE_HAS_VSX, NULL }, + PPC_FEATURE_SMT | PPC_FEATURE_ARCH_2_05 | PPC_FEATURE_ARCH_2_06 | + PPC_FEATURE_HAS_VSX, + PPC_FEATURE2_ARCH_2_07 | PPC_FEATURE2_HAS_HTM | + PPC_FEATURE2_HAS_VCRYPTO, NULL }, { "IBM POWER8", IBMPOWER8, REVFMT_MAJMIN, PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU | - PPC_FEATURE_HAS_VSX, NULL }, + PPC_FEATURE_SMT | PPC_FEATURE_ARCH_2_05 | PPC_FEATURE_ARCH_2_06 | + PPC_FEATURE_HAS_VSX, + PPC_FEATURE2_ARCH_2_07 | PPC_FEATURE2_HAS_HTM | + PPC_FEATURE2_HAS_VCRYPTO, NULL }, { "Motorola PowerPC 7400", MPC7400, REVFMT_MAJMIN, - PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 7410", MPC7410, REVFMT_MAJMIN, - PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 7450", MPC7450, REVFMT_MAJMIN, - PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 7455", MPC7455, REVFMT_MAJMIN, - PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 7457", MPC7457, REVFMT_MAJMIN, - PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 7447A", MPC7447A, REVFMT_MAJMIN, - PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 7448", MPC7448, REVFMT_MAJMIN, - PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 8240", MPC8240, REVFMT_MAJMIN, - PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Motorola PowerPC 8245", MPC8245, REVFMT_MAJMIN, - PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, + PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup }, { "Freescale e500v1 core", FSL_E500v1, REVFMT_MAJMIN, - 0, cpu_booke_setup }, + PPC_FEATURE_BOOKE, 0, cpu_booke_setup }, { "Freescale e500v2 core", FSL_E500v2, REVFMT_MAJMIN, - 0, cpu_booke_setup }, + PPC_FEATURE_BOOKE, 0, cpu_booke_setup }, { "Freescale e500mc core", FSL_E500mc, REVFMT_MAJMIN, - PPC_FEATURE_HAS_FPU, cpu_booke_setup }, + PPC_FEATURE_BOOKE | PPC_FEATURE_HAS_FPU, 0, cpu_booke_setup }, { "Freescale e5500 core", FSL_E5500, REVFMT_MAJMIN, - PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, cpu_booke_setup }, - { "Freescale e6500 core", FSL_E6500, REVFMT_MAJMIN, - PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, + PPC_FEATURE_BOOKE | PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, 0, cpu_booke_setup }, + { "Freescale e6500 core", FSL_E6500, REVFMT_MAJMIN, + PPC_FEATURE_BOOKE | PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | + PPC_FEATURE_HAS_FPU, 0, cpu_booke_setup }, { "IBM Cell Broadband Engine", IBMCELLBE, REVFMT_MAJMIN, - PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, - NULL}, - { "Unknown PowerPC CPU", 0, REVFMT_HEX, 0, NULL }, + PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU | + PPC_FEATURE_SMT, 0, NULL}, + { "Unknown PowerPC CPU", 0, REVFMT_HEX, 0, 0, NULL }, }; static void cpu_6xx_print_cacheinfo(u_int, uint16_t); @@ -194,8 +204,11 @@ static char model[64]; SYSCTL_STRING(_hw, HW_MODEL, model, CTLFLAG_RD, model, 0, ""); int cpu_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU; +int cpu_features2 = 0; SYSCTL_OPAQUE(_hw, OID_AUTO, cpu_features, CTLFLAG_RD, &cpu_features, sizeof(cpu_features), "IX", "PowerPC CPU features"); +SYSCTL_OPAQUE(_hw, OID_AUTO, cpu_features2, CTLFLAG_RD, + &cpu_features2, sizeof(cpu_features2), "IX", "PowerPC CPU features 2"); /* Provide some user-friendly aliases for bits in cpu_features */ SYSCTL_PROC(_hw, OID_AUTO, floatingpoint, CTLTYPE_INT | CTLFLAG_RD, @@ -265,8 +278,12 @@ cpu_setup(u_int cpuid) printf("\n"); cpu_features |= cp->features; + cpu_features2 |= cp->features2; printf("cpu%d: Features %b\n", cpuid, cpu_features, PPC_FEATURE_BITMASK); + if (cpu_features2 != 0) + printf("cpu%d: Features2 %b\n", cpuid, cpu_features2, + PPC_FEATURE2_BITMASK); /* * Configure CPU From owner-svn-src-all@freebsd.org Sat Jan 2 18:16:25 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EBC5FA5F533; Sat, 2 Jan 2016 18:16:25 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A2CEA1E4A; Sat, 2 Jan 2016 18:16:25 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02IGOUL060621; Sat, 2 Jan 2016 18:16:24 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02IGOXQ060620; Sat, 2 Jan 2016 18:16:24 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601021816.u02IGOXQ060620@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 2 Jan 2016 18:16:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293053 - head/sys/boot/uboot/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 18:16:26 -0000 Author: ian Date: Sat Jan 2 18:16:24 2016 New Revision: 293053 URL: https://svnweb.freebsd.org/changeset/base/293053 Log: Use 64-bit math when finding a block of ram to hold the kernel. This fixes a problem on 32-bit systems which have ram occupying the end of the physical address space -- for example, a block of ram at 0x80000000 with a size of 0x80000000 was overflowing 32 bit math and ending up with a calculated size of zero. This is a fix for one of the two problems mentioned in the PR. Something similar will need to be done on the kernel side before the PR is closed. PR: 201614 Modified: head/sys/boot/uboot/lib/copy.c Modified: head/sys/boot/uboot/lib/copy.c ============================================================================== --- head/sys/boot/uboot/lib/copy.c Sat Jan 2 18:15:10 2016 (r293052) +++ head/sys/boot/uboot/lib/copy.c Sat Jan 2 18:16:24 2016 (r293053) @@ -69,11 +69,11 @@ uint64_t uboot_loadaddr(u_int type, void *data, uint64_t addr) { struct sys_info *si; - uintptr_t sblock, eblock, subldr, eubldr; - uintptr_t biggest_block, this_block; - size_t biggest_size, this_size; + uint64_t sblock, eblock, subldr, eubldr; + uint64_t biggest_block, this_block; + uint64_t biggest_size, this_size; int i; - char * envstr; + char *envstr; if (addr == 0) { /* @@ -100,14 +100,15 @@ uboot_loadaddr(u_int type, void *data, u biggest_block = 0; biggest_size = 0; - subldr = rounddown2((uintptr_t)_start, KERN_ALIGN); - eubldr = roundup2(uboot_heap_end, KERN_ALIGN); + subldr = rounddown2((uint64_t)_start, KERN_ALIGN); + eubldr = roundup2((uint64_t)uboot_heap_end, KERN_ALIGN); for (i = 0; i < si->mr_no; i++) { if (si->mr[i].flags != MR_ATTR_DRAM) continue; - sblock = roundup2(si->mr[i].start, KERN_ALIGN); - eblock = rounddown2(si->mr[i].start + si->mr[i].size, + sblock = roundup2((uint64_t)si->mr[i].start, KERN_ALIGN); + eblock = rounddown2((uint64_t)si->mr[i].start + + si->mr[i].size, KERN_ALIGN); if (biggest_size == 0) sblock += KERN_MINADDR; if (subldr >= sblock && subldr < eblock) { @@ -134,9 +135,10 @@ uboot_loadaddr(u_int type, void *data, u if (biggest_size == 0) panic("Not enough DRAM to load kernel\n"); #if 0 - printf("Loading kernel into region 0x%08x-0x%08x (%u MiB)\n", - biggest_block, biggest_block + biggest_size - 1, - biggest_size / 1024 / 1024); + printf("Loading kernel into region 0x%08jx-0x%08jx (%ju MiB)\n", + (uintmax_t)biggest_block, + (uintmax_t)biggest_block + biggest_size - 1, + (uintmax_t)biggest_size / 1024 / 1024); #endif return (biggest_block); } From owner-svn-src-all@freebsd.org Sat Jan 2 18:32:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B9C79A5FA75; Sat, 2 Jan 2016 18:32:21 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 895BD1C4E; Sat, 2 Jan 2016 18:32:21 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02IWKOU066404; Sat, 2 Jan 2016 18:32:20 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02IWKQD066403; Sat, 2 Jan 2016 18:32:20 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201601021832.u02IWKQD066403@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sat, 2 Jan 2016 18:32:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293054 - head/sys/dev/ath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 18:32:21 -0000 Author: adrian Date: Sat Jan 2 18:32:20 2016 New Revision: 293054 URL: https://svnweb.freebsd.org/changeset/base/293054 Log: ... and that would've never worked. Sorry! (Note: everything I tested on locally has ATH_DEBUG / AH_DEBUG set.) Modified: head/sys/dev/ath/ah_osdep.h Modified: head/sys/dev/ath/ah_osdep.h ============================================================================== --- head/sys/dev/ath/ah_osdep.h Sat Jan 2 18:16:24 2016 (r293053) +++ head/sys/dev/ath/ah_osdep.h Sat Jan 2 18:32:20 2016 (r293054) @@ -143,18 +143,13 @@ struct ath_hal; extern void ath_hal_reg_write(struct ath_hal *ah, u_int reg, u_int32_t val); extern u_int32_t ath_hal_reg_read(struct ath_hal *ah, u_int reg); #else +/* XXX TODO: enforce barriers */ #define OS_REG_WRITE(_ah, _reg, _val) \ - do { \ bus_space_write_4((bus_space_tag_t)(_ah)->ah_st, \ - (bus_space_handle_t)(_ah)->ah_sh, (_reg), (_val)); \ - OS_BUS_BARRIER_REG((_ah), (_reg), OS_BUS_BARRIER_WRITE); \ - } while (0) + (bus_space_handle_t)(_ah)->ah_sh, (_reg), (_val)) #define OS_REG_READ(_ah, _reg) \ - do { \ - OS_BUS_BARRIER_REG((_ah), (_reg), OS_BUS_BARRIER_READ); \ bus_space_read_4((bus_space_tag_t)(_ah)->ah_st, \ - (bus_space_handle_t)(_ah)->ah_sh, (_reg)); \ - } while (0) + (bus_space_handle_t)(_ah)->ah_sh, (_reg)) #endif #ifdef AH_DEBUG_ALQ From owner-svn-src-all@freebsd.org Sat Jan 2 18:35:12 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9850BA5FBD9; Sat, 2 Jan 2016 18:35:12 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 674161E46; Sat, 2 Jan 2016 18:35:12 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02IZBV4066554; Sat, 2 Jan 2016 18:35:11 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02IZBok066553; Sat, 2 Jan 2016 18:35:11 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201601021835.u02IZBok066553@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sat, 2 Jan 2016 18:35:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293055 - head/usr.sbin/kbdcontrol X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 18:35:12 -0000 Author: emaste Date: Sat Jan 2 18:35:11 2016 New Revision: 293055 URL: https://svnweb.freebsd.org/changeset/base/293055 Log: kbdmap.5: Use current names for ASCII control codes lf, ff, us Refer to the old names nl, np, ns as historical aliases. PR: 205776, 205778 MFC After: 1 week Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/kbdcontrol/kbdmap.5 Modified: head/usr.sbin/kbdcontrol/kbdmap.5 ============================================================================== --- head/usr.sbin/kbdcontrol/kbdmap.5 Sat Jan 2 18:32:20 2016 (r293054) +++ head/usr.sbin/kbdcontrol/kbdmap.5 Sat Jan 2 18:35:11 2016 (r293055) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 29, 2008 +.Dd January 2, 2016 .Dt KBDMAP 5 .Os .Sh NAME @@ -111,9 +111,9 @@ ack, bel, bs, ht, -nl, +lf, vt, -np, +ff, cr, so, si, @@ -132,10 +132,16 @@ esc, fs, gs, rs, -ns, us, sp, del. +.It Ar control-alias +One of the historical aliases for certain +.Tn ASCII +control characters: +nl, +np, +ns. .It Ar accentname By giving one of the accent names, the next key pressed will produce From owner-svn-src-all@freebsd.org Sat Jan 2 19:14:21 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 58854A5E659; Sat, 2 Jan 2016 19:14:21 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1871E1736; Sat, 2 Jan 2016 19:14:21 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02JEKfL078306; Sat, 2 Jan 2016 19:14:20 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02JEKVF078304; Sat, 2 Jan 2016 19:14:20 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601021914.u02JEKVF078304@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 2 Jan 2016 19:14:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293056 - in head/sys: arm64/arm64 conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 19:14:21 -0000 Author: ian Date: Sat Jan 2 19:14:19 2016 New Revision: 293056 URL: https://svnweb.freebsd.org/changeset/base/293056 Log: Add an OF_decode_addr() implementation for arm64. Discussed with: andrew Added: head/sys/arm64/arm64/ofw_machdep.c (contents, props changed) Modified: head/sys/conf/files.arm64 Added: head/sys/arm64/arm64/ofw_machdep.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm64/arm64/ofw_machdep.c Sat Jan 2 19:14:19 2016 (r293056) @@ -0,0 +1,54 @@ +/*- + * Copyright (c) 2015 Ian Lepore + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#include + +#include +#include + +extern struct bus_space memmap_bus; + +int +OF_decode_addr(phandle_t dev, int regno, bus_space_tag_t *tag, + bus_space_handle_t *handle) +{ + bus_addr_t addr; + bus_size_t size; + int err; + + err = ofw_reg_to_paddr(dev, regno, &addr, &size, NULL); + if (err != 0) + return (err); + + *tag = memmap_bus; + return (bus_space_map(*tag, addr, size, 0, handle)); +} Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Sat Jan 2 18:35:11 2016 (r293055) +++ head/sys/conf/files.arm64 Sat Jan 2 19:14:19 2016 (r293056) @@ -38,6 +38,7 @@ arm64/arm64/mem.c standard arm64/arm64/minidump_machdep.c standard arm64/arm64/mp_machdep.c optional smp arm64/arm64/nexus.c standard +arm64/arm64/ofw_machdep.c optional fdt arm64/arm64/pic_if.m standard arm64/arm64/pmap.c standard arm64/arm64/stack_machdep.c optional ddb | stack From owner-svn-src-all@freebsd.org Sat Jan 2 19:28:37 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7C425A5EB58; Sat, 2 Jan 2016 19:28:37 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2C5F71C62; Sat, 2 Jan 2016 19:28:37 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02JSaMi081446; Sat, 2 Jan 2016 19:28:36 GMT (envelope-from nwhitehorn@FreeBSD.org) Received: (from nwhitehorn@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02JSa2a081443; Sat, 2 Jan 2016 19:28:36 GMT (envelope-from nwhitehorn@FreeBSD.org) Message-Id: <201601021928.u02JSa2a081443@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: nwhitehorn set sender to nwhitehorn@FreeBSD.org using -f From: Nathan Whitehorn Date: Sat, 2 Jan 2016 19:28:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293057 - in head/sys: arm64/include dev/ofw sparc64/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 19:28:37 -0000 Author: nwhitehorn Date: Sat Jan 2 19:28:35 2016 New Revision: 293057 URL: https://svnweb.freebsd.org/changeset/base/293057 Log: Make using the #address-cells property on the interrupt parent in device tree parsing opt-out rather than opt-in. All FDT-based systems as well as PowerPC systems with real Open Firmware use the CHRP-derived binding that includes it, which makes SPARC the odd man out here. Making it opt-out avoids astonishment on new platform bring up. Modified: head/sys/arm64/include/ofw_machdep.h head/sys/dev/ofw/ofw_bus_subr.c head/sys/sparc64/include/ofw_machdep.h Modified: head/sys/arm64/include/ofw_machdep.h ============================================================================== --- head/sys/arm64/include/ofw_machdep.h Sat Jan 2 19:14:19 2016 (r293056) +++ head/sys/arm64/include/ofw_machdep.h Sat Jan 2 19:28:35 2016 (r293057) @@ -41,7 +41,4 @@ struct mem_region { vm_size_t mr_size; }; -/* FDT follows ePAPR */ -#define OFW_EPAPR - #endif /* _MACHINE_OFW_MACHDEP_H_ */ Modified: head/sys/dev/ofw/ofw_bus_subr.c ============================================================================== --- head/sys/dev/ofw/ofw_bus_subr.c Sat Jan 2 19:14:19 2016 (r293056) +++ head/sys/dev/ofw/ofw_bus_subr.c Sat Jan 2 19:28:35 2016 (r293057) @@ -361,10 +361,11 @@ ofw_bus_search_intrmap(void *intr, int i paddrsz = 0; while (i > 0) { bcopy(mptr + physsz + intrsz, &parent, sizeof(parent)); -#ifdef OFW_EPAPR +#ifndef OFW_IMAP_NO_IPARENT_ADDR_CELLS /* - * Find if we need to read the parent address data. Sparc64 - * uses a different encoding that doesn't include this data. + * Find if we need to read the parent address data. + * CHRP-derived OF bindings, including ePAPR-compliant FDTs, + * use this as an optional part of the specifier. */ if (OF_getencprop(OF_node_from_xref(parent), "#address-cells", &paddrsz, sizeof(paddrsz)) == -1) Modified: head/sys/sparc64/include/ofw_machdep.h ============================================================================== --- head/sys/sparc64/include/ofw_machdep.h Sat Jan 2 19:14:19 2016 (r293056) +++ head/sys/sparc64/include/ofw_machdep.h Sat Jan 2 19:28:35 2016 (r293057) @@ -34,6 +34,9 @@ typedef uint64_t cell_t; +/* sparc64 doesn't use the interrupt parent #address-cells in interrupt maps */ +#define OFW_IMAP_NO_IPARENT_ADDR_CELLS + int OF_decode_addr(phandle_t, int, int *, bus_addr_t *); void OF_getetheraddr(device_t, u_char *); u_int OF_getscsinitid(device_t); From owner-svn-src-all@freebsd.org Sat Jan 2 19:34:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D2881A5EDFB; Sat, 2 Jan 2016 19:34:38 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9E635113D; Sat, 2 Jan 2016 19:34:38 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02JYbvt084439; Sat, 2 Jan 2016 19:34:37 GMT (envelope-from nwhitehorn@FreeBSD.org) Received: (from nwhitehorn@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02JYbX5084437; Sat, 2 Jan 2016 19:34:37 GMT (envelope-from nwhitehorn@FreeBSD.org) Message-Id: <201601021934.u02JYbX5084437@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: nwhitehorn set sender to nwhitehorn@FreeBSD.org using -f From: Nathan Whitehorn Date: Sat, 2 Jan 2016 19:34:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293058 - in head/sys/powerpc: include powerpc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 19:34:38 -0000 Author: nwhitehorn Date: Sat Jan 2 19:34:37 2016 New Revision: 293058 URL: https://svnweb.freebsd.org/changeset/base/293058 Log: Bump the maximum number of interrupt controllers to allow for the proliferation of them on large IBM systems and add some error checking if we exceed that number. MFC after: 1 week Modified: head/sys/powerpc/include/intr_machdep.h head/sys/powerpc/powerpc/intr_machdep.c Modified: head/sys/powerpc/include/intr_machdep.h ============================================================================== --- head/sys/powerpc/include/intr_machdep.h Sat Jan 2 19:28:35 2016 (r293057) +++ head/sys/powerpc/include/intr_machdep.h Sat Jan 2 19:34:37 2016 (r293058) @@ -30,7 +30,7 @@ #define INTR_VECTORS 256 -#define MAX_PICS 5 +#define MAX_PICS 16 #define MAP_IRQ(node, pin) powerpc_get_irq(node, pin) /* Modified: head/sys/powerpc/powerpc/intr_machdep.c ============================================================================== --- head/sys/powerpc/powerpc/intr_machdep.c Sat Jan 2 19:28:35 2016 (r293057) +++ head/sys/powerpc/powerpc/intr_machdep.c Sat Jan 2 19:34:37 2016 (r293058) @@ -352,6 +352,9 @@ powerpc_register_pic(device_t dev, uint3 npics++; } + KASSERT(npics < MAX_PICS, + ("Number of PICs exceeds maximum (%d)", MAX_PICS)); + mtx_unlock(&intr_table_lock); } @@ -385,6 +388,9 @@ powerpc_get_irq(uint32_t node, u_int pin nirqs += 128; npics++; + KASSERT(npics < MAX_PICS, + ("Number of PICs exceeds maximum (%d)", MAX_PICS)); + mtx_unlock(&intr_table_lock); return (piclist[idx].base + pin); From owner-svn-src-all@freebsd.org Sat Jan 2 20:19:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 28CE7A5FB0B; Sat, 2 Jan 2016 20:19:42 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from mx1.scaleengine.net (mx1.scaleengine.net [209.51.186.6]) by mx1.freebsd.org (Postfix) with ESMTP id DE2C41AD5; Sat, 2 Jan 2016 20:19:41 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from [10.1.1.2] (unknown [10.1.1.2]) (Authenticated sender: allanjude.freebsd@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id 8A690D899; Sat, 2 Jan 2016 20:19:40 +0000 (UTC) Subject: Re: svn commit: r292955 - head/lib/libmd To: Bruce Evans References: <201512301804.tBUI4oGp065466@repo.freebsd.org> <20151231115651.R995@besplex.bde.org> <20151231143314.Y1520@besplex.bde.org> <5684D606.3080609@freebsd.org> <56857911.5010205@freebsd.org> <56876DF1.4030807@freebsd.org> <20160102210313.M934@besplex.bde.org> Cc: "Jonathan T. Looney" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Allan Jude X-Enigmail-Draft-Status: N1110 Message-ID: <568830DD.4080006@freebsd.org> Date: Sat, 2 Jan 2016 15:19:41 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <20160102210313.M934@besplex.bde.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Wi6QfO8nTjV1lrg40kwbNOGXqaFa80LtA" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 20:19:42 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --Wi6QfO8nTjV1lrg40kwbNOGXqaFa80LtA Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 2016-01-02 05:07, Bruce Evans wrote: > On Sat, 2 Jan 2016, Allan Jude wrote: >=20 >> On 2015-12-31 13:50, Allan Jude wrote: >>> On 2015-12-31 13:32, Jonathan T. Looney wrote: >>>> On 12/31/15, 2:15 AM, "Allan Jude" wrote: >>>> >>>>> It seems these problems also slow things down, a lot: >>>>> >>>>> # time md5 /media/md5test/bigdata >>>>> MD5 (/media/md5test/bigdata) =3D 6afad0bf5d8318093e943229be05be67 >>>>> 4.310u 3.476s 0:07.79 99.8% 20+167k 0+0io 0pf+0w >>>>> # time env LD_PRELOAD=3D/usr/obj/media/svn/md5/head/tmp/lib/libmd.s= o >>>>> /usr/obj/media/svn/md5/head/sbin/md5/md5 /media/md5test/bigdata >>>>> MD5 (/media/md5test/bigdata) =3D 6afad0bf5d8318093e943229be05be67 >>>>> 4.133u 0.354s 0:04.49 99.7% 20+167k 1+0io 0pf+0w >>>>> >>>>> (file is fully cached in ZFS ARC, dd reads it at 11GB/s) >>>>> >>>>> Will investigate more tomorrow. >>>> >>>> md5 will be slower than dd due to the extra processing it needs to >>>> do to >>>> generate the hash. I suspect that explains the difference you're see= ing >>>> between those utilities. >>> >>> Sorry, you missed my point here. >>> >>> I replaced MDXFile() with the implementation included in my earlier >>> email. Using the newer libmd with that code, cut the time to md5 the >>> SAME data down a lot. I need to do a more scientific test on a box th= at >>> isn't doing other stuff still though. >>> >>> The comment about dd doing 11GB/s, was just to clarify that I wasn't >>> reading the file from disk, which would introduce other variables. >> >> I found the cause of my bogus benchmark, the world on my test machine >> was just old enough to be missing jmg@'s bufsize patch. >> >> Now the difference is about 1 second on a 2GB file, so ignore my >> foolishness. >=20 > That patch is surprisingly new. >=20 > The main slowness that I complained about was for the other path in md5= > that must be used for special files. That uses stdio so it suffers fro= m > stdio trusting st_blksize. But st_blksize is rarely as small as the ol= d > size BUFSIZ in MDXFile. >=20 > Bruce >=20 I did some experiments on MDXFilter, adjusting the buffer size fo 16kb, and using setvbuf() on stdin before reading from it. It improved things, but only marginally. dd if=3D/mnt/bigzerofile bs=3D1m | md5 10 GB took 80 seconds for unmodified md5, and 73.5 seconds with the bigger buffer size. I will try to setup and flamegraph it, and see if we can determine what can be done to make it faster. --=20 Allan Jude --Wi6QfO8nTjV1lrg40kwbNOGXqaFa80LtA Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (MingW32) iQIcBAEBAgAGBQJWiDDgAAoJEBmVNT4SmAt++V4QAIFqNPQfNz70nWB4H9FLjwNv /wYiRttW4F2qKpYTutWBihciRCFDwifLoVmdeUg4BJd+j63pOgpO3Y74pdpxkA2k DEym4FIdMAlVTG2sw8PqxZlbpxEKU1qr+RIercR7AmiPyGZpkoHtR+3USWFNpR+A 6PoLpUr77TbwfXEhlegueiwnTWeu3OmqqJZTQ8+CJdn6za7hVeNlPLVYWvOnPYvx 65gLzLuy/cgwtb9CvabmTF577Vyi9nxGrm5SQIUIo5T40J8OJmLc9JhYZaTZ4qwg pATgWxR3JoFVY0ZKloveWMUmB3FryVkPBfhHvGZTJ5VdVpc7PK5W6Uk/RX5EoqSJ UB1Bmp0YnOafKuHzLLmzH24AcC4DShZiYwljaXJ/k+S7leZpjecyhb0veuTgMYvj IYrtaVJY2zMaUJw9VPI2ksyFwXZ4e/jcSoGgsMuzHDm6Q+74jBv8D8PVZjhOKZ+1 hNzccQJqqTzjXOMNOX9xUqr+R4bAmzIIr63xQcZC/M9V46u0B15ZFi1VqEQkDrxy tOvhvmh8BFrSyNZIxiFGLX6TePVMjCDvMpyGq+Z1nfWl1VOuUlLeNBiX/EjtBhIy m710LajAvRU+YiYYWPeVEpnL33XQI/xqIQULq8UAXlKz139tePe47BROGs/ySikt /QlrSshZw7NqOh8Z+UWI =oG7U -----END PGP SIGNATURE----- --Wi6QfO8nTjV1lrg40kwbNOGXqaFa80LtA-- From owner-svn-src-all@freebsd.org Sat Jan 2 20:29:29 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C8194A5FF53; Sat, 2 Jan 2016 20:29:29 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 96EBF125D; Sat, 2 Jan 2016 20:29:29 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02KTSkT099643; Sat, 2 Jan 2016 20:29:28 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02KTSbS099642; Sat, 2 Jan 2016 20:29:28 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201601022029.u02KTSbS099642@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 2 Jan 2016 20:29:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293059 - head/sys/fs/devfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 20:29:29 -0000 Author: kib Date: Sat Jan 2 20:29:28 2016 New Revision: 293059 URL: https://svnweb.freebsd.org/changeset/base/293059 Log: Hide transient EBADF errors caused by the parallel revoke(2) or forced unmount of devfs mounts, by restarting the failed syscall. When restarted, failing syscalls eventually either stop finding the node and returning ENOENT, or the vnode op vectors finally transition to the deadfs vop. The later return EIO or other error, more appropriate for the operation. Submitted by: bde Tested by: pho MFC after: 3 weeks Modified: head/sys/fs/devfs/devfs_vnops.c Modified: head/sys/fs/devfs/devfs_vnops.c ============================================================================== --- head/sys/fs/devfs/devfs_vnops.c Sat Jan 2 19:34:37 2016 (r293058) +++ head/sys/fs/devfs/devfs_vnops.c Sat Jan 2 20:29:28 2016 (r293059) @@ -244,18 +244,18 @@ devfs_populate_vp(struct vnode *vp) if (DEVFS_DMP_DROP(dmp)) { sx_xunlock(&dmp->dm_lock); devfs_unmount_final(dmp); - return (EBADF); + return (ERESTART); } if ((vp->v_iflag & VI_DOOMED) != 0) { sx_xunlock(&dmp->dm_lock); - return (EBADF); + return (ERESTART); } de = vp->v_data; KASSERT(de != NULL, ("devfs_populate_vp: vp->v_data == NULL but vnode not doomed")); if ((de->de_flags & DE_DOOMED) != 0) { sx_xunlock(&dmp->dm_lock); - return (EBADF); + return (ERESTART); } return (0); From owner-svn-src-all@freebsd.org Sat Jan 2 21:13:15 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8FE33A5EF95; Sat, 2 Jan 2016 21:13:15 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5F18A19F7; Sat, 2 Jan 2016 21:13:15 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02LDEf4014233; Sat, 2 Jan 2016 21:13:14 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02LDEXw014232; Sat, 2 Jan 2016 21:13:14 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601022113.u02LDEXw014232@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 2 Jan 2016 21:13:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293060 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 21:13:15 -0000 Author: ian Date: Sat Jan 2 21:13:14 2016 New Revision: 293060 URL: https://svnweb.freebsd.org/changeset/base/293060 Log: Fix the arm64 build by adding an all-important '&' to get a pointer. I'm not sure how I missed the error when I test-built here, I guess the pointy hat must have slipped down over my eyes. Modified: head/sys/arm64/arm64/ofw_machdep.c Modified: head/sys/arm64/arm64/ofw_machdep.c ============================================================================== --- head/sys/arm64/arm64/ofw_machdep.c Sat Jan 2 20:29:28 2016 (r293059) +++ head/sys/arm64/arm64/ofw_machdep.c Sat Jan 2 21:13:14 2016 (r293060) @@ -49,6 +49,6 @@ OF_decode_addr(phandle_t dev, int regno, if (err != 0) return (err); - *tag = memmap_bus; + *tag = &memmap_bus; return (bus_space_map(*tag, addr, size, 0, handle)); } From owner-svn-src-all@freebsd.org Sat Jan 2 22:00:53 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86F10A5FCF9; Sat, 2 Jan 2016 22:00:53 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 35B8B1C9E; Sat, 2 Jan 2016 22:00:53 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02M0qHC028667; Sat, 2 Jan 2016 22:00:52 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02M0q0H028666; Sat, 2 Jan 2016 22:00:52 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601022200.u02M0q0H028666@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 2 Jan 2016 22:00:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293061 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 22:00:53 -0000 Author: ian Date: Sat Jan 2 22:00:52 2016 New Revision: 293061 URL: https://svnweb.freebsd.org/changeset/base/293061 Log: Use 64-bit math when processing the lists of physical and excluded memory to generate the phys_avail and dump_avail arrays. This is a partial fix for the kernel side of the problem mentioned in the PR. This part handles the cases where comparing start and end addresses of a block would fail because 32-bit wrap caused the end address to come out zero if the end of the region is the end of the address space (0xffffffff with 32-bit vm_paddr_t, but now the code should also work right if we ever support LPAE with 36-bit addresses). More work is necessary to make systems with ram at the end of the physical address space usable, but at least initially it's going to be more like a workaround than a fix, so this non-hacky part is being committed first. PR: 201614 Modified: head/sys/arm/arm/physmem.c Modified: head/sys/arm/arm/physmem.c ============================================================================== --- head/sys/arm/arm/physmem.c Sat Jan 2 21:13:14 2016 (r293060) +++ head/sys/arm/arm/physmem.c Sat Jan 2 22:00:52 2016 (r293061) @@ -161,7 +161,7 @@ static size_t regions_to_avail(vm_paddr_t *avail, uint32_t exflags, long *pavail) { size_t acnt, exi, hwi; - vm_paddr_t end, start, xend, xstart; + uint64_t end, start, xend, xstart; long availmem; const struct region *exp, *hwp; @@ -171,7 +171,7 @@ regions_to_avail(vm_paddr_t *avail, uint for (hwi = 0, hwp = hwregions; hwi < hwcnt; ++hwi, ++hwp) { start = hwp->addr; end = hwp->size + start; - realmem += arm32_btop(end - start); + realmem += arm32_btop((vm_offset_t)(end - start)); for (exi = 0, exp = exregions; exi < excnt; ++exi, ++exp) { /* * If the excluded region does not match given flags, @@ -212,9 +212,10 @@ regions_to_avail(vm_paddr_t *avail, uint * could affect the remainder of this hw region. */ if ((xstart > start) && (xend < end)) { - avail[acnt++] = start; - avail[acnt++] = xstart; - availmem += arm32_btop(xstart - start); + avail[acnt++] = (vm_paddr_t)start; + avail[acnt++] = (vm_paddr_t)xstart; + availmem += + arm32_btop((vm_offset_t)(xstart - start)); start = xend; continue; } @@ -233,9 +234,9 @@ regions_to_avail(vm_paddr_t *avail, uint * available entry for it. */ if (end > start) { - avail[acnt++] = start; - avail[acnt++] = end; - availmem += arm32_btop(end - start); + avail[acnt++] = (vm_paddr_t)start; + avail[acnt++] = (vm_paddr_t)end; + availmem += arm32_btop((vm_offset_t)(end - start)); } if (acnt >= MAX_AVAIL_ENTRIES) panic("Not enough space in the dump/phys_avail arrays"); From owner-svn-src-all@freebsd.org Sat Jan 2 22:04:38 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5E5AEA5FE57; Sat, 2 Jan 2016 22:04:38 +0000 (UTC) (envelope-from andreast@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2FC2D1FFA; Sat, 2 Jan 2016 22:04:38 +0000 (UTC) (envelope-from andreast@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02M4bxp029330; Sat, 2 Jan 2016 22:04:37 GMT (envelope-from andreast@FreeBSD.org) Received: (from andreast@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02M4bAw029329; Sat, 2 Jan 2016 22:04:37 GMT (envelope-from andreast@FreeBSD.org) Message-Id: <201601022204.u02M4bAw029329@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andreast set sender to andreast@FreeBSD.org using -f From: Andreas Tobler Date: Sat, 2 Jan 2016 22:04:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293062 - head/sys/powerpc/aim X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 22:04:38 -0000 Author: andreast Date: Sat Jan 2 22:04:37 2016 New Revision: 293062 URL: https://svnweb.freebsd.org/changeset/base/293062 Log: Fix booting of 32-bit kernels on 64-bit G5 hardware. For rs6000, most memory insns and addi/addis do not allow GPR0 for RA (they use literal zero there instead). So use a 'b' constraint to make sure to have a base register other than GPR0. GCC-4.7 and up handles this with allocating r9 instead of r0. Modified: head/sys/powerpc/aim/mp_cpudep.c Modified: head/sys/powerpc/aim/mp_cpudep.c ============================================================================== --- head/sys/powerpc/aim/mp_cpudep.c Sat Jan 2 22:00:52 2016 (r293061) +++ head/sys/powerpc/aim/mp_cpudep.c Sat Jan 2 22:04:37 2016 (r293062) @@ -77,10 +77,10 @@ cpudep_ap_early_bootstrap(void) #else __asm __volatile("ld %0, 16(%2); sync; isync; \ mtspr %1, %0; sync; isync;" - : "=r"(reg) : "K"(SPR_HID4), "r"(bsp_state)); + : "=r"(reg) : "K"(SPR_HID4), "b"(bsp_state)); __asm __volatile("ld %0, 24(%2); sync; isync; \ mtspr %1, %0; sync; isync;" - : "=r"(reg) : "K"(SPR_HID5), "r"(bsp_state)); + : "=r"(reg) : "K"(SPR_HID5), "b"(bsp_state)); #endif powerpc_sync(); break; @@ -324,10 +324,10 @@ cpudep_ap_setup() mfspr %0, %1; mfspr %0, %1; mfspr %0, %1; \ mfspr %0, %1; mfspr %0, %1; mfspr %0, %1; \ sync; isync" - : "=r"(reg) : "K"(SPR_HID0), "r"(bsp_state)); + : "=r"(reg) : "K"(SPR_HID0), "b"(bsp_state)); __asm __volatile("ld %0, 8(%2); sync; isync; \ mtspr %1, %0; mtspr %1, %0; sync; isync" - : "=r"(reg) : "K"(SPR_HID1), "r"(bsp_state)); + : "=r"(reg) : "K"(SPR_HID1), "b"(bsp_state)); #endif powerpc_sync(); From owner-svn-src-all@freebsd.org Sat Jan 2 22:20:40 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C7AFA5E438; Sat, 2 Jan 2016 22:20:40 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mx1.sbone.de (mx1.sbone.de [IPv6:2a01:4f8:130:3ffc::401:25]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 1C285184B; Sat, 2 Jan 2016 22:20:40 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.sbone.de (Postfix) with ESMTPS id ECFAA25D385E; Sat, 2 Jan 2016 22:20:36 +0000 (UTC) Received: from content-filter.sbone.de (content-filter.sbone.de [IPv6:fde9:577b:c1a9:31::2013:2742]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id B49D5C77005; Sat, 2 Jan 2016 22:20:35 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587]) by content-filter.sbone.de (content-filter.sbone.de [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024) with ESMTP id I8mP_d0fwBlo; Sat, 2 Jan 2016 22:20:34 +0000 (UTC) Received: from [IPv6:fde9:577b:c1a9:4410:451c:b13a:9af7:25a0] (unknown [IPv6:fde9:577b:c1a9:4410:451c:b13a:9af7:25a0]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id 83E03C76FEE; Sat, 2 Jan 2016 22:20:32 +0000 (UTC) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r293053 - head/sys/boot/uboot/lib From: "Bjoern A. Zeeb" In-Reply-To: <201601021816.u02IGOXQ060620@repo.freebsd.org> Date: Sat, 2 Jan 2016 22:20:28 +0000 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <90CAFE3D-DB95-4790-8FBD-9C40E6BF1075@lists.zabbadoz.net> References: <201601021816.u02IGOXQ060620@repo.freebsd.org> To: Ian Lepore X-Mailer: Apple Mail (2.2104) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 22:20:40 -0000 > On 02 Jan 2016, at 18:16 , Ian Lepore wrote: >=20 > Author: ian > Date: Sat Jan 2 18:16:24 2016 > New Revision: 293053 > URL: https://svnweb.freebsd.org/changeset/base/293053 >=20 > Log: > Use 64-bit math when finding a block of ram to hold the kernel. This = fixes > a problem on 32-bit systems which have ram occupying the end of the = physical > address space -- for example, a block of ram at 0x80000000 with a = size of > 0x80000000 was overflowing 32 bit math and ending up with a = calculated size > of zero. >=20 > This is a fix for one of the two problems mentioned in the PR. = Something > similar will need to be done on the kernel side before the PR is = closed. >=20 > PR: 201614 >=20 > Modified: > head/sys/boot/uboot/lib/copy.c This seems to have broken powerpc/powerpc64 worlds: =3D=3D=3D> sys/boot/uboot/lib (all) cc1: warnings being treated as errors /scratch/tmp/bz/head.svn/sys/boot/uboot/lib/copy.c: In function = 'uboot_loadaddr': /scratch/tmp/bz/head.svn/sys/boot/uboot/lib/copy.c:103: warning: cast = from pointer to integer of different size --- copy.o --- *** [copy.o] Error code 1 From owner-svn-src-all@freebsd.org Sat Jan 2 22:31:15 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7B74EA5E89D; Sat, 2 Jan 2016 22:31:15 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4BE4C1EC7; Sat, 2 Jan 2016 22:31:15 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02MVERP037284; Sat, 2 Jan 2016 22:31:14 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02MVEb5037283; Sat, 2 Jan 2016 22:31:14 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601022231.u02MVEb5037283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 2 Jan 2016 22:31:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293063 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 22:31:15 -0000 Author: ian Date: Sat Jan 2 22:31:14 2016 New Revision: 293063 URL: https://svnweb.freebsd.org/changeset/base/293063 Log: Work around problems that happen when there is ram at the end of the physical address space. Modified: head/sys/arm/arm/physmem.c Modified: head/sys/arm/arm/physmem.c ============================================================================== --- head/sys/arm/arm/physmem.c Sat Jan 2 22:04:37 2016 (r293062) +++ head/sys/arm/arm/physmem.c Sat Jan 2 22:31:14 2016 (r293063) @@ -280,10 +280,24 @@ arm_physmem_hardware_region(vm_paddr_t p /* * Filter out the page at PA 0x00000000. The VM can't handle it, as * pmap_extract() == 0 means failure. + * + * Also filter out the page at the end of the physical address space -- + * if addr is non-zero and addr+size is zero that means we wrapped to + * the next byte beyond what vm_paddr_t can express. The calculations + * in vm_page_startup() are going to have the same problem, so just work + * around it by leaving the last page out. + * + * XXX This just in: subtract out a whole megabyte, not just 1 page. + * Reducing the size by anything less than 1MB results in a NULL pointer + * deref in _vm_map_lock_read() very early in startup. Better to give + * up a whole megabyte than leave some folks with an unusable system + * while we investigate. */ if (pa == 0) { pa = PAGE_SIZE; sz -= PAGE_SIZE; + } else if (pa + sz == 0) { + sz -= 1024 * 1024; } /* From owner-svn-src-all@freebsd.org Sat Jan 2 22:36:55 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A83F7A5E9CF for ; Sat, 2 Jan 2016 22:36:55 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1b.ore.mailhop.org (outbound1b.ore.mailhop.org [54.200.247.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8A02E123B for ; Sat, 2 Jan 2016 22:36:55 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound1.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Sat, 2 Jan 2016 22:37:14 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id u02MakpB026739; Sat, 2 Jan 2016 15:36:46 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1451774206.1369.109.camel@freebsd.org> Subject: Re: svn commit: r293063 - head/sys/arm/arm From: Ian Lepore To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Sat, 02 Jan 2016 15:36:46 -0700 In-Reply-To: <201601022231.u02MVEb5037283@repo.freebsd.org> References: <201601022231.u02MVEb5037283@repo.freebsd.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 22:36:55 -0000 On Sat, 2016-01-02 at 22:31 +0000, Ian Lepore wrote: > Author: ian > Date: Sat Jan 2 22:31:14 2016 > New Revision: 293063 > URL: https://svnweb.freebsd.org/changeset/base/293063 > > Log: > Work around problems that happen when there is ram at the end of the > physical address space. > > Modified: > head/sys/arm/arm/physmem.c > > Modified: head/sys/arm/arm/physmem.c > ============================================================================== > --- head/sys/arm/arm/physmem.c> > Sat Jan 2 22:04:37 2016> > (r293062) > +++ head/sys/arm/arm/physmem.c> > Sat Jan 2 22:31:14 2016> > (r293063) > @@ -280,10 +280,24 @@ arm_physmem_hardware_region(vm_paddr_t p > > > /* > > > * Filter out the page at PA 0x00000000. The VM can't handle it, as > > > * pmap_extract() == 0 means failure. > +> > * > +> > * Also filter out the page at the end of the physical address space -- > +> > * if addr is non-zero and addr+size is zero that means we wrapped to > +> > * the next byte beyond what vm_paddr_t can express. The calculations > +> > * in vm_page_startup() are going to have the same problem, so just work > +> > * around it by leaving the last page out. > +> > * > +> > * XXX This just in: subtract out a whole megabyte, not just 1 page. > +> > * Reducing the size by anything less than 1MB results in a NULL pointer > +> > * deref in _vm_map_lock_read() very early in startup. Better to give > +> > * up a whole megabyte than leave some folks with an unusable system > +> > * while we investigate. > > > */ > > > if (pa == 0) { > > > > pa = PAGE_SIZE; > > > > sz -= PAGE_SIZE; > +> > } else if (pa + sz == 0) { > +> > > sz -= 1024 * 1024; > > > } > > > > /* > Bah. This is not what I intended to commit, I was going to reword that comment block to better match what I found while testing. I was editing the commit message when I decided to do that, so I hit ^C in the shell that was waiting for me to finish editing in emacs, and to my surprise it sent the commit instead of cancelling. What's the right way to change your mind at this late stage of a commit? -- Ian From owner-svn-src-all@freebsd.org Sat Jan 2 22:46:44 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 64BE2A5EDA6 for ; Sat, 2 Jan 2016 22:46:44 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1b.ore.mailhop.org (outbound1b.ore.mailhop.org [54.200.247.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 491FE1B1D for ; Sat, 2 Jan 2016 22:46:43 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound1.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Sat, 2 Jan 2016 22:47:09 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id u02MkfsQ026767; Sat, 2 Jan 2016 15:46:41 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1451774801.1369.112.camel@freebsd.org> Subject: Re: svn commit: r293053 - head/sys/boot/uboot/lib From: Ian Lepore To: "Bjoern A. Zeeb" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Sat, 02 Jan 2016 15:46:41 -0700 In-Reply-To: <90CAFE3D-DB95-4790-8FBD-9C40E6BF1075@lists.zabbadoz.net> References: <201601021816.u02IGOXQ060620@repo.freebsd.org> <90CAFE3D-DB95-4790-8FBD-9C40E6BF1075@lists.zabbadoz.net> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 22:46:44 -0000 On Sat, 2016-01-02 at 22:20 +0000, Bjoern A. Zeeb wrote: > > On 02 Jan 2016, at 18:16 , Ian Lepore wrote: > > > > Author: ian > > Date: Sat Jan 2 18:16:24 2016 > > New Revision: 293053 > > URL: https://svnweb.freebsd.org/changeset/base/293053 > > > > Log: > > Use 64-bit math when finding a block of ram to hold the kernel. > > This fixes > > a problem on 32-bit systems which have ram occupying the end of > > the physical > > address space -- for example, a block of ram at 0x80000000 with a > > size of > > 0x80000000 was overflowing 32 bit math and ending up with a > > calculated size > > of zero. > > > > This is a fix for one of the two problems mentioned in the PR. > > Something > > similar will need to be done on the kernel side before the PR is > > closed. > > > > PR: 201614 > > > > Modified: > > head/sys/boot/uboot/lib/copy.c > > > This seems to have broken powerpc/powerpc64 worlds: > > ===> sys/boot/uboot/lib (all) > cc1: warnings being treated as errors > /scratch/tmp/bz/head.svn/sys/boot/uboot/lib/copy.c: In function > 'uboot_loadaddr': > /scratch/tmp/bz/head.svn/sys/boot/uboot/lib/copy.c:103: warning: cast > from pointer to integer of different size > --- copy.o --- > *** [copy.o] Error code 1 > Grrrr. Casting from a pointer to an integer of a different size is exactly what I want to do, and I thought explicitly casting was a rather elegant way of expressing that. -- Ian From owner-svn-src-all@freebsd.org Sat Jan 2 22:52:42 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 301F8A5F029; Sat, 2 Jan 2016 22:52:42 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-ob0-x233.google.com (mail-ob0-x233.google.com [IPv6:2607:f8b0:4003:c01::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E99031F25; Sat, 2 Jan 2016 22:52:41 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: by mail-ob0-x233.google.com with SMTP id wp13so91254832obc.1; Sat, 02 Jan 2016 14:52:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=l/gFtd2kUqCyTLEUrQBCfY6MlQFhvDV4f+9glLTwxOY=; b=QtIu2g2tnhTo35A78KmDjMawbPqIPmAjOmyxXkfz/balctumrN5phVZZ2BL9B9Snfs hjvJHD1bxQICxLu360icCvm+Siq3VDlOf4F99lYADcVfn2I33Oo4dRQuNeji+CNpMArG DdwaPt7i8/Ylw9uJXuI1TTdhTat0ime5r6bUdE/WTA/rN898a07z1ABRNb/UvxsKv9q6 ufTbDIOt+IdEPy6MHzdb8BoQCwVXMw/bNcaYy/VZuJnK5bf3aL6PaVLOrIPY1v8w/yhM nqJdJxw3DUTIyr2UwUxZjDC6UjmPAI8+Gi2G690L10tR9u6BXtB1j5rEEBtbzAaggtuy Z/Zg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alumni-cwru-edu.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=l/gFtd2kUqCyTLEUrQBCfY6MlQFhvDV4f+9glLTwxOY=; b=m4JxR5UpOX2GyA90NGxbqvKYhMp43JD3Q7sYAcacYcILlw6hQeL8zRCpzKoQWbBeY6 AsgDl2LpU5PekgWJknsYq3onwoAVY5Z2Y5w0eTEEzm0tSMWgLFqY+zVqkH2Tm6LA84Ci YRNiq5Q360/HPBDLNF417kyxBAN2ksiS6YGmw/Qz1EaTb74MPJVXCRu2cwuA4V0n4Y7J nn6kBmFtkr5SDpCKh0D9W0kjwlWyRgXFw+zRY2WZtjetCGAursh5h3CDwNR4muSXwHK0 +jpANvKajZAyKEwoE+eoXm9A0QEtKixg7xT7qKgx0JihGMv31s3FKcv5hdBW8bP3fxJB gJtA== MIME-Version: 1.0 X-Received: by 10.182.241.3 with SMTP id we3mr53648584obc.82.1451775161079; Sat, 02 Jan 2016 14:52:41 -0800 (PST) Sender: chmeeedalf@gmail.com Received: by 10.182.184.84 with HTTP; Sat, 2 Jan 2016 14:52:41 -0800 (PST) In-Reply-To: <1451774801.1369.112.camel@freebsd.org> References: <201601021816.u02IGOXQ060620@repo.freebsd.org> <90CAFE3D-DB95-4790-8FBD-9C40E6BF1075@lists.zabbadoz.net> <1451774801.1369.112.camel@freebsd.org> Date: Sat, 2 Jan 2016 16:52:41 -0600 X-Google-Sender-Auth: VolWvz_IyXLr6if1kZMI-BvIy2I Message-ID: Subject: Re: svn commit: r293053 - head/sys/boot/uboot/lib From: Justin Hibbits To: Ian Lepore Cc: "Bjoern A. Zeeb" , src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 22:52:42 -0000 On Sat, Jan 2, 2016 at 4:46 PM, Ian Lepore wrote: > On Sat, 2016-01-02 at 22:20 +0000, Bjoern A. Zeeb wrote: >> > On 02 Jan 2016, at 18:16 , Ian Lepore wrote: >> > >> > Author: ian >> > Date: Sat Jan 2 18:16:24 2016 >> > New Revision: 293053 >> > URL: https://svnweb.freebsd.org/changeset/base/293053 >> > >> > Log: >> > Use 64-bit math when finding a block of ram to hold the kernel. >> > This fixes >> > a problem on 32-bit systems which have ram occupying the end of >> > the physical >> > address space -- for example, a block of ram at 0x80000000 with a >> > size of >> > 0x80000000 was overflowing 32 bit math and ending up with a >> > calculated size >> > of zero. >> > >> > This is a fix for one of the two problems mentioned in the PR. >> > Something >> > similar will need to be done on the kernel side before the PR is >> > closed. >> > >> > PR: 201614 >> > >> > Modified: >> > head/sys/boot/uboot/lib/copy.c >> >> >> This seems to have broken powerpc/powerpc64 worlds: >> >> ===> sys/boot/uboot/lib (all) >> cc1: warnings being treated as errors >> /scratch/tmp/bz/head.svn/sys/boot/uboot/lib/copy.c: In function >> 'uboot_loadaddr': >> /scratch/tmp/bz/head.svn/sys/boot/uboot/lib/copy.c:103: warning: cast >> from pointer to integer of different size >> --- copy.o --- >> *** [copy.o] Error code 1 >> > > Grrrr. Casting from a pointer to an integer of a different size is > exactly what I want to do, and I thought explicitly casting was a > rather elegant way of expressing that. > > -- Ian > > Casting through uintptr_t should solve the problem. - Justin From owner-svn-src-all@freebsd.org Sat Jan 2 22:56:00 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DF8C3A5F15F; Sat, 2 Jan 2016 22:56:00 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B252611D2; Sat, 2 Jan 2016 22:56:00 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02MtxcR043922; Sat, 2 Jan 2016 22:55:59 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02Mtxe4043921; Sat, 2 Jan 2016 22:55:59 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601022255.u02Mtxe4043921@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 2 Jan 2016 22:55:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293064 - head/sys/boot/uboot/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 22:56:01 -0000 Author: ian Date: Sat Jan 2 22:55:59 2016 New Revision: 293064 URL: https://svnweb.freebsd.org/changeset/base/293064 Log: Cast pointer through uintptr_t on the way to uint64_t to squelch a warning. Modified: head/sys/boot/uboot/lib/copy.c Modified: head/sys/boot/uboot/lib/copy.c ============================================================================== --- head/sys/boot/uboot/lib/copy.c Sat Jan 2 22:31:14 2016 (r293063) +++ head/sys/boot/uboot/lib/copy.c Sat Jan 2 22:55:59 2016 (r293064) @@ -100,7 +100,7 @@ uboot_loadaddr(u_int type, void *data, u biggest_block = 0; biggest_size = 0; - subldr = rounddown2((uint64_t)_start, KERN_ALIGN); + subldr = rounddown2((uint64_t)(uintptr_t)_start, KERN_ALIGN); eubldr = roundup2((uint64_t)uboot_heap_end, KERN_ALIGN); for (i = 0; i < si->mr_no; i++) { if (si->mr[i].flags != MR_ATTR_DRAM) From owner-svn-src-all@freebsd.org Sat Jan 2 22:56:08 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A44CBA5F18C; Sat, 2 Jan 2016 22:56:08 +0000 (UTC) (envelope-from dwmalone@maths.tcd.ie) Received: from salmon.maths.tcd.ie (salmon.maths.tcd.ie [IPv6:2001:770:10:300::86e2:510b]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 410B7135F; Sat, 2 Jan 2016 22:56:08 +0000 (UTC) (envelope-from dwmalone@maths.tcd.ie) Received: from salmon.maths.tcd.ie (localhost [127.0.0.1]) by salmon.maths.tcd.ie (Postfix) with ESMTP id 17BDC1591F3; Sat, 2 Jan 2016 22:56:05 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=maths.tcd.ie; h= user-agent:in-reply-to:content-disposition:content-type :content-type:mime-version:references:message-id:subject:subject :from:from:date:date:received:received:received; s=20150418; t= 1451775359; x=1453589760; bh=R3Vg6DlMqNUXFLFZW5u1Rfvd1EYIA6aRFJu zWhFaERQ=; b=B1oxhiUDBxxSnqWfkQeVw1QuqrP5ljxeC+94taNDI3d8hR/+Aqd K4q51WTyzTmjDB1dgpbXiKUEr5hJHbXSvqIFi0LiEGcH6NpfknGkeYR3ZH9Coq5X zLDEU0xo/FxyEwnmtrShyjkgrU8SUTh6z+/NHJFpqSM3WNYAIGQH5gI4= X-Virus-Scanned: amavisd-new at maths.tcd.ie Received: from salmon.maths.tcd.ie ([127.0.0.1]) by salmon.maths.tcd.ie (salmon.maths.tcd.ie [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RWDvjD3q1urF; Sat, 2 Jan 2016 22:55:59 +0000 (GMT) Received: from smtp.maths.tcd.ie (walton.maths.tcd.ie [134.226.81.10]) by salmon.maths.tcd.ie (Postfix) with ESMTP id 552891591F0; Sat, 2 Jan 2016 22:55:59 +0000 (GMT) Received: by smtp.maths.tcd.ie (Postfix, from userid 238) id F1FF27308A; Sat, 2 Jan 2016 22:55:58 +0000 (GMT) Date: Sat, 2 Jan 2016 22:55:58 +0000 From: David Malone To: Colin Percival Cc: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, edwin@freebsd.org, Xin Li Subject: Re: svn commit: r289421 - in head/etc: . mtree ntp Message-ID: <20160102225558.GA57501@walton.maths.tcd.ie> References: <201510161404.t9GE4GqM046436@repo.freebsd.org> <5683D325.6020409@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5683D325.6020409@freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 22:56:08 -0000 On Wed, Dec 30, 2015 at 04:50:45AM -0800, Colin Percival wrote: > So... is someone going to be keeping this file up to date? We seem to have > the same information in contrib/tzdata/leapseconds (which is being kept up > to date -- thank you edwin and delphij!) but having this file in /etc/ntp/ > being out of date is making ntpd refuse to start. Which version of ntpd is that? I installed a machine from an image from the end of December earlier today and ntpd logged a message but started without any problems: ntpd: leapsecond file ('/etc/ntp/leap-seconds'): good hash signature ntpd: leapsecond file ('/etc/ntp/leap-seconds'): loaded, expire=2015-12-28T00:00:00Z last=2015-07-01T00:00:00Z ofs=36 ntpd: leapsecond file ('/etc/ntp/leap-seconds'): expired less than 6 days ago David. From owner-svn-src-all@freebsd.org Sat Jan 2 23:14:54 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6B6F6A5F71D; Sat, 2 Jan 2016 23:14:54 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1FA7B1DCF; Sat, 2 Jan 2016 23:14:54 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u02NErvE050060; Sat, 2 Jan 2016 23:14:53 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u02NErHt050059; Sat, 2 Jan 2016 23:14:53 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201601022314.u02NErHt050059@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 2 Jan 2016 23:14:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r293065 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 23:14:54 -0000 Author: ian Date: Sat Jan 2 23:14:52 2016 New Revision: 293065 URL: https://svnweb.freebsd.org/changeset/base/293065 Log: Reword the comment to better describe what I found while researching the problem that led to this temporary workaround (and also so I can properly cite the PR in the commit this time). In general this is intended to be a temporary workaround until we can figure out why including any ram from the last megabyte of the physical address space leads to a NULL pointer deref. Debugging that is made trickier by the fact that I couldn't even get a backtrace in ddb. PR: 201614 Modified: head/sys/arm/arm/physmem.c Modified: head/sys/arm/arm/physmem.c ============================================================================== --- head/sys/arm/arm/physmem.c Sat Jan 2 22:55:59 2016 (r293064) +++ head/sys/arm/arm/physmem.c Sat Jan 2 23:14:52 2016 (r293065) @@ -282,16 +282,14 @@ arm_physmem_hardware_region(vm_paddr_t p * pmap_extract() == 0 means failure. * * Also filter out the page at the end of the physical address space -- - * if addr is non-zero and addr+size is zero that means we wrapped to - * the next byte beyond what vm_paddr_t can express. The calculations - * in vm_page_startup() are going to have the same problem, so just work - * around it by leaving the last page out. + * if addr is non-zero and addr+size is zero we wrapped to the next byte + * beyond what vm_paddr_t can express. That leads to a NULL pointer + * deref early in startup; work around it by leaving the last page out. * * XXX This just in: subtract out a whole megabyte, not just 1 page. - * Reducing the size by anything less than 1MB results in a NULL pointer - * deref in _vm_map_lock_read() very early in startup. Better to give - * up a whole megabyte than leave some folks with an unusable system - * while we investigate. + * Reducing the size by anything less than 1MB results in the NULL + * pointer deref in _vm_map_lock_read(). Better to give up a megabyte + * than leave some folks with an unusable system while we investigate. */ if (pa == 0) { pa = PAGE_SIZE; From owner-svn-src-all@freebsd.org Sat Jan 2 23:59:22 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20159A5E2B2; Sat, 2 Jan 2016 23:59:22 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail106.syd.optusnet.com.au (mail106.syd.optusnet.com.au [211.29.132.42]) by mx1.freebsd.org (Postfix) with ESMTP id E06741DD8; Sat, 2 Jan 2016 23:59:21 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail106.syd.optusnet.com.au (Postfix) with ESMTPS id D20EA3C5D6A; Sun, 3 Jan 2016 10:59:10 +1100 (AEDT) Date: Sun, 3 Jan 2016 10:59:10 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Ian Lepore cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r293064 - head/sys/boot/uboot/lib In-Reply-To: <201601022255.u02Mtxe4043921@repo.freebsd.org> Message-ID: <20160103101219.C1033@besplex.bde.org> References: <201601022255.u02Mtxe4043921@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=R4L+YolX c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=YDqFnzWMhb-X08EIHl0A:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jan 2016 23:59:22 -0000 On Sat, 2 Jan 2016, Ian Lepore wrote: > Log: > Cast pointer through uintptr_t on the way to uint64_t to squelch a warning. > > Modified: head/sys/boot/uboot/lib/copy.c > ============================================================================== > --- head/sys/boot/uboot/lib/copy.c Sat Jan 2 22:31:14 2016 (r293063) > +++ head/sys/boot/uboot/lib/copy.c Sat Jan 2 22:55:59 2016 (r293064) > @@ -100,7 +100,7 @@ uboot_loadaddr(u_int type, void *data, u > > biggest_block = 0; > biggest_size = 0; > - subldr = rounddown2((uint64_t)_start, KERN_ALIGN); > + subldr = rounddown2((uint64_t)(uintptr_t)_start, KERN_ALIGN); > eubldr = roundup2((uint64_t)uboot_heap_end, KERN_ALIGN); > for (i = 0; i < si->mr_no; i++) { > if (si->mr[i].flags != MR_ATTR_DRAM) This gives 1 more bogus cast here: - _start is a function pointer, so it should be cast to uintfptr_t - rounddown2() acts on any integer and subldr is an integer, and both of the integers are unsigned, and KERN_ALIGN is a small signed int, and so there is no need for any further cast, except possibily on arches with uintfptr_t larger than uint64_t or the type of subldr where the compiler warns about downwards cast, but then the downcast may be a bug since it just breaks the warning - if there is a need for a further cast, then it should be of rounddown2(), not of one of its args, so that the args and the internals of rounddown2() don't have to be analysed for promotions. I did some of did analysis above -- KERN_ALIGN is a small int, so its promotion is int and that is presumably smaller than uintfptr_t. rounddown2() is of course undocumented, but everyone knows that macros like it are supposed to mix the args without any casts and end up with a type related to the arg types. - subldr actually has type uintptr_t, so the old cast to uint64_t was just a double type mismatch (mismatched with both the source and target) and leaving it makes it just change the correct type to a wrong one before converting back to the correct type. Since you cast to uintptr_t and not uintfptr_t and KERN_ALIGN is small int, the rvalue would already have the same type as the lvalue unless it is messed up by the uint64_t cast. - not quite similarly on the next line: - the lvalue has type uintptr_t - casting to uint64_t is wrong, as in the new version of the previous line. uboot_heap_end already has type uintptr_t, and casting it to uint64_t just breaks it or complicates the analysis: - if uintptr_t is 64 bits, then casting to uint64_t has no effect - if uintptr_t is 128 bits, then casting to uint64_t just breaks things - if uintptr_t is 32, bits, then casting to uint64_t doesn't even break things. There is an overflow problem in theory, but the bogus cast doesn't fix the problem. roundup2() normally overflows if the address is at a nonzero offset on the last "page" (of size KERN_ALIGN bytes here). Then roundup2() should overflow to 0. On 32-bit arches, the bogus cast avoids the overflow and gives a result of 0x100000000. But since the rvalue has type uintptr_t, it cannot represent this result, and the value overflows to 0 on assignment instead of in roundup2(). roundup2() and its overflow problems are of course undocumented. Another of your recent commits reminded me about this overflow problem. I will complain about that separately :-). rounddown2() cannot overflow, and is also missing the bug of being named in lower case despite being an unsafe macro (one which evaluates its args more than once). It happens to be safe because it only needs to evaluate its args more than once, but its name is just because it folows the bad example of howmany(). Even howmany() is undocumented. Bruce