From owner-svn-src-all@freebsd.org Sun Aug 18 01:00:22 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 10BE5B6D75; Sun, 18 Aug 2019 01:00:22 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 469zHn6f53z3xFZ; Sun, 18 Aug 2019 01:00:21 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C59FC221C6; Sun, 18 Aug 2019 01:00:21 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7I10LuT027171; Sun, 18 Aug 2019 01:00:21 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7I10LPL027170; Sun, 18 Aug 2019 01:00:21 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <201908180100.x7I10LPL027170@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Sun, 18 Aug 2019 01:00:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351179 - head/release/picobsd/tinyware/simple_httpd X-SVN-Group: head X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: head/release/picobsd/tinyware/simple_httpd X-SVN-Commit-Revision: 351179 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 01:00:22 -0000 Author: eugen Date: Sun Aug 18 01:00:21 2019 New Revision: 351179 URL: https://svnweb.freebsd.org/changeset/base/351179 Log: simple_httpd was not buildable for some time due to multiple missing "static" keywords and -Werror,-Wmissing-variable-declarations This change adds needed "static" so it builds again with WARNS?=6 No functional changes. MFC after: 1 week Modified: head/release/picobsd/tinyware/simple_httpd/simple_httpd.c Modified: head/release/picobsd/tinyware/simple_httpd/simple_httpd.c ============================================================================== --- head/release/picobsd/tinyware/simple_httpd/simple_httpd.c Sat Aug 17 19:06:05 2019 (r351178) +++ head/release/picobsd/tinyware/simple_httpd/simple_httpd.c Sun Aug 18 01:00:21 2019 (r351179) @@ -48,33 +48,33 @@ #include #include -int http_port = 80; -int daemonize = 1; -int verbose = 0; -int http_sock, con_sock; +static int http_port = 80; +static int daemonize = 1; +static int verbose = 0; +static int http_sock, con_sock; -const char *fetch_mode = NULL; -char homedir[100]; -char logfile[80]; -char *adate(void); -void init_servconnection(void); -void http_date(void); -void http_output(const char *html); -void http_request(void); -void log_line(char *req); -void wait_connection(void); +static const char *fetch_mode = NULL; +static char homedir[100]; +static char logfile[80]; +static char *adate(void); +static void init_servconnection(void); +static void http_date(void); +static void http_output(const char *html); +static void http_request(void); +static void log_line(char *req); +static void wait_connection(void); -struct hostent *hst; -struct sockaddr_in source; +static struct hostent *hst; +static struct sockaddr_in source; /* HTTP basics */ static char httpd_server_ident[] = "Server: FreeBSD/PicoBSD simple_httpd 1.1\r"; static char http_200[] = "HTTP/1.0 200 OK\r"; -const char *default_mime_type = "application/octet-stream"; +static const char *default_mime_type = "application/octet-stream"; -const char *mime_type[][2] = { +static const char *mime_type[][2] = { { "txt", "text/plain" }, { "htm", "text/html" }, { "html", "text/html" }, @@ -83,7 +83,7 @@ const char *mime_type[][2] = { { "mp3", "audio/mpeg" } }; -const int mime_type_max = sizeof(mime_type) / sizeof(mime_type[0]) - 1; +static const int mime_type_max = sizeof(mime_type) / sizeof(mime_type[0]) - 1; /* Two parts, HTTP Header and then HTML */ static const char *http_404[2] = @@ -101,7 +101,7 @@ This server only supports GET and HEAD requests.\n Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 217D7BAFF3; Sun, 18 Aug 2019 04:19:42 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46B3jn6jwnz45WX; Sun, 18 Aug 2019 04:19:41 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C449E24642; Sun, 18 Aug 2019 04:19:41 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7I4Jffo045156; Sun, 18 Aug 2019 04:19:41 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7I4Jf1t045155; Sun, 18 Aug 2019 04:19:41 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201908180419.x7I4Jf1t045155@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Sun, 18 Aug 2019 04:19:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351180 - head/sys/ofed/include/rdma X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/ofed/include/rdma X-SVN-Commit-Revision: 351180 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 04:19:42 -0000 Author: cem Date: Sun Aug 18 04:19:41 2019 New Revision: 351180 URL: https://svnweb.freebsd.org/changeset/base/351180 Log: OFED: Fix accidental double-copy of rdma_sdp.h in r351176 The mistake came about like this: the first attempt to commit was blocked by a pre-commit hook due to missing SVN tags. svn revert doesn't delete new files, I guess. While reapplying the fixed diff, the non-empty target file was just concatenated with the new contents? Ugh. :-( Modified: head/sys/ofed/include/rdma/rdma_sdp.h Modified: head/sys/ofed/include/rdma/rdma_sdp.h ============================================================================== --- head/sys/ofed/include/rdma/rdma_sdp.h Sun Aug 18 01:00:21 2019 (r351179) +++ head/sys/ofed/include/rdma/rdma_sdp.h Sun Aug 18 04:19:41 2019 (r351180) @@ -78,81 +78,3 @@ struct sdp_hah { } __packed; #endif /* _SYS_OFED_INCLUDE_RDMA_RDMA_SDP_H_ */ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2019 Isilon Systems, LLC. - * - * 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. - */ - -#ifndef _SYS_OFED_INCLUDE_RDMA_RDMA_SDP_H_ -#define _SYS_OFED_INCLUDE_RDMA_RDMA_SDP_H_ - -#include -#include - -#include - -union cma_ip_addr { - struct in6_addr ip6; - struct { - __be32 pad[3]; - __be32 addr; - } ip4; -}; - -struct sdp_bsdh { - u8 mid; - u8 flags; - __u16 bufs; - __u32 len; - __u32 mseq; - __u32 mseq_ack; -} __packed; - -struct sdp_hh { - struct sdp_bsdh bsdh; - u8 majv_minv; - u8 ipv_cap; - u8 rsvd1; - u8 max_adverts; - __u32 desremrcvsz; - __u32 localrcvsz; - __u16 port; - __u16 rsvd2; - union cma_ip_addr src_addr; - union cma_ip_addr dst_addr; - u8 rsvd3[IB_CM_REQ_PRIVATE_DATA_SIZE - sizeof(struct sdp_bsdh) - 48]; -} __packed; - -struct sdp_hah { - struct sdp_bsdh bsdh; - u8 majv_minv; - u8 ipv_cap; - u8 rsvd1; - u8 ext_max_adverts; - __u32 actrcvsz; - u8 rsvd2[IB_CM_REP_PRIVATE_DATA_SIZE - sizeof(struct sdp_bsdh) - 8]; -} __packed; - -#endif /* _SYS_OFED_INCLUDE_RDMA_RDMA_SDP_H_ */ From owner-svn-src-all@freebsd.org Sun Aug 18 07:06:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1471BBE09C; Sun, 18 Aug 2019 07:06:33 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46B7QJ6n5Tz4CD1; Sun, 18 Aug 2019 07:06:32 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C6FF826490; Sun, 18 Aug 2019 07:06:32 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7I76WA8044825; Sun, 18 Aug 2019 07:06:32 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7I76W8U044822; Sun, 18 Aug 2019 07:06:32 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201908180706.x7I76W8U044822@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Sun, 18 Aug 2019 07:06:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351181 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 351181 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 07:06:33 -0000 Author: jeff Date: Sun Aug 18 07:06:31 2019 New Revision: 351181 URL: https://svnweb.freebsd.org/changeset/base/351181 Log: Encapsulate phys_avail manipulation in a set of simple routines. Add a NUMA aware boot time memory allocator that will be used to allocate early domain correct structures. Code partially submitted by gallatin. Reviewed by: gallatin, kib Tested by: pho Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21251 Modified: head/sys/vm/vm_page.c head/sys/vm/vm_phys.c head/sys/vm/vm_phys.h Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Sun Aug 18 04:19:41 2019 (r351180) +++ head/sys/vm/vm_page.c Sun Aug 18 07:06:31 2019 (r351181) @@ -538,7 +538,7 @@ vm_page_startup(vm_offset_t vaddr) char *list, *listend; vm_offset_t mapped; vm_paddr_t end, high_avail, low_avail, new_end, page_range, size; - vm_paddr_t biggestsize, last_pa, pa; + vm_paddr_t last_pa, pa; u_long pagecount; int biggestone, i, segind; #ifdef WITNESS @@ -548,22 +548,10 @@ vm_page_startup(vm_offset_t vaddr) long ii; #endif - biggestsize = 0; - biggestone = 0; vaddr = round_page(vaddr); - for (i = 0; phys_avail[i + 1]; i += 2) { - phys_avail[i] = round_page(phys_avail[i]); - phys_avail[i + 1] = trunc_page(phys_avail[i + 1]); - } - for (i = 0; phys_avail[i + 1]; i += 2) { - size = phys_avail[i + 1] - phys_avail[i]; - if (size > biggestsize) { - biggestone = i; - biggestsize = size; - } - } - + vm_phys_early_startup(); + biggestone = vm_phys_avail_largest(); end = phys_avail[biggestone+1]; /* @@ -776,7 +764,8 @@ vm_page_startup(vm_offset_t vaddr) * physical pages. */ for (i = 0; phys_avail[i + 1] != 0; i += 2) - vm_phys_add_seg(phys_avail[i], phys_avail[i + 1]); + if (vm_phys_avail_size(i) != 0) + vm_phys_add_seg(phys_avail[i], phys_avail[i + 1]); /* * Initialize the physical memory allocator. Modified: head/sys/vm/vm_phys.c ============================================================================== --- head/sys/vm/vm_phys.c Sun Aug 18 04:19:41 2019 (r351180) +++ head/sys/vm/vm_phys.c Sun Aug 18 07:06:31 2019 (r351181) @@ -1101,8 +1101,8 @@ vm_phys_free_pages(vm_page_t m, int order) vm_page_t m_buddy; KASSERT(m->order == VM_NFREEORDER, - ("vm_phys_free_pages: page %p has unexpected order %d", - m, m->order)); + ("vm_phys_free_pages: page %p(%p) has unexpected order %d", + m, (void *)m->phys_addr, m->order)); KASSERT(m->pool < VM_NFREEPOOL, ("vm_phys_free_pages: page %p has unexpected pool %d", m, m->pool)); @@ -1499,6 +1499,222 @@ done: vm_phys_enq_range(&m_ret[npages], npages_end - npages, fl, 0); } return (m_ret); +} + +/* + * Return the index of the first unused slot which may be the terminating + * entry. + */ +static int +vm_phys_avail_count(void) +{ + int i; + + for (i = 0; phys_avail[i + 1]; i += 2) + continue; + if (i > PHYS_AVAIL_ENTRIES) + panic("Improperly terminated phys_avail %d entries", i); + + return (i); +} + +/* + * Assert that a phys_avail entry is valid. + */ +static void +vm_phys_avail_check(int i) +{ + if (phys_avail[i] & PAGE_MASK) + panic("Unaligned phys_avail[%d]: %#jx", i, + (intmax_t)phys_avail[i]); + if (phys_avail[i+1] & PAGE_MASK) + panic("Unaligned phys_avail[%d + 1]: %#jx", i, + (intmax_t)phys_avail[i]); + if (phys_avail[i + 1] < phys_avail[i]) + panic("phys_avail[%d] start %#jx < end %#jx", i, + (intmax_t)phys_avail[i], (intmax_t)phys_avail[i+1]); +} + +/* + * Return the index of an overlapping phys_avail entry or -1. + */ +static int +vm_phys_avail_find(vm_paddr_t pa) +{ + int i; + + for (i = 0; phys_avail[i + 1]; i += 2) + if (phys_avail[i] <= pa && phys_avail[i + 1] > pa) + return (i); + return (-1); +} + +/* + * Return the index of the largest entry. + */ +int +vm_phys_avail_largest(void) +{ + vm_paddr_t sz, largesz; + int largest; + int i; + + largest = 0; + largesz = 0; + for (i = 0; phys_avail[i + 1]; i += 2) { + sz = vm_phys_avail_size(i); + if (sz > largesz) { + largesz = sz; + largest = i; + } + } + + return (largest); +} + +vm_paddr_t +vm_phys_avail_size(int i) +{ + + return (phys_avail[i + 1] - phys_avail[i]); +} + +/* + * Split an entry at the address 'pa'. Return zero on success or errno. + */ +static int +vm_phys_avail_split(vm_paddr_t pa, int i) +{ + int cnt; + + vm_phys_avail_check(i); + if (pa <= phys_avail[i] || pa >= phys_avail[i + 1]) + panic("vm_phys_avail_split: invalid address"); + cnt = vm_phys_avail_count(); + if (cnt >= PHYS_AVAIL_ENTRIES) + return (ENOSPC); + memmove(&phys_avail[i + 2], &phys_avail[i], + (cnt - i) * sizeof(phys_avail[0])); + phys_avail[i + 1] = pa; + phys_avail[i + 2] = pa; + vm_phys_avail_check(i); + vm_phys_avail_check(i+2); + + return (0); +} + +/* + * This routine allocates NUMA node specific memory before the page + * allocator is bootstrapped. + */ +vm_paddr_t +vm_phys_early_alloc(int domain, size_t alloc_size) +{ + int i, mem_index, biggestone; + vm_paddr_t pa, mem_start, mem_end, size, biggestsize, align; + + + /* + * Search the mem_affinity array for the biggest address + * range in the desired domain. This is used to constrain + * the phys_avail selection below. + */ + biggestsize = 0; + mem_index = 0; + mem_start = 0; + mem_end = -1; +#ifdef NUMA + if (mem_affinity != NULL) { + for (i = 0; ; i++) { + size = mem_affinity[i].end - mem_affinity[i].start; + if (size == 0) + break; + if (mem_affinity[i].domain != domain) + continue; + if (size > biggestsize) { + mem_index = i; + biggestsize = size; + } + } + mem_start = mem_affinity[mem_index].start; + mem_end = mem_affinity[mem_index].end; + } +#endif + + /* + * Now find biggest physical segment in within the desired + * numa domain. + */ + biggestsize = 0; + biggestone = 0; + for (i = 0; phys_avail[i + 1] != 0; i += 2) { + /* skip regions that are out of range */ + if (phys_avail[i+1] - alloc_size < mem_start || + phys_avail[i+1] > mem_end) + continue; + size = vm_phys_avail_size(i); + if (size > biggestsize) { + biggestone = i; + biggestsize = size; + } + } + alloc_size = round_page(alloc_size); + + /* + * Grab single pages from the front to reduce fragmentation. + */ + if (alloc_size == PAGE_SIZE) { + pa = phys_avail[biggestone]; + phys_avail[biggestone] += PAGE_SIZE; + vm_phys_avail_check(biggestone); + return (pa); + } + + /* + * Naturally align large allocations. + */ + align = phys_avail[biggestone + 1] & (alloc_size - 1); + if (alloc_size + align > biggestsize) + panic("cannot find a large enough size\n"); + if (align != 0 && + vm_phys_avail_split(phys_avail[biggestone + 1] - align, + biggestone) != 0) + /* Wasting memory. */ + phys_avail[biggestone + 1] -= align; + + phys_avail[biggestone + 1] -= alloc_size; + vm_phys_avail_check(biggestone); + pa = phys_avail[biggestone + 1]; + return (pa); +} + +void +vm_phys_early_startup(void) +{ + int i; + + for (i = 0; phys_avail[i + 1] != 0; i += 2) { + phys_avail[i] = round_page(phys_avail[i]); + phys_avail[i + 1] = trunc_page(phys_avail[i + 1]); + } + +#ifdef NUMA + /* Force phys_avail to be split by domain. */ + if (mem_affinity != NULL) { + int idx; + + for (i = 0; mem_affinity[i].end != 0; i++) { + idx = vm_phys_avail_find(mem_affinity[i].start); + if (idx != -1 && + phys_avail[idx] != mem_affinity[i].start) + vm_phys_avail_split(mem_affinity[i].start, idx); + idx = vm_phys_avail_find(mem_affinity[i].end); + if (idx != -1 && + phys_avail[idx] != mem_affinity[i].end) + vm_phys_avail_split(mem_affinity[i].end, idx); + } + } +#endif } #ifdef DDB Modified: head/sys/vm/vm_phys.h ============================================================================== --- head/sys/vm/vm_phys.h Sun Aug 18 04:19:41 2019 (r351180) +++ head/sys/vm/vm_phys.h Sun Aug 18 07:06:31 2019 (r351181) @@ -103,6 +103,11 @@ vm_page_t vm_phys_scan_contig(int domain, u_long npage void vm_phys_set_pool(int pool, vm_page_t m, int order); boolean_t vm_phys_unfree_page(vm_page_t m); int vm_phys_mem_affinity(int f, int t); +vm_paddr_t vm_phys_early_alloc(int domain, size_t alloc_size); +void vm_phys_early_startup(void); +int vm_phys_avail_largest(void); +vm_paddr_t vm_phys_avail_size(int i); + /* * From owner-svn-src-all@freebsd.org Sun Aug 18 07:43:16 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 88E4ABEFCE; Sun, 18 Aug 2019 07:43:16 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46B8Dh31jqz4FSM; Sun, 18 Aug 2019 07:43:16 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4A70826BBD; Sun, 18 Aug 2019 07:43:16 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7I7hGMO068270; Sun, 18 Aug 2019 07:43:16 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7I7hG3j068269; Sun, 18 Aug 2019 07:43:16 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201908180743.x7I7hG3j068269@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Sun, 18 Aug 2019 07:43:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351182 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 351182 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 07:43:16 -0000 Author: jeff Date: Sun Aug 18 07:43:15 2019 New Revision: 351182 URL: https://svnweb.freebsd.org/changeset/base/351182 Log: vm_phys_avail_find is only used on NUMA kernels. Fix a build error. Modified: head/sys/vm/vm_phys.c Modified: head/sys/vm/vm_phys.c ============================================================================== --- head/sys/vm/vm_phys.c Sun Aug 18 07:06:31 2019 (r351181) +++ head/sys/vm/vm_phys.c Sun Aug 18 07:43:15 2019 (r351182) @@ -1538,6 +1538,7 @@ vm_phys_avail_check(int i) /* * Return the index of an overlapping phys_avail entry or -1. */ +#ifdef NUMA static int vm_phys_avail_find(vm_paddr_t pa) { @@ -1548,6 +1549,7 @@ vm_phys_avail_find(vm_paddr_t pa) return (i); return (-1); } +#endif /* * Return the index of the largest entry. From owner-svn-src-all@freebsd.org Sun Aug 18 08:07:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4974FC04EC; Sun, 18 Aug 2019 08:07:32 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46B8mh16cvz4GYK; Sun, 18 Aug 2019 08:07:32 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 037C926F46; Sun, 18 Aug 2019 08:07:32 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7I87VTc080352; Sun, 18 Aug 2019 08:07:31 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7I87V7B080351; Sun, 18 Aug 2019 08:07:31 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201908180807.x7I87V7B080351@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Sun, 18 Aug 2019 08:07:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351183 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 351183 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 08:07:32 -0000 Author: jeff Date: Sun Aug 18 08:07:31 2019 New Revision: 351183 URL: https://svnweb.freebsd.org/changeset/base/351183 Log: Remove unnecessary debugging from r351181 that caused powerpc build to fail. Tested by: make universe TARGETS=powerpc Modified: head/sys/vm/vm_phys.c Modified: head/sys/vm/vm_phys.c ============================================================================== --- head/sys/vm/vm_phys.c Sun Aug 18 07:43:15 2019 (r351182) +++ head/sys/vm/vm_phys.c Sun Aug 18 08:07:31 2019 (r351183) @@ -1101,8 +1101,8 @@ vm_phys_free_pages(vm_page_t m, int order) vm_page_t m_buddy; KASSERT(m->order == VM_NFREEORDER, - ("vm_phys_free_pages: page %p(%p) has unexpected order %d", - m, (void *)m->phys_addr, m->order)); + ("vm_phys_free_pages: page %p has unexpected order %d", + m, m->order)); KASSERT(m->pool < VM_NFREEPOOL, ("vm_phys_free_pages: page %p has unexpected pool %d", m, m->pool)); From owner-svn-src-all@freebsd.org Sun Aug 18 08:08:57 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 67BF0C05B1; Sun, 18 Aug 2019 08:08:57 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46B8pK270Nz4Ggy; Sun, 18 Aug 2019 08:08:57 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2A8B826F47; Sun, 18 Aug 2019 08:08:57 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7I88udF080451; Sun, 18 Aug 2019 08:08:56 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7I88uwS080448; Sun, 18 Aug 2019 08:08:56 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201908180808.x7I88uwS080448@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 18 Aug 2019 08:08:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351184 - in head/sys/dev: extres/syscon fdt X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: in head/sys/dev: extres/syscon fdt X-SVN-Commit-Revision: 351184 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 08:08:57 -0000 Author: mmel Date: Sun Aug 18 08:08:56 2019 New Revision: 351184 URL: https://svnweb.freebsd.org/changeset/base/351184 Log: Add method for getting of syscon handle from parent device. If simple multifuction device also provides syscon interface, its childern should be able to consume it. Due to this: - declare coresponding method in syscon interface - implement it in simple multifunction device driver MFC after: 1 week Modified: head/sys/dev/extres/syscon/syscon.c head/sys/dev/extres/syscon/syscon_if.m head/sys/dev/fdt/simple_mfd.c Modified: head/sys/dev/extres/syscon/syscon.c ============================================================================== --- head/sys/dev/extres/syscon/syscon.c Sun Aug 18 08:07:31 2019 (r351183) +++ head/sys/dev/extres/syscon/syscon.c Sun Aug 18 08:08:56 2019 (r351184) @@ -254,3 +254,14 @@ syscon_get_by_ofw_property(device_t cdev, phandle_t cn return (0); } #endif + +int +syscon_get_handle_default(device_t dev, struct syscon **syscon) +{ + device_t parent; + + parent = device_get_parent(dev); + if (parent == NULL) + return (ENODEV); + return (SYSCON_GET_HANDLE(parent, syscon)); +} Modified: head/sys/dev/extres/syscon/syscon_if.m ============================================================================== --- head/sys/dev/extres/syscon/syscon_if.m Sun Aug 18 08:07:31 2019 (r351183) +++ head/sys/dev/extres/syscon/syscon_if.m Sun Aug 18 08:08:56 2019 (r351184) @@ -32,6 +32,7 @@ INTERFACE syscon; HEADER { struct syscon; + int syscon_get_handle_default(device_t dev, struct syscon **syscon); } METHOD int init { @@ -62,3 +63,11 @@ METHOD int modify_4 { uint32_t clear_bits; uint32_t set_bits; }; + +/** + * Get syscon handle from parent driver + */ +METHOD int get_handle { + device_t dev; + struct syscon **syscon; +} DEFAULT syscon_get_handle_default; Modified: head/sys/dev/fdt/simple_mfd.c ============================================================================== --- head/sys/dev/fdt/simple_mfd.c Sun Aug 18 08:07:31 2019 (r351183) +++ head/sys/dev/fdt/simple_mfd.c Sun Aug 18 08:08:56 2019 (r351184) @@ -49,14 +49,16 @@ __FBSDID("$FreeBSD$"); device_t simple_mfd_add_device(device_t dev, phandle_t node, u_int order, const char *name, int unit, struct simplebus_devinfo *di); -struct simplebus_devinfo *simple_mfd_setup_dinfo(device_t dev, phandle_t node, struct simplebus_devinfo *di); +struct simplebus_devinfo *simple_mfd_setup_dinfo(device_t dev, phandle_t node, + struct simplebus_devinfo *di); #include "syscon_if.h" #include MALLOC_DECLARE(M_SYSCON); -static uint32_t simple_mfd_syscon_read_4(struct syscon *syscon, bus_size_t offset); +static uint32_t simple_mfd_syscon_read_4(struct syscon *syscon, + bus_size_t offset); static int simple_mfd_syscon_write_4(struct syscon *syscon, bus_size_t offset, uint32_t val); static int simple_mfd_syscon_modify_4(struct syscon *syscon, bus_size_t offset, @@ -125,7 +127,18 @@ simple_mfd_syscon_modify_4(struct syscon *syscon, bus_ SYSCON_UNLOCK(sc); return (0); } +static int +simple_mfd_syscon_get_handle(device_t dev, struct syscon **syscon) +{ + struct simple_mfd_softc *sc; + sc = device_get_softc(dev); + *syscon = sc->syscon; + if (syscon == NULL) + return (ENODEV); + return (0); +} + static int simple_mfd_probe(device_t dev) { @@ -278,6 +291,8 @@ simple_mfd_add_device(device_t dev, phandle_t node, u_ } static device_method_t simple_mfd_methods[] = { + /* syscon interface */ + DEVMETHOD(syscon_get_handle, simple_mfd_syscon_get_handle), /* Device interface */ DEVMETHOD(device_probe, simple_mfd_probe), DEVMETHOD(device_attach, simple_mfd_attach), From owner-svn-src-all@freebsd.org Sun Aug 18 08:09:26 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8CBF5C0624 for ; Sun, 18 Aug 2019 08:09:26 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46B8ps5jHfz4GqJ for ; Sun, 18 Aug 2019 08:09:25 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: by mail-pl1-x62b.google.com with SMTP id t14so4291384plr.11 for ; Sun, 18 Aug 2019 01:09:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jroberson-net.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=yaXljaTcEfaHgl1YA25H3IOmdKwfYSN/hHch6EBU0so=; b=yexld+qfRaiA04uBoVoPXEIKI1w0+7YgRDOV77mczKzScTkqDgEIBUiBRO9QP+NARl lz5v+e4PutnMmyOG6qwprKMVrPogf6Zs5c47Z/Fai2YzAw8dazFhGKH0OKBtpQ7G7Zp/ 7z+U8woXW7ikT/uxg2rFF2aJXkuA025j62BlMof/nOJOSyVnhML8w+haG352/hcu526I hubgWseECDabgKjV7fT0JFnMfIaiovguZ1DAW6kPXy+8Ma4CLiSMHuyb12oKhDThL0yE tnRioyD8gbEHjFAoVyWm3GBva2kORDj7Rv6KRTm9ew0KBJuk49XC9bJgCW1p1KFkKimq eE/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=yaXljaTcEfaHgl1YA25H3IOmdKwfYSN/hHch6EBU0so=; b=Y7TfSLC05plUR9IIM1a2/SJyo3roG8Fds4auoUxva/z+zqwLyCieSu/vWdTXaqKxa5 n20bP2DDHmlC1GHiNzvk6mCbyOkVYptRL1oVBct/xRqxsRY5UWVC6KofTalit+tGm0J2 YGG1EfOa7TsHAfE/J5fUBSmWWzM+9Ryh7VLuzjAI3j3S3f6n6oXalikMFgCLD7ezZcbQ GJvw4QGA5HODAeMOXCQOl4zoppg4dkX6aEh3acRO3rwk5azOMSlHJj4m83SkIDu9b753 WxQPUsUvn0h0ornuedKAiFP4Uf4cu3dPprFM4KWkoeZ/8DBRyPAhZ9wOnLkAa/UlLQc6 6hHw== X-Gm-Message-State: APjAAAXTqCQbcGyLsxO/2oHM4l6C7FUQ33yHBh1AgvK1U9Rhf53KOUOJ gD37ANzg+a3M1LFRK1697U4j7w== X-Google-Smtp-Source: APXvYqzOrepUL2WtlioA++PexuoZekHwJV7lhjbUyV+0Lo8yMKua8ugjPFRVjHW6a0U50USlaqf4oA== X-Received: by 2002:a17:902:2d03:: with SMTP id o3mr10719581plb.96.1566115764149; Sun, 18 Aug 2019 01:09:24 -0700 (PDT) Received: from rrcs-76-81-105-82.west.biz.rr.com (rrcs-76-81-105-82.west.biz.rr.com. [76.81.105.82]) by smtp.gmail.com with ESMTPSA id y14sm21545688pfq.85.2019.08.18.01.09.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 18 Aug 2019 01:09:23 -0700 (PDT) Date: Sat, 17 Aug 2019 22:05:48 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: Jeff Roberson cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r351183 - head/sys/vm In-Reply-To: <201908180807.x7I87V7B080351@repo.freebsd.org> Message-ID: References: <201908180807.x7I87V7B080351@repo.freebsd.org> User-Agent: Alpine 2.21.9999 (BSF 287 2018-06-16) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Rspamd-Queue-Id: 46B8ps5jHfz4GqJ X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=jroberson-net.20150623.gappssmtp.com header.s=20150623 header.b=yexld+qf; dmarc=none; spf=none (mx1.freebsd.org: domain of jroberson@jroberson.net has no SPF policy when checking 2607:f8b0:4864:20::62b) smtp.mailfrom=jroberson@jroberson.net X-Spamd-Result: default: False [-5.73 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[jroberson-net.20150623.gappssmtp.com:s=20150623]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[jroberson.net]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[jroberson-net.20150623.gappssmtp.com:+]; NEURAL_HAM_SHORT(-0.99)[-0.993,0]; RCVD_IN_DNSWL_NONE(0.00)[b.2.6.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MID_RHS_NOT_FQDN(0.50)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_TLS_ALL(0.00)[]; IP_SCORE(-2.94)[ip: (-9.30), ipnet: 2607:f8b0::/32(-2.95), asn: 15169(-2.38), country: US(-0.05)] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 08:09:26 -0000 On Sun, 18 Aug 2019, Jeff Roberson wrote: > Author: jeff > Date: Sun Aug 18 08:07:31 2019 > New Revision: 351183 > URL: https://svnweb.freebsd.org/changeset/base/351183 > > Log: > Remove unnecessary debugging from r351181 that caused powerpc build to fail. I'm not sure how I made such a mess of this. I have built universe multiple times on this branch since the phys_avail changes were so extensive. I must've made some error in the process of breaking it into commitable pieces and addressing review feedback. I will be more careful with my next set of commits. Sorry for any trouble. Thanks, Jeff > > Tested by: make universe TARGETS=powerpc > > Modified: > head/sys/vm/vm_phys.c > > Modified: head/sys/vm/vm_phys.c > ============================================================================== > --- head/sys/vm/vm_phys.c Sun Aug 18 07:43:15 2019 (r351182) > +++ head/sys/vm/vm_phys.c Sun Aug 18 08:07:31 2019 (r351183) > @@ -1101,8 +1101,8 @@ vm_phys_free_pages(vm_page_t m, int order) > vm_page_t m_buddy; > > KASSERT(m->order == VM_NFREEORDER, > - ("vm_phys_free_pages: page %p(%p) has unexpected order %d", > - m, (void *)m->phys_addr, m->order)); > + ("vm_phys_free_pages: page %p has unexpected order %d", > + m, m->order)); > KASSERT(m->pool < VM_NFREEPOOL, > ("vm_phys_free_pages: page %p has unexpected pool %d", > m, m->pool)); > From owner-svn-src-all@freebsd.org Sun Aug 18 08:54:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E5EE3C1320; Sun, 18 Aug 2019 08:54:10 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46B9pV5m9yz4JVj; Sun, 18 Aug 2019 08:54:10 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A774127859; Sun, 18 Aug 2019 08:54:10 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7I8sAPd009694; Sun, 18 Aug 2019 08:54:10 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7I8sA8m009693; Sun, 18 Aug 2019 08:54:10 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201908180854.x7I8sA8m009693@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 18 Aug 2019 08:54:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351185 - head/sys/dev/mmc/host X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: head/sys/dev/mmc/host X-SVN-Commit-Revision: 351185 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 08:54:11 -0000 Author: mmel Date: Sun Aug 18 08:54:10 2019 New Revision: 351185 URL: https://svnweb.freebsd.org/changeset/base/351185 Log: Enhance support of extres in dwmmc driver. Handle all clocks, regulators and resets defined by dwmmc bindings. MFC after: 2 weeks Modified: head/sys/dev/mmc/host/dwmmc.c head/sys/dev/mmc/host/dwmmc_var.h Modified: head/sys/dev/mmc/host/dwmmc.c ============================================================================== --- head/sys/dev/mmc/host/dwmmc.c Sun Aug 18 08:08:56 2019 (r351184) +++ head/sys/dev/mmc/host/dwmmc.c Sun Aug 18 08:54:10 2019 (r351185) @@ -454,8 +454,45 @@ parse_fdt(struct dwmmc_softc *sc) } #ifdef EXT_RESOURCES + + /* IP block reset is optional */ + error = hwreset_get_by_ofw_name(sc->dev, 0, "reset", &sc->hwreset); + if (error != 0 && error != ENOENT) { + device_printf(sc->dev, "Cannot get reset\n"); + goto fail; + } + + /* vmmc regulator is optional */ + error = regulator_get_by_ofw_property(sc->dev, 0, "vmmc-supply", + &sc->vmmc); + if (error != 0 && error != ENOENT) { + device_printf(sc->dev, "Cannot get regulator 'vmmc-supply'\n"); + goto fail; + } + + /* vqmmc regulator is optional */ + error = regulator_get_by_ofw_property(sc->dev, 0, "vqmmc-supply", + &sc->vqmmc); + if (error != 0 && error != ENOENT) { + device_printf(sc->dev, "Cannot get regulator 'vqmmc-supply'\n"); + goto fail; + } + + /* Assert reset first */ + if (sc->hwreset != NULL) { + error = hwreset_assert(sc->hwreset); + if (error != 0) { + device_printf(sc->dev, "Cannot assert reset\n"); + goto fail; + } + } + /* BIU (Bus Interface Unit clock) is optional */ error = clk_get_by_ofw_name(sc->dev, 0, "biu", &sc->biu); + if (error != 0 && error != ENOENT) { + device_printf(sc->dev, "Cannot get 'biu' clock\n"); + goto fail; + } if (sc->biu) { error = clk_enable(sc->biu); if (error != 0) { @@ -469,19 +506,32 @@ parse_fdt(struct dwmmc_softc *sc) * if no clock-frequency property is given */ error = clk_get_by_ofw_name(sc->dev, 0, "ciu", &sc->ciu); + if (error != 0 && error != ENOENT) { + device_printf(sc->dev, "Cannot get 'ciu'clock\n"); + goto fail; + } if (sc->ciu) { - error = clk_enable(sc->ciu); - if (error != 0) { - device_printf(sc->dev, "cannot enable ciu clock\n"); - goto fail; - } if (bus_hz != 0) { error = clk_set_freq(sc->ciu, bus_hz, 0); if (error != 0) device_printf(sc->dev, "cannot set ciu clock to %u\n", bus_hz); } + error = clk_enable(sc->ciu); + if (error != 0) { + device_printf(sc->dev, "cannot enable ciu clock\n"); + goto fail; + } clk_get_freq(sc->ciu, &sc->bus_hz); + } + + /* Take dwmmc out of reset */ + if (sc->hwreset != NULL) { + error = hwreset_deassert(sc->hwreset); + if (error != 0) { + device_printf(sc->dev, "Cannot deassert reset\n"); + goto fail; + } } #endif /* EXT_RESOURCES */ Modified: head/sys/dev/mmc/host/dwmmc_var.h ============================================================================== --- head/sys/dev/mmc/host/dwmmc_var.h Sun Aug 18 08:08:56 2019 (r351184) +++ head/sys/dev/mmc/host/dwmmc_var.h Sun Aug 18 08:54:10 2019 (r351185) @@ -35,6 +35,8 @@ #ifdef EXT_RESOURCES #include +#include +#include #endif enum { @@ -83,6 +85,9 @@ struct dwmmc_softc { #ifdef EXT_RESOURCES clk_t biu; clk_t ciu; + hwreset_t hwreset; + regulator_t vmmc; + regulator_t vqmmc; #endif }; From owner-svn-src-all@freebsd.org Sun Aug 18 09:11:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C8FAFC1BC0; Sun, 18 Aug 2019 09:11:43 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BBBl50NCz4KMQ; Sun, 18 Aug 2019 09:11:43 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8E3E827A8F; Sun, 18 Aug 2019 09:11:43 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7I9Bhof018714; Sun, 18 Aug 2019 09:11:43 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7I9Bhts018713; Sun, 18 Aug 2019 09:11:43 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201908180911.x7I9Bhts018713@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 18 Aug 2019 09:11:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351186 - head/sys/arm64/rockchip X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: head/sys/arm64/rockchip X-SVN-Commit-Revision: 351186 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 09:11:43 -0000 Author: mmel Date: Sun Aug 18 09:11:43 2019 New Revision: 351186 URL: https://svnweb.freebsd.org/changeset/base/351186 Log: Improve rk_i2c driver: - Properly handle IIC_M_NOSTOP and IIC_M_NOSTART flags. - add polling mode, so driver can be used even if interrupts are not enabled (this is necessary for proper support of PMICs). - add support for RK3288 MFC after: 2 weeks Modified: head/sys/arm64/rockchip/rk_i2c.c Modified: head/sys/arm64/rockchip/rk_i2c.c ============================================================================== --- head/sys/arm64/rockchip/rk_i2c.c Sun Aug 18 08:54:10 2019 (r351185) +++ head/sys/arm64/rockchip/rk_i2c.c Sun Aug 18 09:11:43 2019 (r351186) @@ -46,9 +46,7 @@ __FBSDID("$FreeBSD$"); #include "iicbus_if.h" -#include "opt_soc.h" - #define RK_I2C_CON 0x00 #define RK_I2C_CON_EN (1 << 0) #define RK_I2C_CON_MODE_SHIFT 1 @@ -61,6 +59,7 @@ __FBSDID("$FreeBSD$"); #define RK_I2C_CON_STOP (1 << 4) #define RK_I2C_CON_LASTACK (1 << 5) #define RK_I2C_CON_NAKSTOP (1 << 6) +#define RK_I2C_CON_CTRL_MASK 0xFF #define RK_I2C_CLKDIV 0x04 #define RK_I2C_CLKDIVL_MASK 0xFFFF @@ -91,8 +90,7 @@ __FBSDID("$FreeBSD$"); #define RK_I2C_IEN_STARTIEN (1 << 4) #define RK_I2C_IEN_STOPIEN (1 << 5) #define RK_I2C_IEN_NAKRCVIEN (1 << 6) -#define RK_I2C_IEN_ALL (RK_I2C_IEN_BTFIEN | \ - RK_I2C_IEN_BRFIEN | RK_I2C_IEN_MBTFIEN | RK_I2C_IEN_MBRFIEN | \ +#define RK_I2C_IEN_ALL (RK_I2C_IEN_MBTFIEN | RK_I2C_IEN_MBRFIEN | \ RK_I2C_IEN_STARTIEN | RK_I2C_IEN_STOPIEN | RK_I2C_IEN_NAKRCVIEN) #define RK_I2C_IPD 0x1C @@ -103,8 +101,7 @@ __FBSDID("$FreeBSD$"); #define RK_I2C_IPD_STARTIPD (1 << 4) #define RK_I2C_IPD_STOPIPD (1 << 5) #define RK_I2C_IPD_NAKRCVIPD (1 << 6) -#define RK_I2C_IPD_ALL (RK_I2C_IPD_BTFIPD | \ - RK_I2C_IPD_BRFIPD | RK_I2C_IPD_MBTFIPD | RK_I2C_IPD_MBRFIPD | \ +#define RK_I2C_IPD_ALL (RK_I2C_IPD_MBTFIPD | RK_I2C_IPD_MBRFIPD | \ RK_I2C_IPD_STARTIPD | RK_I2C_IPD_STOPIPD | RK_I2C_IPD_NAKRCVIPD) #define RK_I2C_FNCT 0x20 @@ -134,8 +131,10 @@ struct rk_i2c_softc { uint32_t ipd; struct iic_msg *msg; size_t cnt; - int transfer_done; - int nak_recv; + int msg_len; + bool transfer_done; + bool nak_recv; + bool tx_slave_addr; uint8_t mode; uint8_t state; @@ -143,12 +142,9 @@ struct rk_i2c_softc { }; static struct ofw_compat_data compat_data[] = { -#ifdef SOC_ROCKCHIP_RK3328 + {"rockchip,rk3288-i2c", 1}, {"rockchip,rk3328-i2c", 1}, -#endif -#ifdef SOC_ROCKCHIP_RK3399 {"rockchip,rk3399-i2c", 1}, -#endif {NULL, 0} }; @@ -169,7 +165,7 @@ static int rk_i2c_detach(device_t dev); #define RK_I2C_WRITE(sc, reg, val) bus_write_4((sc)->res[0], (reg), (val)) static uint32_t -rk_i2c_get_clkdiv(struct rk_i2c_softc *sc, uint64_t speed) +rk_i2c_get_clkdiv(struct rk_i2c_softc *sc, uint32_t speed) { uint64_t sclk_freq; uint32_t clkdiv; @@ -213,7 +209,7 @@ rk_i2c_reset(device_t dev, u_char speed, u_char addr, return (0); } -static void +static uint8_t rk_i2c_fill_tx(struct rk_i2c_softc *sc) { uint32_t buf32; @@ -221,7 +217,7 @@ rk_i2c_fill_tx(struct rk_i2c_softc *sc) int i, j, len; if (sc->msg == NULL || sc->msg->len == sc->cnt) - return; + return (0); len = sc->msg->len - sc->cnt; if (len > 8) @@ -234,22 +230,23 @@ rk_i2c_fill_tx(struct rk_i2c_softc *sc) break; /* Fill the addr if needed */ - if (sc->cnt == 0) { + if (sc->cnt == 0 && sc->tx_slave_addr) { buf = sc->msg->slave; + sc->tx_slave_addr = false; + } else { + buf = sc->msg->buf[sc->cnt]; + sc->cnt++; } - else - buf = sc->msg->buf[sc->cnt - 1]; - buf32 |= buf << (j * 8); - sc->cnt++; } - RK_I2C_WRITE(sc, RK_I2C_TXDATA_BASE + 4 * i, buf32); if (sc->cnt == sc->msg->len) break; } + + return (uint8_t)len; } static void @@ -274,29 +271,11 @@ rk_i2c_drain_rx(struct rk_i2c_softc *sc) buf32 = RK_I2C_READ(sc, RK_I2C_RXDATA_BASE + (i / 4) * 4); buf8 = (buf32 >> ((i % 4) * 8)) & 0xFF; - sc->msg->buf[sc->cnt++] = buf8; } } static void -rk_i2c_send_start(struct rk_i2c_softc *sc) -{ - uint32_t reg; - - RK_I2C_WRITE(sc, RK_I2C_IEN, RK_I2C_IEN_STARTIEN); - - sc->state = STATE_START; - - reg = RK_I2C_READ(sc, RK_I2C_CON); - reg |= RK_I2C_CON_START; - reg |= RK_I2C_CON_EN; - reg &= ~RK_I2C_CON_MODE_MASK; - reg |= sc->mode << RK_I2C_CON_MODE_SHIFT; - RK_I2C_WRITE(sc, RK_I2C_CON, reg); -} - -static void rk_i2c_send_stop(struct rk_i2c_softc *sc) { uint32_t reg; @@ -311,18 +290,29 @@ rk_i2c_send_stop(struct rk_i2c_softc *sc) } static void -rk_i2c_intr(void *arg) +rk_i2c_intr_locked(struct rk_i2c_softc *sc) { - struct rk_i2c_softc *sc; uint32_t reg; - sc = (struct rk_i2c_softc *)arg; + sc->ipd = RK_I2C_READ(sc, RK_I2C_IPD); - RK_I2C_LOCK(sc); + /* Something to handle? */ + if ((sc->ipd & RK_I2C_IPD_ALL) == 0) + return; - sc->ipd = RK_I2C_READ(sc, RK_I2C_IPD); RK_I2C_WRITE(sc, RK_I2C_IPD, sc->ipd); + sc->ipd &= RK_I2C_IPD_ALL; + if (sc->ipd & RK_I2C_IPD_NAKRCVIPD) { + /* NACK received */ + sc->ipd &= ~RK_I2C_IPD_NAKRCVIPD; + sc->nak_recv = 1; + /* XXXX last byte !!!, signal error !!! */ + sc->transfer_done = 1; + sc->state = STATE_IDLE; + goto err; + } + switch (sc->state) { case STATE_START: /* Disable start bit */ @@ -359,10 +349,12 @@ rk_i2c_intr(void *arg) break; case STATE_WRITE: - if (sc->cnt == sc->msg->len) + if (sc->cnt == sc->msg->len && + !(sc->msg->flags & IIC_M_NOSTOP)) { rk_i2c_send_stop(sc); - - break; + break; + } + /* passthru */ case STATE_STOP: /* Disable stop bit */ reg = RK_I2C_READ(sc, RK_I2C_CON); @@ -376,77 +368,177 @@ rk_i2c_intr(void *arg) break; } +err: wakeup(sc); +} + +static void +rk_i2c_intr(void *arg) +{ + struct rk_i2c_softc *sc; + + sc = (struct rk_i2c_softc *)arg; + + RK_I2C_LOCK(sc); + rk_i2c_intr_locked(sc); RK_I2C_UNLOCK(sc); } +static void +rk_i2c_start_xfer(struct rk_i2c_softc *sc, struct iic_msg *msg, boolean_t last) +{ + uint32_t reg; + uint8_t len; + + sc->transfer_done = false; + sc->nak_recv = false; + sc->tx_slave_addr = false; + sc->cnt = 0; + sc->state = STATE_IDLE; + sc->msg = msg; + sc->msg_len = sc->msg->len; + + reg = RK_I2C_READ(sc, RK_I2C_CON) & ~RK_I2C_CON_CTRL_MASK; + if (!(sc->msg->flags & IIC_M_NOSTART)) { + /* Stadard message */ + if (sc->mode == RK_I2C_CON_MODE_TX) { + sc->msg_len++; /* Take slave address in account. */ + sc->tx_slave_addr = true; + } + sc->state = STATE_START; + reg |= RK_I2C_CON_START; + + RK_I2C_WRITE(sc, RK_I2C_IEN, RK_I2C_IEN_STARTIEN); + } else { + /* Continuation message */ + if (sc->mode == RK_I2C_CON_MODE_RX) { + sc->state = STATE_READ; + if (last) + reg |= RK_I2C_CON_LASTACK; + + RK_I2C_WRITE(sc, RK_I2C_MRXCNT, sc->msg->len); + RK_I2C_WRITE(sc, RK_I2C_IEN, RK_I2C_IEN_MBRFIEN | + RK_I2C_IEN_NAKRCVIEN); + } else { + sc->state = STATE_WRITE; + len = rk_i2c_fill_tx(sc); + + RK_I2C_WRITE(sc, RK_I2C_MTXCNT, len); + + RK_I2C_WRITE(sc, RK_I2C_IEN, RK_I2C_IEN_MBTFIEN | + RK_I2C_IEN_NAKRCVIEN); + } + } + reg |= sc->mode << RK_I2C_CON_MODE_SHIFT; + reg |= RK_I2C_CON_EN; + RK_I2C_WRITE(sc, RK_I2C_CON, reg); +} + static int rk_i2c_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs) { struct rk_i2c_softc *sc; uint32_t reg; - int i, j, msgskip, err = 0; + bool last_msg; + int i, j, timeout, err; sc = device_get_softc(dev); + RK_I2C_LOCK(sc); + while (sc->busy) mtx_sleep(sc, &sc->mtx, 0, "i2cbuswait", 0); - sc->busy = 1; - err = clk_enable(sc->pclk); - if (err != 0) { - device_printf(dev, "cannot enable pclk clock\n"); - goto out; - } - err = clk_enable(sc->sclk); - if (err != 0) { - device_printf(dev, "cannot enable i2c clock\n"); - goto out; - } + /* Disable the module and interrupts */ + RK_I2C_WRITE(sc, RK_I2C_CON, 0); + RK_I2C_WRITE(sc, RK_I2C_IEN, 0); - RK_I2C_LOCK(sc); - /* Clean stale interrupts */ RK_I2C_WRITE(sc, RK_I2C_IPD, RK_I2C_IPD_ALL); - for (i = 0; i < nmsgs; i += msgskip) { - if (nmsgs - i >= 2 && !(msgs[i].flags & IIC_M_RD) && - msgs[i + 1].flags & IIC_M_RD && msgs[i].len <= 4) { + err = 0; + for (i = 0; i < nmsgs; i++) { + /* Validate parameters. */ + if (msgs == NULL || msgs[i].buf == NULL || + msgs[i].len == 0) { + err = EINVAL; + break; + } + /* + * If next message have NOSTART flag, then they both + * should be same type (read/write) and same address. + */ + if (i < nmsgs - 1) { + if ((msgs[i + 1].flags & IIC_M_NOSTART) && + ((msgs[i].flags & IIC_M_RD) != + (msgs[i + 1].flags & IIC_M_RD) || + (msgs[i].slave != msgs[i + 1].slave))) { + err = EINVAL; + break; + } + } + /* + * Detect simple register read case. + * The first message should be IIC_M_WR | IIC_M_NOSTOP, + * next pure IIC_M_RD (no other flags allowed). Both + * messages should have same slave address. + */ + + if (nmsgs - i >= 2 && msgs[i].len < 4 && + msgs[i].flags == (IIC_M_WR | IIC_M_NOSTOP) && + msgs[i + 1].flags == IIC_M_RD && + (msgs[i].slave & ~LSB) == (msgs[i + 1].slave & ~LSB)) { sc->mode = RK_I2C_CON_MODE_RRX; - msgskip = 2; - sc->msg = &msgs[i + 1]; /* Write slave address */ - reg = msgs[i].slave | RK_I2C_MRXADDR_VALID(0); + reg = msgs[i].slave & ~LSB; + reg |= RK_I2C_MRXADDR_VALID(0); RK_I2C_WRITE(sc, RK_I2C_MRXADDR, reg); + /* Write slave register address */ - for (j = 0, reg = 0; j < msgs[i].len; j++) { + reg = 0; + for (j = 0; j < msgs[i].len ; j++) { reg |= (msgs[i].buf[j] & 0xff) << (j * 8); reg |= RK_I2C_MRXADDR_VALID(j); } - RK_I2C_WRITE(sc, RK_I2C_MRXRADDR, reg); + + i++; } else { if (msgs[i].flags & IIC_M_RD) { - sc->mode = RK_I2C_CON_MODE_RX; - msgs[i].slave |= LSB; - } - else { + if (msgs[i].flags & IIC_M_NOSTART) { + sc->mode = RK_I2C_CON_MODE_RX; + } else { + sc->mode = RK_I2C_CON_MODE_RRX; + reg = msgs[i].slave & LSB; + reg |= RK_I2C_MRXADDR_VALID(0); + RK_I2C_WRITE(sc, RK_I2C_MRXADDR, reg); + RK_I2C_WRITE(sc, RK_I2C_MRXRADDR, 0); + } + } else { sc->mode = RK_I2C_CON_MODE_TX; - msgs[i].slave &= ~LSB; } - msgskip = 1; - sc->msg = &msgs[i]; } + /* last message ? */ + last_msg = (i > nmsgs - 1) || + !(msgs[i + 1].flags & IIC_M_NOSTART); + rk_i2c_start_xfer(sc, msgs + i, last_msg); - sc->transfer_done = 0; - sc->cnt = 0; - sc->state = STATE_IDLE; - rk_i2c_send_start(sc); - - while (err == 0 && sc->transfer_done != 1) { - err = msleep(sc, &sc->mtx, 0, "rk_i2c", 10 * hz); + if (cold) { + for(timeout = 10000; timeout > 0; timeout--) { + rk_i2c_intr_locked(sc); + if (sc->transfer_done != 0) + break; + DELAY(100); + } + if (timeout <= 0) + err = ETIMEDOUT; + } else { + while (err == 0 && sc->transfer_done != 1) { + err = msleep(sc, &sc->mtx, PZERO, "rk_i2c", + 10 * hz); + } } } @@ -457,19 +549,6 @@ rk_i2c_transfer(device_t dev, struct iic_msg *msgs, ui sc->busy = 0; RK_I2C_UNLOCK(sc); - - err = clk_disable(sc->pclk); - if (err != 0) { - device_printf(dev, "cannot enable pclk clock\n"); - goto out; - } - err = clk_disable(sc->sclk); - if (err != 0) { - device_printf(dev, "cannot enable i2c clock\n"); - goto out; - } - -out: return (err); } @@ -519,10 +598,23 @@ rk_i2c_attach(device_t dev) device_printf(dev, "cannot get i2c clock\n"); goto fail; } - error = clk_get_by_ofw_name(dev, 0, "pclk", &sc->pclk); + error = clk_enable(sc->sclk); if (error != 0) { + device_printf(dev, "cannot enable i2c clock\n"); + goto fail; + } + /* pclk clock is optional. */ + error = clk_get_by_ofw_name(dev, 0, "pclk", &sc->pclk); + if (error != 0 && error != ENOENT) { device_printf(dev, "cannot get pclk clock\n"); goto fail; + } + if (sc->sclk != NULL) { + error = clk_enable(sc->sclk); + if (error != 0) { + device_printf(dev, "cannot enable pclk clock\n"); + goto fail; + } } sc->iicbus = device_add_child(dev, "iicbus", -1); From owner-svn-src-all@freebsd.org Sun Aug 18 09:19:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E3170C1E2E; Sun, 18 Aug 2019 09:19:33 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BBMn6Pprz4KgW; Sun, 18 Aug 2019 09:19:33 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BCD3A27BE9; Sun, 18 Aug 2019 09:19:33 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7I9JXl1021326; Sun, 18 Aug 2019 09:19:33 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7I9JXGj021325; Sun, 18 Aug 2019 09:19:33 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201908180919.x7I9JXGj021325@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 18 Aug 2019 09:19:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351187 - head/sys/arm64/rockchip X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: head/sys/arm64/rockchip X-SVN-Commit-Revision: 351187 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 09:19:33 -0000 Author: mmel Date: Sun Aug 18 09:19:33 2019 New Revision: 351187 URL: https://svnweb.freebsd.org/changeset/base/351187 Log: Improve rk_pinctrl driver: - add support for 'output-low', 'output-high', 'output-low' and 'output-enable' properties. These are use in RK3288 DT files - add support for RK3288 - to reduce overall file size, use local macros for initialization of pinctrl description structures. MFC after: 2 weeks Modified: head/sys/arm64/rockchip/rk_pinctrl.c Modified: head/sys/arm64/rockchip/rk_pinctrl.c ============================================================================== --- head/sys/arm64/rockchip/rk_pinctrl.c Sun Aug 18 09:11:43 2019 (r351186) +++ head/sys/arm64/rockchip/rk_pinctrl.c Sun Aug 18 09:19:33 2019 (r351187) @@ -34,11 +34,12 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include -#include -#include #include +#include #include +#include #include #include @@ -53,10 +54,9 @@ __FBSDID("$FreeBSD$"); #include +#include "gpio_if.h" #include "syscon_if.h" -#include "opt_soc.h" - struct rk_pinctrl_pin_drive { uint32_t bank; uint32_t subbank; @@ -66,8 +66,8 @@ struct rk_pinctrl_pin_drive { }; struct rk_pinctrl_bank { - uint32_t bank_num; - uint32_t subbank_num; + uint32_t bank; + uint32_t subbank; uint32_t offset; uint32_t nbits; }; @@ -81,6 +81,13 @@ struct rk_pinctrl_pin_fixup { uint32_t mask; }; +struct rk_pinctrl_gpio { + uint32_t bank; + char *gpio_name; + device_t gpio_dev; +}; + + struct rk_pinctrl_softc; struct rk_pinctrl_conf { @@ -90,8 +97,10 @@ struct rk_pinctrl_conf { uint32_t npin_fixup; struct rk_pinctrl_pin_drive *pin_drive; uint32_t npin_drive; - uint32_t (*get_pd_offset)(struct rk_pinctrl_softc *, uint32_t); - struct syscon *(*get_syscon)(struct rk_pinctrl_softc *, uint32_t); + struct rk_pinctrl_gpio *gpio_bank; + uint32_t ngpio_bank; + uint32_t (*get_pd_offset)(struct rk_pinctrl_softc *, uint32_t); + struct syscon *(*get_syscon)(struct rk_pinctrl_softc *, uint32_t); }; struct rk_pinctrl_softc { @@ -102,218 +111,392 @@ struct rk_pinctrl_softc { struct rk_pinctrl_conf *conf; }; +#define RK_IOMUX(_bank, _subbank, _offset, _nbits) \ +{ \ + .bank = _bank, \ + .subbank = _subbank, \ + .offset = _offset, \ + .nbits = _nbits, \ +} + +#define RK_PINFIX(_bank, _pin, _reg, _bit, _mask) \ +{ \ + .bank = _bank, \ + .pin = _pin, \ + .reg = _reg, \ + .bit = _bit, \ + .mask = _mask, \ +} + +#define RK_PINDRIVE(_bank, _subbank, _offset, _value, _ma) \ +{ \ + .bank = _bank, \ + .subbank = _subbank, \ + .offset = _offset, \ + .value = _value, \ + .ma = _ma, \ +} +#define RK_GPIO(_bank, _name) \ +{ \ + .bank = _bank, \ + .gpio_name = _name, \ +} + +static struct rk_pinctrl_gpio rk3288_gpio_bank[] = { + RK_GPIO(0, "gpio0"), + RK_GPIO(1, "gpio1"), + RK_GPIO(2, "gpio2"), + RK_GPIO(3, "gpio3"), + RK_GPIO(4, "gpio4"), + RK_GPIO(5, "gpio5"), + RK_GPIO(6, "gpio6"), + RK_GPIO(7, "gpio7"), + RK_GPIO(8, "gpio8"), +}; + +static struct rk_pinctrl_bank rk3288_iomux_bank[] = { + /* bank sub offs nbits */ + /* PMU */ + RK_IOMUX(0, 0, 0x0084, 2), + RK_IOMUX(0, 1, 0x0088, 2), + RK_IOMUX(0, 2, 0x008C, 2), + /* GFR */ + RK_IOMUX(1, 3, 0x000C, 2), + RK_IOMUX(2, 0, 0x0010, 2), + RK_IOMUX(2, 1, 0x0014, 2), + RK_IOMUX(2, 2, 0x0018, 2), + RK_IOMUX(2, 3, 0x001C, 2), + RK_IOMUX(3, 0, 0x0020, 2), + RK_IOMUX(3, 1, 0x0024, 2), + RK_IOMUX(3, 2, 0x0028, 2), + RK_IOMUX(3, 3, 0x002C, 4), + RK_IOMUX(4, 0, 0x0034, 4), + RK_IOMUX(4, 1, 0x003C, 4), + RK_IOMUX(4, 2, 0x0044, 2), + RK_IOMUX(4, 3, 0x0048, 2), + /* 5,0 - Empty */ + RK_IOMUX(5, 1, 0x0050, 2), + RK_IOMUX(5, 2, 0x0054, 2), + /* 5,3 - Empty */ + RK_IOMUX(6, 0, 0x005C, 2), + RK_IOMUX(6, 1, 0x0060, 2), + RK_IOMUX(6, 2, 0x0064, 2), + /* 6,3 - Empty */ + RK_IOMUX(7, 0, 0x006C, 2), + RK_IOMUX(7, 1, 0x0070, 2), + RK_IOMUX(7, 2, 0x0074, 4), + /* 7,3 - Empty */ + RK_IOMUX(8, 0, 0x0080, 2), + RK_IOMUX(8, 1, 0x0084, 2), + /* 8,2 - Empty */ + /* 8,3 - Empty */ + +}; + +static struct rk_pinctrl_pin_fixup rk3288_pin_fixup[] = { +}; + +static struct rk_pinctrl_pin_drive rk3288_pin_drive[] = { + /* bank sub offs val ma */ + /* GPIO0A (PMU)*/ + RK_PINDRIVE(0, 0, 0x070, 0, 2), + RK_PINDRIVE(0, 0, 0x070, 1, 4), + RK_PINDRIVE(0, 0, 0x070, 2, 8), + RK_PINDRIVE(0, 0, 0x070, 3, 12), + + /* GPIO0B (PMU)*/ + RK_PINDRIVE(0, 1, 0x074, 0, 2), + RK_PINDRIVE(0, 1, 0x074, 1, 4), + RK_PINDRIVE(0, 1, 0x074, 2, 8), + RK_PINDRIVE(0, 1, 0x074, 3, 12), + + /* GPIO0C (PMU)*/ + RK_PINDRIVE(0, 2, 0x078, 0, 2), + RK_PINDRIVE(0, 2, 0x078, 1, 4), + RK_PINDRIVE(0, 2, 0x078, 2, 8), + RK_PINDRIVE(0, 2, 0x078, 3, 12), + + /* GPIO1D */ + RK_PINDRIVE(1, 3, 0x1CC, 0, 2), + RK_PINDRIVE(1, 3, 0x1CC, 1, 4), + RK_PINDRIVE(1, 3, 0x1CC, 2, 8), + RK_PINDRIVE(1, 3, 0x1CC, 3, 12), + + /* GPIO2A */ + RK_PINDRIVE(2, 0, 0x1D0, 0, 2), + RK_PINDRIVE(2, 0, 0x1D0, 1, 4), + RK_PINDRIVE(2, 0, 0x1D0, 2, 8), + RK_PINDRIVE(2, 0, 0x1D0, 3, 12), + + /* GPIO2B */ + RK_PINDRIVE(2, 1, 0x1D4, 0, 2), + RK_PINDRIVE(2, 1, 0x1D4, 1, 4), + RK_PINDRIVE(2, 1, 0x1D4, 2, 8), + RK_PINDRIVE(2, 1, 0x1D4, 3, 12), + + /* GPIO2C */ + RK_PINDRIVE(2, 2, 0x1D8, 0, 2), + RK_PINDRIVE(2, 2, 0x1D8, 1, 4), + RK_PINDRIVE(2, 2, 0x1D8, 2, 8), + RK_PINDRIVE(2, 2, 0x1D8, 3, 12), + + /* GPIO2D */ + RK_PINDRIVE(2, 3, 0x1DC, 0, 2), + RK_PINDRIVE(2, 3, 0x1DC, 1, 4), + RK_PINDRIVE(2, 3, 0x1DC, 2, 8), + RK_PINDRIVE(2, 3, 0x1DC, 3, 12), + + /* GPIO3A */ + RK_PINDRIVE(3, 0, 0x1E0, 0, 2), + RK_PINDRIVE(3, 0, 0x1E0, 1, 4), + RK_PINDRIVE(3, 0, 0x1E0, 2, 8), + RK_PINDRIVE(3, 0, 0x1E0, 3, 12), + + /* GPIO3B */ + RK_PINDRIVE(3, 1, 0x1E4, 0, 2), + RK_PINDRIVE(3, 1, 0x1E4, 1, 4), + RK_PINDRIVE(3, 1, 0x1E4, 2, 8), + RK_PINDRIVE(3, 1, 0x1E4, 3, 12), + + /* GPIO3C */ + RK_PINDRIVE(3, 2, 0x1E8, 0, 2), + RK_PINDRIVE(3, 2, 0x1E8, 1, 4), + RK_PINDRIVE(3, 2, 0x1E8, 2, 8), + RK_PINDRIVE(3, 2, 0x1E8, 3, 12), + + /* GPIO3D */ + RK_PINDRIVE(3, 3, 0x1EC, 0, 2), + RK_PINDRIVE(3, 3, 0x1EC, 1, 4), + RK_PINDRIVE(3, 3, 0x1EC, 2, 8), + RK_PINDRIVE(3, 3, 0x1EC, 3, 12), + + /* GPIO4A */ + RK_PINDRIVE(4, 0, 0x1F0, 0, 2), + RK_PINDRIVE(4, 0, 0x1F0, 1, 4), + RK_PINDRIVE(4, 0, 0x1F0, 2, 8), + RK_PINDRIVE(4, 0, 0x1F0, 3, 12), + + /* GPIO4B */ + RK_PINDRIVE(4, 1, 0x1F4, 0, 2), + RK_PINDRIVE(4, 1, 0x1F4, 1, 4), + RK_PINDRIVE(4, 1, 0x1F4, 2, 8), + RK_PINDRIVE(4, 1, 0x1F4, 3, 12), + + /* GPIO4C */ + RK_PINDRIVE(4, 2, 0x1F8, 0, 2), + RK_PINDRIVE(4, 2, 0x1F8, 1, 4), + RK_PINDRIVE(4, 2, 0x1F8, 2, 8), + RK_PINDRIVE(4, 2, 0x1F8, 3, 12), + + /* GPIO4D */ + RK_PINDRIVE(4, 3, 0x1FC, 0, 2), + RK_PINDRIVE(4, 3, 0x1FC, 1, 4), + RK_PINDRIVE(4, 3, 0x1FC, 2, 8), + RK_PINDRIVE(4, 3, 0x1FC, 3, 12), + + /* GPIO5B */ + RK_PINDRIVE(5, 1, 0x204, 0, 2), + RK_PINDRIVE(5, 1, 0x204, 1, 4), + RK_PINDRIVE(5, 1, 0x204, 2, 8), + RK_PINDRIVE(5, 1, 0x204, 3, 12), + + /* GPIO5C */ + RK_PINDRIVE(5, 2, 0x208, 0, 2), + RK_PINDRIVE(5, 2, 0x208, 1, 4), + RK_PINDRIVE(5, 2, 0x208, 2, 8), + RK_PINDRIVE(5, 2, 0x208, 3, 12), + + /* GPIO6A */ + RK_PINDRIVE(6, 0, 0x210, 0, 2), + RK_PINDRIVE(6, 0, 0x210, 1, 4), + RK_PINDRIVE(6, 0, 0x210, 2, 8), + RK_PINDRIVE(6, 0, 0x210, 3, 12), + + /* GPIO6B */ + RK_PINDRIVE(6, 1, 0x214, 0, 2), + RK_PINDRIVE(6, 1, 0x214, 1, 4), + RK_PINDRIVE(6, 1, 0x214, 2, 8), + RK_PINDRIVE(6, 1, 0x214, 3, 12), + + /* GPIO6C */ + RK_PINDRIVE(6, 2, 0x218, 0, 2), + RK_PINDRIVE(6, 2, 0x218, 1, 4), + RK_PINDRIVE(6, 2, 0x218, 2, 8), + RK_PINDRIVE(6, 2, 0x218, 3, 12), + + /* GPIO7A */ + RK_PINDRIVE(7, 0, 0x220, 0, 2), + RK_PINDRIVE(7, 0, 0x220, 1, 4), + RK_PINDRIVE(7, 0, 0x220, 2, 8), + RK_PINDRIVE(7, 0, 0x220, 3, 12), + + /* GPIO7B */ + RK_PINDRIVE(7, 1, 0x224, 0, 2), + RK_PINDRIVE(7, 1, 0x224, 1, 4), + RK_PINDRIVE(7, 1, 0x224, 2, 8), + RK_PINDRIVE(7, 1, 0x224, 3, 12), + + /* GPIO7C */ + RK_PINDRIVE(7, 2, 0x228, 0, 2), + RK_PINDRIVE(7, 2, 0x228, 1, 4), + RK_PINDRIVE(7, 2, 0x228, 2, 8), + RK_PINDRIVE(7, 2, 0x228, 3, 12), + + /* GPIO8A */ + RK_PINDRIVE(8, 0, 0x230, 0, 2), + RK_PINDRIVE(8, 0, 0x230, 1, 4), + RK_PINDRIVE(8, 0, 0x230, 2, 8), + RK_PINDRIVE(8, 0, 0x230, 3, 12), + + /* GPIO8B */ + RK_PINDRIVE(8, 1, 0x234, 0, 2), + RK_PINDRIVE(8, 1, 0x234, 1, 4), + RK_PINDRIVE(8, 1, 0x234, 2, 8), + RK_PINDRIVE(8, 1, 0x234, 3, 12), +}; + +static uint32_t +rk3288_get_pd_offset(struct rk_pinctrl_softc *sc, uint32_t bank) +{ + if (bank == 0) + return (0x064); /* PMU */ + return (0x130); +} + +static struct syscon * +rk3288_get_syscon(struct rk_pinctrl_softc *sc, uint32_t bank) +{ + if (bank == 0) + return (sc->pmu); + return (sc->grf); +} + +struct rk_pinctrl_conf rk3288_conf = { + .iomux_conf = rk3288_iomux_bank, + .iomux_nbanks = nitems(rk3288_iomux_bank), + .pin_fixup = rk3288_pin_fixup, + .npin_fixup = nitems(rk3288_pin_fixup), + .pin_drive = rk3288_pin_drive, + .npin_drive = nitems(rk3288_pin_drive), + .gpio_bank = rk3288_gpio_bank, + .ngpio_bank = nitems(rk3288_gpio_bank), + .get_pd_offset = rk3288_get_pd_offset, + .get_syscon = rk3288_get_syscon, +}; + static struct rk_pinctrl_bank rk3328_iomux_bank[] = { - { - .bank_num = 0, - .subbank_num = 0, - .offset = 0x00, - .nbits = 2, - }, - { - .bank_num = 0, - .subbank_num = 1, - .offset = 0x04, - .nbits = 2, - }, - { - .bank_num = 0, - .subbank_num = 2, - .offset = 0x08, - .nbits = 2, - }, - { - .bank_num = 0, - .subbank_num = 3, - .offset = 0xc, - .nbits = 2, - }, - { - .bank_num = 1, - .subbank_num = 0, - .offset = 0x10, - .nbits = 2, - }, - { - .bank_num = 1, - .subbank_num = 1, - .offset = 0x14, - .nbits = 2, - }, - { - .bank_num = 1, - .subbank_num = 2, - .offset = 0x18, - .nbits = 2, - }, - { - .bank_num = 1, - .subbank_num = 3, - .offset = 0x1C, - .nbits = 2, - }, - { - .bank_num = 2, - .subbank_num = 0, - .offset = 0x20, - .nbits = 2, - }, - { - .bank_num = 2, - .subbank_num = 1, - .offset = 0x24, - .nbits = 3, - }, - { - .bank_num = 2, - .subbank_num = 2, - .offset = 0x2c, - .nbits = 3, - }, - { - .bank_num = 2, - .subbank_num = 3, - .offset = 0x34, - .nbits = 2, - }, - { - .bank_num = 3, - .subbank_num = 0, - .offset = 0x38, - .nbits = 3, - }, - { - .bank_num = 3, - .subbank_num = 1, - .offset = 0x40, - .nbits = 3, - }, - { - .bank_num = 3, - .subbank_num = 2, - .offset = 0x48, - .nbits = 2, - }, - { - .bank_num = 3, - .subbank_num = 3, - .offset = 0x4c, - .nbits = 2, - }, + /* bank sub offs nbits */ + RK_IOMUX(0, 0, 0x0000, 2), + RK_IOMUX(0, 1, 0x0004, 2), + RK_IOMUX(0, 2, 0x0008, 2), + RK_IOMUX(0, 3, 0x000C, 2), + RK_IOMUX(1, 0, 0x0010, 2), + RK_IOMUX(1, 1, 0x0014, 2), + RK_IOMUX(1, 2, 0x0018, 2), + RK_IOMUX(1, 3, 0x001C, 2), + RK_IOMUX(2, 0, 0xE000, 2), + RK_IOMUX(2, 1, 0xE004, 2), + RK_IOMUX(2, 2, 0xE008, 2), + RK_IOMUX(2, 3, 0xE00C, 2), + RK_IOMUX(3, 0, 0xE010, 2), + RK_IOMUX(3, 1, 0xE014, 2), + RK_IOMUX(3, 2, 0xE018, 2), + RK_IOMUX(3, 3, 0xE01C, 2), + RK_IOMUX(4, 0, 0xE020, 2), + RK_IOMUX(4, 1, 0xE024, 2), + RK_IOMUX(4, 2, 0xE028, 2), + RK_IOMUX(4, 3, 0xE02C, 2), }; static struct rk_pinctrl_pin_fixup rk3328_pin_fixup[] = { - { - .bank = 2, - .pin = 12, - .reg = 0x24, - .bit = 8, - .mask = 0x300, - }, - { - .bank = 2, - .pin = 15, - .reg = 0x28, - .bit = 0, - .mask = 0x7, - }, - { - .bank = 2, - .pin = 23, - .reg = 0x30, - .bit = 14, - .mask = 0x6000, - }, + /* bank pin reg bit mask */ + RK_PINFIX(2, 12, 0x24, 8, 0x300), + RK_PINFIX(2, 15, 0x28, 0, 0x7), + RK_PINFIX(2, 23, 0x30, 14, 0x6000), }; -#define RK_PINDRIVE(_bank, _subbank, _offset, _value, _ma) \ - { \ - .bank = _bank, \ - .subbank = _subbank, \ - .offset = _offset, \ - .value = _value, \ - .ma = _ma, \ - }, static struct rk_pinctrl_pin_drive rk3328_pin_drive[] = { - RK_PINDRIVE(0, 0, 0x200, 0, 2) - RK_PINDRIVE(0, 0, 0x200, 1, 4) - RK_PINDRIVE(0, 0, 0x200, 2, 8) - RK_PINDRIVE(0, 0, 0x200, 3, 12) + /* bank sub offs val ma */ + RK_PINDRIVE(0, 0, 0x200, 0, 2), + RK_PINDRIVE(0, 0, 0x200, 1, 4), + RK_PINDRIVE(0, 0, 0x200, 2, 8), + RK_PINDRIVE(0, 0, 0x200, 3, 12), - RK_PINDRIVE(0, 1, 0x204, 0, 2) - RK_PINDRIVE(0, 1, 0x204, 1, 4) - RK_PINDRIVE(0, 1, 0x204, 2, 8) - RK_PINDRIVE(0, 1, 0x204, 3, 12) + RK_PINDRIVE(0, 1, 0x204, 0, 2), + RK_PINDRIVE(0, 1, 0x204, 1, 4), + RK_PINDRIVE(0, 1, 0x204, 2, 8), + RK_PINDRIVE(0, 1, 0x204, 3, 12), - RK_PINDRIVE(0, 2, 0x208, 0, 2) - RK_PINDRIVE(0, 2, 0x208, 1, 4) - RK_PINDRIVE(0, 2, 0x208, 2, 8) - RK_PINDRIVE(0, 2, 0x208, 3, 12) + RK_PINDRIVE(0, 2, 0x208, 0, 2), + RK_PINDRIVE(0, 2, 0x208, 1, 4), + RK_PINDRIVE(0, 2, 0x208, 2, 8), + RK_PINDRIVE(0, 2, 0x208, 3, 12), - RK_PINDRIVE(0, 3, 0x20C, 0, 2) - RK_PINDRIVE(0, 3, 0x20C, 1, 4) - RK_PINDRIVE(0, 3, 0x20C, 2, 8) - RK_PINDRIVE(0, 3, 0x20C, 3, 12) + RK_PINDRIVE(0, 3, 0x20C, 0, 2), + RK_PINDRIVE(0, 3, 0x20C, 1, 4), + RK_PINDRIVE(0, 3, 0x20C, 2, 8), + RK_PINDRIVE(0, 3, 0x20C, 3, 12), - RK_PINDRIVE(1, 0, 0x210, 0, 2) - RK_PINDRIVE(1, 0, 0x210, 1, 4) - RK_PINDRIVE(1, 0, 0x210, 2, 8) - RK_PINDRIVE(1, 0, 0x210, 3, 12) + RK_PINDRIVE(1, 0, 0x210, 0, 2), + RK_PINDRIVE(1, 0, 0x210, 1, 4), + RK_PINDRIVE(1, 0, 0x210, 2, 8), + RK_PINDRIVE(1, 0, 0x210, 3, 12), - RK_PINDRIVE(1, 1, 0x214, 0, 2) - RK_PINDRIVE(1, 1, 0x214, 1, 4) - RK_PINDRIVE(1, 1, 0x214, 2, 8) - RK_PINDRIVE(1, 1, 0x214, 3, 12) + RK_PINDRIVE(1, 1, 0x214, 0, 2), + RK_PINDRIVE(1, 1, 0x214, 1, 4), + RK_PINDRIVE(1, 1, 0x214, 2, 8), + RK_PINDRIVE(1, 1, 0x214, 3, 12), - RK_PINDRIVE(1, 2, 0x218, 0, 2) - RK_PINDRIVE(1, 2, 0x218, 1, 4) - RK_PINDRIVE(1, 2, 0x218, 2, 8) - RK_PINDRIVE(1, 2, 0x218, 3, 12) + RK_PINDRIVE(1, 2, 0x218, 0, 2), + RK_PINDRIVE(1, 2, 0x218, 1, 4), + RK_PINDRIVE(1, 2, 0x218, 2, 8), + RK_PINDRIVE(1, 2, 0x218, 3, 12), - RK_PINDRIVE(1, 3, 0x21C, 0, 2) - RK_PINDRIVE(1, 3, 0x21C, 1, 4) - RK_PINDRIVE(1, 3, 0x21C, 2, 8) - RK_PINDRIVE(1, 3, 0x21C, 3, 12) + RK_PINDRIVE(1, 3, 0x21C, 0, 2), + RK_PINDRIVE(1, 3, 0x21C, 1, 4), + RK_PINDRIVE(1, 3, 0x21C, 2, 8), + RK_PINDRIVE(1, 3, 0x21C, 3, 12), - RK_PINDRIVE(2, 0, 0x220, 0, 2) - RK_PINDRIVE(2, 0, 0x220, 1, 4) - RK_PINDRIVE(2, 0, 0x220, 2, 8) - RK_PINDRIVE(2, 0, 0x220, 3, 12) + RK_PINDRIVE(2, 0, 0x220, 0, 2), + RK_PINDRIVE(2, 0, 0x220, 1, 4), + RK_PINDRIVE(2, 0, 0x220, 2, 8), + RK_PINDRIVE(2, 0, 0x220, 3, 12), - RK_PINDRIVE(2, 1, 0x224, 0, 2) - RK_PINDRIVE(2, 1, 0x224, 1, 4) - RK_PINDRIVE(2, 1, 0x224, 2, 8) - RK_PINDRIVE(2, 1, 0x224, 3, 12) + RK_PINDRIVE(2, 1, 0x224, 0, 2), + RK_PINDRIVE(2, 1, 0x224, 1, 4), + RK_PINDRIVE(2, 1, 0x224, 2, 8), + RK_PINDRIVE(2, 1, 0x224, 3, 12), - RK_PINDRIVE(2, 2, 0x228, 0, 2) - RK_PINDRIVE(2, 2, 0x228, 1, 4) - RK_PINDRIVE(2, 2, 0x228, 2, 8) - RK_PINDRIVE(2, 2, 0x228, 3, 12) + RK_PINDRIVE(2, 2, 0x228, 0, 2), + RK_PINDRIVE(2, 2, 0x228, 1, 4), + RK_PINDRIVE(2, 2, 0x228, 2, 8), + RK_PINDRIVE(2, 2, 0x228, 3, 12), - RK_PINDRIVE(2, 3, 0x22C, 0, 2) - RK_PINDRIVE(2, 3, 0x22C, 1, 4) - RK_PINDRIVE(2, 3, 0x22C, 2, 8) - RK_PINDRIVE(2, 3, 0x22C, 3, 12) + RK_PINDRIVE(2, 3, 0x22C, 0, 2), + RK_PINDRIVE(2, 3, 0x22C, 1, 4), + RK_PINDRIVE(2, 3, 0x22C, 2, 8), + RK_PINDRIVE(2, 3, 0x22C, 3, 12), - RK_PINDRIVE(3, 0, 0x230, 0, 2) - RK_PINDRIVE(3, 0, 0x230, 1, 4) - RK_PINDRIVE(3, 0, 0x230, 2, 8) - RK_PINDRIVE(3, 0, 0x230, 3, 12) + RK_PINDRIVE(3, 0, 0x230, 0, 2), + RK_PINDRIVE(3, 0, 0x230, 1, 4), + RK_PINDRIVE(3, 0, 0x230, 2, 8), + RK_PINDRIVE(3, 0, 0x230, 3, 12), - RK_PINDRIVE(3, 1, 0x234, 0, 2) - RK_PINDRIVE(3, 1, 0x234, 1, 4) - RK_PINDRIVE(3, 1, 0x234, 2, 8) - RK_PINDRIVE(3, 1, 0x234, 3, 12) + RK_PINDRIVE(3, 1, 0x234, 0, 2), + RK_PINDRIVE(3, 1, 0x234, 1, 4), + RK_PINDRIVE(3, 1, 0x234, 2, 8), + RK_PINDRIVE(3, 1, 0x234, 3, 12), - RK_PINDRIVE(3, 2, 0x238, 0, 2) - RK_PINDRIVE(3, 2, 0x238, 1, 4) - RK_PINDRIVE(3, 2, 0x238, 2, 8) - RK_PINDRIVE(3, 2, 0x238, 3, 12) + RK_PINDRIVE(3, 2, 0x238, 0, 2), + RK_PINDRIVE(3, 2, 0x238, 1, 4), + RK_PINDRIVE(3, 2, 0x238, 2, 8), + RK_PINDRIVE(3, 2, 0x238, 3, 12), - RK_PINDRIVE(3, 3, 0x23C, 0, 2) - RK_PINDRIVE(3, 3, 0x23C, 1, 4) - RK_PINDRIVE(3, 3, 0x23C, 2, 8) - RK_PINDRIVE(3, 3, 0x23C, 3, 12) + RK_PINDRIVE(3, 3, 0x23C, 0, 2), + RK_PINDRIVE(3, 3, 0x23C, 1, 4), + RK_PINDRIVE(3, 3, 0x23C, 2, 8), + RK_PINDRIVE(3, 3, 0x23C, 3, 12), }; static uint32_t @@ -340,166 +523,68 @@ struct rk_pinctrl_conf rk3328_conf = { }; static struct rk_pinctrl_bank rk3399_iomux_bank[] = { - { - .bank_num = 0, - .subbank_num = 0, - .offset = 0x00, - .nbits = 2, - }, - { - .bank_num = 0, - .subbank_num = 1, - .offset = 0x04, - .nbits = 2, - }, - { - .bank_num = 0, - .subbank_num = 2, - .offset = 0x08, - .nbits = 2, - }, - { - .bank_num = 0, - .subbank_num = 3, - .offset = 0x0c, - .nbits = 2, - }, - { - .bank_num = 1, - .subbank_num = 0, - .offset = 0x10, - .nbits = 2, - }, - { - .bank_num = 1, - .subbank_num = 1, - .offset = 0x14, - .nbits = 2, - }, - { - .bank_num = 1, - .subbank_num = 2, - .offset = 0x18, - .nbits = 2, - }, - { - .bank_num = 1, - .subbank_num = 3, - .offset = 0x1c, - .nbits = 2, - }, - { - .bank_num = 2, - .subbank_num = 0, - .offset = 0xe000, - .nbits = 2, - }, - { - .bank_num = 2, - .subbank_num = 1, - .offset = 0xe004, - .nbits = 2, - }, - { - .bank_num = 2, - .subbank_num = 2, - .offset = 0xe008, - .nbits = 2, - }, - { - .bank_num = 2, - .subbank_num = 3, - .offset = 0xe00c, - .nbits = 2, - }, - { - .bank_num = 3, - .subbank_num = 0, - .offset = 0xe010, - .nbits = 2, - }, - { - .bank_num = 3, - .subbank_num = 1, - .offset = 0xe014, - .nbits = 2, - }, - { - .bank_num = 3, - .subbank_num = 2, - .offset = 0xe018, - .nbits = 2, - }, - { - .bank_num = 3, - .subbank_num = 3, - .offset = 0xe01c, - .nbits = 2, - }, - { - .bank_num = 4, - .subbank_num = 0, - .offset = 0xe020, - .nbits = 2, - }, - { - .bank_num = 4, - .subbank_num = 1, - .offset = 0xe024, - .nbits = 2, - }, - { - .bank_num = 4, - .subbank_num = 2, - .offset = 0xe028, - .nbits = 2, - }, - { - .bank_num = 4, - .subbank_num = 3, - .offset = 0xe02c, - .nbits = 2, - }, + /* bank sub offs nbits */ + RK_IOMUX(0, 0, 0x0000, 2), + RK_IOMUX(0, 1, 0x0004, 2), + RK_IOMUX(0, 2, 0x0008, 2), + RK_IOMUX(0, 3, 0x000C, 2), + RK_IOMUX(1, 0, 0x0010, 2), + RK_IOMUX(1, 1, 0x0014, 2), + RK_IOMUX(1, 2, 0x0018, 2), + RK_IOMUX(1, 3, 0x000C, 2), + RK_IOMUX(2, 0, 0xE000, 2), + RK_IOMUX(2, 1, 0xE004, 2), + RK_IOMUX(2, 2, 0xE008, 2), + RK_IOMUX(2, 3, 0xE00C, 2), + RK_IOMUX(3, 0, 0xE010, 2), + RK_IOMUX(3, 1, 0xE014, 2), + RK_IOMUX(3, 2, 0xE018, 2), + RK_IOMUX(3, 3, 0xE01C, 2), + RK_IOMUX(4, 0, 0xE020, 2), + RK_IOMUX(4, 1, 0xE024, 2), + RK_IOMUX(4, 2, 0xE028, 2), + RK_IOMUX(4, 3, 0xE02C, 2), }; static struct rk_pinctrl_pin_fixup rk3399_pin_fixup[] = {}; static struct rk_pinctrl_pin_drive rk3399_pin_drive[] = { + /* bank sub offs val ma */ /* GPIO0A */ - RK_PINDRIVE(0, 0, 0x80, 0, 5) - RK_PINDRIVE(0, 0, 0x80, 1, 10) - RK_PINDRIVE(0, 0, 0x80, 2, 15) - RK_PINDRIVE(0, 0, 0x80, 3, 20) + RK_PINDRIVE(0, 0, 0x80, 0, 5), + RK_PINDRIVE(0, 0, 0x80, 1, 10), + RK_PINDRIVE(0, 0, 0x80, 2, 15), + RK_PINDRIVE(0, 0, 0x80, 3, 20), /* GPIOB */ - RK_PINDRIVE(0, 1, 0x88, 0, 5) - RK_PINDRIVE(0, 1, 0x88, 1, 10) - RK_PINDRIVE(0, 1, 0x88, 2, 15) - RK_PINDRIVE(0, 1, 0x88, 3, 20) + RK_PINDRIVE(0, 1, 0x88, 0, 5), + RK_PINDRIVE(0, 1, 0x88, 1, 10), + RK_PINDRIVE(0, 1, 0x88, 2, 15), + RK_PINDRIVE(0, 1, 0x88, 3, 20), /* GPIO1A */ - RK_PINDRIVE(1, 0, 0xA0, 0, 3) - RK_PINDRIVE(1, 0, 0xA0, 1, 6) - RK_PINDRIVE(1, 0, 0xA0, 2, 9) - RK_PINDRIVE(1, 0, 0xA0, 3, 12) + RK_PINDRIVE(1, 0, 0xA0, 0, 3), + RK_PINDRIVE(1, 0, 0xA0, 1, 6), + RK_PINDRIVE(1, 0, 0xA0, 2, 9), + RK_PINDRIVE(1, 0, 0xA0, 3, 12), /* GPIO1B */ - RK_PINDRIVE(1, 1, 0xA8, 0, 3) - RK_PINDRIVE(1, 1, 0xA8, 1, 6) - RK_PINDRIVE(1, 1, 0xA8, 2, 9) - RK_PINDRIVE(1, 1, 0xA8, 3, 12) + RK_PINDRIVE(1, 1, 0xA8, 0, 3), + RK_PINDRIVE(1, 1, 0xA8, 1, 6), + RK_PINDRIVE(1, 1, 0xA8, 2, 9), + RK_PINDRIVE(1, 1, 0xA8, 3, 12), /* GPIO1C */ - RK_PINDRIVE(1, 2, 0xB0, 0, 3) - RK_PINDRIVE(1, 2, 0xB0, 1, 6) - RK_PINDRIVE(1, 2, 0xB0, 2, 9) - RK_PINDRIVE(1, 2, 0xB0, 3, 12) + RK_PINDRIVE(1, 2, 0xB0, 0, 3), + RK_PINDRIVE(1, 2, 0xB0, 1, 6), + RK_PINDRIVE(1, 2, 0xB0, 2, 9), + RK_PINDRIVE(1, 2, 0xB0, 3, 12), /* GPIO1D */ - RK_PINDRIVE(1, 3, 0xB8, 0, 3) - RK_PINDRIVE(1, 3, 0xB8, 1, 6) - RK_PINDRIVE(1, 3, 0xB8, 2, 9) - RK_PINDRIVE(1, 3, 0xB8, 3, 12) + RK_PINDRIVE(1, 3, 0xB8, 0, 3), + RK_PINDRIVE(1, 3, 0xB8, 1, 6), + RK_PINDRIVE(1, 3, 0xB8, 2, 9), + RK_PINDRIVE(1, 3, 0xB8, 3, 12), }; static uint32_t @@ -508,7 +593,7 @@ rk3399_get_pd_offset(struct rk_pinctrl_softc *sc, uint if (bank < 2) return (0x40); - return (0xe040); + return (0xE040); } static struct syscon * @@ -532,12 +617,9 @@ struct rk_pinctrl_conf rk3399_conf = { }; static struct ofw_compat_data compat_data[] = { -#ifdef SOC_ROCKCHIP_RK3328 + {"rockchip,rk3288-pinctrl", (uintptr_t)&rk3288_conf}, {"rockchip,rk3328-pinctrl", (uintptr_t)&rk3328_conf}, -#endif -#ifdef SOC_ROCKCHIP_RK3399 {"rockchip,rk3399-pinctrl", (uintptr_t)&rk3399_conf}, -#endif {NULL, 0} }; @@ -554,7 +636,8 @@ rk_pinctrl_parse_bias(phandle_t node) return (-1); } -static int rk_pinctrl_parse_drive(struct rk_pinctrl_softc *sc, phandle_t node, +static int +rk_pinctrl_parse_drive(struct rk_pinctrl_softc *sc, phandle_t node, uint32_t bank, uint32_t subbank, uint32_t *drive, uint32_t *offset) { uint32_t value; @@ -595,6 +678,91 @@ rk_pinctrl_get_fixup(struct rk_pinctrl_softc *sc, uint } } +static int +rk_pinctrl_handle_io(struct rk_pinctrl_softc *sc, phandle_t node, uint32_t bank, +uint32_t pin) +{ + bool have_cfg, have_direction, have_value; + uint32_t direction_value, pin_value; + struct rk_pinctrl_gpio *gpio; + int i, rv; + + have_cfg = false; + have_direction = false; + have_value = false; + + /* Get (subset of) GPIO pin properties. */ + if (OF_hasprop(node, "output-disable")) { + have_cfg = true; + have_direction = true; + direction_value = GPIO_PIN_INPUT; + } + + if (OF_hasprop(node, "output-enable")) { + have_cfg = true; + have_direction = true; + direction_value = GPIO_PIN_OUTPUT; + } + + if (OF_hasprop(node, "output-low")) { + have_cfg = true; + have_direction = true; + direction_value = GPIO_PIN_OUTPUT; + have_value = true; + pin_value = 0; + } + + if (OF_hasprop(node, "output-high")) { + have_cfg = true; + have_direction = true; + direction_value = GPIO_PIN_OUTPUT; + have_value = true; + pin_value = 1; + } + + if (!have_cfg) + return (0); + + /* Find gpio */ + gpio = NULL; + for(i = 0; i < sc->conf->ngpio_bank; i++) { + if (bank == sc->conf->gpio_bank[i].bank) { + gpio = sc->conf->gpio_bank + i; + break; + } + } + if (gpio == NULL) { + device_printf(sc->dev, "Cannot find GPIO bank %d\n", bank); + return (ENXIO); + } + if (gpio->gpio_dev == NULL) { + device_printf(sc->dev, + "No GPIO subdevice found for bank %d\n", bank); + return (ENXIO); + } + + rv = 0; + if (have_value) { + rv = GPIO_PIN_SET(gpio->gpio_dev, pin, pin_value); + if (rv != 0) { + device_printf(sc->dev, "Cannot set GPIO value: %d\n", + rv); + return (rv); + } + } + + if (have_direction) { + rv = GPIO_PIN_SETFLAGS(gpio->gpio_dev, pin, direction_value); + if (rv != 0) { + device_printf(sc->dev, + "Cannot set GPIO direction: %d\n", rv); + return (rv); + } + } + + return (0); +} + static void rk_pinctrl_configure_pin(struct rk_pinctrl_softc *sc, uint32_t *pindata) { @@ -602,7 +770,7 @@ rk_pinctrl_configure_pin(struct rk_pinctrl_softc *sc, struct syscon *syscon; uint32_t bank, subbank, pin, function, bias; uint32_t bit, mask, reg, drive; - int i; + int i, rv; bank = pindata[0]; pin = pindata[1]; @@ -611,8 +779,8 @@ rk_pinctrl_configure_pin(struct rk_pinctrl_softc *sc, subbank = pin / 8; for (i = 0; i < sc->conf->iomux_nbanks; i++) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Aug 18 11:43:59 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D6953C4B7F; Sun, 18 Aug 2019 11:43:59 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BFZR54ghz4Rs5; Sun, 18 Aug 2019 11:43:59 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8FC7D178D; Sun, 18 Aug 2019 11:43:59 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7IBhxqI011256; Sun, 18 Aug 2019 11:43:59 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7IBhxZO011254; Sun, 18 Aug 2019 11:43:59 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201908181143.x7IBhxZO011254@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Sun, 18 Aug 2019 11:43:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351188 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 351188 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 11:43:59 -0000 Author: jeff Date: Sun Aug 18 11:43:58 2019 New Revision: 351188 URL: https://svnweb.freebsd.org/changeset/base/351188 Log: Add a blocking wait bit to refcount. This allows refs to be used as a simple barrier. Reviewed by: markj, kib Discussed with: jhb Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21254 Modified: head/sys/kern/kern_synch.c head/sys/sys/refcount.h Modified: head/sys/kern/kern_synch.c ============================================================================== --- head/sys/kern/kern_synch.c Sun Aug 18 09:19:33 2019 (r351187) +++ head/sys/kern/kern_synch.c Sun Aug 18 11:43:58 2019 (r351188) @@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -331,6 +332,75 @@ pause_sbt(const char *wmesg, sbintime_t sbt, sbintime_ } return (_sleep(&pause_wchan[curcpu], NULL, (flags & C_CATCH) ? PCATCH : 0, wmesg, sbt, pr, flags)); +} + +/* + * Potentially release the last reference for refcount. Check for + * unlikely conditions and signal the caller as to whether it was + * the final ref. + */ +bool +refcount_release_last(volatile u_int *count, u_int n, u_int old) +{ + u_int waiter; + + waiter = old & REFCOUNT_WAITER; + old = REFCOUNT_COUNT(old); + if (__predict_false(n > old || REFCOUNT_SATURATED(old))) { + /* + * Avoid multiple destructor invocations if underflow occurred. + * This is not perfect since the memory backing the containing + * object may already have been reallocated. + */ + _refcount_update_saturated(count); + return (false); + } + + /* + * Attempt to atomically clear the waiter bit. Wakeup waiters + * if we are successful. + */ + if (waiter != 0 && atomic_cmpset_int(count, REFCOUNT_WAITER, 0)) + wakeup(__DEVOLATILE(u_int *, count)); + + /* + * Last reference. Signal the user to call the destructor. + * + * Ensure that the destructor sees all updates. The fence_rel + * at the start of refcount_releasen synchronizes with this fence. + */ + atomic_thread_fence_acq(); + return (true); +} + +/* + * Wait for a refcount wakeup. This does not guarantee that the ref is still + * zero on return and may be subject to transient wakeups. Callers wanting + * a precise answer should use refcount_wait(). + */ +void +refcount_sleep(volatile u_int *count, const char *wmesg, int pri) +{ + void *wchan; + u_int old; + + if (REFCOUNT_COUNT(*count) == 0) + return; + wchan = __DEVOLATILE(void *, count); + sleepq_lock(wchan); + old = *count; + for (;;) { + if (REFCOUNT_COUNT(old) == 0) { + sleepq_release(wchan); + return; + } + if (old & REFCOUNT_WAITER) + break; + if (atomic_fcmpset_int(count, &old, old | REFCOUNT_WAITER)) + break; + } + sleepq_add(wchan, NULL, wmesg, 0, 0); + sleepq_wait(wchan, pri); } /* Modified: head/sys/sys/refcount.h ============================================================================== --- head/sys/sys/refcount.h Sun Aug 18 09:19:33 2019 (r351187) +++ head/sys/sys/refcount.h Sun Aug 18 11:43:58 2019 (r351188) @@ -39,9 +39,15 @@ #define KASSERT(exp, msg) /* */ #endif -#define REFCOUNT_SATURATED(val) (((val) & (1U << 31)) != 0) -#define REFCOUNT_SATURATION_VALUE (3U << 30) +#define REFCOUNT_WAITER (1 << 31) /* Refcount has waiter. */ +#define REFCOUNT_SATURATION_VALUE (3U << 29) +#define REFCOUNT_SATURATED(val) (((val) & (1U << 30)) != 0) +#define REFCOUNT_COUNT(x) ((x) & ~REFCOUNT_WAITER) + +bool refcount_release_last(volatile u_int *count, u_int n, u_int old); +void refcount_sleep(volatile u_int *count, const char *wmesg, int prio); + /* * Attempt to handle reference count overflow and underflow. Force the counter * to stay at the saturation value so that a counter overflow cannot trigger @@ -76,6 +82,19 @@ refcount_acquire(volatile u_int *count) _refcount_update_saturated(count); } +static __inline void +refcount_acquiren(volatile u_int *count, u_int n) +{ + + u_int old; + + KASSERT(n < REFCOUNT_SATURATION_VALUE / 2, + ("refcount_acquiren: n %d too large", n)); + old = atomic_fetchadd_int(count, n); + if (__predict_false(REFCOUNT_SATURATED(old))) + _refcount_update_saturated(count); +} + static __inline __result_use_check bool refcount_acquire_checked(volatile u_int *count) { @@ -91,34 +110,35 @@ refcount_acquire_checked(volatile u_int *count) } static __inline bool -refcount_release(volatile u_int *count) +refcount_releasen(volatile u_int *count, u_int n) { u_int old; + KASSERT(n < REFCOUNT_SATURATION_VALUE / 2, + ("refcount_releasen: n %d too large", n)); atomic_thread_fence_rel(); - old = atomic_fetchadd_int(count, -1); - if (__predict_false(old == 0 || REFCOUNT_SATURATED(old))) { - /* - * Avoid multiple destructor invocations if underflow occurred. - * This is not perfect since the memory backing the containing - * object may already have been reallocated. - */ - _refcount_update_saturated(count); - return (false); - } - if (old > 1) - return (false); + old = atomic_fetchadd_int(count, -n); + if (__predict_false(n >= REFCOUNT_COUNT(old) || + REFCOUNT_SATURATED(old))) + return (refcount_release_last(count, n, old)); + return (false); +} - /* - * Last reference. Signal the user to call the destructor. - * - * Ensure that the destructor sees all updates. The fence_rel - * at the start of the function synchronizes with this fence. - */ - atomic_thread_fence_acq(); - return (true); +static __inline bool +refcount_release(volatile u_int *count) +{ + + return (refcount_releasen(count, 1)); } +static __inline void +refcount_wait(volatile u_int *count, const char *wmesg, int prio) +{ + + while (*count != 0) + refcount_sleep(count, wmesg, prio); +} + /* * This functions returns non-zero if the refcount was * incremented. Else zero is returned. @@ -130,7 +150,7 @@ refcount_acquire_if_not_zero(volatile u_int *count) old = *count; for (;;) { - if (old == 0) + if (REFCOUNT_COUNT(old) == 0) return (false); if (__predict_false(REFCOUNT_SATURATED(old))) return (true); @@ -146,7 +166,7 @@ refcount_release_if_not_last(volatile u_int *count) old = *count; for (;;) { - if (old == 1) + if (REFCOUNT_COUNT(old) == 1) return (false); if (__predict_false(REFCOUNT_SATURATED(old))) return (true); From owner-svn-src-all@freebsd.org Sun Aug 18 15:37:20 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9A089C9FE1; Sun, 18 Aug 2019 15:37:20 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BLlh3Wjfz4fNV; Sun, 18 Aug 2019 15:37:20 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 561F943C8; Sun, 18 Aug 2019 15:37:20 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7IFbKaj048955; Sun, 18 Aug 2019 15:37:20 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7IFbKbo048954; Sun, 18 Aug 2019 15:37:20 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201908181537.x7IFbKbo048954@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 18 Aug 2019 15:37:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351189 - head/sys/dev/fdt X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: head/sys/dev/fdt X-SVN-Commit-Revision: 351189 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 15:37:20 -0000 Author: mmel Date: Sun Aug 18 15:37:19 2019 New Revision: 351189 URL: https://svnweb.freebsd.org/changeset/base/351189 Log: Fix bug introduced by r351184. We should check the returned handle, not the pointer to it. Noticed by: ian X-MFC with: r351184 MFC after: 1 week Modified: head/sys/dev/fdt/simple_mfd.c Modified: head/sys/dev/fdt/simple_mfd.c ============================================================================== --- head/sys/dev/fdt/simple_mfd.c Sun Aug 18 11:43:58 2019 (r351188) +++ head/sys/dev/fdt/simple_mfd.c Sun Aug 18 15:37:19 2019 (r351189) @@ -134,7 +134,7 @@ simple_mfd_syscon_get_handle(device_t dev, struct sysc sc = device_get_softc(dev); *syscon = sc->syscon; - if (syscon == NULL) + if (*syscon == NULL) return (ENODEV); return (0); } From owner-svn-src-all@freebsd.org Sun Aug 18 15:58:45 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 50294CA42C; Sun, 18 Aug 2019 15:58:45 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BMDP1BNTz4g7v; Sun, 18 Aug 2019 15:58: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 064194757; Sun, 18 Aug 2019 15:58:45 +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 x7IFwij4060837; Sun, 18 Aug 2019 15:58:44 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7IFwixK060836; Sun, 18 Aug 2019 15:58:44 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908181558.x7IFwixK060836@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sun, 18 Aug 2019 15:58:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351190 - in head: share/man/man9 sys/i386/include X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head: share/man/man9 sys/i386/include X-SVN-Commit-Revision: 351190 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 15:58:45 -0000 Author: kib Date: Sun Aug 18 15:58:44 2019 New Revision: 351190 URL: https://svnweb.freebsd.org/changeset/base/351190 Log: i386: Implement atomic_load_64(9) and atomic_store_64(9). Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/share/man/man9/atomic.9 head/sys/i386/include/atomic.h Modified: head/share/man/man9/atomic.9 ============================================================================== --- head/share/man/man9/atomic.9 Sun Aug 18 15:37:19 2019 (r351189) +++ head/share/man/man9/atomic.9 Sun Aug 18 15:58:44 2019 (r351190) @@ -22,7 +22,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 22, 2017 +.Dd August 18, 2019 .Dt ATOMIC 9 .Os .Sh NAME @@ -477,7 +477,7 @@ and do not have any variants with memory barriers at t .Pp The type .Dq Li 64 -is currently not implemented for any of the atomic operations on the +is currently not implemented for some of the atomic operations on the .Tn arm , .Tn i386 , and Modified: head/sys/i386/include/atomic.h ============================================================================== --- head/sys/i386/include/atomic.h Sun Aug 18 15:37:19 2019 (r351189) +++ head/sys/i386/include/atomic.h Sun Aug 18 15:58:44 2019 (r351190) @@ -891,6 +891,8 @@ u_long atomic_swap_long(volatile u_long *p, u_long v); #define atomic_add_rel_64 atomic_add_64 #define atomic_subtract_acq_64 atomic_subtract_64 #define atomic_subtract_rel_64 atomic_subtract_64 +#define atomic_load_64 atomic_load_acq_64 +#define atomic_store_64 atomic_store_rel_64 /* Operations on pointers. */ #define atomic_set_ptr(p, v) \ From owner-svn-src-all@freebsd.org Sun Aug 18 16:04:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 615C8CA64B; Sun, 18 Aug 2019 16:04:03 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BMLW1wCjz3By0; Sun, 18 Aug 2019 16:04:03 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2350D4917; Sun, 18 Aug 2019 16:04:03 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7IG42Il066273; Sun, 18 Aug 2019 16:04:02 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7IG42HT066269; Sun, 18 Aug 2019 16:04:02 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201908181604.x7IG42HT066269@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Sun, 18 Aug 2019 16:04:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351191 - head/sys/dev/random X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/dev/random X-SVN-Commit-Revision: 351191 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 16:04:03 -0000 Author: cem Date: Sun Aug 18 16:04:01 2019 New Revision: 351191 URL: https://svnweb.freebsd.org/changeset/base/351191 Log: random(4): Reorder configuration of random source modules Move fast entropy source registration to the earlier SI_SUB_RANDOM:SI_ORDER_FOURTH and move random_harvestq_prime after that. Relocate the registration routines out of the much later randomdev module and into random_harvestq. This is necessary for the fast random sources to actually register before we perform random_harvestq_prime() early in the kernel boot. No functional change. Reviewed by: delphij, markjm Approved by: secteam(delphij) Differential Revision: https://reviews.freebsd.org/D21308 Modified: head/sys/dev/random/darn.c head/sys/dev/random/ivy.c head/sys/dev/random/nehemiah.c head/sys/dev/random/random_harvestq.c head/sys/dev/random/randomdev.c Modified: head/sys/dev/random/darn.c ============================================================================== --- head/sys/dev/random/darn.c Sun Aug 18 15:58:44 2019 (r351190) +++ head/sys/dev/random/darn.c Sun Aug 18 16:04:01 2019 (r351191) @@ -137,6 +137,12 @@ darn_modevent(module_t mod, int type, void *unused) return (error); } -DEV_MODULE(darn, darn_modevent, NULL); +static moduledata_t darn_mod = { + "darn", + darn_modevent, + 0 +}; + +DECLARE_MODULE(darn, darn_mod, SI_SUB_RANDOM, SI_ORDER_FOURTH); MODULE_VERSION(darn, 1); -MODULE_DEPEND(darn, random_device, 1, 1, 1); +MODULE_DEPEND(darn, random_harvestq, 1, 1, 1); Modified: head/sys/dev/random/ivy.c ============================================================================== --- head/sys/dev/random/ivy.c Sun Aug 18 15:58:44 2019 (r351190) +++ head/sys/dev/random/ivy.c Sun Aug 18 16:04:01 2019 (r351191) @@ -164,6 +164,12 @@ rdrand_modevent(module_t mod, int type, void *unused) return (error); } -DEV_MODULE(rdrand, rdrand_modevent, NULL); +static moduledata_t rdrand_mod = { + "rdrand", + rdrand_modevent, + 0 +}; + +DECLARE_MODULE(rdrand, rdrand_mod, SI_SUB_RANDOM, SI_ORDER_FOURTH); MODULE_VERSION(rdrand, 1); -MODULE_DEPEND(rdrand, random_device, 1, 1, 1); +MODULE_DEPEND(rdrand, random_harvestq, 1, 1, 1); Modified: head/sys/dev/random/nehemiah.c ============================================================================== --- head/sys/dev/random/nehemiah.c Sun Aug 18 15:58:44 2019 (r351190) +++ head/sys/dev/random/nehemiah.c Sun Aug 18 16:04:01 2019 (r351191) @@ -146,6 +146,12 @@ nehemiah_modevent(module_t mod, int type, void *unused return (error); } -DEV_MODULE(nehemiah, nehemiah_modevent, NULL); +static moduledata_t nehemiah_mod = { + "nehemiah", + nehemiah_modevent, + 0 +}; + +DECLARE_MODULE(nehemiah, nehemiah_mod, SI_SUB_RANDOM, SI_ORDER_FOURTH); MODULE_VERSION(nehemiah, 1); -MODULE_DEPEND(nehemiah, random_device, 1, 1, 1); +MODULE_DEPEND(nehemiah, random_harvestq, 1, 1, 1); Modified: head/sys/dev/random/random_harvestq.c ============================================================================== --- head/sys/dev/random/random_harvestq.c Sun Aug 18 15:58:44 2019 (r351190) +++ head/sys/dev/random/random_harvestq.c Sun Aug 18 16:04:01 2019 (r351191) @@ -447,7 +447,7 @@ random_harvestq_prime(void *unused __unused) printf("random: no preloaded entropy cache\n"); } } -SYSINIT(random_device_prime, SI_SUB_RANDOM, SI_ORDER_FOURTH, random_harvestq_prime, NULL); +SYSINIT(random_device_prime, SI_SUB_RANDOM, SI_ORDER_MIDDLE, random_harvestq_prime, NULL); /* ARGSUSED */ static void @@ -555,5 +555,61 @@ random_harvest_deregister_source(enum random_entropy_s hc_source_mask &= ~(1 << source); } + +void +random_source_register(struct random_source *rsource) +{ + struct random_sources *rrs; + + KASSERT(rsource != NULL, ("invalid input to %s", __func__)); + + rrs = malloc(sizeof(*rrs), M_ENTROPY, M_WAITOK); + rrs->rrs_source = rsource; + + random_harvest_register_source(rsource->rs_source); + + printf("random: registering fast source %s\n", rsource->rs_ident); + LIST_INSERT_HEAD(&source_list, rrs, rrs_entries); +} + +void +random_source_deregister(struct random_source *rsource) +{ + struct random_sources *rrs = NULL; + + KASSERT(rsource != NULL, ("invalid input to %s", __func__)); + + random_harvest_deregister_source(rsource->rs_source); + + LIST_FOREACH(rrs, &source_list, rrs_entries) + if (rrs->rrs_source == rsource) { + LIST_REMOVE(rrs, rrs_entries); + break; + } + if (rrs != NULL) + free(rrs, M_ENTROPY); +} + +static int +random_source_handler(SYSCTL_HANDLER_ARGS) +{ + struct random_sources *rrs; + struct sbuf sbuf; + int error, count; + + sbuf_new_for_sysctl(&sbuf, NULL, 64, req); + count = 0; + LIST_FOREACH(rrs, &source_list, rrs_entries) { + sbuf_cat(&sbuf, (count++ ? ",'" : "'")); + sbuf_cat(&sbuf, rrs->rrs_source->rs_ident); + sbuf_cat(&sbuf, "'"); + } + error = sbuf_finish(&sbuf); + sbuf_delete(&sbuf); + return (error); +} +SYSCTL_PROC(_kern_random, OID_AUTO, random_sources, CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, + NULL, 0, random_source_handler, "A", + "List of active fast entropy sources."); MODULE_VERSION(random_harvestq, 1); Modified: head/sys/dev/random/randomdev.c ============================================================================== --- head/sys/dev/random/randomdev.c Sun Aug 18 15:58:44 2019 (r351190) +++ head/sys/dev/random/randomdev.c Sun Aug 18 16:04:01 2019 (r351191) @@ -410,62 +410,6 @@ randomdev_ioctl(struct cdev *dev __unused, u_long cmd, return (error); } -void -random_source_register(struct random_source *rsource) -{ - struct random_sources *rrs; - - KASSERT(rsource != NULL, ("invalid input to %s", __func__)); - - rrs = malloc(sizeof(*rrs), M_ENTROPY, M_WAITOK); - rrs->rrs_source = rsource; - - random_harvest_register_source(rsource->rs_source); - - printf("random: registering fast source %s\n", rsource->rs_ident); - LIST_INSERT_HEAD(&source_list, rrs, rrs_entries); -} - -void -random_source_deregister(struct random_source *rsource) -{ - struct random_sources *rrs = NULL; - - KASSERT(rsource != NULL, ("invalid input to %s", __func__)); - - random_harvest_deregister_source(rsource->rs_source); - - LIST_FOREACH(rrs, &source_list, rrs_entries) - if (rrs->rrs_source == rsource) { - LIST_REMOVE(rrs, rrs_entries); - break; - } - if (rrs != NULL) - free(rrs, M_ENTROPY); -} - -static int -random_source_handler(SYSCTL_HANDLER_ARGS) -{ - struct random_sources *rrs; - struct sbuf sbuf; - int error, count; - - sbuf_new_for_sysctl(&sbuf, NULL, 64, req); - count = 0; - LIST_FOREACH(rrs, &source_list, rrs_entries) { - sbuf_cat(&sbuf, (count++ ? ",'" : "'")); - sbuf_cat(&sbuf, rrs->rrs_source->rs_ident); - sbuf_cat(&sbuf, "'"); - } - error = sbuf_finish(&sbuf); - sbuf_delete(&sbuf); - return (error); -} -SYSCTL_PROC(_kern_random, OID_AUTO, random_sources, CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, - NULL, 0, random_source_handler, "A", - "List of active fast entropy sources."); - /* ARGSUSED */ static int randomdev_modevent(module_t mod __unused, int type, void *data __unused) From owner-svn-src-all@freebsd.org Sun Aug 18 17:12:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4AA3ACC1B0; Sun, 18 Aug 2019 17:12:07 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BNs31Fw9z3GsT; Sun, 18 Aug 2019 17:12:07 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0E17B5583; Sun, 18 Aug 2019 17:12:07 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7IHC65h007448; Sun, 18 Aug 2019 17:12:06 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7IHC6PY007447; Sun, 18 Aug 2019 17:12:06 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908181712.x7IHC6PY007447@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Sun, 18 Aug 2019 17:12:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351192 - head/usr.sbin/periodic X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/usr.sbin/periodic X-SVN-Commit-Revision: 351192 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 17:12:07 -0000 Author: asomers Date: Sun Aug 18 17:12:06 2019 New Revision: 351192 URL: https://svnweb.freebsd.org/changeset/base/351192 Log: periodic: fix anticongestion for scripts run after security Revision 316342, which introduced the anticongestion feature, failed to consider that the periodic scripts are executed by a recursive invocation of periodic. The recursive invocation wrongly cleaned up a temporary file that should've been cleaned up only by the original invocation. The result is that if the first script that requests an anticongestion sleep runs after the security scripts, the sleep won't happen. Fix this bug by delaying cleanup until the end of the original invocation. PR: 236564 Submitted by: Yasuhiro KIMURA Reviewed by: imp MFC after: 1 month Modified: head/usr.sbin/periodic/periodic.sh Modified: head/usr.sbin/periodic/periodic.sh ============================================================================== --- head/usr.sbin/periodic/periodic.sh Sun Aug 18 16:04:01 2019 (r351191) +++ head/usr.sbin/periodic/periodic.sh Sun Aug 18 17:12:06 2019 (r351192) @@ -78,6 +78,11 @@ arg=$1 if [ -z "$PERIODIC_ANTICONGESTION_FILE" ] ; then export PERIODIC_ANTICONGESTION_FILE=`mktemp ${TMPDIR:-/tmp}/periodic.anticongestion.XXXXXXXXXX` + remove_periodic_anticongestion_file=yes +else + # We might be in a recursive invocation; let the top-level invocation + # remove the file. + remove_periodic_anticongestion_file=no fi if tty > /dev/null 2>&1; then export PERIODIC_IS_INTERACTIVE=1 @@ -147,4 +152,6 @@ esac } | output_pipe $arg "$context" rm -f $tmp_output -rm -f $PERIODIC_ANTICONGESTION_FILE +if [ $remove_periodic_anticongestion_file = "yes" ] ; then + rm -f $PERIODIC_ANTICONGESTION_FILE +fi From owner-svn-src-all@freebsd.org Sun Aug 18 18:40:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 71895CE400; Sun, 18 Aug 2019 18:40:13 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BQpj26rgz3LX0; Sun, 18 Aug 2019 18:40:13 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2A53A641D; Sun, 18 Aug 2019 18:40:13 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7IIeDD4055890; Sun, 18 Aug 2019 18:40:13 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7IIeCAL055888; Sun, 18 Aug 2019 18:40:12 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201908181840.x7IIeCAL055888@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 18 Aug 2019 18:40:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351193 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 351193 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 18:40:13 -0000 Author: mjg Date: Sun Aug 18 18:40:12 2019 New Revision: 351193 URL: https://svnweb.freebsd.org/changeset/base/351193 Log: vfs: stop always overwriting ->mnt_stat in VFS_STATFS The struct is already populated on each mount (and remount). Fields are either constant or not used by filesystem in the first place. Some infrequently used functions use it to avoid having to allocate a new buffer and are left alone. The current code results in an avoidable copying single-threaded and significant cache line bouncing multithreaded While here deduplicate initial filling of the struct. Reviewed by: kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21317 Modified: head/sys/kern/vfs_mount.c head/sys/kern/vfs_syscalls.c Modified: head/sys/kern/vfs_mount.c ============================================================================== --- head/sys/kern/vfs_mount.c Sun Aug 18 17:12:06 2019 (r351192) +++ head/sys/kern/vfs_mount.c Sun Aug 18 18:40:12 2019 (r351193) @@ -1831,12 +1831,15 @@ vfs_copyopt(struct vfsoptlist *opts, const char *name, int __vfs_statfs(struct mount *mp, struct statfs *sbp) { - int error; - error = mp->mnt_op->vfs_statfs(mp, &mp->mnt_stat); - if (sbp != &mp->mnt_stat) - *sbp = mp->mnt_stat; - return (error); + /* + * Set these in case the underlying filesystem fails to do so. + */ + sbp->f_version = STATFS_VERSION; + sbp->f_namemax = NAME_MAX; + sbp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; + + return (mp->mnt_op->vfs_statfs(mp, sbp)); } void Modified: head/sys/kern/vfs_syscalls.c ============================================================================== --- head/sys/kern/vfs_syscalls.c Sun Aug 18 17:12:06 2019 (r351192) +++ head/sys/kern/vfs_syscalls.c Sun Aug 18 18:40:12 2019 (r351193) @@ -248,7 +248,6 @@ statfs_scale_blocks(struct statfs *sf, long max_size) static int kern_do_statfs(struct thread *td, struct mount *mp, struct statfs *buf) { - struct statfs *sp; int error; if (mp == NULL) @@ -262,17 +261,9 @@ kern_do_statfs(struct thread *td, struct mount *mp, st if (error != 0) goto out; #endif - /* - * Set these in case the underlying filesystem fails to do so. - */ - sp = &mp->mnt_stat; - sp->f_version = STATFS_VERSION; - sp->f_namemax = NAME_MAX; - sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; - error = VFS_STATFS(mp, sp); + error = VFS_STATFS(mp, buf); if (error != 0) goto out; - *buf = *sp; if (priv_check(td, PRIV_VFS_GENERATION)) { buf->f_fsid.val[0] = buf->f_fsid.val[1] = 0; prison_enforce_statfs(td->td_ucred, mp, buf); @@ -476,13 +467,6 @@ restart: if (sfsp != NULL && count < maxcount) { sp = &mp->mnt_stat; /* - * Set these in case the underlying filesystem - * fails to do so. - */ - sp->f_version = STATFS_VERSION; - sp->f_namemax = NAME_MAX; - sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; - /* * If MNT_NOWAIT is specified, do not refresh * the fsstat cache. */ @@ -4545,7 +4529,6 @@ sys_fhstatfs(struct thread *td, struct fhstatfs_args * int kern_fhstatfs(struct thread *td, fhandle_t fh, struct statfs *buf) { - struct statfs *sp; struct mount *mp; struct vnode *vp; int error; @@ -4569,16 +4552,7 @@ kern_fhstatfs(struct thread *td, fhandle_t fh, struct if (error != 0) goto out; #endif - /* - * Set these in case the underlying filesystem fails to do so. - */ - sp = &mp->mnt_stat; - sp->f_version = STATFS_VERSION; - sp->f_namemax = NAME_MAX; - sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; - error = VFS_STATFS(mp, sp); - if (error == 0) - *buf = *sp; + error = VFS_STATFS(mp, buf); out: vfs_unbusy(mp); return (error); From owner-svn-src-all@freebsd.org Sun Aug 18 20:24:53 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1F9C5D0350; Sun, 18 Aug 2019 20:24:53 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BT7T02Rgz3Qnn; Sun, 18 Aug 2019 20:24:53 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D6D1277E7; Sun, 18 Aug 2019 20:24:52 +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 x7IKOqEo020514; Sun, 18 Aug 2019 20:24:52 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7IKOqRD020512; Sun, 18 Aug 2019 20:24:52 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908182024.x7IKOqRD020512@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sun, 18 Aug 2019 20:24:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351194 - in head/sys: compat/linux kern vm X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head/sys: compat/linux kern vm X-SVN-Commit-Revision: 351194 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 20:24:53 -0000 Author: kib Date: Sun Aug 18 20:24:52 2019 New Revision: 351194 URL: https://svnweb.freebsd.org/changeset/base/351194 Log: Change locking requirements for VOP_UNSET_TEXT(). Require the vnode to be locked for the VOP_UNSET_TEXT() call. This will be used by the following bug fix for a tmpfs issue. Tested by: sbruno, pho (previous version) Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/compat/linux/linux_misc.c head/sys/kern/vnode_if.src head/sys/vm/vm_map.c Modified: head/sys/compat/linux/linux_misc.c ============================================================================== --- head/sys/compat/linux/linux_misc.c Sun Aug 18 18:40:12 2019 (r351193) +++ head/sys/compat/linux/linux_misc.c Sun Aug 18 20:24:52 2019 (r351194) @@ -472,8 +472,13 @@ cleanup: locked = false; VOP_CLOSE(vp, FREAD, td->td_ucred, td); } - if (textset) + if (textset) { + if (!locked) { + locked = true; + VOP_LOCK(vp, LK_SHARED | LK_RETRY); + } VOP_UNSET_TEXT_CHECKED(vp); + } if (locked) VOP_UNLOCK(vp, 0); Modified: head/sys/kern/vnode_if.src ============================================================================== --- head/sys/kern/vnode_if.src Sun Aug 18 18:40:12 2019 (r351193) +++ head/sys/kern/vnode_if.src Sun Aug 18 20:24:52 2019 (r351194) @@ -695,7 +695,7 @@ vop_set_text { }; -%% vop_unset_text vp = = = +%% vop_unset_text vp L L L vop_unset_text { IN struct vnode *vp; Modified: head/sys/vm/vm_map.c ============================================================================== --- head/sys/vm/vm_map.c Sun Aug 18 18:40:12 2019 (r351193) +++ head/sys/vm/vm_map.c Sun Aug 18 20:24:52 2019 (r351194) @@ -547,12 +547,20 @@ vm_map_entry_set_vnode_text(vm_map_entry_t entry, bool "entry %p, object %p, add %d", entry, object, add)); } if (vp != NULL) { - if (add) + if (add) { VOP_SET_TEXT_CHECKED(vp); - else + VM_OBJECT_RUNLOCK(object); + } else { + vhold(vp); + VM_OBJECT_RUNLOCK(object); + vn_lock(vp, LK_SHARED | LK_RETRY); VOP_UNSET_TEXT_CHECKED(vp); + VOP_UNLOCK(vp, 0); + vdrop(vp); + } + } else { + VM_OBJECT_RUNLOCK(object); } - VM_OBJECT_RUNLOCK(object); } static void From owner-svn-src-all@freebsd.org Sun Aug 18 20:36:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2B2EDD0569; Sun, 18 Aug 2019 20:36:13 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BTNY08Vxz3RC0; Sun, 18 Aug 2019 20:36:13 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D6A7E79A6; Sun, 18 Aug 2019 20:36:12 +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 x7IKaCxs026211; Sun, 18 Aug 2019 20:36:12 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7IKaBHS026207; Sun, 18 Aug 2019 20:36:11 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908182036.x7IKaBHS026207@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sun, 18 Aug 2019 20:36:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351195 - in head/sys: fs/tmpfs kern sys X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head/sys: fs/tmpfs kern sys X-SVN-Commit-Revision: 351195 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 20:36:13 -0000 Author: kib Date: Sun Aug 18 20:36:11 2019 New Revision: 351195 URL: https://svnweb.freebsd.org/changeset/base/351195 Log: Fix an issue with executing tmpfs binary. Suppose that a binary was executed from tmpfs mount, and the text vnode was reclaimed while the binary was still running. It is possible during even the normal operations since tmpfs vnode' vm_object has swap type, and no references on the vnode is held. Also assume that the text vnode was revived for some reason. Then, on the process exit or exec, unmapping of the text mapping tries to remove the text reference from the vnode, but since it went from recycle/instantiation cycle, there is no reference kept, and assertion in VOP_UNSET_TEXT_CHECKED() triggers. Fix this by keeping a use reference on the tmpfs vnode for each exec reference. This prevents the vnode reclamation while executable map entry is active. Do it by adding per-mount flag MNTK_TEXT_REFS that directs vop_stdset_text() to add use ref on first vnode text use, and per-vnode VI_TEXT_REF flag, to record the need on unref in vop_stdunset_text() on last vnode text use going away. Set MNTK_TEXT_REFS for tmpfs mounts. Reported by: bdrewery Tested by: sbruno, pho (previous version) Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/fs/tmpfs/tmpfs_vfsops.c head/sys/kern/vfs_default.c head/sys/sys/mount.h head/sys/sys/vnode.h Modified: head/sys/fs/tmpfs/tmpfs_vfsops.c ============================================================================== --- head/sys/fs/tmpfs/tmpfs_vfsops.c Sun Aug 18 20:24:52 2019 (r351194) +++ head/sys/fs/tmpfs/tmpfs_vfsops.c Sun Aug 18 20:36:11 2019 (r351195) @@ -507,7 +507,8 @@ tmpfs_mount(struct mount *mp) MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; - mp->mnt_kern_flag |= MNTK_LOOKUP_SHARED | MNTK_EXTENDED_SHARED; + mp->mnt_kern_flag |= MNTK_LOOKUP_SHARED | MNTK_EXTENDED_SHARED | + MNTK_TEXT_REFS; MNT_IUNLOCK(mp); mp->mnt_data = tmp; Modified: head/sys/kern/vfs_default.c ============================================================================== --- head/sys/kern/vfs_default.c Sun Aug 18 20:24:52 2019 (r351194) +++ head/sys/kern/vfs_default.c Sun Aug 18 20:36:11 2019 (r351195) @@ -1082,6 +1082,7 @@ int vop_stdset_text(struct vop_set_text_args *ap) { struct vnode *vp; + struct mount *mp; int error; vp = ap->a_vp; @@ -1089,6 +1090,17 @@ vop_stdset_text(struct vop_set_text_args *ap) if (vp->v_writecount > 0) { error = ETXTBSY; } else { + /* + * If requested by fs, keep a use reference to the + * vnode until the last text reference is released. + */ + mp = vp->v_mount; + if (mp != NULL && (mp->mnt_kern_flag & MNTK_TEXT_REFS) != 0 && + vp->v_writecount == 0) { + vp->v_iflag |= VI_TEXT_REF; + vrefl(vp); + } + vp->v_writecount--; error = 0; } @@ -1101,16 +1113,25 @@ vop_stdunset_text(struct vop_unset_text_args *ap) { struct vnode *vp; int error; + bool last; vp = ap->a_vp; + last = false; VI_LOCK(vp); if (vp->v_writecount < 0) { + if ((vp->v_iflag & VI_TEXT_REF) != 0 && + vp->v_writecount == -1) { + last = true; + vp->v_iflag &= ~VI_TEXT_REF; + } vp->v_writecount++; error = 0; } else { error = EINVAL; } VI_UNLOCK(vp); + if (last) + vunref(vp); return (error); } Modified: head/sys/sys/mount.h ============================================================================== --- head/sys/sys/mount.h Sun Aug 18 20:24:52 2019 (r351194) +++ head/sys/sys/mount.h Sun Aug 18 20:36:11 2019 (r351195) @@ -398,6 +398,7 @@ void __mnt_vnode_markerfree_active(struct vno #define MNTK_MARKER 0x00001000 #define MNTK_UNMAPPED_BUFS 0x00002000 #define MNTK_USES_BCACHE 0x00004000 /* FS uses the buffer cache. */ +#define MNTK_TEXT_REFS 0x00008000 /* Keep use ref for text */ #define MNTK_NOASYNC 0x00800000 /* disable async */ #define MNTK_UNMOUNT 0x01000000 /* unmount in progress */ #define MNTK_MWAIT 0x02000000 /* waiting for unmount to finish */ Modified: head/sys/sys/vnode.h ============================================================================== --- head/sys/sys/vnode.h Sun Aug 18 20:24:52 2019 (r351194) +++ head/sys/sys/vnode.h Sun Aug 18 20:36:11 2019 (r351195) @@ -233,6 +233,7 @@ struct xvnode { * VI_DOOMED is doubly protected by the interlock and vnode lock. Both * are required for writing but the status may be checked with either. */ +#define VI_TEXT_REF 0x0001 /* Text ref grabbed use ref */ #define VI_MOUNT 0x0020 /* Mount in progress */ #define VI_DOOMED 0x0080 /* This vnode is being recycled */ #define VI_FREE 0x0100 /* This vnode is on the freelist */ From owner-svn-src-all@freebsd.org Sun Aug 18 22:11:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6858AD2C83; Sun, 18 Aug 2019 22:11:43 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BWVl2wk2z42LS; Sun, 18 Aug 2019 22:11:43 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 458E08C5C; Sun, 18 Aug 2019 22:11:43 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7IMBhsO084657; Sun, 18 Aug 2019 22:11:43 GMT (envelope-from wulf@FreeBSD.org) Received: (from wulf@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7IMBgrb084651; Sun, 18 Aug 2019 22:11:42 GMT (envelope-from wulf@FreeBSD.org) Message-Id: <201908182211.x7IMBgrb084651@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wulf set sender to wulf@FreeBSD.org using -f From: Vladimir Kondratyev Date: Sun, 18 Aug 2019 22:11:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351196 - in head/sys: conf modules/netgraph/bluetooth/ubt netgraph/bluetooth/drivers/ubt X-SVN-Group: head X-SVN-Commit-Author: wulf X-SVN-Commit-Paths: in head/sys: conf modules/netgraph/bluetooth/ubt netgraph/bluetooth/drivers/ubt X-SVN-Commit-Revision: 351196 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 22:11:43 -0000 Author: wulf Date: Sun Aug 18 22:11:42 2019 New Revision: 351196 URL: https://svnweb.freebsd.org/changeset/base/351196 Log: ng_ubt(4): do not attach Intel Wireless 8260/8265 in bootloader mode. Add helper function for synchronous execution of HCI commands at probe stage and use this function to check firmware state of Intel Wireless 8260/8265 bluetooth devices found in many post 2016 year laptops. Attempt to initialize FreeBSD bluetooth stack while such a device is in bootloader mode locks the adapter hardly so it requires power on/off cycle to restore. This change blocks ng_ubt attachment unless operational firmware is loaded thus preventing the lock up. PR: 237083 Reviewed by: hps, emax MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D21071 Added: head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c (contents, props changed) Modified: head/sys/conf/files head/sys/modules/netgraph/bluetooth/ubt/Makefile head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Sun Aug 18 20:36:11 2019 (r351195) +++ head/sys/conf/files Sun Aug 18 22:11:42 2019 (r351196) @@ -4147,6 +4147,7 @@ netgraph/bluetooth/common/ng_bluetooth.c optional netg netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c optional netgraph_bluetooth_bt3c netgraph/bluetooth/drivers/h4/ng_h4.c optional netgraph_bluetooth_h4 netgraph/bluetooth/drivers/ubt/ng_ubt.c optional netgraph_bluetooth_ubt usb +netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c optional netgraph_bluetooth_ubt usb netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c optional netgraph_bluetooth_ubtbcmfw usb netgraph/bluetooth/hci/ng_hci_cmds.c optional netgraph_bluetooth_hci netgraph/bluetooth/hci/ng_hci_evnt.c optional netgraph_bluetooth_hci Modified: head/sys/modules/netgraph/bluetooth/ubt/Makefile ============================================================================== --- head/sys/modules/netgraph/bluetooth/ubt/Makefile Sun Aug 18 20:36:11 2019 (r351195) +++ head/sys/modules/netgraph/bluetooth/ubt/Makefile Sun Aug 18 22:11:42 2019 (r351196) @@ -7,7 +7,7 @@ CFLAGS+= -I${SRCTOP}/sys/netgraph/bluetooth/include \ -I${SRCTOP}/sys/netgraph/bluetooth/drivers/ubt KMOD= ng_ubt -SRCS= ng_ubt.c opt_bus.h opt_usb.h device_if.h bus_if.h \ - usb_if.h usbdevs.h +SRCS= ng_ubt.c ng_ubt_intel.c opt_bus.h opt_usb.h device_if.h \ + bus_if.h usb_if.h usbdevs.h .include Modified: head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c ============================================================================== --- head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Sun Aug 18 20:36:11 2019 (r351195) +++ head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Sun Aug 18 22:11:42 2019 (r351196) @@ -252,6 +252,7 @@ static struct ng_type typestruct = ****************************************************************************/ /* USB methods */ +static usb_callback_t ubt_probe_intr_callback; static usb_callback_t ubt_ctrl_write_callback; static usb_callback_t ubt_intr_read_callback; static usb_callback_t ubt_bulk_read_callback; @@ -421,6 +422,13 @@ static const STRUCT_USB_HOST_ID ubt_ignore_devs[] = /* Atheros AR5BBU12 with sflash firmware */ { USB_VPI(0x0489, 0xe03c, 0), USB_DEV_BCD_LTEQ(1) }, { USB_VPI(0x0489, 0xe036, 0), USB_DEV_BCD_LTEQ(1) }, + + /* Intel Wireless 8260 and successors are handled in ng_ubt_intel.c */ + { USB_VPI(USB_VENDOR_INTEL2, 0x0a2b, 0) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0aaa, 0) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0025, 0) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0026, 0) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0029, 0) }, }; /* List of supported bluetooth devices */ @@ -503,6 +511,79 @@ static const STRUCT_USB_HOST_ID ubt_devs[] = }; /* + * Does a synchronous (waits for completion event) execution of HCI command. + * Size of both command and response buffers are passed in length field of + * corresponding structures in "Parameter Total Length" format i.e. + * not including HCI packet headers. + * + * Must not be used after USB transfers have been configured in attach routine. + */ + +usb_error_t +ubt_do_hci_request(struct usb_device *udev, struct ubt_hci_cmd *cmd, + void *evt, usb_timeout_t timeout) +{ + static const struct usb_config ubt_probe_config = { + .type = UE_INTERRUPT, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_IN, + .flags = { .pipe_bof = 1, .short_xfer_ok = 1 }, + .bufsize = UBT_INTR_BUFFER_SIZE, + .callback = &ubt_probe_intr_callback, + }; + struct usb_device_request req; + struct usb_xfer *xfer[1]; + struct mtx mtx; + usb_error_t error = USB_ERR_NORMAL_COMPLETION; + uint8_t iface_index = 0; + + /* Initialize a USB control request and then do it */ + bzero(&req, sizeof(req)); + req.bmRequestType = UBT_HCI_REQUEST; + req.wIndex[0] = iface_index; + USETW(req.wLength, UBT_HCI_CMD_SIZE(cmd)); + + error = usbd_do_request(udev, NULL, &req, cmd); + if (error != USB_ERR_NORMAL_COMPLETION) { + printf("ng_ubt: usbd_do_request error=%s\n", + usbd_errstr(error)); + return (error); + } + + if (evt == NULL) + return (USB_ERR_NORMAL_COMPLETION); + + /* Initialize INTR endpoint xfer and wait for response */ + mtx_init(&mtx, "ubt pb", NULL, MTX_DEF); + + error = usbd_transfer_setup(udev, &iface_index, xfer, + &ubt_probe_config, 1, evt, &mtx); + if (error == USB_ERR_NORMAL_COMPLETION) { + + mtx_lock(&mtx); + usbd_transfer_start(*xfer); + + if (msleep_sbt(evt, &mtx, 0, "ubt pb", SBT_1MS * timeout, + 0, C_HARDCLOCK) == EWOULDBLOCK) { + printf("ng_ubt: HCI command 0x%04x timed out\n", + le16toh(cmd->opcode)); + error = USB_ERR_TIMEOUT; + } + + usbd_transfer_stop(*xfer); + mtx_unlock(&mtx); + + usbd_transfer_unsetup(xfer, 1); + } else + printf("ng_ubt: usbd_transfer_setup error=%s\n", + usbd_errstr(error)); + + mtx_destroy(&mtx); + + return (error); +} + +/* * Probe for a USB Bluetooth device. * USB context. */ @@ -717,6 +798,49 @@ ubt_detach(device_t dev) return (0); } /* ubt_detach */ +/* + * Called when incoming interrupt transfer (HCI event) has completed, i.e. + * HCI event was received from the device during device probe stage. + * USB context. + */ + +static void +ubt_probe_intr_callback(struct usb_xfer *xfer, usb_error_t error) +{ + struct ubt_hci_event *evt = usbd_xfer_softc(xfer); + struct usb_page_cache *pc; + int actlen; + + usbd_xfer_status(xfer, &actlen, NULL, NULL, NULL); + + switch (USB_GET_STATE(xfer)) { + case USB_ST_TRANSFERRED: + if (actlen > UBT_HCI_EVENT_SIZE(evt)) + actlen = UBT_HCI_EVENT_SIZE(evt); + pc = usbd_xfer_get_frame(xfer, 0); + usbd_copy_out(pc, 0, evt, actlen); + /* OneShot mode */ + wakeup(evt); + break; + + case USB_ST_SETUP: +submit_next: + /* Try clear stall first */ + usbd_xfer_set_stall(xfer); + usbd_xfer_set_frame_len(xfer, 0, usbd_xfer_max_len(xfer)); + usbd_transfer_submit(xfer); + break; + + default: + if (error != USB_ERR_CANCELLED) { + printf("ng_ubt: interrupt transfer failed: %s\n", + usbd_errstr(error)); + goto submit_next; + } + break; + } +} /* ubt_probe_intr_callback */ + /* * Called when outgoing control request (HCI command) has completed, i.e. * HCI command was sent to the device. @@ -1852,7 +1976,7 @@ ubt_modevent(module_t mod, int event, void *data) return (error); } /* ubt_modevent */ -static devclass_t ubt_devclass; +devclass_t ubt_devclass; static device_method_t ubt_methods[] = { @@ -1862,7 +1986,7 @@ static device_method_t ubt_methods[] = DEVMETHOD_END }; -static driver_t ubt_driver = +driver_t ubt_driver = { .name = "ubt", .methods = ubt_methods, Added: head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c Sun Aug 18 22:11:42 2019 (r351196) @@ -0,0 +1,161 @@ +/* + * ng_ubt_intel.c + */ + +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 Vladimir Kondratyev + * + * 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$ + */ + +/* + * Attempt to initialize FreeBSD bluetooth stack while Intel Wireless 8260/8265 + * device is in bootloader mode locks the adapter hardly so it requires power + * on/off cycle to restore. This driver blocks ng_ubt attachment until + * operational firmware is loaded by iwmbtfw utility thus avoiding the lock up. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "usbdevs.h" +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +static device_probe_t ubt_intel_probe; + +/* + * List of supported bluetooth devices. If you add a new device PID here ensure + * that it is blacklisted in ng_ubt.c and is supported by iwmbtfw utility. + */ + +static const STRUCT_USB_HOST_ID ubt_intel_devs[] = +{ + /* Intel Wireless 8260/8265 and successors */ + { USB_VPI(USB_VENDOR_INTEL2, 0x0a2b, 0) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0aaa, 0) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0025, 0) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0026, 0) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0029, 0) }, +}; + +/* + * Find if the Intel Wireless 8260/8265 device is in bootloader mode or is + * running operational firmware with checking of 4-th byte "Intel version" + * HCI command response. The value 0x23 identifies the operational firmware. + */ + +static bool +ubt_intel_check_firmware_state(struct usb_device *udev) +{ +#define UBT_INTEL_VER_LEN 13 +#define UBT_INTEL_HCICMD_TIMEOUT 2000 /* ms */ + struct ubt_hci_event_command_compl *evt; + uint8_t buf[offsetof(struct ubt_hci_event, data) + UBT_INTEL_VER_LEN]; + static struct ubt_hci_cmd cmd = { + .opcode = htole16(NG_HCI_OPCODE(NG_HCI_OGF_VENDOR, 0x05)), + .length = 0, + }; + usb_error_t error; + + bzero(buf, sizeof(buf)); + evt = (struct ubt_hci_event_command_compl *)buf; + evt->header.length = UBT_INTEL_VER_LEN; + + error = ubt_do_hci_request(udev, &cmd, evt, UBT_INTEL_HCICMD_TIMEOUT); + if (error != USB_ERR_NORMAL_COMPLETION) + return false; + + return (evt->header.event == NG_HCI_EVENT_COMMAND_COMPL && + evt->header.length == UBT_INTEL_VER_LEN && + evt->data[4] == 0x23); +} + +/* + * Probe for a Intel Wireless Bluetooth device. + */ + +static int +ubt_intel_probe(device_t dev) +{ + struct usb_attach_arg *uaa = device_get_ivars(dev); + int error; + + if (uaa->usb_mode != USB_MODE_HOST) + return (ENXIO); + + if (uaa->info.bIfaceIndex != 0) + return (ENXIO); + + error = usbd_lookup_id_by_uaa(ubt_intel_devs, sizeof(ubt_intel_devs), + uaa); + if (error != 0) + return (error); + + if (!ubt_intel_check_firmware_state(uaa->device)) + return (ENXIO); + + return (BUS_PROBE_DEFAULT); +} + +/* + * Module interface. Attach and detach methods, netgraph node type + * registration and PNP string are inherited from ng_ubt.c driver. + */ + +static device_method_t ubt_intel_methods[] = +{ + DEVMETHOD(device_probe, ubt_intel_probe), + DEVMETHOD_END +}; + +static kobj_class_t ubt_baseclasses[] = { &ubt_driver, NULL }; +static driver_t ubt_intel_driver = +{ + .name = "ubt", + .methods = ubt_intel_methods, + .size = sizeof(struct ubt_softc), + .baseclasses = ubt_baseclasses, +}; + +DRIVER_MODULE(ng_ubt_intel, uhub, ubt_intel_driver, ubt_devclass, 0, 0); +MODULE_VERSION(ng_ubt_intel, NG_BLUETOOTH_VERSION); +MODULE_DEPEND(ng_ubt_intel, netgraph, NG_ABI_VERSION, NG_ABI_VERSION, NG_ABI_VERSION); +MODULE_DEPEND(ng_ubt_intel, ng_hci, NG_BLUETOOTH_VERSION, NG_BLUETOOTH_VERSION, NG_BLUETOOTH_VERSION); +MODULE_DEPEND(ng_ubt_intel, usb, 1, 1, 1); Modified: head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h ============================================================================== --- head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h Sun Aug 18 20:36:11 2019 (r351195) +++ head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h Sun Aug 18 22:11:42 2019 (r351196) @@ -74,6 +74,35 @@ enum { UBT_N_TRANSFER, /* total number of transfers */ }; +/* USB control request (HCI command) structure */ +struct ubt_hci_cmd { + uint16_t opcode; + uint8_t length; + uint8_t data[]; +} __attribute__ ((packed)); +#define UBT_HCI_CMD_SIZE(cmd) \ + ((cmd)->length + offsetof(struct ubt_hci_cmd, data)) + +/* USB interrupt transfer HCI event header structure */ +struct ubt_hci_evhdr { + uint8_t event; + uint8_t length; +} __attribute__ ((packed)); +/* USB interrupt transfer (generic HCI event) structure */ +struct ubt_hci_event { + struct ubt_hci_evhdr header; + uint8_t data[]; +} __attribute__ ((packed)); +/* USB interrupt transfer (HCI command completion event) structure */ +struct ubt_hci_event_command_compl { + struct ubt_hci_evhdr header; + uint8_t numpkt; + uint16_t opcode; + uint8_t data[]; +} __attribute__ ((packed)); +#define UBT_HCI_EVENT_SIZE(evt) \ + ((evt)->header.length + offsetof(struct ubt_hci_event, data)) + /* USB device softc structure */ struct ubt_softc { device_t sc_dev; /* for debug printf */ @@ -128,6 +157,12 @@ struct ubt_softc { }; typedef struct ubt_softc ubt_softc_t; typedef struct ubt_softc * ubt_softc_p; + +usb_error_t ubt_do_hci_request(struct usb_device *, struct ubt_hci_cmd *, + void *, usb_timeout_t); + +extern devclass_t ubt_devclass; +extern driver_t ubt_driver; #endif /* ndef _NG_UBT_VAR_H_ */ From owner-svn-src-all@freebsd.org Sun Aug 18 22:20:31 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4BD15D2E05; Sun, 18 Aug 2019 22:20:31 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BWhv1nF3z42lB; Sun, 18 Aug 2019 22:20:31 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 04ED18CDB; Sun, 18 Aug 2019 22:20:31 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7IMKUix085886; Sun, 18 Aug 2019 22:20:31 GMT (envelope-from wulf@FreeBSD.org) Received: (from wulf@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7IMKSUV085874; Sun, 18 Aug 2019 22:20:28 GMT (envelope-from wulf@FreeBSD.org) Message-Id: <201908182220.x7IMKSUV085874@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wulf set sender to wulf@FreeBSD.org using -f From: Vladimir Kondratyev Date: Sun, 18 Aug 2019 22:20:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351197 - in head: targets/pseudo/userland tools/build/mk usr.sbin/bluetooth usr.sbin/bluetooth/iwmbtfw X-SVN-Group: head X-SVN-Commit-Author: wulf X-SVN-Commit-Paths: in head: targets/pseudo/userland tools/build/mk usr.sbin/bluetooth usr.sbin/bluetooth/iwmbtfw X-SVN-Commit-Revision: 351197 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 22:20:31 -0000 Author: wulf Date: Sun Aug 18 22:20:28 2019 New Revision: 351197 URL: https://svnweb.freebsd.org/changeset/base/351197 Log: iwmbtfw: Firmware loader for Intel Wireless 8260 based Bluetooth USB devices Currently supported models are: 8260, 8265, 9560, 9260 and 22161. Firmware files can be installed with comms/iwmbt-firmware port. PR: 237083 Reviewed by: hps, emax X-MFC with: r351196 Differential Revision: https://reviews.freebsd.org/D21071 Added: head/usr.sbin/bluetooth/iwmbtfw/ head/usr.sbin/bluetooth/iwmbtfw/Makefile (contents, props changed) head/usr.sbin/bluetooth/iwmbtfw/iwmbt_dbg.h (contents, props changed) head/usr.sbin/bluetooth/iwmbtfw/iwmbt_fw.c (contents, props changed) head/usr.sbin/bluetooth/iwmbtfw/iwmbt_fw.h (contents, props changed) head/usr.sbin/bluetooth/iwmbtfw/iwmbt_hw.c (contents, props changed) head/usr.sbin/bluetooth/iwmbtfw/iwmbt_hw.h (contents, props changed) head/usr.sbin/bluetooth/iwmbtfw/iwmbtfw.8 (contents, props changed) head/usr.sbin/bluetooth/iwmbtfw/iwmbtfw.conf (contents, props changed) head/usr.sbin/bluetooth/iwmbtfw/main.c (contents, props changed) Modified: head/targets/pseudo/userland/Makefile.depend head/tools/build/mk/OptionalObsoleteFiles.inc head/usr.sbin/bluetooth/Makefile Modified: head/targets/pseudo/userland/Makefile.depend ============================================================================== --- head/targets/pseudo/userland/Makefile.depend Sun Aug 18 22:11:42 2019 (r351196) +++ head/targets/pseudo/userland/Makefile.depend Sun Aug 18 22:20:28 2019 (r351197) @@ -443,6 +443,7 @@ DIRDEPS+= \ usr.sbin/bluetooth/hccontrol \ usr.sbin/bluetooth/hcsecd \ usr.sbin/bluetooth/hcseriald \ + usr.sbin/bluetooth/iwmbtfw \ usr.sbin/bluetooth/l2control \ usr.sbin/bluetooth/l2ping \ usr.sbin/bluetooth/rfcomm_pppd \ Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Sun Aug 18 22:11:42 2019 (r351196) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Sun Aug 18 22:20:28 2019 (r351197) @@ -471,6 +471,7 @@ OLD_FILES+=etc/bluetooth/hcsecd.conf OLD_FILES+=etc/bluetooth/hosts OLD_FILES+=etc/bluetooth/protocols OLD_FILES+=etc/defaults/bluetooth.device.conf +OLD_FILES+=etc/devd/iwmbtfw.conf OLD_DIRS+=etc/bluetooth OLD_FILES+=etc/rc.d/bluetooth OLD_FILES+=etc/rc.d/bthidd @@ -524,6 +525,7 @@ OLD_FILES+=usr/sbin/btpand OLD_FILES+=usr/sbin/hccontrol OLD_FILES+=usr/sbin/hcsecd OLD_FILES+=usr/sbin/hcseriald +OLD_FILES+=usr/sbin/iwmbtfw OLD_FILES+=usr/sbin/l2control OLD_FILES+=usr/sbin/l2ping OLD_FILES+=usr/sbin/rfcomm_pppd @@ -601,6 +603,7 @@ OLD_FILES+=usr/share/man/man8/btpand.8.gz OLD_FILES+=usr/share/man/man8/hccontrol.8.gz OLD_FILES+=usr/share/man/man8/hcsecd.8.gz OLD_FILES+=usr/share/man/man8/hcseriald.8.gz +OLD_FILES+=usr/share/man/man8/iwmbtfw.8.gz OLD_FILES+=usr/share/man/man8/l2control.8.gz OLD_FILES+=usr/share/man/man8/l2ping.8.gz OLD_FILES+=usr/share/man/man8/rfcomm_pppd.8.gz Modified: head/usr.sbin/bluetooth/Makefile ============================================================================== --- head/usr.sbin/bluetooth/Makefile Sun Aug 18 22:11:42 2019 (r351196) +++ head/usr.sbin/bluetooth/Makefile Sun Aug 18 22:20:28 2019 (r351197) @@ -21,6 +21,7 @@ SUBDIR+= ath3kfw SUBDIR+= bcmfw SUBDIR+= bthidcontrol SUBDIR+= bthidd +SUBDIR+= iwmbtfw .endif .include Added: head/usr.sbin/bluetooth/iwmbtfw/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/bluetooth/iwmbtfw/Makefile Sun Aug 18 22:20:28 2019 (r351197) @@ -0,0 +1,11 @@ +# $FreeBSD$ + +PACKAGE= bluetooth +CONFS= iwmbtfw.conf +CONFSDIR= /etc/devd +PROG= iwmbtfw +MAN= iwmbtfw.8 +LIBADD+= usb +SRCS= main.c iwmbt_fw.c iwmbt_hw.c + +.include Added: head/usr.sbin/bluetooth/iwmbtfw/iwmbt_dbg.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/bluetooth/iwmbtfw/iwmbt_dbg.h Sun Aug 18 22:20:28 2019 (r351197) @@ -0,0 +1,47 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2013 Adrian Chadd + * Copyright (c) 2019 Vladimir Kondratyev + * + * 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 __IWMBT_DEBUG_H__ +#define __IWMBT_DEBUG_H__ + +extern int iwmbt_do_debug; +extern int iwmbt_do_info; + +#define iwmbt_err(fmt, ...) \ + fprintf(stderr, "iwmbtfw: %s: "fmt"\n", __func__, ##__VA_ARGS__) +#define iwmbt_info(fmt, ...) do { \ + if (iwmbt_do_info) \ + fprintf(stderr, "%s: "fmt"\n", __func__, ##__VA_ARGS__);\ +} while (0) +#define iwmbt_debug(fmt, ...) do { \ + if (iwmbt_do_debug) \ + fprintf(stderr, "%s: "fmt"\n", __func__, ##__VA_ARGS__);\ +} while (0) + +#endif Added: head/usr.sbin/bluetooth/iwmbtfw/iwmbt_fw.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/bluetooth/iwmbtfw/iwmbt_fw.c Sun Aug 18 22:20:28 2019 (r351197) @@ -0,0 +1,148 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2013 Adrian Chadd + * Copyright (c) 2019 Vladimir Kondratyev + * + * 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$ + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "iwmbt_fw.h" +#include "iwmbt_dbg.h" + +int +iwmbt_fw_read(struct iwmbt_firmware *fw, const char *fwname) +{ + int fd; + struct stat sb; + unsigned char *buf; + ssize_t r; + int i; + + fd = open(fwname, O_RDONLY); + if (fd < 0) { + warn("%s: open: %s", __func__, fwname); + return (0); + } + + if (fstat(fd, &sb) != 0) { + warn("%s: stat: %s", __func__, fwname); + close(fd); + return (0); + } + + buf = calloc(1, sb.st_size); + if (buf == NULL) { + warn("%s: calloc", __func__); + close(fd); + return (0); + } + + i = 0; + /* XXX handle partial reads */ + r = read(fd, buf, sb.st_size); + if (r < 0) { + warn("%s: read", __func__); + free(buf); + close(fd); + return (0); + } + + if (r != sb.st_size) { + iwmbt_err("read len %d != file size %d", + (int) r, + (int) sb.st_size); + free(buf); + close(fd); + return (0); + } + + /* We have everything, so! */ + + memset(fw, 0, sizeof(*fw)); + + fw->fwname = strdup(fwname); + fw->len = sb.st_size; + fw->buf = buf; + + close(fd); + return (1); +} + +void +iwmbt_fw_free(struct iwmbt_firmware *fw) +{ + if (fw->fwname) + free(fw->fwname); + if (fw->buf) + free(fw->buf); + memset(fw, 0, sizeof(*fw)); +} + +char * +iwmbt_get_fwname(struct iwmbt_version *ver, struct iwmbt_boot_params *params, + const char *prefix, const char *suffix) +{ + char *fwname; + + switch (ver->hw_variant) { + case 0x0b: /* 8260 */ + case 0x0c: /* 8265 */ + asprintf(&fwname, "%s/ibt-%u-%u.%s", + prefix, + le16toh(ver->hw_variant), + le16toh(params->dev_revid), + suffix); + break; + + case 0x11: /* 9560 */ + case 0x12: /* 9260 */ + case 0x13: + case 0x14: /* 22161 */ + asprintf(&fwname, "%s/ibt-%u-%u-%u.%s", + prefix, + le16toh(ver->hw_variant), + le16toh(ver->hw_revision), + le16toh(ver->fw_revision), + suffix); + break; + + default: + fwname = NULL; + } + + return (fwname); +} Added: head/usr.sbin/bluetooth/iwmbtfw/iwmbt_fw.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/bluetooth/iwmbtfw/iwmbt_fw.h Sun Aug 18 22:20:28 2019 (r351197) @@ -0,0 +1,79 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2013 Adrian Chadd + * Copyright (c) 2019 Vladimir Kondratyev + * + * 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 __IWMBT_FW_H__ +#define __IWMBT_FW_H__ + +struct iwmbt_version { + uint8_t status; + uint8_t hw_platform; + uint8_t hw_variant; + uint8_t hw_revision; + uint8_t fw_variant; + uint8_t fw_revision; + uint8_t fw_build_num; + uint8_t fw_build_ww; + uint8_t fw_build_yy; + uint8_t fw_patch_num; +} __attribute__ ((packed)); + +struct iwmbt_boot_params { + uint8_t status; + uint8_t otp_format; + uint8_t otp_content; + uint8_t otp_patch; + uint16_t dev_revid; + uint8_t secure_boot; + uint8_t key_from_hdr; + uint8_t key_type; + uint8_t otp_lock; + uint8_t api_lock; + uint8_t debug_lock; + uint8_t otp_bdaddr[6]; + uint8_t min_fw_build_nn; + uint8_t min_fw_build_cw; + uint8_t min_fw_build_yy; + uint8_t limited_cce; + uint8_t unlocked_state; +} __attribute__ ((packed)); + +struct iwmbt_firmware { + char *fwname; + int len; + unsigned char *buf; +}; + +extern int iwmbt_fw_read(struct iwmbt_firmware *fw, const char *fwname); +extern void iwmbt_fw_free(struct iwmbt_firmware *fw); +extern char *iwmbt_get_fwname(struct iwmbt_version *ver, + struct iwmbt_boot_params *params, const char *prefix, + const char *suffix); + +#endif Added: head/usr.sbin/bluetooth/iwmbtfw/iwmbt_hw.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/bluetooth/iwmbtfw/iwmbt_hw.c Sun Aug 18 22:20:28 2019 (r351197) @@ -0,0 +1,392 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 Vladimir Kondratyev + * + * 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$ + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "iwmbt_fw.h" +#include "iwmbt_hw.h" +#include "iwmbt_dbg.h" + +#define XMIN(x, y) ((x) < (y) ? (x) : (y)) + +static int +iwmbt_send_fragment(struct libusb_device_handle *hdl, + uint8_t fragment_type, const void *data, uint8_t len, int timeout) +{ + int ret, transferred; + uint8_t buf[IWMBT_HCI_MAX_CMD_SIZE]; + struct iwmbt_hci_cmd *cmd = (struct iwmbt_hci_cmd *) buf; + + memset(buf, 0, sizeof(buf)); + cmd->opcode = htole16(0xfc09), + cmd->length = len + 1, + cmd->data[0] = fragment_type; + memcpy(cmd->data + 1, data, len); + + ret = libusb_bulk_transfer(hdl, + IWMBT_BULK_OUT_ENDPOINT_ADDR, + (uint8_t *)cmd, + IWMBT_HCI_CMD_SIZE(cmd), + &transferred, + timeout); + + if (ret < 0 || transferred != IWMBT_HCI_CMD_SIZE(cmd)) { + iwmbt_err("libusb_bulk_transfer() failed: err=%s, size=%zu", + libusb_strerror(ret), + IWMBT_HCI_CMD_SIZE(cmd)); + return (-1); + } + + ret = libusb_bulk_transfer(hdl, + IWMBT_BULK_IN_ENDPOINT_ADDR, + buf, + sizeof(buf), + &transferred, + timeout); + + if (ret < 0) { + iwmbt_err("libusb_bulk_transfer() failed: err=%s", + libusb_strerror(ret)); + return (-1); + } + + return (0); +} + +static int +iwmbt_hci_command(struct libusb_device_handle *hdl, struct iwmbt_hci_cmd *cmd, + void *event, int size, int *transferred, int timeout) +{ + int ret; + + ret = libusb_control_transfer(hdl, + LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_RECIPIENT_DEVICE, + 0, + 0, + 0, + (uint8_t *)cmd, + IWMBT_HCI_CMD_SIZE(cmd), + timeout); + + if (ret < 0) { + iwmbt_err("libusb_control_transfer() failed: err=%s", + libusb_strerror(ret)); + return (ret); + } + + ret = libusb_interrupt_transfer(hdl, + IWMBT_INTERRUPT_ENDPOINT_ADDR, + event, + size, + transferred, + timeout); + + if (ret < 0) + iwmbt_err("libusb_interrupt_transfer() failed: err=%s", + libusb_strerror(ret)); + + return (ret); +} + +int +iwmbt_load_fwfile(struct libusb_device_handle *hdl, + const struct iwmbt_firmware *fw, uint32_t *boot_param) +{ + int ready = 0, sent = 0; + int ret, transferred; + struct iwmbt_hci_cmd *cmd; + struct iwmbt_hci_event *event; + uint8_t buf[IWMBT_HCI_MAX_EVENT_SIZE]; + +#define IWMBT_SEND_FRAGMENT(fragment_type, size, msg) do { \ + iwmbt_debug("transferring %d bytes, offset %d", size, sent); \ + \ + ret = iwmbt_send_fragment(hdl, \ + fragment_type, \ + fw->buf + sent, \ + XMIN(size, fw->len - sent), \ + IWMBT_HCI_CMD_TIMEOUT); \ + \ + if (ret < 0) { \ + iwmbt_debug("Failed to send "msg": code=%d", ret); \ + return (-1); \ + } \ + sent += size; \ +} while (0) + + if (fw->len < 644) { + iwmbt_err("Invalid size of firmware file (%d)", fw->len); + return (-1); + } + + iwmbt_debug("file=%s, size=%d", fw->fwname, fw->len); + + IWMBT_SEND_FRAGMENT(0x00, 0x80, "CCS segment"); + IWMBT_SEND_FRAGMENT(0x03, 0x80, "public key / part 1"); + IWMBT_SEND_FRAGMENT(0x03, 0x80, "public key / part 2"); + + /* skip 4 bytes */ + sent += 4; + + IWMBT_SEND_FRAGMENT(0x02, 0x80, "signature / part 1"); + IWMBT_SEND_FRAGMENT(0x02, 0x80, "signature / part 2"); + + /* + * Send firmware chunks. Chunk len must be 4 byte aligned. + * multiple commands can be combined + */ + while (fw->len - sent - ready >= (int) sizeof(struct iwmbt_hci_cmd)) { + cmd = (struct iwmbt_hci_cmd *)(fw->buf + sent + ready); + /* Parse firmware for Intel Reset HCI command parameter */ + if (cmd->opcode == htole16(0xfc0e)) { + *boot_param = le32dec(cmd->data); + iwmbt_debug("boot_param=0x%08x", *boot_param); + } + ready += IWMBT_HCI_CMD_SIZE(cmd); + while (ready >= 0xFC) { + IWMBT_SEND_FRAGMENT(0x01, 0xFC, "firmware chunk"); + ready -= 0xFC; + } + if (ready > 0 && ready % 4 == 0) { + IWMBT_SEND_FRAGMENT(0x01, ready, "firmware chunk"); + ready = 0; + } + } + + /* Wait for firmware download completion event */ + ret = libusb_interrupt_transfer(hdl, + IWMBT_INTERRUPT_ENDPOINT_ADDR, + buf, + sizeof(buf), + &transferred, + IWMBT_LOADCMPL_TIMEOUT); + + if (ret < 0 || transferred < (int)sizeof(struct iwmbt_hci_event) + 1) { + iwmbt_err("libusb_interrupt_transfer() failed: " + "err=%s, size=%d", + libusb_strerror(ret), + transferred); + return (-1); + } + + /* Expect Vendor Specific Event 0x06 */ + event = (struct iwmbt_hci_event *)buf; + if (event->header.event != 0xFF || event->data[0] != 0x06) { + iwmbt_err("firmware download completion event missed"); + return (-1); + } + + return (0); +} + +int +iwmbt_get_version(struct libusb_device_handle *hdl, + struct iwmbt_version *version) +{ + int ret, transferred; + struct iwmbt_hci_event_cmd_compl*event; + struct iwmbt_hci_cmd cmd = { + .opcode = htole16(0xfc05), + .length = 0, + }; + uint8_t buf[IWMBT_HCI_EVT_COMPL_SIZE(struct iwmbt_version)]; + + memset(buf, 0, sizeof(buf)); + + ret = iwmbt_hci_command(hdl, + &cmd, + buf, + sizeof(buf), + &transferred, + IWMBT_HCI_CMD_TIMEOUT); + + if (ret < 0 || transferred != sizeof(buf)) { + iwmbt_debug("Can't get version: : code=%d, size=%d", + ret, + transferred); + return (-1); + } + + event = (struct iwmbt_hci_event_cmd_compl *)buf; + memcpy(version, event->data, sizeof(struct iwmbt_version)); + + return (0); +} + +int +iwmbt_get_boot_params(struct libusb_device_handle *hdl, + struct iwmbt_boot_params *params) +{ + int ret, transferred = 0; + struct iwmbt_hci_event_cmd_compl *event; + struct iwmbt_hci_cmd cmd = { + .opcode = htole16(0xfc0d), + .length = 0, + }; + uint8_t buf[IWMBT_HCI_EVT_COMPL_SIZE(struct iwmbt_boot_params)]; + + memset(buf, 0, sizeof(buf)); + + ret = iwmbt_hci_command(hdl, + &cmd, + buf, + sizeof(buf), + &transferred, + IWMBT_HCI_CMD_TIMEOUT); + + if (ret < 0 || transferred != sizeof(buf)) { + iwmbt_debug("Can't get boot params: code=%d, size=%d", + ret, + transferred); + return (-1); + } + + event = (struct iwmbt_hci_event_cmd_compl *)buf; + memcpy(params, event->data, sizeof(struct iwmbt_boot_params)); + + return (0); +} + +int +iwmbt_intel_reset(struct libusb_device_handle *hdl, uint32_t boot_param) +{ + int ret, transferred = 0; + struct iwmbt_hci_event *event; + static struct iwmbt_hci_cmd cmd = { + .opcode = htole16(0xfc01), + .length = 8, + .data = { 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 }, + }; + uint8_t buf[IWMBT_HCI_MAX_EVENT_SIZE]; + + le32enc(cmd.data + 4, boot_param); + memset(buf, 0, sizeof(buf)); + + ret = iwmbt_hci_command(hdl, + &cmd, + buf, + sizeof(buf), + &transferred, + IWMBT_HCI_CMD_TIMEOUT); + + if (ret < 0 || transferred < (int)sizeof(struct iwmbt_hci_event) + 1) { + iwmbt_debug("Intel Reset command failed: code=%d, size=%d", + ret, + transferred); + return (ret); + } + + /* expect Vendor Specific Event 0x02 */ + event = (struct iwmbt_hci_event *)buf; + if (event->header.event != 0xFF || event->data[0] != 0x02) { + iwmbt_err("Intel Reset completion event missed"); + return (-1); + } + + return (0); +} + +int +iwmbt_load_ddc(struct libusb_device_handle *hdl, + const struct iwmbt_firmware *ddc) +{ + int size, sent = 0; + int ret, transferred; + uint8_t buf[IWMBT_HCI_MAX_CMD_SIZE]; + struct iwmbt_hci_cmd *cmd = (struct iwmbt_hci_cmd *)buf; + + size = ddc->len; + + iwmbt_debug("file=%s, size=%d", ddc->fwname, size); + + while (size > 0) { + + memset(buf, 0, sizeof(buf)); + cmd->opcode = htole16(0xfc8b); + cmd->length = ddc->buf[sent] + 1; + memcpy(cmd->data, ddc->buf + sent, XMIN(ddc->buf[sent], size)); + + iwmbt_debug("transferring %d bytes, offset %d", + cmd->length, + sent); + + size -= cmd->length; + sent += cmd->length; + + ret = iwmbt_hci_command(hdl, + cmd, + buf, + sizeof(buf), + &transferred, + IWMBT_HCI_CMD_TIMEOUT); + + if (ret < 0) { + iwmbt_debug("Intel Write DDC failed: code=%d", ret); + return (-1); + } + } + + return (0); +} + +int +iwmbt_set_event_mask(struct libusb_device_handle *hdl) +{ + int ret, transferred = 0; + static struct iwmbt_hci_cmd cmd = { + .opcode = htole16(0xfc52), + .length = 8, + .data = { 0x87, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + }; + uint8_t buf[IWMBT_HCI_MAX_EVENT_SIZE]; + + ret = iwmbt_hci_command(hdl, + &cmd, + buf, + sizeof(buf), + &transferred, + IWMBT_HCI_CMD_TIMEOUT); + + if (ret < 0) + iwmbt_debug("Intel Set Event Mask failed: code=%d", ret); + + return (ret); +} Added: head/usr.sbin/bluetooth/iwmbtfw/iwmbt_hw.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/bluetooth/iwmbtfw/iwmbt_hw.h Sun Aug 18 22:20:28 2019 (r351197) @@ -0,0 +1,88 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 Vladimir Kondratyev + * + * 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 __IWMBT_HW_H__ +#define __IWMBT_HW_H__ + +/* USB control request (HCI command) structure */ +struct iwmbt_hci_cmd { + uint16_t opcode; + uint8_t length; + uint8_t data[]; +} __attribute__ ((packed)); + +#define IWMBT_HCI_CMD_SIZE(cmd) \ + ((cmd)->length + offsetof(struct iwmbt_hci_cmd, data)) + +/* USB interrupt transfer HCI event header structure */ +struct iwmbt_hci_evhdr { + uint8_t event; + uint8_t length; +} __attribute__ ((packed)); + +/* USB interrupt transfer (generic HCI event) structure */ +struct iwmbt_hci_event { + struct iwmbt_hci_evhdr header; + uint8_t data[]; +} __attribute__ ((packed)); + +/* USB interrupt transfer (HCI command completion event) structure */ +struct iwmbt_hci_event_cmd_compl { + struct iwmbt_hci_evhdr header; + uint8_t numpkt; + uint16_t opcode; + uint8_t data[]; +} __attribute__ ((packed)); + +#define IWMBT_HCI_EVT_COMPL_SIZE(payload) \ + (offsetof(struct iwmbt_hci_event_cmd_compl, data) + sizeof(payload)) + +#define IWMBT_CONTROL_ENDPOINT_ADDR 0x00 +#define IWMBT_INTERRUPT_ENDPOINT_ADDR 0x81 +#define IWMBT_BULK_IN_ENDPOINT_ADDR 0x82 +#define IWMBT_BULK_OUT_ENDPOINT_ADDR 0x02 + +#define IWMBT_HCI_MAX_CMD_SIZE 256 +#define IWMBT_HCI_MAX_EVENT_SIZE 16 + +#define IWMBT_HCI_CMD_TIMEOUT 2000 /* ms */ +#define IWMBT_LOADCMPL_TIMEOUT 5000 /* ms */ + +extern int iwmbt_load_fwfile(struct libusb_device_handle *hdl, + const struct iwmbt_firmware *fw, uint32_t *boot_param); +extern int iwmbt_get_version(struct libusb_device_handle *hdl, + struct iwmbt_version *version); +extern int iwmbt_get_boot_params(struct libusb_device_handle *hdl, + struct iwmbt_boot_params *params); +extern int iwmbt_intel_reset(struct libusb_device_handle *hdl, + uint32_t boot_param); +extern int iwmbt_load_ddc(struct libusb_device_handle *hdl, + const struct iwmbt_firmware *ddc); +extern int iwmbt_set_event_mask(struct libusb_device_handle *hdl); + +#endif Added: head/usr.sbin/bluetooth/iwmbtfw/iwmbtfw.8 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/bluetooth/iwmbtfw/iwmbtfw.8 Sun Aug 18 22:20:28 2019 (r351197) @@ -0,0 +1,96 @@ +.\" Copyright (c) 2013, 2016 Adrian Chadd +.\" Copyright (c) 2019 Vladimir Kondratyev +.\" +.\" 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$ +.\" +.Dd June 4, 2019 +.Dt IWMBTFW 8 +.Os +.Sh NAME +.Nm iwmbtfw +.Nd firmware download utility for Intel Wireless 8260/8265 chip based Bluetooth +USB devices +.Sh SYNOPSIS +.Nm +.Fl d Ar device_name +.Fl f Ar firmware_path +.Nm +.Fl h +.Sh DESCRIPTION +The +.Nm +utility downloads the specified firmware file to the specified +.Xr ugen 4 +device. +.Pp +This utility will +.Em only +work with Intel Wireless 8260/8265 chip based Bluetooth USB devices and some of +their successors. +The identification is currently based on USB vendor ID/product ID pair. +The vendor ID should be 0x8087 +.Pq Dv USB_VENDOR_INTEL2 +and the product ID should be one of the supported devices. +.Pp +Firmware files are available in the +.Pa comms/iwmbt-firmware +port. +.Pp +The +.Nm +utility will query the device to determine which firmware image and board +configuration to load in at runtime. +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl D +Enable verbose debugging. +.It Fl d Ar device_name +Specify +.Xr ugen 4 +device name. +.It Fl I +Enable informational debugging. +.It Fl f Ar firmware_path +Specify the directory containing the firmware files to search and upload. +.It Fl h +Display usage message and exit. +.El +.Sh EXIT STATUS +.Ex -std +.Sh SEE ALSO +.Xr libusb 3 , +.Xr ugen 4 , +.Xr devd 8 +.Sh AUTHORS +.Nm +is based on +.Xr ath3kfw 8 +utility used as firmware downloader template and on Linux btintel driver +source code. +It is written by +.An Vladimir Kondratyev Aq Mt wulf@FreeBSD.org . +.Sh BUGS +Most likely. +Please report if found. Added: head/usr.sbin/bluetooth/iwmbtfw/iwmbtfw.conf ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/bluetooth/iwmbtfw/iwmbtfw.conf Sun Aug 18 22:20:28 2019 (r351197) @@ -0,0 +1,12 @@ +# $FreeBSD$ +# +# Download Intel Wireless 8260/8265 bluetooth adaptor firmware + +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x8087"; + match "product" "(0x0a2b|0x0aaa|0x0025|0x0026|0x0029)"; + action "/usr/sbin/iwmbtfw -d $cdev -f /usr/local/share/iwmbt-firmware"; +}; Added: head/usr.sbin/bluetooth/iwmbtfw/main.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/bluetooth/iwmbtfw/main.c Sun Aug 18 22:20:28 2019 (r351197) @@ -0,0 +1,456 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2013 Adrian Chadd + * Copyright (c) 2019 Vladimir Kondratyev + * + * 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$ + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "iwmbt_fw.h" +#include "iwmbt_hw.h" +#include "iwmbt_dbg.h" + +#define _DEFAULT_IWMBT_FIRMWARE_PATH "/usr/share/firmware/intel" + +int iwmbt_do_debug = 0; +int iwmbt_do_info = 0; + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Aug 18 23:07:58 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 487ECD3A56; Sun, 18 Aug 2019 23:07:58 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BXlf19Vrz44Zl; Sun, 18 Aug 2019 23:07:58 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 09F0895D7; Sun, 18 Aug 2019 23:07:58 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7IN7vTh015722; Sun, 18 Aug 2019 23:07:57 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7IN7uYi015717; Sun, 18 Aug 2019 23:07:56 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201908182307.x7IN7uYi015717@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Sun, 18 Aug 2019 23:07:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351198 - in head/sys: amd64/amd64 amd64/include vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in head/sys: amd64/amd64 amd64/include vm X-SVN-Commit-Revision: 351198 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 23:07:58 -0000 Author: jeff Date: Sun Aug 18 23:07:56 2019 New Revision: 351198 URL: https://svnweb.freebsd.org/changeset/base/351198 Log: Allocate amd64's page array using pages and page directory pages from the NUMA domain that the pages describe. Patch original from gallatin. Reviewed by: kib Tested by: pho Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21252 Modified: head/sys/amd64/amd64/pmap.c head/sys/amd64/include/pmap.h head/sys/amd64/include/vmparam.h head/sys/vm/vm_page.c head/sys/vm/vm_reserv.c head/sys/vm/vm_reserv.h Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Sun Aug 18 22:20:28 2019 (r351197) +++ head/sys/amd64/amd64/pmap.c Sun Aug 18 23:07:56 2019 (r351198) @@ -383,6 +383,9 @@ static u_int64_t DMPDphys; /* phys addr of direct mapp static u_int64_t DMPDPphys; /* phys addr of direct mapped level 3 */ static int ndmpdpphys; /* number of DMPDPphys pages */ +static uint64_t PAPDPphys; /* phys addr of page array level 3 */ +static int npapdpphys; /* number of PAPDPphys pages */ + static vm_paddr_t KERNend; /* phys addr of end of bootstrap data */ /* @@ -1427,6 +1430,16 @@ create_pagetables(vm_paddr_t *firstaddr) pml4_entry_t *p4_p; uint64_t DMPDkernphys; + npapdpphys = howmany(ptoa(Maxmem) / sizeof(struct vm_page), NBPML4); + if (npapdpphys > NPAPML4E) { + printf("NDMPML4E limits system to %lu GB\n", + (NDMPML4E * 512) * (PAGE_SIZE / sizeof(struct vm_page))); + npapdpphys = NPAPML4E; + Maxmem = atop(NPAPML4E * NBPML4 * + (PAGE_SIZE / sizeof(struct vm_page))); + } + PAPDPphys = allocpages(firstaddr, npapdpphys); + /* Allocate page table pages for the direct map */ ndmpdp = howmany(ptoa(Maxmem), NBPDP); if (ndmpdp < 4) /* Minimum 4GB of dirmap */ @@ -1573,6 +1586,12 @@ create_pagetables(vm_paddr_t *firstaddr) p4_p[KPML4BASE + i] = KPDPphys + ptoa(i); p4_p[KPML4BASE + i] |= X86_PG_RW | X86_PG_V; } + + /* Connect the page array slots up to the pml4. */ + for (i = 0; i < npapdpphys; i++) { + p4_p[PAPML4I + i] = PAPDPphys + ptoa(i); + p4_p[PAPML4I + i] |= X86_PG_RW | X86_PG_V | pg_nx; + } } /* @@ -3387,6 +3406,11 @@ pmap_pinit_pml4(vm_page_t pml4pg) X86_PG_V; } + for (i = 0; i < npapdpphys; i++) { + pm_pml4[PAPML4I + i] = (PAPDPphys + ptoa(i)) | X86_PG_RW | + X86_PG_V; + } + /* install self-referential address mapping entry(s) */ pm_pml4[PML4PML4I] = VM_PAGE_TO_PHYS(pml4pg) | X86_PG_V | X86_PG_RW | X86_PG_A | X86_PG_M; @@ -3743,6 +3767,8 @@ pmap_release(pmap_t pmap) pmap->pm_pml4[KPML4BASE + i] = 0; for (i = 0; i < ndmpdpphys; i++)/* Direct Map */ pmap->pm_pml4[DMPML4I + i] = 0; + for (i = 0; i < npapdpphys; i++) + pmap->pm_pml4[PAPML4I + i] = 0; pmap->pm_pml4[PML4PML4I] = 0; /* Recursive Mapping */ for (i = 0; i < lm_ents; i++) /* Large Map */ pmap->pm_pml4[LMSPML4I + i] = 0; @@ -3779,6 +3805,44 @@ kvm_free(SYSCTL_HANDLER_ARGS) } SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, 0, 0, kvm_free, "LU", "Amount of KVM free"); + +void +pmap_page_array_startup(long pages) +{ + pdp_entry_t *pdpe; + pd_entry_t *pde, newpdir; + vm_offset_t va, start, end; + vm_paddr_t pa; + long pfn; + int domain, i; + + vm_page_array_size = pages; + + start = va = PA_MIN_ADDRESS; + end = va + (pages * sizeof(struct vm_page)); + while (va < end) { + pfn = first_page + ((va - start) / sizeof(struct vm_page)); + domain = _vm_phys_domain(ctob(pfn)); + pdpe = pmap_pdpe(kernel_pmap, va); + if ((*pdpe & X86_PG_V) == 0) { + pa = vm_phys_early_alloc(domain, PAGE_SIZE); + bzero((void *)PHYS_TO_DMAP(pa), PAGE_SIZE); + *pdpe = (pdp_entry_t)(pa | X86_PG_V | X86_PG_RW | + X86_PG_A | X86_PG_M); + continue; /* try again */ + } + pde = pmap_pdpe_to_pde(pdpe, va); + if ((*pde & X86_PG_V) != 0) + panic("Unexpected pde"); + pa = vm_phys_early_alloc(domain, NBPDR); + for (i = 0; i < NPDEPG; i++) + dump_add_page(pa + (i * PAGE_SIZE)); + newpdir = (pd_entry_t)(pa | X86_PG_V | X86_PG_RW | X86_PG_A | + X86_PG_M | PG_PS | pg_g | pg_nx); + pde_store(pde, newpdir); + va += NBPDR; + } +} /* * grow the number of kernel page table entries, if needed Modified: head/sys/amd64/include/pmap.h ============================================================================== --- head/sys/amd64/include/pmap.h Sun Aug 18 22:20:28 2019 (r351197) +++ head/sys/amd64/include/pmap.h Sun Aug 18 23:07:56 2019 (r351198) @@ -201,6 +201,13 @@ #define NDMPML4E 8 /* + * NPAPML4E is the maximum number of PML4 entries that will be + * used to implement the page array. This should be roughly 3% of + * NPDPML4E owing to 3% overhead for struct vm_page. + */ +#define NPAPML4E 1 + +/* * These values control the layout of virtual memory. The starting address * of the direct map, which is controlled by DMPML4I, must be a multiple of * its size. (See the PHYS_TO_DMAP() and DMAP_TO_PHYS() macros.) @@ -219,7 +226,8 @@ #define PML4PML4I (NPML4EPG/2) /* Index of recursive pml4 mapping */ #define KPML4BASE (NPML4EPG-NKPML4E) /* KVM at highest addresses */ -#define DMPML4I rounddown(KPML4BASE-NDMPML4E, NDMPML4E) /* Below KVM */ +#define PAPML4I (KPML4BASE-1-NPAPML4E) /* Below KVM */ +#define DMPML4I rounddown(PAPML4I-NDMPML4E, NDMPML4E) /* Below pages */ #define KPML4I (NPML4EPG-1) #define KPDPI (NPDPEPG-2) /* kernbase at -2GB */ @@ -467,6 +475,7 @@ int pmap_pkru_set(pmap_t pmap, vm_offset_t sva, vm_off u_int keyidx, int flags); void pmap_thread_init_invl_gen(struct thread *td); int pmap_vmspace_copy(pmap_t dst_pmap, pmap_t src_pmap); +void pmap_page_array_startup(long count); #endif /* _KERNEL */ /* Return various clipped indexes for a given VA */ Modified: head/sys/amd64/include/vmparam.h ============================================================================== --- head/sys/amd64/include/vmparam.h Sun Aug 18 22:20:28 2019 (r351197) +++ head/sys/amd64/include/vmparam.h Sun Aug 18 23:07:56 2019 (r351198) @@ -160,7 +160,9 @@ * 0xffff808000000000 - 0xffff847fffffffff large map (can be tuned up) * 0xffff848000000000 - 0xfffff7ffffffffff unused (large map extends there) * 0xfffff80000000000 - 0xfffffbffffffffff 4TB direct map - * 0xfffffc0000000000 - 0xfffffdffffffffff unused + * 0xfffffc0000000000 - 0xfffffcffffffffff unused + * 0xfffffd0000000000 - 0xfffffd7fffffffff page array 512GB + * 0xfffffd8000000000 - 0xfffffdffffffffff unused * 0xfffffe0000000000 - 0xffffffffffffffff 2TB kernel map * * Within the kernel map: @@ -175,6 +177,8 @@ #define DMAP_MIN_ADDRESS KVADDR(DMPML4I, 0, 0, 0) #define DMAP_MAX_ADDRESS KVADDR(DMPML4I + NDMPML4E, 0, 0, 0) +#define PA_MIN_ADDRESS KVADDR(PAPML4I, 0, 0, 0) + #define LARGEMAP_MIN_ADDRESS KVADDR(LMSPML4I, 0, 0, 0) #define LARGEMAP_MAX_ADDRESS KVADDR(LMEPML4I + 1, 0, 0, 0) @@ -210,6 +214,12 @@ ("virtual address %#jx not covered by the DMAP", \ (uintmax_t)x)); \ (x) & ~DMAP_MIN_ADDRESS; }) + +/* + * amd64 statically allocates the page array address so that it can + * be more easily allocated on the correct memory domains. + */ +#define PMAP_HAS_PAGE_ARRAY 1 /* * How many physical pages per kmem arena virtual page. Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Sun Aug 18 22:20:28 2019 (r351197) +++ head/sys/vm/vm_page.c Sun Aug 18 23:07:56 2019 (r351198) @@ -135,7 +135,11 @@ static int vm_pageproc_waiters; */ vm_page_t bogus_page; +#ifdef PMAP_HAS_PAGE_ARRAY +vm_page_t vm_page_array = (vm_page_t)PA_MIN_ADDRESS; +#else vm_page_t vm_page_array; +#endif long vm_page_array_size; long first_page; @@ -522,6 +526,31 @@ vm_page_init_page(vm_page_t m, vm_paddr_t pa, int segi pmap_page_init(m); } +#ifndef PMAP_HAS_PAGE_ARRAY +static vm_paddr_t +vm_page_array_alloc(vm_offset_t *vaddr, vm_paddr_t end, vm_paddr_t page_range) +{ + vm_paddr_t new_end; + + /* + * Reserve an unmapped guard page to trap access to vm_page_array[-1]. + * However, because this page is allocated from KVM, out-of-bounds + * accesses using the direct map will not be trapped. + */ + *vaddr += PAGE_SIZE; + + /* + * Allocate physical memory for the page structures, and map it. + */ + new_end = trunc_page(end - page_range * sizeof(struct vm_page)); + vm_page_array = (vm_page_t)pmap_map(vaddr, new_end, end, + VM_PROT_READ | VM_PROT_WRITE); + vm_page_array_size = page_range; + + return (new_end); +} +#endif + /* * vm_page_startup: * @@ -693,6 +722,11 @@ vm_page_startup(vm_offset_t vaddr) #error "Either VM_PHYSSEG_DENSE or VM_PHYSSEG_SPARSE must be defined." #endif +#ifdef PMAP_HAS_PAGE_ARRAY + pmap_page_array_startup(size / PAGE_SIZE); + biggestone = vm_phys_avail_largest(); + end = new_end = phys_avail[biggestone + 1]; +#else #ifdef VM_PHYSSEG_DENSE /* * In the VM_PHYSSEG_DENSE case, the number of pages can account for @@ -723,31 +757,15 @@ vm_page_startup(vm_offset_t vaddr) } } end = new_end; + new_end = vm_page_array_alloc(&vaddr, end, page_range); +#endif - /* - * Reserve an unmapped guard page to trap access to vm_page_array[-1]. - * However, because this page is allocated from KVM, out-of-bounds - * accesses using the direct map will not be trapped. - */ - vaddr += PAGE_SIZE; - - /* - * Allocate physical memory for the page structures, and map it. - */ - new_end = trunc_page(end - page_range * sizeof(struct vm_page)); - mapped = pmap_map(&vaddr, new_end, end, - VM_PROT_READ | VM_PROT_WRITE); - vm_page_array = (vm_page_t)mapped; - vm_page_array_size = page_range; - #if VM_NRESERVLEVEL > 0 /* * Allocate physical memory for the reservation management system's * data structures, and map it. */ - if (high_avail == end) - high_avail = new_end; - new_end = vm_reserv_startup(&vaddr, new_end, high_avail); + new_end = vm_reserv_startup(&vaddr, new_end); #endif #if defined(__aarch64__) || defined(__amd64__) || defined(__mips__) || \ defined(__riscv) Modified: head/sys/vm/vm_reserv.c ============================================================================== --- head/sys/vm/vm_reserv.c Sun Aug 18 22:20:28 2019 (r351197) +++ head/sys/vm/vm_reserv.c Sun Aug 18 23:07:56 2019 (r351198) @@ -1360,10 +1360,23 @@ vm_reserv_size(int level) * management system's data structures, in particular, the reservation array. */ vm_paddr_t -vm_reserv_startup(vm_offset_t *vaddr, vm_paddr_t end, vm_paddr_t high_water) +vm_reserv_startup(vm_offset_t *vaddr, vm_paddr_t end) { - vm_paddr_t new_end; + vm_paddr_t new_end, high_water; size_t size; + int i; + + high_water = phys_avail[1]; + for (i = 0; i < vm_phys_nsegs; i++) { + if (vm_phys_segs[i].end > high_water) + high_water = vm_phys_segs[i].end; + } + + /* Skip the first chunk. It is already accounted for. */ + for (i = 2; phys_avail[i + 1] != 0; i += 2) { + if (phys_avail[i + 1] > high_water) + high_water = phys_avail[i + 1]; + } /* * Calculate the size (in bytes) of the reservation array. Round up Modified: head/sys/vm/vm_reserv.h ============================================================================== --- head/sys/vm/vm_reserv.h Sun Aug 18 22:20:28 2019 (r351197) +++ head/sys/vm/vm_reserv.h Sun Aug 18 23:07:56 2019 (r351198) @@ -66,8 +66,7 @@ boolean_t vm_reserv_reclaim_inactive(int domain); void vm_reserv_rename(vm_page_t m, vm_object_t new_object, vm_object_t old_object, vm_pindex_t old_object_offset); int vm_reserv_size(int level); -vm_paddr_t vm_reserv_startup(vm_offset_t *vaddr, vm_paddr_t end, - vm_paddr_t high_water); +vm_paddr_t vm_reserv_startup(vm_offset_t *vaddr, vm_paddr_t end); vm_page_t vm_reserv_to_superpage(vm_page_t m); #endif /* VM_NRESERVLEVEL > 0 */ From owner-svn-src-all@freebsd.org Sun Aug 18 23:10:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DAA96D3AED; Sun, 18 Aug 2019 23:10:07 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BXp75NNXz44jw; Sun, 18 Aug 2019 23:10:07 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9A50295E5; Sun, 18 Aug 2019 23:10:07 +0000 (UTC) (envelope-from wulf@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7INA70T015907; Sun, 18 Aug 2019 23:10:07 GMT (envelope-from wulf@FreeBSD.org) Received: (from wulf@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7INA7rq015906; Sun, 18 Aug 2019 23:10:07 GMT (envelope-from wulf@FreeBSD.org) Message-Id: <201908182310.x7INA7rq015906@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wulf set sender to wulf@FreeBSD.org using -f From: Vladimir Kondratyev Date: Sun, 18 Aug 2019 23:10:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351199 - head/usr.sbin/bluetooth/iwmbtfw X-SVN-Group: head X-SVN-Commit-Author: wulf X-SVN-Commit-Paths: head/usr.sbin/bluetooth/iwmbtfw X-SVN-Commit-Revision: 351199 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 23:10:07 -0000 Author: wulf Date: Sun Aug 18 23:10:07 2019 New Revision: 351199 URL: https://svnweb.freebsd.org/changeset/base/351199 Log: iwmbtfw(8): Fix compilation on platforms using gcc. X-MFC with: r351197 Modified: head/usr.sbin/bluetooth/iwmbtfw/iwmbt_hw.c Modified: head/usr.sbin/bluetooth/iwmbtfw/iwmbt_hw.c ============================================================================== --- head/usr.sbin/bluetooth/iwmbtfw/iwmbt_hw.c Sun Aug 18 23:07:56 2019 (r351198) +++ head/usr.sbin/bluetooth/iwmbtfw/iwmbt_hw.c Sun Aug 18 23:10:07 2019 (r351199) @@ -68,7 +68,7 @@ iwmbt_send_fragment(struct libusb_device_handle *hdl, &transferred, timeout); - if (ret < 0 || transferred != IWMBT_HCI_CMD_SIZE(cmd)) { + if (ret < 0 || transferred != (int)IWMBT_HCI_CMD_SIZE(cmd)) { iwmbt_err("libusb_bulk_transfer() failed: err=%s, size=%zu", libusb_strerror(ret), IWMBT_HCI_CMD_SIZE(cmd)); From owner-svn-src-all@freebsd.org Sun Aug 18 23:44:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C33A4D4354; Sun, 18 Aug 2019 23:44:24 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BYYh4lldz46Kx; Sun, 18 Aug 2019 23:44:24 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 84EC89D1B; Sun, 18 Aug 2019 23:44:24 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7INiOIX039116; Sun, 18 Aug 2019 23:44:24 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7INiN3M039113; Sun, 18 Aug 2019 23:44:23 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201908182344.x7INiN3M039113@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Sun, 18 Aug 2019 23:44:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351200 - in head/sys: amd64/amd64 dev/acpica X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in head/sys: amd64/amd64 dev/acpica X-SVN-Commit-Revision: 351200 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 18 Aug 2019 23:44:24 -0000 Author: jeff Date: Sun Aug 18 23:44:23 2019 New Revision: 351200 URL: https://svnweb.freebsd.org/changeset/base/351200 Log: Allocate all per-cpu datastructures in domain correct memory. Reviewed by: kib, gallatin (some objections) Tested by: pho Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21242 Modified: head/sys/amd64/amd64/mp_machdep.c head/sys/dev/acpica/acpi_pxm.c head/sys/dev/acpica/acpivar.h Modified: head/sys/amd64/amd64/mp_machdep.c ============================================================================== --- head/sys/amd64/amd64/mp_machdep.c Sun Aug 18 23:10:07 2019 (r351199) +++ head/sys/amd64/amd64/mp_machdep.c Sun Aug 18 23:44:23 2019 (r351200) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #ifdef GPROF #include #endif @@ -59,6 +60,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include @@ -75,6 +78,9 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include + #define WARMBOOT_TARGET 0 #define WARMBOOT_OFF (KERNBASE + 0x0467) #define WARMBOOT_SEG (KERNBASE + 0x0469) @@ -384,6 +390,25 @@ init_secondary(void) * local functions and data */ +#ifdef NUMA +static void +mp_realloc_pcpu(int cpuid, int domain) +{ + vm_page_t m; + vm_offset_t oa, na; + + oa = (vm_offset_t)&__pcpu[cpuid]; + if (_vm_phys_domain(pmap_kextract(oa)) == domain) + return; + m = vm_page_alloc_domain(NULL, 0, domain, + VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ | VM_ALLOC_ZERO); + na = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)); + pagecopy((void *)oa, (void *)na); + pmap_enter(kernel_pmap, oa, m, VM_PROT_READ | VM_PROT_WRITE, 0, 0); + /* XXX old pcpu page leaked. */ +} +#endif + /* * start each AP in our list */ @@ -392,7 +417,7 @@ native_start_all_aps(void) { u_int64_t *pt4, *pt3, *pt2; u_int32_t mpbioswarmvec; - int apic_id, cpu, i; + int apic_id, cpu, domain, i; u_char mpbiosreason; mtx_init(&ap_boot_mtx, "ap boot", NULL, MTX_SPIN); @@ -431,21 +456,41 @@ native_start_all_aps(void) outb(CMOS_REG, BIOS_RESET); outb(CMOS_DATA, BIOS_WARM); /* 'warm-start' */ + /* Relocate pcpu areas to the correct domain. */ +#ifdef NUMA + if (vm_ndomains > 1) + for (cpu = 1; cpu < mp_ncpus; cpu++) { + apic_id = cpu_apic_ids[cpu]; + domain = acpi_pxm_get_cpu_locality(apic_id); + mp_realloc_pcpu(cpu, domain); + } +#endif + /* start each AP */ + domain = 0; for (cpu = 1; cpu < mp_ncpus; cpu++) { apic_id = cpu_apic_ids[cpu]; - +#ifdef NUMA + if (vm_ndomains > 1) + domain = acpi_pxm_get_cpu_locality(apic_id); +#endif /* allocate and set up an idle stack data page */ - bootstacks[cpu] = (void *)kmem_malloc(kstack_pages * PAGE_SIZE, + bootstacks[cpu] = (void *)kmem_malloc_domainset( + DOMAINSET_FIXED(domain), kstack_pages * PAGE_SIZE, M_WAITOK | M_ZERO); - doublefault_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | - M_ZERO); - mce_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | M_ZERO); - nmi_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | M_ZERO); - dbg_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | M_ZERO); - dpcpu = (void *)kmem_malloc(DPCPU_SIZE, M_WAITOK | M_ZERO); + doublefault_stack = (char *)kmem_malloc_domainset( + DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); + mce_stack = (char *)kmem_malloc_domainset( + DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); + nmi_stack = (char *)kmem_malloc_domainset( + DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); + dbg_stack = (char *)kmem_malloc_domainset( + DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); + dpcpu = (void *)kmem_malloc_domainset(DOMAINSET_FIXED(domain), + DPCPU_SIZE, M_WAITOK | M_ZERO); - bootSTK = (char *)bootstacks[cpu] + kstack_pages * PAGE_SIZE - 8; + bootSTK = (char *)bootstacks[cpu] + + kstack_pages * PAGE_SIZE - 8; bootAP = cpu; /* attempt to start the Application Processor */ Modified: head/sys/dev/acpica/acpi_pxm.c ============================================================================== --- head/sys/dev/acpica/acpi_pxm.c Sun Aug 18 23:10:07 2019 (r351199) +++ head/sys/dev/acpica/acpi_pxm.c Sun Aug 18 23:44:23 2019 (r351200) @@ -653,6 +653,17 @@ acpi_pxm_set_cpu_locality(void) } } +int +acpi_pxm_get_cpu_locality(int apic_id) +{ + struct cpu_info *cpu; + + cpu = cpu_find(apic_id); + if (cpu == NULL) + panic("SRAT: CPU with ID %u is not known", apic_id); + return (cpu->domain); +} + /* * Free data structures allocated during acpi_pxm_init. */ Modified: head/sys/dev/acpica/acpivar.h ============================================================================== --- head/sys/dev/acpica/acpivar.h Sun Aug 18 23:10:07 2019 (r351199) +++ head/sys/dev/acpica/acpivar.h Sun Aug 18 23:44:23 2019 (r351200) @@ -532,6 +532,7 @@ int acpi_pxm_init(int ncpus, vm_paddr_t maxphys); void acpi_pxm_parse_tables(void); void acpi_pxm_set_mem_locality(void); void acpi_pxm_set_cpu_locality(void); +int acpi_pxm_get_cpu_locality(int apic_id); void acpi_pxm_free(void); /* From owner-svn-src-all@freebsd.org Mon Aug 19 00:29:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B7582D4E1A; Mon, 19 Aug 2019 00:29:05 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BZYF4PFbz480D; Mon, 19 Aug 2019 00:29:05 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 75EFBA4A2; Mon, 19 Aug 2019 00:29:05 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7J0T5Ya063617; Mon, 19 Aug 2019 00:29:05 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7J0T5R6063616; Mon, 19 Aug 2019 00:29:05 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201908190029.x7J0T5R6063616@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Mon, 19 Aug 2019 00:29:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351201 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 351201 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 00:29:05 -0000 Author: rmacklem Date: Mon Aug 19 00:29:05 2019 New Revision: 351201 URL: https://svnweb.freebsd.org/changeset/base/351201 Log: Add a vop_stdioctl() that performs a trivial FIOSEEKDATA/FIOSEEKHOLE. Without this patch, when an application performed lseek(SEEK_DATA/SEEK_HOLE) on a file in a file system that does not have its own VOP_IOCTL(), the lseek(2) fails with errno ENOTTY. This didn't seem appropriate, since ENOTTY is not listed as an error return by either the lseek(2) man page nor the POSIX draft for lseek(2). A discussion on freebsd-current@ seemed to indicate that implementing a trivial algorithm that returns the offset argument for FIOSEEKDATA and returns the file's size for FIOSEEKHOLE was the preferred fix. http://docs.FreeBSD.org/cgi/mid.cgi?CAOtMX2iiQdv1+15e1N_r7V6aCx_VqAJCTP1AW+qs3Yg7sPg9wA The Linux kernel appears to implement this trivial algorithm as well. This patch adds a vop_stdioctl() that implements this trivial algorithm. It returns errors consistent with vn_bmap_seekhole() and, as such, will still return ENOTTY for non-regular files. I have proposed a separate patch that maps errors not described by the lseek(2) man page nor POSIX draft to EINVAL. This patch is under separate review. Reviewed by: kib Relnotes: yes Differential Revision: https://reviews.freebsd.org/D21299 Modified: head/sys/kern/vfs_default.c Modified: head/sys/kern/vfs_default.c ============================================================================== --- head/sys/kern/vfs_default.c Sun Aug 18 23:44:23 2019 (r351200) +++ head/sys/kern/vfs_default.c Mon Aug 19 00:29:05 2019 (r351201) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -86,6 +87,7 @@ static int vop_stdadd_writecount(struct vop_add_writec static int vop_stdcopy_file_range(struct vop_copy_file_range_args *ap); static int vop_stdfdatasync(struct vop_fdatasync_args *ap); static int vop_stdgetpages_async(struct vop_getpages_async_args *ap); +static int vop_stdioctl(struct vop_ioctl_args *ap); /* * This vnode table stores what we want to do if the filesystem doesn't @@ -118,7 +120,7 @@ struct vop_vector default_vnodeops = { .vop_getpages_async = vop_stdgetpages_async, .vop_getwritemount = vop_stdgetwritemount, .vop_inactive = VOP_NULL, - .vop_ioctl = VOP_ENOTTY, + .vop_ioctl = vop_stdioctl, .vop_kqfilter = vop_stdkqfilter, .vop_islocked = vop_stdislocked, .vop_lock1 = vop_stdlock, @@ -1152,6 +1154,41 @@ vop_stdadd_writecount(struct vop_add_writecount_args * error = 0; } VI_UNLOCK(vp); + return (error); +} + +static int +vop_stdioctl(struct vop_ioctl_args *ap) +{ + struct vnode *vp; + struct vattr va; + off_t *offp; + int error; + + switch (ap->a_command) { + case FIOSEEKDATA: + case FIOSEEKHOLE: + vp = ap->a_vp; + error = vn_lock(vp, LK_SHARED); + if (error != 0) + return (EBADF); + if (vp->v_type == VREG) + error = VOP_GETATTR(vp, &va, ap->a_cred); + else + error = ENOTTY; + if (error == 0) { + offp = ap->a_data; + if (*offp < 0 || *offp >= va.va_size) + error = ENXIO; + else if (ap->a_command == FIOSEEKHOLE) + *offp = va.va_size; + } + VOP_UNLOCK(vp, 0); + break; + default: + error = ENOTTY; + break; + } return (error); } From owner-svn-src-all@freebsd.org Mon Aug 19 00:46:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9A911D5225; Mon, 19 Aug 2019 00:46:32 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BZxN3bNfz48gN; Mon, 19 Aug 2019 00:46:32 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5D167A834; Mon, 19 Aug 2019 00:46:32 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7J0kWT1075223; Mon, 19 Aug 2019 00:46:32 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7J0kW2w075222; Mon, 19 Aug 2019 00:46:32 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201908190046.x7J0kW2w075222@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Mon, 19 Aug 2019 00:46:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351202 - head X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 351202 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 00:46:32 -0000 Author: rmacklem Date: Mon Aug 19 00:46:31 2019 New Revision: 351202 URL: https://svnweb.freebsd.org/changeset/base/351202 Log: Add an entry to RELNOTES for r351201. Modified: head/RELNOTES Modified: head/RELNOTES ============================================================================== --- head/RELNOTES Mon Aug 19 00:29:05 2019 (r351201) +++ head/RELNOTES Mon Aug 19 00:46:31 2019 (r351202) @@ -10,6 +10,15 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +r351201: + Add a vop_stdioctl() call, so that file systems that do not support + holes will have a trivial implementation of lseek(SEEK_DATA/SEEK_HOLE). + The algorithm appears to be compatible with the POSIX draft and + the implementation in Linux for the case of a file system that + does not support holes. Prior to this patch, lseek(2) would reply + -1 with errno set to ENOTTY for SEEK_DATA/SEEK_HOLE on files in + file systems that do not support holes. + r350665: The fuse driver has been renamed to fusefs(5) and been substantially rewritten. The new driver includes many bug fixes and performance From owner-svn-src-all@freebsd.org Mon Aug 19 01:14:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0F617D576D; Mon, 19 Aug 2019 01:14:12 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BbYH6dykz49lK; Mon, 19 Aug 2019 01:14:11 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C5A3CADCD; Mon, 19 Aug 2019 01:14:11 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7J1EBGK092736; Mon, 19 Aug 2019 01:14:11 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7J1EBJL092735; Mon, 19 Aug 2019 01:14:11 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908190114.x7J1EBJL092735@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 19 Aug 2019 01:14:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351203 - head/usr.sbin/periodic X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/usr.sbin/periodic X-SVN-Commit-Revision: 351203 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 01:14:12 -0000 Author: asomers Date: Mon Aug 19 01:14:11 2019 New Revision: 351203 URL: https://svnweb.freebsd.org/changeset/base/351203 Log: periodic: replace "tty" with "test -t 0" Apparently using tty for this purpose has been deprecated since 4.4 Lite. Reviewed by: cy MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D21318 Modified: head/usr.sbin/periodic/periodic.sh Modified: head/usr.sbin/periodic/periodic.sh ============================================================================== --- head/usr.sbin/periodic/periodic.sh Mon Aug 19 00:46:31 2019 (r351202) +++ head/usr.sbin/periodic/periodic.sh Mon Aug 19 01:14:11 2019 (r351203) @@ -84,7 +84,7 @@ else # remove the file. remove_periodic_anticongestion_file=no fi -if tty > /dev/null 2>&1; then +if [ -t 0 ]; then export PERIODIC_IS_INTERACTIVE=1 fi tmp_output=`mktemp ${TMPDIR:-/tmp}/periodic.XXXXXXXXXX` From owner-svn-src-all@freebsd.org Mon Aug 19 04:09:55 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EB4F0D7A15; Mon, 19 Aug 2019 04:09:55 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BgS33crCz4HVl; Mon, 19 Aug 2019 04:09:55 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id zYzOhNrJ6sAGkzYzQhLoKp; Sun, 18 Aug 2019 22:09:53 -0600 X-Authority-Analysis: v=2.3 cv=WeVylHpX c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=FmdZ9Uzk2mMA:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=IVX3wovNNqagbmfdRnwA:9 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 6BB2DF9; Sun, 18 Aug 2019 21:09:50 -0700 (PDT) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id x7J49oEW014805; Sun, 18 Aug 2019 21:09:50 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id x7J49o32014802; Sun, 18 Aug 2019 21:09:50 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201908190409.x7J49o32014802@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Mateusz Guzik cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r351193 - head/sys/kern In-reply-to: <201908181840.x7IIeCAL055888@repo.freebsd.org> References: <201908181840.x7IIeCAL055888@repo.freebsd.org> Comments: In-reply-to Mateusz Guzik message dated "Sun, 18 Aug 2019 18:40:12 -0000." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 18 Aug 2019 21:09:49 -0700 X-CMAE-Envelope: MS4wfJxcH4Nrpq9wtLZ4E9U/f6c0wp3UMrAYepOg28IWb7WutScBQ/VH9R5TS+I0Rzr8yBTCN3/FxsobCaR2/ekdPdS84GAA4jiBWyecs3WGfFcRVt9qu6hR r/cvG5+2MXsF99pIEZ8NAVAjHVPdz+XDJKp8/9vnwQHnDPpchve+I4e7mB2Jk2PZB5DUSr4dY9uFfRBF/Cg0ATDgSPKVTq3porvdMytWnOAp5uohz7Ish5oe SYW0IhzcqBaByBLge45WH3KO/8jw5p8b9Z8EEyzAlWJdJDFPVfcO5Hcwz4phVhTz X-Rspamd-Queue-Id: 46BgS33crCz4HVl X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.95 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.95)[-0.948,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 04:09:56 -0000 In message <201908181840.x7IIeCAL055888@repo.freebsd.org>, Mateusz Guzik writes : > Author: mjg > Date: Sun Aug 18 18:40:12 2019 > New Revision: 351193 > URL: https://svnweb.freebsd.org/changeset/base/351193 > > Log: > vfs: stop always overwriting ->mnt_stat in VFS_STATFS > > The struct is already populated on each mount (and remount). Fields are eit > her > constant or not used by filesystem in the first place. > > Some infrequently used functions use it to avoid having to allocate a new b > uffer > and are left alone. > > The current code results in an avoidable copying single-threaded and signif > icant > cache line bouncing multithreaded > > While here deduplicate initial filling of the struct. > > Reviewed by: kib > Sponsored by: The FreeBSD Foundation > Differential Revision: https://reviews.freebsd.org/D21317 > > Modified: > head/sys/kern/vfs_mount.c > head/sys/kern/vfs_syscalls.c > > Modified: head/sys/kern/vfs_mount.c > ============================================================================= > = > --- head/sys/kern/vfs_mount.c Sun Aug 18 17:12:06 2019 (r351192) > +++ head/sys/kern/vfs_mount.c Sun Aug 18 18:40:12 2019 (r351193) > @@ -1831,12 +1831,15 @@ vfs_copyopt(struct vfsoptlist *opts, const char *name > , > int > __vfs_statfs(struct mount *mp, struct statfs *sbp) > { > - int error; > > - error = mp->mnt_op->vfs_statfs(mp, &mp->mnt_stat); > - if (sbp != &mp->mnt_stat) > - *sbp = mp->mnt_stat; > - return (error); > + /* > + * Set these in case the underlying filesystem fails to do so. > + */ > + sbp->f_version = STATFS_VERSION; > + sbp->f_namemax = NAME_MAX; > + sbp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; > + > + return (mp->mnt_op->vfs_statfs(mp, sbp)); > } > > void > > Modified: head/sys/kern/vfs_syscalls.c > ============================================================================= > = > --- head/sys/kern/vfs_syscalls.c Sun Aug 18 17:12:06 2019 (r35119 > 2) > +++ head/sys/kern/vfs_syscalls.c Sun Aug 18 18:40:12 2019 (r35119 > 3) > @@ -248,7 +248,6 @@ statfs_scale_blocks(struct statfs *sf, long max_size) > static int > kern_do_statfs(struct thread *td, struct mount *mp, struct statfs *buf) > { > - struct statfs *sp; > int error; > > if (mp == NULL) > @@ -262,17 +261,9 @@ kern_do_statfs(struct thread *td, struct mount *mp, st > if (error != 0) > goto out; > #endif > - /* > - * Set these in case the underlying filesystem fails to do so. > - */ > - sp = &mp->mnt_stat; > - sp->f_version = STATFS_VERSION; > - sp->f_namemax = NAME_MAX; > - sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; > - error = VFS_STATFS(mp, sp); > + error = VFS_STATFS(mp, buf); > if (error != 0) > goto out; > - *buf = *sp; > if (priv_check(td, PRIV_VFS_GENERATION)) { > buf->f_fsid.val[0] = buf->f_fsid.val[1] = 0; > prison_enforce_statfs(td->td_ucred, mp, buf); > @@ -476,13 +467,6 @@ restart: > if (sfsp != NULL && count < maxcount) { > sp = &mp->mnt_stat; > /* > - * Set these in case the underlying filesystem > - * fails to do so. > - */ > - sp->f_version = STATFS_VERSION; > - sp->f_namemax = NAME_MAX; > - sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; > - /* > * If MNT_NOWAIT is specified, do not refresh > * the fsstat cache. > */ > @@ -4545,7 +4529,6 @@ sys_fhstatfs(struct thread *td, struct fhstatfs_args * > int > kern_fhstatfs(struct thread *td, fhandle_t fh, struct statfs *buf) > { > - struct statfs *sp; > struct mount *mp; > struct vnode *vp; > int error; > @@ -4569,16 +4552,7 @@ kern_fhstatfs(struct thread *td, fhandle_t fh, struct > if (error != 0) > goto out; > #endif > - /* > - * Set these in case the underlying filesystem fails to do so. > - */ > - sp = &mp->mnt_stat; > - sp->f_version = STATFS_VERSION; > - sp->f_namemax = NAME_MAX; > - sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; > - error = VFS_STATFS(mp, sp); > - if (error == 0) > - *buf = *sp; > + error = VFS_STATFS(mp, buf); > out: > vfs_unbusy(mp); > return (error); > Hi mjg@, This revsion has caused a df(1) and statfs(2) a bit of gas. cwsys# df -h / Filesystem Size Used Avail Capacity Mounted on dsk02/src 1.9G 551M 1.2G 30% /opt/src cwsys# cwsys# df -h /usr Filesystem Size Used Avail Capacity Mounted on dsk02/var/mqueue 2.9G 1.3G 1.4G 47% /var/spool/mqueue cwsys# df -h /var Filesystem Size Used Avail Capacity Mounted on dsk02/src/svn-current 1.9G 1.4G 380M 79% /opt/src/svn-current cwsys# df -h /var/tmp Filesystem Size Used Avail Capacity Mounted on dsk02/src 992M 198M 714M 22% /opt/src cwsys# cwfw# df -h / Filesystem Size Used Avail Capacity Mounted on 4.0G 1.6G 2.0G 45% cwfw# df -h /usr Filesystem Size Used Avail Capacity Mounted on 4.0G 1.6G 2.0G 45% cwfw# df -h /var Filesystem Size Used Avail Capacity Mounted on 2.9G 647M 2.0G 24% cwfw# df -h /tmp Filesystem Size Used Avail Capacity Mounted on 300M 4.0K 300M 0% cwfw# df -h /var/tmp Filesystem Size Used Avail Capacity Mounted on 2.9G 648M 2.0G 24% cwfw# Reverting this revision corrected this regression. -- Cheers, Cy Schubert 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 Aug 19 04:28:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9C122D7F9B; Mon, 19 Aug 2019 04:28:13 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Bgs93M5Jz4JDr; Mon, 19 Aug 2019 04:28:13 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 50807D1EB; Mon, 19 Aug 2019 04:28:13 +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 x7J4SDsx006578; Mon, 19 Aug 2019 04:28:13 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7J4SD5W006577; Mon, 19 Aug 2019 04:28:13 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201908190428.x7J4SD5W006577@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Mon, 19 Aug 2019 04:28:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351204 - head/sbin/fsck_msdosfs X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sbin/fsck_msdosfs X-SVN-Commit-Revision: 351204 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 04:28:13 -0000 Author: delphij Date: Mon Aug 19 04:28:12 2019 New Revision: 351204 URL: https://svnweb.freebsd.org/changeset/base/351204 Log: Remove redundant check and wrong fix: fat.c checks already take care about cluster chains. Obtained from: OpenBSD MFC after: 2 weeks Modified: head/sbin/fsck_msdosfs/dir.c Modified: head/sbin/fsck_msdosfs/dir.c ============================================================================== --- head/sbin/fsck_msdosfs/dir.c Mon Aug 19 01:14:11 2019 (r351203) +++ head/sbin/fsck_msdosfs/dir.c Mon Aug 19 04:28:12 2019 (r351204) @@ -220,7 +220,6 @@ int resetDosDirSection(struct bootblock *boot, struct fatEntry *fat) { int b1, b2; - cl_t cl; int ret = FSOK; size_t len; @@ -253,24 +252,9 @@ resetDosDirSection(struct bootblock *boot, struct fatE boot->bpbRootClust); return FSFATAL; } - cl = fat[boot->bpbRootClust].next; - if (cl < CLUST_FIRST - || (cl >= CLUST_RSRVD && cl< CLUST_EOFS) - || fat[boot->bpbRootClust].head != boot->bpbRootClust) { - if (cl == CLUST_FREE) - pwarn("Root directory starts with free cluster\n"); - else if (cl >= CLUST_RSRVD) - pwarn("Root directory starts with cluster marked %s\n", - rsrvdcltype(cl)); - else { - pfatal("Root directory doesn't start a cluster chain"); - return FSFATAL; - } - if (ask(1, "Fix")) { - fat[boot->bpbRootClust].next = CLUST_FREE; - ret = FSFATMOD; - } else - ret = FSFATAL; + if (fat[boot->bpbRootClust].head != boot->bpbRootClust) { + pfatal("Root directory doesn't start a cluster chain"); + return FSFATAL; } fat[boot->bpbRootClust].flags |= FAT_USED; From owner-svn-src-all@freebsd.org Mon Aug 19 04:30:47 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1E98DA80A1; Mon, 19 Aug 2019 04:30:47 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-ot1-x343.google.com (mail-ot1-x343.google.com [IPv6:2607:f8b0:4864:20::343]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Bgw61z86z4JNZ; Mon, 19 Aug 2019 04:30:46 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-ot1-x343.google.com with SMTP id c7so481474otp.1; Sun, 18 Aug 2019 21:30:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=dd+XnnQ3liyVhAWMXlup6qCDg2OCvrQbGppgOE2qrO4=; b=WktQsWUrxjMoo4rXxu9Aq4cXNhz4He3lbkOiqkR5aark3iwCSEjqz6soa5CR9FA3bX 5dCEExzc7a/PTQZetiwpqtHHoR9k1PaM1Dr/bPCw+jjmyQn++svZOt0AdBjDQy8VHoqs GnGaxw+ntNDPo+pR2ECcE/DUAdYf48YRPGEcqdjZWrAywVJ+tsQKSs4lw0CUKp3kVQ6A l3T6n7cM6VTXolsxImHU61UWYi962OwDfiSarDRAXKt0Z0Cj0jxfBqlPq1X37ujlsbct 9Vq3lmsg0brAJl8asXnPliKXGHUULkqNCou6BWX9hk0rPUCkNvE40aFoUyFSVA5BQya+ P+eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=dd+XnnQ3liyVhAWMXlup6qCDg2OCvrQbGppgOE2qrO4=; b=Z8bbahcbRWscii9IfgxjcJAiODRoOeAuWNhLtSvIetyVU7OWJtiBNts0Y+glSi2Bxu r4e35eHOTuz+mgmi9grc3ZwU48UNTcMfigbnUHgKIVR4d16Ml3I/3elcukl9i+OlCbop kF47WzKEdNbzZH+Yl/Fodg33qm4PaBN48tv6cm16WhvbVvEqa2A1yJ8DH55Kyuhx0vY8 4/J2cuNuURx9HwByq1UKS9iukbBv4ZVHlXuyx+NVlc7b6J+dMmtmrjOhGHlMM1TLvll1 EkJLEARGJeZZRRKBed1YXFsXGy7UOc1oQkCgshrccJAuqt2MSANOYNM2675rpaNwHajW /3hA== X-Gm-Message-State: APjAAAWDHJDRBOL1Xmcujbw29bTPqeGeBgB14XX+PlZQxxjB6JbzGpmY DRbsrBdHeiaGQP8G7xrpYGuAM+x92xzb64QcQ8k= X-Google-Smtp-Source: APXvYqytoAou/JbnnzCToBbs3VT2zOBcdQ0kjmPDANLQLPbfG//92fdQmZ5I2OcxtiZzKXSr7aN+E6sZBHOxl+hiWFA= X-Received: by 2002:a9d:7f05:: with SMTP id j5mr5379605otq.102.1566189044648; Sun, 18 Aug 2019 21:30:44 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:2516:0:0:0:0:0 with HTTP; Sun, 18 Aug 2019 21:30:44 -0700 (PDT) In-Reply-To: <201908190409.x7J49o32014802@slippy.cwsent.com> References: <201908181840.x7IIeCAL055888@repo.freebsd.org> <201908190409.x7J49o32014802@slippy.cwsent.com> From: Mateusz Guzik Date: Mon, 19 Aug 2019 06:30:44 +0200 Message-ID: Subject: Re: svn commit: r351193 - head/sys/kern To: Cy Schubert Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 46Bgw61z86z4JNZ X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=WktQsWUr; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mjguzik@gmail.com designates 2607:f8b0:4864:20::343 as permitted sender) smtp.mailfrom=mjguzik@gmail.com X-Spamd-Result: default: False [-3.98 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(0.00)[ip: (2.94), ipnet: 2607:f8b0::/32(-2.95), asn: 15169(-2.38), country: US(-0.05)]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_DN_SOME(0.00)[]; IP_SCORE_FREEMAIL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[3.4.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 04:30:47 -0000 Sorry, cannot test right now. Does this fix it for you? diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 6a1547854c9d..0cde451e5890 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -466,18 +466,12 @@ kern_getfsstat(struct thread *td, struct statfs **buf, size_t bufsize, } if (sfsp != NULL && count < maxcount) { sp = &mp->mnt_stat; - /* - * If MNT_NOWAIT is specified, do not refresh - * the fsstat cache. - */ - if (mode != MNT_NOWAIT) { - error = VFS_STATFS(mp, sp); - if (error != 0) { - mtx_lock(&mountlist_mtx); - nmp = TAILQ_NEXT(mp, mnt_list); - vfs_unbusy(mp); - continue; - } + error = VFS_STATFS(mp, sp); + if (error != 0) { + mtx_lock(&mountlist_mtx); + nmp = TAILQ_NEXT(mp, mnt_list); + vfs_unbusy(mp); + continue; } if (priv_check(td, PRIV_VFS_GENERATION)) { sptmp = malloc(sizeof(struct statfs), M_STATFS, On 8/19/19, Cy Schubert wrote: > In message <201908181840.x7IIeCAL055888@repo.freebsd.org>, Mateusz Guzik > writes > : >> Author: mjg >> Date: Sun Aug 18 18:40:12 2019 >> New Revision: 351193 >> URL: https://svnweb.freebsd.org/changeset/base/351193 >> >> Log: >> vfs: stop always overwriting ->mnt_stat in VFS_STATFS >> >> The struct is already populated on each mount (and remount). Fields are >> eit >> her >> constant or not used by filesystem in the first place. >> >> Some infrequently used functions use it to avoid having to allocate a >> new b >> uffer >> and are left alone. >> >> The current code results in an avoidable copying single-threaded and >> signif >> icant >> cache line bouncing multithreaded >> >> While here deduplicate initial filling of the struct. >> >> Reviewed by: kib >> Sponsored by: The FreeBSD Foundation >> Differential Revision: https://reviews.freebsd.org/D21317 >> >> Modified: >> head/sys/kern/vfs_mount.c >> head/sys/kern/vfs_syscalls.c >> >> Modified: head/sys/kern/vfs_mount.c >> ============================================================================= >> = >> --- head/sys/kern/vfs_mount.c Sun Aug 18 17:12:06 2019 (r351192) >> +++ head/sys/kern/vfs_mount.c Sun Aug 18 18:40:12 2019 (r351193) >> @@ -1831,12 +1831,15 @@ vfs_copyopt(struct vfsoptlist *opts, const char >> *name >> , >> int >> __vfs_statfs(struct mount *mp, struct statfs *sbp) >> { >> - int error; >> >> - error = mp->mnt_op->vfs_statfs(mp, &mp->mnt_stat); >> - if (sbp != &mp->mnt_stat) >> - *sbp = mp->mnt_stat; >> - return (error); >> + /* >> + * Set these in case the underlying filesystem fails to do so. >> + */ >> + sbp->f_version = STATFS_VERSION; >> + sbp->f_namemax = NAME_MAX; >> + sbp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; >> + >> + return (mp->mnt_op->vfs_statfs(mp, sbp)); >> } >> >> void >> >> Modified: head/sys/kern/vfs_syscalls.c >> ============================================================================= >> = >> --- head/sys/kern/vfs_syscalls.c Sun Aug 18 17:12:06 2019 (r35119 >> 2) >> +++ head/sys/kern/vfs_syscalls.c Sun Aug 18 18:40:12 2019 (r35119 >> 3) >> @@ -248,7 +248,6 @@ statfs_scale_blocks(struct statfs *sf, long max_size) >> static int >> kern_do_statfs(struct thread *td, struct mount *mp, struct statfs *buf) >> { >> - struct statfs *sp; >> int error; >> >> if (mp == NULL) >> @@ -262,17 +261,9 @@ kern_do_statfs(struct thread *td, struct mount *mp, >> st >> if (error != 0) >> goto out; >> #endif >> - /* >> - * Set these in case the underlying filesystem fails to do so. >> - */ >> - sp = &mp->mnt_stat; >> - sp->f_version = STATFS_VERSION; >> - sp->f_namemax = NAME_MAX; >> - sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; >> - error = VFS_STATFS(mp, sp); >> + error = VFS_STATFS(mp, buf); >> if (error != 0) >> goto out; >> - *buf = *sp; >> if (priv_check(td, PRIV_VFS_GENERATION)) { >> buf->f_fsid.val[0] = buf->f_fsid.val[1] = 0; >> prison_enforce_statfs(td->td_ucred, mp, buf); >> @@ -476,13 +467,6 @@ restart: >> if (sfsp != NULL && count < maxcount) { >> sp = &mp->mnt_stat; >> /* >> - * Set these in case the underlying filesystem >> - * fails to do so. >> - */ >> - sp->f_version = STATFS_VERSION; >> - sp->f_namemax = NAME_MAX; >> - sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; >> - /* >> * If MNT_NOWAIT is specified, do not refresh >> * the fsstat cache. >> */ >> @@ -4545,7 +4529,6 @@ sys_fhstatfs(struct thread *td, struct fhstatfs_args >> * >> int >> kern_fhstatfs(struct thread *td, fhandle_t fh, struct statfs *buf) >> { >> - struct statfs *sp; >> struct mount *mp; >> struct vnode *vp; >> int error; >> @@ -4569,16 +4552,7 @@ kern_fhstatfs(struct thread *td, fhandle_t fh, >> struct >> if (error != 0) >> goto out; >> #endif >> - /* >> - * Set these in case the underlying filesystem fails to do so. >> - */ >> - sp = &mp->mnt_stat; >> - sp->f_version = STATFS_VERSION; >> - sp->f_namemax = NAME_MAX; >> - sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; >> - error = VFS_STATFS(mp, sp); >> - if (error == 0) >> - *buf = *sp; >> + error = VFS_STATFS(mp, buf); >> out: >> vfs_unbusy(mp); >> return (error); >> > > Hi mjg@, > > This revsion has caused a df(1) and statfs(2) a bit of gas. > > cwsys# df -h / > Filesystem Size Used Avail Capacity Mounted on > dsk02/src 1.9G 551M 1.2G 30% /opt/src > cwsys# > cwsys# df -h /usr > Filesystem Size Used Avail Capacity Mounted on > dsk02/var/mqueue 2.9G 1.3G 1.4G 47% /var/spool/mqueue > cwsys# df -h /var > Filesystem Size Used Avail Capacity Mounted on > dsk02/src/svn-current 1.9G 1.4G 380M 79% > /opt/src/svn-current > cwsys# df -h /var/tmp > Filesystem Size Used Avail Capacity Mounted on > dsk02/src 992M 198M 714M 22% /opt/src > cwsys# > > cwfw# df -h / > Filesystem Size Used Avail Capacity Mounted on > 4.0G 1.6G 2.0G 45% > cwfw# df -h /usr > Filesystem Size Used Avail Capacity Mounted on > 4.0G 1.6G 2.0G 45% > cwfw# df -h /var > Filesystem Size Used Avail Capacity Mounted on > 2.9G 647M 2.0G 24% > cwfw# df -h /tmp > Filesystem Size Used Avail Capacity Mounted on > 300M 4.0K 300M 0% > cwfw# df -h /var/tmp > Filesystem Size Used Avail Capacity Mounted on > 2.9G 648M 2.0G 24% > cwfw# > > Reverting this revision corrected this regression. > > > -- > Cheers, > Cy Schubert > FreeBSD UNIX: Web: http://www.FreeBSD.org > > The need of the many outweighs the greed of the few. > > > -- Mateusz Guzik From owner-svn-src-all@freebsd.org Mon Aug 19 05:24:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 82B1EA8E49; Mon, 19 Aug 2019 05:24:43 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Bj6M2hKXz4LBj; Mon, 19 Aug 2019 05:24:43 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2BC2DDC73; Mon, 19 Aug 2019 05:24:43 +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 x7J5Oh4p041713; Mon, 19 Aug 2019 05:24:43 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7J5OhV4041712; Mon, 19 Aug 2019 05:24:43 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201908190524.x7J5OhV4041712@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Mon, 19 Aug 2019 05:24:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351205 - head/sbin/fsck_msdosfs X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sbin/fsck_msdosfs X-SVN-Commit-Revision: 351205 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 05:24:43 -0000 Author: delphij Date: Mon Aug 19 05:24:42 2019 New Revision: 351205 URL: https://svnweb.freebsd.org/changeset/base/351205 Log: Use calloc(). MFC after: 2 weeks Modified: head/sbin/fsck_msdosfs/fat.c Modified: head/sbin/fsck_msdosfs/fat.c ============================================================================== --- head/sbin/fsck_msdosfs/fat.c Mon Aug 19 04:28:12 2019 (r351204) +++ head/sbin/fsck_msdosfs/fat.c Mon Aug 19 05:24:42 2019 (r351205) @@ -54,10 +54,10 @@ static int _readfat(int, struct bootblock *, u_int, u_ * 31...... ........ ........ .......0 * rrrr1111 11111111 11111111 mmmmmmmm FAT32 entry 0 * rrrrsh11 11111111 11111111 11111xxx FAT32 entry 1 - * + * * 11111111 mmmmmmmm FAT16 entry 0 * sh111111 11111xxx FAT16 entry 1 - * + * * r = reserved * m = BPB media ID byte * s = clean flag (1 = dismounted; 0 = still mounted) @@ -166,11 +166,11 @@ static int _readfat(int fs, struct bootblock *boot, u_int no, u_char **buffer) { off_t off; - size_t len; - *buffer = malloc(len = boot->FATsecs * boot->bpbBytesPerSec); + *buffer = calloc(boot->FATsecs, boot->bpbBytesPerSec); if (*buffer == NULL) { - perr("No space for FAT sectors (%zu)", len); + perr("No space for FAT sectors (%zu)", + (size_t)boot->FATsecs); return 0; } @@ -205,20 +205,19 @@ readfat(int fs, struct bootblock *boot, u_int no, stru u_char *buffer, *p; cl_t cl; int ret = FSOK; - size_t len; boot->NumFree = boot->NumBad = 0; if (!_readfat(fs, boot, no, &buffer)) return FSFATAL; - fat = malloc(len = boot->NumClusters * sizeof(struct fatEntry)); + fat = calloc(boot->NumClusters, sizeof(struct fatEntry)); if (fat == NULL) { - perr("No space for FAT clusters (%zu)", len); + perr("No space for FAT clusters (%zu)", + (size_t)boot->NumClusters); free(buffer); return FSFATAL; } - (void)memset(fat, 0, len); if (buffer[0] != boot->bpbMedia || buffer[1] != 0xff || buffer[2] != 0xff @@ -566,12 +565,13 @@ writefat(int fs, struct bootblock *boot, struct fatEnt off_t off; int ret = FSOK; - buffer = malloc(fatsz = boot->FATsecs * boot->bpbBytesPerSec); + fatsz = boot->FATsecs * boot->bpbBytesPerSec; + buffer = calloc(boot->FATsecs, boot->bpbBytesPerSec); if (buffer == NULL) { - perr("No space for FAT sectors (%zu)", fatsz); + perr("No space for FAT sectors (%zu)", + (size_t)boot->FATsecs); return FSFATAL; } - memset(buffer, 0, fatsz); boot->NumFree = 0; p = buffer; if (correct_fat) { From owner-svn-src-all@freebsd.org Mon Aug 19 07:40:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C7290AB963; Mon, 19 Aug 2019 07:40:43 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Bm7H3lTTz4Qsn; Mon, 19 Aug 2019 07:40:43 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 626C9F439; Mon, 19 Aug 2019 07:40:43 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7J7ehOZ019022; Mon, 19 Aug 2019 07:40:43 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7J7ehHb019021; Mon, 19 Aug 2019 07:40:43 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201908190740.x7J7ehHb019021@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 19 Aug 2019 07:40:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351206 - stable/12/share/man/man8 X-SVN-Group: stable-12 X-SVN-Commit-Author: avg X-SVN-Commit-Paths: stable/12/share/man/man8 X-SVN-Commit-Revision: 351206 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 07:40:43 -0000 Author: avg Date: Mon Aug 19 07:40:42 2019 New Revision: 351206 URL: https://svnweb.freebsd.org/changeset/base/351206 Log: MFC r350701,r350702: rc.8: add a reference to service(8) Modified: stable/12/share/man/man8/rc.8 Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man8/rc.8 ============================================================================== --- stable/12/share/man/man8/rc.8 Mon Aug 19 05:24:42 2019 (r351205) +++ stable/12/share/man/man8/rc.8 Mon Aug 19 07:40:42 2019 (r351206) @@ -31,7 +31,7 @@ .\" @(#)rc.8 8.2 (Berkeley) 12/11/93 .\" $FreeBSD$ .\" -.Dd December 29, 2018 +.Dd August 7, 2019 .Dt RC 8 .Os .Sh NAME @@ -89,8 +89,13 @@ The directories contain scripts which will be automatically executed at boot time and shutdown time. .Pp -The sysrc(8) command provides a scripting interface to modify system -config files. +The +.Xr service 8 +command provides a convenient interface to manage rc.d services. +.Pp +The +.Xr sysrc 8 +command provides a scripting interface to modify system config files. .Ss Operation of Nm .Bl -enum .It @@ -214,7 +219,7 @@ Call each script in turn using which sets .Va $1 to -.Dq Li stop , +.Dq Li faststop , and sources the script in a subshell. .El .Ss Contents of Nm rc.d/ @@ -556,6 +561,7 @@ is unnecessary, but is often included. .Xr rcorder 8 , .Xr reboot 8 , .Xr savecore 8 , +.Xr service 8 , .Xr sysrc 8 .Sh HISTORY The From owner-svn-src-all@freebsd.org Mon Aug 19 07:42:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 67991ABACB; Mon, 19 Aug 2019 07:42:10 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Bm8y26sFz4RCh; Mon, 19 Aug 2019 07:42:10 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2B9CEF4B5; Mon, 19 Aug 2019 07:42:10 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7J7gAJp022306; Mon, 19 Aug 2019 07:42:10 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7J7gADU022305; Mon, 19 Aug 2019 07:42:10 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201908190742.x7J7gADU022305@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 19 Aug 2019 07:42:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351207 - stable/11/share/man/man8 X-SVN-Group: stable-11 X-SVN-Commit-Author: avg X-SVN-Commit-Paths: stable/11/share/man/man8 X-SVN-Commit-Revision: 351207 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 07:42:10 -0000 Author: avg Date: Mon Aug 19 07:42:09 2019 New Revision: 351207 URL: https://svnweb.freebsd.org/changeset/base/351207 Log: MFC r350701,r350702: rc.8: add a reference to service(8) Modified: stable/11/share/man/man8/rc.8 Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man8/rc.8 ============================================================================== --- stable/11/share/man/man8/rc.8 Mon Aug 19 07:40:42 2019 (r351206) +++ stable/11/share/man/man8/rc.8 Mon Aug 19 07:42:09 2019 (r351207) @@ -31,7 +31,7 @@ .\" @(#)rc.8 8.2 (Berkeley) 12/11/93 .\" $FreeBSD$ .\" -.Dd December 29, 2018 +.Dd August 7, 2019 .Dt RC 8 .Os .Sh NAME @@ -89,8 +89,13 @@ The directories contain scripts which will be automatically executed at boot time and shutdown time. .Pp -The sysrc(8) command provides a scripting interface to modify system -config files. +The +.Xr service 8 +command provides a convenient interface to manage rc.d services. +.Pp +The +.Xr sysrc 8 +command provides a scripting interface to modify system config files. .Ss Operation of Nm .Bl -enum .It @@ -214,7 +219,7 @@ Call each script in turn using which sets .Va $1 to -.Dq Li stop , +.Dq Li faststop , and sources the script in a subshell. .El .Ss Contents of Nm rc.d/ @@ -550,6 +555,7 @@ is unnecessary, but is often included. .Xr rcorder 8 , .Xr reboot 8 , .Xr savecore 8 , +.Xr service 8 , .Xr sysrc 8 .Sh HISTORY The From owner-svn-src-all@freebsd.org Mon Aug 19 07:45:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 98802ABC5A; Mon, 19 Aug 2019 07:45:40 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BmF02P1nz4RQ1; Mon, 19 Aug 2019 07:45:40 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2F932F606; Mon, 19 Aug 2019 07:45:40 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7J7jd0f025293; Mon, 19 Aug 2019 07:45:39 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7J7jd0R025292; Mon, 19 Aug 2019 07:45:39 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201908190745.x7J7jd0R025292@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 19 Aug 2019 07:45:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351208 - stable/12/cddl/contrib/opensolaris/cmd/zfs X-SVN-Group: stable-12 X-SVN-Commit-Author: avg X-SVN-Commit-Paths: stable/12/cddl/contrib/opensolaris/cmd/zfs X-SVN-Commit-Revision: 351208 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 07:45:40 -0000 Author: avg Date: Mon Aug 19 07:45:39 2019 New Revision: 351208 URL: https://svnweb.freebsd.org/changeset/base/351208 Log: MFC r350893: Allow ZVOL bookmarks to be listed recursively PR: 197821 Modified: stable/12/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c Directory Properties: stable/12/ (props changed) Modified: stable/12/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c ============================================================================== --- stable/12/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c Mon Aug 19 07:42:09 2019 (r351207) +++ stable/12/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c Mon Aug 19 07:45:39 2019 (r351208) @@ -445,13 +445,13 @@ zfs_for_each(int argc, char **argv, int flags, zfs_typ /* * If we're recursive, then we always allow filesystems as - * arguments. If we also are interested in snapshots, then we - * can take volumes as well. + * arguments. If we also are interested in snapshots or + * bookmarks, then we can take volumes as well. */ argtype = types; if (flags & ZFS_ITER_RECURSE) { argtype |= ZFS_TYPE_FILESYSTEM; - if (types & ZFS_TYPE_SNAPSHOT) + if (types & (ZFS_TYPE_SNAPSHOT | ZFS_TYPE_BOOKMARK)) argtype |= ZFS_TYPE_VOLUME; } From owner-svn-src-all@freebsd.org Mon Aug 19 07:47:09 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E6DCEABDE4; Mon, 19 Aug 2019 07:47:09 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BmGj5VZWz4RY7; Mon, 19 Aug 2019 07:47:09 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9E68FF60B; Mon, 19 Aug 2019 07:47:09 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7J7l9w5025444; Mon, 19 Aug 2019 07:47:09 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7J7l9qX025443; Mon, 19 Aug 2019 07:47:09 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201908190747.x7J7l9qX025443@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 19 Aug 2019 07:47:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351209 - stable/11/cddl/contrib/opensolaris/cmd/zfs X-SVN-Group: stable-11 X-SVN-Commit-Author: avg X-SVN-Commit-Paths: stable/11/cddl/contrib/opensolaris/cmd/zfs X-SVN-Commit-Revision: 351209 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 07:47:10 -0000 Author: avg Date: Mon Aug 19 07:47:09 2019 New Revision: 351209 URL: https://svnweb.freebsd.org/changeset/base/351209 Log: MFC r350893: Allow ZVOL bookmarks to be listed recursively PR: 197821 Modified: stable/11/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c Directory Properties: stable/11/ (props changed) Modified: stable/11/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c ============================================================================== --- stable/11/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c Mon Aug 19 07:45:39 2019 (r351208) +++ stable/11/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c Mon Aug 19 07:47:09 2019 (r351209) @@ -445,13 +445,13 @@ zfs_for_each(int argc, char **argv, int flags, zfs_typ /* * If we're recursive, then we always allow filesystems as - * arguments. If we also are interested in snapshots, then we - * can take volumes as well. + * arguments. If we also are interested in snapshots or + * bookmarks, then we can take volumes as well. */ argtype = types; if (flags & ZFS_ITER_RECURSE) { argtype |= ZFS_TYPE_FILESYSTEM; - if (types & ZFS_TYPE_SNAPSHOT) + if (types & (ZFS_TYPE_SNAPSHOT | ZFS_TYPE_BOOKMARK)) argtype |= ZFS_TYPE_VOLUME; } From owner-svn-src-all@freebsd.org Mon Aug 19 09:29:28 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 50D16AEE8A; Mon, 19 Aug 2019 09:29:28 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BpXm1BYHz4X56; Mon, 19 Aug 2019 09:29:28 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0639E187D6; Mon, 19 Aug 2019 09:29:28 +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 x7J9TRwG085224; Mon, 19 Aug 2019 09:29:27 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7J9TReK085223; Mon, 19 Aug 2019 09:29:27 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908190929.x7J9TReK085223@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 19 Aug 2019 09:29:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351210 - head/tests/sys/kern X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/tests/sys/kern X-SVN-Commit-Revision: 351210 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 09:29:28 -0000 Author: kib Date: Mon Aug 19 09:29:27 2019 New Revision: 351210 URL: https://svnweb.freebsd.org/changeset/base/351210 Log: sys.kern.pdeathsig.signal_delivered_ptrace: fix debugger detach ptrace(PT_DETACH) requires stopped debuggee, otherwise it fails. When the call fails, the C process is left as debuggee of the process D, and might be killed too early if process D exits occurs fast enough. Since pipes are not closed in the forked children, this resulted in the test hanging, since no write occured from C to wake A. PR: 237657 Reported and tested by: lwhsu Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/tests/sys/kern/pdeathsig.c Modified: head/tests/sys/kern/pdeathsig.c ============================================================================== --- head/tests/sys/kern/pdeathsig.c Mon Aug 19 07:47:09 2019 (r351209) +++ head/tests/sys/kern/pdeathsig.c Mon Aug 19 09:29:27 2019 (r351210) @@ -305,7 +305,9 @@ ATF_TC_BODY(signal_delivered_ptrace, tc) WSTOPSIG(status)); assert(rc == 0); - ptrace(PT_DETACH, c_pid, 0, 0); + waitpid(c_pid, &status, 0); + if (!WIFEXITED(status)) + ptrace(PT_DETACH, c_pid, 0, 0); _exit(0); } From owner-svn-src-all@freebsd.org Mon Aug 19 09:33:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1F2DBAF18B; Mon, 19 Aug 2019 09:33:10 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Bpd203vWz4XWH; Mon, 19 Aug 2019 09:33:10 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D7F2E189CF; Mon, 19 Aug 2019 09:33:09 +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 x7J9X9Hi090835; Mon, 19 Aug 2019 09:33:09 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7J9X9KO090834; Mon, 19 Aug 2019 09:33:09 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908190933.x7J9X9KO090834@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 19 Aug 2019 09:33:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351211 - head/tests/sys/kern X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/tests/sys/kern X-SVN-Commit-Revision: 351211 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 09:33:10 -0000 Author: kib Date: Mon Aug 19 09:33:09 2019 New Revision: 351211 URL: https://svnweb.freebsd.org/changeset/base/351211 Log: sys.kern.pdeathsig.signal_delivered_ptrace: fix startup. Inform D that C executed procctl(PROC_PDEATHSIG_CTL). Otherwise D might allow B to exit before C is set up to receive a signal on the parent exit. In this case, C waits forever for the signal and test hangs. PR: 237657 Reported and tested by: lwhsu Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/tests/sys/kern/pdeathsig.c Modified: head/tests/sys/kern/pdeathsig.c ============================================================================== --- head/tests/sys/kern/pdeathsig.c Mon Aug 19 09:29:27 2019 (r351210) +++ head/tests/sys/kern/pdeathsig.c Mon Aug 19 09:33:09 2019 (r351211) @@ -229,6 +229,7 @@ ATF_TC_BODY(signal_delivered_ptrace, tc) int rc; int pipe_ca[2]; int pipe_db[2]; + int pipe_cd[2]; char buffer; int status; @@ -236,6 +237,8 @@ ATF_TC_BODY(signal_delivered_ptrace, tc) ATF_REQUIRE(rc == 0); rc = pipe(pipe_db); ATF_REQUIRE(rc == 0); + rc = pipe(pipe_cd); + assert(rc == 0); rc = fork(); ATF_REQUIRE(rc != -1); @@ -263,6 +266,9 @@ ATF_TC_BODY(signal_delivered_ptrace, tc) rc = procctl(P_PID, 0, PROC_PDEATHSIG_CTL, &signum); assert(rc == 0); + rc = write(pipe_cd[1], "x", 1); + assert(rc == 1); + /* wait for B to die and signal us... */ signum = 0xdeadbeef; rc = sigwait(&sigset, &signum); @@ -292,6 +298,9 @@ ATF_TC_BODY(signal_delivered_ptrace, tc) rc = ptrace(PT_CONTINUE, c_pid, (caddr_t) 1, 0); assert(rc == 0); + + rc = read(pipe_cd[0], &buffer, 1); + assert(rc == 1); /* tell B that we're ready for it to exit now */ rc = write(pipe_db[1], ".", 1); From owner-svn-src-all@freebsd.org Mon Aug 19 10:48:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CCF71C1768; Mon, 19 Aug 2019 10:48:29 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BrHx50lyz4dVb; Mon, 19 Aug 2019 10:48:29 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8D2A6196B6; Mon, 19 Aug 2019 10:48:29 +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 x7JAmTZt033417; Mon, 19 Aug 2019 10:48:29 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JAmSgl033410; Mon, 19 Aug 2019 10:48:28 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201908191048.x7JAmSgl033410@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Mon, 19 Aug 2019 10:48:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351212 - in head: . tests/sys/netpfil/common tests/sys/netpfil/pf X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: in head: . tests/sys/netpfil/common tests/sys/netpfil/pf X-SVN-Commit-Revision: 351212 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 10:48:29 -0000 Author: kp Date: Mon Aug 19 10:48:27 2019 New Revision: 351212 URL: https://svnweb.freebsd.org/changeset/base/351212 Log: netpfil tests: Move pft_ping.py and sniffer.py to the common test directory The pft_ping.py and sniffer.py tool is moved from tests/sys/netpfil/pf to tests/sys/netpfil/common directory because these tools are to be used in common for all the firewalls. Submitted by: Ahsan Barkati Reviewed by: kp, thj Sponsored by: Google, Inc. (GSoC 2019) Differential Revision: https://reviews.freebsd.org/D21276 Added: head/tests/sys/netpfil/common/pft_ping.py - copied unchanged from r351211, head/tests/sys/netpfil/pf/pft_ping.py head/tests/sys/netpfil/common/sniffer.py - copied unchanged from r351211, head/tests/sys/netpfil/pf/sniffer.py Deleted: head/tests/sys/netpfil/pf/pft_ping.py head/tests/sys/netpfil/pf/sniffer.py Modified: head/ObsoleteFiles.inc head/tests/sys/netpfil/common/Makefile head/tests/sys/netpfil/pf/Makefile head/tests/sys/netpfil/pf/forward.sh head/tests/sys/netpfil/pf/set_tos.sh Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Mon Aug 19 09:33:09 2019 (r351211) +++ head/ObsoleteFiles.inc Mon Aug 19 10:48:27 2019 (r351212) @@ -38,6 +38,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20190817: pft_ping.py and sniffer.py moved to /usr/tests/sys/netpfil/common +OLD_FILES+=usr/tests/sys/netpfil/pf/sniffer.py +OLD_FILES+=usr/tests/sys/netpfil/pf/pft_ping.py # 20190816: dir.h removed from POSIX OLD_FILES+=usr/include/sys/dir.h # 20190729: gzip'ed a.out support removed Modified: head/tests/sys/netpfil/common/Makefile ============================================================================== --- head/tests/sys/netpfil/common/Makefile Mon Aug 19 09:33:09 2019 (r351211) +++ head/tests/sys/netpfil/common/Makefile Mon Aug 19 10:48:27 2019 (r351212) @@ -11,6 +11,10 @@ ATF_TESTS_SH+= \ ${PACKAGE}FILES+= \ utils.subr \ - runner.subr + runner.subr \ + pft_ping.py \ + sniffer.py + +${PACKAGE}FILESMODE_pft_ping.py= 0555 .include Copied: head/tests/sys/netpfil/common/pft_ping.py (from r351211, head/tests/sys/netpfil/pf/pft_ping.py) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/netpfil/common/pft_ping.py Mon Aug 19 10:48:27 2019 (r351212, copy of r351211, head/tests/sys/netpfil/pf/pft_ping.py) @@ -0,0 +1,135 @@ +#!/usr/local/bin/python2.7 + +import argparse +import scapy.all as sp +import sys +from sniffer import Sniffer + +PAYLOAD_MAGIC = 0x42c0ffee + +def check_ping_request(args, packet): + if args.ip6: + return check_ping6_request(args, packet) + else: + return check_ping4_request(args, packet) + +def check_ping4_request(args, packet): + """ + Verify that the packet matches what we'd have sent + """ + dst_ip = args.to[0] + + ip = packet.getlayer(sp.IP) + if not ip: + return False + if ip.dst != dst_ip: + return False + + icmp = packet.getlayer(sp.ICMP) + if not icmp: + return False + if sp.icmptypes[icmp.type] != 'echo-request': + return False + + raw = packet.getlayer(sp.Raw) + if not raw: + return False + if raw.load != str(PAYLOAD_MAGIC): + return False + + # Wait to check expectations until we've established this is the packet we + # sent. + if args.expect_tos: + if ip.tos != int(args.expect_tos[0]): + print "Unexpected ToS value %d, expected %s" \ + % (ip.tos, args.expect_tos[0]) + return False + + return True + +def check_ping6_request(args, packet): + """ + Verify that the packet matches what we'd have sent + """ + dst_ip = args.to[0] + + ip = packet.getlayer(sp.IPv6) + if not ip: + return False + if ip.dst != dst_ip: + return False + + icmp = packet.getlayer(sp.ICMPv6EchoRequest) + if not icmp: + return False + if icmp.data != str(PAYLOAD_MAGIC): + return False + + return True + +def ping(send_if, dst_ip, args): + ether = sp.Ether() + ip = sp.IP(dst=dst_ip) + icmp = sp.ICMP(type='echo-request') + raw = sp.Raw(str(PAYLOAD_MAGIC)) + + if args.send_tos: + ip.tos = int(args.send_tos[0]) + + req = ether / ip / icmp / raw + sp.sendp(req, iface=send_if, verbose=False) + +def ping6(send_if, dst_ip, args): + ether = sp.Ether() + ip6 = sp.IPv6(dst=dst_ip) + icmp = sp.ICMPv6EchoRequest(data=PAYLOAD_MAGIC) + + req = ether / ip6 / icmp + sp.sendp(req, iface=send_if, verbose=False) + +def main(): + parser = argparse.ArgumentParser("pft_ping.py", + description="Ping test tool") + parser.add_argument('--sendif', nargs=1, + required=True, + help='The interface through which the packet(s) will be sent') + parser.add_argument('--recvif', nargs=1, + help='The interface on which to expect the ICMP echo response') + parser.add_argument('--ip6', action='store_true', + help='Use IPv6') + parser.add_argument('--to', nargs=1, + required=True, + help='The destination IP address for the ICMP echo request') + + # Packet settings + parser.add_argument('--send-tos', nargs=1, + help='Set the ToS value for the transmitted packet') + + # Expectations + parser.add_argument('--expect-tos', nargs=1, + help='The expected ToS value in the received packet') + + args = parser.parse_args() + + # We may not have a default route. Tell scapy where to start looking for routes + sp.conf.iface6 = args.sendif[0] + + sniffer = None + if not args.recvif is None: + sniffer = Sniffer(args, check_ping_request) + + if args.ip6: + ping6(args.sendif[0], args.to[0], args) + else: + ping(args.sendif[0], args.to[0], args) + + if sniffer: + sniffer.join() + + if sniffer.foundCorrectPacket: + sys.exit(0) + else: + sys.exit(1) + +if __name__ == '__main__': + main() Copied: head/tests/sys/netpfil/common/sniffer.py (from r351211, head/tests/sys/netpfil/pf/sniffer.py) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/netpfil/common/sniffer.py Mon Aug 19 10:48:27 2019 (r351212, copy of r351211, head/tests/sys/netpfil/pf/sniffer.py) @@ -0,0 +1,25 @@ +# $FreeBSD$ + +import threading +import scapy.all as sp + +class Sniffer(threading.Thread): + def __init__(self, args, check_function): + threading.Thread.__init__(self) + + self._args = args + self._recvif = args.recvif[0] + self._check_function = check_function + self.foundCorrectPacket = False + + self.start() + + def _checkPacket(self, packet): + ret = self._check_function(self._args, packet) + if ret: + self.foundCorrectPacket = True + return ret + + def run(self): + self.packets = sp.sniff(iface=self._recvif, + stop_filter=self._checkPacket, timeout=3) Modified: head/tests/sys/netpfil/pf/Makefile ============================================================================== --- head/tests/sys/netpfil/pf/Makefile Mon Aug 19 09:33:09 2019 (r351211) +++ head/tests/sys/netpfil/pf/Makefile Mon Aug 19 10:48:27 2019 (r351212) @@ -21,12 +21,9 @@ ATF_TESTS_SH+= anchor \ ${PACKAGE}FILES+= utils.subr \ echo_inetd.conf \ - sniffer.py \ - pft_ping.py \ CVE-2019-5597.py \ CVE-2019-5598.py -${PACKAGE}FILESMODE_pft_ping.py= 0555 ${PACKAGE}FILESMODE_CVE-2019-5597.py= 0555 ${PACKAGE}FILESMODE_CVE-2019-5598.py= 0555 Modified: head/tests/sys/netpfil/pf/forward.sh ============================================================================== --- head/tests/sys/netpfil/pf/forward.sh Mon Aug 19 09:33:09 2019 (r351211) +++ head/tests/sys/netpfil/pf/forward.sh Mon Aug 19 10:48:27 2019 (r351212) @@ -2,6 +2,8 @@ . $(atf_get_srcdir)/utils.subr +common_dir=$(atf_get_srcdir)/../common + atf_test_case "v4" "cleanup" v4_head() { @@ -43,20 +45,20 @@ v4_body() # Forward with pf enabled pft_set_rules alcatraz "block in" - atf_check -s exit:1 $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:1 ${common_dir}/pft_ping.py \ --sendif ${epair_send}a \ --to 198.51.100.3 \ --recvif ${epair_recv}a pft_set_rules alcatraz "block out" - atf_check -s exit:1 $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:1 ${common_dir}/pft_ping.py \ --sendif ${epair_send}a \ --to 198.51.100.3 \ --recv ${epair_recv}a # Allow ICMP pft_set_rules alcatraz "block in" "pass in proto icmp" - atf_check -s exit:0 $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:0 ${common_dir}/pft_ping.py \ --sendif ${epair_send}a \ --to 198.51.100.3 \ --recvif ${epair_recv}a @@ -98,7 +100,7 @@ v6_body() route add -6 2001:db8:43::/64 2001:db8:42::2 # Sanity check, can we forward ICMP echo requests without pf? - atf_check -s exit:0 $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:0 ${common_dir}/pft_ping.py \ --ip6 \ --sendif ${epair_send}a \ --to 2001:db8:43::3 \ @@ -109,7 +111,7 @@ v6_body() # Block incoming echo request packets pft_set_rules alcatraz \ "block in inet6 proto icmp6 icmp6-type echoreq" - atf_check -s exit:1 $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:1 ${common_dir}/pft_ping.py \ --ip6 \ --sendif ${epair_send}a \ --to 2001:db8:43::3 \ @@ -118,7 +120,7 @@ v6_body() # Block outgoing echo request packets pft_set_rules alcatraz \ "block out inet6 proto icmp6 icmp6-type echoreq" - atf_check -s exit:1 -e ignore $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:1 -e ignore ${common_dir}/pft_ping.py \ --ip6 \ --sendif ${epair_send}a \ --to 2001:db8:43::3 \ @@ -128,7 +130,7 @@ v6_body() pft_set_rules alcatraz \ "block out" \ "pass out inet6 proto icmp6" - atf_check -s exit:0 $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:0 ${common_dir}/pft_ping.py \ --ip6 \ --sendif ${epair_send}a \ --to 2001:db8:43::3 \ @@ -138,7 +140,7 @@ v6_body() pft_set_rules alcatraz \ "block out inet6 proto icmp6 icmp6-type echoreq" \ "pass in proto icmp" - atf_check -s exit:1 $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:1 ${common_dir}/pft_ping.py \ --ip6 \ --sendif ${epair_send}a \ --to 2001:db8:43::3 \ Modified: head/tests/sys/netpfil/pf/set_tos.sh ============================================================================== --- head/tests/sys/netpfil/pf/set_tos.sh Mon Aug 19 09:33:09 2019 (r351211) +++ head/tests/sys/netpfil/pf/set_tos.sh Mon Aug 19 10:48:27 2019 (r351212) @@ -2,6 +2,8 @@ . $(atf_get_srcdir)/utils.subr +common_dir=$(atf_get_srcdir)/../common + atf_test_case "v4" "cleanup" v4_head() { @@ -37,7 +39,7 @@ v4_body() # No change is done if not requested pft_set_rules alcatraz "scrub out proto icmp" - atf_check -s exit:1 -o ignore $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:1 -o ignore ${common_dir}/pft_ping.py \ --sendif ${epair_send}a \ --to 198.51.100.3 \ --recvif ${epair_recv}a \ @@ -45,7 +47,7 @@ v4_body() # The requested ToS is set pft_set_rules alcatraz "scrub out proto icmp set-tos 42" - atf_check -s exit:0 $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:0 ${common_dir}/pft_ping.py \ --sendif ${epair_send}a \ --to 198.51.100.3 \ --recvif ${epair_recv}a \ @@ -53,7 +55,7 @@ v4_body() # ToS is not changed if the scrub rule does not match pft_set_rules alcatraz "scrub out proto tcp set-tos 42" - atf_check -s exit:1 -o ignore $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:1 -o ignore ${common_dir}/pft_ping.py \ --sendif ${epair_send}a \ --to 198.51.100.3 \ --recvif ${epair_recv}a \ @@ -62,14 +64,14 @@ v4_body() # Multiple scrub rules match as expected pft_set_rules alcatraz "scrub out proto tcp set-tos 13" \ "scrub out proto icmp set-tos 14" - atf_check -s exit:0 $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:0 ${common_dir}/pft_ping.py \ --sendif ${epair_send}a \ --to 198.51.100.3 \ --recvif ${epair_recv}a \ --expect-tos 14 # And this works even if the packet already has ToS values set - atf_check -s exit:0 $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:0 ${common_dir}/pft_ping.py \ --sendif ${epair_send}a \ --to 198.51.100.3 \ --recvif ${epair_recv}a \ @@ -78,7 +80,7 @@ v4_body() # ToS values are unmolested if the packets do not match a scrub rule pft_set_rules alcatraz "scrub out proto tcp set-tos 13" - atf_check -s exit:0 $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:0 ${common_dir}/pft_ping.py \ --sendif ${epair_send}a \ --to 198.51.100.3 \ --recvif ${epair_recv}a \ From owner-svn-src-all@freebsd.org Mon Aug 19 11:18:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7DC1FC25C4; Mon, 19 Aug 2019 11:18:37 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Bryj2dlKz4g1L; Mon, 19 Aug 2019 11:18:37 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3C28E19C09; Mon, 19 Aug 2019 11:18:37 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JBIbsq051037; Mon, 19 Aug 2019 11:18:37 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JBIa2c051036; Mon, 19 Aug 2019 11:18:36 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201908191118.x7JBIa2c051036@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 19 Aug 2019 11:18:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351213 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 351213 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 11:18:37 -0000 Author: avg Date: Mon Aug 19 11:18:36 2019 New Revision: 351213 URL: https://svnweb.freebsd.org/changeset/base/351213 Log: assert that td_lk_slocks is not leaked upon return from kernel This is similar to checks for td_sx_slocks and td_rw_rlocks. Although td_lk_slocks is an implementation detail, it still makes sense to validate it. MFC after: 1 week Sponsored by: Panzura Modified: head/sys/kern/subr_trap.c Modified: head/sys/kern/subr_trap.c ============================================================================== --- head/sys/kern/subr_trap.c Mon Aug 19 10:48:27 2019 (r351212) +++ head/sys/kern/subr_trap.c Mon Aug 19 11:18:36 2019 (r351213) @@ -176,6 +176,9 @@ userret(struct thread *td, struct trapframe *frame) KASSERT(td->td_sx_slocks == 0, ("userret: Returning with %d sx locks held in shared mode", td->td_sx_slocks)); + KASSERT(td->td_lk_slocks == 0, + ("userret: Returning with %d lockmanager locks held in shared mode", + td->td_lk_slocks)); KASSERT((td->td_pflags & TDP_NOFAULTING) == 0, ("userret: Returning with pagefaults disabled")); KASSERT(td->td_no_sleeping == 0, From owner-svn-src-all@freebsd.org Mon Aug 19 12:42:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 96624C5648; Mon, 19 Aug 2019 12:42:01 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46Btpx2Ttdz3Hbw; Mon, 19 Aug 2019 12:42:01 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from [192.168.200.4] (c-71-56-186-158.hsd1.va.comcast.net [71.56.186.158]) (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 A792D2700125; Mon, 19 Aug 2019 08:41:59 -0400 (EDT) DMARC-Filter: OpenDMARC Filter v1.3.1 duke.cs.duke.edu A792D2700125 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=cs.duke.edu; s=mail0816; t=1566218519; bh=WWLMsuYCAXaPsR3DHGoTfIXLpLivZL+JgjDTv6dhBG0=; h=Subject:To:From:Date:From; b=JJne8+bfY2NSG8VrD824M4IJ8EgiAlISca2MyYSfgI01cIZDjdxbuZe/0WJTNdpMg EWcFruwOL+O46avUaicGEHHKZKKmy2nfvGoahIpmWzY8wJRjbfpYdlknooJR3wOE7t Hsx8HMDdndthYYjalE+RdWT/NZaJrRWNgMsPfT8NdlukFaT/ZpPEXOLIWfX0acrNr4 ZwERxsiAGhr8f7Sl5z1mTiU94k0lXkw6j/N2s8XEc8BKefyqbWzwYCkjFQmCAie1lw MSpAAIcvEhYlTAxGJKt4hLordus1yq28Jyiru6TF0eVCsn67gJmZS128CYiscODPZH y3csi0cMFNL7Q== Subject: Re: svn commit: r351200 - in head/sys: amd64/amd64 dev/acpica To: Jeff Roberson , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201908182344.x7INiN3M039113@repo.freebsd.org> From: Andrew Gallatin Message-ID: Date: Mon, 19 Aug 2019 08:41:59 -0400 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <201908182344.x7INiN3M039113@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 46Btpx2Ttdz3Hbw X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.91 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.91)[-0.906,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 12:42:01 -0000 On 2019-08-18 19:44, Jeff Roberson wrote: > Author: jeff > Date: Sun Aug 18 23:44:23 2019 > New Revision: 351200 <..> > Log: > Allocate all per-cpu datastructures in domain correct memory. > > Reviewed by: kib, gallatin (some objections) No objection to what you actually committed. The only objection was this issues I found on non-NUMA, which you fixed in the committed code. Thanks! Drew From owner-svn-src-all@freebsd.org Mon Aug 19 12:42:04 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9339EC5675; Mon, 19 Aug 2019 12:42:04 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Btq035cMz3HcW; Mon, 19 Aug 2019 12:42:04 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4A5B71ABA9; Mon, 19 Aug 2019 12:42:04 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JCg4KC005303; Mon, 19 Aug 2019 12:42:04 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JCg4Gu005302; Mon, 19 Aug 2019 12:42:04 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201908191242.x7JCg4Gu005302@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 19 Aug 2019 12:42:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351214 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: ae X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 351214 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 12:42:04 -0000 Author: ae Date: Mon Aug 19 12:42:03 2019 New Revision: 351214 URL: https://svnweb.freebsd.org/changeset/base/351214 Log: Use TAILQ_FOREACH_SAFE() macro to avoid use after free in soclose(). PR: 239893 MFC after: 1 week Modified: head/sys/kern/uipc_socket.c Modified: head/sys/kern/uipc_socket.c ============================================================================== --- head/sys/kern/uipc_socket.c Mon Aug 19 11:18:36 2019 (r351213) +++ head/sys/kern/uipc_socket.c Mon Aug 19 12:42:03 2019 (r351214) @@ -1131,9 +1131,9 @@ drop: so->so_state |= SS_NOFDREF; sorele(so); if (listening) { - struct socket *sp; + struct socket *sp, *tsp; - TAILQ_FOREACH(sp, &lqueue, so_list) { + TAILQ_FOREACH_SAFE(sp, &lqueue, so_list, tsp) { SOCK_LOCK(sp); if (sp->so_count == 0) { SOCK_UNLOCK(sp); From owner-svn-src-all@freebsd.org Mon Aug 19 14:11:55 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 63FFCC7B02; Mon, 19 Aug 2019 14:11:55 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Bwpg1vc5z3NGg; Mon, 19 Aug 2019 14:11:55 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 232AA1BC1A; Mon, 19 Aug 2019 14:11:55 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JEBtdE058101; Mon, 19 Aug 2019 14:11:55 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JEBtmj058100; Mon, 19 Aug 2019 14:11:55 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201908191411.x7JEBtmj058100@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 19 Aug 2019 14:11:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351215 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 351215 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 14:11:55 -0000 Author: mjg Date: Mon Aug 19 14:11:54 2019 New Revision: 351215 URL: https://svnweb.freebsd.org/changeset/base/351215 Log: vfs: fix up r351193 ("stop always overwriting ->mnt_stat in VFS_STATFS") fs-specific part of vfs_statfs routines only fill in small portion of the structure. Previous code was always copying everything at a higher layer to acoomodate it and this patch does the same. 'df' (no arguments) worked fine because the caller uses mnt_stat itself as the target buffer, making all the copying a no-op for its own case. 'df /' and similar use a different consumer which passes its own buffer and this is where you can run into trouble. Reported by: cy Fixes: r351193 Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/vfs_mount.c Modified: head/sys/kern/vfs_mount.c ============================================================================== --- head/sys/kern/vfs_mount.c Mon Aug 19 12:42:03 2019 (r351214) +++ head/sys/kern/vfs_mount.c Mon Aug 19 14:11:54 2019 (r351215) @@ -1833,6 +1833,12 @@ __vfs_statfs(struct mount *mp, struct statfs *sbp) { /* + * Filesystems only fill in part of the structure for updates, we + * have to read the entirety first to get all content. + */ + memcpy(sbp, &mp->mnt_stat, sizeof(*sbp)); + + /* * Set these in case the underlying filesystem fails to do so. */ sbp->f_version = STATFS_VERSION; From owner-svn-src-all@freebsd.org Mon Aug 19 14:20:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3D99AC7F14; Mon, 19 Aug 2019 14:20:27 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Bx0W0sl0z3Nwr; Mon, 19 Aug 2019 14:20:27 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F36291BD82; Mon, 19 Aug 2019 14:20:26 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JEKQEm060831; Mon, 19 Aug 2019 14:20:26 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JEKQWH060830; Mon, 19 Aug 2019 14:20:26 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908191420.x7JEKQWH060830@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 19 Aug 2019 14:20:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351216 - head/sbin/ping6 X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/sbin/ping6 X-SVN-Commit-Revision: 351216 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 14:20:27 -0000 Author: asomers Date: Mon Aug 19 14:20:26 2019 New Revision: 351216 URL: https://svnweb.freebsd.org/changeset/base/351216 Log: ping6: revert r350857 Some socket options require root privileges to set. The old code did indeed drop privileges at the earliest opportunity. Submitted by: Ján Sučan MFC after: Never Sponsored by: Google, Inc. (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21319 Modified: head/sbin/ping6/ping6.c Modified: head/sbin/ping6/ping6.c ============================================================================== --- head/sbin/ping6/ping6.c Mon Aug 19 14:11:54 2019 (r351215) +++ head/sbin/ping6/ping6.c Mon Aug 19 14:20:26 2019 (r351216) @@ -663,12 +663,6 @@ main(int argc, char *argv[]) err(1, "socket srecv"); freeaddrinfo(res); - /* revoke root privilege */ - if (seteuid(getuid()) != 0) - err(1, "seteuid() failed"); - if (setuid(getuid()) != 0) - err(1, "setuid() failed"); - /* set the source address if specified. */ if ((options & F_SRCADDR) != 0) { /* properly fill sin6_scope_id */ @@ -738,6 +732,12 @@ main(int argc, char *argv[]) err(1, "setsockopt(IPV6_RECVRTHDRDSTOPTS)"); #endif } + + /* revoke root privilege */ + if (seteuid(getuid()) != 0) + err(1, "seteuid() failed"); + if (setuid(getuid()) != 0) + err(1, "setuid() failed"); if ((options & F_FLOOD) && (options & F_INTERVAL)) errx(1, "-f and -i incompatible options"); From owner-svn-src-all@freebsd.org Mon Aug 19 14:28:55 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 27C77C8204; Mon, 19 Aug 2019 14:28:55 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BxBH0GbLz3PPx; Mon, 19 Aug 2019 14:28:55 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DA9791BF3A; Mon, 19 Aug 2019 14:28:54 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JESseq067072; Mon, 19 Aug 2019 14:28:54 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JESsvn067071; Mon, 19 Aug 2019 14:28:54 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201908191428.x7JESsvn067071@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Mon, 19 Aug 2019 14:28:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351217 - head/sys/arm/mv X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/mv X-SVN-Commit-Revision: 351217 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 14:28:55 -0000 Author: manu Date: Mon Aug 19 14:28:54 2019 New Revision: 351217 URL: https://svnweb.freebsd.org/changeset/base/351217 Log: arm64: a37x0_gpio: Use syscon instead of MMIO region The fdt node for this driver is a simple-mfd and syscon compatible one meaning that simplemfd will be the driver attached for it. The gpio driver is attached to the 'gpio' subnode so use syscon_get_handle_default to obtain the handle of the syscon from the parent device and use this to read/write to the memory region. MFC after: 1 week Modified: head/sys/arm/mv/a37x0_gpio.c Modified: head/sys/arm/mv/a37x0_gpio.c ============================================================================== --- head/sys/arm/mv/a37x0_gpio.c Mon Aug 19 14:20:26 2019 (r351216) +++ head/sys/arm/mv/a37x0_gpio.c Mon Aug 19 14:28:54 2019 (r351217) @@ -46,21 +46,14 @@ __FBSDID("$FreeBSD$"); #include #include "gpio_if.h" +#include "syscon_if.h" -static struct resource_spec a37x0_gpio_res_spec[] = { - { SYS_RES_MEMORY, 0, RF_ACTIVE }, /* Pinctl / GPIO */ - { SYS_RES_MEMORY, 1, RF_ACTIVE }, /* Interrupts control */ - { -1, 0, 0 } -}; - struct a37x0_gpio_softc { - bus_space_tag_t sc_bst; - bus_space_handle_t sc_bsh; device_t sc_busdev; int sc_type; uint32_t sc_max_pins; uint32_t sc_npins; - struct resource *sc_mem_res[nitems(a37x0_gpio_res_spec) - 1]; + struct syscon *syscon; }; /* Memory regions. */ @@ -72,9 +65,9 @@ struct a37x0_gpio_softc { #define A37X0_SB_GPIO 2 #define A37X0_GPIO_WRITE(_sc, _off, _val) \ - bus_space_write_4((_sc)->sc_bst, (_sc)->sc_bsh, (_off), (_val)) + SYSCON_WRITE_4((_sc)->syscon, (_off), (_val)) #define A37X0_GPIO_READ(_sc, _off) \ - bus_space_read_4((_sc)->sc_bst, (_sc)->sc_bsh, (_off)) + SYSCON_READ_4((_sc)->syscon, (_off)) #define A37X0_GPIO_BIT(_p) (1U << ((_p) % 32)) #define A37X0_GPIO_OUT_EN(_p) (0x0 + ((_p) / 32) * 4) @@ -280,6 +273,12 @@ a37x0_gpio_attach(device_t dev) sc = device_get_softc(dev); + err = syscon_get_handle_default(dev, &sc->syscon); + if (err != 0) { + device_printf(dev, "Cannot get syscon handle from parent\n"); + return (ENXIO); + } + /* Read and verify the "gpio-ranges" property. */ ncells = OF_getencprop_alloc(ofw_bus_get_node(dev), "gpio-ranges", (void **)&ranges); @@ -295,14 +294,6 @@ a37x0_gpio_attach(device_t dev) /* Check the number of pins in the DTS vs HW capabilities. */ if (sc->sc_npins > sc->sc_max_pins) return (ENXIO); - - err = bus_alloc_resources(dev, a37x0_gpio_res_spec, sc->sc_mem_res); - if (err != 0) { - device_printf(dev, "cannot allocate memory window\n"); - return (ENXIO); - } - sc->sc_bst = rman_get_bustag(sc->sc_mem_res[A37X0_GPIO]); - sc->sc_bsh = rman_get_bushandle(sc->sc_mem_res[A37X0_GPIO]); sc->sc_busdev = gpiobus_attach_bus(dev); if (sc->sc_busdev == NULL) From owner-svn-src-all@freebsd.org Mon Aug 19 14:33:22 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C78F5C84C2; Mon, 19 Aug 2019 14:33:22 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46BxHQ4nbTz3Ps8; Mon, 19 Aug 2019 14:33:22 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8757C1C0F6; Mon, 19 Aug 2019 14:33:22 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JEXMID072566; Mon, 19 Aug 2019 14:33:22 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JEXM56072565; Mon, 19 Aug 2019 14:33:22 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201908191433.x7JEXM56072565@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Mon, 19 Aug 2019 14:33:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351218 - head/sys/arm/ti X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/ti X-SVN-Commit-Revision: 351218 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 14:33:22 -0000 Author: manu Date: Mon Aug 19 14:33:22 2019 New Revision: 351218 URL: https://svnweb.freebsd.org/changeset/base/351218 Log: ti: sdhci: Correct voltage caps ti,dual-volt property say that the eMMC support 1.8V and 3.3V not 3.0V Use the correct caps for the mmc stack. Note that the MMCHS_SD_CAPA register can only be written once after bootup so if one is using a u-boot compiled with eMMC support (this is the default) this code is a no-op but just in case someone have u-boot compiled without eMMC support this make eMMC works when the kernel is booted. MFC after: 1 week Modified: head/sys/arm/ti/ti_sdhci.c Modified: head/sys/arm/ti/ti_sdhci.c ============================================================================== --- head/sys/arm/ti/ti_sdhci.c Mon Aug 19 14:28:54 2019 (r351217) +++ head/sys/arm/ti/ti_sdhci.c Mon Aug 19 14:33:22 2019 (r351218) @@ -482,15 +482,14 @@ ti_sdhci_hw_init(device_t dev) * The attach() routine has examined fdt data and set flags in * slot.host.caps to reflect what voltages we can handle. Set those * values in the CAPA register. The manual says that these values can - * only be set once, "before initialization" whatever that means, and - * that they survive a reset. So maybe doing this will be a no-op if - * u-boot has already initialized the hardware. + * only be set once, and that they survive a reset so unless u-boot didn't + * set this register this code is a no-op. */ regval = ti_mmchs_read_4(sc, MMCHS_SD_CAPA); if (sc->slot.host.caps & MMC_OCR_LOW_VOLTAGE) regval |= MMCHS_SD_CAPA_VS18; - if (sc->slot.host.caps & (MMC_OCR_290_300 | MMC_OCR_300_310)) - regval |= MMCHS_SD_CAPA_VS30; + if (sc->slot.host.caps & (MMC_OCR_320_330 | MMC_OCR_330_340)) + regval |= MMCHS_SD_CAPA_VS33; ti_mmchs_write_4(sc, MMCHS_SD_CAPA, regval); /* Set initial host configuration (1-bit, std speed, pwr off). */ @@ -524,17 +523,20 @@ ti_sdhci_attach(device_t dev) } /* - * The hardware can inherently do dual-voltage (1p8v, 3p0v) on the first + * The hardware can inherently do dual-voltage (1p8v, 3p3v) on the first * device, and only 1p8v on other devices unless an external transceiver * is used. The only way we could know about a transceiver is fdt data. * Note that we have to do this before calling ti_sdhci_hw_init() so * that it can set the right values in the CAPA register, which can only * be done once and never reset. */ - sc->slot.host.caps |= MMC_OCR_LOW_VOLTAGE; - if (sc->mmchs_clk_id == MMC1_CLK || OF_hasprop(node, "ti,dual-volt")) { - sc->slot.host.caps |= MMC_OCR_290_300 | MMC_OCR_300_310; - } + if (OF_hasprop(node, "ti,dual-volt")) { + sc->slot.host.caps |= MMC_OCR_LOW_VOLTAGE | MMC_OCR_320_330 | MMC_OCR_330_340; + } else if (OF_hasprop(node, "no-1-8-v")) { + sc->slot.host.caps |= MMC_OCR_320_330 | MMC_OCR_330_340; + } else + sc->slot.host.caps |= MMC_OCR_LOW_VOLTAGE; + /* * Set the offset from the device's memory start to the MMCHS registers. From owner-svn-src-all@freebsd.org Mon Aug 19 16:29:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A0F35CAC23; Mon, 19 Aug 2019 16:29:52 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Bzsr3nlxz413m; Mon, 19 Aug 2019 16:29:52 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 49C071D4E4; Mon, 19 Aug 2019 16:29:52 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JGTq00046808; Mon, 19 Aug 2019 16:29:52 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JGTqHq046807; Mon, 19 Aug 2019 16:29:52 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908191629.x7JGTqHq046807@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 19 Aug 2019 16:29:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351219 - head/sys/netinet/netdump X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/netinet/netdump X-SVN-Commit-Revision: 351219 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 16:29:52 -0000 Author: markj Date: Mon Aug 19 16:29:51 2019 New Revision: 351219 URL: https://svnweb.freebsd.org/changeset/base/351219 Log: Fix netdump buffering after r348473. nd_buf is used to buffer headers (for both the kernel dump itself and for EKCD) before the final call to netdump_dumper(), which flushes residual data in nd_buf. As a result, a small portion of the residual data would be corrupted. This manifests when kernel dump compression is enabled since both zstd and zlib detect the corruption during decompression. Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D21294 Modified: head/sys/netinet/netdump/netdump_client.c Modified: head/sys/netinet/netdump/netdump_client.c ============================================================================== --- head/sys/netinet/netdump/netdump_client.c Mon Aug 19 14:33:22 2019 (r351218) +++ head/sys/netinet/netdump/netdump_client.c Mon Aug 19 16:29:51 2019 (r351219) @@ -923,6 +923,24 @@ netdump_network_poll(void) */ /* + * Flush any buffered vmcore data. + */ +static int +netdump_flush_buf(void) +{ + int error; + + error = 0; + if (nd_conf.nd_buf_len != 0) { + error = netdump_send(NETDUMP_VMCORE, nd_conf.nd_tx_off, + nd_buf, nd_conf.nd_buf_len); + if (error == 0) + nd_conf.nd_buf_len = 0; + } + return (error); +} + +/* * Callback from dumpsys() to dump a chunk of memory. * Copies it out to our static buffer then sends it across the network. * Detects the initial KDH and makes sure it is given a special packet type. @@ -948,13 +966,9 @@ netdump_dumper(void *priv __unused, void *virtual, virtual, (uintmax_t)offset, length); if (virtual == NULL) { - if (nd_conf.nd_buf_len != 0) { - error = netdump_send(NETDUMP_VMCORE, nd_conf.nd_tx_off, nd_buf, - nd_conf.nd_buf_len); - if (error != 0) { - dump_failed = 1; - } - } + error = netdump_flush_buf(); + if (error != 0) + dump_failed = 1; if (dump_failed != 0) printf("failed to dump the kernel core\n"); @@ -968,16 +982,14 @@ netdump_dumper(void *priv __unused, void *virtual, if (length > sizeof(nd_buf)) return (ENOSPC); - if (nd_conf.nd_buf_len + length > sizeof(nd_buf) || - (nd_conf.nd_buf_len != 0 && nd_conf.nd_tx_off + + if (nd_conf.nd_buf_len + length > sizeof(nd_buf) || + (nd_conf.nd_buf_len != 0 && nd_conf.nd_tx_off + nd_conf.nd_buf_len != offset)) { - error = netdump_send(NETDUMP_VMCORE, nd_conf.nd_tx_off, nd_buf, - nd_conf.nd_buf_len); + error = netdump_flush_buf(); if (error != 0) { dump_failed = 1; return (error); } - nd_conf.nd_buf_len = 0; nd_conf.nd_tx_off = offset; } @@ -1078,6 +1090,9 @@ netdump_write_headers(struct dumperinfo *di, struct ke { int error; + error = netdump_flush_buf(); + if (error != 0) + return (error); memcpy(nd_buf, kdh, sizeof(*kdh)); error = netdump_send(NETDUMP_KDH, 0, nd_buf, sizeof(*kdh)); if (error == 0 && keysize > 0) { From owner-svn-src-all@freebsd.org Mon Aug 19 17:23:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 46E68CC295; Mon, 19 Aug 2019 17:23:23 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C13b17gnz44Cc; Mon, 19 Aug 2019 17:23:23 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 083A31E01E; Mon, 19 Aug 2019 17:23:23 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JHNML1082143; Mon, 19 Aug 2019 17:23:22 GMT (envelope-from vmaffione@FreeBSD.org) Received: (from vmaffione@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JHNM8n082142; Mon, 19 Aug 2019 17:23:22 GMT (envelope-from vmaffione@FreeBSD.org) Message-Id: <201908191723.x7JHNM8n082142@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vmaffione set sender to vmaffione@FreeBSD.org using -f From: Vincenzo Maffione Date: Mon, 19 Aug 2019 17:23:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351220 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: vmaffione X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 351220 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 17:23:23 -0000 Author: vmaffione Date: Mon Aug 19 17:23:22 2019 New Revision: 351220 URL: https://svnweb.freebsd.org/changeset/base/351220 Log: if_tuntap: minor improvements Rewrite a loop to avoid duplicating the exit condition. Simplify mask processing in tunpoll(). Fix minor typos. Reviewed by: kevans, markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D21302 Modified: head/sys/net/if_tuntap.c Modified: head/sys/net/if_tuntap.c ============================================================================== --- head/sys/net/if_tuntap.c Mon Aug 19 16:29:51 2019 (r351219) +++ head/sys/net/if_tuntap.c Mon Aug 19 17:23:22 2019 (r351220) @@ -110,7 +110,6 @@ struct tuntap_softc { u_short tun_flags; /* misc flags */ #define TUN_OPEN 0x0001 #define TUN_INITED 0x0002 -#define TUN_RCOLL 0x0004 #define TUN_IASET 0x0008 #define TUN_DSTADDR 0x0010 #define TUN_LMODE 0x0020 @@ -168,9 +167,9 @@ SX_SYSINIT(tun_ioctl_sx, &tun_ioctl_sx, "tun_ioctl"); SYSCTL_DECL(_net_link); /* tun */ static SYSCTL_NODE(_net_link, OID_AUTO, tun, CTLFLAG_RW, 0, - "IP tunnel software network interface."); + "IP tunnel software network interface"); SYSCTL_INT(_net_link_tun, OID_AUTO, devfs_cloning, CTLFLAG_RWTUN, &tundclone, 0, - "Enable legacy devfs interface creation."); + "Enable legacy devfs interface creation"); /* tap */ static SYSCTL_NODE(_net_link, OID_AUTO, tap, CTLFLAG_RW, 0, @@ -442,7 +441,7 @@ tun_clone_create(struct if_clone *ifc, char *name, siz return (ENXIO); if (unit != -1) { - /* If this unit number is still available that/s okay. */ + /* If this unit number is still available that's okay. */ if (alloc_unr_specific(drv->unrhdr, unit) == -1) return (EEXIST); } else { @@ -1435,22 +1434,22 @@ tunread(struct cdev *dev, struct uio *uio, int flag) tp->tun_flags &= ~TUN_RWAIT; - do { + for (;;) { IFQ_DEQUEUE(&ifp->if_snd, m); - if (m == NULL) { - if (flag & O_NONBLOCK) { - TUN_UNLOCK(tp); - return (EWOULDBLOCK); - } - tp->tun_flags |= TUN_RWAIT; - error = mtx_sleep(tp, &tp->tun_mtx, PCATCH | (PZERO + 1), - "tunread", 0); - if (error != 0) { - TUN_UNLOCK(tp); - return (error); - } + if (m != NULL) + break; + if (flag & O_NONBLOCK) { + TUN_UNLOCK(tp); + return (EWOULDBLOCK); } - } while (m == NULL); + tp->tun_flags |= TUN_RWAIT; + error = mtx_sleep(tp, &tp->tun_mtx, PCATCH | (PZERO + 1), + "tunread", 0); + if (error != 0) { + TUN_UNLOCK(tp); + return (error); + } + } TUN_UNLOCK(tp); if ((tp->tun_flags & TUN_L2) != 0) @@ -1629,8 +1628,7 @@ tunpoll(struct cdev *dev, int events, struct thread *t } IFQ_UNLOCK(&ifp->if_snd); } - if (events & (POLLOUT | POLLWRNORM)) - revents |= events & (POLLOUT | POLLWRNORM); + revents |= events & (POLLOUT | POLLWRNORM); return (revents); } From owner-svn-src-all@freebsd.org Mon Aug 19 17:26:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5BFEBCC33D; Mon, 19 Aug 2019 17:26:05 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C16j1phbz44MN; Mon, 19 Aug 2019 17:26:05 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1FFFC1E028; Mon, 19 Aug 2019 17:26:05 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JHQ5s1082328; Mon, 19 Aug 2019 17:26:05 GMT (envelope-from vmaffione@FreeBSD.org) Received: (from vmaffione@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JHQ4qk082327; Mon, 19 Aug 2019 17:26:04 GMT (envelope-from vmaffione@FreeBSD.org) Message-Id: <201908191726.x7JHQ4qk082327@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vmaffione set sender to vmaffione@FreeBSD.org using -f From: Vincenzo Maffione Date: Mon, 19 Aug 2019 17:26:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351221 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: vmaffione X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 351221 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 17:26:05 -0000 Author: vmaffione Date: Mon Aug 19 17:26:04 2019 New Revision: 351221 URL: https://svnweb.freebsd.org/changeset/base/351221 Log: link ptnet(4) man page to the build system Reported by: kevans Reviewed by: kevans, bcr MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D21312 Modified: head/share/man/man4/Makefile Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Mon Aug 19 17:23:22 2019 (r351220) +++ head/share/man/man4/Makefile Mon Aug 19 17:26:04 2019 (r351221) @@ -412,6 +412,7 @@ MAN= aac.4 \ psm.4 \ pst.4 \ pt.4 \ + ptnet.4 \ pts.4 \ pty.4 \ puc.4 \ @@ -691,6 +692,7 @@ MLINKS+=pccbb.4 cbb.4 MLINKS+=pcm.4 snd.4 \ pcm.4 sound.4 MLINKS+=pms.4 pmspcv.4 +MLINKS+=ptnet.4 if_ptnet.4 MLINKS+=ral.4 if_ral.4 MLINKS+=re.4 if_re.4 MLINKS+=rl.4 if_rl.4 From owner-svn-src-all@freebsd.org Mon Aug 19 17:27:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6D3FDCC448; Mon, 19 Aug 2019 17:27:07 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C17v2DMLz44d6; Mon, 19 Aug 2019 17:27:07 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2E1711E02F; Mon, 19 Aug 2019 17:27:07 +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 x7JHR7dE082532; Mon, 19 Aug 2019 17:27:07 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JHR6W1082530; Mon, 19 Aug 2019 17:27:06 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908191727.x7JHR6W1082530@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 19 Aug 2019 17:27:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351222 - in stable: 11/share/man/man9 12/share/man/man9 X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/share/man/man9 12/share/man/man9 X-SVN-Commit-Revision: 351222 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 17:27:07 -0000 Author: jhb Date: Mon Aug 19 17:27:06 2019 New Revision: 351222 URL: https://svnweb.freebsd.org/changeset/base/351222 Log: MFC 348969: Document sysctl nodes that translate their values. This documents the behavior of sysctl_msec_to_ticks. The MFC does not document SYSCTL_{ADD,}_SBINTIME_[UM]SEC since those are only present in head. Modified: stable/12/share/man/man9/Makefile stable/12/share/man/man9/sysctl.9 Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/share/man/man9/Makefile stable/11/share/man/man9/sysctl.9 Directory Properties: stable/11/ (props changed) Modified: stable/12/share/man/man9/Makefile ============================================================================== --- stable/12/share/man/man9/Makefile Mon Aug 19 17:26:04 2019 (r351221) +++ stable/12/share/man/man9/Makefile Mon Aug 19 17:27:06 2019 (r351222) @@ -2021,6 +2021,7 @@ MLINKS+=sysctl.9 SYSCTL_DECL.9 \ sysctl.9 SYSCTL_INT.9 \ sysctl.9 SYSCTL_INT_WITH_LABEL.9 \ sysctl.9 SYSCTL_LONG.9 \ + sysctl.9 sysctl_msec_to_ticks.9 \ sysctl.9 SYSCTL_NODE.9 \ sysctl.9 SYSCTL_NODE_WITH_LABEL.9 \ sysctl.9 SYSCTL_OPAQUE.9 \ Modified: stable/12/share/man/man9/sysctl.9 ============================================================================== --- stable/12/share/man/man9/sysctl.9 Mon Aug 19 17:26:04 2019 (r351221) +++ stable/12/share/man/man9/sysctl.9 Mon Aug 19 17:27:06 2019 (r351222) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 1, 2018 +.Dd June 11, 2019 .Dt SYSCTL 9 .Os .Sh NAME @@ -60,6 +60,7 @@ .Nm SYSCTL_INT , .Nm SYSCTL_INT_WITH_LABEL , .Nm SYSCTL_LONG , +.Nm sysctl_msec_to_ticks , .Nm SYSCTL_NODE , .Nm SYSCTL_NODE_WITH_LABEL , .Nm SYSCTL_OPAQUE , @@ -352,6 +353,8 @@ .Fn SYSCTL_INT parent number name ctlflags ptr val descr .Fn SYSCTL_INT_WITH_LABEL parent number name ctlflags ptr val descr label .Fn SYSCTL_LONG parent number name ctlflags ptr val descr +.Ft int +.Fn sysctl_msec_to_ticks SYSCTL_HANDLER_ARGS .Fn SYSCTL_NODE parent number name ctlflags handler descr .Fn SYSCTL_NODE_WITH_LABEL parent number name ctlflags handler descr label .Fn SYSCTL_OPAQUE parent number name ctlflags ptr len format descr @@ -372,6 +375,7 @@ .Fn SYSCTL_UINT parent number name ctlflags ptr val descr .Fn SYSCTL_ULONG parent number name ctlflags ptr val descr .Fn SYSCTL_UQUAD parent number name ctlflags ptr val descr + .Sh DESCRIPTION The .Nm SYSCTL @@ -501,6 +505,38 @@ Labels should only be applied to siblings that are str and encode the same type of value, as aggregation is of no use otherwise. .El +.Sh NODE VALUE TYPES +Most of the macros and functions used to create sysctl nodes export a +read-only constant or in-kernel variable whose type matches the type +of the node's value. +For example, +.Fn SYSCTL_INT +reports the raw value of an associated variable of type +.Vt int . +However, nodes may also export a value that is a translatation of an internal +representation. +.Pp +The +.Fn sysctl_msec_to_ticks +handler can be used with +.Fn SYSCTL_PROC +or +.Fn SYSCTL_ADD_PROC +to export a millisecond time interval. +When using this handler, +the +.Fa arg2 +parameter points to an in-kernel variable of type +.Vt int +which stores a tick count suitable for use with functions like +.Xr tsleep 9 . +The +.Fn sysctl_msec_to_ticks +function converts this value to milliseconds when reporting the node's value. +Similarly, +.Fn sysctl_msec_to_ticks +accepts new values in milliseconds and stores an equivalent value in ticks to +.Fa *arg2 . .Sh CREATING ROOT NODES Sysctl MIBs or OIDs are created in a hierarchical tree. The nodes at the bottom of the tree are called root nodes, and have no From owner-svn-src-all@freebsd.org Mon Aug 19 17:27:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 19ED1CC44D; Mon, 19 Aug 2019 17:27:08 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C17v6nDJz44d7; Mon, 19 Aug 2019 17:27:07 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CA4AD1E030; Mon, 19 Aug 2019 17:27:07 +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 x7JHR7p8082539; Mon, 19 Aug 2019 17:27:07 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JHR70h082537; Mon, 19 Aug 2019 17:27:07 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908191727.x7JHR70h082537@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 19 Aug 2019 17:27:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351222 - in stable: 11/share/man/man9 12/share/man/man9 X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/share/man/man9 12/share/man/man9 X-SVN-Commit-Revision: 351222 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 17:27:08 -0000 Author: jhb Date: Mon Aug 19 17:27:06 2019 New Revision: 351222 URL: https://svnweb.freebsd.org/changeset/base/351222 Log: MFC 348969: Document sysctl nodes that translate their values. This documents the behavior of sysctl_msec_to_ticks. The MFC does not document SYSCTL_{ADD,}_SBINTIME_[UM]SEC since those are only present in head. Modified: stable/11/share/man/man9/Makefile stable/11/share/man/man9/sysctl.9 Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/share/man/man9/Makefile stable/12/share/man/man9/sysctl.9 Directory Properties: stable/12/ (props changed) Modified: stable/11/share/man/man9/Makefile ============================================================================== --- stable/11/share/man/man9/Makefile Mon Aug 19 17:26:04 2019 (r351221) +++ stable/11/share/man/man9/Makefile Mon Aug 19 17:27:06 2019 (r351222) @@ -1772,6 +1772,7 @@ MLINKS+=sysctl.9 SYSCTL_DECL.9 \ sysctl.9 SYSCTL_PARENT.9 \ sysctl.9 SYSCTL_INT.9 \ sysctl.9 SYSCTL_LONG.9 \ + sysctl.9 sysctl_msec_to_ticks.9 \ sysctl.9 SYSCTL_NODE.9 \ sysctl.9 SYSCTL_OPAQUE.9 \ sysctl.9 SYSCTL_PROC.9 \ Modified: stable/11/share/man/man9/sysctl.9 ============================================================================== --- stable/11/share/man/man9/sysctl.9 Mon Aug 19 17:26:04 2019 (r351221) +++ stable/11/share/man/man9/sysctl.9 Mon Aug 19 17:27:06 2019 (r351222) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 16, 2017 +.Dd June 11, 2019 .Dt SYSCTL 9 .Os .Sh NAME @@ -58,6 +58,7 @@ .Nm SYSCTL_PARENT , .Nm SYSCTL_INT , .Nm SYSCTL_LONG , +.Nm sysctl_msec_to_ticks , .Nm SYSCTL_NODE , .Nm SYSCTL_OPAQUE , .Nm SYSCTL_PROC , @@ -337,6 +338,8 @@ .Fc .Fn SYSCTL_INT parent number name ctlflags ptr val descr .Fn SYSCTL_LONG parent number name ctlflags ptr val descr +.Ft int +.Fn sysctl_msec_to_ticks SYSCTL_HANDLER_ARGS .Fn SYSCTL_NODE parent number name ctlflags handler descr .Fn SYSCTL_OPAQUE parent number name ctlflags ptr len format descr .Fn SYSCTL_PROC parent number name ctlflags arg1 arg2 handler format descr @@ -356,6 +359,7 @@ .Fn SYSCTL_UINT parent number name ctlflags ptr val descr .Fn SYSCTL_ULONG parent number name ctlflags ptr val descr .Fn SYSCTL_UQUAD parent number name ctlflags ptr val descr + .Sh DESCRIPTION The .Nm SYSCTL @@ -473,6 +477,38 @@ structures .It Fa descr A pointer to a textual description of the OID. .El +.Sh NODE VALUE TYPES +Most of the macros and functions used to create sysctl nodes export a +read-only constant or in-kernel variable whose type matches the type +of the node's value. +For example, +.Fn SYSCTL_INT +reports the raw value of an associated variable of type +.Vt int . +However, nodes may also export a value that is a translatation of an internal +representation. +.Pp +The +.Fn sysctl_msec_to_ticks +handler can be used with +.Fn SYSCTL_PROC +or +.Fn SYSCTL_ADD_PROC +to export a millisecond time interval. +When using this handler, +the +.Fa arg2 +parameter points to an in-kernel variable of type +.Vt int +which stores a tick count suitable for use with functions like +.Xr tsleep 9 . +The +.Fn sysctl_msec_to_ticks +function converts this value to milliseconds when reporting the node's value. +Similarly, +.Fn sysctl_msec_to_ticks +accepts new values in milliseconds and stores an equivalent value in ticks to +.Fa *arg2 . .Sh CREATING ROOT NODES Sysctl MIBs or OIDs are created in a hierarchical tree. The nodes at the bottom of the tree are called root nodes, and have no From owner-svn-src-all@freebsd.org Mon Aug 19 17:28:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 86D7ECC551; Mon, 19 Aug 2019 17:28:13 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C199331Mz44sc; Mon, 19 Aug 2019 17:28:13 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4A24E1E032; Mon, 19 Aug 2019 17:28:13 +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 x7JHSDA6082683; Mon, 19 Aug 2019 17:28:13 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JHSDDp082682; Mon, 19 Aug 2019 17:28:13 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908191728.x7JHSDDp082682@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 19 Aug 2019 17:28:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351224 - head/share/man/man9 X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/share/man/man9 X-SVN-Commit-Revision: 351224 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 17:28:13 -0000 Author: jhb Date: Mon Aug 19 17:28:12 2019 New Revision: 351224 URL: https://svnweb.freebsd.org/changeset/base/351224 Log: Trim a spurious blank line I added in r348969. I did not bump .Dd since there is no content change. MFC after: 3 days Modified: head/share/man/man9/sysctl.9 Modified: head/share/man/man9/sysctl.9 ============================================================================== --- head/share/man/man9/sysctl.9 Mon Aug 19 17:28:12 2019 (r351223) +++ head/share/man/man9/sysctl.9 Mon Aug 19 17:28:12 2019 (r351224) @@ -482,7 +482,6 @@ .Fn SYSCTL_UQUAD parent number name ctlflags ptr val descr .Fn SYSCTL_UMA_MAX parent number name ctlflags ptr descr .Fn SYSCTL_UMA_CUR parent number name ctlflags ptr descr - .Sh DESCRIPTION The .Nm SYSCTL From owner-svn-src-all@freebsd.org Mon Aug 19 17:28:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3FA86CC54D; Mon, 19 Aug 2019 17:28:13 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C1990v0Tz44sb; Mon, 19 Aug 2019 17:28:13 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 016551E031; Mon, 19 Aug 2019 17:28:13 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JHSCWa082673; Mon, 19 Aug 2019 17:28:12 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JHSC7l082672; Mon, 19 Aug 2019 17:28:12 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908191728.x7JHSC7l082672@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 19 Aug 2019 17:28:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351223 - head/sbin/ping X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/sbin/ping X-SVN-Commit-Revision: 351223 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 17:28:13 -0000 Author: asomers Date: Mon Aug 19 17:28:12 2019 New Revision: 351223 URL: https://svnweb.freebsd.org/changeset/base/351223 Log: ping: fix -Wformat-truncating warning with GCC Increase buffer size for the string representation of n_time ICMP timestamp is a 32-bit number. In pr_ntime(), number of minutes and seconds is always 2 characters wide. Max. number of hours is 4 characters wide. The buffer size should be at least: 4 + 2 + 2 + 1 (':') + 1 (':') + 1 ('\0') = 11 Submitted by: Ján Sučan MFC after: 2 weeks Sponsored by: Google, inc. (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21325 Modified: head/sbin/ping/ping.c Modified: head/sbin/ping/ping.c ============================================================================== --- head/sbin/ping/ping.c Mon Aug 19 17:27:06 2019 (r351222) +++ head/sbin/ping/ping.c Mon Aug 19 17:28:12 2019 (r351223) @@ -1661,7 +1661,7 @@ pr_retip(struct ip *ip) static char * pr_ntime(n_time timestamp) { - static char buf[10]; + static char buf[11]; int hour, min, sec; sec = ntohl(timestamp) / 1000; From owner-svn-src-all@freebsd.org Mon Aug 19 17:51:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 00A24CCD5F; Mon, 19 Aug 2019 17:51:07 +0000 (UTC) (envelope-from scottph@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C1gZ6FYhz46Kd; Mon, 19 Aug 2019 17:51:06 +0000 (UTC) (envelope-from scottph@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B84F81E3FC; Mon, 19 Aug 2019 17:51:06 +0000 (UTC) (envelope-from scottph@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JHp6Ig095525; Mon, 19 Aug 2019 17:51:06 GMT (envelope-from scottph@FreeBSD.org) Received: (from scottph@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JHp6Hi095523; Mon, 19 Aug 2019 17:51:06 GMT (envelope-from scottph@FreeBSD.org) Message-Id: <201908191751.x7JHp6Hi095523@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottph set sender to scottph@FreeBSD.org using -f From: D Scott Phillips Date: Mon, 19 Aug 2019 17:51:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351225 - in head/sys/dev: acpica nvdimm X-SVN-Group: head X-SVN-Commit-Author: scottph X-SVN-Commit-Paths: in head/sys/dev: acpica nvdimm X-SVN-Commit-Revision: 351225 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 17:51:07 -0000 Author: scottph Date: Mon Aug 19 17:51:06 2019 New Revision: 351225 URL: https://svnweb.freebsd.org/changeset/base/351225 Log: Don't set the string "unknown" as a device's location_str Return an empty string when the location is unknown instead of the string "unknown". This ensures that all location entries are of the form key=val. Suggested by: imp Approved by: jhb (mentor) MFC after: 1 week Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D21326 Modified: head/sys/dev/acpica/acpi.c head/sys/dev/nvdimm/nvdimm.c Modified: head/sys/dev/acpica/acpi.c ============================================================================== --- head/sys/dev/acpica/acpi.c Mon Aug 19 17:28:12 2019 (r351224) +++ head/sys/dev/acpica/acpi.c Mon Aug 19 17:51:06 2019 (r351225) @@ -866,7 +866,7 @@ acpi_child_location_str_method(device_t cbdev, device_ strlcat(buf, buf2, buflen); } } else { - snprintf(buf, buflen, "unknown"); + snprintf(buf, buflen, ""); } return (0); } Modified: head/sys/dev/nvdimm/nvdimm.c ============================================================================== --- head/sys/dev/nvdimm/nvdimm.c Mon Aug 19 17:28:12 2019 (r351224) +++ head/sys/dev/nvdimm/nvdimm.c Mon Aug 19 17:51:06 2019 (r351225) @@ -571,7 +571,7 @@ nvdimm_root_child_location_str(device_t dev, device_t if (handle != NULL) res = snprintf(buf, buflen, "handle=%s", acpi_name(handle)); else - res = snprintf(buf, buflen, "unknown"); + res = snprintf(buf, buflen, ""); if (res >= buflen) return (EOVERFLOW); From owner-svn-src-all@freebsd.org Mon Aug 19 17:54:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 743A8CCE28; Mon, 19 Aug 2019 17:54:41 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C1lj2RM1z46gQ; Mon, 19 Aug 2019 17:54:41 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 310271E58E; Mon, 19 Aug 2019 17:54:41 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JHsfkI000663; Mon, 19 Aug 2019 17:54:41 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JHsf3D000662; Mon, 19 Aug 2019 17:54:41 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908191754.x7JHsf3D000662@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 19 Aug 2019 17:54:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351226 - head/sbin/ping X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/sbin/ping X-SVN-Commit-Revision: 351226 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 17:54:41 -0000 Author: asomers Date: Mon Aug 19 17:54:40 2019 New Revision: 351226 URL: https://svnweb.freebsd.org/changeset/base/351226 Log: Fix uninitialized variable warnings when MK_CASPER=no Submitted by: Ján Sučan MFC after: 2 weeks Sponsored by: Google, inc. (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21322 Modified: head/sbin/ping/ping.c Modified: head/sbin/ping/ping.c ============================================================================== --- head/sbin/ping/ping.c Mon Aug 19 17:51:06 2019 (r351225) +++ head/sbin/ping/ping.c Mon Aug 19 17:54:40 2019 (r351226) @@ -610,6 +610,7 @@ main(int argc, char *const *argv) } /* From now on we will use only reverse DNS lookups. */ +#ifdef WITH_CASPER if (capdns != NULL) { const char *types[1]; @@ -617,7 +618,7 @@ main(int argc, char *const *argv) if (cap_dns_type_limit(capdns, types, 1) < 0) err(1, "unable to limit access to system.dns service"); } - +#endif if (connect(ssend, (struct sockaddr *)&whereto, sizeof(whereto)) != 0) err(1, "connect"); @@ -1709,9 +1710,10 @@ static cap_channel_t * capdns_setup(void) { cap_channel_t *capcas, *capdnsloc; +#ifdef WITH_CASPER const char *types[2]; int families[1]; - +#endif capcas = cap_init(); if (capcas == NULL) err(1, "unable to create casper process"); @@ -1720,6 +1722,7 @@ capdns_setup(void) cap_close(capcas); if (capdnsloc == NULL) err(1, "unable to open system.dns service"); +#ifdef WITH_CASPER types[0] = "NAME2ADDR"; types[1] = "ADDR2NAME"; if (cap_dns_type_limit(capdnsloc, types, 2) < 0) @@ -1727,7 +1730,7 @@ capdns_setup(void) families[0] = AF_INET; if (cap_dns_family_limit(capdnsloc, families, 1) < 0) err(1, "unable to limit access to system.dns service"); - +#endif return (capdnsloc); } From owner-svn-src-all@freebsd.org Mon Aug 19 18:15:18 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5088CCD83F; Mon, 19 Aug 2019 18:15:18 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C2CT6gCtz4842; Mon, 19 Aug 2019 18:15:17 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C7AD61E981; Mon, 19 Aug 2019 18:15:17 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JIFH7C012950; Mon, 19 Aug 2019 18:15:17 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JIFHqc012949; Mon, 19 Aug 2019 18:15:17 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201908191815.x7JIFHqc012949@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 19 Aug 2019 18:15:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351227 - head/sys/mips/include X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/mips/include X-SVN-Commit-Revision: 351227 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 18:15:18 -0000 Author: kevans Date: Mon Aug 19 18:15:17 2019 New Revision: 351227 URL: https://svnweb.freebsd.org/changeset/base/351227 Log: mips: avoid empty mdproc struct Compiling with a more modern toolchain than GCC 4.2 in base warns about the empty struct. Take a hint and comment from r350902+r350953 by luporl@. Modified: head/sys/mips/include/proc.h Modified: head/sys/mips/include/proc.h ============================================================================== --- head/sys/mips/include/proc.h Mon Aug 19 17:54:40 2019 (r351226) +++ head/sys/mips/include/proc.h Mon Aug 19 18:15:17 2019 (r351227) @@ -79,7 +79,8 @@ struct mdthread { #define MDTD_COP2USED 0x0002 /* Process used the COP2 */ struct mdproc { - /* empty */ + /* Avoid empty structs because they are undefined behavior. */ + long md_spare; }; struct syscall_args { From owner-svn-src-all@freebsd.org Mon Aug 19 18:50:57 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 96B49CE9A2; Mon, 19 Aug 2019 18:50:57 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C30d3Xf7z4BQS; Mon, 19 Aug 2019 18:50:57 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5B4AE1EF2E; Mon, 19 Aug 2019 18:50:57 +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 x7JIovak031007; Mon, 19 Aug 2019 18:50:57 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JIovCX031004; Mon, 19 Aug 2019 18:50:57 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908191850.x7JIovCX031004@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 19 Aug 2019 18:50:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351228 - in stable: 11/sys/dev/cxgbe/tom 12/sys/dev/cxgbe/tom X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/dev/cxgbe/tom 12/sys/dev/cxgbe/tom X-SVN-Commit-Revision: 351228 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 18:50:57 -0000 Author: jhb Date: Mon Aug 19 18:50:56 2019 New Revision: 351228 URL: https://svnweb.freebsd.org/changeset/base/351228 Log: MFC 348791: Fix debug trace after removal of pdu_overhead. Modified: stable/12/sys/dev/cxgbe/tom/t4_tls.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/dev/cxgbe/tom/t4_tls.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/dev/cxgbe/tom/t4_tls.c ============================================================================== --- stable/12/sys/dev/cxgbe/tom/t4_tls.c Mon Aug 19 18:15:17 2019 (r351227) +++ stable/12/sys/dev/cxgbe/tom/t4_tls.c Mon Aug 19 18:50:56 2019 (r351228) @@ -1584,8 +1584,8 @@ do_rx_tls_cmp(struct sge_iq *iq, const struct rss_head sbappendstream_locked(sb, m, 0); rx_credits = sbspace(sb) > tp->rcv_wnd ? sbspace(sb) - tp->rcv_wnd : 0; #ifdef VERBOSE_TRACES - CTR5(KTR_CXGBE, "%s: tid %u PDU overhead %d rx_credits %u rcv_wnd %u", - __func__, tid, pdu_overhead, rx_credits, tp->rcv_wnd); + CTR4(KTR_CXGBE, "%s: tid %u rx_credits %u rcv_wnd %u", + __func__, tid, rx_credits, tp->rcv_wnd); #endif if (rx_credits > 0 && sbused(sb) + tp->rcv_wnd < sb->sb_lowat) { rx_credits = send_rx_credits(sc, toep, rx_credits); From owner-svn-src-all@freebsd.org Mon Aug 19 18:50:57 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E80CACE9A6; Mon, 19 Aug 2019 18:50:57 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C30d5tkzz4BQX; Mon, 19 Aug 2019 18:50:57 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AD3DB1EF31; Mon, 19 Aug 2019 18:50:57 +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 x7JIoviA031431; Mon, 19 Aug 2019 18:50:57 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JIovU1031430; Mon, 19 Aug 2019 18:50:57 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908191850.x7JIovU1031430@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 19 Aug 2019 18:50:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351228 - in stable: 11/sys/dev/cxgbe/tom 12/sys/dev/cxgbe/tom X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/dev/cxgbe/tom 12/sys/dev/cxgbe/tom X-SVN-Commit-Revision: 351228 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 18:50:58 -0000 Author: jhb Date: Mon Aug 19 18:50:56 2019 New Revision: 351228 URL: https://svnweb.freebsd.org/changeset/base/351228 Log: MFC 348791: Fix debug trace after removal of pdu_overhead. Modified: stable/11/sys/dev/cxgbe/tom/t4_tls.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/dev/cxgbe/tom/t4_tls.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/dev/cxgbe/tom/t4_tls.c ============================================================================== --- stable/11/sys/dev/cxgbe/tom/t4_tls.c Mon Aug 19 18:15:17 2019 (r351227) +++ stable/11/sys/dev/cxgbe/tom/t4_tls.c Mon Aug 19 18:50:56 2019 (r351228) @@ -1594,8 +1594,8 @@ do_rx_tls_cmp(struct sge_iq *iq, const struct rss_head sbappendstream_locked(sb, m, 0); rx_credits = sbspace(sb) > tp->rcv_wnd ? sbspace(sb) - tp->rcv_wnd : 0; #ifdef VERBOSE_TRACES - CTR5(KTR_CXGBE, "%s: tid %u PDU overhead %d rx_credits %u rcv_wnd %u", - __func__, tid, pdu_overhead, rx_credits, tp->rcv_wnd); + CTR4(KTR_CXGBE, "%s: tid %u rx_credits %u rcv_wnd %u", + __func__, tid, rx_credits, tp->rcv_wnd); #endif if (rx_credits > 0 && sbused(sb) + tp->rcv_wnd < sb->sb_lowat) { rx_credits = send_rx_credits(sc, toep, rx_credits); From owner-svn-src-all@freebsd.org Mon Aug 19 19:02:00 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3C67DCECFB; Mon, 19 Aug 2019 19:02:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C3FN0wbHz4CJr; Mon, 19 Aug 2019 19:02:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0127D1F158; Mon, 19 Aug 2019 19:02:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JJ1xp3039490; Mon, 19 Aug 2019 19:01:59 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JJ1xup039489; Mon, 19 Aug 2019 19:01:59 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201908191901.x7JJ1xup039489@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 19 Aug 2019 19:01:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351229 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 351229 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 19:02:00 -0000 Author: kevans Date: Mon Aug 19 19:01:59 2019 New Revision: 351229 URL: https://svnweb.freebsd.org/changeset/base/351229 Log: tuntap: belatedly add MODULE_VERSION for if_tun and if_tap When tun/tap were merged, appropriate MODULE_VERSION should have been added for things like modfind(2) to continue to do the right thing with the old names. Reported by: jhb Modified: head/sys/net/if_tuntap.c Modified: head/sys/net/if_tuntap.c ============================================================================== --- head/sys/net/if_tuntap.c Mon Aug 19 18:50:56 2019 (r351228) +++ head/sys/net/if_tuntap.c Mon Aug 19 19:01:59 2019 (r351229) @@ -671,6 +671,8 @@ static moduledata_t tuntap_mod = { DECLARE_MODULE(if_tuntap, tuntap_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); MODULE_VERSION(if_tuntap, 1); +MODULE_VERSION(if_tun, 1); +MODULE_VERSION(if_tap, 1); static void tunstart(struct ifnet *ifp) From owner-svn-src-all@freebsd.org Mon Aug 19 21:21:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 027ABD256A; Mon, 19 Aug 2019 21:21:33 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C6LN6L6Jz4RSM; Mon, 19 Aug 2019 21:21:32 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BBFF020A6E; Mon, 19 Aug 2019 21:21:32 +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 x7JLLWdS031484; Mon, 19 Aug 2019 21:21:32 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JLLWKl031483; Mon, 19 Aug 2019 21:21:32 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908192121.x7JLLWKl031483@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 19 Aug 2019 21:21:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351230 - head/usr.sbin/makefs X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/usr.sbin/makefs X-SVN-Commit-Revision: 351230 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 21:21:33 -0000 Author: emaste Date: Mon Aug 19 21:21:32 2019 New Revision: 351230 URL: https://svnweb.freebsd.org/changeset/base/351230 Log: makefs.8: style updates from igor Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/makefs/makefs.8 Modified: head/usr.sbin/makefs/makefs.8 ============================================================================== --- head/usr.sbin/makefs/makefs.8 Mon Aug 19 19:01:59 2019 (r351229) +++ head/usr.sbin/makefs/makefs.8 Mon Aug 19 21:21:32 2019 (r351230) @@ -119,7 +119,7 @@ XXX: document these .It Fl F Ar mtree-specfile .Em This is almost certainly not the option you are looking for. To create an image from a list of files in an mtree format manifest, -specify it as the last argument on the commandline, not as a the +specify it as the last argument on the command line, not as a the argument to .Fl F . .Pp @@ -160,10 +160,10 @@ and (in the case of symbolic links). If .Sy time -isn't provided, the current time will be used. +is not provided, the current time will be used. If .Sy flags -isn't provided, the current file flags will be used. +is not provided, the current file flags will be used. Missing regular file entries will be created as zero-length files. .It Fl f Ar free-files Ensure that a minimum of @@ -331,9 +331,11 @@ The following keywords are supported: Allow the directory structure to exceed the maximum specified in the spec. .It Sy allow-illegal-chars -Allow illegal characters in filenames. This option is not implemented. +Allow illegal characters in filenames. +This option is not implemented. .It Sy allow-lowercase -Allow lowercase characters in filenames. This option is not implemented. +Allow lowercase characters in filenames. +This option is not implemented. .It Sy allow-max-name Allow 37 instead of 33 characters for filenames by omitting the version id. @@ -348,7 +350,8 @@ extension to encode .Tn RISC OS metadata. .It Sy bootimagedir -Boot image directory. This option is not implemented. +Boot image directory. +This option is not implemented. .It Sy chrp-boot Write an MBR partition table to the image to allow older CHRP hardware to boot. From owner-svn-src-all@freebsd.org Mon Aug 19 21:30:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CA543D273F; Mon, 19 Aug 2019 21:30:13 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C6XP4jhLz4Rqc; Mon, 19 Aug 2019 21:30:13 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 846AE20C14; Mon, 19 Aug 2019 21:30:13 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JLUDrG035773; Mon, 19 Aug 2019 21:30:13 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JLUDKp035771; Mon, 19 Aug 2019 21:30:13 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201908192130.x7JLUDKp035771@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Mon, 19 Aug 2019 21:30:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351231 - head/sys/dev/sound/pci/hda X-SVN-Group: head X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: head/sys/dev/sound/pci/hda X-SVN-Commit-Revision: 351231 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 21:30:13 -0000 Author: jkim Date: Mon Aug 19 21:30:12 2019 New Revision: 351231 URL: https://svnweb.freebsd.org/changeset/base/351231 Log: Fix sound on headset jack for Lenovo Thinkpad X1 Carbon Gen 6 (model 20KH). Note this commit was inspired by r350433. MFC after: 2 weeks Modified: head/sys/dev/sound/pci/hda/hdaa_patches.c head/sys/dev/sound/pci/hda/hdac.h Modified: head/sys/dev/sound/pci/hda/hdaa_patches.c ============================================================================== --- head/sys/dev/sound/pci/hda/hdaa_patches.c Mon Aug 19 21:21:32 2019 (r351230) +++ head/sys/dev/sound/pci/hda/hdaa_patches.c Mon Aug 19 21:30:12 2019 (r351231) @@ -389,6 +389,13 @@ hdac_pin_patch(struct hdaa_widget *w) patch = "as=1 seq=15"; break; } + } else if (id == HDA_CODEC_ALC285 && + subid == LENOVO_X120KH_SUBVENDOR) { + switch (nid) { + case 33: + patch = "as=1 seq=15"; + break; + } } else if (id == HDA_CODEC_ALC269 && subid == ASUS_UX31A_SUBVENDOR) { switch (nid) { @@ -771,16 +778,18 @@ hdaa_patch_direct(struct hdaa_devinfo *devinfo) hda_command(dev, HDA_CMD_12BIT(0, devinfo->nid, 0xf88, 0xc0)); break; + case HDA_CODEC_ALC255: + case HDA_CODEC_ALC256: + case HDA_CODEC_ALC285: + val = hdaa_read_coef(dev, 0x20, 0x46); + hdaa_write_coef(dev, 0x20, 0x46, val | 0x3000); + break; case HDA_CODEC_ALC1150: if (subid == 0xd9781462) { /* Too low volume on MSI H170 GAMING M3. */ hdaa_write_coef(dev, 0x20, 0x07, 0x7cb); } break; - } - if (id == HDA_CODEC_ALC255 || id == HDA_CODEC_ALC256) { - val = hdaa_read_coef(dev, 0x20, 0x46); - hdaa_write_coef(dev, 0x20, 0x46, val|0x3000); } if (subid == APPLE_INTEL_MAC) hda_command(dev, HDA_CMD_12BIT(0, devinfo->nid, Modified: head/sys/dev/sound/pci/hda/hdac.h ============================================================================== --- head/sys/dev/sound/pci/hda/hdac.h Mon Aug 19 21:21:32 2019 (r351230) +++ head/sys/dev/sound/pci/hda/hdac.h Mon Aug 19 21:30:12 2019 (r351231) @@ -257,6 +257,7 @@ #define LENOVO_X1_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x21e8) #define LENOVO_X1CRBN_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x21f9) #define LENOVO_X120BS_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x2227) +#define LENOVO_X120KH_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x225c) #define LENOVO_X220_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x21da) #define LENOVO_X300_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x20ac) #define LENOVO_T400_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x20f2) From owner-svn-src-all@freebsd.org Mon Aug 19 21:38:11 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4C80AD2961; Mon, 19 Aug 2019 21:38:11 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C6jb14Tlz4SGP; Mon, 19 Aug 2019 21:38:11 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0698B20E01; Mon, 19 Aug 2019 21:38:11 +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 x7JLcA6N041397; Mon, 19 Aug 2019 21:38:10 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JLcA2Y041396; Mon, 19 Aug 2019 21:38:10 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908192138.x7JLcA2Y041396@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 19 Aug 2019 21:38:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351232 - head/usr.sbin/makefs X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/usr.sbin/makefs X-SVN-Commit-Revision: 351232 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 21:38:11 -0000 Author: emaste Date: Mon Aug 19 21:38:10 2019 New Revision: 351232 URL: https://svnweb.freebsd.org/changeset/base/351232 Log: makefs.8: expand description of image size Submitted by: ryan_freqlabs.com, Siva Mahadevan Differential Revision: https://reviews.freebsd.org/D21316 Modified: head/usr.sbin/makefs/makefs.8 Modified: head/usr.sbin/makefs/makefs.8 ============================================================================== --- head/usr.sbin/makefs/makefs.8 Mon Aug 19 21:30:12 2019 (r351231) +++ head/usr.sbin/makefs/makefs.8 Mon Aug 19 21:38:10 2019 (r351232) @@ -35,7 +35,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 30, 2018 +.Dd August 19, 2019 .Dt MAKEFS 8 .Os .Sh NAME @@ -225,6 +225,17 @@ Defaults to 512. .It Fl s Ar image-size Set the size of the file system image to .Ar image-size . +This is equivalent to setting both the minimum +.Fl ( M ) +and the maximum +.Fl ( m ) +sizes to the same value. +For +.Sy ffs +the +.Ar image-size +does not include the +.Ar offset . .It Fl T Ar timestamp Specify a timestamp to be set for all filesystem files and directories created so that repeatable builds are possible. From owner-svn-src-all@freebsd.org Mon Aug 19 21:45:26 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9570DD2D61; Mon, 19 Aug 2019 21:45:26 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C6sy05bKz4Snx; Mon, 19 Aug 2019 21:45:26 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D521120FD5; Mon, 19 Aug 2019 21:45:25 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JLjPdZ047179; Mon, 19 Aug 2019 21:45:25 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JLjPu1047178; Mon, 19 Aug 2019 21:45:25 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201908192145.x7JLjPu1047178@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Mon, 19 Aug 2019 21:45:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351233 - head/sys/dev/sound/pci/hda X-SVN-Group: head X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: head/sys/dev/sound/pci/hda X-SVN-Commit-Revision: 351233 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 21:45:26 -0000 Author: jkim Date: Mon Aug 19 21:45:25 2019 New Revision: 351233 URL: https://svnweb.freebsd.org/changeset/base/351233 Log: Partially revert the previous commit. It was an experiment and not meant to be committed. :-( Modified: head/sys/dev/sound/pci/hda/hdaa_patches.c Modified: head/sys/dev/sound/pci/hda/hdaa_patches.c ============================================================================== --- head/sys/dev/sound/pci/hda/hdaa_patches.c Mon Aug 19 21:38:10 2019 (r351232) +++ head/sys/dev/sound/pci/hda/hdaa_patches.c Mon Aug 19 21:45:25 2019 (r351233) @@ -778,18 +778,16 @@ hdaa_patch_direct(struct hdaa_devinfo *devinfo) hda_command(dev, HDA_CMD_12BIT(0, devinfo->nid, 0xf88, 0xc0)); break; - case HDA_CODEC_ALC255: - case HDA_CODEC_ALC256: - case HDA_CODEC_ALC285: - val = hdaa_read_coef(dev, 0x20, 0x46); - hdaa_write_coef(dev, 0x20, 0x46, val | 0x3000); - break; case HDA_CODEC_ALC1150: if (subid == 0xd9781462) { /* Too low volume on MSI H170 GAMING M3. */ hdaa_write_coef(dev, 0x20, 0x07, 0x7cb); } break; + } + if (id == HDA_CODEC_ALC255 || id == HDA_CODEC_ALC256) { + val = hdaa_read_coef(dev, 0x20, 0x46); + hdaa_write_coef(dev, 0x20, 0x46, val|0x3000); } if (subid == APPLE_INTEL_MAC) hda_command(dev, HDA_CMD_12BIT(0, devinfo->nid, From owner-svn-src-all@freebsd.org Mon Aug 19 21:59:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7F8C0D3285; Mon, 19 Aug 2019 21:59:03 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C79g2qlvz4TRH; Mon, 19 Aug 2019 21:59:03 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 41EAB21198; Mon, 19 Aug 2019 21:59:03 +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 x7JLx3sp053295; Mon, 19 Aug 2019 21:59:03 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JLx3bf053294; Mon, 19 Aug 2019 21:59:03 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908192159.x7JLx3bf053294@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 19 Aug 2019 21:59:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351234 - in stable: 11/sys/vm 12/sys/vm X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/vm 12/sys/vm X-SVN-Commit-Revision: 351234 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 21:59:03 -0000 Author: jhb Date: Mon Aug 19 21:59:02 2019 New Revision: 351234 URL: https://svnweb.freebsd.org/changeset/base/351234 Log: MFC 348874: Remove an overly-aggressive assertion. While it is true that the new vmspace passed to vmspace_switch_aio will always have a valid reference due to the AIO job or the extra reference on the original vmspace in the worker thread, it is not true that the old vmspace being switched away from will have more than one reference. Specifically, when a process with queued AIO jobs exits, the exit hook in aio_proc_rundown will only ensure that all of the AIO jobs have completed or been cancelled. However, the last AIO job might have completed and woken up the exiting process before the worker thread servicing that job has switched back to its original vmspace. In that case, the process might finish exiting dropping its reference to the vmspace before the worker thread resulting in the worker thread dropping the last reference. Modified: stable/11/sys/vm/vm_map.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/vm/vm_map.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/vm/vm_map.c ============================================================================== --- stable/11/sys/vm/vm_map.c Mon Aug 19 21:45:25 2019 (r351233) +++ stable/11/sys/vm/vm_map.c Mon Aug 19 21:59:02 2019 (r351234) @@ -451,18 +451,17 @@ vmspace_acquire_ref(struct proc *p) /* * Switch between vmspaces in an AIO kernel process. * - * The AIO kernel processes switch to and from a user process's - * vmspace while performing an I/O operation on behalf of a user - * process. The new vmspace is either the vmspace of a user process - * obtained from an active AIO request or the initial vmspace of the - * AIO kernel process (when it is idling). Because user processes - * will block to drain any active AIO requests before proceeding in - * exit() or execve(), the vmspace reference count for these vmspaces - * can never be 0. This allows for a much simpler implementation than - * the loop in vmspace_acquire_ref() above. Similarly, AIO kernel - * processes hold an extra reference on their initial vmspace for the - * life of the process so that this guarantee is true for any vmspace - * passed as 'newvm'. + * The new vmspace is either the vmspace of a user process obtained + * from an active AIO request or the initial vmspace of the AIO kernel + * process (when it is idling). Because user processes will block to + * drain any active AIO requests before proceeding in exit() or + * execve(), the reference count for vmspaces from AIO requests can + * never be 0. Similarly, AIO kernel processes hold an extra + * reference on their initial vmspace for the life of the process. As + * a result, the 'newvm' vmspace always has a non-zero reference + * count. This permits an additional reference on 'newvm' to be + * acquired via a simple atomic increment rather than the loop in + * vmspace_acquire_ref() above. */ void vmspace_switch_aio(struct vmspace *newvm) @@ -487,9 +486,6 @@ vmspace_switch_aio(struct vmspace *newvm) /* Activate the new mapping. */ pmap_activate(curthread); - /* Remove the daemon's reference to the old address space. */ - KASSERT(oldvm->vm_refcnt > 1, - ("vmspace_switch_aio: oldvm dropping last reference")); vmspace_free(oldvm); } From owner-svn-src-all@freebsd.org Mon Aug 19 21:59:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 43586D3280; Mon, 19 Aug 2019 21:59:03 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C79g11sLz4TRG; Mon, 19 Aug 2019 21:59:03 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F3E7C21197; Mon, 19 Aug 2019 21:59:02 +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 x7JLx2rh053289; Mon, 19 Aug 2019 21:59:02 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JLx2Ur053288; Mon, 19 Aug 2019 21:59:02 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908192159.x7JLx2Ur053288@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 19 Aug 2019 21:59:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351234 - in stable: 11/sys/vm 12/sys/vm X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/vm 12/sys/vm X-SVN-Commit-Revision: 351234 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 21:59:03 -0000 Author: jhb Date: Mon Aug 19 21:59:02 2019 New Revision: 351234 URL: https://svnweb.freebsd.org/changeset/base/351234 Log: MFC 348874: Remove an overly-aggressive assertion. While it is true that the new vmspace passed to vmspace_switch_aio will always have a valid reference due to the AIO job or the extra reference on the original vmspace in the worker thread, it is not true that the old vmspace being switched away from will have more than one reference. Specifically, when a process with queued AIO jobs exits, the exit hook in aio_proc_rundown will only ensure that all of the AIO jobs have completed or been cancelled. However, the last AIO job might have completed and woken up the exiting process before the worker thread servicing that job has switched back to its original vmspace. In that case, the process might finish exiting dropping its reference to the vmspace before the worker thread resulting in the worker thread dropping the last reference. Modified: stable/12/sys/vm/vm_map.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/vm/vm_map.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/vm/vm_map.c ============================================================================== --- stable/12/sys/vm/vm_map.c Mon Aug 19 21:45:25 2019 (r351233) +++ stable/12/sys/vm/vm_map.c Mon Aug 19 21:59:02 2019 (r351234) @@ -453,18 +453,17 @@ vmspace_acquire_ref(struct proc *p) /* * Switch between vmspaces in an AIO kernel process. * - * The AIO kernel processes switch to and from a user process's - * vmspace while performing an I/O operation on behalf of a user - * process. The new vmspace is either the vmspace of a user process - * obtained from an active AIO request or the initial vmspace of the - * AIO kernel process (when it is idling). Because user processes - * will block to drain any active AIO requests before proceeding in - * exit() or execve(), the vmspace reference count for these vmspaces - * can never be 0. This allows for a much simpler implementation than - * the loop in vmspace_acquire_ref() above. Similarly, AIO kernel - * processes hold an extra reference on their initial vmspace for the - * life of the process so that this guarantee is true for any vmspace - * passed as 'newvm'. + * The new vmspace is either the vmspace of a user process obtained + * from an active AIO request or the initial vmspace of the AIO kernel + * process (when it is idling). Because user processes will block to + * drain any active AIO requests before proceeding in exit() or + * execve(), the reference count for vmspaces from AIO requests can + * never be 0. Similarly, AIO kernel processes hold an extra + * reference on their initial vmspace for the life of the process. As + * a result, the 'newvm' vmspace always has a non-zero reference + * count. This permits an additional reference on 'newvm' to be + * acquired via a simple atomic increment rather than the loop in + * vmspace_acquire_ref() above. */ void vmspace_switch_aio(struct vmspace *newvm) @@ -489,9 +488,6 @@ vmspace_switch_aio(struct vmspace *newvm) /* Activate the new mapping. */ pmap_activate(curthread); - /* Remove the daemon's reference to the old address space. */ - KASSERT(oldvm->vm_refcnt > 1, - ("vmspace_switch_aio: oldvm dropping last reference")); vmspace_free(oldvm); } From owner-svn-src-all@freebsd.org Mon Aug 19 22:25:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3E0CFD3976; Mon, 19 Aug 2019 22:25:29 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C7m90lJFz4VmS; Mon, 19 Aug 2019 22:25:29 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EC764216F2; Mon, 19 Aug 2019 22:25:28 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JMPSFc071434; Mon, 19 Aug 2019 22:25:28 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JMPSep071431; Mon, 19 Aug 2019 22:25:28 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201908192225.x7JMPSep071431@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Mon, 19 Aug 2019 22:25:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351235 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 351235 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 22:25:29 -0000 Author: jeff Date: Mon Aug 19 22:25:28 2019 New Revision: 351235 URL: https://svnweb.freebsd.org/changeset/base/351235 Log: Permit vm_pager_has_page() to run with a shared lock. Introduce VM_OBJECT_DROP/VM_OBJECT_PICKUP to handle functions that are called with uncertain lock state. Reviewed by: kib, markj Tested by: pho Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21310 Modified: head/sys/vm/vm_object.h head/sys/vm/vm_pager.h head/sys/vm/vnode_pager.c Modified: head/sys/vm/vm_object.h ============================================================================== --- head/sys/vm/vm_object.h Mon Aug 19 21:59:02 2019 (r351234) +++ head/sys/vm/vm_object.h Mon Aug 19 22:25:28 2019 (r351235) @@ -255,6 +255,10 @@ extern struct vm_object kernel_object_store; rw_wowned(&(object)->lock) #define VM_OBJECT_WUNLOCK(object) \ rw_wunlock(&(object)->lock) +#define VM_OBJECT_DROP(object) \ + lock_class_rw.lc_unlock(&(object)->lock.lock_object) +#define VM_OBJECT_PICKUP(object, state) \ + lock_class_rw.lc_lock(&(object)->lock.lock_object, (state)) struct vnode; Modified: head/sys/vm/vm_pager.h ============================================================================== --- head/sys/vm/vm_pager.h Mon Aug 19 21:59:02 2019 (r351234) +++ head/sys/vm/vm_pager.h Mon Aug 19 22:25:28 2019 (r351235) @@ -151,7 +151,7 @@ vm_pager_has_page( ) { boolean_t ret; - VM_OBJECT_ASSERT_WLOCKED(object); + VM_OBJECT_ASSERT_LOCKED(object); ret = (*pagertab[object->type]->pgo_haspage) (object, offset, before, after); return (ret); Modified: head/sys/vm/vnode_pager.c ============================================================================== --- head/sys/vm/vnode_pager.c Mon Aug 19 21:59:02 2019 (r351234) +++ head/sys/vm/vnode_pager.c Mon Aug 19 22:25:28 2019 (r351235) @@ -355,13 +355,14 @@ vnode_pager_haspage(vm_object_t object, vm_pindex_t pi { struct vnode *vp = object->handle; daddr_t bn; + uintptr_t lockstate; int err; daddr_t reqblock; int poff; int bsize; int pagesperblock, blocksperpage; - VM_OBJECT_ASSERT_WLOCKED(object); + VM_OBJECT_ASSERT_LOCKED(object); /* * If no vp or vp is doomed or marked transparent to VM, we do not * have the page. @@ -384,9 +385,9 @@ vnode_pager_haspage(vm_object_t object, vm_pindex_t pi blocksperpage = (PAGE_SIZE / bsize); reqblock = pindex * blocksperpage; } - VM_OBJECT_WUNLOCK(object); + lockstate = VM_OBJECT_DROP(object); err = VOP_BMAP(vp, reqblock, NULL, &bn, after, before); - VM_OBJECT_WLOCK(object); + VM_OBJECT_PICKUP(object, lockstate); if (err) return TRUE; if (bn == -1) From owner-svn-src-all@freebsd.org Mon Aug 19 22:31:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C8AD4D3B36; Mon, 19 Aug 2019 22:31:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C7td50TDz4W1V; Mon, 19 Aug 2019 22:31:05 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8D5212171F; Mon, 19 Aug 2019 22:31:05 +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 x7JMV59m074209; Mon, 19 Aug 2019 22:31:05 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JMV5eK074208; Mon, 19 Aug 2019 22:31:05 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908192231.x7JMV5eK074208@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 19 Aug 2019 22:31:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351236 - in stable: 11/sys/dev/cxgbe/tom 12/sys/dev/cxgbe/tom X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/dev/cxgbe/tom 12/sys/dev/cxgbe/tom X-SVN-Commit-Revision: 351236 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 22:31:05 -0000 Author: jhb Date: Mon Aug 19 22:31:04 2019 New Revision: 351236 URL: https://svnweb.freebsd.org/changeset/base/351236 Log: MFC 349467: Hold an explicit reference on the socket for the aiotx task. Previously, the aiotx task relied on the aio jobs in the queue to hold a reference on the socket. However, when the last job is completed, there is nothing left to hold a reference to the socket buffer lock used to check if the queue is empty. In addition, if the last job on the queue is cancelled, the task can run with no queued jobs holding a reference to the socket buffer lock the task uses to notice the queue is empty. Fix these races by holding an explicit reference on the socket when the task is queued and dropping that reference when the task completes. Modified: stable/11/sys/dev/cxgbe/tom/t4_cpl_io.c stable/11/sys/dev/cxgbe/tom/t4_tom.h Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/dev/cxgbe/tom/t4_cpl_io.c stable/12/sys/dev/cxgbe/tom/t4_tom.h Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/dev/cxgbe/tom/t4_cpl_io.c ============================================================================== --- stable/11/sys/dev/cxgbe/tom/t4_cpl_io.c Mon Aug 19 22:25:28 2019 (r351235) +++ stable/11/sys/dev/cxgbe/tom/t4_cpl_io.c Mon Aug 19 22:31:04 2019 (r351236) @@ -84,7 +84,7 @@ VNET_DECLARE(int, tcp_autorcvbuf_max); #define V_tcp_autorcvbuf_max VNET(tcp_autorcvbuf_max) static void t4_aiotx_cancel(struct kaiocb *job); -static void t4_aiotx_queue_toep(struct toepcb *toep); +static void t4_aiotx_queue_toep(struct socket *so, struct toepcb *toep); static size_t aiotx_mbuf_pgoff(struct mbuf *m) @@ -795,7 +795,7 @@ t4_push_frames(struct adapter *sc, struct toepcb *toep if (sowwakeup) { if (!TAILQ_EMPTY( &toep->aiotx_jobq)) - t4_aiotx_queue_toep( + t4_aiotx_queue_toep(so, toep); sowwakeup_locked(so); } else @@ -839,7 +839,7 @@ t4_push_frames(struct adapter *sc, struct toepcb *toep } if (sowwakeup) { if (!TAILQ_EMPTY(&toep->aiotx_jobq)) - t4_aiotx_queue_toep(toep); + t4_aiotx_queue_toep(so, toep); sowwakeup_locked(so); } else SOCKBUF_UNLOCK(sb); @@ -1827,7 +1827,7 @@ do_fw4_ack(struct sge_iq *iq, const struct rss_header tls_ofld->sb_off -= plen; } if (!TAILQ_EMPTY(&toep->aiotx_jobq)) - t4_aiotx_queue_toep(toep); + t4_aiotx_queue_toep(so, toep); sowwakeup_locked(so); /* unlocks so_snd */ } SOCKBUF_UNLOCK_ASSERT(sb); @@ -2201,10 +2201,10 @@ static void t4_aiotx_task(void *context, int pending) { struct toepcb *toep = context; - struct inpcb *inp = toep->inp; - struct socket *so = inp->inp_socket; + struct socket *so; struct kaiocb *job; + so = toep->aiotx_so; CURVNET_SET(toep->vnet); SOCKBUF_LOCK(&so->so_snd); while (!TAILQ_EMPTY(&toep->aiotx_jobq) && sowriteable(so)) { @@ -2215,15 +2215,17 @@ t4_aiotx_task(void *context, int pending) t4_aiotx_process_job(toep, so, job); } - toep->aiotx_task_active = false; + toep->aiotx_so = NULL; SOCKBUF_UNLOCK(&so->so_snd); CURVNET_RESTORE(); free_toepcb(toep); + SOCK_LOCK(so); + sorele(so); } static void -t4_aiotx_queue_toep(struct toepcb *toep) +t4_aiotx_queue_toep(struct socket *so, struct toepcb *toep) { SOCKBUF_LOCK_ASSERT(&toep->inp->inp_socket->so_snd); @@ -2231,9 +2233,10 @@ t4_aiotx_queue_toep(struct toepcb *toep) CTR3(KTR_CXGBE, "%s: queueing aiotx task for tid %d, active = %s", __func__, toep->tid, toep->aiotx_task_active ? "true" : "false"); #endif - if (toep->aiotx_task_active) + if (toep->aiotx_so != NULL) return; - toep->aiotx_task_active = true; + soref(so); + toep->aiotx_so = so; hold_toepcb(toep); soaio_enqueue(&toep->aiotx_task); } @@ -2290,7 +2293,7 @@ t4_aio_queue_aiotx(struct socket *so, struct kaiocb *j panic("new job was cancelled"); TAILQ_INSERT_TAIL(&toep->aiotx_jobq, job, list); if (sowriteable(so)) - t4_aiotx_queue_toep(toep); + t4_aiotx_queue_toep(so, toep); SOCKBUF_UNLOCK(&so->so_snd); return (0); } Modified: stable/11/sys/dev/cxgbe/tom/t4_tom.h ============================================================================== --- stable/11/sys/dev/cxgbe/tom/t4_tom.h Mon Aug 19 22:25:28 2019 (r351235) +++ stable/11/sys/dev/cxgbe/tom/t4_tom.h Mon Aug 19 22:31:04 2019 (r351236) @@ -191,7 +191,7 @@ struct toepcb { TAILQ_HEAD(, kaiocb) aiotx_jobq; struct task aiotx_task; - bool aiotx_task_active; + struct socket *aiotx_so; /* Tx software descriptor */ uint8_t txsd_total; From owner-svn-src-all@freebsd.org Mon Aug 19 22:31:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4D589D3B2B; Mon, 19 Aug 2019 22:31:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C7td1Kd8z4W1S; Mon, 19 Aug 2019 22:31:05 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 10A342171D; Mon, 19 Aug 2019 22:31:05 +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 x7JMV49R074202; Mon, 19 Aug 2019 22:31:04 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JMV48w074200; Mon, 19 Aug 2019 22:31:04 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908192231.x7JMV48w074200@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 19 Aug 2019 22:31:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351236 - in stable: 11/sys/dev/cxgbe/tom 12/sys/dev/cxgbe/tom X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/dev/cxgbe/tom 12/sys/dev/cxgbe/tom X-SVN-Commit-Revision: 351236 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 22:31:05 -0000 Author: jhb Date: Mon Aug 19 22:31:04 2019 New Revision: 351236 URL: https://svnweb.freebsd.org/changeset/base/351236 Log: MFC 349467: Hold an explicit reference on the socket for the aiotx task. Previously, the aiotx task relied on the aio jobs in the queue to hold a reference on the socket. However, when the last job is completed, there is nothing left to hold a reference to the socket buffer lock used to check if the queue is empty. In addition, if the last job on the queue is cancelled, the task can run with no queued jobs holding a reference to the socket buffer lock the task uses to notice the queue is empty. Fix these races by holding an explicit reference on the socket when the task is queued and dropping that reference when the task completes. Modified: stable/12/sys/dev/cxgbe/tom/t4_cpl_io.c stable/12/sys/dev/cxgbe/tom/t4_tom.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/dev/cxgbe/tom/t4_cpl_io.c stable/11/sys/dev/cxgbe/tom/t4_tom.h Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/dev/cxgbe/tom/t4_cpl_io.c ============================================================================== --- stable/12/sys/dev/cxgbe/tom/t4_cpl_io.c Mon Aug 19 22:25:28 2019 (r351235) +++ stable/12/sys/dev/cxgbe/tom/t4_cpl_io.c Mon Aug 19 22:31:04 2019 (r351236) @@ -74,7 +74,7 @@ __FBSDID("$FreeBSD$"); #include "tom/t4_tom.h" static void t4_aiotx_cancel(struct kaiocb *job); -static void t4_aiotx_queue_toep(struct toepcb *toep); +static void t4_aiotx_queue_toep(struct socket *so, struct toepcb *toep); static size_t aiotx_mbuf_pgoff(struct mbuf *m) @@ -787,7 +787,7 @@ t4_push_frames(struct adapter *sc, struct toepcb *toep if (sowwakeup) { if (!TAILQ_EMPTY( &toep->aiotx_jobq)) - t4_aiotx_queue_toep( + t4_aiotx_queue_toep(so, toep); sowwakeup_locked(so); } else @@ -831,7 +831,7 @@ t4_push_frames(struct adapter *sc, struct toepcb *toep } if (sowwakeup) { if (!TAILQ_EMPTY(&toep->aiotx_jobq)) - t4_aiotx_queue_toep(toep); + t4_aiotx_queue_toep(so, toep); sowwakeup_locked(so); } else SOCKBUF_UNLOCK(sb); @@ -1825,7 +1825,7 @@ do_fw4_ack(struct sge_iq *iq, const struct rss_header tls_ofld->sb_off -= plen; } if (!TAILQ_EMPTY(&toep->aiotx_jobq)) - t4_aiotx_queue_toep(toep); + t4_aiotx_queue_toep(so, toep); sowwakeup_locked(so); /* unlocks so_snd */ } SOCKBUF_UNLOCK_ASSERT(sb); @@ -2199,10 +2199,10 @@ static void t4_aiotx_task(void *context, int pending) { struct toepcb *toep = context; - struct inpcb *inp = toep->inp; - struct socket *so = inp->inp_socket; + struct socket *so; struct kaiocb *job; + so = toep->aiotx_so; CURVNET_SET(toep->vnet); SOCKBUF_LOCK(&so->so_snd); while (!TAILQ_EMPTY(&toep->aiotx_jobq) && sowriteable(so)) { @@ -2213,15 +2213,17 @@ t4_aiotx_task(void *context, int pending) t4_aiotx_process_job(toep, so, job); } - toep->aiotx_task_active = false; + toep->aiotx_so = NULL; SOCKBUF_UNLOCK(&so->so_snd); CURVNET_RESTORE(); free_toepcb(toep); + SOCK_LOCK(so); + sorele(so); } static void -t4_aiotx_queue_toep(struct toepcb *toep) +t4_aiotx_queue_toep(struct socket *so, struct toepcb *toep) { SOCKBUF_LOCK_ASSERT(&toep->inp->inp_socket->so_snd); @@ -2229,9 +2231,10 @@ t4_aiotx_queue_toep(struct toepcb *toep) CTR3(KTR_CXGBE, "%s: queueing aiotx task for tid %d, active = %s", __func__, toep->tid, toep->aiotx_so != NULL ? "true" : "false"); #endif - if (toep->aiotx_task_active) + if (toep->aiotx_so != NULL) return; - toep->aiotx_task_active = true; + soref(so); + toep->aiotx_so = so; hold_toepcb(toep); soaio_enqueue(&toep->aiotx_task); } @@ -2288,7 +2291,7 @@ t4_aio_queue_aiotx(struct socket *so, struct kaiocb *j panic("new job was cancelled"); TAILQ_INSERT_TAIL(&toep->aiotx_jobq, job, list); if (sowriteable(so)) - t4_aiotx_queue_toep(toep); + t4_aiotx_queue_toep(so, toep); SOCKBUF_UNLOCK(&so->so_snd); return (0); } Modified: stable/12/sys/dev/cxgbe/tom/t4_tom.h ============================================================================== --- stable/12/sys/dev/cxgbe/tom/t4_tom.h Mon Aug 19 22:25:28 2019 (r351235) +++ stable/12/sys/dev/cxgbe/tom/t4_tom.h Mon Aug 19 22:31:04 2019 (r351236) @@ -197,7 +197,7 @@ struct toepcb { TAILQ_HEAD(, kaiocb) aiotx_jobq; struct task aiotx_task; - bool aiotx_task_active; + struct socket *aiotx_so; /* Tx software descriptor */ uint8_t txsd_total; From owner-svn-src-all@freebsd.org Mon Aug 19 22:53:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5692ED4172; Mon, 19 Aug 2019 22:53:06 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C8N21WG6z4X7B; Mon, 19 Aug 2019 22:53:06 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1582C21C3E; Mon, 19 Aug 2019 22:53:06 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JMr5AE088960; Mon, 19 Aug 2019 22:53:05 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JMr5g9088957; Mon, 19 Aug 2019 22:53:05 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201908192253.x7JMr5g9088957@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 19 Aug 2019 22:53:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351237 - in head/sys: conf libkern sys X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: in head/sys: conf libkern sys X-SVN-Commit-Revision: 351237 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 22:53:06 -0000 Author: cem Date: Mon Aug 19 22:53:05 2019 New Revision: 351237 URL: https://svnweb.freebsd.org/changeset/base/351237 Log: libkern: Implement strchrnul(3) Added: head/sys/libkern/strchrnul.c (contents, props changed) Modified: head/sys/conf/files head/sys/sys/libkern.h Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Mon Aug 19 22:31:04 2019 (r351236) +++ head/sys/conf/files Mon Aug 19 22:53:05 2019 (r351237) @@ -3974,6 +3974,7 @@ libkern/scanc.c standard libkern/strcasecmp.c standard libkern/strcat.c standard libkern/strchr.c standard +libkern/strchrnul.c optional gdb libkern/strcmp.c standard libkern/strcpy.c standard libkern/strcspn.c standard Added: head/sys/libkern/strchrnul.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/libkern/strchrnul.c Mon Aug 19 22:53:05 2019 (r351237) @@ -0,0 +1,41 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 Conrad Meyer + * + * 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 + +char * +strchrnul(const char *p, int ch) +{ + + for (; *p != 0 && *p != ch; p++) + ; + return (__DECONST(char *, p)); +} Modified: head/sys/sys/libkern.h ============================================================================== --- head/sys/sys/libkern.h Mon Aug 19 22:31:04 2019 (r351236) +++ head/sys/sys/libkern.h Mon Aug 19 22:53:05 2019 (r351237) @@ -170,6 +170,7 @@ void srandom(u_long); int strcasecmp(const char *, const char *); char *strcat(char * __restrict, const char * __restrict); char *strchr(const char *, int); +char *strchrnul(const char *, int); int strcmp(const char *, const char *); char *strcpy(char * __restrict, const char * __restrict); size_t strcspn(const char * __restrict, const char * __restrict) __pure; From owner-svn-src-all@freebsd.org Mon Aug 19 22:57:04 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6C5EFD432F; Mon, 19 Aug 2019 22:57:04 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C8Sc23dMz4XKD; Mon, 19 Aug 2019 22:57:04 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 23E9021C40; Mon, 19 Aug 2019 22:57:04 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JMv3cH089194; Mon, 19 Aug 2019 22:57:03 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JMv3UN089192; Mon, 19 Aug 2019 22:57:03 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201908192257.x7JMv3UN089192@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 19 Aug 2019 22:57:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351238 - head/sys/gdb X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/gdb X-SVN-Commit-Revision: 351238 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 22:57:04 -0000 Author: cem Date: Mon Aug 19 22:57:03 2019 New Revision: 351238 URL: https://svnweb.freebsd.org/changeset/base/351238 Log: gdb(4): Pack 'info threads' responses into fewer packets We suffer at least one round trip ACK latency every command / packet that GDB has to send and receive, and the response format for 'info threads' supports packing many threads IDs into a single packet, so do so. Adds and uses a new API, gdb_txbuf_has_capacity(), which checks for a certain number of bytes available in the outgoing txbuf. On an example amd64 VM, the number of RTTs to transmit this list is reduced by a factor of 110x. This is especially beneficial with recent GDB, which seems to request the list at least twice during attach. Modified: head/sys/gdb/gdb_int.h head/sys/gdb/gdb_main.c head/sys/gdb/gdb_packet.c Modified: head/sys/gdb/gdb_int.h ============================================================================== --- head/sys/gdb/gdb_int.h Mon Aug 19 22:53:05 2019 (r351237) +++ head/sys/gdb/gdb_int.h Mon Aug 19 22:57:03 2019 (r351238) @@ -62,6 +62,7 @@ void gdb_tx_begin(char); int gdb_tx_end(void); int gdb_tx_mem(const unsigned char *, size_t); void gdb_tx_reg(int); +bool gdb_txbuf_has_capacity(size_t); int gdb_rx_bindata(unsigned char *data, size_t datalen, size_t *amt); int gdb_search_mem(const unsigned char *addr, size_t size, const unsigned char *pat, size_t patlen, const unsigned char **found); Modified: head/sys/gdb/gdb_main.c ============================================================================== --- head/sys/gdb/gdb_main.c Mon Aug 19 22:53:05 2019 (r351237) +++ head/sys/gdb/gdb_main.c Mon Aug 19 22:57:03 2019 (r351238) @@ -123,6 +123,45 @@ gdb_do_mem_search(void) gdb_tx_err(EIO); } +static void +gdb_do_threadinfo(struct thread **thr_iter) +{ + static struct thread * const done_sentinel = (void *)(uintptr_t)1; + static const size_t tidsz_hex = sizeof(lwpid_t) * 2; + size_t tds_sent; + + if (*thr_iter == NULL) { + gdb_tx_err(ENXIO); + return; + } + + if (*thr_iter == done_sentinel) { + gdb_tx_begin('l'); + *thr_iter = NULL; + goto sendit; + } + + gdb_tx_begin('m'); + + for (tds_sent = 0; + *thr_iter != NULL && gdb_txbuf_has_capacity(tidsz_hex + 1); + *thr_iter = kdb_thr_next(*thr_iter), tds_sent++) { + if (tds_sent > 0) + gdb_tx_char(','); + gdb_tx_varhex((*thr_iter)->td_tid); + } + + /* + * Can't send EOF and "some" in same packet, so set a sentinel to send + * EOF when GDB asks us next. + */ + if (*thr_iter == NULL && tds_sent > 0) + *thr_iter = done_sentinel; + +sendit: + gdb_tx_end(); +} + static int gdb_trap(int type, int code) { @@ -268,23 +307,9 @@ gdb_trap(int type, int code) case 'q': /* General query. */ if (gdb_rx_equal("fThreadInfo")) { thr_iter = kdb_thr_first(); - gdb_tx_begin('m'); - gdb_tx_hex((long)thr_iter->td_tid, 8); - gdb_tx_end(); + gdb_do_threadinfo(&thr_iter); } else if (gdb_rx_equal("sThreadInfo")) { - if (thr_iter == NULL) { - gdb_tx_err(ENXIO); - break; - } - thr_iter = kdb_thr_next(thr_iter); - if (thr_iter != NULL) { - gdb_tx_begin('m'); - gdb_tx_hex((long)thr_iter->td_tid, 8); - gdb_tx_end(); - } else { - gdb_tx_begin('l'); - gdb_tx_end(); - } + gdb_do_threadinfo(&thr_iter); } else if (gdb_rx_equal("Search:memory:")) { gdb_do_mem_search(); } else if (!gdb_cpu_query()) Modified: head/sys/gdb/gdb_packet.c ============================================================================== --- head/sys/gdb/gdb_packet.c Mon Aug 19 22:53:05 2019 (r351237) +++ head/sys/gdb/gdb_packet.c Mon Aug 19 22:57:03 2019 (r351238) @@ -327,6 +327,12 @@ gdb_tx_reg(int regnum) gdb_tx_mem(regp, regsz); } +bool +gdb_txbuf_has_capacity(size_t req) +{ + return (((char *)gdb_txbuf + sizeof(gdb_txbuf) - gdb_txp) >= req); +} + /* Read binary data up until the end of the packet or until we have datalen decoded bytes */ int gdb_rx_bindata(unsigned char *data, size_t datalen, size_t *amt) From owner-svn-src-all@freebsd.org Mon Aug 19 22:58:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C360ED43B5; Mon, 19 Aug 2019 22:58:30 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C8VG4mFjz4XSb; Mon, 19 Aug 2019 22:58:30 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 851AE21C41; Mon, 19 Aug 2019 22:58:30 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JMwU7u089291; Mon, 19 Aug 2019 22:58:30 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JMwUw5089290; Mon, 19 Aug 2019 22:58:30 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201908192258.x7JMwUw5089290@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 19 Aug 2019 22:58:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351239 - head/sys/gdb X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/gdb X-SVN-Commit-Revision: 351239 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 22:58:30 -0000 Author: cem Date: Mon Aug 19 22:58:30 2019 New Revision: 351239 URL: https://svnweb.freebsd.org/changeset/base/351239 Log: gdb(4): Support "qC" query Sometimes GDB gets confused about what the current thread is. When it does, it asks the remote: "Who am I?" Answer it. Modified: head/sys/gdb/gdb_main.c Modified: head/sys/gdb/gdb_main.c ============================================================================== --- head/sys/gdb/gdb_main.c Mon Aug 19 22:57:03 2019 (r351238) +++ head/sys/gdb/gdb_main.c Mon Aug 19 22:58:30 2019 (r351239) @@ -305,7 +305,13 @@ gdb_trap(int type, int code) break; } case 'q': /* General query. */ - if (gdb_rx_equal("fThreadInfo")) { + if (gdb_rx_equal("C")) { + gdb_tx_begin('Q'); + gdb_tx_char('C'); + gdb_tx_varhex((long)kdb_thread->td_tid); + gdb_tx_end(); + break; + } else if (gdb_rx_equal("fThreadInfo")) { thr_iter = kdb_thr_first(); gdb_do_threadinfo(&thr_iter); } else if (gdb_rx_equal("sThreadInfo")) { From owner-svn-src-all@freebsd.org Mon Aug 19 23:02:00 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7AE58D4641; Mon, 19 Aug 2019 23:02:00 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C8ZJ2kp6z4XtT; Mon, 19 Aug 2019 23:02:00 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3F99021DC9; Mon, 19 Aug 2019 23:02:00 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JN20Eu095091; Mon, 19 Aug 2019 23:02:00 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JN20Pe095090; Mon, 19 Aug 2019 23:02:00 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201908192302.x7JN20Pe095090@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 19 Aug 2019 23:02:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351240 - head/sys/gdb X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/gdb X-SVN-Commit-Revision: 351240 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 23:02:00 -0000 Author: cem Date: Mon Aug 19 23:01:59 2019 New Revision: 351240 URL: https://svnweb.freebsd.org/changeset/base/351240 Log: Fix stylistic nit in r351239 Meant to fix this before committing, but forgot. Modified: head/sys/gdb/gdb_main.c Modified: head/sys/gdb/gdb_main.c ============================================================================== --- head/sys/gdb/gdb_main.c Mon Aug 19 22:58:30 2019 (r351239) +++ head/sys/gdb/gdb_main.c Mon Aug 19 23:01:59 2019 (r351240) @@ -310,7 +310,6 @@ gdb_trap(int type, int code) gdb_tx_char('C'); gdb_tx_varhex((long)kdb_thread->td_tid); gdb_tx_end(); - break; } else if (gdb_rx_equal("fThreadInfo")) { thr_iter = kdb_thr_first(); gdb_do_threadinfo(&thr_iter); From owner-svn-src-all@freebsd.org Mon Aug 19 23:09:39 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DA245D4855; Mon, 19 Aug 2019 23:09:39 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C8l75Lpnz4YF5; Mon, 19 Aug 2019 23:09:39 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9A73621E0E; Mon, 19 Aug 2019 23:09:39 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7JN9d81095455; Mon, 19 Aug 2019 23:09:39 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JN9cgL095450; Mon, 19 Aug 2019 23:09:38 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201908192309.x7JN9cgL095450@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Mon, 19 Aug 2019 23:09:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351241 - in head/sys: cddl/contrib/opensolaris/uts/common/fs/zfs kern vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in head/sys: cddl/contrib/opensolaris/uts/common/fs/zfs kern vm X-SVN-Commit-Revision: 351241 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 23:09:39 -0000 Author: jeff Date: Mon Aug 19 23:09:38 2019 New Revision: 351241 URL: https://svnweb.freebsd.org/changeset/base/351241 Log: Use an atomic reference count for paging in progress so that callers do not require the object lock. Reviewed by: markj Tested by: pho (as part of a larger branch) Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21311 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c head/sys/kern/vfs_cluster.c head/sys/kern/vfs_subr.c head/sys/vm/swap_pager.c head/sys/vm/vm_object.c head/sys/vm/vm_object.h Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Mon Aug 19 23:01:59 2019 (r351240) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Mon Aug 19 23:09:38 2019 (r351241) @@ -451,7 +451,7 @@ page_unbusy(vm_page_t pp) { vm_page_sunbusy(pp); - vm_object_pip_subtract(pp->object, 1); + vm_object_pip_wakeup(pp->object); } static vm_page_t @@ -523,6 +523,7 @@ update_pages(vnode_t *vp, int64_t start, int len, objs off = start & PAGEOFFSET; zfs_vmobject_wlock(obj); + vm_object_pip_add(obj, 1); for (start &= PAGEMASK; len > 0; start += PAGESIZE) { vm_page_t pp; int nbytes = imin(PAGESIZE - off, len); @@ -541,7 +542,7 @@ update_pages(vnode_t *vp, int64_t start, int len, objs len -= nbytes; off = 0; } - vm_object_pip_wakeupn(obj, 0); + vm_object_pip_wakeup(obj); zfs_vmobject_wunlock(obj); } Modified: head/sys/kern/vfs_cluster.c ============================================================================== --- head/sys/kern/vfs_cluster.c Mon Aug 19 23:01:59 2019 (r351240) +++ head/sys/kern/vfs_cluster.c Mon Aug 19 23:09:38 2019 (r351241) @@ -479,7 +479,8 @@ cluster_rbuild(struct vnode *vp, u_quad_t filesize, da } if (tsize > 0) { clean_sbusy: - vm_object_pip_add(tbp->b_bufobj->bo_object, -j); + vm_object_pip_wakeupn(tbp->b_bufobj->bo_object, + j); for (k = 0; k < j; k++) vm_page_sunbusy(tbp->b_pages[k]); VM_OBJECT_WUNLOCK(tbp->b_bufobj->bo_object); Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Mon Aug 19 23:01:59 2019 (r351240) +++ head/sys/kern/vfs_subr.c Mon Aug 19 23:09:38 2019 (r351241) @@ -1786,13 +1786,9 @@ bufobj_invalbuf(struct bufobj *bo, int flags, int slpf */ do { bufobj_wwait(bo, 0, 0); - if ((flags & V_VMIO) == 0) { + if ((flags & V_VMIO) == 0 && bo->bo_object != NULL) { BO_UNLOCK(bo); - if (bo->bo_object != NULL) { - VM_OBJECT_WLOCK(bo->bo_object); - vm_object_pip_wait(bo->bo_object, "bovlbx"); - VM_OBJECT_WUNLOCK(bo->bo_object); - } + vm_object_pip_wait_unlocked(bo->bo_object, "bovlbx"); BO_LOCK(bo); } } while (bo->bo_numoutput > 0); Modified: head/sys/vm/swap_pager.c ============================================================================== --- head/sys/vm/swap_pager.c Mon Aug 19 23:01:59 2019 (r351240) +++ head/sys/vm/swap_pager.c Mon Aug 19 23:09:38 2019 (r351241) @@ -1256,7 +1256,7 @@ swap_pager_getpages(vm_object_t object, vm_page_t *ma, while ((ma[0]->oflags & VPO_SWAPINPROG) != 0) { ma[0]->oflags |= VPO_SWAPSLEEP; VM_CNT_INC(v_intrans); - if (VM_OBJECT_SLEEP(object, &object->paging_in_progress, PSWP, + if (VM_OBJECT_SLEEP(object, &object->handle, PSWP, "swread", hz * 20)) { printf( "swap_pager: indefinite wait buffer: bufobj: %p, blkno: %jd, size: %ld\n", @@ -1531,7 +1531,7 @@ swp_pager_async_iodone(struct buf *bp) m->oflags &= ~VPO_SWAPINPROG; if (m->oflags & VPO_SWAPSLEEP) { m->oflags &= ~VPO_SWAPSLEEP; - wakeup(&object->paging_in_progress); + wakeup(&object->handle); } if (bp->b_ioflags & BIO_ERROR) { Modified: head/sys/vm/vm_object.c ============================================================================== --- head/sys/vm/vm_object.c Mon Aug 19 23:01:59 2019 (r351240) +++ head/sys/vm/vm_object.c Mon Aug 19 23:09:38 2019 (r351241) @@ -80,6 +80,7 @@ __FBSDID("$FreeBSD$"); #include #include #include /* for curproc, pageproc */ +#include #include #include #include @@ -221,7 +222,7 @@ vm_object_zinit(void *mem, int size, int flags) object->type = OBJT_DEAD; object->ref_count = 0; vm_radix_init(&object->rtree); - object->paging_in_progress = 0; + refcount_init(&object->paging_in_progress, 0); object->resident_page_count = 0; object->shadow_count = 0; object->flags = OBJ_DEAD; @@ -371,52 +372,44 @@ void vm_object_pip_add(vm_object_t object, short i) { - VM_OBJECT_ASSERT_WLOCKED(object); - object->paging_in_progress += i; + refcount_acquiren(&object->paging_in_progress, i); } void -vm_object_pip_subtract(vm_object_t object, short i) +vm_object_pip_wakeup(vm_object_t object) { - VM_OBJECT_ASSERT_WLOCKED(object); - object->paging_in_progress -= i; + refcount_release(&object->paging_in_progress); } void -vm_object_pip_wakeup(vm_object_t object) +vm_object_pip_wakeupn(vm_object_t object, short i) { - VM_OBJECT_ASSERT_WLOCKED(object); - object->paging_in_progress--; - if ((object->flags & OBJ_PIPWNT) && object->paging_in_progress == 0) { - vm_object_clear_flag(object, OBJ_PIPWNT); - wakeup(object); - } + refcount_releasen(&object->paging_in_progress, i); } void -vm_object_pip_wakeupn(vm_object_t object, short i) +vm_object_pip_wait(vm_object_t object, char *waitid) { VM_OBJECT_ASSERT_WLOCKED(object); - if (i) - object->paging_in_progress -= i; - if ((object->flags & OBJ_PIPWNT) && object->paging_in_progress == 0) { - vm_object_clear_flag(object, OBJ_PIPWNT); - wakeup(object); + + while (object->paging_in_progress) { + VM_OBJECT_WUNLOCK(object); + refcount_wait(&object->paging_in_progress, waitid, PVM); + VM_OBJECT_WLOCK(object); } } void -vm_object_pip_wait(vm_object_t object, char *waitid) +vm_object_pip_wait_unlocked(vm_object_t object, char *waitid) { - VM_OBJECT_ASSERT_WLOCKED(object); - while (object->paging_in_progress) { - object->flags |= OBJ_PIPWNT; - VM_OBJECT_SLEEP(object, object, PVM, waitid, 0); - } + VM_OBJECT_ASSERT_UNLOCKED(object); + + while (object->paging_in_progress) + refcount_wait(&object->paging_in_progress, waitid, PVM); } /* @@ -615,9 +608,10 @@ retry: } } else if (object->paging_in_progress) { VM_OBJECT_WUNLOCK(robject); - object->flags |= OBJ_PIPWNT; - VM_OBJECT_SLEEP(object, object, - PDROP | PVM, "objde2", 0); + VM_OBJECT_WUNLOCK(object); + refcount_wait( + &object->paging_in_progress, + "objde2", PVM); VM_OBJECT_WLOCK(robject); temp = robject->backing_object; if (object == temp) { @@ -761,14 +755,6 @@ vm_object_terminate(vm_object_t object) vm_object_set_flag(object, OBJ_DEAD); /* - * wait for the pageout daemon to be done with the object - */ - vm_object_pip_wait(object, "objtrm"); - - KASSERT(!object->paging_in_progress, - ("vm_object_terminate: pageout in progress")); - - /* * Clean and free the pages, as appropriate. All references to the * object are gone, so we don't need to lock it. */ @@ -789,6 +775,14 @@ vm_object_terminate(vm_object_t object) VM_OBJECT_WLOCK(object); } + + /* + * wait for the pageout daemon to be done with the object + */ + vm_object_pip_wait(object, "objtrm"); + + KASSERT(!object->paging_in_progress, + ("vm_object_terminate: pageout in progress")); KASSERT(object->ref_count == 0, ("vm_object_terminate: object with references, ref_count=%d", Modified: head/sys/vm/vm_object.h ============================================================================== --- head/sys/vm/vm_object.h Mon Aug 19 23:01:59 2019 (r351240) +++ head/sys/vm/vm_object.h Mon Aug 19 23:09:38 2019 (r351241) @@ -111,7 +111,7 @@ struct vm_object { objtype_t type; /* type of pager */ u_short flags; /* see below */ u_short pg_color; /* (c) color of first page in obj */ - u_int paging_in_progress; /* Paging (in or out) so don't collapse or destroy */ + volatile u_int paging_in_progress; /* Paging (in or out) so don't collapse or destroy */ int resident_page_count; /* number of resident pages */ struct vm_object *backing_object; /* object that I'm a shadow of */ vm_ooffset_t backing_object_offset;/* Offset in backing object */ @@ -183,7 +183,6 @@ struct vm_object { #define OBJ_DEAD 0x0008 /* dead objects (during rundown) */ #define OBJ_NOSPLIT 0x0010 /* dont split this object */ #define OBJ_UMTXDEAD 0x0020 /* umtx pshared was terminated */ -#define OBJ_PIPWNT 0x0040 /* paging in progress wanted */ #define OBJ_PG_DTOR 0x0080 /* dont reset object, leave that for dtor */ #define OBJ_MIGHTBEDIRTY 0x0100 /* object might be dirty, only for vnode */ #define OBJ_TMPFS_NODE 0x0200 /* object belongs to tmpfs VREG node */ @@ -309,10 +308,10 @@ vm_object_reserv(vm_object_t object) void vm_object_clear_flag(vm_object_t object, u_short bits); void vm_object_pip_add(vm_object_t object, short i); -void vm_object_pip_subtract(vm_object_t object, short i); void vm_object_pip_wakeup(vm_object_t object); void vm_object_pip_wakeupn(vm_object_t object, short i); void vm_object_pip_wait(vm_object_t object, char *waitid); +void vm_object_pip_wait_unlocked(vm_object_t object, char *waitid); void umtx_shm_object_init(vm_object_t object); void umtx_shm_object_terminated(vm_object_t object); From owner-svn-src-all@freebsd.org Mon Aug 19 23:57:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EA737D5746; Mon, 19 Aug 2019 23:57:37 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C9pT5w2Dz4bHf; Mon, 19 Aug 2019 23:57:37 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A8A772271B; Mon, 19 Aug 2019 23:57:37 +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 x7JNvbAC024699; Mon, 19 Aug 2019 23:57:37 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JNvbKE024698; Mon, 19 Aug 2019 23:57:37 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908192357.x7JNvbKE024698@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 19 Aug 2019 23:57:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351242 - in stable: 11/sys/kern 12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/kern 12/sys/kern X-SVN-Commit-Revision: 351242 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 23:57:38 -0000 Author: jhb Date: Mon Aug 19 23:57:37 2019 New Revision: 351242 URL: https://svnweb.freebsd.org/changeset/base/351242 Log: MFC 349616: Fix description of debug.obsolete_panic. Modified: stable/12/sys/kern/subr_bus.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/kern/subr_bus.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/kern/subr_bus.c ============================================================================== --- stable/12/sys/kern/subr_bus.c Mon Aug 19 23:09:38 2019 (r351241) +++ stable/12/sys/kern/subr_bus.c Mon Aug 19 23:57:37 2019 (r351242) @@ -5894,8 +5894,9 @@ devctl2_init(void) */ static int obsolete_panic = 0; SYSCTL_INT(_debug, OID_AUTO, obsolete_panic, CTLFLAG_RWTUN, &obsolete_panic, 0, - "Bus debug level"); -/* 0 - don't panic, 1 - panic if already obsolete, 2 - panic if deprecated */ + "Panic when obsolete features are used (0 = never, 1 = if osbolete, " + "2 = if deprecated)"); + static void gone_panic(int major, int running, const char *msg) { From owner-svn-src-all@freebsd.org Mon Aug 19 23:57:38 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 388E9D574A; Mon, 19 Aug 2019 23:57:38 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C9pV0p49z4bHg; Mon, 19 Aug 2019 23:57:38 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F2C152271C; Mon, 19 Aug 2019 23:57:37 +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 x7JNvbIG024705; Mon, 19 Aug 2019 23:57:37 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7JNvbNV024704; Mon, 19 Aug 2019 23:57:37 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908192357.x7JNvbNV024704@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 19 Aug 2019 23:57:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351242 - in stable: 11/sys/kern 12/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/kern 12/sys/kern X-SVN-Commit-Revision: 351242 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 19 Aug 2019 23:57:38 -0000 Author: jhb Date: Mon Aug 19 23:57:37 2019 New Revision: 351242 URL: https://svnweb.freebsd.org/changeset/base/351242 Log: MFC 349616: Fix description of debug.obsolete_panic. Modified: stable/11/sys/kern/subr_bus.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/kern/subr_bus.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/kern/subr_bus.c ============================================================================== --- stable/11/sys/kern/subr_bus.c Mon Aug 19 23:09:38 2019 (r351241) +++ stable/11/sys/kern/subr_bus.c Mon Aug 19 23:57:37 2019 (r351242) @@ -5716,8 +5716,9 @@ devctl2_init(void) */ static int obsolete_panic = 0; SYSCTL_INT(_debug, OID_AUTO, obsolete_panic, CTLFLAG_RWTUN, &obsolete_panic, 0, - "Bus debug level"); -/* 0 - don't panic, 1 - panic if already obsolete, 2 - panic if deprecated */ + "Panic when obsolete features are used (0 = never, 1 = if osbolete, " + "2 = if deprecated)"); + static void gone_panic(int major, int running, const char *msg) { From owner-svn-src-all@freebsd.org Tue Aug 20 00:50:18 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3956FD6782; Tue, 20 Aug 2019 00:50:18 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CBzG0ZCDz4f6R; Tue, 20 Aug 2019 00:50:18 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E4FA22303A; Tue, 20 Aug 2019 00:50:17 +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 x7K0oHJD055832; Tue, 20 Aug 2019 00:50:17 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7K0oH4v055829; Tue, 20 Aug 2019 00:50:17 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908200050.x7K0oH4v055829@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 20 Aug 2019 00:50:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351243 - in stable: 11/sys/kgssapi/krb5 12/sys/kgssapi/krb5 X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/kgssapi/krb5 12/sys/kgssapi/krb5 X-SVN-Commit-Revision: 351243 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 00:50:18 -0000 Author: jhb Date: Tue Aug 20 00:50:17 2019 New Revision: 351243 URL: https://svnweb.freebsd.org/changeset/base/351243 Log: MFC 348875: Add warnings for Kerberos GSS algorithms deprecated in RFCs 6649 and 8429. All of these algorithms are explicitly marked SHOULD NOT in one of these RFCs. Specifically, RFC 6649 deprecates all algorithms using DES as well as the "export-friendly" variant of RC4. RFC 8429 deprecates Triple DES and the remaining RC4 algorithms. Relnotes: yes Modified: stable/12/sys/kgssapi/krb5/kcrypto_arcfour.c stable/12/sys/kgssapi/krb5/kcrypto_des.c stable/12/sys/kgssapi/krb5/kcrypto_des3.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/kgssapi/krb5/kcrypto_arcfour.c stable/11/sys/kgssapi/krb5/kcrypto_des.c stable/11/sys/kgssapi/krb5/kcrypto_des3.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/kgssapi/krb5/kcrypto_arcfour.c ============================================================================== --- stable/12/sys/kgssapi/krb5/kcrypto_arcfour.c Mon Aug 19 23:57:37 2019 (r351242) +++ stable/12/sys/kgssapi/krb5/kcrypto_arcfour.c Tue Aug 20 00:50:17 2019 (r351243) @@ -46,8 +46,12 @@ __FBSDID("$FreeBSD$"); static void arcfour_init(struct krb5_key_state *ks) { + static struct timeval lastwarn; + static struct timeval warninterval = { .tv_sec = 3600, .tv_usec = 0 }; ks->ks_priv = NULL; + if (ratecheck(&lastwarn, &warninterval)) + gone_in(13, "RC4 cipher for Kerberos GSS"); } static void Modified: stable/12/sys/kgssapi/krb5/kcrypto_des.c ============================================================================== --- stable/12/sys/kgssapi/krb5/kcrypto_des.c Mon Aug 19 23:57:37 2019 (r351242) +++ stable/12/sys/kgssapi/krb5/kcrypto_des.c Tue Aug 20 00:50:17 2019 (r351243) @@ -53,11 +53,15 @@ struct des1_state { static void des1_init(struct krb5_key_state *ks) { + static struct timeval lastwarn; + static struct timeval warninterval = { .tv_sec = 3600, .tv_usec = 0 }; struct des1_state *ds; ds = malloc(sizeof(struct des1_state), M_GSSAPI, M_WAITOK|M_ZERO); mtx_init(&ds->ds_lock, "gss des lock", NULL, MTX_DEF); ks->ks_priv = ds; + if (ratecheck(&lastwarn, &warninterval)) + gone_in(13, "DES cipher for Kerberos GSS"); } static void Modified: stable/12/sys/kgssapi/krb5/kcrypto_des3.c ============================================================================== --- stable/12/sys/kgssapi/krb5/kcrypto_des3.c Mon Aug 19 23:57:37 2019 (r351242) +++ stable/12/sys/kgssapi/krb5/kcrypto_des3.c Tue Aug 20 00:50:17 2019 (r351243) @@ -54,11 +54,15 @@ struct des3_state { static void des3_init(struct krb5_key_state *ks) { + static struct timeval lastwarn; + static struct timeval warninterval = { .tv_sec = 3600, .tv_usec = 0 }; struct des3_state *ds; ds = malloc(sizeof(struct des3_state), M_GSSAPI, M_WAITOK|M_ZERO); mtx_init(&ds->ds_lock, "gss des3 lock", NULL, MTX_DEF); ks->ks_priv = ds; + if (ratecheck(&lastwarn, &warninterval)) + gone_in(13, "DES3 cipher for Kerberos GSS"); } static void From owner-svn-src-all@freebsd.org Tue Aug 20 00:50:18 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E7832D6790; Tue, 20 Aug 2019 00:50:18 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CBzG5pVsz4f6S; Tue, 20 Aug 2019 00:50:18 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A8C2E2303B; Tue, 20 Aug 2019 00:50:18 +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 x7K0oIP2055840; Tue, 20 Aug 2019 00:50:18 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7K0oIsJ055837; Tue, 20 Aug 2019 00:50:18 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908200050.x7K0oIsJ055837@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 20 Aug 2019 00:50:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351243 - in stable: 11/sys/kgssapi/krb5 12/sys/kgssapi/krb5 X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/kgssapi/krb5 12/sys/kgssapi/krb5 X-SVN-Commit-Revision: 351243 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 00:50:19 -0000 Author: jhb Date: Tue Aug 20 00:50:17 2019 New Revision: 351243 URL: https://svnweb.freebsd.org/changeset/base/351243 Log: MFC 348875: Add warnings for Kerberos GSS algorithms deprecated in RFCs 6649 and 8429. All of these algorithms are explicitly marked SHOULD NOT in one of these RFCs. Specifically, RFC 6649 deprecates all algorithms using DES as well as the "export-friendly" variant of RC4. RFC 8429 deprecates Triple DES and the remaining RC4 algorithms. Relnotes: yes Modified: stable/11/sys/kgssapi/krb5/kcrypto_arcfour.c stable/11/sys/kgssapi/krb5/kcrypto_des.c stable/11/sys/kgssapi/krb5/kcrypto_des3.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/kgssapi/krb5/kcrypto_arcfour.c stable/12/sys/kgssapi/krb5/kcrypto_des.c stable/12/sys/kgssapi/krb5/kcrypto_des3.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/kgssapi/krb5/kcrypto_arcfour.c ============================================================================== --- stable/11/sys/kgssapi/krb5/kcrypto_arcfour.c Mon Aug 19 23:57:37 2019 (r351242) +++ stable/11/sys/kgssapi/krb5/kcrypto_arcfour.c Tue Aug 20 00:50:17 2019 (r351243) @@ -44,8 +44,12 @@ __FBSDID("$FreeBSD$"); static void arcfour_init(struct krb5_key_state *ks) { + static struct timeval lastwarn; + static struct timeval warninterval = { .tv_sec = 3600, .tv_usec = 0 }; ks->ks_priv = NULL; + if (ratecheck(&lastwarn, &warninterval)) + gone_in(13, "RC4 cipher for Kerberos GSS"); } static void Modified: stable/11/sys/kgssapi/krb5/kcrypto_des.c ============================================================================== --- stable/11/sys/kgssapi/krb5/kcrypto_des.c Mon Aug 19 23:57:37 2019 (r351242) +++ stable/11/sys/kgssapi/krb5/kcrypto_des.c Tue Aug 20 00:50:17 2019 (r351243) @@ -51,11 +51,15 @@ struct des1_state { static void des1_init(struct krb5_key_state *ks) { + static struct timeval lastwarn; + static struct timeval warninterval = { .tv_sec = 3600, .tv_usec = 0 }; struct des1_state *ds; ds = malloc(sizeof(struct des1_state), M_GSSAPI, M_WAITOK|M_ZERO); mtx_init(&ds->ds_lock, "gss des lock", NULL, MTX_DEF); ks->ks_priv = ds; + if (ratecheck(&lastwarn, &warninterval)) + gone_in(13, "DES cipher for Kerberos GSS"); } static void Modified: stable/11/sys/kgssapi/krb5/kcrypto_des3.c ============================================================================== --- stable/11/sys/kgssapi/krb5/kcrypto_des3.c Mon Aug 19 23:57:37 2019 (r351242) +++ stable/11/sys/kgssapi/krb5/kcrypto_des3.c Tue Aug 20 00:50:17 2019 (r351243) @@ -52,11 +52,15 @@ struct des3_state { static void des3_init(struct krb5_key_state *ks) { + static struct timeval lastwarn; + static struct timeval warninterval = { .tv_sec = 3600, .tv_usec = 0 }; struct des3_state *ds; ds = malloc(sizeof(struct des3_state), M_GSSAPI, M_WAITOK|M_ZERO); mtx_init(&ds->ds_lock, "gss des3 lock", NULL, MTX_DEF); ks->ks_priv = ds; + if (ratecheck(&lastwarn, &warninterval)) + gone_in(13, "DES3 cipher for Kerberos GSS"); } static void From owner-svn-src-all@freebsd.org Tue Aug 20 01:06:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EE740D6BD2; Tue, 20 Aug 2019 01:06:43 +0000 (UTC) (envelope-from stevek@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CCLC5znyz4fwj; Tue, 20 Aug 2019 01:06:43 +0000 (UTC) (envelope-from stevek@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AEF98233D8; Tue, 20 Aug 2019 01:06:43 +0000 (UTC) (envelope-from stevek@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7K16hD7067245; Tue, 20 Aug 2019 01:06:43 GMT (envelope-from stevek@FreeBSD.org) Received: (from stevek@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7K16hWT067244; Tue, 20 Aug 2019 01:06:43 GMT (envelope-from stevek@FreeBSD.org) Message-Id: <201908200106.x7K16hWT067244@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: stevek set sender to stevek@FreeBSD.org using -f From: "Stephen J. Kiernan" Date: Tue, 20 Aug 2019 01:06:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351244 - head/sys/dev/usb/net X-SVN-Group: head X-SVN-Commit-Author: stevek X-SVN-Commit-Paths: head/sys/dev/usb/net X-SVN-Commit-Revision: 351244 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 01:06:44 -0000 Author: stevek Date: Tue Aug 20 01:06:43 2019 New Revision: 351244 URL: https://svnweb.freebsd.org/changeset/base/351244 Log: usb_ethernet.h includes a number of mii headers, but only does so in order to have struct mii_data available. However, it only really needs a forward declaration of struct mii_data for use in pointer form for the return type of a function prototype. Custom kernel configuration that have usb and fdt enabled, but no miibus, end up with compilation failures because miibus_if.h will not get generated. Due to the above, the following changes have been made to usb_ethernet.h: * remove the inclusion of mii headers * forward-declare struct mii_data * include net/ifq.h to satify the need for complete struct ifqueue Reviewed by: ian Obtained from: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D21293 Modified: head/sys/dev/usb/net/usb_ethernet.h Modified: head/sys/dev/usb/net/usb_ethernet.h ============================================================================== --- head/sys/dev/usb/net/usb_ethernet.h Tue Aug 20 00:50:17 2019 (r351243) +++ head/sys/dev/usb/net/usb_ethernet.h Tue Aug 20 01:06:43 2019 (r351244) @@ -45,14 +45,11 @@ #include #include #include +#include #include #include -#include "miibus_if.h" - -#include -#include - +struct mii_data; struct usb_ether; struct usb_device_request; From owner-svn-src-all@freebsd.org Tue Aug 20 01:26:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CDEA0D747F; Tue, 20 Aug 2019 01:26:03 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CCmW576Rz3CG5; Tue, 20 Aug 2019 01:26:03 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 73B432377B; Tue, 20 Aug 2019 01:26:03 +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 x7K1Q37Z079178; Tue, 20 Aug 2019 01:26:03 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7K1Q2x4079175; Tue, 20 Aug 2019 01:26:02 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201908200126.x7K1Q2x4079175@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 20 Aug 2019 01:26:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351245 - in head/sys/powerpc: booke include X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: in head/sys/powerpc: booke include X-SVN-Commit-Revision: 351245 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 01:26:03 -0000 Author: jhibbits Date: Tue Aug 20 01:26:02 2019 New Revision: 351245 URL: https://svnweb.freebsd.org/changeset/base/351245 Log: powerpc: Link Book-E kernels at the same address as AIM kernels Summary: Reduce the diff between AIM and Book-E even more. This also cleans up vmparam.h significantly. Reviewed by: luporl Differential Revision: https://reviews.freebsd.org/D21301 Modified: head/sys/powerpc/booke/pmap.c head/sys/powerpc/include/param.h head/sys/powerpc/include/vmparam.h Modified: head/sys/powerpc/booke/pmap.c ============================================================================== --- head/sys/powerpc/booke/pmap.c Tue Aug 20 01:06:43 2019 (r351244) +++ head/sys/powerpc/booke/pmap.c Tue Aug 20 01:26:02 2019 (r351245) @@ -219,7 +219,7 @@ uint32_t tlb1_entries; #define TLB1_ENTRIES (tlb1_entries) -static vm_offset_t tlb1_map_base = VM_MAXUSER_ADDRESS + PAGE_SIZE; +static vm_offset_t tlb1_map_base = (vm_offset_t)VM_MAXUSER_ADDRESS + PAGE_SIZE; static tlbtid_t tid_alloc(struct pmap *); static void tid_flush(tlbtid_t tid); @@ -1574,7 +1574,6 @@ mmu_booke_bootstrap(mmu_t mmu, vm_offset_t start, vm_o * Note that kernel end does not necessarily relate to kernsize. * kernsize is the size of the kernel that is actually mapped. */ - kernstart = trunc_page(start); data_start = round_page(kernelend); data_end = data_start; @@ -2146,7 +2145,7 @@ mmu_booke_map_user_ptr(mmu_t mmu, pmap_t pm, volatile void **kaddr, size_t ulen, size_t *klen) { - if ((uintptr_t)uaddr + ulen > VM_MAXUSER_ADDRESS + PAGE_SIZE) + if (trunc_page((uintptr_t)uaddr + ulen) > VM_MAXUSER_ADDRESS) return (EFAULT); *kaddr = (void *)(uintptr_t)uaddr; @@ -2166,7 +2165,7 @@ mmu_booke_decode_kernel_ptr(mmu_t mmu, vm_offset_t add vm_offset_t *decoded_addr) { - if (addr < VM_MAXUSER_ADDRESS) + if (trunc_page(addr) <= VM_MAXUSER_ADDRESS) *is_user = 1; else *is_user = 0; @@ -4025,7 +4024,8 @@ tlb1_mapin_region(vm_offset_t va, vm_paddr_t pa, vm_si void tlb1_init() { - uint32_t mas0, mas1, mas2, mas3, mas7; + vm_offset_t mas2; + uint32_t mas0, mas1, mas3, mas7; uint32_t tsz; tlb1_get_tlbconf(); @@ -4044,6 +4044,7 @@ tlb1_init() tsz = (mas1 & MAS1_TSIZE_MASK) >> MAS1_TSIZE_SHIFT; kernsize += (tsz > 0) ? tsize2size(tsz) : 0; + kernstart = trunc_page(mas2); /* Setup TLB miss defaults */ set_mas4_defaults(); Modified: head/sys/powerpc/include/param.h ============================================================================== --- head/sys/powerpc/include/param.h Tue Aug 20 01:06:43 2019 (r351244) +++ head/sys/powerpc/include/param.h Tue Aug 20 01:26:02 2019 (r351245) @@ -103,7 +103,7 @@ #define CACHE_LINE_SIZE (1 << CACHE_LINE_SHIFT) #define PAGE_SHIFT 12 -#define PAGE_SIZE (1L << PAGE_SHIFT) /* Page size */ +#define PAGE_SIZE (1 << PAGE_SHIFT) /* Page size */ #define PAGE_MASK (PAGE_SIZE - 1) #define NPTEPG (PAGE_SIZE/(sizeof (pt_entry_t))) Modified: head/sys/powerpc/include/vmparam.h ============================================================================== --- head/sys/powerpc/include/vmparam.h Tue Aug 20 01:06:43 2019 (r351244) +++ head/sys/powerpc/include/vmparam.h Tue Aug 20 01:26:02 2019 (r351245) @@ -72,53 +72,35 @@ #endif #ifdef AIM -#define VM_MAXUSER_ADDRESS32 ((vm_offset_t)0xfffff000) +#define VM_MAXUSER_ADDRESS32 0xfffff000 #else -#define VM_MAXUSER_ADDRESS32 ((vm_offset_t)0x7ffff000) +#define VM_MAXUSER_ADDRESS32 0x7ffff000 #endif /* * Would like to have MAX addresses = 0, but this doesn't (currently) work */ -#if !defined(LOCORE) #ifdef __powerpc64__ -#define VM_MIN_ADDRESS (0x0000000000000000UL) -#define VM_MAXUSER_ADDRESS (0x3ffffffffffff000UL) -#define VM_MAX_ADDRESS (0xffffffffffffffffUL) +#define VM_MIN_ADDRESS 0x0000000000000000 +#define VM_MAXUSER_ADDRESS 0x3ffffffffffff000 +#define VM_MAX_ADDRESS 0xffffffffffffffff +#define VM_MIN_KERNEL_ADDRESS 0xe000000000000000 +#define VM_MAX_KERNEL_ADDRESS 0xe0000007ffffffff +#define VM_MAX_SAFE_KERNEL_ADDRESS VM_MAX_KERNEL_ADDRESS #else -#define VM_MIN_ADDRESS ((vm_offset_t)0) +#define VM_MIN_ADDRESS 0 #define VM_MAXUSER_ADDRESS VM_MAXUSER_ADDRESS32 -#define VM_MAX_ADDRESS ((vm_offset_t)0xffffffff) +#define VM_MAX_ADDRESS 0xffffffff #endif + #define SHAREDPAGE (VM_MAXUSER_ADDRESS - PAGE_SIZE) -#else /* LOCORE */ -#ifdef BOOKE -#define VM_MIN_ADDRESS 0 -#ifdef __powerpc64__ -#define VM_MAXUSER_ADDRESS 0x3ffffffffffff000 -#else -#define VM_MAXUSER_ADDRESS 0x7ffff000 -#endif -#endif -#endif /* LOCORE */ #define FREEBSD32_SHAREDPAGE (VM_MAXUSER_ADDRESS32 - PAGE_SIZE) #define FREEBSD32_USRSTACK FREEBSD32_SHAREDPAGE -#ifdef __powerpc64__ -#ifndef LOCORE -#define VM_MIN_KERNEL_ADDRESS 0xe000000000000000UL -#define VM_MAX_KERNEL_ADDRESS 0xe0000007ffffffffUL -#else -#define VM_MIN_KERNEL_ADDRESS 0xe000000000000000 -#define VM_MAX_KERNEL_ADDRESS 0xe0000007ffffffff -#endif -#define VM_MAX_SAFE_KERNEL_ADDRESS VM_MAX_KERNEL_ADDRESS -#endif - -#ifdef AIM #define KERNBASE 0x00100100 /* start of kernel virtual */ +#ifdef AIM #ifndef __powerpc64__ #define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)KERNEL_SR << ADDR_SR_SHFT) #define VM_MAX_SAFE_KERNEL_ADDRESS (VM_MIN_KERNEL_ADDRESS + 2*SEGMENT_LENGTH -1) @@ -136,12 +118,9 @@ /* Use the direct map for UMA small allocs on powerpc64. */ #ifdef __powerpc64__ #define UMA_MD_SMALL_ALLOC -#endif - -#define KERNBASE 0x04000100 /* start of kernel physical */ -#ifndef __powerpc64__ -#define VM_MIN_KERNEL_ADDRESS 0xc0000000 -#define VM_MAX_KERNEL_ADDRESS 0xffffefff +#else +#define VM_MIN_KERNEL_ADDRESS 0xc0000000 +#define VM_MAX_KERNEL_ADDRESS 0xffffefff #define VM_MAX_SAFE_KERNEL_ADDRESS VM_MAX_KERNEL_ADDRESS #endif From owner-svn-src-all@freebsd.org Tue Aug 20 01:30:36 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 88412D7521; Tue, 20 Aug 2019 01:30:36 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CCsm35Z2z3CQ6; Tue, 20 Aug 2019 01:30:36 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BE3723788; Tue, 20 Aug 2019 01:30:36 +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 x7K1Ua3Q079441; Tue, 20 Aug 2019 01:30:36 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7K1UaB6079440; Tue, 20 Aug 2019 01:30:36 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908200130.x7K1UaB6079440@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 20 Aug 2019 01:30:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351246 - in stable: 11/sys/opencrypto 12/sys/opencrypto X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/opencrypto 12/sys/opencrypto X-SVN-Commit-Revision: 351246 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 01:30:36 -0000 Author: jhb Date: Tue Aug 20 01:30:35 2019 New Revision: 351246 URL: https://svnweb.freebsd.org/changeset/base/351246 Log: MFC 348876: Add warnings to /dev/crypto for deprecated algorithms. These algorithms are deprecated algorithms that will have no in-kernel consumers in FreeBSD 13. Specifically, deprecate the following algorithms: - ARC4 - Blowfish - CAST128 - DES - 3DES - MD5-HMAC - Skipjack Relnotes: yes Modified: stable/12/sys/opencrypto/cryptodev.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/opencrypto/cryptodev.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/opencrypto/cryptodev.c ============================================================================== --- stable/12/sys/opencrypto/cryptodev.c Tue Aug 20 01:26:02 2019 (r351245) +++ stable/12/sys/opencrypto/cryptodev.c Tue Aug 20 01:30:35 2019 (r351246) @@ -386,6 +386,9 @@ cryptof_ioctl( struct crypt_op copc; struct crypt_kop kopc; #endif + static struct timeval arc4warn, blfwarn, castwarn, deswarn, md5warn; + static struct timeval skipwarn, tdeswarn; + static struct timeval warninterval = { .tv_sec = 60, .tv_usec = 0 }; switch (cmd) { case CIOCGSESSION: @@ -406,18 +409,28 @@ cryptof_ioctl( case 0: break; case CRYPTO_DES_CBC: + if (ratecheck(&deswarn, &warninterval)) + gone_in(13, "DES cipher via /dev/crypto"); txform = &enc_xform_des; break; case CRYPTO_3DES_CBC: + if (ratecheck(&tdeswarn, &warninterval)) + gone_in(13, "3DES cipher via /dev/crypto"); txform = &enc_xform_3des; break; case CRYPTO_BLF_CBC: + if (ratecheck(&blfwarn, &warninterval)) + gone_in(13, "Blowfish cipher via /dev/crypto"); txform = &enc_xform_blf; break; case CRYPTO_CAST_CBC: + if (ratecheck(&castwarn, &warninterval)) + gone_in(13, "CAST128 cipher via /dev/crypto"); txform = &enc_xform_cast5; break; case CRYPTO_SKIPJACK_CBC: + if (ratecheck(&skipwarn, &warninterval)) + gone_in(13, "Skipjack cipher via /dev/crypto"); txform = &enc_xform_skipjack; break; case CRYPTO_AES_CBC: @@ -430,6 +443,8 @@ cryptof_ioctl( txform = &enc_xform_null; break; case CRYPTO_ARC4: + if (ratecheck(&arc4warn, &warninterval)) + gone_in(13, "ARC4 cipher via /dev/crypto"); txform = &enc_xform_arc4; break; case CRYPTO_CAMELLIA_CBC: @@ -458,6 +473,9 @@ cryptof_ioctl( case 0: break; case CRYPTO_MD5_HMAC: + if (ratecheck(&md5warn, &warninterval)) + gone_in(13, + "MD5-HMAC authenticator via /dev/crypto"); thash = &auth_hash_hmac_md5; break; case CRYPTO_POLY1305: From owner-svn-src-all@freebsd.org Tue Aug 20 01:30:36 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D8467D7525; Tue, 20 Aug 2019 01:30:36 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CCsm5Pqzz3CQ7; Tue, 20 Aug 2019 01:30:36 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9C88F23789; Tue, 20 Aug 2019 01:30:36 +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 x7K1UaFh079447; Tue, 20 Aug 2019 01:30:36 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7K1UajV079446; Tue, 20 Aug 2019 01:30:36 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908200130.x7K1UajV079446@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 20 Aug 2019 01:30:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351246 - in stable: 11/sys/opencrypto 12/sys/opencrypto X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/opencrypto 12/sys/opencrypto X-SVN-Commit-Revision: 351246 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 01:30:36 -0000 Author: jhb Date: Tue Aug 20 01:30:35 2019 New Revision: 351246 URL: https://svnweb.freebsd.org/changeset/base/351246 Log: MFC 348876: Add warnings to /dev/crypto for deprecated algorithms. These algorithms are deprecated algorithms that will have no in-kernel consumers in FreeBSD 13. Specifically, deprecate the following algorithms: - ARC4 - Blowfish - CAST128 - DES - 3DES - MD5-HMAC - Skipjack Relnotes: yes Modified: stable/11/sys/opencrypto/cryptodev.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/opencrypto/cryptodev.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/opencrypto/cryptodev.c ============================================================================== --- stable/11/sys/opencrypto/cryptodev.c Tue Aug 20 01:26:02 2019 (r351245) +++ stable/11/sys/opencrypto/cryptodev.c Tue Aug 20 01:30:35 2019 (r351246) @@ -388,6 +388,9 @@ cryptof_ioctl( struct crypt_op copc; struct crypt_kop kopc; #endif + static struct timeval arc4warn, blfwarn, castwarn, deswarn, md5warn; + static struct timeval skipwarn, tdeswarn; + static struct timeval warninterval = { .tv_sec = 60, .tv_usec = 0 }; switch (cmd) { case CIOCGSESSION: @@ -408,18 +411,28 @@ cryptof_ioctl( case 0: break; case CRYPTO_DES_CBC: + if (ratecheck(&deswarn, &warninterval)) + gone_in(13, "DES cipher via /dev/crypto"); txform = &enc_xform_des; break; case CRYPTO_3DES_CBC: + if (ratecheck(&tdeswarn, &warninterval)) + gone_in(13, "3DES cipher via /dev/crypto"); txform = &enc_xform_3des; break; case CRYPTO_BLF_CBC: + if (ratecheck(&blfwarn, &warninterval)) + gone_in(13, "Blowfish cipher via /dev/crypto"); txform = &enc_xform_blf; break; case CRYPTO_CAST_CBC: + if (ratecheck(&castwarn, &warninterval)) + gone_in(13, "CAST128 cipher via /dev/crypto"); txform = &enc_xform_cast5; break; case CRYPTO_SKIPJACK_CBC: + if (ratecheck(&skipwarn, &warninterval)) + gone_in(13, "Skipjack cipher via /dev/crypto"); txform = &enc_xform_skipjack; break; case CRYPTO_AES_CBC: @@ -432,6 +445,8 @@ cryptof_ioctl( txform = &enc_xform_null; break; case CRYPTO_ARC4: + if (ratecheck(&arc4warn, &warninterval)) + gone_in(13, "ARC4 cipher via /dev/crypto"); txform = &enc_xform_arc4; break; case CRYPTO_CAMELLIA_CBC: @@ -454,6 +469,9 @@ cryptof_ioctl( case 0: break; case CRYPTO_MD5_HMAC: + if (ratecheck(&md5warn, &warninterval)) + gone_in(13, + "MD5-HMAC authenticator via /dev/crypto"); thash = &auth_hash_hmac_md5; break; case CRYPTO_SHA1_HMAC: From owner-svn-src-all@freebsd.org Tue Aug 20 07:10:26 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 26BA8C8124; Tue, 20 Aug 2019 07:10:26 +0000 (UTC) (envelope-from ohartmann@walstatt.org) Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass Class 2 CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CMPs14cfz4079; Tue, 20 Aug 2019 07:10:24 +0000 (UTC) (envelope-from ohartmann@walstatt.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1566285013; bh=ewWDeGVmT7vq87/C7tfztFqrh1l2tUqM2F0g7qPkJxo=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=kt5k3qdqe9LbxtV6osOKxbak3HXnkhFBpYo2w60gj4zk9XxBQUDnUnQ5gGER9OV5V oW8DIIitWUIWalKw+Rwin+2Tnt3Tkqity5ZRZp6ewjgzlkY8EcZKUjj33QO8zh9W/s qVMELCpyNkpU2l9rpqMwgZPPTdFNAbb+2iN2vciI= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from freyja ([46.88.81.15]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0LyR1G-1iMT8x02KM-015nzM; Tue, 20 Aug 2019 09:04:25 +0200 Date: Tue, 20 Aug 2019 09:04:23 +0200 From: "O. Hartmann" To: "Stephen J. Kiernan" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r351244 - head/sys/dev/usb/net Message-ID: <20190820090413.6c08b565@freyja> In-Reply-To: <201908200106.x7K16hWT067244@repo.freebsd.org> References: <201908200106.x7K16hWT067244@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:4t2/3dEb8jAM205ipaJmRNSCtjGXiT1Tz1fqhxcFwBMQpdpZqZ7 VRjpaCvfCnDP2qJ4DwSIYIMPp1xY+u3fbw5OxA2JSkOAXH7WuTC/6h7Qu/Ao+7ysygP18eo 5hpdhO3yqXu0Ya8U7fXPB2qbXZRZuOmMYiRweIithYX053dAts5eDLn1KUi4YZy9xzhbvmL 8EVlOjepXfcvPtnGHGmYA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:YKN2WAVnpMc=:tVAjonYjndl93GLu3VST/G CdJ1j9AM5lImdU6hhsAsUC/g8V4mudERz4FaUdKQLznnF3r88JpdAqWEksYJzQmHHRHKuTPw8 5JFmoaV/UVa13RZ0t0FmlP2OvLheD7qH0Qax/7h59yLkSLYYH/V4x96dU9A3FFxBTVFta+No4 Q2ttChalV0FNG+WE1nFX1uwynDXaZkDv4Bj/BdpXszmdN67UXMGBnzInsNePQHh/GYxJqJEYG j+ghUVer4621nDTaZUcgGnoLsdamOnZeCYSsrb73GwvFjY0gWV8scufklhRmxnJUFNGZpdllj n/IF2krJD4cgLPtVi1fIG2StTe5GxZG48K67oTdyJ3osrwF4cOcXZycGOFU9DvpypuWu8NZDD MksQABeDWKhXxJbVFLHLfvTFqH4+GB0JNV2DaBbuzfIaajuhTf/HSb27m/8Gd8SVkWjxRs0ut m55oDJ1yDBqFfB/oMMJr9d+8ddgsdvTV88y6g+VvyaE/qX1WIhhdeoKXv7i1Wbx+WwmQYs2CJ VHum4KYffAZkt6LQYIbkzJES8LOg2X8GM3qwJb+EjP2ug1tGrheTZRKgFiYSj6SSOsw9rbGLl RclCIDOAfml/IwqEOcko/3J7U3kLekena42IN6Zrg7TRpvkFf8xAhePg1RKKk9yDaJuyuhdKt 6fokEKJBeorQVx5x09pq+dfmS953hTw1rd+Sqb+eZBX2DaEGxapRqkAFY4d1poXwf3Vg3nwvi wHpkQYJld6Oom8VNWb85+fvtclnfeSwtzeLlSWOcdrAdRt+vIbz1P3WeQ7vCax7fG7nkn2LXy e6h5+66aqLqpwxA14cCEVX/PUGYrJIytiGoOXpAdMunWX4pNI2xcPtYC1ng4r1kRiRKDdSF3B 1J818zvsndjxa7QO9bSdSZ6PuYa62nCiabk6PJeEkzQkWjXOlM27HLgNuARnbHG92SlbtAtkI x6ZPIeoi2WxbM7kIdYwQmkdUGKWgF4dsSvbxBC4yBR4OhaW138EZcIknVOPb5pKwL/cpWsbkg VnBfp+WKM93ILVm5Kjmr0B3bvpOnaKfNoylfEJreEdLXwQ8HzAxgEmuboPfxTRWKIrYNhwS4e 9nNF9cVgS+AsB00LWqA2WZ2mEgvOtwJBNkD61n5H4sMuMlO8aJZF8lXs7aVBov7PconiCbP0h dfjwuHpFR7v5S1NaA1Ykp2FE7xXLrR9T6sAETooEC8cFzonw== X-Rspamd-Queue-Id: 46CMPs14cfz4079 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmx.net header.s=badeba3b8450 header.b=kt5k3qdq; dmarc=none; spf=none (mx1.freebsd.org: domain of ohartmann@walstatt.org has no SPF policy when checking 212.227.17.20) smtp.mailfrom=ohartmann@walstatt.org X-Spamd-Result: default: False [-3.90 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[gmx.net:s=badeba3b8450]; RECEIVED_SPAMHAUS_PBL(0.00)[15.81.88.46.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; IP_SCORE(-1.08)[ip: (-6.31), ipnet: 212.227.0.0/16(-1.36), asn: 8560(2.25), country: DE(-0.01)]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[walstatt.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[gmx.net:+]; NEURAL_HAM_SHORT(-0.92)[-0.917,0]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_SPF_NA(0.00)[]; RCVD_IN_DNSWL_LOW(-0.10)[20.17.227.212.list.dnswl.org : 127.0.3.1]; FROM_EQ_ENVFROM(0.00)[]; MID_RHS_NOT_FQDN(0.50)[]; ASN(0.00)[asn:8560, ipnet:212.227.0.0/16, country:DE]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 07:10:26 -0000 On Tue, 20 Aug 2019 01:06:43 +0000 (UTC) "Stephen J. Kiernan" wrote: > Author: stevek > Date: Tue Aug 20 01:06:43 2019 > New Revision: 351244 > URL: https://svnweb.freebsd.org/changeset/base/351244 > > Log: > usb_ethernet.h includes a number of mii headers, but only does so in > order to have struct mii_data available. However, it only really needs > a forward declaration of struct mii_data for use in pointer form for > the return type of a function prototype. > > Custom kernel configuration that have usb and fdt enabled, but no miib= us, > end up with compilation failures because miibus_if.h will not get > generated. > > Due to the above, the following changes have been made to usb_ethernet= .h: > * remove the inclusion of mii headers > * forward-declare struct mii_data > * include net/ifq.h to satify the need for complete struct ifqueue > > Reviewed by: ian > Obtained from: Juniper Networks, Inc. > Differential Revision: https://reviews.freebsd.org/D21293 > > Modified: > head/sys/dev/usb/net/usb_ethernet.h > > Modified: head/sys/dev/usb/net/usb_ethernet.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/dev/usb/net/usb_ethernet.h Tue Aug 20 00:50:17 > 2019 (r351243) +++ head/sys/dev/usb/net/usb_ethernet.h Tue Aug > 20 01:06:43 2019 (r351244) @@ -45,14 +45,11 @@ > #include > #include > #include > +#include > #include > #include > > -#include "miibus_if.h" > - > -#include > -#include > - > +struct mii_data; > struct usb_ether; > struct usb_device_request; > > _______________________________________________ > 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" This breaks buildkernel: [...] =3D=3D=3D> usb/udl (all) Building /usr/obj/usr/src/amd64.amd64/sys/WOTAN/modules/usr/src/sys/modules/usb/udl= /udl.ko =3D=3D=3D> usb/uether (all) Building /usr/obj/usr/src/amd64.amd64/sys/WOTAN/modules/usr/src/sys/modules/usb/uet= her/uether.ko =3D=3D=3D> usb/aue (all) Building /usr/obj/usr/src/amd64.amd64/sys/WOTAN/modules/usr/src/sys/modules/usb/aue= /if_aue.o /usr/src/sys/dev/usb/net/if_aue.c:197:8: error: unknown type name 'miibus_readreg_t' static miibus_readreg_t aue_miibus_readreg; ^ /usr/src/sys/dev/usb/net/if_aue.c:198:8: error: unknown type name 'miibus_writereg_t' static miibus_writereg_t aue_miibus_writereg; ^ /usr/src/sys/dev/usb/net/if_aue.c:199:8: error: unknown type name 'miibus_statchg_t' static miibus_statchg_t aue_miibus_statchg; ^ /usr/src/sys/dev/usb/net/if_aue.c:262:2: error: use of undeclared identifi= er 'miibus_readreg_desc' DEVMETHOD(miibus_readreg, aue_miibus_readreg), ^ /usr/src/sys/sys/bus.h:751:19: note: expanded from macro 'DEVMETHOD' #define DEVMETHOD KOBJMETHOD [...] Kind regards, oh From owner-svn-src-all@freebsd.org Tue Aug 20 11:19:31 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5767BCE70A for ; Tue, 20 Aug 2019 11:19:31 +0000 (UTC) (envelope-from joseph@digitalmarketingline.com) Received: from mail-qt1-x844.google.com (mail-qt1-x844.google.com [IPv6:2607:f8b0:4864:20::844]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CSxG3Px8z4D8g for ; Tue, 20 Aug 2019 11:19:30 +0000 (UTC) (envelope-from joseph@digitalmarketingline.com) Received: by mail-qt1-x844.google.com with SMTP id q4so5524768qtp.1 for ; Tue, 20 Aug 2019 04:19:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=digitalmarketingline-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:from:date:message-id:subject:to; bh=YMUng2I8SeTMmTPBGD5bEuJbjx92eFeUfKA240VNIys=; b=EVSVXIr1/551emPt63Cxo/uPETlfr/OKlkxreHEuhSbVWrhw/daV6YvTEOSTMtDr8S F06bzEuEE3Sl9F6CRkmMkwu2EQjKg31Nkj9yBb7UiC0JB9U9rZK5+fXIaEGglRSoF/Rv vs7LggNbuQno9u8yn1wVOQ7olaUo90czuCu3+i98Lo87Tzc07vX3lzhs8sErEUkXhpqI 3ECSUfYakGeYrqmD5l21MeWUS9OA/ulKA1tuYdX0f5Wo6PsGHmvwycRGNUumb7Bi2YcV EkKvFmPxnircD3aOo0NFWZm5V1s5m1FBWsZe61JYLeL1MnrF0QZ6nOm2X2HThy/jNto/ tJcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=YMUng2I8SeTMmTPBGD5bEuJbjx92eFeUfKA240VNIys=; b=Wui1x+ane9SRTFiI/19ma12BNk04pQKho+y+pIFZbBkDPLChYQMmwtrfFDieE4Embu wH4oDrqtcT90DpZ6NShmW3raEjVIN6hCkDPluGOzVcQ8FprrdXjiuL7i56iphSu0JKfo VqxC0vP1cOiM/mFeghLwXLnDXm2+SJuohoTGwb+/iJ+zIpV3o9DeX/YqOcgQ2cbvttCA Amk9yle/xHt3lBxPexiyU8mC4HdepSCqBSNfLc+ev/ufyhAZZvZX+v0qoxzky3FPT80y Z8gfUOKwrzv8BwtkZOIirj6qfG/7e89rhIFp7nFIEBn2Il3BPVYlX0yvrj5Jplnxc4Km 0KSQ== X-Gm-Message-State: APjAAAWJs4ZOB4nHhvE7aEh3X0c3ZR+bmbszPO5/86wR8JeqBBpppyQv m+JnAmx7uFbR3q+6gjMCGoB+Vq1J0Pr1DRysjQsbxKuc X-Google-Smtp-Source: APXvYqzx3NxORvvVKP6lel0s/xLsUJ46Wq04eLH6ZlxMC04gM2kvlxUkLckkiifLBundFXHU3G1KC2t11rAkW0sqEko= X-Received: by 2002:ac8:2c18:: with SMTP id d24mr6107811qta.292.1566299968864; Tue, 20 Aug 2019 04:19:28 -0700 (PDT) Received: from 52669349336 named unknown by gmailapi.google.com with HTTPREST; Tue, 20 Aug 2019 04:19:28 -0700 MIME-Version: 1.0 Sender: Joseph Moore From: Joseph Moore Date: Tue, 20 Aug 2019 04:19:28 -0700 X-Google-Sender-Auth: BhLLmTXEq3_rg0_hIvtHSgFOqS8 Message-ID: Subject: Re: Want gcu-squad.org on top search result To: Svn-Src-All X-Rspamd-Queue-Id: 46CSxG3Px8z4D8g X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=digitalmarketingline-com.20150623.gappssmtp.com header.s=20150623 header.b=EVSVXIr1; dmarc=none; spf=pass (mx1.freebsd.org: domain of joseph@digitalmarketingline.com designates 2607:f8b0:4864:20::844 as permitted sender) smtp.mailfrom=joseph@digitalmarketingline.com X-Spamd-Result: default: False [-3.04 / 15.00]; ARC_NA(0.00)[]; FAKE_REPLY(1.00)[]; R_DKIM_ALLOW(-0.20)[digitalmarketingline-com.20150623.gappssmtp.com:s=20150623]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[digitalmarketingline.com]; RCPT_COUNT_ONE(0.00)[1]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[digitalmarketingline-com.20150623.gappssmtp.com:+]; NEURAL_HAM_SHORT(-0.99)[-0.991,0]; RCVD_IN_DNSWL_NONE(0.00)[4.4.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-0.55)[ip: (2.62), ipnet: 2607:f8b0::/32(-2.93), asn: 15169(-2.37), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_TLS_ALL(0.00)[] Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 11:19:31 -0000 *Hello gcu-squad.org ,* How are you doing today? I'm sure you have been contacted regarding this before but our value proposition is much unique. As a business owner, you might be interested to attract more visitors. So you might be wondering, despite having a proficient website, why you are not able to overturn your competitors from the Top Search Results. If you could spare a couple of minutes, I could provide you a concise idea about it. To start with this is Joseph Moore, A Digital Marketing Expert. While doing a search, found that gcu-squad.org is not on the 1st Page of Google. So thought you might be interested to know about the causation for the low performance of gcu-squad.org . Most recently Maccabee update has become the talk of the town. Phantom is the name given to random updates that Google brings every now and then. This means websites having a single un-natural link are going to be penalized. Moreover, growing preference for Mobile-Friendly Pages to help website owner=E2=80=99s gain and hold more visitors to a website has been rolled ou= t. So, we can help transform gcu-squad.org into one. *Why gcu-squad.org Needs Our Assistance:* - gcu-squad.org has low Domain Authority and Page Authority. - Relevant keyword phrases are not on 1st Page. - gcu-squad.org has Coding Errors. - gcu-squad.org is having On-Page and On-Site Issues. We can help address above Issues, and Place the website in TOP Search Results. I guarantee 100% satisfaction, as we only deal in White Hat Process. Makes Sense!!! Drop us an email with your questions, we will answer your questions. Have a Great Day. Thanks & Regards, Joseph Moore| (Digital Marketing Expert) ---------------------------------------------------------------------------= -------------------- Disclaimer:-If Interested we will send more details on our =E2=80=9Ccorpora= te identity=E2=80=9D, =E2=80=9Ccompany profile=E2=80=9D, =E2=80=9Cwhy you shou= ld choose us?=E2=80=9D, =E2=80=9CPrice list=E2=80=9D, etc. in our next email. If Not, You can simply reply with =E2=80=9Cremove= =E2=80=9D and we will delete your email from our list. "The CAN-SPAM Act of 2003". ---------------------------------------------------------------------------= -------------------- [image: beacon] From owner-svn-src-all@freebsd.org Tue Aug 20 14:31:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 16D87D35DC; Tue, 20 Aug 2019 14:31:23 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CYBf6tY0z4Q20; Tue, 20 Aug 2019 14:31:22 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CDE5A4A50; Tue, 20 Aug 2019 14:31:22 +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 x7KEVMtE045077; Tue, 20 Aug 2019 14:31:22 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KEVM3D045075; Tue, 20 Aug 2019 14:31:22 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201908201431.x7KEVM3D045075@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Tue, 20 Aug 2019 14:31:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351248 - head/tests/sys/netpfil/common X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/tests/sys/netpfil/common X-SVN-Commit-Revision: 351248 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 14:31:23 -0000 Author: kp Date: Tue Aug 20 14:31:22 2019 New Revision: 351248 URL: https://svnweb.freebsd.org/changeset/base/351248 Log: netpfil tests: Add the set ToS test for ipfw and pf This test tests the following: - The firewall is able to set the tos bits - The firewall is able to set the DSCP bits when EN bits is already set and the EN bits remains unchanged. - The firewall is able to drop the packets based on ToS value Submitted by: Ahsan Barkati Reviewed by: kp Sponsored by: Google, Inc. (GSoC 2019) Differential Revision: https://reviews.freebsd.org/D21305 Added: head/tests/sys/netpfil/common/tos.sh (contents, props changed) Modified: head/tests/sys/netpfil/common/Makefile Modified: head/tests/sys/netpfil/common/Makefile ============================================================================== --- head/tests/sys/netpfil/common/Makefile Tue Aug 20 05:36:41 2019 (r351247) +++ head/tests/sys/netpfil/common/Makefile Tue Aug 20 14:31:22 2019 (r351248) @@ -7,7 +7,8 @@ TESTSDIR= ${TESTSBASE}/sys/netpfil/common ATF_TESTS_SH+= \ pass_block \ - nat + nat \ + tos ${PACKAGE}FILES+= \ utils.subr \ Added: head/tests/sys/netpfil/common/tos.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/netpfil/common/tos.sh Tue Aug 20 14:31:22 2019 (r351248) @@ -0,0 +1,118 @@ +#- +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright (c) 2019 Ahsan Barkati +# +# 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$ +# + +. $(atf_get_srcdir)/utils.subr +. $(atf_get_srcdir)/runner.subr + +tos_head() +{ + atf_set descr 'set-tos test' + atf_set require.user root + atf_set require.progs scapy +} + +tos_body() +{ + firewall=$1 + firewall_init $firewall + + epair_send=$(vnet_mkepair) + ifconfig ${epair_send}a 192.0.2.1/24 up + + epair_recv=$(vnet_mkepair) + ifconfig ${epair_recv}a up + + vnet_mkjail iron ${epair_send}b ${epair_recv}b + jexec iron ifconfig ${epair_send}b 192.0.2.2/24 up + jexec iron ifconfig ${epair_recv}b 198.51.100.2/24 up + jexec iron sysctl net.inet.ip.forwarding=1 + jexec iron arp -s 198.51.100.3 00:01:02:03:04:05 + route add -net 198.51.100.0/24 192.0.2.2 + + # Check if the firewall is able to set the ToS bits + firewall_config "iron" ${firewall} \ + "pf" \ + "scrub out proto icmp set-tos 36" \ + "ipfw" \ + "ipfw -q add 100 setdscp 9 ip from any to any" + # dscp is set to 9 because last two bits are for + # EN and hence tos would be 36 + + atf_check -s exit:0 $(atf_get_srcdir)/pft_ping.py \ + --sendif ${epair_send}a \ + --to 198.51.100.3 \ + --recvif ${epair_recv}a \ + --expect-tos 36 + + # Check if the firewall is able to set the ToS bits + # and persists the EN bits (if already set) + firewall_config "iron" ${firewall} \ + "pf" \ + "scrub out proto icmp set-tos 36" \ + "ipfw" \ + "ipfw -q add 100 setdscp 9 ip from any to any" + + atf_check -s exit:0 $(atf_get_srcdir)/pft_ping.py \ + --sendif ${epair_send}a \ + --to 198.51.100.3 \ + --recvif ${epair_recv}a \ + --send-tos 3 \ + --expect-tos 39 + + # Check if the firewall is able to filter the + # packets based on the ToS value + firewall_config "iron" ${firewall} \ + "pf" \ + "block all tos 36" \ + "ipfw" \ + "ipfw -q add 100 deny all from any to any dscp 9" + + atf_check -s exit:1 $(atf_get_srcdir)/pft_ping.py \ + --sendif ${epair_send}a \ + --to 198.51.100.3 \ + --recvif ${epair_recv}a \ + --send-tos 36 + + atf_check -s exit:0 $(atf_get_srcdir)/pft_ping.py \ + --sendif ${epair_send}a \ + --to 198.51.100.3 \ + --recvif ${epair_recv}a \ + --send-tos 32 +} + +tos_cleanup() +{ + firewall=$1 + firewall_cleanup $firewall +} + +setup_tests \ + "tos" \ + "pf" \ + "ipfw" From owner-svn-src-all@freebsd.org Tue Aug 20 14:46:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 53710D3CB3; Tue, 20 Aug 2019 14:46:13 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CYWn1WN3z4Qrf; Tue, 20 Aug 2019 14:46:13 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1654E4CA1; Tue, 20 Aug 2019 14:46:13 +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 x7KEkCdZ053399; Tue, 20 Aug 2019 14:46:12 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KEkC0M053397; Tue, 20 Aug 2019 14:46:12 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201908201446.x7KEkC0M053397@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Tue, 20 Aug 2019 14:46:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351249 - head/tests/sys/netpfil/common X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/tests/sys/netpfil/common X-SVN-Commit-Revision: 351249 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 14:46:13 -0000 Author: kp Date: Tue Aug 20 14:46:12 2019 New Revision: 351249 URL: https://svnweb.freebsd.org/changeset/base/351249 Log: netpfil tests: Add too many fragments test for pf, ipfw and ipf Add test for checking that the packets are dropped if it is fragmented into more than the defined value. Submitted by: Ahsan Barkati Reviewed by: kp Sponsored by: Google, Inc. (GSoC 2019) Differential Revision: https://reviews.freebsd.org/D21307 Added: head/tests/sys/netpfil/common/fragments.sh (contents, props changed) Modified: head/tests/sys/netpfil/common/Makefile Modified: head/tests/sys/netpfil/common/Makefile ============================================================================== --- head/tests/sys/netpfil/common/Makefile Tue Aug 20 14:31:22 2019 (r351248) +++ head/tests/sys/netpfil/common/Makefile Tue Aug 20 14:46:12 2019 (r351249) @@ -8,7 +8,8 @@ TESTSDIR= ${TESTSBASE}/sys/netpfil/common ATF_TESTS_SH+= \ pass_block \ nat \ - tos + tos \ + fragments ${PACKAGE}FILES+= \ utils.subr \ Added: head/tests/sys/netpfil/common/fragments.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/netpfil/common/fragments.sh Tue Aug 20 14:46:12 2019 (r351249) @@ -0,0 +1,80 @@ +#- +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright (c) 2019 Ahsan Barkati +# +# 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$ +# + +. $(atf_get_srcdir)/utils.subr +. $(atf_get_srcdir)/runner.subr + +fragments_head() +{ + atf_set descr 'Too many fragments test' + atf_set require.user root +} + +fragments_body() +{ + firewall=$1 + firewall_init $firewall + + epair=$(vnet_mkepair) + ifconfig ${epair}b inet 192.0.2.1/24 up + + vnet_mkjail iron ${epair}a + jexec iron ifconfig ${epair}a 192.0.2.2/24 up + + ifconfig ${epair}b mtu 200 + jexec iron ifconfig ${epair}a mtu 200 + + firewall_config "iron" ${firewall} \ + "pf" \ + "scrub all fragment reassemble" \ + "ipfw" \ + "ipfw -q add 100 reass all from any to any in" \ + "ipf" \ + "pass in all with frags" + + jexec iron sysctl net.inet.ip.maxfragsperpacket=1024 + + atf_check -s exit:0 -o ignore ping -c 1 -t 1 192.0.2.2 + atf_check -s exit:0 -o ignore ping -c 1 -s 800 192.0.2.2 + + # Too many fragments should fail + atf_check -s exit:2 -o ignore ping -c 1 -s 20000 192.0.2.2 +} + +fragments_cleanup() +{ + firewall=$1 + firewall_cleanup $firewall +} + +setup_tests \ + "fragments" \ + "pf" \ + "ipfw" \ + "ipf" From owner-svn-src-all@freebsd.org Tue Aug 20 15:14:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5D272D441B; Tue, 20 Aug 2019 15:14:34 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CZ8V1pDLz4S74; Tue, 20 Aug 2019 15:14:34 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1F0345217; Tue, 20 Aug 2019 15:14:34 +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 x7KFEYdE071021; Tue, 20 Aug 2019 15:14:34 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KFEWCs071012; Tue, 20 Aug 2019 15:14:32 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201908201514.x7KFEWCs071012@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 20 Aug 2019 15:14:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351250 - head/sys/dev/usb/net X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/dev/usb/net X-SVN-Commit-Revision: 351250 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 15:14:34 -0000 Author: jhibbits Date: Tue Aug 20 15:14:32 2019 New Revision: 351250 URL: https://svnweb.freebsd.org/changeset/base/351250 Log: Unbreak USB ethernet module builds Sponsored by: Juniper Networks, Inc. Modified: head/sys/dev/usb/net/if_aue.c head/sys/dev/usb/net/if_axe.c head/sys/dev/usb/net/if_axge.c head/sys/dev/usb/net/if_mos.c head/sys/dev/usb/net/if_muge.c head/sys/dev/usb/net/if_rue.c head/sys/dev/usb/net/if_smsc.c head/sys/dev/usb/net/if_udav.c head/sys/dev/usb/net/if_ure.c Modified: head/sys/dev/usb/net/if_aue.c ============================================================================== --- head/sys/dev/usb/net/if_aue.c Tue Aug 20 14:46:12 2019 (r351249) +++ head/sys/dev/usb/net/if_aue.c Tue Aug 20 15:14:32 2019 (r351250) @@ -92,7 +92,11 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include +#include + #include #include #include @@ -104,6 +108,8 @@ __FBSDID("$FreeBSD$"); #include #include + +#include "miibus_if.h" #ifdef USB_DEBUG static int aue_debug = 0; Modified: head/sys/dev/usb/net/if_axe.c ============================================================================== --- head/sys/dev/usb/net/if_axe.c Tue Aug 20 14:46:12 2019 (r351249) +++ head/sys/dev/usb/net/if_axe.c Tue Aug 20 15:14:32 2019 (r351250) @@ -116,6 +116,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include "miibus_if.h" + /* * AXE_178_MAX_FRAME_BURST * max frame burst size for Ax88178 and Ax88772 Modified: head/sys/dev/usb/net/if_axge.c ============================================================================== --- head/sys/dev/usb/net/if_axge.c Tue Aug 20 14:46:12 2019 (r351249) +++ head/sys/dev/usb/net/if_axge.c Tue Aug 20 15:14:32 2019 (r351250) @@ -48,7 +48,11 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include +#include + #include #include #include @@ -60,6 +64,8 @@ __FBSDID("$FreeBSD$"); #include #include + +#include "miibus_if.h" /* * Various supported device vendors/products. Modified: head/sys/dev/usb/net/if_mos.c ============================================================================== --- head/sys/dev/usb/net/if_mos.c Tue Aug 20 14:46:12 2019 (r351249) +++ head/sys/dev/usb/net/if_mos.c Tue Aug 20 15:14:32 2019 (r351250) @@ -120,7 +120,11 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include +#include + #include #include #include @@ -131,6 +135,8 @@ __FBSDID("$FreeBSD$"); #include #include + +#include "miibus_if.h" //#include #include "if_mosreg.h" Modified: head/sys/dev/usb/net/if_muge.c ============================================================================== --- head/sys/dev/usb/net/if_muge.c Tue Aug 20 14:46:12 2019 (r351249) +++ head/sys/dev/usb/net/if_muge.c Tue Aug 20 15:14:32 2019 (r351250) @@ -87,7 +87,11 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include +#include + #include #include @@ -112,6 +116,8 @@ __FBSDID("$FreeBSD$"); #include #include + +#include "miibus_if.h" #ifdef USB_DEBUG static int muge_debug = 0; Modified: head/sys/dev/usb/net/if_rue.c ============================================================================== --- head/sys/dev/usb/net/if_rue.c Tue Aug 20 14:46:12 2019 (r351249) +++ head/sys/dev/usb/net/if_rue.c Tue Aug 20 15:14:32 2019 (r351250) @@ -89,7 +89,11 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include +#include + #include #include #include @@ -101,6 +105,8 @@ __FBSDID("$FreeBSD$"); #include #include + +#include "miibus_if.h" #ifdef USB_DEBUG static int rue_debug = 0; Modified: head/sys/dev/usb/net/if_smsc.c ============================================================================== --- head/sys/dev/usb/net/if_smsc.c Tue Aug 20 14:46:12 2019 (r351249) +++ head/sys/dev/usb/net/if_smsc.c Tue Aug 20 15:14:32 2019 (r351250) @@ -87,7 +87,11 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include +#include + #include #include @@ -112,6 +116,8 @@ __FBSDID("$FreeBSD$"); #include #include + +#include "miibus_if.h" #ifdef USB_DEBUG static int smsc_debug = 0; Modified: head/sys/dev/usb/net/if_udav.c ============================================================================== --- head/sys/dev/usb/net/if_udav.c Tue Aug 20 14:46:12 2019 (r351249) +++ head/sys/dev/usb/net/if_udav.c Tue Aug 20 15:14:32 2019 (r351250) @@ -70,11 +70,17 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include +#include + #include #include #include #include "usbdevs.h" + +#include "miibus_if.h" #define USB_DEBUG_VAR udav_debug #include Modified: head/sys/dev/usb/net/if_ure.c ============================================================================== --- head/sys/dev/usb/net/if_ure.c Tue Aug 20 14:46:12 2019 (r351249) +++ head/sys/dev/usb/net/if_ure.c Tue Aug 20 15:14:32 2019 (r351250) @@ -41,7 +41,11 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include +#include + #include #include #include @@ -53,6 +57,8 @@ __FBSDID("$FreeBSD$"); #include #include + +#include "miibus_if.h" #ifdef USB_DEBUG static int ure_debug = 0; From owner-svn-src-all@freebsd.org Tue Aug 20 16:07:18 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2D0DBD52B5; Tue, 20 Aug 2019 16:07:18 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CbKL0QDFz4VhX; Tue, 20 Aug 2019 16:07:18 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E14835B4E; Tue, 20 Aug 2019 16:07:17 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KG7H8l001336; Tue, 20 Aug 2019 16:07:17 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KG7HOb001335; Tue, 20 Aug 2019 16:07:17 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201908201607.x7KG7HOb001335@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Tue, 20 Aug 2019 16:07:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351251 - head/libexec/rtld-elf X-SVN-Group: head X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: head/libexec/rtld-elf X-SVN-Commit-Revision: 351251 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 16:07:18 -0000 Author: brooks Date: Tue Aug 20 16:07:17 2019 New Revision: 351251 URL: https://svnweb.freebsd.org/changeset/base/351251 Log: Remove some compatability with Seventh Edition UNIX realloc(). In Seventh Edition UNIX, the last pointer passed to free() was guaranteed to not actually have been freed allowing memory to be "compacted" via the following pattern: free(foo); foo = realloc(foo, newsize); Further, Andrew Koenig reports in "C Traps and Pitfalls" that the original realloc() implementation required this pattern. The C standard is clear that this is Undefined Behavior. Modern allocators don't support it and no portable code could rely on it so remove this support. Note: the removed implementation contains an off-by-one error and if an item isn't found on the freelist, then twice as much memory as the largest possible allocation will be copied. Reviewed by: kib, imp Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D21296 Modified: head/libexec/rtld-elf/rtld_malloc.c Modified: head/libexec/rtld-elf/rtld_malloc.c ============================================================================== --- head/libexec/rtld-elf/rtld_malloc.c Tue Aug 20 15:14:32 2019 (r351250) +++ head/libexec/rtld-elf/rtld_malloc.c Tue Aug 20 16:07:17 2019 (r351251) @@ -85,7 +85,6 @@ union overhead { static void morecore(int bucket); static int morepages(int n); -static int findbucket(union overhead *freep, int srchlen); #define MAGIC 0xef /* magic # on accounting info */ @@ -248,19 +247,6 @@ __crt_free(void *cp) nextf[size] = op; } -/* - * When a program attempts "storage compaction" as mentioned in the - * old malloc man page, it realloc's an already freed block. Usually - * this is the last block it freed; occasionally it might be farther - * back. We have to search all the free lists for the block in order - * to determine its bucket: 1st we make one pass through the lists - * checking only the first block in each; if that fails we search - * ``realloc_srchlen'' blocks in each list for a match (the variable - * is extern so the caller can modify it). If that fails we just copy - * however many bytes was given to realloc() and hope it's not huge. - */ -static int realloc_srchlen = 4; /* 4 should be plenty, -1 =>'s whole list */ - void * __crt_realloc(void *cp, size_t nbytes) { @@ -268,78 +254,33 @@ __crt_realloc(void *cp, size_t nbytes) int i; union overhead *op; char *res; - int was_alloced = 0; if (cp == NULL) return (__crt_malloc(nbytes)); op = (union overhead *)((caddr_t)cp - sizeof (union overhead)); - if (op->ov_magic == MAGIC) { - was_alloced++; - i = op->ov_index; - } else { - /* - * Already free, doing "compaction". - * - * Search for the old block of memory on the - * free list. First, check the most common - * case (last element free'd), then (this failing) - * the last ``realloc_srchlen'' items free'd. - * If all lookups fail, then assume the size of - * the memory block being realloc'd is the - * largest possible (so that all "nbytes" of new - * memory are copied into). Note that this could cause - * a memory fault if the old area was tiny, and the moon - * is gibbous. However, that is very unlikely. - */ - if ((i = findbucket(op, 1)) < 0 && - (i = findbucket(op, realloc_srchlen)) < 0) - i = NBUCKETS; - } + if (op->ov_magic != MAGIC) + return (NULL); /* Double-free or bad argument */ + i = op->ov_index; onb = 1 << (i + 3); if (onb < (u_int)pagesz) onb -= sizeof(*op); else onb += pagesz - sizeof(*op); /* avoid the copy if same size block */ - if (was_alloced) { - if (i) { - i = 1 << (i + 2); - if (i < pagesz) - i -= sizeof(*op); - else - i += pagesz - sizeof(*op); - } - if (nbytes <= onb && nbytes > (size_t)i) - return (cp); - __crt_free(cp); + if (i != 0) { + i = 1 << (i + 2); + if (i < pagesz) + i -= sizeof(*op); + else + i += pagesz - sizeof(*op); } + if (nbytes <= onb && nbytes > (size_t)i) + return (cp); if ((res = __crt_malloc(nbytes)) == NULL) return (NULL); - if (cp != res) /* common optimization if "compacting" */ - bcopy(cp, res, (nbytes < onb) ? nbytes : onb); + bcopy(cp, res, (nbytes < onb) ? nbytes : onb); + __crt_free(cp); return (res); -} - -/* - * Search ``srchlen'' elements of each free list for a block whose - * header starts at ``freep''. If srchlen is -1 search the whole list. - * Return bucket number, or -1 if not found. - */ -static int -findbucket(union overhead *freep, int srchlen) -{ - union overhead *p; - int i, j; - - for (i = 0; i < NBUCKETS; i++) { - j = 0; - for (p = nextf[i]; p && j != srchlen; p = p->ov_next) { - if (p == freep) - return (i); - j++; - } - } - return (-1); } static int From owner-svn-src-all@freebsd.org Tue Aug 20 17:39:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4B26DD696B; Tue, 20 Aug 2019 17:39:34 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CdMp1D72z4ZZR; Tue, 20 Aug 2019 17:39:34 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0BB7E6B94; Tue, 20 Aug 2019 17:39:34 +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 x7KHdXhA054614; Tue, 20 Aug 2019 17:39:33 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHdXvv054610; Tue, 20 Aug 2019 17:39:33 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908201739.x7KHdXvv054610@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 17:39:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351253 - in head/contrib/libc++: include src X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in head/contrib/libc++: include src X-SVN-Commit-Revision: 351253 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:39:34 -0000 Author: dim Date: Tue Aug 20 17:39:32 2019 New Revision: 351253 URL: https://svnweb.freebsd.org/changeset/base/351253 Log: Pull in r368867 from upstream libc++ trunk (by Marshall Clow): Rework recursive_timed_mutex so that it uses __thread_id instead of using the lower-level __libcpp_thread_id. This is prep for fixing PR42918. Reviewed as https://reviews.llvm.org/D65895 Pull in r368916 from upstream libc++ trunk (by Marshall Clow): Fix thread comparison by making sure we never pass our special 'not a thread' value to the underlying implementation. Fixes PR#42918. This should fix std::thread::id::operator==() attempting to call pthread_equal(3) with zero values. Reported by: andrew@tao11.riddles.org.uk PR: 239038, 239550 MFC after: 3 days Modified: head/contrib/libc++/include/__threading_support head/contrib/libc++/include/mutex head/contrib/libc++/include/thread head/contrib/libc++/src/mutex.cpp Modified: head/contrib/libc++/include/__threading_support ============================================================================== --- head/contrib/libc++/include/__threading_support Tue Aug 20 17:00:31 2019 (r351252) +++ head/contrib/libc++/include/__threading_support Tue Aug 20 17:39:32 2019 (r351253) @@ -13,6 +13,7 @@ #include <__config> #include +#include #include #ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER @@ -392,6 +393,86 @@ int __libcpp_tls_set(__libcpp_tls_key __key, void *__p } #endif // !_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL || _LIBCPP_BUILDING_THREAD_LIBRARY_EXTERNAL + +class _LIBCPP_TYPE_VIS thread; +class _LIBCPP_TYPE_VIS __thread_id; + +namespace this_thread +{ + +_LIBCPP_INLINE_VISIBILITY __thread_id get_id() _NOEXCEPT; + +} // this_thread + +template<> struct hash<__thread_id>; + +class _LIBCPP_TEMPLATE_VIS __thread_id +{ + // FIXME: pthread_t is a pointer on Darwin but a long on Linux. + // NULL is the no-thread value on Darwin. Someone needs to check + // on other platforms. We assume 0 works everywhere for now. + __libcpp_thread_id __id_; + +public: + _LIBCPP_INLINE_VISIBILITY + __thread_id() _NOEXCEPT : __id_(0) {} + + friend _LIBCPP_INLINE_VISIBILITY + bool operator==(__thread_id __x, __thread_id __y) _NOEXCEPT + { // don't pass id==0 to underlying routines + if (__x.__id_ == 0) return __y.__id_ == 0; + if (__y.__id_ == 0) return false; + return __libcpp_thread_id_equal(__x.__id_, __y.__id_); + } + friend _LIBCPP_INLINE_VISIBILITY + bool operator!=(__thread_id __x, __thread_id __y) _NOEXCEPT + {return !(__x == __y);} + friend _LIBCPP_INLINE_VISIBILITY + bool operator< (__thread_id __x, __thread_id __y) _NOEXCEPT + { // id==0 is always less than any other thread_id + if (__x.__id_ == 0) return __y.__id_ != 0; + if (__y.__id_ == 0) return false; + return __libcpp_thread_id_less(__x.__id_, __y.__id_); + } + friend _LIBCPP_INLINE_VISIBILITY + bool operator<=(__thread_id __x, __thread_id __y) _NOEXCEPT + {return !(__y < __x);} + friend _LIBCPP_INLINE_VISIBILITY + bool operator> (__thread_id __x, __thread_id __y) _NOEXCEPT + {return __y < __x ;} + friend _LIBCPP_INLINE_VISIBILITY + bool operator>=(__thread_id __x, __thread_id __y) _NOEXCEPT + {return !(__x < __y);} + + _LIBCPP_INLINE_VISIBILITY + void __reset() { __id_ = 0; } + + template + friend + _LIBCPP_INLINE_VISIBILITY + basic_ostream<_CharT, _Traits>& + operator<<(basic_ostream<_CharT, _Traits>& __os, __thread_id __id); + +private: + _LIBCPP_INLINE_VISIBILITY + __thread_id(__libcpp_thread_id __id) : __id_(__id) {} + + friend __thread_id this_thread::get_id() _NOEXCEPT; + friend class _LIBCPP_TYPE_VIS thread; + friend struct _LIBCPP_TEMPLATE_VIS hash<__thread_id>; +}; + +namespace this_thread +{ + +inline _LIBCPP_INLINE_VISIBILITY +__thread_id +get_id() _NOEXCEPT +{ + return __libcpp_thread_get_current_id(); +} + +} // this_thread _LIBCPP_END_NAMESPACE_STD Modified: head/contrib/libc++/include/mutex ============================================================================== --- head/contrib/libc++/include/mutex Tue Aug 20 17:00:31 2019 (r351252) +++ head/contrib/libc++/include/mutex Tue Aug 20 17:39:32 2019 (r351253) @@ -280,7 +280,7 @@ class _LIBCPP_TYPE_VIS recursive_timed_mutex mutex __m_; condition_variable __cv_; size_t __count_; - __libcpp_thread_id __id_; + __thread_id __id_; public: recursive_timed_mutex(); ~recursive_timed_mutex(); @@ -307,9 +307,9 @@ bool recursive_timed_mutex::try_lock_until(const chrono::time_point<_Clock, _Duration>& __t) { using namespace chrono; - __libcpp_thread_id __id = __libcpp_thread_get_current_id(); + __thread_id __id = this_thread::get_id(); unique_lock lk(__m_); - if (__libcpp_thread_id_equal(__id, __id_)) + if (__id == __id_) { if (__count_ == numeric_limits::max()) return false; Modified: head/contrib/libc++/include/thread ============================================================================== --- head/contrib/libc++/include/thread Tue Aug 20 17:00:31 2019 (r351252) +++ head/contrib/libc++/include/thread Tue Aug 20 17:39:32 2019 (r351253) @@ -201,64 +201,6 @@ __thread_specific_ptr<_Tp>::set_pointer(pointer __p) __libcpp_tls_set(__key_, __p); } -class _LIBCPP_TYPE_VIS thread; -class _LIBCPP_TYPE_VIS __thread_id; - -namespace this_thread -{ - -_LIBCPP_INLINE_VISIBILITY __thread_id get_id() _NOEXCEPT; - -} // this_thread - -template<> struct hash<__thread_id>; - -class _LIBCPP_TEMPLATE_VIS __thread_id -{ - // FIXME: pthread_t is a pointer on Darwin but a long on Linux. - // NULL is the no-thread value on Darwin. Someone needs to check - // on other platforms. We assume 0 works everywhere for now. - __libcpp_thread_id __id_; - -public: - _LIBCPP_INLINE_VISIBILITY - __thread_id() _NOEXCEPT : __id_(0) {} - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(__thread_id __x, __thread_id __y) _NOEXCEPT - {return __libcpp_thread_id_equal(__x.__id_, __y.__id_);} - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(__thread_id __x, __thread_id __y) _NOEXCEPT - {return !(__x == __y);} - friend _LIBCPP_INLINE_VISIBILITY - bool operator< (__thread_id __x, __thread_id __y) _NOEXCEPT - {return __libcpp_thread_id_less(__x.__id_, __y.__id_);} - friend _LIBCPP_INLINE_VISIBILITY - bool operator<=(__thread_id __x, __thread_id __y) _NOEXCEPT - {return !(__y < __x);} - friend _LIBCPP_INLINE_VISIBILITY - bool operator> (__thread_id __x, __thread_id __y) _NOEXCEPT - {return __y < __x ;} - friend _LIBCPP_INLINE_VISIBILITY - bool operator>=(__thread_id __x, __thread_id __y) _NOEXCEPT - {return !(__x < __y);} - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, __thread_id __id) - {return __os << __id.__id_;} - -private: - _LIBCPP_INLINE_VISIBILITY - __thread_id(__libcpp_thread_id __id) : __id_(__id) {} - - friend __thread_id this_thread::get_id() _NOEXCEPT; - friend class _LIBCPP_TYPE_VIS thread; - friend struct _LIBCPP_TEMPLATE_VIS hash<__thread_id>; -}; - template<> struct _LIBCPP_TEMPLATE_VIS hash<__thread_id> : public unary_function<__thread_id, size_t> @@ -270,17 +212,11 @@ struct _LIBCPP_TEMPLATE_VIS hash<__thread_id> } }; -namespace this_thread -{ - -inline _LIBCPP_INLINE_VISIBILITY -__thread_id -get_id() _NOEXCEPT -{ - return __libcpp_thread_get_current_id(); -} - -} // this_thread +template +_LIBCPP_INLINE_VISIBILITY +basic_ostream<_CharT, _Traits>& +operator<<(basic_ostream<_CharT, _Traits>& __os, __thread_id __id) +{return __os << __id.__id_;} class _LIBCPP_TYPE_VIS thread { Modified: head/contrib/libc++/src/mutex.cpp ============================================================================== --- head/contrib/libc++/src/mutex.cpp Tue Aug 20 17:00:31 2019 (r351252) +++ head/contrib/libc++/src/mutex.cpp Tue Aug 20 17:39:32 2019 (r351253) @@ -130,7 +130,7 @@ timed_mutex::unlock() _NOEXCEPT recursive_timed_mutex::recursive_timed_mutex() : __count_(0), - __id_(0) + __id_{} { } @@ -142,9 +142,9 @@ recursive_timed_mutex::~recursive_timed_mutex() void recursive_timed_mutex::lock() { - __libcpp_thread_id id = __libcpp_thread_get_current_id(); + __thread_id id = this_thread::get_id(); unique_lock lk(__m_); - if (__libcpp_thread_id_equal(id, __id_)) + if (id ==__id_) { if (__count_ == numeric_limits::max()) __throw_system_error(EAGAIN, "recursive_timed_mutex lock limit reached"); @@ -160,9 +160,9 @@ recursive_timed_mutex::lock() bool recursive_timed_mutex::try_lock() _NOEXCEPT { - __libcpp_thread_id id = __libcpp_thread_get_current_id(); + __thread_id id = this_thread::get_id(); unique_lock lk(__m_, try_to_lock); - if (lk.owns_lock() && (__count_ == 0 || __libcpp_thread_id_equal(id, __id_))) + if (lk.owns_lock() && (__count_ == 0 || id == __id_)) { if (__count_ == numeric_limits::max()) return false; @@ -179,7 +179,7 @@ recursive_timed_mutex::unlock() _NOEXCEPT unique_lock lk(__m_); if (--__count_ == 0) { - __id_ = 0; + __id_.__reset(); lk.unlock(); __cv_.notify_one(); } From owner-svn-src-all@freebsd.org Tue Aug 20 17:44:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AC78AD6CA5; Tue, 20 Aug 2019 17:44:03 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CdSz44rZz4b4V; Tue, 20 Aug 2019 17:44:03 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6DD606D82; Tue, 20 Aug 2019 17:44:03 +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 x7KHi3As060503; Tue, 20 Aug 2019 17:44:03 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHi38h060502; Tue, 20 Aug 2019 17:44:03 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908201744.x7KHi38h060502@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 20 Aug 2019 17:44:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351254 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 351254 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:44:03 -0000 Author: emaste Date: Tue Aug 20 17:44:03 2019 New Revision: 351254 URL: https://svnweb.freebsd.org/changeset/base/351254 Log: mqueuefs: fix compat32 struct file leak In a compat32 error case we previously leaked a struct file. Submitted by: Karsten König, Secfault Security Security: CVE-2019-5603 Modified: head/sys/kern/uipc_mqueue.c Modified: head/sys/kern/uipc_mqueue.c ============================================================================== --- head/sys/kern/uipc_mqueue.c Tue Aug 20 17:39:32 2019 (r351253) +++ head/sys/kern/uipc_mqueue.c Tue Aug 20 17:44:03 2019 (r351254) @@ -2806,7 +2806,7 @@ freebsd32_kmq_timedsend(struct thread *td, if (uap->abs_timeout != NULL) { error = copyin(uap->abs_timeout, &ets32, sizeof(ets32)); if (error != 0) - return (error); + goto out; CP(ets32, ets, tv_sec); CP(ets32, ets, tv_nsec); abs_timeout = &ets; @@ -2815,6 +2815,7 @@ freebsd32_kmq_timedsend(struct thread *td, waitok = !(fp->f_flag & O_NONBLOCK); error = mqueue_send(mq, uap->msg_ptr, uap->msg_len, uap->msg_prio, waitok, abs_timeout); +out: fdrop(fp, td); return (error); } From owner-svn-src-all@freebsd.org Tue Aug 20 17:45:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 131BDD6D48; Tue, 20 Aug 2019 17:45:23 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CdVV6lWRz4bCX; Tue, 20 Aug 2019 17:45:22 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E26FE6D84; Tue, 20 Aug 2019 17:45:22 +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 x7KHjMJ6060634; Tue, 20 Aug 2019 17:45:22 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHjMJQ060633; Tue, 20 Aug 2019 17:45:22 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908201745.x7KHjMJQ060633@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 20 Aug 2019 17:45:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351255 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 351255 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:45:23 -0000 Author: emaste Date: Tue Aug 20 17:45:22 2019 New Revision: 351255 URL: https://svnweb.freebsd.org/changeset/base/351255 Log: MFC r351254: mqueuefs: fix compat32 struct file leak In a compat32 error case we previously leaked a struct file. Submitted by: Karsten König, Secfault Security Security: CVE-2019-5603 Modified: stable/12/sys/kern/uipc_mqueue.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/uipc_mqueue.c ============================================================================== --- stable/12/sys/kern/uipc_mqueue.c Tue Aug 20 17:44:03 2019 (r351254) +++ stable/12/sys/kern/uipc_mqueue.c Tue Aug 20 17:45:22 2019 (r351255) @@ -2798,7 +2798,7 @@ freebsd32_kmq_timedsend(struct thread *td, if (uap->abs_timeout != NULL) { error = copyin(uap->abs_timeout, &ets32, sizeof(ets32)); if (error != 0) - return (error); + goto out; CP(ets32, ets, tv_sec); CP(ets32, ets, tv_nsec); abs_timeout = &ets; @@ -2807,6 +2807,7 @@ freebsd32_kmq_timedsend(struct thread *td, waitok = !(fp->f_flag & O_NONBLOCK); error = mqueue_send(mq, uap->msg_ptr, uap->msg_len, uap->msg_prio, waitok, abs_timeout); +out: fdrop(fp, td); return (error); } From owner-svn-src-all@freebsd.org Tue Aug 20 17:45:45 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4D937D6DB6; Tue, 20 Aug 2019 17:45:45 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CdVx17ktz4bKZ; Tue, 20 Aug 2019 17:45:45 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 087FD6D85; Tue, 20 Aug 2019 17:45:45 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KHjiHD060708; Tue, 20 Aug 2019 17:45:44 GMT (envelope-from gordon@FreeBSD.org) Received: (from gordon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHjiDT060705; Tue, 20 Aug 2019 17:45:44 GMT (envelope-from gordon@FreeBSD.org) Message-Id: <201908201745.x7KHjiDT060705@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gordon set sender to gordon@FreeBSD.org using -f From: Gordon Tetlow Date: Tue, 20 Aug 2019 17:45:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r351256 - in releng: 11.3/sys/amd64/vmm 12.0/sys/amd64/vmm X-SVN-Group: releng X-SVN-Commit-Author: gordon X-SVN-Commit-Paths: in releng: 11.3/sys/amd64/vmm 12.0/sys/amd64/vmm X-SVN-Commit-Revision: 351256 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:45:45 -0000 Author: gordon Date: Tue Aug 20 17:45:44 2019 New Revision: 351256 URL: https://svnweb.freebsd.org/changeset/base/351256 Log: Add bhyve instruction emulation improvements (opcode 03H and F7H). Approved by: so Security: FreeBSD-EN-19:16.bhyve Modified: releng/11.3/sys/amd64/vmm/vmm_instruction_emul.c releng/12.0/sys/amd64/vmm/vmm_instruction_emul.c Modified: releng/11.3/sys/amd64/vmm/vmm_instruction_emul.c ============================================================================== --- releng/11.3/sys/amd64/vmm/vmm_instruction_emul.c Tue Aug 20 17:45:22 2019 (r351255) +++ releng/11.3/sys/amd64/vmm/vmm_instruction_emul.c Tue Aug 20 17:45:44 2019 (r351256) @@ -75,6 +75,8 @@ enum { VIE_OP_TYPE_STOS, VIE_OP_TYPE_BITTEST, VIE_OP_TYPE_TWOB_GRP15, + VIE_OP_TYPE_ADD, + VIE_OP_TYPE_TEST, VIE_OP_TYPE_LAST }; @@ -110,6 +112,10 @@ static const struct vie_op two_byte_opcodes[256] = { }; static const struct vie_op one_byte_opcodes[256] = { + [0x03] = { + .op_byte = 0x03, + .op_type = VIE_OP_TYPE_ADD, + }, [0x0F] = { .op_byte = 0x0F, .op_type = VIE_OP_TYPE_TWO_BYTE @@ -214,6 +220,12 @@ static const struct vie_op one_byte_opcodes[256] = { .op_byte = 0x8F, .op_type = VIE_OP_TYPE_POP, }, + [0xF7] = { + /* XXX Group 3 extended opcode - not just TEST */ + .op_byte = 0xF7, + .op_type = VIE_OP_TYPE_TEST, + .op_flags = VIE_OP_F_IMM, + }, [0xFF] = { /* XXX Group 5 extended opcode - not just PUSH */ .op_byte = 0xFF, @@ -408,6 +420,76 @@ getcc(int opsize, uint64_t x, uint64_t y) return (getcc64(x, y)); } +/* + * Macro creation of functions getaddflags{8,16,32,64} + */ +#define GETADDFLAGS(sz) \ +static u_long \ +getaddflags##sz(uint##sz##_t x, uint##sz##_t y) \ +{ \ + u_long rflags; \ + \ + __asm __volatile("add %2,%1; pushfq; popq %0" : \ + "=r" (rflags), "+r" (x) : "m" (y)); \ + return (rflags); \ +} struct __hack + +GETADDFLAGS(8); +GETADDFLAGS(16); +GETADDFLAGS(32); +GETADDFLAGS(64); + +static u_long +getaddflags(int opsize, uint64_t x, uint64_t y) +{ + KASSERT(opsize == 1 || opsize == 2 || opsize == 4 || opsize == 8, + ("getaddflags: invalid operand size %d", opsize)); + + if (opsize == 1) + return (getaddflags8(x, y)); + else if (opsize == 2) + return (getaddflags16(x, y)); + else if (opsize == 4) + return (getaddflags32(x, y)); + else + return (getaddflags64(x, y)); +} + +/* + * Return the status flags that would result from doing (x & y). + */ +#define GETANDFLAGS(sz) \ +static u_long \ +getandflags##sz(uint##sz##_t x, uint##sz##_t y) \ +{ \ + u_long rflags; \ + \ + __asm __volatile("and %2,%1; pushfq; popq %0" : \ + "=r" (rflags), "+r" (x) : "m" (y)); \ + return (rflags); \ +} struct __hack + +GETANDFLAGS(8); +GETANDFLAGS(16); +GETANDFLAGS(32); +GETANDFLAGS(64); + +static u_long +getandflags(int opsize, uint64_t x, uint64_t y) +{ + KASSERT(opsize == 1 || opsize == 2 || opsize == 4 || opsize == 8, + ("getandflags: invalid operand size %d", opsize)); + + if (opsize == 1) + return (getandflags8(x, y)); + else if (opsize == 2) + return (getandflags16(x, y)); + else if (opsize == 4) + return (getandflags32(x, y)); + else + return (getandflags64(x, y)); +} + static int emulate_mov(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) @@ -1177,6 +1259,111 @@ emulate_cmp(void *vm, int vcpuid, uint64_t gpa, struct } static int +emulate_test(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, + mem_region_read_t memread, mem_region_write_t memwrite, void *arg) +{ + int error, size; + uint64_t op1, rflags, rflags2; + + size = vie->opsize; + error = EINVAL; + + switch (vie->op.op_byte) { + case 0xF7: + /* + * F7 /0 test r/m16, imm16 + * F7 /0 test r/m32, imm32 + * REX.W + F7 /0 test r/m64, imm32 sign-extended to 64 + * + * Test mem (ModRM:r/m) with immediate and set status + * flags according to the results. The comparison is + * performed by anding the immediate from the first + * operand and then setting the status flags. + */ + if ((vie->reg & 7) != 0) + return (EINVAL); + + error = memread(vm, vcpuid, gpa, &op1, size, arg); + if (error) + return (error); + + rflags2 = getandflags(size, op1, vie->immediate); + break; + default: + return (EINVAL); + } + error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags); + if (error) + return (error); + + /* + * OF and CF are cleared; the SF, ZF and PF flags are set according + * to the result; AF is undefined. + */ + rflags &= ~RFLAGS_STATUS_BITS; + rflags |= rflags2 & (PSL_PF | PSL_Z | PSL_N); + + error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, rflags, 8); + return (error); +} + +static int +emulate_add(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, + mem_region_read_t memread, mem_region_write_t memwrite, void *arg) +{ + int error, size; + uint64_t nval, rflags, rflags2, val1, val2; + enum vm_reg_name reg; + + size = vie->opsize; + error = EINVAL; + + switch (vie->op.op_byte) { + case 0x03: + /* + * ADD r/m to r and store the result in r + * + * 03/r ADD r16, r/m16 + * 03/r ADD r32, r/m32 + * REX.W + 03/r ADD r64, r/m64 + */ + + /* get the first operand */ + reg = gpr_map[vie->reg]; + error = vie_read_register(vm, vcpuid, reg, &val1); + if (error) + break; + + /* get the second operand */ + error = memread(vm, vcpuid, gpa, &val2, size, arg); + if (error) + break; + + /* perform the operation and write the result */ + nval = val1 + val2; + error = vie_update_register(vm, vcpuid, reg, nval, size); + break; + default: + break; + } + + if (!error) { + rflags2 = getaddflags(size, val1, val2); + error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, + &rflags); + if (error) + return (error); + + rflags &= ~RFLAGS_STATUS_BITS; + rflags |= rflags2 & RFLAGS_STATUS_BITS; + error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, + rflags, 8); + } + + return (error); +} + +static int emulate_sub(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) { @@ -1539,6 +1726,14 @@ vmm_emulate_instruction(void *vm, int vcpuid, uint64_t break; case VIE_OP_TYPE_TWOB_GRP15: error = emulate_twob_group15(vm, vcpuid, gpa, vie, + memread, memwrite, memarg); + break; + case VIE_OP_TYPE_ADD: + error = emulate_add(vm, vcpuid, gpa, vie, memread, + memwrite, memarg); + break; + case VIE_OP_TYPE_TEST: + error = emulate_test(vm, vcpuid, gpa, vie, memread, memwrite, memarg); break; default: Modified: releng/12.0/sys/amd64/vmm/vmm_instruction_emul.c ============================================================================== --- releng/12.0/sys/amd64/vmm/vmm_instruction_emul.c Tue Aug 20 17:45:22 2019 (r351255) +++ releng/12.0/sys/amd64/vmm/vmm_instruction_emul.c Tue Aug 20 17:45:44 2019 (r351256) @@ -77,6 +77,8 @@ enum { VIE_OP_TYPE_STOS, VIE_OP_TYPE_BITTEST, VIE_OP_TYPE_TWOB_GRP15, + VIE_OP_TYPE_ADD, + VIE_OP_TYPE_TEST, VIE_OP_TYPE_LAST }; @@ -112,6 +114,10 @@ static const struct vie_op two_byte_opcodes[256] = { }; static const struct vie_op one_byte_opcodes[256] = { + [0x03] = { + .op_byte = 0x03, + .op_type = VIE_OP_TYPE_ADD, + }, [0x0F] = { .op_byte = 0x0F, .op_type = VIE_OP_TYPE_TWO_BYTE @@ -216,6 +222,12 @@ static const struct vie_op one_byte_opcodes[256] = { .op_byte = 0x8F, .op_type = VIE_OP_TYPE_POP, }, + [0xF7] = { + /* XXX Group 3 extended opcode - not just TEST */ + .op_byte = 0xF7, + .op_type = VIE_OP_TYPE_TEST, + .op_flags = VIE_OP_F_IMM, + }, [0xFF] = { /* XXX Group 5 extended opcode - not just PUSH */ .op_byte = 0xFF, @@ -410,6 +422,76 @@ getcc(int opsize, uint64_t x, uint64_t y) return (getcc64(x, y)); } +/* + * Macro creation of functions getaddflags{8,16,32,64} + */ +#define GETADDFLAGS(sz) \ +static u_long \ +getaddflags##sz(uint##sz##_t x, uint##sz##_t y) \ +{ \ + u_long rflags; \ + \ + __asm __volatile("add %2,%1; pushfq; popq %0" : \ + "=r" (rflags), "+r" (x) : "m" (y)); \ + return (rflags); \ +} struct __hack + +GETADDFLAGS(8); +GETADDFLAGS(16); +GETADDFLAGS(32); +GETADDFLAGS(64); + +static u_long +getaddflags(int opsize, uint64_t x, uint64_t y) +{ + KASSERT(opsize == 1 || opsize == 2 || opsize == 4 || opsize == 8, + ("getaddflags: invalid operand size %d", opsize)); + + if (opsize == 1) + return (getaddflags8(x, y)); + else if (opsize == 2) + return (getaddflags16(x, y)); + else if (opsize == 4) + return (getaddflags32(x, y)); + else + return (getaddflags64(x, y)); +} + +/* + * Return the status flags that would result from doing (x & y). + */ +#define GETANDFLAGS(sz) \ +static u_long \ +getandflags##sz(uint##sz##_t x, uint##sz##_t y) \ +{ \ + u_long rflags; \ + \ + __asm __volatile("and %2,%1; pushfq; popq %0" : \ + "=r" (rflags), "+r" (x) : "m" (y)); \ + return (rflags); \ +} struct __hack + +GETANDFLAGS(8); +GETANDFLAGS(16); +GETANDFLAGS(32); +GETANDFLAGS(64); + +static u_long +getandflags(int opsize, uint64_t x, uint64_t y) +{ + KASSERT(opsize == 1 || opsize == 2 || opsize == 4 || opsize == 8, + ("getandflags: invalid operand size %d", opsize)); + + if (opsize == 1) + return (getandflags8(x, y)); + else if (opsize == 2) + return (getandflags16(x, y)); + else if (opsize == 4) + return (getandflags32(x, y)); + else + return (getandflags64(x, y)); +} + static int emulate_mov(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) @@ -1179,6 +1261,111 @@ emulate_cmp(void *vm, int vcpuid, uint64_t gpa, struct } static int +emulate_test(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, + mem_region_read_t memread, mem_region_write_t memwrite, void *arg) +{ + int error, size; + uint64_t op1, rflags, rflags2; + + size = vie->opsize; + error = EINVAL; + + switch (vie->op.op_byte) { + case 0xF7: + /* + * F7 /0 test r/m16, imm16 + * F7 /0 test r/m32, imm32 + * REX.W + F7 /0 test r/m64, imm32 sign-extended to 64 + * + * Test mem (ModRM:r/m) with immediate and set status + * flags according to the results. The comparison is + * performed by anding the immediate from the first + * operand and then setting the status flags. + */ + if ((vie->reg & 7) != 0) + return (EINVAL); + + error = memread(vm, vcpuid, gpa, &op1, size, arg); + if (error) + return (error); + + rflags2 = getandflags(size, op1, vie->immediate); + break; + default: + return (EINVAL); + } + error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags); + if (error) + return (error); + + /* + * OF and CF are cleared; the SF, ZF and PF flags are set according + * to the result; AF is undefined. + */ + rflags &= ~RFLAGS_STATUS_BITS; + rflags |= rflags2 & (PSL_PF | PSL_Z | PSL_N); + + error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, rflags, 8); + return (error); +} + +static int +emulate_add(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, + mem_region_read_t memread, mem_region_write_t memwrite, void *arg) +{ + int error, size; + uint64_t nval, rflags, rflags2, val1, val2; + enum vm_reg_name reg; + + size = vie->opsize; + error = EINVAL; + + switch (vie->op.op_byte) { + case 0x03: + /* + * ADD r/m to r and store the result in r + * + * 03/r ADD r16, r/m16 + * 03/r ADD r32, r/m32 + * REX.W + 03/r ADD r64, r/m64 + */ + + /* get the first operand */ + reg = gpr_map[vie->reg]; + error = vie_read_register(vm, vcpuid, reg, &val1); + if (error) + break; + + /* get the second operand */ + error = memread(vm, vcpuid, gpa, &val2, size, arg); + if (error) + break; + + /* perform the operation and write the result */ + nval = val1 + val2; + error = vie_update_register(vm, vcpuid, reg, nval, size); + break; + default: + break; + } + + if (!error) { + rflags2 = getaddflags(size, val1, val2); + error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, + &rflags); + if (error) + return (error); + + rflags &= ~RFLAGS_STATUS_BITS; + rflags |= rflags2 & RFLAGS_STATUS_BITS; + error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, + rflags, 8); + } + + return (error); +} + +static int emulate_sub(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) { @@ -1541,6 +1728,14 @@ vmm_emulate_instruction(void *vm, int vcpuid, uint64_t break; case VIE_OP_TYPE_TWOB_GRP15: error = emulate_twob_group15(vm, vcpuid, gpa, vie, + memread, memwrite, memarg); + break; + case VIE_OP_TYPE_ADD: + error = emulate_add(vm, vcpuid, gpa, vie, memread, + memwrite, memarg); + break; + case VIE_OP_TYPE_TEST: + error = emulate_test(vm, vcpuid, gpa, vie, memread, memwrite, memarg); break; default: From owner-svn-src-all@freebsd.org Tue Aug 20 17:46:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B2361D6E1C; Tue, 20 Aug 2019 17:46:23 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CdWg3xTFz4bRs; Tue, 20 Aug 2019 17:46: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 68EF76D86; Tue, 20 Aug 2019 17:46: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 x7KHkN4X060786; Tue, 20 Aug 2019 17:46:23 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHkNV4060785; Tue, 20 Aug 2019 17:46:23 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908201746.x7KHkNV4060785@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 20 Aug 2019 17:46:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351257 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 351257 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:46:23 -0000 Author: emaste Date: Tue Aug 20 17:46:22 2019 New Revision: 351257 URL: https://svnweb.freebsd.org/changeset/base/351257 Log: MFC r351254: mqueuefs: fix compat32 struct file leak In a compat32 error case we previously leaked a struct file. Submitted by: Karsten König, Secfault Security Security: CVE-2019-5603 Modified: stable/11/sys/kern/uipc_mqueue.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/uipc_mqueue.c ============================================================================== --- stable/11/sys/kern/uipc_mqueue.c Tue Aug 20 17:45:44 2019 (r351256) +++ stable/11/sys/kern/uipc_mqueue.c Tue Aug 20 17:46:22 2019 (r351257) @@ -2788,7 +2788,7 @@ freebsd32_kmq_timedsend(struct thread *td, if (uap->abs_timeout != NULL) { error = copyin(uap->abs_timeout, &ets32, sizeof(ets32)); if (error != 0) - return (error); + goto out; CP(ets32, ets, tv_sec); CP(ets32, ets, tv_nsec); abs_timeout = &ets; @@ -2797,6 +2797,7 @@ freebsd32_kmq_timedsend(struct thread *td, waitok = !(fp->f_flag & O_NONBLOCK); error = mqueue_send(mq, uap->msg_ptr, uap->msg_len, uap->msg_prio, waitok, abs_timeout); +out: fdrop(fp, td); return (error); } From owner-svn-src-all@freebsd.org Tue Aug 20 17:46:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 784E5D6E81; Tue, 20 Aug 2019 17:46:41 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CdX12dP8z4bYs; Tue, 20 Aug 2019 17:46:41 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3C0496D87; Tue, 20 Aug 2019 17:46:41 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KHkffE060848; Tue, 20 Aug 2019 17:46:41 GMT (envelope-from gordon@FreeBSD.org) Received: (from gordon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHkf4r060847; Tue, 20 Aug 2019 17:46:41 GMT (envelope-from gordon@FreeBSD.org) Message-Id: <201908201746.x7KHkf4r060847@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gordon set sender to gordon@FreeBSD.org using -f From: Gordon Tetlow Date: Tue, 20 Aug 2019 17:46:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r351258 - releng/11.3/sbin/ipfw X-SVN-Group: releng X-SVN-Commit-Author: gordon X-SVN-Commit-Paths: releng/11.3/sbin/ipfw X-SVN-Commit-Revision: 351258 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:46:41 -0000 Author: gordon Date: Tue Aug 20 17:46:40 2019 New Revision: 351258 URL: https://svnweb.freebsd.org/changeset/base/351258 Log: Fix ipfw(8) jail keyword prior to jail startup. Approved by: so Security: FreeBSD-EN-19:17.ipfw Modified: releng/11.3/sbin/ipfw/ipfw2.c Modified: releng/11.3/sbin/ipfw/ipfw2.c ============================================================================== --- releng/11.3/sbin/ipfw/ipfw2.c Tue Aug 20 17:46:22 2019 (r351257) +++ releng/11.3/sbin/ipfw/ipfw2.c Tue Aug 20 17:46:40 2019 (r351258) @@ -4662,12 +4662,27 @@ read_options: case TOK_JAIL: NEED1("jail requires argument"); { + char *end; int jid; cmd->opcode = O_JAIL; - jid = jail_getid(*av); - if (jid < 0) - errx(EX_DATAERR, "%s", jail_errmsg); + /* + * If av is a number, then we'll just pass it as-is. If + * it's a name, try to resolve that to a jid. + * + * We save the jail_getid(3) call for a fallback because + * it entails an unconditional trip to the kernel to + * either validate a jid or resolve a name to a jid. + * This specific token doesn't currently require a + * jid to be an active jail, so we save a transition + * by simply using a number that we're given. + */ + jid = strtoul(*av, &end, 10); + if (*end != '\0') { + jid = jail_getid(*av); + if (jid < 0) + errx(EX_DATAERR, "%s", jail_errmsg); + } cmd32->d[0] = (uint32_t)jid; cmd->len |= F_INSN_SIZE(ipfw_insn_u32); av++; From owner-svn-src-all@freebsd.org Tue Aug 20 17:49:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 81714D7000; Tue, 20 Aug 2019 17:49:34 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CdbL2qllz4brH; Tue, 20 Aug 2019 17:49:34 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 42D2B6D94; Tue, 20 Aug 2019 17:49:34 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KHnYux061210; Tue, 20 Aug 2019 17:49:34 GMT (envelope-from gordon@FreeBSD.org) Received: (from gordon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHnXdU061205; Tue, 20 Aug 2019 17:49:33 GMT (envelope-from gordon@FreeBSD.org) Message-Id: <201908201749.x7KHnXdU061205@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gordon set sender to gordon@FreeBSD.org using -f From: Gordon Tetlow Date: Tue, 20 Aug 2019 17:49:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r351259 - in releng: 11.2/sys/kern 11.3/sys/kern 12.0/sys/kern X-SVN-Group: releng X-SVN-Commit-Author: gordon X-SVN-Commit-Paths: in releng: 11.2/sys/kern 11.3/sys/kern 12.0/sys/kern X-SVN-Commit-Revision: 351259 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:49:34 -0000 Author: gordon Date: Tue Aug 20 17:49:33 2019 New Revision: 351259 URL: https://svnweb.freebsd.org/changeset/base/351259 Log: Fix IPv6 remote denial of service. Approved by: so Security: FreeBSD-SA-19:22.mbuf Security: CVE-2019-5611 Modified: releng/11.2/sys/kern/uipc_mbuf2.c releng/11.3/sys/kern/uipc_mbuf2.c releng/12.0/sys/kern/uipc_mbuf2.c Modified: releng/11.2/sys/kern/uipc_mbuf2.c ============================================================================== --- releng/11.2/sys/kern/uipc_mbuf2.c Tue Aug 20 17:46:40 2019 (r351258) +++ releng/11.2/sys/kern/uipc_mbuf2.c Tue Aug 20 17:49:33 2019 (r351259) @@ -214,7 +214,7 @@ m_pulldown(struct mbuf *m, int off, int len, int *offp goto ok; } if ((off == 0 || offp) && M_LEADINGSPACE(n->m_next) >= hlen - && writable) { + && writable && n->m_next->m_len >= tlen) { n->m_next->m_data -= hlen; n->m_next->m_len += hlen; bcopy(mtod(n, caddr_t) + off, mtod(n->m_next, caddr_t), hlen); Modified: releng/11.3/sys/kern/uipc_mbuf2.c ============================================================================== --- releng/11.3/sys/kern/uipc_mbuf2.c Tue Aug 20 17:46:40 2019 (r351258) +++ releng/11.3/sys/kern/uipc_mbuf2.c Tue Aug 20 17:49:33 2019 (r351259) @@ -214,7 +214,7 @@ m_pulldown(struct mbuf *m, int off, int len, int *offp goto ok; } if ((off == 0 || offp) && M_LEADINGSPACE(n->m_next) >= hlen - && writable) { + && writable && n->m_next->m_len >= tlen) { n->m_next->m_data -= hlen; n->m_next->m_len += hlen; bcopy(mtod(n, caddr_t) + off, mtod(n->m_next, caddr_t), hlen); Modified: releng/12.0/sys/kern/uipc_mbuf2.c ============================================================================== --- releng/12.0/sys/kern/uipc_mbuf2.c Tue Aug 20 17:46:40 2019 (r351258) +++ releng/12.0/sys/kern/uipc_mbuf2.c Tue Aug 20 17:49:33 2019 (r351259) @@ -216,7 +216,7 @@ m_pulldown(struct mbuf *m, int off, int len, int *offp goto ok; } if ((off == 0 || offp) && M_LEADINGSPACE(n->m_next) >= hlen - && writable) { + && writable && n->m_next->m_len >= tlen) { n->m_next->m_data -= hlen; n->m_next->m_len += hlen; bcopy(mtod(n, caddr_t) + off, mtod(n->m_next, caddr_t), hlen); From owner-svn-src-all@freebsd.org Tue Aug 20 17:50:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BC811D707E; Tue, 20 Aug 2019 17:50:34 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CdcV5KWgz4byW; Tue, 20 Aug 2019 17:50:34 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 99A6F6D9B; Tue, 20 Aug 2019 17:50:34 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KHoYDS061347; Tue, 20 Aug 2019 17:50:34 GMT (envelope-from gordon@FreeBSD.org) Received: (from gordon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHoY8U061344; Tue, 20 Aug 2019 17:50:34 GMT (envelope-from gordon@FreeBSD.org) Message-Id: <201908201750.x7KHoY8U061344@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gordon set sender to gordon@FreeBSD.org using -f From: Gordon Tetlow Date: Tue, 20 Aug 2019 17:50:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r351260 - in releng: 11.2/sys/dev/sound/midi 11.3/sys/dev/sound/midi 12.0/sys/dev/sound/midi X-SVN-Group: releng X-SVN-Commit-Author: gordon X-SVN-Commit-Paths: in releng: 11.2/sys/dev/sound/midi 11.3/sys/dev/sound/midi 12.0/sys/dev/sound/midi X-SVN-Commit-Revision: 351260 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:50:34 -0000 Author: gordon Date: Tue Aug 20 17:50:33 2019 New Revision: 351260 URL: https://svnweb.freebsd.org/changeset/base/351260 Log: Fix kernel memory disclosure from /dev/midistat. Approved by: so Security: FreeBSD-SA-19:23.midi Security: CVE-2019-5612 Modified: releng/11.2/sys/dev/sound/midi/midi.c releng/11.3/sys/dev/sound/midi/midi.c releng/12.0/sys/dev/sound/midi/midi.c Modified: releng/11.2/sys/dev/sound/midi/midi.c ============================================================================== --- releng/11.2/sys/dev/sound/midi/midi.c Tue Aug 20 17:49:33 2019 (r351259) +++ releng/11.2/sys/dev/sound/midi/midi.c Tue Aug 20 17:50:33 2019 (r351260) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -47,10 +48,8 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include -#include -#include +#include #include #include #include @@ -185,10 +184,9 @@ TAILQ_HEAD(, snd_midi) midi_devs; * /dev/midistat variables and declarations, protected by midistat_lock */ -static struct mtx midistat_lock; +static struct sx midistat_lock; static int midistat_isopen = 0; static struct sbuf midistat_sbuf; -static int midistat_bufptr; static struct cdev *midistat_dev; /* @@ -287,7 +285,7 @@ midi_init(kobj_class_t cls, int unit, int channel, voi MIDI_TYPE *buf; MIDI_DEBUG(1, printf("midiinit: unit %d/%d.\n", unit, channel)); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); /* * Protect against call with existing unit/channel or auto-allocate a * new unit number. @@ -314,13 +312,8 @@ midi_init(kobj_class_t cls, int unit, int channel, voi unit = i + 1; MIDI_DEBUG(1, printf("midiinit #2: unit %d/%d.\n", unit, channel)); - m = malloc(sizeof(*m), M_MIDI, M_NOWAIT | M_ZERO); - if (m == NULL) - goto err0; - - m->synth = malloc(sizeof(*m->synth), M_MIDI, M_NOWAIT | M_ZERO); - if (m->synth == NULL) - goto err1; + m = malloc(sizeof(*m), M_MIDI, M_WAITOK | M_ZERO); + m->synth = malloc(sizeof(*m->synth), M_MIDI, M_WAITOK | M_ZERO); kobj_init((kobj_t)m->synth, &midisynth_class); m->synth->m = m; kobj_init((kobj_t)m, cls); @@ -329,7 +322,7 @@ midi_init(kobj_class_t cls, int unit, int channel, voi MIDI_DEBUG(1, printf("midiinit queues %d/%d.\n", inqsize, outqsize)); if (!inqsize && !outqsize) - goto err2; + goto err1; mtx_init(&m->lock, "raw midi", NULL, 0); mtx_init(&m->qlock, "q raw midi", NULL, 0); @@ -354,9 +347,8 @@ midi_init(kobj_class_t cls, int unit, int channel, voi if ((inqsize && !MIDIQ_BUF(m->inq)) || (outqsize && !MIDIQ_BUF(m->outq))) - goto err3; + goto err2; - m->busy = 0; m->flags = 0; m->unit = unit; @@ -364,14 +356,14 @@ midi_init(kobj_class_t cls, int unit, int channel, voi m->cookie = cookie; if (MPU_INIT(m, cookie)) - goto err3; + goto err2; mtx_unlock(&m->lock); mtx_unlock(&m->qlock); TAILQ_INSERT_TAIL(&midi_devs, m, link); - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); m->dev = make_dev(&midi_cdevsw, MIDIMKMINOR(unit, MIDI_DEV_RAW, channel), @@ -380,16 +372,19 @@ midi_init(kobj_class_t cls, int unit, int channel, voi return m; -err3: mtx_destroy(&m->qlock); +err2: + mtx_destroy(&m->qlock); mtx_destroy(&m->lock); if (MIDIQ_BUF(m->inq)) free(MIDIQ_BUF(m->inq), M_MIDI); if (MIDIQ_BUF(m->outq)) free(MIDIQ_BUF(m->outq), M_MIDI); -err2: free(m->synth, M_MIDI); -err1: free(m, M_MIDI); -err0: mtx_unlock(&midistat_lock); +err1: + free(m->synth, M_MIDI); + free(m, M_MIDI); +err0: + sx_xunlock(&midistat_lock); MIDI_DEBUG(1, printf("midi_init ended in error\n")); return NULL; } @@ -407,7 +402,7 @@ midi_uninit(struct snd_midi *m) int err; err = EBUSY; - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); mtx_lock(&m->lock); if (m->busy) { if (!(m->rchan || m->wchan)) @@ -426,8 +421,10 @@ midi_uninit(struct snd_midi *m) if (!err) goto exit; -err: mtx_unlock(&m->lock); -exit: mtx_unlock(&midistat_lock); +err: + mtx_unlock(&m->lock); +exit: + sx_xunlock(&midistat_lock); return err; } @@ -939,27 +936,22 @@ midistat_open(struct cdev *i_dev, int flags, int mode, int error; MIDI_DEBUG(1, printf("midistat_open\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBUSY; } midistat_isopen = 1; - mtx_unlock(&midistat_lock); - if (sbuf_new(&midistat_sbuf, NULL, 4096, SBUF_AUTOEXTEND) == NULL) { error = ENXIO; - mtx_lock(&midistat_lock); goto out; } - mtx_lock(&midistat_lock); - midistat_bufptr = 0; error = (midistat_prepare(&midistat_sbuf) > 0) ? 0 : ENOMEM; - -out: if (error) +out: + if (error) midistat_isopen = 0; - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return error; } @@ -967,40 +959,40 @@ static int midistat_close(struct cdev *i_dev, int flags, int mode, struct thread *td) { MIDI_DEBUG(1, printf("midistat_close\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (!midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBADF; } sbuf_delete(&midistat_sbuf); midistat_isopen = 0; - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return 0; } static int -midistat_read(struct cdev *i_dev, struct uio *buf, int flag) +midistat_read(struct cdev *i_dev, struct uio *uio, int flag) { - int l, err; + long l; + int err; MIDI_DEBUG(4, printf("midistat_read\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (!midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBADF; } - l = min(buf->uio_resid, sbuf_len(&midistat_sbuf) - midistat_bufptr); + if (uio->uio_offset < 0 || uio->uio_offset > sbuf_len(&midistat_sbuf)) { + sx_xunlock(&midistat_lock); + return EINVAL; + } err = 0; + l = lmin(uio->uio_resid, sbuf_len(&midistat_sbuf) - uio->uio_offset); if (l > 0) { - mtx_unlock(&midistat_lock); - err = uiomove(sbuf_data(&midistat_sbuf) + midistat_bufptr, l, - buf); - mtx_lock(&midistat_lock); - } else - l = 0; - midistat_bufptr += l; - mtx_unlock(&midistat_lock); + err = uiomove(sbuf_data(&midistat_sbuf) + uio->uio_offset, l, + uio); + } + sx_xunlock(&midistat_lock); return err; } @@ -1013,7 +1005,7 @@ midistat_prepare(struct sbuf *s) { struct snd_midi *m; - mtx_assert(&midistat_lock, MA_OWNED); + sx_assert(&midistat_lock, SA_XLOCKED); sbuf_printf(s, "FreeBSD Midi Driver (midi2)\n"); if (TAILQ_EMPTY(&midi_devs)) { @@ -1376,8 +1368,7 @@ midisynth_bender(void *n, uint8_t chn, uint16_t val) static int midi_destroy(struct snd_midi *m, int midiuninit) { - - mtx_assert(&midistat_lock, MA_OWNED); + sx_assert(&midistat_lock, SA_XLOCKED); mtx_assert(&m->lock, MA_OWNED); MIDI_DEBUG(3, printf("midi_destroy\n")); @@ -1403,8 +1394,8 @@ midi_destroy(struct snd_midi *m, int midiuninit) static int midi_load(void) { - mtx_init(&midistat_lock, "midistat lock", NULL, 0); - TAILQ_INIT(&midi_devs); /* Initialize the queue. */ + sx_init(&midistat_lock, "midistat lock"); + TAILQ_INIT(&midi_devs); midistat_dev = make_dev(&midistat_cdevsw, MIDIMKMINOR(0, MIDI_DEV_MIDICTL, 0), @@ -1421,7 +1412,7 @@ midi_unload(void) MIDI_DEBUG(1, printf("midi_unload()\n")); retval = EBUSY; - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (midistat_isopen) goto exit0; @@ -1434,20 +1425,19 @@ midi_unload(void) if (retval) goto exit1; } - - mtx_unlock(&midistat_lock); /* XXX */ - + sx_xunlock(&midistat_lock); destroy_dev(midistat_dev); + /* * Made it here then unload is complete */ - mtx_destroy(&midistat_lock); + sx_destroy(&midistat_lock); return 0; exit1: mtx_unlock(&m->lock); exit0: - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); if (retval) MIDI_DEBUG(2, printf("midi_unload: failed\n")); return retval; @@ -1500,13 +1490,11 @@ midimapper_open(void *arg1, void **cookie) int retval = 0; struct snd_midi *m; - mtx_lock(&midistat_lock); - + sx_xlock(&midistat_lock); TAILQ_FOREACH(m, &midi_devs, link) { retval++; } - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return retval; } @@ -1522,17 +1510,15 @@ midimapper_fetch_synth(void *arg, void *cookie, int un struct snd_midi *m; int retval = 0; - mtx_lock(&midistat_lock); - + sx_xlock(&midistat_lock); TAILQ_FOREACH(m, &midi_devs, link) { if (unit == retval) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return (kobj_t)m->synth; } retval++; } - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return NULL; } Modified: releng/11.3/sys/dev/sound/midi/midi.c ============================================================================== --- releng/11.3/sys/dev/sound/midi/midi.c Tue Aug 20 17:49:33 2019 (r351259) +++ releng/11.3/sys/dev/sound/midi/midi.c Tue Aug 20 17:50:33 2019 (r351260) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -47,10 +48,8 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include -#include -#include +#include #include #include #include @@ -185,10 +184,9 @@ TAILQ_HEAD(, snd_midi) midi_devs; * /dev/midistat variables and declarations, protected by midistat_lock */ -static struct mtx midistat_lock; +static struct sx midistat_lock; static int midistat_isopen = 0; static struct sbuf midistat_sbuf; -static int midistat_bufptr; static struct cdev *midistat_dev; /* @@ -287,7 +285,7 @@ midi_init(kobj_class_t cls, int unit, int channel, voi MIDI_TYPE *buf; MIDI_DEBUG(1, printf("midiinit: unit %d/%d.\n", unit, channel)); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); /* * Protect against call with existing unit/channel or auto-allocate a * new unit number. @@ -314,13 +312,8 @@ midi_init(kobj_class_t cls, int unit, int channel, voi unit = i + 1; MIDI_DEBUG(1, printf("midiinit #2: unit %d/%d.\n", unit, channel)); - m = malloc(sizeof(*m), M_MIDI, M_NOWAIT | M_ZERO); - if (m == NULL) - goto err0; - - m->synth = malloc(sizeof(*m->synth), M_MIDI, M_NOWAIT | M_ZERO); - if (m->synth == NULL) - goto err1; + m = malloc(sizeof(*m), M_MIDI, M_WAITOK | M_ZERO); + m->synth = malloc(sizeof(*m->synth), M_MIDI, M_WAITOK | M_ZERO); kobj_init((kobj_t)m->synth, &midisynth_class); m->synth->m = m; kobj_init((kobj_t)m, cls); @@ -329,7 +322,7 @@ midi_init(kobj_class_t cls, int unit, int channel, voi MIDI_DEBUG(1, printf("midiinit queues %d/%d.\n", inqsize, outqsize)); if (!inqsize && !outqsize) - goto err2; + goto err1; mtx_init(&m->lock, "raw midi", NULL, 0); mtx_init(&m->qlock, "q raw midi", NULL, 0); @@ -354,9 +347,8 @@ midi_init(kobj_class_t cls, int unit, int channel, voi if ((inqsize && !MIDIQ_BUF(m->inq)) || (outqsize && !MIDIQ_BUF(m->outq))) - goto err3; + goto err2; - m->busy = 0; m->flags = 0; m->unit = unit; @@ -364,14 +356,14 @@ midi_init(kobj_class_t cls, int unit, int channel, voi m->cookie = cookie; if (MPU_INIT(m, cookie)) - goto err3; + goto err2; mtx_unlock(&m->lock); mtx_unlock(&m->qlock); TAILQ_INSERT_TAIL(&midi_devs, m, link); - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); m->dev = make_dev(&midi_cdevsw, MIDIMKMINOR(unit, MIDI_DEV_RAW, channel), @@ -380,16 +372,19 @@ midi_init(kobj_class_t cls, int unit, int channel, voi return m; -err3: mtx_destroy(&m->qlock); +err2: + mtx_destroy(&m->qlock); mtx_destroy(&m->lock); if (MIDIQ_BUF(m->inq)) free(MIDIQ_BUF(m->inq), M_MIDI); if (MIDIQ_BUF(m->outq)) free(MIDIQ_BUF(m->outq), M_MIDI); -err2: free(m->synth, M_MIDI); -err1: free(m, M_MIDI); -err0: mtx_unlock(&midistat_lock); +err1: + free(m->synth, M_MIDI); + free(m, M_MIDI); +err0: + sx_xunlock(&midistat_lock); MIDI_DEBUG(1, printf("midi_init ended in error\n")); return NULL; } @@ -407,7 +402,7 @@ midi_uninit(struct snd_midi *m) int err; err = EBUSY; - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); mtx_lock(&m->lock); if (m->busy) { if (!(m->rchan || m->wchan)) @@ -426,8 +421,10 @@ midi_uninit(struct snd_midi *m) if (!err) goto exit; -err: mtx_unlock(&m->lock); -exit: mtx_unlock(&midistat_lock); +err: + mtx_unlock(&m->lock); +exit: + sx_xunlock(&midistat_lock); return err; } @@ -939,27 +936,22 @@ midistat_open(struct cdev *i_dev, int flags, int mode, int error; MIDI_DEBUG(1, printf("midistat_open\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBUSY; } midistat_isopen = 1; - mtx_unlock(&midistat_lock); - if (sbuf_new(&midistat_sbuf, NULL, 4096, SBUF_AUTOEXTEND) == NULL) { error = ENXIO; - mtx_lock(&midistat_lock); goto out; } - mtx_lock(&midistat_lock); - midistat_bufptr = 0; error = (midistat_prepare(&midistat_sbuf) > 0) ? 0 : ENOMEM; - -out: if (error) +out: + if (error) midistat_isopen = 0; - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return error; } @@ -967,40 +959,40 @@ static int midistat_close(struct cdev *i_dev, int flags, int mode, struct thread *td) { MIDI_DEBUG(1, printf("midistat_close\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (!midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBADF; } sbuf_delete(&midistat_sbuf); midistat_isopen = 0; - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return 0; } static int -midistat_read(struct cdev *i_dev, struct uio *buf, int flag) +midistat_read(struct cdev *i_dev, struct uio *uio, int flag) { - int l, err; + long l; + int err; MIDI_DEBUG(4, printf("midistat_read\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (!midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBADF; } - l = min(buf->uio_resid, sbuf_len(&midistat_sbuf) - midistat_bufptr); + if (uio->uio_offset < 0 || uio->uio_offset > sbuf_len(&midistat_sbuf)) { + sx_xunlock(&midistat_lock); + return EINVAL; + } err = 0; + l = lmin(uio->uio_resid, sbuf_len(&midistat_sbuf) - uio->uio_offset); if (l > 0) { - mtx_unlock(&midistat_lock); - err = uiomove(sbuf_data(&midistat_sbuf) + midistat_bufptr, l, - buf); - mtx_lock(&midistat_lock); - } else - l = 0; - midistat_bufptr += l; - mtx_unlock(&midistat_lock); + err = uiomove(sbuf_data(&midistat_sbuf) + uio->uio_offset, l, + uio); + } + sx_xunlock(&midistat_lock); return err; } @@ -1013,7 +1005,7 @@ midistat_prepare(struct sbuf *s) { struct snd_midi *m; - mtx_assert(&midistat_lock, MA_OWNED); + sx_assert(&midistat_lock, SA_XLOCKED); sbuf_printf(s, "FreeBSD Midi Driver (midi2)\n"); if (TAILQ_EMPTY(&midi_devs)) { @@ -1376,8 +1368,7 @@ midisynth_bender(void *n, uint8_t chn, uint16_t val) static int midi_destroy(struct snd_midi *m, int midiuninit) { - - mtx_assert(&midistat_lock, MA_OWNED); + sx_assert(&midistat_lock, SA_XLOCKED); mtx_assert(&m->lock, MA_OWNED); MIDI_DEBUG(3, printf("midi_destroy\n")); @@ -1403,8 +1394,8 @@ midi_destroy(struct snd_midi *m, int midiuninit) static int midi_load(void) { - mtx_init(&midistat_lock, "midistat lock", NULL, 0); - TAILQ_INIT(&midi_devs); /* Initialize the queue. */ + sx_init(&midistat_lock, "midistat lock"); + TAILQ_INIT(&midi_devs); midistat_dev = make_dev(&midistat_cdevsw, MIDIMKMINOR(0, MIDI_DEV_MIDICTL, 0), @@ -1421,7 +1412,7 @@ midi_unload(void) MIDI_DEBUG(1, printf("midi_unload()\n")); retval = EBUSY; - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (midistat_isopen) goto exit0; @@ -1434,20 +1425,19 @@ midi_unload(void) if (retval) goto exit1; } - - mtx_unlock(&midistat_lock); /* XXX */ - + sx_xunlock(&midistat_lock); destroy_dev(midistat_dev); + /* * Made it here then unload is complete */ - mtx_destroy(&midistat_lock); + sx_destroy(&midistat_lock); return 0; exit1: mtx_unlock(&m->lock); exit0: - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); if (retval) MIDI_DEBUG(2, printf("midi_unload: failed\n")); return retval; @@ -1496,13 +1486,11 @@ midimapper_open(void *arg1, void **cookie) int retval = 0; struct snd_midi *m; - mtx_lock(&midistat_lock); - + sx_xlock(&midistat_lock); TAILQ_FOREACH(m, &midi_devs, link) { retval++; } - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return retval; } @@ -1518,17 +1506,15 @@ midimapper_fetch_synth(void *arg, void *cookie, int un struct snd_midi *m; int retval = 0; - mtx_lock(&midistat_lock); - + sx_xlock(&midistat_lock); TAILQ_FOREACH(m, &midi_devs, link) { if (unit == retval) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return (kobj_t)m->synth; } retval++; } - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return NULL; } Modified: releng/12.0/sys/dev/sound/midi/midi.c ============================================================================== --- releng/12.0/sys/dev/sound/midi/midi.c Tue Aug 20 17:49:33 2019 (r351259) +++ releng/12.0/sys/dev/sound/midi/midi.c Tue Aug 20 17:50:33 2019 (r351260) @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -49,10 +50,8 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include -#include -#include +#include #include #include #include @@ -187,10 +186,9 @@ TAILQ_HEAD(, snd_midi) midi_devs; * /dev/midistat variables and declarations, protected by midistat_lock */ -static struct mtx midistat_lock; +static struct sx midistat_lock; static int midistat_isopen = 0; static struct sbuf midistat_sbuf; -static int midistat_bufptr; static struct cdev *midistat_dev; /* @@ -289,7 +287,7 @@ midi_init(kobj_class_t cls, int unit, int channel, voi MIDI_TYPE *buf; MIDI_DEBUG(1, printf("midiinit: unit %d/%d.\n", unit, channel)); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); /* * Protect against call with existing unit/channel or auto-allocate a * new unit number. @@ -316,13 +314,8 @@ midi_init(kobj_class_t cls, int unit, int channel, voi unit = i + 1; MIDI_DEBUG(1, printf("midiinit #2: unit %d/%d.\n", unit, channel)); - m = malloc(sizeof(*m), M_MIDI, M_NOWAIT | M_ZERO); - if (m == NULL) - goto err0; - - m->synth = malloc(sizeof(*m->synth), M_MIDI, M_NOWAIT | M_ZERO); - if (m->synth == NULL) - goto err1; + m = malloc(sizeof(*m), M_MIDI, M_WAITOK | M_ZERO); + m->synth = malloc(sizeof(*m->synth), M_MIDI, M_WAITOK | M_ZERO); kobj_init((kobj_t)m->synth, &midisynth_class); m->synth->m = m; kobj_init((kobj_t)m, cls); @@ -331,7 +324,7 @@ midi_init(kobj_class_t cls, int unit, int channel, voi MIDI_DEBUG(1, printf("midiinit queues %d/%d.\n", inqsize, outqsize)); if (!inqsize && !outqsize) - goto err2; + goto err1; mtx_init(&m->lock, "raw midi", NULL, 0); mtx_init(&m->qlock, "q raw midi", NULL, 0); @@ -356,9 +349,8 @@ midi_init(kobj_class_t cls, int unit, int channel, voi if ((inqsize && !MIDIQ_BUF(m->inq)) || (outqsize && !MIDIQ_BUF(m->outq))) - goto err3; + goto err2; - m->busy = 0; m->flags = 0; m->unit = unit; @@ -366,14 +358,14 @@ midi_init(kobj_class_t cls, int unit, int channel, voi m->cookie = cookie; if (MPU_INIT(m, cookie)) - goto err3; + goto err2; mtx_unlock(&m->lock); mtx_unlock(&m->qlock); TAILQ_INSERT_TAIL(&midi_devs, m, link); - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); m->dev = make_dev(&midi_cdevsw, MIDIMKMINOR(unit, MIDI_DEV_RAW, channel), @@ -382,16 +374,19 @@ midi_init(kobj_class_t cls, int unit, int channel, voi return m; -err3: mtx_destroy(&m->qlock); +err2: + mtx_destroy(&m->qlock); mtx_destroy(&m->lock); if (MIDIQ_BUF(m->inq)) free(MIDIQ_BUF(m->inq), M_MIDI); if (MIDIQ_BUF(m->outq)) free(MIDIQ_BUF(m->outq), M_MIDI); -err2: free(m->synth, M_MIDI); -err1: free(m, M_MIDI); -err0: mtx_unlock(&midistat_lock); +err1: + free(m->synth, M_MIDI); + free(m, M_MIDI); +err0: + sx_xunlock(&midistat_lock); MIDI_DEBUG(1, printf("midi_init ended in error\n")); return NULL; } @@ -409,7 +404,7 @@ midi_uninit(struct snd_midi *m) int err; err = EBUSY; - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); mtx_lock(&m->lock); if (m->busy) { if (!(m->rchan || m->wchan)) @@ -428,8 +423,10 @@ midi_uninit(struct snd_midi *m) if (!err) goto exit; -err: mtx_unlock(&m->lock); -exit: mtx_unlock(&midistat_lock); +err: + mtx_unlock(&m->lock); +exit: + sx_xunlock(&midistat_lock); return err; } @@ -941,27 +938,22 @@ midistat_open(struct cdev *i_dev, int flags, int mode, int error; MIDI_DEBUG(1, printf("midistat_open\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBUSY; } midistat_isopen = 1; - mtx_unlock(&midistat_lock); - if (sbuf_new(&midistat_sbuf, NULL, 4096, SBUF_AUTOEXTEND) == NULL) { error = ENXIO; - mtx_lock(&midistat_lock); goto out; } - mtx_lock(&midistat_lock); - midistat_bufptr = 0; error = (midistat_prepare(&midistat_sbuf) > 0) ? 0 : ENOMEM; - -out: if (error) +out: + if (error) midistat_isopen = 0; - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return error; } @@ -969,40 +961,40 @@ static int midistat_close(struct cdev *i_dev, int flags, int mode, struct thread *td) { MIDI_DEBUG(1, printf("midistat_close\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (!midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBADF; } sbuf_delete(&midistat_sbuf); midistat_isopen = 0; - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return 0; } static int -midistat_read(struct cdev *i_dev, struct uio *buf, int flag) +midistat_read(struct cdev *i_dev, struct uio *uio, int flag) { - int l, err; + long l; + int err; MIDI_DEBUG(4, printf("midistat_read\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (!midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBADF; } - l = min(buf->uio_resid, sbuf_len(&midistat_sbuf) - midistat_bufptr); + if (uio->uio_offset < 0 || uio->uio_offset > sbuf_len(&midistat_sbuf)) { + sx_xunlock(&midistat_lock); + return EINVAL; + } err = 0; + l = lmin(uio->uio_resid, sbuf_len(&midistat_sbuf) - uio->uio_offset); if (l > 0) { - mtx_unlock(&midistat_lock); - err = uiomove(sbuf_data(&midistat_sbuf) + midistat_bufptr, l, - buf); - mtx_lock(&midistat_lock); - } else - l = 0; - midistat_bufptr += l; - mtx_unlock(&midistat_lock); + err = uiomove(sbuf_data(&midistat_sbuf) + uio->uio_offset, l, + uio); + } + sx_xunlock(&midistat_lock); return err; } @@ -1015,7 +1007,7 @@ midistat_prepare(struct sbuf *s) { struct snd_midi *m; - mtx_assert(&midistat_lock, MA_OWNED); + sx_assert(&midistat_lock, SA_XLOCKED); sbuf_printf(s, "FreeBSD Midi Driver (midi2)\n"); if (TAILQ_EMPTY(&midi_devs)) { @@ -1378,8 +1370,7 @@ midisynth_bender(void *n, uint8_t chn, uint16_t val) static int midi_destroy(struct snd_midi *m, int midiuninit) { - - mtx_assert(&midistat_lock, MA_OWNED); + sx_assert(&midistat_lock, SA_XLOCKED); mtx_assert(&m->lock, MA_OWNED); MIDI_DEBUG(3, printf("midi_destroy\n")); @@ -1405,8 +1396,8 @@ midi_destroy(struct snd_midi *m, int midiuninit) static int midi_load(void) { - mtx_init(&midistat_lock, "midistat lock", NULL, 0); - TAILQ_INIT(&midi_devs); /* Initialize the queue. */ + sx_init(&midistat_lock, "midistat lock"); + TAILQ_INIT(&midi_devs); midistat_dev = make_dev(&midistat_cdevsw, MIDIMKMINOR(0, MIDI_DEV_MIDICTL, 0), @@ -1423,7 +1414,7 @@ midi_unload(void) MIDI_DEBUG(1, printf("midi_unload()\n")); retval = EBUSY; - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (midistat_isopen) goto exit0; @@ -1436,20 +1427,19 @@ midi_unload(void) if (retval) goto exit1; } - - mtx_unlock(&midistat_lock); /* XXX */ - + sx_xunlock(&midistat_lock); destroy_dev(midistat_dev); + /* * Made it here then unload is complete */ - mtx_destroy(&midistat_lock); + sx_destroy(&midistat_lock); return 0; exit1: mtx_unlock(&m->lock); exit0: - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); if (retval) MIDI_DEBUG(2, printf("midi_unload: failed\n")); return retval; @@ -1498,13 +1488,11 @@ midimapper_open(void *arg1, void **cookie) int retval = 0; struct snd_midi *m; - mtx_lock(&midistat_lock); - + sx_xlock(&midistat_lock); TAILQ_FOREACH(m, &midi_devs, link) { retval++; } - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return retval; } @@ -1520,17 +1508,15 @@ midimapper_fetch_synth(void *arg, void *cookie, int un struct snd_midi *m; int retval = 0; - mtx_lock(&midistat_lock); - + sx_xlock(&midistat_lock); TAILQ_FOREACH(m, &midi_devs, link) { if (unit == retval) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return (kobj_t)m->synth; } retval++; } - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return NULL; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Aug 20 17:51:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 106CDD7109; Tue, 20 Aug 2019 17:51:34 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cddd6b48z4cFv; Tue, 20 Aug 2019 17:51:33 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C3C2D6DEB; Tue, 20 Aug 2019 17:51:33 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KHpXj8063059; Tue, 20 Aug 2019 17:51:33 GMT (envelope-from gordon@FreeBSD.org) Received: (from gordon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHpX7s063056; Tue, 20 Aug 2019 17:51:33 GMT (envelope-from gordon@FreeBSD.org) Message-Id: <201908201751.x7KHpX7s063056@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gordon set sender to gordon@FreeBSD.org using -f From: Gordon Tetlow Date: Tue, 20 Aug 2019 17:51:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r351261 - in releng: 11.2/sys/kern 11.3/sys/kern 12.0/sys/kern X-SVN-Group: releng X-SVN-Commit-Author: gordon X-SVN-Commit-Paths: in releng: 11.2/sys/kern 11.3/sys/kern 12.0/sys/kern X-SVN-Commit-Revision: 351261 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:51:34 -0000 Author: gordon Date: Tue Aug 20 17:51:32 2019 New Revision: 351261 URL: https://svnweb.freebsd.org/changeset/base/351261 Log: Fix reference count overflow in mqueuefs. Approved by: so Security: FreeBSD-SA-19:24.mqueuefs Security: CVE-2019-5603 Modified: releng/11.2/sys/kern/uipc_mqueue.c releng/11.3/sys/kern/uipc_mqueue.c releng/12.0/sys/kern/uipc_mqueue.c Modified: releng/11.2/sys/kern/uipc_mqueue.c ============================================================================== --- releng/11.2/sys/kern/uipc_mqueue.c Tue Aug 20 17:50:33 2019 (r351260) +++ releng/11.2/sys/kern/uipc_mqueue.c Tue Aug 20 17:51:32 2019 (r351261) @@ -2788,7 +2788,7 @@ freebsd32_kmq_timedsend(struct thread *td, if (uap->abs_timeout != NULL) { error = copyin(uap->abs_timeout, &ets32, sizeof(ets32)); if (error != 0) - return (error); + goto out; CP(ets32, ets, tv_sec); CP(ets32, ets, tv_nsec); abs_timeout = &ets; @@ -2797,6 +2797,7 @@ freebsd32_kmq_timedsend(struct thread *td, waitok = !(fp->f_flag & O_NONBLOCK); error = mqueue_send(mq, uap->msg_ptr, uap->msg_len, uap->msg_prio, waitok, abs_timeout); +out: fdrop(fp, td); return (error); } Modified: releng/11.3/sys/kern/uipc_mqueue.c ============================================================================== --- releng/11.3/sys/kern/uipc_mqueue.c Tue Aug 20 17:50:33 2019 (r351260) +++ releng/11.3/sys/kern/uipc_mqueue.c Tue Aug 20 17:51:32 2019 (r351261) @@ -2788,7 +2788,7 @@ freebsd32_kmq_timedsend(struct thread *td, if (uap->abs_timeout != NULL) { error = copyin(uap->abs_timeout, &ets32, sizeof(ets32)); if (error != 0) - return (error); + goto out; CP(ets32, ets, tv_sec); CP(ets32, ets, tv_nsec); abs_timeout = &ets; @@ -2797,6 +2797,7 @@ freebsd32_kmq_timedsend(struct thread *td, waitok = !(fp->f_flag & O_NONBLOCK); error = mqueue_send(mq, uap->msg_ptr, uap->msg_len, uap->msg_prio, waitok, abs_timeout); +out: fdrop(fp, td); return (error); } Modified: releng/12.0/sys/kern/uipc_mqueue.c ============================================================================== --- releng/12.0/sys/kern/uipc_mqueue.c Tue Aug 20 17:50:33 2019 (r351260) +++ releng/12.0/sys/kern/uipc_mqueue.c Tue Aug 20 17:51:32 2019 (r351261) @@ -2798,7 +2798,7 @@ freebsd32_kmq_timedsend(struct thread *td, if (uap->abs_timeout != NULL) { error = copyin(uap->abs_timeout, &ets32, sizeof(ets32)); if (error != 0) - return (error); + goto out; CP(ets32, ets, tv_sec); CP(ets32, ets, tv_nsec); abs_timeout = &ets; @@ -2807,6 +2807,7 @@ freebsd32_kmq_timedsend(struct thread *td, waitok = !(fp->f_flag & O_NONBLOCK); error = mqueue_send(mq, uap->msg_ptr, uap->msg_len, uap->msg_prio, waitok, abs_timeout); +out: fdrop(fp, td); return (error); } From owner-svn-src-all@freebsd.org Tue Aug 20 17:52:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B3A3BD7173; Tue, 20 Aug 2019 17:52:13 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CdfP43NXz4cQC; Tue, 20 Aug 2019 17:52:13 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 529766F33; Tue, 20 Aug 2019 17:52:13 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KHqD87066293; Tue, 20 Aug 2019 17:52:13 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHqDN6066292; Tue, 20 Aug 2019 17:52:13 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908201752.x7KHqDN6066292@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 20 Aug 2019 17:52:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351262 - head/sys/dev/sound/midi X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/sound/midi X-SVN-Commit-Revision: 351262 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:52:13 -0000 Author: markj Date: Tue Aug 20 17:52:12 2019 New Revision: 351262 URL: https://svnweb.freebsd.org/changeset/base/351262 Log: Use a sleepable lock for midistat functions. Otherwise the mutex needs to be dropped when copying out the midistat sbuf, leading to a race which allows one to read kernel memory beyond the end of the sbuf buffer. Reported and tested by: pho Security: CVE-2019-5612 Modified: head/sys/dev/sound/midi/midi.c Modified: head/sys/dev/sound/midi/midi.c ============================================================================== --- head/sys/dev/sound/midi/midi.c Tue Aug 20 17:51:32 2019 (r351261) +++ head/sys/dev/sound/midi/midi.c Tue Aug 20 17:52:12 2019 (r351262) @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -49,10 +50,8 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include -#include -#include +#include #include #include #include @@ -187,10 +186,9 @@ TAILQ_HEAD(, snd_midi) midi_devs; * /dev/midistat variables and declarations, protected by midistat_lock */ -static struct mtx midistat_lock; +static struct sx midistat_lock; static int midistat_isopen = 0; static struct sbuf midistat_sbuf; -static int midistat_bufptr; static struct cdev *midistat_dev; /* @@ -289,7 +287,7 @@ midi_init(kobj_class_t cls, int unit, int channel, voi MIDI_TYPE *buf; MIDI_DEBUG(1, printf("midiinit: unit %d/%d.\n", unit, channel)); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); /* * Protect against call with existing unit/channel or auto-allocate a * new unit number. @@ -316,13 +314,8 @@ midi_init(kobj_class_t cls, int unit, int channel, voi unit = i + 1; MIDI_DEBUG(1, printf("midiinit #2: unit %d/%d.\n", unit, channel)); - m = malloc(sizeof(*m), M_MIDI, M_NOWAIT | M_ZERO); - if (m == NULL) - goto err0; - - m->synth = malloc(sizeof(*m->synth), M_MIDI, M_NOWAIT | M_ZERO); - if (m->synth == NULL) - goto err1; + m = malloc(sizeof(*m), M_MIDI, M_WAITOK | M_ZERO); + m->synth = malloc(sizeof(*m->synth), M_MIDI, M_WAITOK | M_ZERO); kobj_init((kobj_t)m->synth, &midisynth_class); m->synth->m = m; kobj_init((kobj_t)m, cls); @@ -331,7 +324,7 @@ midi_init(kobj_class_t cls, int unit, int channel, voi MIDI_DEBUG(1, printf("midiinit queues %d/%d.\n", inqsize, outqsize)); if (!inqsize && !outqsize) - goto err2; + goto err1; mtx_init(&m->lock, "raw midi", NULL, 0); mtx_init(&m->qlock, "q raw midi", NULL, 0); @@ -356,9 +349,8 @@ midi_init(kobj_class_t cls, int unit, int channel, voi if ((inqsize && !MIDIQ_BUF(m->inq)) || (outqsize && !MIDIQ_BUF(m->outq))) - goto err3; + goto err2; - m->busy = 0; m->flags = 0; m->unit = unit; @@ -366,14 +358,14 @@ midi_init(kobj_class_t cls, int unit, int channel, voi m->cookie = cookie; if (MPU_INIT(m, cookie)) - goto err3; + goto err2; mtx_unlock(&m->lock); mtx_unlock(&m->qlock); TAILQ_INSERT_TAIL(&midi_devs, m, link); - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); m->dev = make_dev(&midi_cdevsw, MIDIMKMINOR(unit, MIDI_DEV_RAW, channel), @@ -382,16 +374,19 @@ midi_init(kobj_class_t cls, int unit, int channel, voi return m; -err3: mtx_destroy(&m->qlock); +err2: + mtx_destroy(&m->qlock); mtx_destroy(&m->lock); if (MIDIQ_BUF(m->inq)) free(MIDIQ_BUF(m->inq), M_MIDI); if (MIDIQ_BUF(m->outq)) free(MIDIQ_BUF(m->outq), M_MIDI); -err2: free(m->synth, M_MIDI); -err1: free(m, M_MIDI); -err0: mtx_unlock(&midistat_lock); +err1: + free(m->synth, M_MIDI); + free(m, M_MIDI); +err0: + sx_xunlock(&midistat_lock); MIDI_DEBUG(1, printf("midi_init ended in error\n")); return NULL; } @@ -409,7 +404,7 @@ midi_uninit(struct snd_midi *m) int err; err = EBUSY; - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); mtx_lock(&m->lock); if (m->busy) { if (!(m->rchan || m->wchan)) @@ -428,8 +423,10 @@ midi_uninit(struct snd_midi *m) if (!err) goto exit; -err: mtx_unlock(&m->lock); -exit: mtx_unlock(&midistat_lock); +err: + mtx_unlock(&m->lock); +exit: + sx_xunlock(&midistat_lock); return err; } @@ -941,27 +938,22 @@ midistat_open(struct cdev *i_dev, int flags, int mode, int error; MIDI_DEBUG(1, printf("midistat_open\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBUSY; } midistat_isopen = 1; - mtx_unlock(&midistat_lock); - if (sbuf_new(&midistat_sbuf, NULL, 4096, SBUF_AUTOEXTEND) == NULL) { error = ENXIO; - mtx_lock(&midistat_lock); goto out; } - mtx_lock(&midistat_lock); - midistat_bufptr = 0; error = (midistat_prepare(&midistat_sbuf) > 0) ? 0 : ENOMEM; - -out: if (error) +out: + if (error) midistat_isopen = 0; - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return error; } @@ -969,40 +961,40 @@ static int midistat_close(struct cdev *i_dev, int flags, int mode, struct thread *td) { MIDI_DEBUG(1, printf("midistat_close\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (!midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBADF; } sbuf_delete(&midistat_sbuf); midistat_isopen = 0; - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return 0; } static int -midistat_read(struct cdev *i_dev, struct uio *buf, int flag) +midistat_read(struct cdev *i_dev, struct uio *uio, int flag) { - int l, err; + long l; + int err; MIDI_DEBUG(4, printf("midistat_read\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (!midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBADF; } - l = min(buf->uio_resid, sbuf_len(&midistat_sbuf) - midistat_bufptr); + if (uio->uio_offset < 0 || uio->uio_offset > sbuf_len(&midistat_sbuf)) { + sx_xunlock(&midistat_lock); + return EINVAL; + } err = 0; + l = lmin(uio->uio_resid, sbuf_len(&midistat_sbuf) - uio->uio_offset); if (l > 0) { - mtx_unlock(&midistat_lock); - err = uiomove(sbuf_data(&midistat_sbuf) + midistat_bufptr, l, - buf); - mtx_lock(&midistat_lock); - } else - l = 0; - midistat_bufptr += l; - mtx_unlock(&midistat_lock); + err = uiomove(sbuf_data(&midistat_sbuf) + uio->uio_offset, l, + uio); + } + sx_xunlock(&midistat_lock); return err; } @@ -1015,7 +1007,7 @@ midistat_prepare(struct sbuf *s) { struct snd_midi *m; - mtx_assert(&midistat_lock, MA_OWNED); + sx_assert(&midistat_lock, SA_XLOCKED); sbuf_printf(s, "FreeBSD Midi Driver (midi2)\n"); if (TAILQ_EMPTY(&midi_devs)) { @@ -1378,8 +1370,7 @@ midisynth_bender(void *n, uint8_t chn, uint16_t val) static int midi_destroy(struct snd_midi *m, int midiuninit) { - - mtx_assert(&midistat_lock, MA_OWNED); + sx_assert(&midistat_lock, SA_XLOCKED); mtx_assert(&m->lock, MA_OWNED); MIDI_DEBUG(3, printf("midi_destroy\n")); @@ -1405,8 +1396,8 @@ midi_destroy(struct snd_midi *m, int midiuninit) static int midi_load(void) { - mtx_init(&midistat_lock, "midistat lock", NULL, 0); - TAILQ_INIT(&midi_devs); /* Initialize the queue. */ + sx_init(&midistat_lock, "midistat lock"); + TAILQ_INIT(&midi_devs); midistat_dev = make_dev(&midistat_cdevsw, MIDIMKMINOR(0, MIDI_DEV_MIDICTL, 0), @@ -1423,7 +1414,7 @@ midi_unload(void) MIDI_DEBUG(1, printf("midi_unload()\n")); retval = EBUSY; - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (midistat_isopen) goto exit0; @@ -1436,20 +1427,19 @@ midi_unload(void) if (retval) goto exit1; } - - mtx_unlock(&midistat_lock); /* XXX */ - + sx_xunlock(&midistat_lock); destroy_dev(midistat_dev); + /* * Made it here then unload is complete */ - mtx_destroy(&midistat_lock); + sx_destroy(&midistat_lock); return 0; exit1: mtx_unlock(&m->lock); exit0: - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); if (retval) MIDI_DEBUG(2, printf("midi_unload: failed\n")); return retval; @@ -1498,13 +1488,11 @@ midimapper_open(void *arg1, void **cookie) int retval = 0; struct snd_midi *m; - mtx_lock(&midistat_lock); - + sx_xlock(&midistat_lock); TAILQ_FOREACH(m, &midi_devs, link) { retval++; } - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return retval; } @@ -1520,17 +1508,15 @@ midimapper_fetch_synth(void *arg, void *cookie, int un struct snd_midi *m; int retval = 0; - mtx_lock(&midistat_lock); - + sx_xlock(&midistat_lock); TAILQ_FOREACH(m, &midi_devs, link) { if (unit == retval) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return (kobj_t)m->synth; } retval++; } - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return NULL; } From owner-svn-src-all@freebsd.org Tue Aug 20 17:52:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D331CD730C; Tue, 20 Aug 2019 17:52:29 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cdfj5GGtz4cYQ; Tue, 20 Aug 2019 17:52:29 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 966166F44; Tue, 20 Aug 2019 17:52:29 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KHqTFo067147; Tue, 20 Aug 2019 17:52:29 GMT (envelope-from gordon@FreeBSD.org) Received: (from gordon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHqSBb066779; Tue, 20 Aug 2019 17:52:28 GMT (envelope-from gordon@FreeBSD.org) Message-Id: <201908201752.x7KHqSBb066779@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gordon set sender to gordon@FreeBSD.org using -f From: Gordon Tetlow Date: Tue, 20 Aug 2019 17:52:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r351263 - in releng: 11.2 11.2/sys/conf 11.3 11.3/sys/conf 12.0 12.0/sys/conf X-SVN-Group: releng X-SVN-Commit-Author: gordon X-SVN-Commit-Paths: in releng: 11.2 11.2/sys/conf 11.3 11.3/sys/conf 12.0 12.0/sys/conf X-SVN-Commit-Revision: 351263 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:52:29 -0000 Author: gordon Date: Tue Aug 20 17:52:28 2019 New Revision: 351263 URL: https://svnweb.freebsd.org/changeset/base/351263 Log: Bump version information and add UPDATING entries. Approved by: so Modified: releng/11.2/UPDATING releng/11.2/sys/conf/newvers.sh releng/11.3/UPDATING releng/11.3/sys/conf/newvers.sh releng/12.0/UPDATING releng/12.0/sys/conf/newvers.sh Modified: releng/11.2/UPDATING ============================================================================== --- releng/11.2/UPDATING Tue Aug 20 17:52:12 2019 (r351262) +++ releng/11.2/UPDATING Tue Aug 20 17:52:28 2019 (r351263) @@ -16,6 +16,16 @@ from older versions of FreeBSD, try WITHOUT_CLANG and the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. +20190820 p14 FreeBSD-SA-19:22.mbuf + FreeBSD-SA-19:23.midi + FreeBSD-SA-19:24.mqueuefs + + Fix IPv6 remote denial of service. [SA-19:22.mbuf] + + Fix kernel memory disclosure from /dev/midistat. [SA-19:23.midi] + + Fix reference count overflow in mqueuefs. [SA-19:24.mqueuefs] + 20190806 p13 FreeBSD-EN-19:15.libunwind FreeBSD-SA-19:18.bzip2 FreeBSD-SA-19:19.mldv2 Modified: releng/11.2/sys/conf/newvers.sh ============================================================================== --- releng/11.2/sys/conf/newvers.sh Tue Aug 20 17:52:12 2019 (r351262) +++ releng/11.2/sys/conf/newvers.sh Tue Aug 20 17:52:28 2019 (r351263) @@ -44,7 +44,7 @@ TYPE="FreeBSD" REVISION="11.2" -BRANCH="RELEASE-p13" +BRANCH="RELEASE-p14" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi Modified: releng/11.3/UPDATING ============================================================================== --- releng/11.3/UPDATING Tue Aug 20 17:52:12 2019 (r351262) +++ releng/11.3/UPDATING Tue Aug 20 17:52:28 2019 (r351263) @@ -16,6 +16,23 @@ from older versions of FreeBSD, try WITHOUT_CLANG and the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. +20190820 p3 FreeBSD-EN-19:16.bhyve + FreeBSD-SA-19:17.ipfw + FreeBSD-SA-19:22.mbuf + FreeBSD-SA-19:23.midi + FreeBSD-SA-19:24.mqueuefs + + Bhyve instruction emulation improvements (opcode 03H and F7H). + [EN-19:16.bhyve] + + Fix ipfw(8) jail keyword prior to jail startup. [EN-19:17.ipfw] + + Fix IPv6 remote denial of service. [SA-19:22.mbuf] + + Fix kernel memory disclosure from /dev/midistat. [SA-19:23.midi] + + Fix reference count overflow in mqueuefs. [SA-19:24.mqueuefs] + 20190806 p2 FreeBSD-SA-19:18.bzip2 FreeBSD-SA-19:19.mldv2 FreeBSD-SA-19:20.bsnmp Modified: releng/11.3/sys/conf/newvers.sh ============================================================================== --- releng/11.3/sys/conf/newvers.sh Tue Aug 20 17:52:12 2019 (r351262) +++ releng/11.3/sys/conf/newvers.sh Tue Aug 20 17:52:28 2019 (r351263) @@ -44,7 +44,7 @@ TYPE="FreeBSD" REVISION="11.3" -BRANCH="RELEASE-p2" +BRANCH="RELEASE-p3" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi Modified: releng/12.0/UPDATING ============================================================================== --- releng/12.0/UPDATING Tue Aug 20 17:52:12 2019 (r351262) +++ releng/12.0/UPDATING Tue Aug 20 17:52:28 2019 (r351263) @@ -16,6 +16,20 @@ from older versions of FreeBSD, try WITHOUT_CLANG and the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. +20190820 p10 FreeBSD-EN-19:16.bhyve + FreeBSD-SA-19:22.mbuf + FreeBSD-SA-19:23.midi + FreeBSD-SA-19:24.mqueuefs + + Bhyve instruction emulation improvements (opcode 03H and F7H). + [EN-19:16.bhyve] + + Fix IPv6 remote denial of service. [SA-19:22.mbuf] + + Fix kernel memory disclosure from /dev/midistat. [SA-19:23.midi] + + Fix reference count overflow in mqueuefs. [SA-19:24.mqueuefs] + 20190806 p9 FreeBSD-EN-19:14.epoch FreeBSD-EN-19:15.libunwind FreeBSD-SA-19:18.bzip2 Modified: releng/12.0/sys/conf/newvers.sh ============================================================================== --- releng/12.0/sys/conf/newvers.sh Tue Aug 20 17:52:12 2019 (r351262) +++ releng/12.0/sys/conf/newvers.sh Tue Aug 20 17:52:28 2019 (r351263) @@ -46,7 +46,7 @@ TYPE="FreeBSD" REVISION="12.0" -BRANCH="RELEASE-p9" +BRANCH="RELEASE-p10" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From owner-svn-src-all@freebsd.org Tue Aug 20 17:53:17 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2A580D73A6; Tue, 20 Aug 2019 17:53:17 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cdgd06Rmz4cmK; Tue, 20 Aug 2019 17:53:17 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D98306F52; Tue, 20 Aug 2019 17:53:16 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KHrGCR067244; Tue, 20 Aug 2019 17:53:16 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHrGpx067243; Tue, 20 Aug 2019 17:53:16 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908201753.x7KHrGpx067243@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 20 Aug 2019 17:53:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351264 - stable/12/sys/dev/sound/midi X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/dev/sound/midi X-SVN-Commit-Revision: 351264 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:53:17 -0000 Author: markj Date: Tue Aug 20 17:53:16 2019 New Revision: 351264 URL: https://svnweb.freebsd.org/changeset/base/351264 Log: MFC r351262: Use a sleepable lock for midistat functions. Security: CVE-2019-5612 Modified: stable/12/sys/dev/sound/midi/midi.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/sound/midi/midi.c ============================================================================== --- stable/12/sys/dev/sound/midi/midi.c Tue Aug 20 17:52:28 2019 (r351263) +++ stable/12/sys/dev/sound/midi/midi.c Tue Aug 20 17:53:16 2019 (r351264) @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -49,10 +50,8 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include -#include -#include +#include #include #include #include @@ -187,10 +186,9 @@ TAILQ_HEAD(, snd_midi) midi_devs; * /dev/midistat variables and declarations, protected by midistat_lock */ -static struct mtx midistat_lock; +static struct sx midistat_lock; static int midistat_isopen = 0; static struct sbuf midistat_sbuf; -static int midistat_bufptr; static struct cdev *midistat_dev; /* @@ -289,7 +287,7 @@ midi_init(kobj_class_t cls, int unit, int channel, voi MIDI_TYPE *buf; MIDI_DEBUG(1, printf("midiinit: unit %d/%d.\n", unit, channel)); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); /* * Protect against call with existing unit/channel or auto-allocate a * new unit number. @@ -316,13 +314,8 @@ midi_init(kobj_class_t cls, int unit, int channel, voi unit = i + 1; MIDI_DEBUG(1, printf("midiinit #2: unit %d/%d.\n", unit, channel)); - m = malloc(sizeof(*m), M_MIDI, M_NOWAIT | M_ZERO); - if (m == NULL) - goto err0; - - m->synth = malloc(sizeof(*m->synth), M_MIDI, M_NOWAIT | M_ZERO); - if (m->synth == NULL) - goto err1; + m = malloc(sizeof(*m), M_MIDI, M_WAITOK | M_ZERO); + m->synth = malloc(sizeof(*m->synth), M_MIDI, M_WAITOK | M_ZERO); kobj_init((kobj_t)m->synth, &midisynth_class); m->synth->m = m; kobj_init((kobj_t)m, cls); @@ -331,7 +324,7 @@ midi_init(kobj_class_t cls, int unit, int channel, voi MIDI_DEBUG(1, printf("midiinit queues %d/%d.\n", inqsize, outqsize)); if (!inqsize && !outqsize) - goto err2; + goto err1; mtx_init(&m->lock, "raw midi", NULL, 0); mtx_init(&m->qlock, "q raw midi", NULL, 0); @@ -356,9 +349,8 @@ midi_init(kobj_class_t cls, int unit, int channel, voi if ((inqsize && !MIDIQ_BUF(m->inq)) || (outqsize && !MIDIQ_BUF(m->outq))) - goto err3; + goto err2; - m->busy = 0; m->flags = 0; m->unit = unit; @@ -366,14 +358,14 @@ midi_init(kobj_class_t cls, int unit, int channel, voi m->cookie = cookie; if (MPU_INIT(m, cookie)) - goto err3; + goto err2; mtx_unlock(&m->lock); mtx_unlock(&m->qlock); TAILQ_INSERT_TAIL(&midi_devs, m, link); - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); m->dev = make_dev(&midi_cdevsw, MIDIMKMINOR(unit, MIDI_DEV_RAW, channel), @@ -382,16 +374,19 @@ midi_init(kobj_class_t cls, int unit, int channel, voi return m; -err3: mtx_destroy(&m->qlock); +err2: + mtx_destroy(&m->qlock); mtx_destroy(&m->lock); if (MIDIQ_BUF(m->inq)) free(MIDIQ_BUF(m->inq), M_MIDI); if (MIDIQ_BUF(m->outq)) free(MIDIQ_BUF(m->outq), M_MIDI); -err2: free(m->synth, M_MIDI); -err1: free(m, M_MIDI); -err0: mtx_unlock(&midistat_lock); +err1: + free(m->synth, M_MIDI); + free(m, M_MIDI); +err0: + sx_xunlock(&midistat_lock); MIDI_DEBUG(1, printf("midi_init ended in error\n")); return NULL; } @@ -409,7 +404,7 @@ midi_uninit(struct snd_midi *m) int err; err = EBUSY; - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); mtx_lock(&m->lock); if (m->busy) { if (!(m->rchan || m->wchan)) @@ -428,8 +423,10 @@ midi_uninit(struct snd_midi *m) if (!err) goto exit; -err: mtx_unlock(&m->lock); -exit: mtx_unlock(&midistat_lock); +err: + mtx_unlock(&m->lock); +exit: + sx_xunlock(&midistat_lock); return err; } @@ -941,27 +938,22 @@ midistat_open(struct cdev *i_dev, int flags, int mode, int error; MIDI_DEBUG(1, printf("midistat_open\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBUSY; } midistat_isopen = 1; - mtx_unlock(&midistat_lock); - if (sbuf_new(&midistat_sbuf, NULL, 4096, SBUF_AUTOEXTEND) == NULL) { error = ENXIO; - mtx_lock(&midistat_lock); goto out; } - mtx_lock(&midistat_lock); - midistat_bufptr = 0; error = (midistat_prepare(&midistat_sbuf) > 0) ? 0 : ENOMEM; - -out: if (error) +out: + if (error) midistat_isopen = 0; - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return error; } @@ -969,40 +961,40 @@ static int midistat_close(struct cdev *i_dev, int flags, int mode, struct thread *td) { MIDI_DEBUG(1, printf("midistat_close\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (!midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBADF; } sbuf_delete(&midistat_sbuf); midistat_isopen = 0; - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return 0; } static int -midistat_read(struct cdev *i_dev, struct uio *buf, int flag) +midistat_read(struct cdev *i_dev, struct uio *uio, int flag) { - int l, err; + long l; + int err; MIDI_DEBUG(4, printf("midistat_read\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (!midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBADF; } - l = min(buf->uio_resid, sbuf_len(&midistat_sbuf) - midistat_bufptr); + if (uio->uio_offset < 0 || uio->uio_offset > sbuf_len(&midistat_sbuf)) { + sx_xunlock(&midistat_lock); + return EINVAL; + } err = 0; + l = lmin(uio->uio_resid, sbuf_len(&midistat_sbuf) - uio->uio_offset); if (l > 0) { - mtx_unlock(&midistat_lock); - err = uiomove(sbuf_data(&midistat_sbuf) + midistat_bufptr, l, - buf); - mtx_lock(&midistat_lock); - } else - l = 0; - midistat_bufptr += l; - mtx_unlock(&midistat_lock); + err = uiomove(sbuf_data(&midistat_sbuf) + uio->uio_offset, l, + uio); + } + sx_xunlock(&midistat_lock); return err; } @@ -1015,7 +1007,7 @@ midistat_prepare(struct sbuf *s) { struct snd_midi *m; - mtx_assert(&midistat_lock, MA_OWNED); + sx_assert(&midistat_lock, SA_XLOCKED); sbuf_printf(s, "FreeBSD Midi Driver (midi2)\n"); if (TAILQ_EMPTY(&midi_devs)) { @@ -1378,8 +1370,7 @@ midisynth_bender(void *n, uint8_t chn, uint16_t val) static int midi_destroy(struct snd_midi *m, int midiuninit) { - - mtx_assert(&midistat_lock, MA_OWNED); + sx_assert(&midistat_lock, SA_XLOCKED); mtx_assert(&m->lock, MA_OWNED); MIDI_DEBUG(3, printf("midi_destroy\n")); @@ -1405,8 +1396,8 @@ midi_destroy(struct snd_midi *m, int midiuninit) static int midi_load(void) { - mtx_init(&midistat_lock, "midistat lock", NULL, 0); - TAILQ_INIT(&midi_devs); /* Initialize the queue. */ + sx_init(&midistat_lock, "midistat lock"); + TAILQ_INIT(&midi_devs); midistat_dev = make_dev(&midistat_cdevsw, MIDIMKMINOR(0, MIDI_DEV_MIDICTL, 0), @@ -1423,7 +1414,7 @@ midi_unload(void) MIDI_DEBUG(1, printf("midi_unload()\n")); retval = EBUSY; - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (midistat_isopen) goto exit0; @@ -1436,20 +1427,19 @@ midi_unload(void) if (retval) goto exit1; } - - mtx_unlock(&midistat_lock); /* XXX */ - + sx_xunlock(&midistat_lock); destroy_dev(midistat_dev); + /* * Made it here then unload is complete */ - mtx_destroy(&midistat_lock); + sx_destroy(&midistat_lock); return 0; exit1: mtx_unlock(&m->lock); exit0: - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); if (retval) MIDI_DEBUG(2, printf("midi_unload: failed\n")); return retval; @@ -1498,13 +1488,11 @@ midimapper_open(void *arg1, void **cookie) int retval = 0; struct snd_midi *m; - mtx_lock(&midistat_lock); - + sx_xlock(&midistat_lock); TAILQ_FOREACH(m, &midi_devs, link) { retval++; } - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return retval; } @@ -1520,17 +1508,15 @@ midimapper_fetch_synth(void *arg, void *cookie, int un struct snd_midi *m; int retval = 0; - mtx_lock(&midistat_lock); - + sx_xlock(&midistat_lock); TAILQ_FOREACH(m, &midi_devs, link) { if (unit == retval) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return (kobj_t)m->synth; } retval++; } - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return NULL; } From owner-svn-src-all@freebsd.org Tue Aug 20 17:54:18 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CF6BCD743A; Tue, 20 Aug 2019 17:54:18 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cdhp53wzz4ctq; Tue, 20 Aug 2019 17:54:18 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8F8C26F54; Tue, 20 Aug 2019 17:54:18 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KHsIQv067349; Tue, 20 Aug 2019 17:54:18 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHsImq067348; Tue, 20 Aug 2019 17:54:18 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908201754.x7KHsImq067348@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 20 Aug 2019 17:54:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351265 - stable/11/sys/dev/sound/midi X-SVN-Group: stable-11 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/11/sys/dev/sound/midi X-SVN-Commit-Revision: 351265 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:54:18 -0000 Author: markj Date: Tue Aug 20 17:54:18 2019 New Revision: 351265 URL: https://svnweb.freebsd.org/changeset/base/351265 Log: MFC r351262: Use a sleepable lock for midistat functions. Security: CVE-2019-5612 Modified: stable/11/sys/dev/sound/midi/midi.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/sound/midi/midi.c ============================================================================== --- stable/11/sys/dev/sound/midi/midi.c Tue Aug 20 17:53:16 2019 (r351264) +++ stable/11/sys/dev/sound/midi/midi.c Tue Aug 20 17:54:18 2019 (r351265) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -47,10 +48,8 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include -#include -#include +#include #include #include #include @@ -185,10 +184,9 @@ TAILQ_HEAD(, snd_midi) midi_devs; * /dev/midistat variables and declarations, protected by midistat_lock */ -static struct mtx midistat_lock; +static struct sx midistat_lock; static int midistat_isopen = 0; static struct sbuf midistat_sbuf; -static int midistat_bufptr; static struct cdev *midistat_dev; /* @@ -287,7 +285,7 @@ midi_init(kobj_class_t cls, int unit, int channel, voi MIDI_TYPE *buf; MIDI_DEBUG(1, printf("midiinit: unit %d/%d.\n", unit, channel)); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); /* * Protect against call with existing unit/channel or auto-allocate a * new unit number. @@ -314,13 +312,8 @@ midi_init(kobj_class_t cls, int unit, int channel, voi unit = i + 1; MIDI_DEBUG(1, printf("midiinit #2: unit %d/%d.\n", unit, channel)); - m = malloc(sizeof(*m), M_MIDI, M_NOWAIT | M_ZERO); - if (m == NULL) - goto err0; - - m->synth = malloc(sizeof(*m->synth), M_MIDI, M_NOWAIT | M_ZERO); - if (m->synth == NULL) - goto err1; + m = malloc(sizeof(*m), M_MIDI, M_WAITOK | M_ZERO); + m->synth = malloc(sizeof(*m->synth), M_MIDI, M_WAITOK | M_ZERO); kobj_init((kobj_t)m->synth, &midisynth_class); m->synth->m = m; kobj_init((kobj_t)m, cls); @@ -329,7 +322,7 @@ midi_init(kobj_class_t cls, int unit, int channel, voi MIDI_DEBUG(1, printf("midiinit queues %d/%d.\n", inqsize, outqsize)); if (!inqsize && !outqsize) - goto err2; + goto err1; mtx_init(&m->lock, "raw midi", NULL, 0); mtx_init(&m->qlock, "q raw midi", NULL, 0); @@ -354,9 +347,8 @@ midi_init(kobj_class_t cls, int unit, int channel, voi if ((inqsize && !MIDIQ_BUF(m->inq)) || (outqsize && !MIDIQ_BUF(m->outq))) - goto err3; + goto err2; - m->busy = 0; m->flags = 0; m->unit = unit; @@ -364,14 +356,14 @@ midi_init(kobj_class_t cls, int unit, int channel, voi m->cookie = cookie; if (MPU_INIT(m, cookie)) - goto err3; + goto err2; mtx_unlock(&m->lock); mtx_unlock(&m->qlock); TAILQ_INSERT_TAIL(&midi_devs, m, link); - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); m->dev = make_dev(&midi_cdevsw, MIDIMKMINOR(unit, MIDI_DEV_RAW, channel), @@ -380,16 +372,19 @@ midi_init(kobj_class_t cls, int unit, int channel, voi return m; -err3: mtx_destroy(&m->qlock); +err2: + mtx_destroy(&m->qlock); mtx_destroy(&m->lock); if (MIDIQ_BUF(m->inq)) free(MIDIQ_BUF(m->inq), M_MIDI); if (MIDIQ_BUF(m->outq)) free(MIDIQ_BUF(m->outq), M_MIDI); -err2: free(m->synth, M_MIDI); -err1: free(m, M_MIDI); -err0: mtx_unlock(&midistat_lock); +err1: + free(m->synth, M_MIDI); + free(m, M_MIDI); +err0: + sx_xunlock(&midistat_lock); MIDI_DEBUG(1, printf("midi_init ended in error\n")); return NULL; } @@ -407,7 +402,7 @@ midi_uninit(struct snd_midi *m) int err; err = EBUSY; - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); mtx_lock(&m->lock); if (m->busy) { if (!(m->rchan || m->wchan)) @@ -426,8 +421,10 @@ midi_uninit(struct snd_midi *m) if (!err) goto exit; -err: mtx_unlock(&m->lock); -exit: mtx_unlock(&midistat_lock); +err: + mtx_unlock(&m->lock); +exit: + sx_xunlock(&midistat_lock); return err; } @@ -939,27 +936,22 @@ midistat_open(struct cdev *i_dev, int flags, int mode, int error; MIDI_DEBUG(1, printf("midistat_open\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBUSY; } midistat_isopen = 1; - mtx_unlock(&midistat_lock); - if (sbuf_new(&midistat_sbuf, NULL, 4096, SBUF_AUTOEXTEND) == NULL) { error = ENXIO; - mtx_lock(&midistat_lock); goto out; } - mtx_lock(&midistat_lock); - midistat_bufptr = 0; error = (midistat_prepare(&midistat_sbuf) > 0) ? 0 : ENOMEM; - -out: if (error) +out: + if (error) midistat_isopen = 0; - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return error; } @@ -967,40 +959,40 @@ static int midistat_close(struct cdev *i_dev, int flags, int mode, struct thread *td) { MIDI_DEBUG(1, printf("midistat_close\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (!midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBADF; } sbuf_delete(&midistat_sbuf); midistat_isopen = 0; - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return 0; } static int -midistat_read(struct cdev *i_dev, struct uio *buf, int flag) +midistat_read(struct cdev *i_dev, struct uio *uio, int flag) { - int l, err; + long l; + int err; MIDI_DEBUG(4, printf("midistat_read\n")); - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (!midistat_isopen) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return EBADF; } - l = min(buf->uio_resid, sbuf_len(&midistat_sbuf) - midistat_bufptr); + if (uio->uio_offset < 0 || uio->uio_offset > sbuf_len(&midistat_sbuf)) { + sx_xunlock(&midistat_lock); + return EINVAL; + } err = 0; + l = lmin(uio->uio_resid, sbuf_len(&midistat_sbuf) - uio->uio_offset); if (l > 0) { - mtx_unlock(&midistat_lock); - err = uiomove(sbuf_data(&midistat_sbuf) + midistat_bufptr, l, - buf); - mtx_lock(&midistat_lock); - } else - l = 0; - midistat_bufptr += l; - mtx_unlock(&midistat_lock); + err = uiomove(sbuf_data(&midistat_sbuf) + uio->uio_offset, l, + uio); + } + sx_xunlock(&midistat_lock); return err; } @@ -1013,7 +1005,7 @@ midistat_prepare(struct sbuf *s) { struct snd_midi *m; - mtx_assert(&midistat_lock, MA_OWNED); + sx_assert(&midistat_lock, SA_XLOCKED); sbuf_printf(s, "FreeBSD Midi Driver (midi2)\n"); if (TAILQ_EMPTY(&midi_devs)) { @@ -1376,8 +1368,7 @@ midisynth_bender(void *n, uint8_t chn, uint16_t val) static int midi_destroy(struct snd_midi *m, int midiuninit) { - - mtx_assert(&midistat_lock, MA_OWNED); + sx_assert(&midistat_lock, SA_XLOCKED); mtx_assert(&m->lock, MA_OWNED); MIDI_DEBUG(3, printf("midi_destroy\n")); @@ -1403,8 +1394,8 @@ midi_destroy(struct snd_midi *m, int midiuninit) static int midi_load(void) { - mtx_init(&midistat_lock, "midistat lock", NULL, 0); - TAILQ_INIT(&midi_devs); /* Initialize the queue. */ + sx_init(&midistat_lock, "midistat lock"); + TAILQ_INIT(&midi_devs); midistat_dev = make_dev(&midistat_cdevsw, MIDIMKMINOR(0, MIDI_DEV_MIDICTL, 0), @@ -1421,7 +1412,7 @@ midi_unload(void) MIDI_DEBUG(1, printf("midi_unload()\n")); retval = EBUSY; - mtx_lock(&midistat_lock); + sx_xlock(&midistat_lock); if (midistat_isopen) goto exit0; @@ -1434,20 +1425,19 @@ midi_unload(void) if (retval) goto exit1; } - - mtx_unlock(&midistat_lock); /* XXX */ - + sx_xunlock(&midistat_lock); destroy_dev(midistat_dev); + /* * Made it here then unload is complete */ - mtx_destroy(&midistat_lock); + sx_destroy(&midistat_lock); return 0; exit1: mtx_unlock(&m->lock); exit0: - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); if (retval) MIDI_DEBUG(2, printf("midi_unload: failed\n")); return retval; @@ -1496,13 +1486,11 @@ midimapper_open(void *arg1, void **cookie) int retval = 0; struct snd_midi *m; - mtx_lock(&midistat_lock); - + sx_xlock(&midistat_lock); TAILQ_FOREACH(m, &midi_devs, link) { retval++; } - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return retval; } @@ -1518,17 +1506,15 @@ midimapper_fetch_synth(void *arg, void *cookie, int un struct snd_midi *m; int retval = 0; - mtx_lock(&midistat_lock); - + sx_xlock(&midistat_lock); TAILQ_FOREACH(m, &midi_devs, link) { if (unit == retval) { - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return (kobj_t)m->synth; } retval++; } - - mtx_unlock(&midistat_lock); + sx_xunlock(&midistat_lock); return NULL; } From owner-svn-src-all@freebsd.org Tue Aug 20 17:59:00 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 143BCD7626; Tue, 20 Aug 2019 17:59:00 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CdpD0Qg7z4dBh; Tue, 20 Aug 2019 17:59:00 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 007EF6F58; Tue, 20 Aug 2019 17:58:59 +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 x7KHwxLE067659; Tue, 20 Aug 2019 17:58:59 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHwxPQ067658; Tue, 20 Aug 2019 17:58:59 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908201758.x7KHwxPQ067658@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 17:58:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351266 - in vendor/llvm/dist: . benchmarks bindings cmake docs examples include/llvm include/llvm/Config include/llvm/IR include/llvm/Support lib lib/Analysis lib/AsmParser lib/BinaryF... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm/dist: . benchmarks bindings cmake docs examples include/llvm include/llvm/Config include/llvm/IR include/llvm/Support lib lib/Analysis lib/AsmParser lib/BinaryFormat lib/Bitcode lib/Bit... X-SVN-Commit-Revision: 351266 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:59:00 -0000 Author: dim Date: Tue Aug 20 17:58:59 2019 New Revision: 351266 URL: https://svnweb.freebsd.org/changeset/base/351266 Log: Remove upstream files and directories from vendor/llvm/dist that we do not use. This saves on repository space, and reduces the number of tree conflicts when merging. Deleted: vendor/llvm/dist/.arcconfig vendor/llvm/dist/.clang-format vendor/llvm/dist/.clang-tidy vendor/llvm/dist/.gitattributes vendor/llvm/dist/.gitignore vendor/llvm/dist/CMakeLists.txt vendor/llvm/dist/CODE_OWNERS.TXT vendor/llvm/dist/CREDITS.TXT vendor/llvm/dist/LLVMBuild.txt vendor/llvm/dist/README.txt vendor/llvm/dist/RELEASE_TESTERS.TXT vendor/llvm/dist/benchmarks/ vendor/llvm/dist/bindings/ vendor/llvm/dist/cmake/ vendor/llvm/dist/configure vendor/llvm/dist/docs/ vendor/llvm/dist/examples/ vendor/llvm/dist/include/llvm/CMakeLists.txt vendor/llvm/dist/include/llvm/Config/ vendor/llvm/dist/include/llvm/IR/CMakeLists.txt vendor/llvm/dist/include/llvm/Support/CMakeLists.txt vendor/llvm/dist/include/llvm/Support/LICENSE.TXT vendor/llvm/dist/lib/Analysis/CMakeLists.txt vendor/llvm/dist/lib/Analysis/LLVMBuild.txt vendor/llvm/dist/lib/Analysis/README.txt vendor/llvm/dist/lib/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/BinaryFormat/CMakeLists.txt vendor/llvm/dist/lib/BinaryFormat/LLVMBuild.txt vendor/llvm/dist/lib/Bitcode/CMakeLists.txt vendor/llvm/dist/lib/Bitcode/LLVMBuild.txt vendor/llvm/dist/lib/Bitcode/Reader/CMakeLists.txt vendor/llvm/dist/lib/Bitcode/Reader/LLVMBuild.txt vendor/llvm/dist/lib/Bitcode/Writer/CMakeLists.txt vendor/llvm/dist/lib/Bitcode/Writer/LLVMBuild.txt vendor/llvm/dist/lib/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/AsmPrinter/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/AsmPrinter/LLVMBuild.txt vendor/llvm/dist/lib/CodeGen/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/GlobalISel/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/GlobalISel/LLVMBuild.txt vendor/llvm/dist/lib/CodeGen/LLVMBuild.txt vendor/llvm/dist/lib/CodeGen/MIRParser/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/MIRParser/LLVMBuild.txt vendor/llvm/dist/lib/CodeGen/README.txt vendor/llvm/dist/lib/CodeGen/SelectionDAG/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/SelectionDAG/LLVMBuild.txt vendor/llvm/dist/lib/DebugInfo/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/CodeView/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/CodeView/LLVMBuild.txt vendor/llvm/dist/lib/DebugInfo/DWARF/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/DWARF/LLVMBuild.txt vendor/llvm/dist/lib/DebugInfo/LLVMBuild.txt vendor/llvm/dist/lib/DebugInfo/MSF/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/MSF/LLVMBuild.txt vendor/llvm/dist/lib/DebugInfo/PDB/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/PDB/LLVMBuild.txt vendor/llvm/dist/lib/DebugInfo/Symbolize/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/Symbolize/LLVMBuild.txt vendor/llvm/dist/lib/Demangle/CMakeLists.txt vendor/llvm/dist/lib/Demangle/LLVMBuild.txt vendor/llvm/dist/lib/ExecutionEngine/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt vendor/llvm/dist/lib/ExecutionEngine/Interpreter/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/Interpreter/LLVMBuild.txt vendor/llvm/dist/lib/ExecutionEngine/LLVMBuild.txt vendor/llvm/dist/lib/ExecutionEngine/MCJIT/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/MCJIT/LLVMBuild.txt vendor/llvm/dist/lib/ExecutionEngine/OProfileJIT/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/OProfileJIT/LLVMBuild.txt vendor/llvm/dist/lib/ExecutionEngine/Orc/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/Orc/LLVMBuild.txt vendor/llvm/dist/lib/ExecutionEngine/PerfJITEvents/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/PerfJITEvents/LLVMBuild.txt vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/LLVMBuild.txt vendor/llvm/dist/lib/FuzzMutate/CMakeLists.txt vendor/llvm/dist/lib/FuzzMutate/LLVMBuild.txt vendor/llvm/dist/lib/Fuzzer/ vendor/llvm/dist/lib/IR/CMakeLists.txt vendor/llvm/dist/lib/IR/LLVMBuild.txt vendor/llvm/dist/lib/IRReader/CMakeLists.txt vendor/llvm/dist/lib/IRReader/LLVMBuild.txt vendor/llvm/dist/lib/LLVMBuild.txt vendor/llvm/dist/lib/LTO/CMakeLists.txt vendor/llvm/dist/lib/LTO/LLVMBuild.txt vendor/llvm/dist/lib/LineEditor/CMakeLists.txt vendor/llvm/dist/lib/LineEditor/LLVMBuild.txt vendor/llvm/dist/lib/Linker/CMakeLists.txt vendor/llvm/dist/lib/Linker/LLVMBuild.txt vendor/llvm/dist/lib/MC/CMakeLists.txt vendor/llvm/dist/lib/MC/LLVMBuild.txt vendor/llvm/dist/lib/MC/MCDisassembler/CMakeLists.txt vendor/llvm/dist/lib/MC/MCDisassembler/LLVMBuild.txt vendor/llvm/dist/lib/MC/MCParser/CMakeLists.txt vendor/llvm/dist/lib/MC/MCParser/LLVMBuild.txt vendor/llvm/dist/lib/MCA/CMakeLists.txt vendor/llvm/dist/lib/MCA/LLVMBuild.txt vendor/llvm/dist/lib/Object/CMakeLists.txt vendor/llvm/dist/lib/Object/LLVMBuild.txt vendor/llvm/dist/lib/ObjectYAML/CMakeLists.txt vendor/llvm/dist/lib/ObjectYAML/LLVMBuild.txt vendor/llvm/dist/lib/OptRemarks/CMakeLists.txt vendor/llvm/dist/lib/OptRemarks/LLVMBuild.txt vendor/llvm/dist/lib/Option/CMakeLists.txt vendor/llvm/dist/lib/Option/LLVMBuild.txt vendor/llvm/dist/lib/Passes/CMakeLists.txt vendor/llvm/dist/lib/Passes/LLVMBuild.txt vendor/llvm/dist/lib/ProfileData/CMakeLists.txt vendor/llvm/dist/lib/ProfileData/Coverage/CMakeLists.txt vendor/llvm/dist/lib/ProfileData/Coverage/LLVMBuild.txt vendor/llvm/dist/lib/ProfileData/LLVMBuild.txt vendor/llvm/dist/lib/Support/CMakeLists.txt vendor/llvm/dist/lib/Support/LLVMBuild.txt vendor/llvm/dist/lib/Support/README.txt.system vendor/llvm/dist/lib/TableGen/CMakeLists.txt vendor/llvm/dist/lib/TableGen/LLVMBuild.txt vendor/llvm/dist/lib/Target/AArch64/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/AArch64/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/AArch64/CMakeLists.txt vendor/llvm/dist/lib/Target/AArch64/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/AArch64/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/AArch64/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/AArch64/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/AArch64/LLVMBuild.txt vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/AArch64/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/AArch64/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/AArch64/Utils/CMakeLists.txt vendor/llvm/dist/lib/Target/AArch64/Utils/LLVMBuild.txt vendor/llvm/dist/lib/Target/AMDGPU/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/AMDGPU/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/AMDGPU/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/AMDGPU/LLVMBuild.txt vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/AMDGPU/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/AMDGPU/Utils/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/Utils/LLVMBuild.txt vendor/llvm/dist/lib/Target/ARC/CMakeLists.txt vendor/llvm/dist/lib/Target/ARC/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/ARC/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/ARC/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/ARC/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/ARC/LLVMBuild.txt vendor/llvm/dist/lib/Target/ARC/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/ARC/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/ARC/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/ARC/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/ARM/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/ARM/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/ARM/CMakeLists.txt vendor/llvm/dist/lib/Target/ARM/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/ARM/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/ARM/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/ARM/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/ARM/LLVMBuild.txt vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/ARM/README-Thumb.txt vendor/llvm/dist/lib/Target/ARM/README-Thumb2.txt vendor/llvm/dist/lib/Target/ARM/README.txt vendor/llvm/dist/lib/Target/ARM/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/ARM/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/ARM/Utils/CMakeLists.txt vendor/llvm/dist/lib/Target/ARM/Utils/LLVMBuild.txt vendor/llvm/dist/lib/Target/AVR/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/AVR/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/AVR/CMakeLists.txt vendor/llvm/dist/lib/Target/AVR/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/AVR/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/AVR/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/AVR/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/AVR/LLVMBuild.txt vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/AVR/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/AVR/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/BPF/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/BPF/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/BPF/CMakeLists.txt vendor/llvm/dist/lib/Target/BPF/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/BPF/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/BPF/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/BPF/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/BPF/LLVMBuild.txt vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/BPF/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/BPF/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/CMakeLists.txt vendor/llvm/dist/lib/Target/Hexagon/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/Hexagon/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/Hexagon/CMakeLists.txt vendor/llvm/dist/lib/Target/Hexagon/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/Hexagon/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/Hexagon/LLVMBuild.txt vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/Hexagon/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/Hexagon/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/LLVMBuild.txt vendor/llvm/dist/lib/Target/Lanai/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/Lanai/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/Lanai/CMakeLists.txt vendor/llvm/dist/lib/Target/Lanai/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/Lanai/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/Lanai/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/Lanai/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/Lanai/LLVMBuild.txt vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/Lanai/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/Lanai/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/MSP430/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/MSP430/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/MSP430/CMakeLists.txt vendor/llvm/dist/lib/Target/MSP430/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/MSP430/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/MSP430/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/MSP430/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/MSP430/LLVMBuild.txt vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/MSP430/README.txt vendor/llvm/dist/lib/Target/MSP430/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/MSP430/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/Mips/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/Mips/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/Mips/CMakeLists.txt vendor/llvm/dist/lib/Target/Mips/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/Mips/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/Mips/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/Mips/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/Mips/LLVMBuild.txt vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/Mips/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/Mips/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/NVPTX/CMakeLists.txt vendor/llvm/dist/lib/Target/NVPTX/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/NVPTX/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/NVPTX/LLVMBuild.txt vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/NVPTX/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/NVPTX/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/PowerPC/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/PowerPC/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/PowerPC/CMakeLists.txt vendor/llvm/dist/lib/Target/PowerPC/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/PowerPC/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/PowerPC/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/PowerPC/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/PowerPC/LLVMBuild.txt vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/PowerPC/README.txt vendor/llvm/dist/lib/Target/PowerPC/README_ALTIVEC.txt vendor/llvm/dist/lib/Target/PowerPC/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/PowerPC/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/README.txt vendor/llvm/dist/lib/Target/RISCV/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/RISCV/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/RISCV/CMakeLists.txt vendor/llvm/dist/lib/Target/RISCV/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/RISCV/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/RISCV/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/RISCV/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/RISCV/LLVMBuild.txt vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/RISCV/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/RISCV/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/RISCV/Utils/CMakeLists.txt vendor/llvm/dist/lib/Target/RISCV/Utils/LLVMBuild.txt vendor/llvm/dist/lib/Target/Sparc/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/Sparc/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/Sparc/CMakeLists.txt vendor/llvm/dist/lib/Target/Sparc/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/Sparc/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/Sparc/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/Sparc/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/Sparc/LLVMBuild.txt vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/Sparc/README.txt vendor/llvm/dist/lib/Target/Sparc/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/Sparc/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/SystemZ/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/SystemZ/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/SystemZ/CMakeLists.txt vendor/llvm/dist/lib/Target/SystemZ/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/SystemZ/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/SystemZ/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/SystemZ/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/SystemZ/LLVMBuild.txt vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/SystemZ/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/SystemZ/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/WebAssembly/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/WebAssembly/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/WebAssembly/CMakeLists.txt vendor/llvm/dist/lib/Target/WebAssembly/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/WebAssembly/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/WebAssembly/LLVMBuild.txt vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/WebAssembly/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/WebAssembly/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/X86/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/AsmParser/LLVMBuild.txt vendor/llvm/dist/lib/Target/X86/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/X86/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/X86/LLVMBuild.txt vendor/llvm/dist/lib/Target/X86/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/X86/README-FPStack.txt vendor/llvm/dist/lib/Target/X86/README-SSE.txt vendor/llvm/dist/lib/Target/X86/README-X86-64.txt vendor/llvm/dist/lib/Target/X86/README.txt vendor/llvm/dist/lib/Target/X86/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Target/X86/Utils/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/Utils/LLVMBuild.txt vendor/llvm/dist/lib/Target/XCore/CMakeLists.txt vendor/llvm/dist/lib/Target/XCore/Disassembler/CMakeLists.txt vendor/llvm/dist/lib/Target/XCore/Disassembler/LLVMBuild.txt vendor/llvm/dist/lib/Target/XCore/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/XCore/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/XCore/LLVMBuild.txt vendor/llvm/dist/lib/Target/XCore/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/XCore/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/XCore/README.txt vendor/llvm/dist/lib/Target/XCore/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/XCore/TargetInfo/LLVMBuild.txt vendor/llvm/dist/lib/Testing/CMakeLists.txt vendor/llvm/dist/lib/Testing/LLVMBuild.txt vendor/llvm/dist/lib/Testing/Support/CMakeLists.txt vendor/llvm/dist/lib/Testing/Support/LLVMBuild.txt vendor/llvm/dist/lib/TextAPI/CMakeLists.txt vendor/llvm/dist/lib/TextAPI/LLVMBuild.txt vendor/llvm/dist/lib/ToolDrivers/CMakeLists.txt vendor/llvm/dist/lib/ToolDrivers/LLVMBuild.txt vendor/llvm/dist/lib/ToolDrivers/llvm-dlltool/CMakeLists.txt vendor/llvm/dist/lib/ToolDrivers/llvm-dlltool/LLVMBuild.txt vendor/llvm/dist/lib/ToolDrivers/llvm-lib/CMakeLists.txt vendor/llvm/dist/lib/ToolDrivers/llvm-lib/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/AggressiveInstCombine/CMakeLists.txt vendor/llvm/dist/lib/Transforms/AggressiveInstCombine/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Coroutines/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Coroutines/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/Hello/ vendor/llvm/dist/lib/Transforms/IPO/CMakeLists.txt vendor/llvm/dist/lib/Transforms/IPO/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/InstCombine/CMakeLists.txt vendor/llvm/dist/lib/Transforms/InstCombine/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/Instrumentation/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Instrumentation/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/ObjCARC/CMakeLists.txt vendor/llvm/dist/lib/Transforms/ObjCARC/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/Scalar/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Scalar/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/Utils/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Utils/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/Vectorize/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Vectorize/LLVMBuild.txt vendor/llvm/dist/lib/WindowsManifest/CMakeLists.txt vendor/llvm/dist/lib/WindowsManifest/LLVMBuild.txt vendor/llvm/dist/lib/XRay/CMakeLists.txt vendor/llvm/dist/lib/XRay/LLVMBuild.txt vendor/llvm/dist/llvm.spec.in vendor/llvm/dist/projects/ vendor/llvm/dist/resources/ vendor/llvm/dist/runtimes/ vendor/llvm/dist/test/ vendor/llvm/dist/tools/CMakeLists.txt vendor/llvm/dist/tools/LLVMBuild.txt vendor/llvm/dist/tools/bugpoint-passes/ vendor/llvm/dist/tools/bugpoint/CMakeLists.txt vendor/llvm/dist/tools/bugpoint/LLVMBuild.txt vendor/llvm/dist/tools/dsymutil/ vendor/llvm/dist/tools/gold/ vendor/llvm/dist/tools/llc/CMakeLists.txt vendor/llvm/dist/tools/llc/LLVMBuild.txt vendor/llvm/dist/tools/lli/CMakeLists.txt vendor/llvm/dist/tools/lli/ChildTarget/CMakeLists.txt vendor/llvm/dist/tools/lli/ChildTarget/LLVMBuild.txt vendor/llvm/dist/tools/lli/LLVMBuild.txt vendor/llvm/dist/tools/llvm-ar/CMakeLists.txt vendor/llvm/dist/tools/llvm-ar/LLVMBuild.txt vendor/llvm/dist/tools/llvm-as-fuzzer/ vendor/llvm/dist/tools/llvm-as-parasitic-coverage-repro/ vendor/llvm/dist/tools/llvm-as/CMakeLists.txt vendor/llvm/dist/tools/llvm-as/LLVMBuild.txt vendor/llvm/dist/tools/llvm-bcanalyzer/CMakeLists.txt vendor/llvm/dist/tools/llvm-bcanalyzer/LLVMBuild.txt vendor/llvm/dist/tools/llvm-c-test/ vendor/llvm/dist/tools/llvm-cat/ vendor/llvm/dist/tools/llvm-cfi-verify/ vendor/llvm/dist/tools/llvm-config/ vendor/llvm/dist/tools/llvm-cov/CMakeLists.txt vendor/llvm/dist/tools/llvm-cov/LLVMBuild.txt vendor/llvm/dist/tools/llvm-cvtres/ vendor/llvm/dist/tools/llvm-cxxdump/CMakeLists.txt vendor/llvm/dist/tools/llvm-cxxdump/LLVMBuild.txt vendor/llvm/dist/tools/llvm-cxxfilt/CMakeLists.txt vendor/llvm/dist/tools/llvm-cxxmap/CMakeLists.txt vendor/llvm/dist/tools/llvm-cxxmap/LLVMBuild.txt vendor/llvm/dist/tools/llvm-diff/CMakeLists.txt vendor/llvm/dist/tools/llvm-diff/LLVMBuild.txt vendor/llvm/dist/tools/llvm-dis/CMakeLists.txt vendor/llvm/dist/tools/llvm-dis/LLVMBuild.txt vendor/llvm/dist/tools/llvm-dwarfdump/CMakeLists.txt vendor/llvm/dist/tools/llvm-dwarfdump/LLVMBuild.txt vendor/llvm/dist/tools/llvm-dwarfdump/fuzzer/ vendor/llvm/dist/tools/llvm-dwp/ vendor/llvm/dist/tools/llvm-elfabi/ vendor/llvm/dist/tools/llvm-exegesis/ vendor/llvm/dist/tools/llvm-extract/CMakeLists.txt vendor/llvm/dist/tools/llvm-extract/LLVMBuild.txt vendor/llvm/dist/tools/llvm-go/ vendor/llvm/dist/tools/llvm-isel-fuzzer/ vendor/llvm/dist/tools/llvm-itanium-demangle-fuzzer/ vendor/llvm/dist/tools/llvm-jitlistener/ vendor/llvm/dist/tools/llvm-link/CMakeLists.txt vendor/llvm/dist/tools/llvm-link/LLVMBuild.txt vendor/llvm/dist/tools/llvm-lto/CMakeLists.txt vendor/llvm/dist/tools/llvm-lto/LLVMBuild.txt vendor/llvm/dist/tools/llvm-lto2/CMakeLists.txt vendor/llvm/dist/tools/llvm-lto2/LLVMBuild.txt vendor/llvm/dist/tools/llvm-mc-assemble-fuzzer/ vendor/llvm/dist/tools/llvm-mc-disassemble-fuzzer/ vendor/llvm/dist/tools/llvm-mc/CMakeLists.txt vendor/llvm/dist/tools/llvm-mc/LLVMBuild.txt vendor/llvm/dist/tools/llvm-mca/CMakeLists.txt vendor/llvm/dist/tools/llvm-mca/LLVMBuild.txt vendor/llvm/dist/tools/llvm-mcmarkup/ vendor/llvm/dist/tools/llvm-microsoft-demangle-fuzzer/ vendor/llvm/dist/tools/llvm-modextract/CMakeLists.txt vendor/llvm/dist/tools/llvm-modextract/LLVMBuild.txt vendor/llvm/dist/tools/llvm-mt/ vendor/llvm/dist/tools/llvm-nm/CMakeLists.txt vendor/llvm/dist/tools/llvm-nm/LLVMBuild.txt vendor/llvm/dist/tools/llvm-objcopy/CMakeLists.txt vendor/llvm/dist/tools/llvm-objcopy/LLVMBuild.txt vendor/llvm/dist/tools/llvm-objdump/CMakeLists.txt vendor/llvm/dist/tools/llvm-objdump/LLVMBuild.txt vendor/llvm/dist/tools/llvm-opt-fuzzer/ vendor/llvm/dist/tools/llvm-opt-report/ vendor/llvm/dist/tools/llvm-pdbutil/CMakeLists.txt vendor/llvm/dist/tools/llvm-pdbutil/LLVMBuild.txt vendor/llvm/dist/tools/llvm-pdbutil/fuzzer/ vendor/llvm/dist/tools/llvm-profdata/CMakeLists.txt vendor/llvm/dist/tools/llvm-profdata/LLVMBuild.txt vendor/llvm/dist/tools/llvm-rc/ vendor/llvm/dist/tools/llvm-readobj/CMakeLists.txt vendor/llvm/dist/tools/llvm-readobj/LLVMBuild.txt vendor/llvm/dist/tools/llvm-rtdyld/CMakeLists.txt vendor/llvm/dist/tools/llvm-rtdyld/LLVMBuild.txt vendor/llvm/dist/tools/llvm-shlib/ vendor/llvm/dist/tools/llvm-size/ vendor/llvm/dist/tools/llvm-special-case-list-fuzzer/ vendor/llvm/dist/tools/llvm-split/ vendor/llvm/dist/tools/llvm-stress/CMakeLists.txt vendor/llvm/dist/tools/llvm-stress/LLVMBuild.txt vendor/llvm/dist/tools/llvm-strings/ vendor/llvm/dist/tools/llvm-symbolizer/CMakeLists.txt vendor/llvm/dist/tools/llvm-undname/ vendor/llvm/dist/tools/llvm-vtabledump/ vendor/llvm/dist/tools/llvm-xray/CMakeLists.txt vendor/llvm/dist/tools/llvm-yaml-numeric-parser-fuzzer/ vendor/llvm/dist/tools/lto/ vendor/llvm/dist/tools/msbuild/ vendor/llvm/dist/tools/obj2yaml/ vendor/llvm/dist/tools/opt-remarks/ vendor/llvm/dist/tools/opt-viewer/ vendor/llvm/dist/tools/opt/CMakeLists.txt vendor/llvm/dist/tools/opt/LLVMBuild.txt vendor/llvm/dist/tools/sancov/ vendor/llvm/dist/tools/sanstats/ vendor/llvm/dist/tools/verify-uselistorder/ vendor/llvm/dist/tools/xcode-toolchain/ vendor/llvm/dist/tools/yaml2obj/ vendor/llvm/dist/unittests/ vendor/llvm/dist/utils/DSAclean.py vendor/llvm/dist/utils/DSAextract.py vendor/llvm/dist/utils/FileCheck/ vendor/llvm/dist/utils/GenLibDeps.pl vendor/llvm/dist/utils/GetRepositoryPath vendor/llvm/dist/utils/GetSourceVersion vendor/llvm/dist/utils/KillTheDoctor/ vendor/llvm/dist/utils/LLVMBuild.txt vendor/llvm/dist/utils/LLVMVisualizers/ vendor/llvm/dist/utils/Misc/ vendor/llvm/dist/utils/PerfectShuffle/ vendor/llvm/dist/utils/Reviewing/ vendor/llvm/dist/utils/TableGen/CMakeLists.txt vendor/llvm/dist/utils/TableGen/LLVMBuild.txt vendor/llvm/dist/utils/TableGen/tdtags vendor/llvm/dist/utils/Target/ vendor/llvm/dist/utils/UpdateCMakeLists.pl vendor/llvm/dist/utils/UpdateTestChecks/ vendor/llvm/dist/utils/abtest/ vendor/llvm/dist/utils/abtest.py vendor/llvm/dist/utils/benchmark/ vendor/llvm/dist/utils/bisect vendor/llvm/dist/utils/bisect-skip-count vendor/llvm/dist/utils/bugpoint/ vendor/llvm/dist/utils/bugpoint_gisel_reducer.py vendor/llvm/dist/utils/buildit/ vendor/llvm/dist/utils/check-each-file vendor/llvm/dist/utils/clang-parse-diagnostics-file vendor/llvm/dist/utils/codegen-diff vendor/llvm/dist/utils/collect_and_build_with_pgo.py vendor/llvm/dist/utils/count/ vendor/llvm/dist/utils/countloc.sh vendor/llvm/dist/utils/create_ladder_graph.py vendor/llvm/dist/utils/crosstool/ vendor/llvm/dist/utils/demangle_tree.py vendor/llvm/dist/utils/docker/ vendor/llvm/dist/utils/emacs/ vendor/llvm/dist/utils/extract_symbols.py vendor/llvm/dist/utils/extract_vplan.py vendor/llvm/dist/utils/findmisopt vendor/llvm/dist/utils/findoptdiff vendor/llvm/dist/utils/findsym.pl vendor/llvm/dist/utils/fpcmp/ vendor/llvm/dist/utils/gdb-scripts/ vendor/llvm/dist/utils/getsrcs.sh vendor/llvm/dist/utils/git/ vendor/llvm/dist/utils/git-svn/ vendor/llvm/dist/utils/gn/ vendor/llvm/dist/utils/indirect_calls.py vendor/llvm/dist/utils/jedit/ vendor/llvm/dist/utils/kate/ vendor/llvm/dist/utils/lint/ vendor/llvm/dist/utils/lit/ vendor/llvm/dist/utils/lldbDataFormatters.py vendor/llvm/dist/utils/llvm-build/ vendor/llvm/dist/utils/llvm-compilers-check vendor/llvm/dist/utils/llvm-gisel-cov.py vendor/llvm/dist/utils/llvm-lit/ vendor/llvm/dist/utils/llvm-native-gxx vendor/llvm/dist/utils/llvm.grm vendor/llvm/dist/utils/llvmdo vendor/llvm/dist/utils/llvmgrep vendor/llvm/dist/utils/not/ vendor/llvm/dist/utils/opt-viewer/ vendor/llvm/dist/utils/prepare-code-coverage-artifact.py vendor/llvm/dist/utils/release/ vendor/llvm/dist/utils/sanitizers/ vendor/llvm/dist/utils/schedcover.py vendor/llvm/dist/utils/shuffle_fuzz.py vendor/llvm/dist/utils/shuffle_select_fuzz_tester.py vendor/llvm/dist/utils/sort_includes.py vendor/llvm/dist/utils/testgen/ vendor/llvm/dist/utils/textmate/ vendor/llvm/dist/utils/unicode-case-fold.py vendor/llvm/dist/utils/unittest/ vendor/llvm/dist/utils/update_analyze_test_checks.py vendor/llvm/dist/utils/update_cc_test_checks.py vendor/llvm/dist/utils/update_llc_test_checks.py vendor/llvm/dist/utils/update_mca_test_checks.py vendor/llvm/dist/utils/update_mir_test_checks.py vendor/llvm/dist/utils/update_test_checks.py vendor/llvm/dist/utils/valgrind/ vendor/llvm/dist/utils/vim/ vendor/llvm/dist/utils/vscode/ vendor/llvm/dist/utils/wciia.py vendor/llvm/dist/utils/yaml-bench/ From owner-svn-src-all@freebsd.org Tue Aug 20 17:59:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D76C1D767A; Tue, 20 Aug 2019 17:59:23 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cdpg5LMsz4dJm; Tue, 20 Aug 2019 17:59:23 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 993966F59; Tue, 20 Aug 2019 17:59: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 x7KHxNAP067721; Tue, 20 Aug 2019 17:59:23 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KHxNtg067720; Tue, 20 Aug 2019 17:59:23 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908201759.x7KHxNtg067720@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 17:59:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351267 - in vendor/clang/dist: . Driver INPUTS bindings cmake docs examples include include/clang include/clang/AST include/clang/Basic include/clang/Config include/clang/Driver includ... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/clang/dist: . Driver INPUTS bindings cmake docs examples include include/clang include/clang/AST include/clang/Basic include/clang/Config include/clang/Driver include/clang/Parse include/cla... X-SVN-Commit-Revision: 351267 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 17:59:23 -0000 Author: dim Date: Tue Aug 20 17:59:23 2019 New Revision: 351267 URL: https://svnweb.freebsd.org/changeset/base/351267 Log: Remove upstream files and directories from vendor/clang/dist that we do not use. This saves on repository space, and reduces the number of tree conflicts when merging. Deleted: vendor/clang/dist/.arcconfig vendor/clang/dist/.clang-format vendor/clang/dist/.clang-tidy vendor/clang/dist/.gitignore vendor/clang/dist/CMakeLists.txt vendor/clang/dist/CODE_OWNERS.TXT vendor/clang/dist/Driver/ vendor/clang/dist/INPUTS/ vendor/clang/dist/INSTALL.txt vendor/clang/dist/ModuleInfo.txt vendor/clang/dist/NOTES.txt vendor/clang/dist/README.txt vendor/clang/dist/bindings/ vendor/clang/dist/cmake/ vendor/clang/dist/docs/ vendor/clang/dist/examples/ vendor/clang/dist/include/CMakeLists.txt vendor/clang/dist/include/clang/AST/CMakeLists.txt vendor/clang/dist/include/clang/Basic/CMakeLists.txt vendor/clang/dist/include/clang/Basic/Version.inc.in vendor/clang/dist/include/clang/CMakeLists.txt vendor/clang/dist/include/clang/Config/ vendor/clang/dist/include/clang/Driver/CMakeLists.txt vendor/clang/dist/include/clang/Parse/CMakeLists.txt vendor/clang/dist/include/clang/Sema/CMakeLists.txt vendor/clang/dist/include/clang/Serialization/CMakeLists.txt vendor/clang/dist/include/clang/StaticAnalyzer/Checkers/CMakeLists.txt vendor/clang/dist/lib/ARCMigrate/CMakeLists.txt vendor/clang/dist/lib/AST/CMakeLists.txt vendor/clang/dist/lib/ASTMatchers/CMakeLists.txt vendor/clang/dist/lib/ASTMatchers/Dynamic/CMakeLists.txt vendor/clang/dist/lib/Analysis/CMakeLists.txt vendor/clang/dist/lib/Basic/CMakeLists.txt vendor/clang/dist/lib/CMakeLists.txt vendor/clang/dist/lib/CodeGen/CMakeLists.txt vendor/clang/dist/lib/CodeGen/README.txt vendor/clang/dist/lib/CrossTU/CMakeLists.txt vendor/clang/dist/lib/Driver/Arch/ vendor/clang/dist/lib/Driver/CMakeLists.txt vendor/clang/dist/lib/Edit/CMakeLists.txt vendor/clang/dist/lib/Format/CMakeLists.txt vendor/clang/dist/lib/Frontend/CMakeLists.txt vendor/clang/dist/lib/Frontend/Rewrite/CMakeLists.txt vendor/clang/dist/lib/FrontendTool/CMakeLists.txt vendor/clang/dist/lib/Headers/CMakeLists.txt vendor/clang/dist/lib/Headers/cuda/ vendor/clang/dist/lib/Index/CMakeLists.txt vendor/clang/dist/lib/Lex/CMakeLists.txt vendor/clang/dist/lib/Parse/CMakeLists.txt vendor/clang/dist/lib/Rewrite/CMakeLists.txt vendor/clang/dist/lib/Sema/CMakeLists.txt vendor/clang/dist/lib/Serialization/CMakeLists.txt vendor/clang/dist/lib/StaticAnalyzer/CMakeLists.txt vendor/clang/dist/lib/StaticAnalyzer/Checkers/CMakeLists.txt vendor/clang/dist/lib/StaticAnalyzer/Core/CMakeLists.txt vendor/clang/dist/lib/StaticAnalyzer/Frontend/CMakeLists.txt vendor/clang/dist/lib/StaticAnalyzer/README.txt vendor/clang/dist/lib/Tooling/ASTDiff/CMakeLists.txt vendor/clang/dist/lib/Tooling/CMakeLists.txt vendor/clang/dist/lib/Tooling/Core/CMakeLists.txt vendor/clang/dist/lib/Tooling/Inclusions/CMakeLists.txt vendor/clang/dist/lib/Tooling/Refactoring/CMakeLists.txt vendor/clang/dist/runtime/ vendor/clang/dist/test/ vendor/clang/dist/tools/CMakeLists.txt vendor/clang/dist/tools/arcmt-test/ vendor/clang/dist/tools/c-arcmt-test/ vendor/clang/dist/tools/c-index-test/ vendor/clang/dist/tools/clang-check/ vendor/clang/dist/tools/clang-diff/ vendor/clang/dist/tools/clang-extdef-mapping/ vendor/clang/dist/tools/clang-format-vs/ vendor/clang/dist/tools/clang-format/CMakeLists.txt vendor/clang/dist/tools/clang-format/clang-format-bbedit.applescript vendor/clang/dist/tools/clang-format/clang-format-diff.py vendor/clang/dist/tools/clang-format/clang-format-sublime.py vendor/clang/dist/tools/clang-format/clang-format-test.el vendor/clang/dist/tools/clang-format/clang-format.el vendor/clang/dist/tools/clang-format/clang-format.py vendor/clang/dist/tools/clang-format/fuzzer/ vendor/clang/dist/tools/clang-format/git-clang-format vendor/clang/dist/tools/clang-func-mapping/ vendor/clang/dist/tools/clang-fuzzer/ vendor/clang/dist/tools/clang-import-test/ vendor/clang/dist/tools/clang-offload-bundler/ vendor/clang/dist/tools/clang-refactor/ vendor/clang/dist/tools/clang-rename/ vendor/clang/dist/tools/diag-build/ vendor/clang/dist/tools/diagtool/ vendor/clang/dist/tools/driver/CMakeLists.txt vendor/clang/dist/tools/driver/Info.plist.in vendor/clang/dist/tools/libclang/ vendor/clang/dist/tools/scan-build/ vendor/clang/dist/tools/scan-build-py/ vendor/clang/dist/tools/scan-view/ vendor/clang/dist/unittests/ vendor/clang/dist/utils/ABITest/ vendor/clang/dist/utils/CIndex/ vendor/clang/dist/utils/CaptureCmd vendor/clang/dist/utils/ClangDataFormat.py vendor/clang/dist/utils/ClangVisualizers/ vendor/clang/dist/utils/CmpDriver vendor/clang/dist/utils/FindSpecRefs vendor/clang/dist/utils/FuzzTest vendor/clang/dist/utils/TableGen/CMakeLists.txt vendor/clang/dist/utils/TestUtils/ vendor/clang/dist/utils/VtableTest/ vendor/clang/dist/utils/analyzer/ vendor/clang/dist/utils/bash-autocomplete.sh vendor/clang/dist/utils/builtin-defines.c vendor/clang/dist/utils/check_cfc/ vendor/clang/dist/utils/clangdiag.py vendor/clang/dist/utils/find-unused-diagnostics.sh vendor/clang/dist/utils/hmaptool/ vendor/clang/dist/utils/modfuzz.py vendor/clang/dist/utils/perf-training/ vendor/clang/dist/utils/token-delta.py vendor/clang/dist/utils/valgrind/ vendor/clang/dist/www/ From owner-svn-src-all@freebsd.org Tue Aug 20 18:00:16 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8E486D7700; Tue, 20 Aug 2019 18:00:16 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cdqh3FGFz4dRL; Tue, 20 Aug 2019 18:00: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 522846F62; Tue, 20 Aug 2019 18:00: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 x7KI0G3h067885; Tue, 20 Aug 2019 18:00:16 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KI0GtF067884; Tue, 20 Aug 2019 18:00:16 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908201800.x7KI0GtF067884@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 18:00:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351268 - in vendor/compiler-rt/dist: . cmake docs include lib lib/asan lib/asan/scripts lib/asan/tests lib/builtins lib/builtins/Darwin-excludes lib/builtins/macho_embedded lib/cfi lib... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/compiler-rt/dist: . cmake docs include lib lib/asan lib/asan/scripts lib/asan/tests lib/builtins lib/builtins/Darwin-excludes lib/builtins/macho_embedded lib/cfi lib/dfsan lib/dfsan/scripts ... X-SVN-Commit-Revision: 351268 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 18:00:16 -0000 Author: dim Date: Tue Aug 20 18:00:15 2019 New Revision: 351268 URL: https://svnweb.freebsd.org/changeset/base/351268 Log: Remove upstream files and directories from vendor/compiler-rt/dist that we do not use. This saves on repository space, and reduces the number of tree conflicts when merging. Deleted: vendor/compiler-rt/dist/.arcconfig vendor/compiler-rt/dist/.gitignore vendor/compiler-rt/dist/CMakeLists.txt vendor/compiler-rt/dist/CODE_OWNERS.TXT vendor/compiler-rt/dist/cmake/ vendor/compiler-rt/dist/docs/ vendor/compiler-rt/dist/include/CMakeLists.txt vendor/compiler-rt/dist/lib/CMakeLists.txt vendor/compiler-rt/dist/lib/asan/.clang-format vendor/compiler-rt/dist/lib/asan/CMakeLists.txt vendor/compiler-rt/dist/lib/asan/scripts/ vendor/compiler-rt/dist/lib/asan/tests/ vendor/compiler-rt/dist/lib/builtins/CMakeLists.txt vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/ vendor/compiler-rt/dist/lib/builtins/macho_embedded/ vendor/compiler-rt/dist/lib/cfi/CMakeLists.txt vendor/compiler-rt/dist/lib/dfsan/.clang-format vendor/compiler-rt/dist/lib/dfsan/CMakeLists.txt vendor/compiler-rt/dist/lib/dfsan/scripts/ vendor/compiler-rt/dist/lib/esan/CMakeLists.txt vendor/compiler-rt/dist/lib/fuzzer/CMakeLists.txt vendor/compiler-rt/dist/lib/fuzzer/afl/ vendor/compiler-rt/dist/lib/fuzzer/build.sh vendor/compiler-rt/dist/lib/fuzzer/dataflow/ vendor/compiler-rt/dist/lib/fuzzer/scripts/ vendor/compiler-rt/dist/lib/fuzzer/standalone/ vendor/compiler-rt/dist/lib/fuzzer/tests/ vendor/compiler-rt/dist/lib/hwasan/.clang-format vendor/compiler-rt/dist/lib/hwasan/CMakeLists.txt vendor/compiler-rt/dist/lib/interception/.clang-format vendor/compiler-rt/dist/lib/interception/CMakeLists.txt vendor/compiler-rt/dist/lib/interception/tests/ vendor/compiler-rt/dist/lib/lsan/.clang-format vendor/compiler-rt/dist/lib/lsan/CMakeLists.txt vendor/compiler-rt/dist/lib/msan/.clang-format vendor/compiler-rt/dist/lib/msan/CMakeLists.txt vendor/compiler-rt/dist/lib/msan/tests/ vendor/compiler-rt/dist/lib/profile/CMakeLists.txt vendor/compiler-rt/dist/lib/safestack/.clang-format vendor/compiler-rt/dist/lib/safestack/CMakeLists.txt vendor/compiler-rt/dist/lib/sanitizer_common/.clang-format vendor/compiler-rt/dist/lib/sanitizer_common/.clang-tidy vendor/compiler-rt/dist/lib/sanitizer_common/CMakeLists.txt vendor/compiler-rt/dist/lib/sanitizer_common/scripts/ vendor/compiler-rt/dist/lib/sanitizer_common/tests/ vendor/compiler-rt/dist/lib/scudo/CMakeLists.txt vendor/compiler-rt/dist/lib/stats/CMakeLists.txt vendor/compiler-rt/dist/lib/tsan/.clang-format 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/check_cmake.sh vendor/compiler-rt/dist/lib/tsan/dd/CMakeLists.txt vendor/compiler-rt/dist/lib/tsan/go/build.bat vendor/compiler-rt/dist/lib/tsan/go/buildgo.sh vendor/compiler-rt/dist/lib/tsan/tests/ vendor/compiler-rt/dist/lib/ubsan/CMakeLists.txt vendor/compiler-rt/dist/lib/ubsan_minimal/CMakeLists.txt vendor/compiler-rt/dist/lib/xray/CMakeLists.txt vendor/compiler-rt/dist/lib/xray/tests/ vendor/compiler-rt/dist/make/ vendor/compiler-rt/dist/test/ vendor/compiler-rt/dist/unittests/ vendor/compiler-rt/dist/utils/ vendor/compiler-rt/dist/www/ From owner-svn-src-all@freebsd.org Tue Aug 20 18:01:02 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 87026D777E; Tue, 20 Aug 2019 18:01:02 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CdrZ35BZz4dZs; Tue, 20 Aug 2019 18:01:02 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4CB937090; Tue, 20 Aug 2019 18:01:02 +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 x7KI12bd069415; Tue, 20 Aug 2019 18:01:02 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KI125D069414; Tue, 20 Aug 2019 18:01:02 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908201801.x7KI125D069414@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 18:01:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351269 - in vendor/libc++/dist: . benchmarks cmake docs fuzzing include include/support lib src/support/solaris src/support/win32 test utils www X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/libc++/dist: . benchmarks cmake docs fuzzing include include/support lib src/support/solaris src/support/win32 test utils www X-SVN-Commit-Revision: 351269 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 18:01:02 -0000 Author: dim Date: Tue Aug 20 18:01:01 2019 New Revision: 351269 URL: https://svnweb.freebsd.org/changeset/base/351269 Log: Remove upstream files and directories from vendor/libc++/dist that we do not use. This saves on repository space, and reduces the number of tree conflicts when merging. Deleted: vendor/libc++/dist/.arcconfig vendor/libc++/dist/.clang-format vendor/libc++/dist/.gitignore vendor/libc++/dist/CMakeLists.txt vendor/libc++/dist/NOTES.TXT vendor/libc++/dist/TODO.TXT vendor/libc++/dist/appveyor-reqs-install.cmd vendor/libc++/dist/appveyor.yml vendor/libc++/dist/benchmarks/ vendor/libc++/dist/cmake/ vendor/libc++/dist/docs/ vendor/libc++/dist/fuzzing/ vendor/libc++/dist/include/CMakeLists.txt vendor/libc++/dist/include/__config_site.in vendor/libc++/dist/include/support/ vendor/libc++/dist/lib/ vendor/libc++/dist/src/support/solaris/ vendor/libc++/dist/src/support/win32/ vendor/libc++/dist/test/ vendor/libc++/dist/utils/ vendor/libc++/dist/www/ From owner-svn-src-all@freebsd.org Tue Aug 20 18:01:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D44CAD7900; Tue, 20 Aug 2019 18:01:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cds95GHmz4dqv; Tue, 20 Aug 2019 18:01:33 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9680D70BF; Tue, 20 Aug 2019 18:01:33 +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 x7KI1X7l071713; Tue, 20 Aug 2019 18:01:33 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KI1XTT071712; Tue, 20 Aug 2019 18:01:33 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908201801.x7KI1XTT071712@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 18:01:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351270 - in vendor/lld/dist: MinGW cmake test unittests utils wasm X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/lld/dist: MinGW cmake test unittests utils wasm X-SVN-Commit-Revision: 351270 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 18:01:33 -0000 Author: dim Date: Tue Aug 20 18:01:33 2019 New Revision: 351270 URL: https://svnweb.freebsd.org/changeset/base/351270 Log: Remove upstream files and directories from vendor/lld/dist that we do not use. This saves on repository space, and reduces the number of tree conflicts when merging. Deleted: vendor/lld/dist/MinGW/ vendor/lld/dist/cmake/ vendor/lld/dist/test/ vendor/lld/dist/unittests/ vendor/lld/dist/utils/ vendor/lld/dist/wasm/ From owner-svn-src-all@freebsd.org Tue Aug 20 18:01:58 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1AC98D7959; Tue, 20 Aug 2019 18:01:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cdsd6xvMz4dyy; Tue, 20 Aug 2019 18:01:57 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D030070E5; Tue, 20 Aug 2019 18:01:57 +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 x7KI1vtU072506; Tue, 20 Aug 2019 18:01:57 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KI1v7Z072505; Tue, 20 Aug 2019 18:01:57 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908201801.x7KI1v7Z072505@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 18:01:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351271 - in vendor/lldb/dist: . cmake docs docs/structured_data docs/testsuite examples include/lldb/Host include/lldb/Host/android include/lldb/Host/linux include/lldb/Host/macosx inc... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/lldb/dist: . cmake docs docs/structured_data docs/testsuite examples include/lldb/Host include/lldb/Host/android include/lldb/Host/linux include/lldb/Host/macosx include/lldb/Host/windows li... X-SVN-Commit-Revision: 351271 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 18:01:58 -0000 Author: dim Date: Tue Aug 20 18:01:57 2019 New Revision: 351271 URL: https://svnweb.freebsd.org/changeset/base/351271 Log: Remove upstream files and directories from vendor/lldb/dist that we do not use. This saves on repository space, and reduces the number of tree conflicts when merging. Deleted: vendor/lldb/dist/.arcconfig vendor/lldb/dist/.clang-format vendor/lldb/dist/.gitignore vendor/lldb/dist/CMakeLists.txt vendor/lldb/dist/CODE_OWNERS.txt vendor/lldb/dist/INSTALL.txt vendor/lldb/dist/cmake/ vendor/lldb/dist/docs/CMakeLists.txt vendor/lldb/dist/docs/building-with-debug-llvm.txt vendor/lldb/dist/docs/code-signing.txt vendor/lldb/dist/docs/doxygen.cfg.in vendor/lldb/dist/docs/doxygen.footer vendor/lldb/dist/docs/doxygen.header vendor/lldb/dist/docs/doxygen.intro vendor/lldb/dist/docs/lldb-for-gdb-users.txt vendor/lldb/dist/docs/lldb-gdb-remote.txt vendor/lldb/dist/docs/lldb-platform-packets.txt vendor/lldb/dist/docs/structured_data/ vendor/lldb/dist/docs/testsuite/ vendor/lldb/dist/examples/ vendor/lldb/dist/include/lldb/Host/Config.h vendor/lldb/dist/include/lldb/Host/android/ vendor/lldb/dist/include/lldb/Host/linux/ vendor/lldb/dist/include/lldb/Host/macosx/ vendor/lldb/dist/include/lldb/Host/windows/ vendor/lldb/dist/lit/ vendor/lldb/dist/lldb.xcodeproj/ vendor/lldb/dist/lldb.xcworkspace/ vendor/lldb/dist/packages/ vendor/lldb/dist/resources/ vendor/lldb/dist/scripts/ vendor/lldb/dist/source/API/CMakeLists.txt vendor/lldb/dist/source/Breakpoint/CMakeLists.txt vendor/lldb/dist/source/CMakeLists.txt vendor/lldb/dist/source/Commands/CMakeLists.txt vendor/lldb/dist/source/Core/CMakeLists.txt vendor/lldb/dist/source/DataFormatters/CMakeLists.txt vendor/lldb/dist/source/Expression/CMakeLists.txt vendor/lldb/dist/source/Host/CMakeLists.txt vendor/lldb/dist/source/Host/android/ vendor/lldb/dist/source/Host/linux/ vendor/lldb/dist/source/Host/macosx/ vendor/lldb/dist/source/Host/windows/ vendor/lldb/dist/source/Initialization/CMakeLists.txt vendor/lldb/dist/source/Interpreter/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm64/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/MacOSX-i386/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-arm/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-arm64/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-hexagon/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-i386/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-mips/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-mips64/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-ppc/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-ppc64/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-s390x/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-x86_64/CMakeLists.txt vendor/lldb/dist/source/Plugins/Architecture/Arm/CMakeLists.txt vendor/lldb/dist/source/Plugins/Architecture/CMakeLists.txt vendor/lldb/dist/source/Plugins/Architecture/Mips/CMakeLists.txt vendor/lldb/dist/source/Plugins/Architecture/PPC64/CMakeLists.txt vendor/lldb/dist/source/Plugins/CMakeLists.txt vendor/lldb/dist/source/Plugins/Disassembler/CMakeLists.txt vendor/lldb/dist/source/Plugins/Disassembler/llvm/CMakeLists.txt vendor/lldb/dist/source/Plugins/DynamicLoader/CMakeLists.txt vendor/lldb/dist/source/Plugins/DynamicLoader/Darwin-Kernel/ vendor/lldb/dist/source/Plugins/DynamicLoader/Hexagon-DYLD/CMakeLists.txt vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/ vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/CMakeLists.txt vendor/lldb/dist/source/Plugins/DynamicLoader/Static/CMakeLists.txt vendor/lldb/dist/source/Plugins/DynamicLoader/Windows-DYLD/CMakeLists.txt vendor/lldb/dist/source/Plugins/ExpressionParser/CMakeLists.txt vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/CMakeLists.txt vendor/lldb/dist/source/Plugins/Instruction/ARM/CMakeLists.txt vendor/lldb/dist/source/Plugins/Instruction/ARM64/CMakeLists.txt vendor/lldb/dist/source/Plugins/Instruction/CMakeLists.txt vendor/lldb/dist/source/Plugins/Instruction/MIPS/CMakeLists.txt vendor/lldb/dist/source/Plugins/Instruction/MIPS64/CMakeLists.txt vendor/lldb/dist/source/Plugins/Instruction/PPC64/CMakeLists.txt vendor/lldb/dist/source/Plugins/InstrumentationRuntime/ASan/CMakeLists.txt vendor/lldb/dist/source/Plugins/InstrumentationRuntime/CMakeLists.txt vendor/lldb/dist/source/Plugins/InstrumentationRuntime/MainThreadChecker/CMakeLists.txt vendor/lldb/dist/source/Plugins/InstrumentationRuntime/TSan/CMakeLists.txt vendor/lldb/dist/source/Plugins/InstrumentationRuntime/UBSan/CMakeLists.txt vendor/lldb/dist/source/Plugins/JITLoader/CMakeLists.txt vendor/lldb/dist/source/Plugins/JITLoader/GDB/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/ClangCommon/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/ObjC/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/ObjCPlusPlus/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/CPlusPlus/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/Go/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/CMakeLists.txt vendor/lldb/dist/source/Plugins/MemoryHistory/CMakeLists.txt vendor/lldb/dist/source/Plugins/MemoryHistory/asan/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectContainer/BSD-Archive/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectContainer/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectContainer/Universal-Mach-O/ vendor/lldb/dist/source/Plugins/ObjectFile/Breakpad/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectFile/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectFile/ELF/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectFile/JIT/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectFile/Mach-O/ vendor/lldb/dist/source/Plugins/ObjectFile/PECOFF/ vendor/lldb/dist/source/Plugins/OperatingSystem/CMakeLists.txt vendor/lldb/dist/source/Plugins/OperatingSystem/Python/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/Android/ vendor/lldb/dist/source/Plugins/Platform/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/FreeBSD/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/Kalimba/ vendor/lldb/dist/source/Plugins/Platform/Linux/ vendor/lldb/dist/source/Plugins/Platform/MacOSX/ vendor/lldb/dist/source/Plugins/Platform/NetBSD/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/OpenBSD/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/POSIX/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/Windows/ vendor/lldb/dist/source/Plugins/Platform/gdb-server/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/FreeBSD/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/Linux/ vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/ vendor/lldb/dist/source/Plugins/Process/NetBSD/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/POSIX/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/Utility/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/Windows/ vendor/lldb/dist/source/Plugins/Process/elf-core/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/gdb-remote/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/mach-core/ vendor/lldb/dist/source/Plugins/Process/minidump/CMakeLists.txt vendor/lldb/dist/source/Plugins/ScriptInterpreter/CMakeLists.txt vendor/lldb/dist/source/Plugins/ScriptInterpreter/None/CMakeLists.txt vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt vendor/lldb/dist/source/Plugins/StructuredData/CMakeLists.txt vendor/lldb/dist/source/Plugins/StructuredData/DarwinLog/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolFile/Breakpad/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolFile/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolFile/PDB/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolFile/Symtab/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolVendor/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolVendor/ELF/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolVendor/MacOSX/ vendor/lldb/dist/source/Plugins/SystemRuntime/ vendor/lldb/dist/source/Plugins/UnwindAssembly/CMakeLists.txt vendor/lldb/dist/source/Plugins/UnwindAssembly/InstEmulation/CMakeLists.txt vendor/lldb/dist/source/Plugins/UnwindAssembly/x86/CMakeLists.txt vendor/lldb/dist/source/Symbol/CMakeLists.txt vendor/lldb/dist/source/Target/CMakeLists.txt vendor/lldb/dist/source/Utility/CMakeLists.txt vendor/lldb/dist/test/ vendor/lldb/dist/third_party/ vendor/lldb/dist/tools/CMakeLists.txt vendor/lldb/dist/tools/argdumper/CMakeLists.txt vendor/lldb/dist/tools/darwin-debug/ vendor/lldb/dist/tools/darwin-threads/ vendor/lldb/dist/tools/debugserver/ vendor/lldb/dist/tools/driver/CMakeLists.txt vendor/lldb/dist/tools/driver/lldb-Info.plist vendor/lldb/dist/tools/install-headers/ vendor/lldb/dist/tools/intel-features/ vendor/lldb/dist/tools/lldb-mi/CMakeLists.txt vendor/lldb/dist/tools/lldb-mi/lldb-Info.plist vendor/lldb/dist/tools/lldb-perf/ vendor/lldb/dist/tools/lldb-server/CMakeLists.txt vendor/lldb/dist/tools/lldb-test/ vendor/lldb/dist/tools/lldb-vscode/ vendor/lldb/dist/unittests/ vendor/lldb/dist/use_lldb_suite_root.py vendor/lldb/dist/utils/ vendor/lldb/dist/www/ From owner-svn-src-all@freebsd.org Tue Aug 20 18:02:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E0F74D79BF; Tue, 20 Aug 2019 18:02:37 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CdtP5h8Vz4f7m; Tue, 20 Aug 2019 18:02:37 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A1F457119; Tue, 20 Aug 2019 18:02:37 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KI2b9a073324; Tue, 20 Aug 2019 18:02:37 GMT (envelope-from gordon@FreeBSD.org) Received: (from gordon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KI2bin073323; Tue, 20 Aug 2019 18:02:37 GMT (envelope-from gordon@FreeBSD.org) Message-Id: <201908201802.x7KI2bin073323@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gordon set sender to gordon@FreeBSD.org using -f From: Gordon Tetlow Date: Tue, 20 Aug 2019 18:02:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r351272 - releng/11.3 X-SVN-Group: releng X-SVN-Commit-Author: gordon X-SVN-Commit-Paths: releng/11.3 X-SVN-Commit-Revision: 351272 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 18:02:37 -0000 Author: gordon Date: Tue Aug 20 18:02:37 2019 New Revision: 351272 URL: https://svnweb.freebsd.org/changeset/base/351272 Log: That's EN-19:17.ipfw. It's not an SA. Reported by: kevans@ Approved by: so Modified: releng/11.3/UPDATING Modified: releng/11.3/UPDATING ============================================================================== --- releng/11.3/UPDATING Tue Aug 20 18:01:57 2019 (r351271) +++ releng/11.3/UPDATING Tue Aug 20 18:02:37 2019 (r351272) @@ -17,7 +17,7 @@ the tip of head, and then rebuild without this option. from older version of current across the gcc/clang cutover is a bit fragile. 20190820 p3 FreeBSD-EN-19:16.bhyve - FreeBSD-SA-19:17.ipfw + FreeBSD-EN-19:17.ipfw FreeBSD-SA-19:22.mbuf FreeBSD-SA-19:23.midi FreeBSD-SA-19:24.mqueuefs From owner-svn-src-all@freebsd.org Tue Aug 20 18:20:47 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E6933D8515; Tue, 20 Aug 2019 18:20:47 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CfHM6VpMz3Bsc; Tue, 20 Aug 2019 18:20:47 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C2406731C; Tue, 20 Aug 2019 18:20:47 +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 x7KIKl1R080883; Tue, 20 Aug 2019 18:20:47 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KIKjLu080715; Tue, 20 Aug 2019 18:20:45 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908201820.x7KIKjLu080715@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 20 Aug 2019 18:20:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351273 - in head/usr.sbin/makefs: . msdos X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head/usr.sbin/makefs: . msdos X-SVN-Commit-Revision: 351273 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 18:20:48 -0000 Author: emaste Date: Tue Aug 20 18:20:45 2019 New Revision: 351273 URL: https://svnweb.freebsd.org/changeset/base/351273 Log: makefs: add msdosfs (FAT) support Add FAT support to makefs by copying some files from sys/fs/msdosfs/ and updating others with changes from NetBSD. The six files copied from sys/fs/msdosfs at r348251 and modified are: denode.h direntry.h fat.h msdosfs_fat.c msdosfs_lookup.c msdosfsmount.h I would prefer to avoid the duplication, but reluctance to doing so was expressed in a previous review (D11197); for now copy the files and revisit in the future. Submitted by: Siva Mahadevan Discussed with: cem, imp MFC after: 1 month Relnotes: Yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D16438 Added: head/usr.sbin/makefs/msdos/Makefile.inc (contents, props changed) head/usr.sbin/makefs/msdos/denode.h - copied, changed from r351251, head/sys/fs/msdosfs/denode.h head/usr.sbin/makefs/msdos/direntry.h - copied, changed from r351251, head/sys/fs/msdosfs/direntry.h head/usr.sbin/makefs/msdos/fat.h - copied, changed from r351251, head/sys/fs/msdosfs/fat.h head/usr.sbin/makefs/msdos/msdosfs_conv.c (contents, props changed) head/usr.sbin/makefs/msdos/msdosfs_fat.c - copied, changed from r351251, head/sys/fs/msdosfs/msdosfs_fat.c head/usr.sbin/makefs/msdos/msdosfs_lookup.c - copied, changed from r351251, head/sys/fs/msdosfs/msdosfs_lookup.c head/usr.sbin/makefs/msdos/msdosfsmount.h - copied, changed from r351251, head/sys/fs/msdosfs/msdosfsmount.h Modified: head/usr.sbin/makefs/Makefile head/usr.sbin/makefs/makefs.8 head/usr.sbin/makefs/makefs.c head/usr.sbin/makefs/makefs.h head/usr.sbin/makefs/msdos.c head/usr.sbin/makefs/msdos.h head/usr.sbin/makefs/msdos/msdosfs_denode.c head/usr.sbin/makefs/msdos/msdosfs_vfsops.c head/usr.sbin/makefs/msdos/msdosfs_vnops.c Modified: head/usr.sbin/makefs/Makefile ============================================================================== --- head/usr.sbin/makefs/Makefile Tue Aug 20 18:02:37 2019 (r351272) +++ head/usr.sbin/makefs/Makefile Tue Aug 20 18:20:45 2019 (r351273) @@ -8,8 +8,10 @@ PROG= makefs CFLAGS+=-I${SRCDIR} -SRCS= cd9660.c ffs.c \ +SRCS= cd9660.c \ + ffs.c \ makefs.c \ + msdos.c \ mtree.c \ walk.c MAN= makefs.8 @@ -18,6 +20,7 @@ WARNS?= 2 .include "${SRCDIR}/cd9660/Makefile.inc" .include "${SRCDIR}/ffs/Makefile.inc" +.include "${SRCDIR}/msdos/Makefile.inc" CFLAGS+=-DHAVE_STRUCT_STAT_ST_FLAGS=1 Modified: head/usr.sbin/makefs/makefs.8 ============================================================================== --- head/usr.sbin/makefs/makefs.8 Tue Aug 20 18:02:37 2019 (r351272) +++ head/usr.sbin/makefs/makefs.8 Tue Aug 20 18:20:45 2019 (r351273) @@ -35,7 +35,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 19, 2019 +.Dd August 20, 2019 .Dt MAKEFS 8 .Os .Sh NAME @@ -198,7 +198,9 @@ and Instead of creating the filesystem at the beginning of the file, start at offset. Valid only for -.Sy ffs . +.Sy ffs +and +.Sy msdos . .It Fl o Ar fs-options Set file system specific options. .Ar fs-options @@ -232,10 +234,14 @@ and the maximum sizes to the same value. For .Sy ffs +and +.Sy msdos the .Ar image-size does not include the .Ar offset . +.Ar offset +is not included in that size. .It Fl T Ar timestamp Specify a timestamp to be set for all filesystem files and directories created so that repeatable builds are possible. @@ -258,6 +264,8 @@ The following file system types are supported: BSD fast file system (default). .It Sy cd9660 ISO 9660 file system. +.It Sy msdos +FAT12, FAT16, or FAT32 file system. .El .It Fl x Exclude file system nodes not explicitly listed in the specfile. @@ -420,6 +428,67 @@ Use RockRidge extensions (for longer filenames, etc.). Turns on verbose output. .It Sy volumeid Volume set identifier of the image. +.El +.Ss msdos-specific options +.Sy msdos +images have MS-DOS-specific optional parameters that may be +provided. +The arguments consist of a keyword, an equal sign +.Pq Ql = , +and a value. +The following keywords are supported (see +.Xr newfs_msdos 8 +for more details): +.Pp +.Bl -tag -width omit-trailing-period -offset indent -compact +.It Cm backup_sector +Location of the backup boot sector. +.It Cm block_size +Block size. +.It Cm bootstrap +Bootstrap file. +.It Cm bytes_per_sector +Bytes per sector. +.It Cm create_size +Create file size. +.It Cm directory_entries +Directory entries. +.It Cm drive_heads +Drive heads. +.It Cm fat_type +FAT type (12, 16, or 32). +.It Cm floppy +Preset drive parameters for standard format floppy disks +(160, 180, 320, 360, 640, 720, 1200, 1232, 1440, or 2880). +.It Cm hidden_sectors +Hidden sectors. +.It Cm info_sector +Location of the info sector. +.It Cm media_descriptor +Media descriptor. +.It Cm num_FAT +Number of FATs. +.It Cm OEM_string +OEM string. +.It Cm offset +Offset in device. +This option will be ignored if +.Fl O +is set to a positive number. +.It Cm reserved_sectors +Reserved sectors. +.It Cm sectors_per_cluster +Sectors per cluster. +.It Cm sectors_per_fat +Sectors per FAT. +.It Cm sectors_per_track +Sectors per track. +.It Cm size +File System size. +.It Cm volume_id +Volume ID. +.It Cm volume_label +Volume Label. .El .Sh SEE ALSO .Xr mtree 5 , Modified: head/usr.sbin/makefs/makefs.c ============================================================================== --- head/usr.sbin/makefs/makefs.c Tue Aug 20 18:02:37 2019 (r351272) +++ head/usr.sbin/makefs/makefs.c Tue Aug 20 18:20:45 2019 (r351273) @@ -74,8 +74,9 @@ static fstype_t fstypes[] = { # name, name ## _prep_opts, name ## _parse_opts, \ name ## _cleanup_opts, name ## _makefs \ } - ENTRY(ffs), ENTRY(cd9660), + ENTRY(ffs), + ENTRY(msdos), { .type = NULL }, }; Modified: head/usr.sbin/makefs/makefs.h ============================================================================== --- head/usr.sbin/makefs/makefs.h Tue Aug 20 18:02:37 2019 (r351272) +++ head/usr.sbin/makefs/makefs.h Tue Aug 20 18:20:45 2019 (r351273) @@ -183,8 +183,9 @@ int fs ## _parse_opts(const char *, fsinfo_t *); \ void fs ## _cleanup_opts(fsinfo_t *); \ void fs ## _makefs(const char *, const char *, fsnode *, fsinfo_t *) -DECLARE_FUN(ffs); DECLARE_FUN(cd9660); +DECLARE_FUN(ffs); +DECLARE_FUN(msdos); extern u_int debug; extern int dupsok; @@ -225,6 +226,7 @@ extern struct stat stampst; #define DEBUG_APPLY_SPECFILE 0x04000000 #define DEBUG_APPLY_SPECENTRY 0x08000000 #define DEBUG_APPLY_SPECONLY 0x10000000 +#define DEBUG_MSDOSFS 0x20000000 #define TIMER_START(x) \ Modified: head/usr.sbin/makefs/msdos.c ============================================================================== --- head/usr.sbin/makefs/msdos.c Tue Aug 20 18:02:37 2019 (r351272) +++ head/usr.sbin/makefs/msdos.c Tue Aug 20 18:20:45 2019 (r351273) @@ -50,24 +50,28 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include -#include -#include -#include -#include #include "makefs.h" #include "msdos.h" -#include "mkfs_msdos.h" +#include +#include + +#include "ffs/buf.h" + +#include "msdos/msdosfsmount.h" +#include "msdos/direntry.h" +#include "msdos/denode.h" + static int msdos_populate_dir(const char *, struct denode *, fsnode *, fsnode *, fsinfo_t *); struct msdos_options_ex { struct msdos_options options; - bool utf8; }; void @@ -85,15 +89,13 @@ msdos_prep_opts(fsinfo_t *fsopts) (sizeof(_type) == 4 ? OPT_INT32 : OPT_INT64)))), \ .value = &msdos_opt->options._name, \ .minimum = _min, \ - .maximum = sizeof(_type) == 1 ? 0xff : \ - (sizeof(_type) == 2 ? 0xffff : \ - (sizeof(_type) == 4 ? 0xffffffff : 0xffffffffffffffffLL)), \ - .desc = _desc, \ + .maximum = sizeof(_type) == 1 ? UINT8_MAX : \ + (sizeof(_type) == 2 ? UINT16_MAX : \ + (sizeof(_type) == 4 ? UINT32_MAX : INT64_MAX)), \ + .desc = _desc, \ }, ALLOPTS #undef AOPT - { 'U', "utf8", &msdos_opt->utf8, OPT_BOOL, - 0, 1, "Use UTF8 names" }, { .name = NULL } }; @@ -113,7 +115,6 @@ msdos_parse_opts(const char *option, fsinfo_t *fsopts) { struct msdos_options *msdos_opt = fsopts->fs_specific; option_t *msdos_options = fsopts->fs_options; - int rv; assert(option != NULL); @@ -148,7 +149,7 @@ msdos_makefs(const char *image, const char *dir, fsnod { struct msdos_options_ex *msdos_opt = fsopts->fs_specific; struct vnode vp, rootvp; - struct timeval start; + struct timeval start; struct msdosfsmount *pmp; uint32_t flags; @@ -160,7 +161,8 @@ msdos_makefs(const char *image, const char *dir, fsnod fsopts->size = fsopts->maxsize; msdos_opt->options.create_size = MAX(msdos_opt->options.create_size, fsopts->offset + fsopts->size); - msdos_opt->options.offset = fsopts->offset; + if (fsopts->offset > 0) + msdos_opt->options.offset = fsopts->offset; if (msdos_opt->options.bytes_per_sector == 0) { if (fsopts->sectorsize == -1) fsopts->sectorsize = 512; @@ -173,7 +175,7 @@ msdos_makefs(const char *image, const char *dir, fsnod fsopts->sectorsize, msdos_opt->options.bytes_per_sector); } - /* create image */ + /* create image */ printf("Creating `%s'\n", image); TIMER_START(start); if (mkfs_msdos(image, NULL, &msdos_opt->options) == -1) @@ -184,10 +186,7 @@ msdos_makefs(const char *image, const char *dir, fsnod vp.fs = fsopts; flags = 0; - if (msdos_opt->utf8) - flags |= MSDOSFSMNT_UTF8; - - if ((pmp = msdosfs_mount(&vp, flags)) == NULL) + if ((pmp = msdosfs_mount(&vp)) == NULL) err(1, "msdosfs_mount"); if (msdosfs_root(pmp, &rootvp) != 0) @@ -197,7 +196,7 @@ msdos_makefs(const char *image, const char *dir, fsnod printf("msdos_makefs: image %s directory %s root %p\n", image, dir, root); - /* populate image */ + /* populate image */ printf("Populating `%s'\n", image); TIMER_START(start); if (msdos_populate_dir(dir, VTODE(&rootvp), root, root, fsopts) == -1) @@ -207,7 +206,7 @@ msdos_makefs(const char *image, const char *dir, fsnod if (debug & DEBUG_FS_MAKEFS) putchar('\n'); - /* ensure no outstanding buffers remain */ + /* ensure no outstanding buffers remain */ if (debug & DEBUG_FS_MAKEFS) bcleanup(); Modified: head/usr.sbin/makefs/msdos.h ============================================================================== --- head/usr.sbin/makefs/msdos.h Tue Aug 20 18:02:37 2019 (r351272) +++ head/usr.sbin/makefs/msdos.h Tue Aug 20 18:20:45 2019 (r351273) @@ -30,11 +30,31 @@ * POSSIBILITY OF SUCH DAMAGE. */ +#ifndef _MAKEFS_MSDOS_H +#define _MAKEFS_MSDOS_H + +#define NOCRED NULL + +#define MSDOSFS_DPRINTF(args) do { \ + if (debug & DEBUG_MSDOSFS) \ + printf args; \ +} while (0); + + struct vnode; struct denode; +struct fsnode; +struct msdosfsmount; -struct msdosfsmount *msdosfs_mount(struct vnode *, int); +struct componentname { + char *cn_nameptr; + size_t cn_namelen; +}; + +struct msdosfsmount *msdosfs_mount(struct vnode *); int msdosfs_root(struct msdosfsmount *, struct vnode *); struct denode *msdosfs_mkfile(const char *, struct denode *, fsnode *); struct denode *msdosfs_mkdire(const char *, struct denode *, fsnode *); + +#endif Added: head/usr.sbin/makefs/msdos/Makefile.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/makefs/msdos/Makefile.inc Tue Aug 20 18:20:45 2019 (r351273) @@ -0,0 +1,13 @@ +# $FreeBSD$ +# + +MSDOS= ${SRCTOP}/sys/fs/msdosfs +MSDOS_NEWFS= ${SRCTOP}/sbin/newfs_msdos + +.PATH: ${SRCDIR}/msdos ${MSDOS} ${MSDOS_NEWFS} + +CFLAGS+= -I${MSDOS} -I${MSDOS_NEWFS} + +SRCS+= mkfs_msdos.c +SRCS+= msdosfs_conv.c msdosfs_denode.c msdosfs_fat.c msdosfs_lookup.c +SRCS+= msdosfs_vnops.c msdosfs_vfsops.c Copied and modified: head/usr.sbin/makefs/msdos/denode.h (from r351251, head/sys/fs/msdosfs/denode.h) ============================================================================== --- head/sys/fs/msdosfs/denode.h Tue Aug 20 16:07:17 2019 (r351251, copy source) +++ head/usr.sbin/makefs/msdos/denode.h Tue Aug 20 18:20:45 2019 (r351273) @@ -161,7 +161,6 @@ struct denode { u_long de_StartCluster; /* starting cluster of file */ u_long de_FileSize; /* size of file in bytes */ struct fatcache de_fc[FC_SIZE]; /* FAT cache */ - u_quad_t de_modrev; /* Revision level for lease. */ uint64_t de_inode; /* Inode number (really byte offset of direntry) */ }; @@ -213,60 +212,16 @@ struct denode { ((dep)->de_Attributes & ATTR_DIRECTORY) ? 0 : (dep)->de_FileSize), \ putushort((dp)->deHighClust, (dep)->de_StartCluster >> 16)) -#ifdef _KERNEL - #define VTODE(vp) ((struct denode *)(vp)->v_data) #define DETOV(de) ((de)->de_vnode) -#define DETIMES(dep, acc, mod, cre) do { \ - if ((dep)->de_flag & DE_UPDATE) { \ - (dep)->de_flag |= DE_MODIFIED; \ - timespec2fattime((mod), 0, &(dep)->de_MDate, \ - &(dep)->de_MTime, NULL); \ - (dep)->de_Attributes |= ATTR_ARCHIVE; \ - } \ - if ((dep)->de_pmp->pm_flags & MSDOSFSMNT_NOWIN95) { \ - (dep)->de_flag &= ~(DE_UPDATE | DE_CREATE | DE_ACCESS); \ - break; \ - } \ - if ((dep)->de_flag & DE_ACCESS) { \ - uint16_t adate; \ - \ - timespec2fattime((acc), 0, &adate, NULL, NULL); \ - if (adate != (dep)->de_ADate) { \ - (dep)->de_flag |= DE_MODIFIED; \ - (dep)->de_ADate = adate; \ - } \ - } \ - if ((dep)->de_flag & DE_CREATE) { \ - timespec2fattime((cre), 0, &(dep)->de_CDate, \ - &(dep)->de_CTime, &(dep)->de_CHun); \ - (dep)->de_flag |= DE_MODIFIED; \ - } \ - (dep)->de_flag &= ~(DE_UPDATE | DE_CREATE | DE_ACCESS); \ -} while (0) +struct buf; +struct msdosfsmount; +struct direntry; +struct componentname; +struct denode; /* - * This overlays the fid structure (see mount.h) - */ -struct defid { - u_short defid_len; /* length of structure */ - u_short defid_pad; /* force long alignment */ - - uint32_t defid_dirclust; /* cluster this dir entry came from */ - uint32_t defid_dirofs; /* offset of entry within the cluster */ -#if 0 - uint32_t defid_gen; /* generation number */ -#endif -}; - -extern struct vop_vector msdosfs_vnodeops; - -int msdosfs_lookup(struct vop_cachedlookup_args *); -int msdosfs_inactive(struct vop_inactive_args *); -int msdosfs_reclaim(struct vop_reclaim_args *); - -/* * Internal service routine prototypes. */ int deget(struct msdosfsmount *, u_long, u_long, struct denode **); @@ -274,14 +229,9 @@ int uniqdosname(struct denode *, struct componentname int readep(struct msdosfsmount *pmp, u_long dirclu, u_long dirofs, struct buf **bpp, struct direntry **epp); int readde(struct denode *dep, struct buf **bpp, struct direntry **epp); -int deextend(struct denode *dep, u_long length, struct ucred *cred); +int deextend(struct denode *dep, u_long length); int fillinusemap(struct msdosfsmount *pmp); -void reinsert(struct denode *dep); -int dosdirempty(struct denode *dep); int createde(struct denode *dep, struct denode *ddep, struct denode **depp, struct componentname *cnp); -int deupdat(struct denode *dep, int waitfor); int removede(struct denode *pdep, struct denode *dep); -int detrunc(struct denode *dep, u_long length, int flags, struct ucred *cred); -int doscheckpath( struct denode *source, struct denode *target); -#endif /* _KERNEL */ +int detrunc(struct denode *dep, u_long length, int flags); #endif /* !_FS_MSDOSFS_DENODE_H_ */ Copied and modified: head/usr.sbin/makefs/msdos/direntry.h (from r351251, head/sys/fs/msdosfs/direntry.h) ============================================================================== --- head/sys/fs/msdosfs/direntry.h Tue Aug 20 16:07:17 2019 (r351251, copy source) +++ head/usr.sbin/makefs/msdos/direntry.h Tue Aug 20 18:20:45 2019 (r351273) @@ -135,31 +135,12 @@ struct winentry { #define DD_YEAR_MASK 0xFE00 /* year - 1980 */ #define DD_YEAR_SHIFT 9 -#ifdef _KERNEL -struct mbnambuf { - size_t nb_len; - int nb_last_id; - char nb_buf[WIN_MAXLEN + 1]; -}; - -struct dirent; -struct msdosfsmount; - -char *mbnambuf_flush(struct mbnambuf *nbp, struct dirent *dp); -void mbnambuf_init(struct mbnambuf *nbp); -int mbnambuf_write(struct mbnambuf *nbp, char *name, int id); -int dos2unixfn(u_char dn[11], u_char *un, int lower, - struct msdosfsmount *pmp); -int unix2dosfn(const u_char *un, u_char dn[12], size_t unlen, u_int gen, - struct msdosfsmount *pmp); -int unix2winfn(const u_char *un, size_t unlen, struct winentry *wep, int cnt, - int chksum, struct msdosfsmount *pmp); -int winChkName(struct mbnambuf *nbp, const u_char *un, size_t unlen, - int chksum, struct msdosfsmount *pmp); -int win2unixfn(struct mbnambuf *nbp, struct winentry *wep, int chksum, - struct msdosfsmount *pmp); uint8_t winChksum(uint8_t *name); -int winSlotCnt(const u_char *un, size_t unlen, struct msdosfsmount *pmp); -size_t winLenFixup(const u_char *un, size_t unlen); -#endif /* _KERNEL */ +int winSlotCnt(const u_char *un, size_t unlen); +int unix2dosfn(const u_char *un, u_char dn[12], size_t unlen, u_int gen); +int winChkName(const u_char *un, size_t unlen, struct winentry *wep, + int chksum); +int unix2winfn(const u_char *un, size_t unlen, struct winentry *wep, int cnt, + int chksum); + #endif /* !_FS_MSDOSFS_DIRENTRY_H_ */ Copied and modified: head/usr.sbin/makefs/msdos/fat.h (from r351251, head/sys/fs/msdosfs/fat.h) ============================================================================== --- head/sys/fs/msdosfs/fat.h Tue Aug 20 16:07:17 2019 (r351251, copy source) +++ head/usr.sbin/makefs/msdos/fat.h Tue Aug 20 18:20:45 2019 (r351273) @@ -82,7 +82,6 @@ #define MSDOSFSEOF(pmp, cn) ((((cn) | ~(pmp)->pm_fatmask) & CLUST_EOFS) == CLUST_EOFS) -#ifdef _KERNEL /* * These are the values for the function argument to the function * fatentry(). @@ -96,6 +95,10 @@ */ #define DE_CLEAR 1 /* Zero out the blocks allocated */ +struct buf; +struct denode; +struct msdosfsmount; + int pcbmap(struct denode *dep, u_long findcn, daddr_t *bnp, u_long *cnp, int* sp); int clusterfree(struct msdosfsmount *pmp, u_long cn, u_long *oldcnp); int clusteralloc(struct msdosfsmount *pmp, u_long start, u_long count, u_long fillwith, u_long *retcluster, u_long *got); @@ -103,7 +106,5 @@ int fatentry(int function, struct msdosfsmount *pmp, u int freeclusterchain(struct msdosfsmount *pmp, u_long startchain); int extendfile(struct denode *dep, u_long count, struct buf **bpp, u_long *ncp, int flags); void fc_purge(struct denode *dep, u_int frcn); -int markvoldirty(struct msdosfsmount *pmp, int dirty); -#endif /* _KERNEL */ #endif /* !_FS_MSDOSFS_FAT_H_ */ Added: head/usr.sbin/makefs/msdos/msdosfs_conv.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/makefs/msdos/msdosfs_conv.c Tue Aug 20 18:20:45 2019 (r351273) @@ -0,0 +1,508 @@ +/*- + * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. + * Copyright (C) 1994, 1995, 1997 TooLs GmbH. + * All rights reserved. + * Original code by Paul Popelka (paulp@uts.amdahl.com) (see below). + * + * 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 TooLs GmbH. + * 4. The name of TooLs GmbH may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``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 TOOLS GMBH 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. + */ +/* + * Written by Paul Popelka (paulp@uts.amdahl.com) + * + * You can do anything you want with this software, just don't say you wrote + * it, and don't remove this notice. + * + * This software is provided "as is". + * + * The author supplies this software to be publicly redistributed on the + * understanding that the author is not responsible for the correct + * functioning of this software in any circumstances and is not liable for + * any damages caused by this software. + * + * October 1992 + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#include +#include +#include + +#include + +#include "makefs.h" +#include "msdos.h" + +#include "msdos/denode.h" +#include "msdos/direntry.h" +#include "msdos/fat.h" +#include "msdos/msdosfsmount.h" + +static int char8ucs2str(const uint8_t *in, int n, uint16_t *out, int m); +static void ucs2pad(uint16_t *buf, int len, int size); +static int char8match(uint16_t *w1, uint16_t *w2, int n); + +static const u_char unix2dos[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, /* 00-07 */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 08-0f */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 10-17 */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 18-1f */ + 0, '!', 0, '#', '$', '%', '&', '\'', /* 20-27 */ + '(', ')', 0, '+', 0, '-', 0, 0, /* 28-2f */ + '0', '1', '2', '3', '4', '5', '6', '7', /* 30-37 */ + '8', '9', 0, 0, 0, 0, 0, 0, /* 38-3f */ + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', /* 40-47 */ + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', /* 48-4f */ + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', /* 50-57 */ + 'X', 'Y', 'Z', 0, 0, 0, '^', '_', /* 58-5f */ + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', /* 60-67 */ + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', /* 68-6f */ + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', /* 70-77 */ + 'X', 'Y', 'Z', '{', 0, '}', '~', 0, /* 78-7f */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 80-87 */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 88-8f */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 90-97 */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 98-9f */ + 0, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, /* a0-a7 */ + 0xf9, 0xb8, 0xa6, 0xae, 0xaa, 0xf0, 0xa9, 0xee, /* a8-af */ + 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, /* b0-b7 */ + 0xf7, 0xfb, 0xa7, 0xaf, 0xac, 0xab, 0xf3, 0xa8, /* b8-bf */ + 0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, /* c0-c7 */ + 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, /* c8-cf */ + 0xd1, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0x9e, /* d0-d7 */ + 0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0xed, 0xe8, 0xe1, /* d8-df */ + 0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, /* e0-e7 */ + 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, /* e8-ef */ + 0xd1, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0xf6, /* f0-f7 */ + 0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0xed, 0xe8, 0x98, /* f8-ff */ +}; + +static const u_char u2l[256] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 00-07 */ + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 08-0f */ + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 10-17 */ + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, /* 18-1f */ + ' ', '!', '"', '#', '$', '%', '&', '\'', /* 20-27 */ + '(', ')', '*', '+', ',', '-', '.', '/', /* 28-2f */ + '0', '1', '2', '3', '4', '5', '6', '7', /* 30-37 */ + '8', '9', ':', ';', '<', '=', '>', '?', /* 38-3f */ + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', /* 40-47 */ + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', /* 48-4f */ + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', /* 50-57 */ + 'x', 'y', 'z', '[', '\\', ']', '^', '_', /* 58-5f */ + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', /* 60-67 */ + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', /* 68-6f */ + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', /* 70-77 */ + 'x', 'y', 'z', '{', '|', '}', '~', 0x7f, /* 78-7f */ + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 80-87 */ + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 88-8f */ + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 90-97 */ + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 98-9f */ + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* a0-a7 */ + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* a8-af */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* b0-b7 */ + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* b8-bf */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* c0-c7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* c8-cf */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xd7, /* d0-d7 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, /* d8-df */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* e0-e7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* e8-ef */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* f0-f7 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* f8-ff */ +}; + +/* + * Determine the number of slots necessary for Win95 names + */ +int +winSlotCnt(const u_char *un, size_t unlen) +{ + const u_char *cp; + + /* + * Drop trailing blanks and dots + */ + for (cp = un + unlen; unlen > 0; unlen--) + if (*--cp != ' ' && *cp != '.') + break; + + return howmany(unlen, WIN_CHARS); +} + +/* + * Compare our filename to the one in the Win95 entry + * Returns the checksum or -1 if no match + */ +int +winChkName(const u_char *un, size_t unlen, struct winentry *wep, int chksum) +{ + uint16_t wn[WIN_MAXLEN], *p; + uint16_t buf[WIN_CHARS]; + int i, len; + + /* + * First compare checksums + */ + if (wep->weCnt & WIN_LAST) + chksum = wep->weChksum; + else if (chksum != wep->weChksum) + chksum = -1; + if (chksum == -1) + return -1; + + /* + * Offset of this entry + */ + i = ((wep->weCnt & WIN_CNT) - 1) * WIN_CHARS; + + /* + * Translate UNIX name to ucs-2 + */ + len = char8ucs2str(un, unlen, wn, WIN_MAXLEN); + ucs2pad(wn, len, WIN_MAXLEN); + + if (i >= len + 1) + return -1; + if ((wep->weCnt & WIN_LAST) && (len - i > WIN_CHARS)) + return -1; + + /* + * Fetch name segment from directory entry + */ + p = &buf[0]; + memcpy(p, wep->wePart1, sizeof(wep->wePart1)); + p += sizeof(wep->wePart1) / sizeof(*p); + memcpy(p, wep->wePart2, sizeof(wep->wePart2)); + p += sizeof(wep->wePart2) / sizeof(*p); + memcpy(p, wep->wePart3, sizeof(wep->wePart3)); + + /* + * And compare name segment + */ + if (!(char8match(&wn[i], buf, WIN_CHARS))) + return -1; + + return chksum; +} + +/* + * Compute the checksum of a DOS filename for Win95 use + */ +uint8_t +winChksum(uint8_t *name) +{ + int i; + uint8_t s; + + for (s = 0, i = 11; --i >= 0; s += *name++) + s = (s << 7) | (s >> 1); + return s; +} + +/* + * Create a Win95 long name directory entry + * Note: assumes that the filename is valid, + * i.e. doesn't consist solely of blanks and dots + */ +int +unix2winfn(const u_char *un, size_t unlen, struct winentry *wep, int cnt, + int chksum) +{ + uint16_t wn[WIN_MAXLEN], *p; + int i, len; + const u_char *cp; + + /* + * Drop trailing blanks and dots + */ + for (cp = un + unlen; unlen > 0; unlen--) + if (*--cp != ' ' && *cp != '.') + break; + + /* + * Offset of this entry + */ + i = (cnt - 1) * WIN_CHARS; + + /* + * Translate UNIX name to ucs-2 + */ + len = char8ucs2str(un, unlen, wn, WIN_MAXLEN); + ucs2pad(wn, len, WIN_MAXLEN); + + /* + * Initialize winentry to some useful default + */ + memset(wep, 0xff, sizeof(*wep)); + wep->weCnt = cnt; + wep->weAttributes = ATTR_WIN95; + wep->weReserved1 = 0; + wep->weChksum = chksum; + wep->weReserved2 = 0; + + /* + * Store name segment into directory entry + */ + p = &wn[i]; + memcpy(wep->wePart1, p, sizeof(wep->wePart1)); + p += sizeof(wep->wePart1) / sizeof(*p); + memcpy(wep->wePart2, p, sizeof(wep->wePart2)); + p += sizeof(wep->wePart2) / sizeof(*p); + memcpy(wep->wePart3, p, sizeof(wep->wePart3)); + + if (len > i + WIN_CHARS) + return 1; + + wep->weCnt |= WIN_LAST; + return 0; +} + +/* + * Convert a unix filename to a DOS filename according to Win95 rules. + * If applicable and gen is not 0, it is inserted into the converted + * filename as a generation number. + * Returns + * 0 if name couldn't be converted + * 1 if the converted name is the same as the original + * (no long filename entry necessary for Win95) + * 2 if conversion was successful + * 3 if conversion was successful and generation number was inserted + */ +int +unix2dosfn(const u_char *un, u_char dn[12], size_t unlen, u_int gen) +{ + int i, j, l; + int conv = 1; + const u_char *cp, *dp, *dp1; + u_char gentext[6], *wcp; + int shortlen; + + /* + * Fill the dos filename string with blanks. These are DOS's pad + * characters. + */ + for (i = 0; i < 11; i++) + dn[i] = ' '; + dn[11] = 0; + + /* + * The filenames "." and ".." are handled specially, since they + * don't follow dos filename rules. + */ + if (un[0] == '.' && unlen == 1) { + dn[0] = '.'; + return gen <= 1; + } + if (un[0] == '.' && un[1] == '.' && unlen == 2) { + dn[0] = '.'; + dn[1] = '.'; + return gen <= 1; + } + + /* + * Filenames with only blanks and dots are not allowed! + */ + for (cp = un, i = unlen; --i >= 0; cp++) + if (*cp != ' ' && *cp != '.') + break; + if (i < 0) + return 0; + + /* + * Now find the extension + * Note: dot as first char doesn't start extension + * and trailing dots and blanks are ignored + */ + dp = dp1 = 0; + for (cp = un + 1, i = unlen - 1; --i >= 0;) { + switch (*cp++) { + case '.': + if (!dp1) + dp1 = cp; + break; + case ' ': + break; + default: + if (dp1) + dp = dp1; + dp1 = 0; + break; + } + } + + /* + * Now convert it + */ + if (dp) { + if (dp1) + l = dp1 - dp; + else + l = unlen - (dp - un); + for (i = 0, j = 8; i < l && j < 11; i++, j++) { + if (dp[i] != (dn[j] = unix2dos[dp[i]]) + && conv != 3) + conv = 2; + if (!dn[j]) { + conv = 3; + dn[j--] = ' '; + } + } + if (i < l) + conv = 3; + dp--; + } else { + for (dp = cp; *--dp == ' ' || *dp == '.';); + dp++; + } + + shortlen = (dp - un) <= 8; + + /* + * Now convert the rest of the name + */ + for (i = j = 0; un < dp && j < 8; i++, j++, un++) { + if ((*un == ' ') && shortlen) + dn[j] = ' '; + else + dn[j] = unix2dos[*un]; + if ((*un != dn[j]) + && conv != 3) + conv = 2; + if (!dn[j]) { + conv = 3; + dn[j--] = ' '; + } + } + if (un < dp) + conv = 3; + /* + * If we didn't have any chars in filename, + * generate a default + */ + if (!j) + dn[0] = '_'; + + /* + * The first character cannot be E5, + * because that means a deleted entry + */ + if (dn[0] == 0xe5) + dn[0] = SLOT_E5; + + /* + * If there wasn't any char dropped, + * there is no place for generation numbers + */ + if (conv != 3) { + if (gen > 1) + return 0; + return conv; + } + + /* + * Now insert the generation number into the filename part + */ + for (wcp = gentext + sizeof(gentext); wcp > gentext && gen; gen /= 10) + *--wcp = gen % 10 + '0'; + if (gen) + return 0; + for (i = 8; dn[--i] == ' ';); + i++; + if (gentext + sizeof(gentext) - wcp + 1 > 8 - i) + i = 8 - (gentext + sizeof(gentext) - wcp + 1); + dn[i++] = '~'; + while (wcp < gentext + sizeof(gentext)) + dn[i++] = *wcp++; + return 3; +} + +/* + * Convert 8bit character string into UCS-2 string + * return total number of output chacters + */ +static int +char8ucs2str(const uint8_t *in, int n, uint16_t *out, int m) +{ + uint16_t *p; + + p = out; + while (n > 0 && in[0] != 0) { + if (m < 1) + break; + if (p) + p[0] = htole16(in[0]); + p += 1; + m -= 1; + in += 1; + n -= 1; + } + + return p - out; +} + +static void +ucs2pad(uint16_t *buf, int len, int size) +{ + + if (len < size-1) + buf[len++] = 0x0000; + while (len < size) + buf[len++] = 0xffff; +} + +/* + * Compare two 8bit char conversions case-insensitive + * + * uses the DOS case folding table + */ +static int +char8match(uint16_t *w1, uint16_t *w2, int n) +{ + uint16_t u1, u2; + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Aug 20 19:31:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5BAF2D9D8A; Tue, 20 Aug 2019 19:31:12 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cgrc2Vw3z3JSb; Tue, 20 Aug 2019 19:31:12 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1D5288004; Tue, 20 Aug 2019 19:31:12 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KJVCxS026275; Tue, 20 Aug 2019 19:31:12 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KJVCbd026274; Tue, 20 Aug 2019 19:31:12 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <201908201931.x7KJVCbd026274@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Tue, 20 Aug 2019 19:31:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351274 - head/stand/efi/libefi X-SVN-Group: head X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: head/stand/efi/libefi X-SVN-Commit-Revision: 351274 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 19:31:12 -0000 Author: tsoome Date: Tue Aug 20 19:31:11 2019 New Revision: 351274 URL: https://svnweb.freebsd.org/changeset/base/351274 Log: loader.efi: efipart should be more careful about constructing block device lists The cd handles should be collected as list of partitions. Some systems also provide base name for block device (like PciRoot(0x0)/Pci(0x5,0x0)), we need to be careful about those. To make out life a bit easier, we prepare not just an array of handles, but we allocate pdinfo struct for each handle and devicepath, then we can simplify our work to sort the devices. Differential Revision: https://reviews.freebsd.org/D21187 Modified: head/stand/efi/libefi/efipart.c Modified: head/stand/efi/libefi/efipart.c ============================================================================== --- head/stand/efi/libefi/efipart.c Tue Aug 20 18:20:45 2019 (r351273) +++ head/stand/efi/libefi/efipart.c Tue Aug 20 19:31:11 2019 (r351274) @@ -100,12 +100,18 @@ struct devsw efipart_hddev = { .dv_cleanup = NULL }; -static pdinfo_list_t fdinfo; -static pdinfo_list_t cdinfo; -static pdinfo_list_t hdinfo; +static pdinfo_list_t fdinfo = STAILQ_HEAD_INITIALIZER(fdinfo); +static pdinfo_list_t cdinfo = STAILQ_HEAD_INITIALIZER(cdinfo); +static pdinfo_list_t hdinfo = STAILQ_HEAD_INITIALIZER(hdinfo); -static EFI_HANDLE *efipart_handles = NULL; -static UINTN efipart_nhandles = 0; +/* + * efipart_inithandles() is used to build up the pdinfo list from + * block device handles. Then each devsw init callback is used to + * pick items from pdinfo and move to proper device list. + * In ideal world, we should end up with empty pdinfo once all + * devsw initializers are called. + */ +static pdinfo_list_t pdinfo = STAILQ_HEAD_INITIALIZER(pdinfo); pdinfo_list_t * efiblk_get_pdinfo_list(struct devsw *dev) @@ -141,9 +147,11 @@ pdinfo_t * efiblk_get_pdinfo_by_device_path(EFI_DEVICE_PATH *path) { EFI_HANDLE h; + EFI_STATUS status; + EFI_DEVICE_PATH *devp = path; - h = efi_devpath_to_handle(path, efipart_handles, efipart_nhandles); - if (h == NULL) + status = BS->LocateDevicePath(&blkio_guid, &devp, &h); + if (EFI_ERROR(status)) return (NULL); return (efiblk_get_pdinfo_by_handle(h)); } @@ -174,6 +182,10 @@ efiblk_get_pdinfo_by_handle(EFI_HANDLE h) STAILQ_FOREACH(dp, &cdinfo, pd_link) { if (same_handle(dp, h)) return (dp); + STAILQ_FOREACH(pp, &dp->pd_part, pd_link) { + if (same_handle(pp, h)) + return (pp); + } } STAILQ_FOREACH(dp, &fdinfo, pd_link) { if (same_handle(dp, h)) @@ -197,15 +209,16 @@ efiblk_pdinfo_count(pdinfo_list_t *pdi) int efipart_inithandles(void) { + unsigned i, nin; UINTN sz; EFI_HANDLE *hin; + EFI_DEVICE_PATH *devpath; + EFI_BLOCK_IO *blkio; EFI_STATUS status; + pdinfo_t *pd; - if (efipart_nhandles != 0) { - free(efipart_handles); - efipart_handles = NULL; - efipart_nhandles = 0; - } + if (!STAILQ_EMPTY(&pdinfo)) + return (0); sz = 0; hin = NULL; @@ -220,12 +233,51 @@ efipart_inithandles(void) if (EFI_ERROR(status)) return (efi_status_to_errno(status)); - efipart_handles = hin; - efipart_nhandles = sz / sizeof(*hin); + nin = sz / sizeof(*hin); #ifdef EFIPART_DEBUG - printf("%s: Got %d BLOCK IO MEDIA handle(s)\n", __func__, - efipart_nhandles); + printf("%s: Got %d BLOCK IO MEDIA handle(s)\n", __func__, nin); #endif + + for (i = 0; i < nin; i++) { + /* + * Get devpath and open protocol. + * We should not get errors here + */ + if ((devpath = efi_lookup_devpath(hin[i])) == NULL) + continue; + + status = OpenProtocolByHandle(hin[i], &blkio_guid, + (void **)&blkio); + if (EFI_ERROR(status)) { + printf("error %lu\n", EFI_ERROR_CODE(status)); + continue; + } + + /* + * We assume the block size 512 or greater power of 2. + * iPXE is known to insert stub BLOCK IO device with + * BlockSize 1. + */ + if (blkio->Media->BlockSize < 512 || + !powerof2(blkio->Media->BlockSize)) { + continue; + } + + /* This is bad. */ + if ((pd = calloc(1, sizeof(*pd))) == NULL) { + printf("efipart_inithandles: Out of memory.\n"); + free(hin); + return (ENOMEM); + } + STAILQ_INIT(&pd->pd_part); + + pd->pd_handle = hin[i]; + pd->pd_devpath = devpath; + pd->pd_blkio = blkio; + STAILQ_INSERT_TAIL(&pdinfo, pd, pd_link); + } + + free(hin); return (0); } @@ -246,134 +298,49 @@ efipart_floppy(EFI_DEVICE_PATH *node) return (NULL); } -/* - * Determine if the provided device path is hdd. - * - * There really is no simple fool proof way to classify the devices. - * Since we do build three lists of devices - floppy, cd and hdd, we - * will try to see if the device is floppy or cd, and list anything else - * as hdd. - */ -static bool -efipart_hdd(EFI_DEVICE_PATH *dp) +static pdinfo_t * +efipart_find_parent(pdinfo_list_t *pdi, EFI_DEVICE_PATH *devpath) { - unsigned i; - EFI_DEVICE_PATH *devpath, *node; - EFI_BLOCK_IO *blkio; - EFI_STATUS status; + pdinfo_t *pd; - if (dp == NULL) - return (false); - - if ((node = efi_devpath_last_node(dp)) == NULL) - return (false); - - if (efipart_floppy(node) != NULL) - return (false); - - /* - * Test every EFI BLOCK IO handle to make sure dp is not device path - * for CD/DVD. - */ - for (i = 0; i < efipart_nhandles; i++) { - devpath = efi_lookup_devpath(efipart_handles[i]); - if (devpath == NULL) - return (false); - - /* Only continue testing when dp is prefix in devpath. */ - if (!efi_devpath_is_prefix(dp, devpath)) - continue; - - /* - * The device path has to have last node describing the - * device, or we can not test the type. - */ - if ((node = efi_devpath_last_node(devpath)) == NULL) - return (false); - - if (DevicePathType(node) == MEDIA_DEVICE_PATH && - DevicePathSubType(node) == MEDIA_CDROM_DP) { - return (false); - } - - /* Make sure we do have the media. */ - status = OpenProtocolByHandle(efipart_handles[i], &blkio_guid, - (void **)&blkio); - if (EFI_ERROR(status)) - return (false); - - /* USB or SATA cd without the media. */ - if (blkio->Media->RemovableMedia && - !blkio->Media->MediaPresent) { - return (false); - } - - /* - * We assume the block size 512 or greater power of 2. - * iPXE is known to insert stub BLOCK IO device with - * BlockSize 1. - */ - if (blkio->Media->BlockSize < 512 || - !powerof2(blkio->Media->BlockSize)) { - return (false); - } + STAILQ_FOREACH(pd, pdi, pd_link) { + if (efi_devpath_is_prefix(pd->pd_devpath, devpath)) + return (pd); } - return (true); + return (NULL); } -/* - * Add or update entries with new handle data. - */ static int -efipart_fdinfo_add(EFI_HANDLE handle, uint32_t uid, EFI_DEVICE_PATH *devpath) +efipart_initfd(void) { - pdinfo_t *fd; - - fd = calloc(1, sizeof(pdinfo_t)); - if (fd == NULL) { - printf("Failed to register floppy %d, out of memory\n", uid); - return (ENOMEM); - } - STAILQ_INIT(&fd->pd_part); - - fd->pd_unit = uid; - fd->pd_handle = handle; - fd->pd_devpath = devpath; - fd->pd_parent = NULL; - fd->pd_devsw = &efipart_fddev; - STAILQ_INSERT_TAIL(&fdinfo, fd, pd_link); - return (0); -} - -static void -efipart_updatefd(void) -{ - EFI_DEVICE_PATH *devpath, *node; + EFI_DEVICE_PATH *node; ACPI_HID_DEVICE_PATH *acpi; - int i; + pdinfo_t *parent, *fd; - for (i = 0; i < efipart_nhandles; i++) { - devpath = efi_lookup_devpath(efipart_handles[i]); - if (devpath == NULL) +restart: + STAILQ_FOREACH(fd, &pdinfo, pd_link) { + if ((node = efi_devpath_last_node(fd->pd_devpath)) == NULL) continue; - if ((node = efi_devpath_last_node(devpath)) == NULL) + if ((acpi = efipart_floppy(node)) == NULL) continue; - if ((acpi = efipart_floppy(node)) != NULL) { - efipart_fdinfo_add(efipart_handles[i], acpi->UID, - devpath); + + STAILQ_REMOVE(&pdinfo, fd, pdinfo, pd_link); + parent = efipart_find_parent(&pdinfo, fd->pd_devpath); + if (parent != NULL) { + STAILQ_REMOVE(&pdinfo, parent, pdinfo, pd_link); + parent->pd_alias = fd->pd_handle; + parent->pd_unit = acpi->UID; + free(fd); + fd = parent; + } else { + fd->pd_unit = acpi->UID; } + fd->pd_devsw = &efipart_fddev; + STAILQ_INSERT_TAIL(&fdinfo, fd, pd_link); + goto restart; } -} -static int -efipart_initfd(void) -{ - - STAILQ_INIT(&fdinfo); - - efipart_updatefd(); - bcache_add_dev(efiblk_pdinfo_count(&fdinfo)); return (0); } @@ -381,68 +348,90 @@ efipart_initfd(void) /* * Add or update entries with new handle data. */ -static int -efipart_cdinfo_add(EFI_HANDLE handle, EFI_HANDLE alias, - EFI_DEVICE_PATH *devpath) +static void +efipart_cdinfo_add(pdinfo_t *cd) { - int unit; - pdinfo_t *cd; - pdinfo_t *pd; + pdinfo_t *pd, *last; - unit = 0; STAILQ_FOREACH(pd, &cdinfo, pd_link) { - if (efi_devpath_match(pd->pd_devpath, devpath) == true) { - pd->pd_handle = handle; - pd->pd_alias = alias; - return (0); + if (efi_devpath_is_prefix(pd->pd_devpath, cd->pd_devpath)) { + last = STAILQ_LAST(&pd->pd_part, pdinfo, pd_link); + if (last != NULL) + cd->pd_unit = last->pd_unit + 1; + else + cd->pd_unit = 0; + cd->pd_parent = pd; + cd->pd_devsw = &efipart_cddev; + STAILQ_INSERT_TAIL(&pd->pd_part, cd, pd_link); + return; } - unit++; } - cd = calloc(1, sizeof(pdinfo_t)); - if (cd == NULL) { - printf("Failed to add cd %d, out of memory\n", unit); - return (ENOMEM); - } - STAILQ_INIT(&cd->pd_part); + last = STAILQ_LAST(&cdinfo, pdinfo, pd_link); + if (last != NULL) + cd->pd_unit = last->pd_unit + 1; + else + cd->pd_unit = 0; - cd->pd_handle = handle; - cd->pd_unit = unit; - cd->pd_alias = alias; - cd->pd_devpath = devpath; cd->pd_parent = NULL; cd->pd_devsw = &efipart_cddev; STAILQ_INSERT_TAIL(&cdinfo, cd, pd_link); - return (0); } +static bool +efipart_testcd(EFI_DEVICE_PATH *node, EFI_BLOCK_IO *blkio) +{ + if (DevicePathType(node) == MEDIA_DEVICE_PATH && + DevicePathSubType(node) == MEDIA_CDROM_DP) { + return (true); + } + + /* cd drive without the media. */ + if (blkio->Media->RemovableMedia && + !blkio->Media->MediaPresent) { + return (true); + } + + return (false); +} + static void efipart_updatecd(void) { - int i; - EFI_DEVICE_PATH *devpath, *devpathcpy, *tmpdevpath, *node; - EFI_HANDLE handle; - EFI_BLOCK_IO *blkio; + EFI_DEVICE_PATH *devpath, *node; EFI_STATUS status; + pdinfo_t *parent, *cd; - for (i = 0; i < efipart_nhandles; i++) { - devpath = efi_lookup_devpath(efipart_handles[i]); - if (devpath == NULL) +restart: + STAILQ_FOREACH(cd, &pdinfo, pd_link) { + if ((node = efi_devpath_last_node(cd->pd_devpath)) == NULL) continue; - if ((node = efi_devpath_last_node(devpath)) == NULL) - continue; - if (efipart_floppy(node) != NULL) continue; - if (efipart_hdd(devpath)) - continue; + /* Is parent of this device already registered? */ + parent = efipart_find_parent(&cdinfo, cd->pd_devpath); + if (parent != NULL) { + STAILQ_REMOVE(&pdinfo, cd, pdinfo, pd_link); + efipart_cdinfo_add(cd); + goto restart; + } - status = OpenProtocolByHandle(efipart_handles[i], &blkio_guid, - (void **)&blkio); - if (EFI_ERROR(status)) + if (!efipart_testcd(node, cd->pd_blkio)) continue; + + /* Find parent and unlink both parent and cd from pdinfo */ + STAILQ_REMOVE(&pdinfo, cd, pdinfo, pd_link); + parent = efipart_find_parent(&pdinfo, cd->pd_devpath); + if (parent != NULL) { + STAILQ_REMOVE(&pdinfo, parent, pdinfo, pd_link); + efipart_cdinfo_add(parent); + } + + if (parent == NULL) + parent = efipart_find_parent(&cdinfo, cd->pd_devpath); + /* * If we come across a logical partition of subtype CDROM * it doesn't refer to the CD filesystem itself, but rather @@ -451,132 +440,79 @@ efipart_updatecd(void) * that will be the CD filesystem. */ if (DevicePathType(node) == MEDIA_DEVICE_PATH && - DevicePathSubType(node) == MEDIA_CDROM_DP) { - devpathcpy = efi_devpath_trim(devpath); - if (devpathcpy == NULL) - continue; - tmpdevpath = devpathcpy; - status = BS->LocateDevicePath(&blkio_guid, &tmpdevpath, - &handle); - free(devpathcpy); - if (EFI_ERROR(status)) - continue; - devpath = efi_lookup_devpath(handle); - efipart_cdinfo_add(handle, efipart_handles[i], - devpath); - continue; - } + DevicePathSubType(node) == MEDIA_CDROM_DP && + parent == NULL) { + parent = calloc(1, sizeof(*parent)); + if (parent == NULL) { + printf("efipart_updatecd: out of memory\n"); + /* this device is lost but try again. */ + free(cd); + goto restart; + } - if (DevicePathType(node) == MESSAGING_DEVICE_PATH && - DevicePathSubType(node) == MSG_ATAPI_DP) { - efipart_cdinfo_add(efipart_handles[i], NULL, - devpath); - continue; + devpath = efi_devpath_trim(cd->pd_devpath); + if (devpath == NULL) { + printf("efipart_updatecd: out of memory\n"); + /* this device is lost but try again. */ + free(parent); + free(cd); + goto restart; + } + parent->pd_devpath = devpath; + status = BS->LocateDevicePath(&blkio_guid, + &parent->pd_devpath, &parent->pd_handle); + free(devpath); + if (EFI_ERROR(status)) { + printf("efipart_updatecd: error %lu\n", + EFI_ERROR_CODE(status)); + free(parent); + free(cd); + goto restart; + } + parent->pd_devpath = + efi_lookup_devpath(parent->pd_handle); + efipart_cdinfo_add(parent); } - /* USB or SATA cd without the media. */ - if (blkio->Media->RemovableMedia && - !blkio->Media->MediaPresent) { - efipart_cdinfo_add(efipart_handles[i], NULL, - devpath); - } + efipart_cdinfo_add(cd); + goto restart; } } static int efipart_initcd(void) { - - STAILQ_INIT(&cdinfo); - efipart_updatecd(); bcache_add_dev(efiblk_pdinfo_count(&cdinfo)); return (0); } -static int -efipart_hdinfo_add(EFI_HANDLE disk_handle, EFI_HANDLE part_handle) +static void +efipart_hdinfo_add(pdinfo_t *hd, HARDDRIVE_DEVICE_PATH *node) { - EFI_DEVICE_PATH *disk_devpath, *part_devpath; - HARDDRIVE_DEVICE_PATH *node; - int unit; - pdinfo_t *hd, *pd, *last; + pdinfo_t *pd, *last; - disk_devpath = efi_lookup_devpath(disk_handle); - if (disk_devpath == NULL) - return (ENOENT); - - if (part_handle != NULL) { - part_devpath = efi_lookup_devpath(part_handle); - if (part_devpath == NULL) - return (ENOENT); - node = (HARDDRIVE_DEVICE_PATH *) - efi_devpath_last_node(part_devpath); - if (node == NULL) - return (ENOENT); /* This should not happen. */ - } else { - part_devpath = NULL; - node = NULL; - } - - pd = calloc(1, sizeof(pdinfo_t)); - if (pd == NULL) { - printf("Failed to add disk, out of memory\n"); - return (ENOMEM); - } - STAILQ_INIT(&pd->pd_part); - - STAILQ_FOREACH(hd, &hdinfo, pd_link) { - if (efi_devpath_match(hd->pd_devpath, disk_devpath) == true) { - if (part_devpath == NULL) - return (0); - + STAILQ_FOREACH(pd, &hdinfo, pd_link) { + if (efi_devpath_is_prefix(pd->pd_devpath, hd->pd_devpath)) { /* Add the partition. */ - pd->pd_handle = part_handle; - pd->pd_unit = node->PartitionNumber; - pd->pd_devpath = part_devpath; - pd->pd_parent = hd; - pd->pd_devsw = &efipart_hddev; - STAILQ_INSERT_TAIL(&hd->pd_part, pd, pd_link); - return (0); + hd->pd_unit = node->PartitionNumber; + hd->pd_parent = pd; + hd->pd_devsw = &efipart_hddev; + STAILQ_INSERT_TAIL(&pd->pd_part, hd, pd_link); + return; } } last = STAILQ_LAST(&hdinfo, pdinfo, pd_link); if (last != NULL) - unit = last->pd_unit + 1; + hd->pd_unit = last->pd_unit + 1; else - unit = 0; + hd->pd_unit = 0; /* Add the disk. */ - hd = pd; - hd->pd_handle = disk_handle; - hd->pd_unit = unit; - hd->pd_devpath = disk_devpath; - hd->pd_parent = NULL; hd->pd_devsw = &efipart_hddev; STAILQ_INSERT_TAIL(&hdinfo, hd, pd_link); - - if (part_devpath == NULL) - return (0); - - pd = calloc(1, sizeof(pdinfo_t)); - if (pd == NULL) { - printf("Failed to add partition, out of memory\n"); - return (ENOMEM); - } - STAILQ_INIT(&pd->pd_part); - - /* Add the partition. */ - pd->pd_handle = part_handle; - pd->pd_unit = node->PartitionNumber; - pd->pd_devpath = part_devpath; - pd->pd_parent = hd; - pd->pd_devsw = &efipart_hddev; - STAILQ_INSERT_TAIL(&hd->pd_part, pd, pd_link); - - return (0); } /* @@ -585,40 +521,25 @@ efipart_hdinfo_add(EFI_HANDLE disk_handle, EFI_HANDLE * of typeN:M, where type is interface type, N is disk id * and M is partition id. */ -static int -efipart_hdinfo_add_filepath(EFI_HANDLE disk_handle) +static void +efipart_hdinfo_add_filepath(pdinfo_t *hd, FILEPATH_DEVICE_PATH *node) { - EFI_DEVICE_PATH *devpath; - FILEPATH_DEVICE_PATH *node; char *pathname, *p; - int unit, len; - pdinfo_t *pd, *last; + int len; + pdinfo_t *last; - /* First collect and verify all the data */ - if ((devpath = efi_lookup_devpath(disk_handle)) == NULL) - return (ENOENT); - node = (FILEPATH_DEVICE_PATH *)efi_devpath_last_node(devpath); - if (node == NULL) - return (ENOENT); /* This should not happen. */ - - pd = calloc(1, sizeof(pdinfo_t)); - if (pd == NULL) { - printf("Failed to add disk, out of memory\n"); - return (ENOMEM); - } - STAILQ_INIT(&pd->pd_part); last = STAILQ_LAST(&hdinfo, pdinfo, pd_link); if (last != NULL) - unit = last->pd_unit + 1; + hd->pd_unit = last->pd_unit + 1; else - unit = 0; + hd->pd_unit = 0; /* FILEPATH_DEVICE_PATH has 0 terminated string */ len = ucs2len(node->PathName); if ((pathname = malloc(len + 1)) == NULL) { printf("Failed to add disk, out of memory\n"); - free(pd); - return (ENOMEM); + free(hd); + return; } cpy16to8(node->PathName, pathname, len + 1); p = strchr(pathname, ':'); @@ -629,23 +550,19 @@ efipart_hdinfo_add_filepath(EFI_HANDLE disk_handle) * false, this code would need update. */ if (p == NULL) { /* no colon, add the disk */ - pd->pd_handle = disk_handle; - pd->pd_unit = unit; - pd->pd_devpath = devpath; - pd->pd_parent = NULL; - pd->pd_devsw = &efipart_hddev; - STAILQ_INSERT_TAIL(&hdinfo, pd, pd_link); + hd->pd_devsw = &efipart_hddev; + STAILQ_INSERT_TAIL(&hdinfo, hd, pd_link); free(pathname); - return (0); + return; } p++; /* skip the colon */ errno = 0; - unit = (int)strtol(p, NULL, 0); + hd->pd_unit = (int)strtol(p, NULL, 0); if (errno != 0) { printf("Bad unit number for partition \"%s\"\n", pathname); free(pathname); - free(pd); - return (EUNIT); + free(hd); + return; } /* @@ -657,80 +574,98 @@ efipart_hdinfo_add_filepath(EFI_HANDLE disk_handle) if (last == NULL) { printf("BUG: No disk for partition \"%s\"\n", pathname); free(pathname); - free(pd); - return (EINVAL); + free(hd); + return; } /* Add the partition. */ - pd->pd_handle = disk_handle; - pd->pd_unit = unit; - pd->pd_devpath = devpath; - pd->pd_parent = last; - pd->pd_devsw = &efipart_hddev; - STAILQ_INSERT_TAIL(&last->pd_part, pd, pd_link); + hd->pd_parent = last; + hd->pd_devsw = &efipart_hddev; + STAILQ_INSERT_TAIL(&last->pd_part, hd, pd_link); free(pathname); - return (0); } static void efipart_updatehd(void) { - int i; - EFI_DEVICE_PATH *devpath, *devpathcpy, *tmpdevpath, *node; - EFI_HANDLE handle; - EFI_BLOCK_IO *blkio; + EFI_DEVICE_PATH *devpath, *node; EFI_STATUS status; + pdinfo_t *parent, *hd; - for (i = 0; i < efipart_nhandles; i++) { - devpath = efi_lookup_devpath(efipart_handles[i]); - if (devpath == NULL) +restart: + STAILQ_FOREACH(hd, &pdinfo, pd_link) { + if ((node = efi_devpath_last_node(hd->pd_devpath)) == NULL) continue; - if ((node = efi_devpath_last_node(devpath)) == NULL) + if (efipart_floppy(node) != NULL) continue; - if (!efipart_hdd(devpath)) + if (efipart_testcd(node, hd->pd_blkio)) continue; - status = OpenProtocolByHandle(efipart_handles[i], &blkio_guid, - (void **)&blkio); - if (EFI_ERROR(status)) - continue; + if (DevicePathType(node) == HARDWARE_DEVICE_PATH && + DevicePathSubType(node) == HW_PCI_DP) { + STAILQ_REMOVE(&pdinfo, hd, pdinfo, pd_link); + efipart_hdinfo_add(hd, NULL); + goto restart; + } if (DevicePathType(node) == MEDIA_DEVICE_PATH && DevicePathSubType(node) == MEDIA_FILEPATH_DP) { - efipart_hdinfo_add_filepath(efipart_handles[i]); - continue; + STAILQ_REMOVE(&pdinfo, hd, pdinfo, pd_link); + efipart_hdinfo_add_filepath(hd, + (FILEPATH_DEVICE_PATH *)node); + goto restart; } + STAILQ_REMOVE(&pdinfo, hd, pdinfo, pd_link); + parent = efipart_find_parent(&pdinfo, hd->pd_devpath); + if (parent != NULL) { + STAILQ_REMOVE(&pdinfo, parent, pdinfo, pd_link); + efipart_hdinfo_add(parent, NULL); + } else { + parent = efipart_find_parent(&hdinfo, hd->pd_devpath); + } + if (DevicePathType(node) == MEDIA_DEVICE_PATH && - DevicePathSubType(node) == MEDIA_HARDDRIVE_DP) { - devpathcpy = efi_devpath_trim(devpath); - if (devpathcpy == NULL) - continue; - tmpdevpath = devpathcpy; - status = BS->LocateDevicePath(&blkio_guid, &tmpdevpath, - &handle); - free(devpathcpy); - if (EFI_ERROR(status)) - continue; - /* - * We do not support nested partitions. - */ - devpathcpy = efi_lookup_devpath(handle); - if (devpathcpy == NULL) - continue; - if ((node = efi_devpath_last_node(devpathcpy)) == NULL) - continue; + DevicePathSubType(node) == MEDIA_HARDDRIVE_DP && + parent == NULL) { + parent = calloc(1, sizeof(*parent)); + if (parent == NULL) { + printf("efipart_updatehd: out of memory\n"); + /* this device is lost but try again. */ + free(hd); + goto restart; + } - if (DevicePathType(node) == MEDIA_DEVICE_PATH && - DevicePathSubType(node) == MEDIA_HARDDRIVE_DP) - continue; + devpath = efi_devpath_trim(hd->pd_devpath); + if (devpath == NULL) { + printf("efipart_updatehd: out of memory\n"); + /* this device is lost but try again. */ + free(parent); + free(hd); + goto restart; + } - efipart_hdinfo_add(handle, efipart_handles[i]); - continue; + parent->pd_devpath = devpath; + status = BS->LocateDevicePath(&blkio_guid, + &parent->pd_devpath, &parent->pd_handle); + free(devpath); + if (EFI_ERROR(status)) { + printf("efipart_updatehd: error %lu\n", + EFI_ERROR_CODE(status)); + free(parent); + free(hd); + goto restart; + } + + parent->pd_devpath = + efi_lookup_devpath(&parent->pd_handle); + + efipart_hdinfo_add(parent, NULL); } - efipart_hdinfo_add(efipart_handles[i], NULL); + efipart_hdinfo_add(hd, (HARDDRIVE_DEVICE_PATH *)node); + goto restart; } } @@ -738,8 +673,6 @@ static int efipart_inithd(void) { - STAILQ_INIT(&hdinfo); - efipart_updatehd(); bcache_add_dev(efiblk_pdinfo_count(&hdinfo)); @@ -852,7 +785,7 @@ efipart_open(struct open_file *f, ...) EFI_STATUS status; va_start(args, f); - dev = va_arg(args, struct disk_devdesc*); + dev = va_arg(args, struct disk_devdesc *); va_end(args); if (dev == NULL) return (EINVAL); @@ -1044,7 +977,7 @@ efipart_realstrategy(void *devdata, int rw, daddr_t bl char *blkbuf; size_t blkoff, blksz; int error; - size_t diskend, readstart; + uint64_t diskend, readstart; if (dev == NULL || blk < 0) return (EINVAL); @@ -1101,7 +1034,7 @@ efipart_realstrategy(void *devdata, int rw, daddr_t bl size / blkio->Media->BlockSize, buf)); /* - * The block size of the media is not a multiple of I/O. + * The buffer size is not a multiple of the media block size. */ blkbuf = malloc(blkio->Media->BlockSize); if (blkbuf == NULL) From owner-svn-src-all@freebsd.org Tue Aug 20 20:04:17 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 355B4DA664; Tue, 20 Aug 2019 20:04:17 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46ChZn0T7pz3LHs; Tue, 20 Aug 2019 20:04:17 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E60C88763; Tue, 20 Aug 2019 20:04:16 +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 x7KK4GM7049513; Tue, 20 Aug 2019 20:04:16 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KK4Ghw049512; Tue, 20 Aug 2019 20:04:16 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908202004.x7KK4Ghw049512@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 20 Aug 2019 20:04:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351275 - head/usr.sbin/makefs/msdos X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/usr.sbin/makefs/msdos X-SVN-Commit-Revision: 351275 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:04:17 -0000 Author: emaste Date: Tue Aug 20 20:04:16 2019 New Revision: 351275 URL: https://svnweb.freebsd.org/changeset/base/351275 Log: makefs: avoid "dereferencing 'void *' pointer" warnings On GCC 4.2.1 archs MFC with: r351273 Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/makefs/msdos/msdosfs_fat.c Modified: head/usr.sbin/makefs/msdos/msdosfs_fat.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_fat.c Tue Aug 20 19:31:11 2019 (r351274) +++ head/usr.sbin/makefs/msdos/msdosfs_fat.c Tue Aug 20 20:04:16 2019 (r351275) @@ -220,9 +220,9 @@ pcbmap(struct denode *dep, u_long findcn, daddr_t *bnp return (EIO); } if (FAT32(pmp)) - cn = getulong(&bp->b_data[bo]); + cn = getulong((char *)bp->b_data + bo); else - cn = getushort(&bp->b_data[bo]); + cn = getushort((char *)bp->b_data + bo); if (FAT12(pmp) && (prevcn & 1)) cn >>= 4; cn &= pmp->pm_fatmask; @@ -502,9 +502,9 @@ fatentry(int function, struct msdosfsmount *pmp, u_lon if (function & FAT_GET) { if (FAT32(pmp)) - readcn = getulong(&bp->b_data[bo]); + readcn = getulong((char *)bp->b_data + bo); else - readcn = getushort(&bp->b_data[bo]); + readcn = getushort((char *)bp->b_data + bo); if (FAT12(pmp) & (cn & 1)) readcn >>= 4; readcn &= pmp->pm_fatmask; @@ -516,7 +516,7 @@ fatentry(int function, struct msdosfsmount *pmp, u_lon if (function & FAT_SET) { switch (pmp->pm_fatmask) { case FAT12_MASK: - readcn = getushort(&bp->b_data[bo]); + readcn = getushort((char *)bp->b_data + bo); if (cn & 1) { readcn &= 0x000f; readcn |= newcontents << 4; @@ -524,20 +524,20 @@ fatentry(int function, struct msdosfsmount *pmp, u_lon readcn &= 0xf000; readcn |= newcontents & 0xfff; } - putushort(&bp->b_data[bo], readcn); + putushort((char *)bp->b_data + bo, readcn); break; case FAT16_MASK: - putushort(&bp->b_data[bo], newcontents); + putushort((char *)bp->b_data + bo, newcontents); break; case FAT32_MASK: /* * According to spec we have to retain the * high order bits of the FAT entry. */ - readcn = getulong(&bp->b_data[bo]); + readcn = getulong((char *)bp->b_data + bo); readcn &= ~FAT32_MASK; readcn |= newcontents & FAT32_MASK; - putulong(&bp->b_data[bo], readcn); + putulong((char *)bp->b_data + bo, readcn); break; } updatefats(pmp, bp, bn); @@ -587,7 +587,7 @@ fatchain(struct msdosfsmount *pmp, u_long start, u_lon newc = --count > 0 ? start : fillwith; switch (pmp->pm_fatmask) { case FAT12_MASK: - readcn = getushort(&bp->b_data[bo]); + readcn = getushort((char *)bp->b_data + bo); if (start & 1) { readcn &= 0xf000; readcn |= newc & 0xfff; @@ -595,20 +595,20 @@ fatchain(struct msdosfsmount *pmp, u_long start, u_lon readcn &= 0x000f; readcn |= newc << 4; } - putushort(&bp->b_data[bo], readcn); + putushort((char *)bp->b_data + bo, readcn); bo++; if (!(start & 1)) bo++; break; case FAT16_MASK: - putushort(&bp->b_data[bo], newc); + putushort((char *)bp->b_data + bo, newc); bo += 2; break; case FAT32_MASK: - readcn = getulong(&bp->b_data[bo]); + readcn = getulong((char *)bp->b_data + bo); readcn &= ~pmp->pm_fatmask; readcn |= newc & pmp->pm_fatmask; - putulong(&bp->b_data[bo], readcn); + putulong((char *)bp->b_data + bo, readcn); bo += 4; break; } @@ -833,7 +833,7 @@ freeclusterchain(struct msdosfsmount *pmp, u_long clus usemap_free(pmp, cluster); switch (pmp->pm_fatmask) { case FAT12_MASK: - readcn = getushort(&bp->b_data[bo]); + readcn = getushort((char *)bp->b_data + bo); if (cluster & 1) { cluster = readcn >> 4; readcn &= 0x000f; @@ -843,15 +843,15 @@ freeclusterchain(struct msdosfsmount *pmp, u_long clus readcn &= 0xf000; readcn |= MSDOSFSFREE & 0xfff; } - putushort(&bp->b_data[bo], readcn); + putushort((char *)bp->b_data + bo, readcn); break; case FAT16_MASK: - cluster = getushort(&bp->b_data[bo]); - putushort(&bp->b_data[bo], MSDOSFSFREE); + cluster = getushort((char *)bp->b_data + bo); + putushort((char *)bp->b_data + bo, MSDOSFSFREE); break; case FAT32_MASK: - cluster = getulong(&bp->b_data[bo]); - putulong(&bp->b_data[bo], + cluster = getulong((char *)bp->b_data + bo); + putulong((char *)bp->b_data + bo, (MSDOSFSFREE & FAT32_MASK) | (cluster & ~FAT32_MASK)); break; } @@ -903,9 +903,9 @@ fillinusemap(struct msdosfsmount *pmp) } } if (FAT32(pmp)) - readcn = getulong(&bp->b_data[bo]); + readcn = getulong((char *)bp->b_data + bo); else - readcn = getushort(&bp->b_data[bo]); + readcn = getushort((char *)bp->b_data + bo); if (FAT12(pmp) && (cn & 1)) readcn >>= 4; readcn &= pmp->pm_fatmask; From owner-svn-src-all@freebsd.org Tue Aug 20 20:15:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7783EDBA8C; Tue, 20 Aug 2019 20:15:33 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Chqn24Wlz3NjY; Tue, 20 Aug 2019 20:15:33 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1F914891F; Tue, 20 Aug 2019 20:15:33 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KKFWFj055923; Tue, 20 Aug 2019 20:15:32 GMT (envelope-from erj@FreeBSD.org) Received: (from erj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKFWLv055921; Tue, 20 Aug 2019 20:15:32 GMT (envelope-from erj@FreeBSD.org) Message-Id: <201908202015.x7KKFWLv055921@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: erj set sender to erj@FreeBSD.org using -f From: Eric Joyner Date: Tue, 20 Aug 2019 20:15:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351276 - stable/12/sys/net X-SVN-Group: stable-12 X-SVN-Commit-Author: erj X-SVN-Commit-Paths: stable/12/sys/net X-SVN-Commit-Revision: 351276 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:15:34 -0000 Author: erj Date: Tue Aug 20 20:15:32 2019 New Revision: 351276 URL: https://svnweb.freebsd.org/changeset/base/351276 Log: MFC various iflib fixes from head Included revisions: r347418 - iflib: use default ntxd and rxd when user value is not power of 2 r348372 - iflib: provide probe wrapper for vendor drivers r350306 - iflib: fix dangling device softc pointer r350507 - iflib: remove kobject class reference increment r350509 - iflib: Prevent kernel panic caused by loading driver with a specific interrupt configuration r351152 - iflib: add iflib_deregister to help cleanup on exit Sponsored by: Intel Corporation Modified: stable/12/sys/net/iflib.c stable/12/sys/net/iflib.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/net/iflib.c ============================================================================== --- stable/12/sys/net/iflib.c Tue Aug 20 20:04:16 2019 (r351275) +++ stable/12/sys/net/iflib.c Tue Aug 20 20:15:32 2019 (r351276) @@ -707,6 +707,7 @@ static void iflib_altq_if_start(if_t ifp); static int iflib_altq_if_transmit(if_t ifp, struct mbuf *m); #endif static int iflib_register(if_ctx_t); +static void iflib_deregister(if_ctx_t); static void iflib_init_locked(if_ctx_t ctx); static void iflib_add_device_sysctl_pre(if_ctx_t ctx); static void iflib_add_device_sysctl_post(if_ctx_t ctx); @@ -4350,6 +4351,18 @@ iflib_device_probe(device_t dev) return (ENXIO); } +int +iflib_device_probe_vendor(device_t dev) +{ + int probe; + + probe = iflib_device_probe(dev); + if (probe == BUS_PROBE_DEFAULT) + return (BUS_PROBE_VENDOR); + else + return (probe); +} + static void iflib_reset_qvalues(if_ctx_t ctx) { @@ -4360,9 +4373,6 @@ iflib_reset_qvalues(if_ctx_t ctx) scctx->isc_txrx_budget_bytes_max = IFLIB_MAX_TX_BYTES; scctx->isc_tx_qdepth = IFLIB_DEFAULT_TX_QDEPTH; - /* - * XXX sanity check that ntxd & nrxd are a power of 2 - */ if (ctx->ifc_sysctl_ntxqs != 0) scctx->isc_ntxqsets = ctx->ifc_sysctl_ntxqs; if (ctx->ifc_sysctl_nrxqs != 0) @@ -4393,6 +4403,11 @@ iflib_reset_qvalues(if_ctx_t ctx) i, scctx->isc_nrxd[i], sctx->isc_nrxd_max[i]); scctx->isc_nrxd[i] = sctx->isc_nrxd_max[i]; } + if (!powerof2(scctx->isc_nrxd[i])) { + device_printf(dev, "nrxd%d: %d is not a power of 2 - using default value of %d\n", + i, scctx->isc_nrxd[i], sctx->isc_nrxd_default[i]); + scctx->isc_nrxd[i] = sctx->isc_nrxd_default[i]; + } } for (i = 0; i < sctx->isc_ntxqs; i++) { @@ -4406,6 +4421,11 @@ iflib_reset_qvalues(if_ctx_t ctx) i, scctx->isc_ntxd[i], sctx->isc_ntxd_max[i]); scctx->isc_ntxd[i] = sctx->isc_ntxd_max[i]; } + if (!powerof2(scctx->isc_ntxd[i])) { + device_printf(dev, "ntxd%d: %d is not a power of 2 - using default value of %d\n", + i, scctx->isc_ntxd[i], sctx->isc_ntxd_default[i]); + scctx->isc_ntxd[i] = sctx->isc_ntxd_default[i]; + } } } @@ -4482,7 +4502,7 @@ iflib_device_register(device_t dev, void *sc, if_share if_softc_ctx_t scctx; kobjop_desc_t kobj_desc; kobj_method_t *kobj_method; - int err, i, msix, rid; + int err, msix, rid; uint16_t main_rxq, main_txq; ctx = malloc(sizeof(* ctx), M_IFLIB, M_WAITOK|M_ZERO); @@ -4534,23 +4554,6 @@ iflib_device_register(device_t dev, void *sc, if_share /* XXX change for per-queue sizes */ device_printf(dev, "Using %d TX descriptors and %d RX descriptors\n", scctx->isc_ntxd[main_txq], scctx->isc_nrxd[main_rxq]); - for (i = 0; i < sctx->isc_nrxqs; i++) { - if (!powerof2(scctx->isc_nrxd[i])) { - /* round down instead? */ - device_printf(dev, - "# RX descriptors must be a power of 2\n"); - err = EINVAL; - goto fail_iflib_detach; - } - } - for (i = 0; i < sctx->isc_ntxqs; i++) { - if (!powerof2(scctx->isc_ntxd[i])) { - device_printf(dev, - "# TX descriptors must be a power of 2"); - err = EINVAL; - goto fail_iflib_detach; - } - } if (scctx->isc_tx_nsegments > scctx->isc_ntxd[main_txq] / MAX_SINGLE_PACKET_FRACTION) @@ -4676,7 +4679,7 @@ iflib_device_register(device_t dev, void *sc, if_share err); goto fail_queues; } - } else { + } else if (scctx->isc_intr != IFLIB_INTR_MSIX) { rid = 0; if (scctx->isc_intr == IFLIB_INTR_MSI) { MPASS(msix == 1); @@ -4686,6 +4689,11 @@ iflib_device_register(device_t dev, void *sc, if_share device_printf(dev, "iflib_legacy_setup failed %d\n", err); goto fail_queues; } + } else { + device_printf(dev, + "Cannot use iflib with only 1 MSI-X interrupt!\n"); + err = ENODEV; + goto fail_intr_free; } ether_ifattach(ctx->ifc_ifp, ctx->ifc_mac); @@ -4725,11 +4733,13 @@ fail_intr_free: fail_queues: iflib_tx_structures_free(ctx); iflib_rx_structures_free(ctx); -fail_iflib_detach: + taskqgroup_detach(qgroup_if_config_tqg, &ctx->ifc_admin_task); IFDI_DETACH(ctx); fail_unlock: CTX_UNLOCK(ctx); + iflib_deregister(ctx); fail_ctx_free: + device_set_softc(ctx->ifc_dev, NULL); if (ctx->ifc_flags & IFC_SC_ALLOCATED) free(ctx->ifc_softc, M_IFLIB); free(ctx, M_IFLIB); @@ -4768,9 +4778,6 @@ iflib_pseudo_register(device_t dev, if_shared_ctx_t sc scctx = &ctx->ifc_softc_ctx; ifp = ctx->ifc_ifp; - /* - * XXX sanity check that ntxd & nrxd are a power of 2 - */ iflib_reset_qvalues(ctx); CTX_LOCK(ctx); if ((err = IFDI_ATTACH_PRE(ctx)) != 0) { @@ -4834,23 +4841,6 @@ iflib_pseudo_register(device_t dev, if_shared_ctx_t sc /* XXX change for per-queue sizes */ device_printf(dev, "Using %d TX descriptors and %d RX descriptors\n", scctx->isc_ntxd[main_txq], scctx->isc_nrxd[main_rxq]); - for (i = 0; i < sctx->isc_nrxqs; i++) { - if (!powerof2(scctx->isc_nrxd[i])) { - /* round down instead? */ - device_printf(dev, - "# RX descriptors must be a power of 2\n"); - err = EINVAL; - goto fail_iflib_detach; - } - } - for (i = 0; i < sctx->isc_ntxqs; i++) { - if (!powerof2(scctx->isc_ntxd[i])) { - device_printf(dev, - "# TX descriptors must be a power of 2"); - err = EINVAL; - goto fail_iflib_detach; - } - } if (scctx->isc_tx_nsegments > scctx->isc_ntxd[main_txq] / MAX_SINGLE_PACKET_FRACTION) @@ -4941,6 +4931,7 @@ fail_iflib_detach: IFDI_DETACH(ctx); fail_unlock: CTX_UNLOCK(ctx); + iflib_deregister(ctx); fail_ctx_free: free(ctx->ifc_softc, M_IFLIB); free(ctx, M_IFLIB); @@ -4957,15 +4948,7 @@ iflib_pseudo_deregister(if_ctx_t ctx) struct taskqgroup *tqg; iflib_fl_t fl; - /* Unregister VLAN events */ - if (ctx->ifc_vlan_attach_event != NULL) - EVENTHANDLER_DEREGISTER(vlan_config, ctx->ifc_vlan_attach_event); - if (ctx->ifc_vlan_detach_event != NULL) - EVENTHANDLER_DEREGISTER(vlan_unconfig, ctx->ifc_vlan_detach_event); - ether_ifdetach(ifp); - /* ether_ifdetach calls if_qflush - lock must be destroy afterwards*/ - CTX_LOCK_DESTROY(ctx); /* XXX drain any dependent tasks */ tqg = qgroup_if_io_tqg; for (txq = ctx->ifc_txqs, i = 0; i < NTXQSETS(ctx); i++, txq++) { @@ -4986,10 +4969,11 @@ iflib_pseudo_deregister(if_ctx_t ctx) if (ctx->ifc_vflr_task.gt_uniq != NULL) taskqgroup_detach(tqg, &ctx->ifc_vflr_task); - if_free(ifp); - iflib_tx_structures_free(ctx); iflib_rx_structures_free(ctx); + + iflib_deregister(ctx); + if (ctx->ifc_flags & IFC_SC_ALLOCATED) free(ctx->ifc_softc, M_IFLIB); free(ctx, M_IFLIB); @@ -5075,19 +5059,19 @@ iflib_device_deregister(if_ctx_t ctx) CTX_UNLOCK(ctx); /* ether_ifdetach calls if_qflush - lock must be destroy afterwards*/ - CTX_LOCK_DESTROY(ctx); - device_set_softc(ctx->ifc_dev, NULL); iflib_free_intr_mem(ctx); bus_generic_detach(dev); - if_free(ifp); iflib_tx_structures_free(ctx); iflib_rx_structures_free(ctx); + + iflib_deregister(ctx); + + device_set_softc(ctx->ifc_dev, NULL); if (ctx->ifc_flags & IFC_SC_ALLOCATED) free(ctx->ifc_softc, M_IFLIB); unref_ctx_core_offset(ctx); - STATE_LOCK_DESTROY(ctx); free(ctx, M_IFLIB); return (0); } @@ -5239,6 +5223,8 @@ iflib_module_event_handler(module_t mod, int what, voi static void _iflib_assert(if_shared_ctx_t sctx) { + int i; + MPASS(sctx->isc_tx_maxsize); MPASS(sctx->isc_tx_maxsegsize); @@ -5246,12 +5232,25 @@ _iflib_assert(if_shared_ctx_t sctx) MPASS(sctx->isc_rx_nsegments); MPASS(sctx->isc_rx_maxsegsize); - MPASS(sctx->isc_nrxd_min[0]); - MPASS(sctx->isc_nrxd_max[0]); - MPASS(sctx->isc_nrxd_default[0]); - MPASS(sctx->isc_ntxd_min[0]); - MPASS(sctx->isc_ntxd_max[0]); - MPASS(sctx->isc_ntxd_default[0]); + MPASS(sctx->isc_nrxqs >= 1 && sctx->isc_nrxqs <= 8); + for (i = 0; i < sctx->isc_nrxqs; i++) { + MPASS(sctx->isc_nrxd_min[i]); + MPASS(powerof2(sctx->isc_nrxd_min[i])); + MPASS(sctx->isc_nrxd_max[i]); + MPASS(powerof2(sctx->isc_nrxd_max[i])); + MPASS(sctx->isc_nrxd_default[i]); + MPASS(powerof2(sctx->isc_nrxd_default[i])); + } + + MPASS(sctx->isc_ntxqs >= 1 && sctx->isc_ntxqs <= 8); + for (i = 0; i < sctx->isc_ntxqs; i++) { + MPASS(sctx->isc_ntxd_min[i]); + MPASS(powerof2(sctx->isc_ntxd_min[i])); + MPASS(sctx->isc_ntxd_max[i]); + MPASS(powerof2(sctx->isc_ntxd_max[i])); + MPASS(sctx->isc_ntxd_default[i]); + MPASS(powerof2(sctx->isc_ntxd_default[i])); + } } static void @@ -5290,7 +5289,6 @@ iflib_register(if_ctx_t ctx) */ kobj_init((kobj_t) ctx, (kobj_class_t) driver); kobj_class_compile((kobj_class_t) driver); - driver->refs++; if_initname(ifp, device_get_name(dev), device_get_unit(dev)); if_setsoftc(ifp, ctx); @@ -5318,6 +5316,36 @@ iflib_register(if_ctx_t ctx) iflib_media_change, iflib_media_status); return (0); +} + +static void +iflib_deregister(if_ctx_t ctx) +{ + if_t ifp = ctx->ifc_ifp; + + /* Remove all media */ + ifmedia_removeall(&ctx->ifc_media); + + /* Unregister VLAN events */ + if (ctx->ifc_vlan_attach_event != NULL) { + EVENTHANDLER_DEREGISTER(vlan_config, ctx->ifc_vlan_attach_event); + ctx->ifc_vlan_attach_event = NULL; + } + if (ctx->ifc_vlan_detach_event != NULL) { + EVENTHANDLER_DEREGISTER(vlan_unconfig, ctx->ifc_vlan_detach_event); + ctx->ifc_vlan_detach_event = NULL; + } + + /* Release kobject reference */ + kobj_delete((kobj_t) ctx, NULL); + + /* Free the ifnet structure */ + if_free(ifp); + + STATE_LOCK_DESTROY(ctx); + + /* ether_ifdetach calls if_qflush - lock must be destroy afterwards*/ + CTX_LOCK_DESTROY(ctx); } static int Modified: stable/12/sys/net/iflib.h ============================================================================== --- stable/12/sys/net/iflib.h Tue Aug 20 20:04:16 2019 (r351275) +++ stable/12/sys/net/iflib.h Tue Aug 20 20:15:32 2019 (r351276) @@ -393,6 +393,13 @@ int iflib_device_suspend(device_t); int iflib_device_resume(device_t); int iflib_device_shutdown(device_t); +/* + * Use this instead of iflib_device_probe if the driver should report + * BUS_PROBE_VENDOR instead of BUS_PROBE_DEFAULT. (For example, an out-of-tree + * driver based on iflib). + */ +int iflib_device_probe_vendor(device_t); + int iflib_device_iov_init(device_t, uint16_t, const nvlist_t *); void iflib_device_iov_uninit(device_t); From owner-svn-src-all@freebsd.org Tue Aug 20 20:18:59 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 711A7DD8F4; Tue, 20 Aug 2019 20:18:59 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Chvl15Dhz3QlV; Tue, 20 Aug 2019 20:18:59 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D87DF8932; Tue, 20 Aug 2019 20:18:58 +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 x7KKIwdc056186; Tue, 20 Aug 2019 20:18:58 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKIwU5056185; Tue, 20 Aug 2019 20:18:58 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201908202018.x7KKIwU5056185@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 20 Aug 2019 20:18:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351277 - stable/11/release/doc/share/xml X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: stable/11/release/doc/share/xml X-SVN-Commit-Revision: 351277 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:18:59 -0000 Author: gjb Date: Tue Aug 20 20:18:58 2019 New Revision: 351277 URL: https://svnweb.freebsd.org/changeset/base/351277 Log: Document EN-19:16-17, SA-19:22-24. Sponsored by: Rubicon Communications, LLC (Netgate) Modified: stable/11/release/doc/share/xml/errata.xml stable/11/release/doc/share/xml/security.xml Modified: stable/11/release/doc/share/xml/errata.xml ============================================================================== --- stable/11/release/doc/share/xml/errata.xml Tue Aug 20 20:15:32 2019 (r351276) +++ stable/11/release/doc/share/xml/errata.xml Tue Aug 20 20:18:58 2019 (r351277) @@ -32,6 +32,20 @@ 6 August 2019 Incorrect exception handling + + + FreeBSD-EN-19:16.bhyve + 20 August 2019 + Instruction emulation improvements + + + + FreeBSD-EN-19:17.ipfw + 20 August 2019 + "jail" keyword fix + Modified: stable/11/release/doc/share/xml/security.xml ============================================================================== --- stable/11/release/doc/share/xml/security.xml Tue Aug 20 20:15:32 2019 (r351276) +++ stable/11/release/doc/share/xml/security.xml Tue Aug 20 20:18:58 2019 (r351277) @@ -89,6 +89,27 @@ Insufficient validation of guest-supplied data + + + FreeBSD-SA-19:22.mbuf + 20 August 2019 + IPv6 remove denial-of-service + + + + FreeBSD-SA-19:23.midi + 20 August 2019 + Kernel memory disclosure + + + + FreeBSD-SA-19:24.mqueuefs + 20 August 2019 + Reference count overflow + From owner-svn-src-all@freebsd.org Tue Aug 20 20:50:20 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A1785DFE93; Tue, 20 Aug 2019 20:50:20 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjbw4VGxz40NJ; Tue, 20 Aug 2019 20:50:20 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 768E48EB0; Tue, 20 Aug 2019 20:50:20 +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 x7KKoK6C074960; Tue, 20 Aug 2019 20:50:20 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKoG5T074938; Tue, 20 Aug 2019 20:50:16 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202050.x7KKoG5T074938@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:50:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351278 - in vendor/llvm/dist: . include/llvm include/llvm-c include/llvm-c/Transforms include/llvm/ADT include/llvm/Analysis include/llvm/Analysis/Utils include/llvm/AsmParser include/... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm/dist: . include/llvm include/llvm-c include/llvm-c/Transforms include/llvm/ADT include/llvm/Analysis include/llvm/Analysis/Utils include/llvm/AsmParser include/llvm/BinaryFormat include... X-SVN-Commit-Revision: 351278 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:50:20 -0000 Author: dim Date: Tue Aug 20 20:50:12 2019 New Revision: 351278 URL: https://svnweb.freebsd.org/changeset/base/351278 Log: Vendor import of stripped llvm trunk r366426 (just before the release_90 branch point): https://llvm.org/svn/llvm-project/llvm/trunk@366426 Added: vendor/llvm/dist/include/llvm-c/Remarks.h vendor/llvm/dist/include/llvm/ADT/fallible_iterator.h vendor/llvm/dist/include/llvm/Analysis/DomTreeUpdater.h vendor/llvm/dist/include/llvm/Analysis/VecFuncs.def vendor/llvm/dist/include/llvm/BinaryFormat/Minidump.h vendor/llvm/dist/include/llvm/BinaryFormat/MinidumpConstants.def vendor/llvm/dist/include/llvm/BinaryFormat/MsgPackDocument.h vendor/llvm/dist/include/llvm/BinaryFormat/XCOFF.h vendor/llvm/dist/include/llvm/Bitcode/BitcodeAnalyzer.h vendor/llvm/dist/include/llvm/Bitstream/ vendor/llvm/dist/include/llvm/Bitstream/BitCodes.h vendor/llvm/dist/include/llvm/Bitstream/BitstreamReader.h vendor/llvm/dist/include/llvm/Bitstream/BitstreamWriter.h vendor/llvm/dist/include/llvm/CodeGen/CSEConfigBase.h vendor/llvm/dist/include/llvm/CodeGen/MIRParser/MIParser.h vendor/llvm/dist/include/llvm/CodeGen/Register.h vendor/llvm/dist/include/llvm/CodeGen/SwiftErrorValueTracking.h vendor/llvm/dist/include/llvm/CodeGen/SwitchLoweringUtils.h vendor/llvm/dist/include/llvm/DebugInfo/GSYM/ vendor/llvm/dist/include/llvm/DebugInfo/GSYM/FileEntry.h vendor/llvm/dist/include/llvm/DebugInfo/GSYM/FunctionInfo.h vendor/llvm/dist/include/llvm/DebugInfo/GSYM/InlineInfo.h vendor/llvm/dist/include/llvm/DebugInfo/GSYM/LineEntry.h vendor/llvm/dist/include/llvm/DebugInfo/GSYM/Range.h vendor/llvm/dist/include/llvm/DebugInfo/GSYM/StringTable.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h vendor/llvm/dist/include/llvm/Demangle/DemangleConfig.h vendor/llvm/dist/include/llvm/Demangle/README.txt vendor/llvm/dist/include/llvm/ExecutionEngine/JITLink/ vendor/llvm/dist/include/llvm/ExecutionEngine/JITLink/EHFrameSupport.h vendor/llvm/dist/include/llvm/ExecutionEngine/JITLink/JITLink.h vendor/llvm/dist/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h vendor/llvm/dist/include/llvm/ExecutionEngine/JITLink/MachO.h vendor/llvm/dist/include/llvm/ExecutionEngine/JITLink/MachO_x86_64.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/OrcV1Deprecation.h vendor/llvm/dist/include/llvm/IR/RemarkStreamer.h vendor/llvm/dist/include/llvm/MC/MCAsmInfoXCOFF.h vendor/llvm/dist/include/llvm/MC/MCSectionXCOFF.h vendor/llvm/dist/include/llvm/MC/MCSymbolXCOFF.h vendor/llvm/dist/include/llvm/MC/MCXCOFFObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCXCOFFStreamer.h vendor/llvm/dist/include/llvm/MCA/Stages/MicroOpQueueStage.h vendor/llvm/dist/include/llvm/Object/Minidump.h vendor/llvm/dist/include/llvm/Object/RelocationResolver.h vendor/llvm/dist/include/llvm/Object/WindowsMachineFlag.h vendor/llvm/dist/include/llvm/Object/XCOFFObjectFile.h vendor/llvm/dist/include/llvm/ObjectYAML/MinidumpYAML.h vendor/llvm/dist/include/llvm/ObjectYAML/XCOFFYAML.h vendor/llvm/dist/include/llvm/Remarks/ vendor/llvm/dist/include/llvm/Remarks/Remark.h vendor/llvm/dist/include/llvm/Remarks/RemarkFormat.h vendor/llvm/dist/include/llvm/Remarks/RemarkParser.h vendor/llvm/dist/include/llvm/Remarks/RemarkSerializer.h vendor/llvm/dist/include/llvm/Remarks/RemarkStringTable.h vendor/llvm/dist/include/llvm/Support/CRC.h vendor/llvm/dist/include/llvm/Support/GenericIteratedDominanceFrontier.h vendor/llvm/dist/include/llvm/Support/SMTAPI.h vendor/llvm/dist/include/llvm/Support/ScalableSize.h vendor/llvm/dist/include/llvm/Support/Signposts.h vendor/llvm/dist/include/llvm/Support/TimeProfiler.h vendor/llvm/dist/include/llvm/Testing/Support/Annotations.h vendor/llvm/dist/include/llvm/TextAPI/MachO/Architecture.def vendor/llvm/dist/include/llvm/TextAPI/MachO/Architecture.h vendor/llvm/dist/include/llvm/TextAPI/MachO/ArchitectureSet.h vendor/llvm/dist/include/llvm/TextAPI/MachO/InterfaceFile.h vendor/llvm/dist/include/llvm/TextAPI/MachO/PackedVersion.h vendor/llvm/dist/include/llvm/TextAPI/MachO/Symbol.h vendor/llvm/dist/include/llvm/TextAPI/MachO/TextAPIReader.h vendor/llvm/dist/include/llvm/TextAPI/MachO/TextAPIWriter.h vendor/llvm/dist/include/llvm/Transforms/IPO/Attributor.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation/AddressSanitizer.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation/InstrOrderFile.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation/PoisonChecking.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopFuse.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LowerWidenableCondition.h vendor/llvm/dist/include/llvm/Transforms/Scalar/MergeICmps.h vendor/llvm/dist/include/llvm/Transforms/Utils/SizeOpts.h vendor/llvm/dist/lib/Analysis/DomTreeUpdater.cpp vendor/llvm/dist/lib/BinaryFormat/Minidump.cpp vendor/llvm/dist/lib/BinaryFormat/MsgPackDocument.cpp vendor/llvm/dist/lib/BinaryFormat/MsgPackDocumentYAML.cpp vendor/llvm/dist/lib/Bitcode/Reader/BitcodeAnalyzer.cpp vendor/llvm/dist/lib/Bitstream/ vendor/llvm/dist/lib/Bitstream/Reader/ vendor/llvm/dist/lib/Bitstream/Reader/BitstreamReader.cpp vendor/llvm/dist/lib/CodeGen/FinalizeISel.cpp vendor/llvm/dist/lib/CodeGen/HardwareLoops.cpp vendor/llvm/dist/lib/CodeGen/SwiftErrorValueTracking.cpp vendor/llvm/dist/lib/CodeGen/SwitchLoweringUtils.cpp vendor/llvm/dist/lib/DebugInfo/GSYM/ vendor/llvm/dist/lib/DebugInfo/GSYM/FunctionInfo.cpp vendor/llvm/dist/lib/DebugInfo/GSYM/InlineInfo.cpp vendor/llvm/dist/lib/DebugInfo/GSYM/Range.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/InjectedSourceStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp vendor/llvm/dist/lib/Demangle/Demangle.cpp vendor/llvm/dist/lib/ExecutionEngine/JITLink/ vendor/llvm/dist/lib/ExecutionEngine/JITLink/BasicGOTAndStubsBuilder.h vendor/llvm/dist/lib/ExecutionEngine/JITLink/EHFrameSupport.cpp vendor/llvm/dist/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h vendor/llvm/dist/lib/ExecutionEngine/JITLink/JITLink.cpp vendor/llvm/dist/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp vendor/llvm/dist/lib/ExecutionEngine/JITLink/JITLinkGeneric.h vendor/llvm/dist/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp vendor/llvm/dist/lib/ExecutionEngine/JITLink/MachO.cpp vendor/llvm/dist/lib/ExecutionEngine/JITLink/MachOAtomGraphBuilder.cpp vendor/llvm/dist/lib/ExecutionEngine/JITLink/MachOAtomGraphBuilder.h vendor/llvm/dist/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/CompileUtils.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp vendor/llvm/dist/lib/IR/AbstractCallSite.cpp vendor/llvm/dist/lib/IR/RemarkStreamer.cpp vendor/llvm/dist/lib/MC/MCAsmInfoXCOFF.cpp vendor/llvm/dist/lib/MC/MCSectionXCOFF.cpp vendor/llvm/dist/lib/MC/MCXCOFFObjectTargetWriter.cpp vendor/llvm/dist/lib/MC/MCXCOFFStreamer.cpp vendor/llvm/dist/lib/MC/XCOFFObjectWriter.cpp vendor/llvm/dist/lib/MCA/Stages/MicroOpQueueStage.cpp vendor/llvm/dist/lib/Object/Minidump.cpp vendor/llvm/dist/lib/Object/RelocationResolver.cpp vendor/llvm/dist/lib/Object/WindowsMachineFlag.cpp vendor/llvm/dist/lib/Object/XCOFFObjectFile.cpp vendor/llvm/dist/lib/ObjectYAML/MinidumpYAML.cpp vendor/llvm/dist/lib/ObjectYAML/XCOFFYAML.cpp vendor/llvm/dist/lib/Remarks/ vendor/llvm/dist/lib/Remarks/Remark.cpp vendor/llvm/dist/lib/Remarks/RemarkFormat.cpp vendor/llvm/dist/lib/Remarks/RemarkParser.cpp vendor/llvm/dist/lib/Remarks/RemarkStringTable.cpp vendor/llvm/dist/lib/Remarks/YAMLRemarkParser.cpp vendor/llvm/dist/lib/Remarks/YAMLRemarkParser.h vendor/llvm/dist/lib/Remarks/YAMLRemarkSerializer.cpp vendor/llvm/dist/lib/Support/CRC.cpp vendor/llvm/dist/lib/Support/Optional.cpp vendor/llvm/dist/lib/Support/Signposts.cpp vendor/llvm/dist/lib/Support/TimeProfiler.cpp vendor/llvm/dist/lib/Support/Z3Solver.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64CallingConvention.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ExpandImm.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ExpandImm.h vendor/llvm/dist/lib/Target/AArch64/AArch64StackTagging.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h vendor/llvm/dist/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUPropagateAttributes.cpp vendor/llvm/dist/lib/Target/AMDGPU/GCNNSAReassign.cpp vendor/llvm/dist/lib/Target/AMDGPU/GCNRegBankReassign.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h vendor/llvm/dist/lib/Target/AMDGPU/SILowerSGPRSpills.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp vendor/llvm/dist/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.h vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h vendor/llvm/dist/lib/Target/ARC/ARCOptAddrMode.cpp vendor/llvm/dist/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.cpp vendor/llvm/dist/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.h vendor/llvm/dist/lib/Target/ARC/TargetInfo/ARCTargetInfo.h vendor/llvm/dist/lib/Target/ARM/ARMBasicBlockInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMCallingConv.cpp vendor/llvm/dist/lib/Target/ARM/ARMInstrMVE.td vendor/llvm/dist/lib/Target/ARM/ARMLowOverheadLoops.cpp vendor/llvm/dist/lib/Target/ARM/ARMPredicates.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleM4.td vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h vendor/llvm/dist/lib/Target/ARM/TargetInfo/ARMTargetInfo.h vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h vendor/llvm/dist/lib/Target/AVR/TargetInfo/AVRTargetInfo.h vendor/llvm/dist/lib/Target/BPF/BPFAbstractMemberAccess.cpp vendor/llvm/dist/lib/Target/BPF/BPFCORE.h vendor/llvm/dist/lib/Target/BPF/BPFMISimplifyPatchable.cpp vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.cpp vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.h vendor/llvm/dist/lib/Target/BPF/TargetInfo/BPFTargetInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonDepDecoders.inc vendor/llvm/dist/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.h vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.cpp vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.h vendor/llvm/dist/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.h vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.cpp vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.h vendor/llvm/dist/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.h vendor/llvm/dist/lib/Target/Mips/TargetInfo/MipsTargetInfo.h vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h vendor/llvm/dist/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.h vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCCallingConv.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMachineScheduler.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMachineScheduler.h vendor/llvm/dist/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.h vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.h vendor/llvm/dist/lib/Target/RISCV/RISCVTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVTargetTransformInfo.h vendor/llvm/dist/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.h vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.h vendor/llvm/dist/lib/Target/Sparc/TargetInfo/SparcTargetInfo.h vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.h vendor/llvm/dist/lib/Target/SystemZ/SystemZPostRewrite.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZScheduleArch13.td vendor/llvm/dist/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.h vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h vendor/llvm/dist/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrRef.td vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86InstComments.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86InstComments.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.h vendor/llvm/dist/lib/Target/X86/TargetInfo/X86TargetInfo.h vendor/llvm/dist/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.cpp vendor/llvm/dist/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.h vendor/llvm/dist/lib/Target/XCore/TargetInfo/XCoreTargetInfo.h vendor/llvm/dist/lib/Testing/Support/Annotations.cpp vendor/llvm/dist/lib/TextAPI/MachO/Architecture.cpp vendor/llvm/dist/lib/TextAPI/MachO/ArchitectureSet.cpp vendor/llvm/dist/lib/TextAPI/MachO/InterfaceFile.cpp vendor/llvm/dist/lib/TextAPI/MachO/PackedVersion.cpp vendor/llvm/dist/lib/TextAPI/MachO/Symbol.cpp vendor/llvm/dist/lib/TextAPI/MachO/TextAPIContext.h vendor/llvm/dist/lib/TextAPI/MachO/TextStub.cpp vendor/llvm/dist/lib/TextAPI/MachO/TextStubCommon.cpp vendor/llvm/dist/lib/TextAPI/MachO/TextStubCommon.h vendor/llvm/dist/lib/Transforms/IPO/Attributor.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/InstrOrderFile.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/PoisonChecking.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopFuse.cpp vendor/llvm/dist/lib/Transforms/Scalar/LowerWidenableCondition.cpp vendor/llvm/dist/lib/Transforms/Utils/SizeOpts.cpp vendor/llvm/dist/lib/Transforms/Vectorize/VPlanPredicator.cpp vendor/llvm/dist/lib/Transforms/Vectorize/VPlanPredicator.h vendor/llvm/dist/tools/llvm-mca/Views/BottleneckAnalysis.cpp vendor/llvm/dist/tools/llvm-mca/Views/BottleneckAnalysis.h vendor/llvm/dist/tools/llvm-objcopy/MachO/ vendor/llvm/dist/tools/llvm-objcopy/MachO/MachOObjcopy.cpp vendor/llvm/dist/tools/llvm-objcopy/MachO/MachOObjcopy.h vendor/llvm/dist/tools/llvm-objcopy/MachO/MachOReader.cpp vendor/llvm/dist/tools/llvm-objcopy/MachO/MachOReader.h vendor/llvm/dist/tools/llvm-objcopy/MachO/MachOWriter.cpp vendor/llvm/dist/tools/llvm-objcopy/MachO/MachOWriter.h vendor/llvm/dist/tools/llvm-objcopy/MachO/Object.cpp vendor/llvm/dist/tools/llvm-objcopy/MachO/Object.h vendor/llvm/dist/tools/llvm-pdbutil/TypeReferenceTracker.cpp vendor/llvm/dist/tools/llvm-pdbutil/TypeReferenceTracker.h vendor/llvm/dist/tools/llvm-readobj/XCOFFDumper.cpp Deleted: vendor/llvm/dist/include/llvm-c/OptRemarks.h vendor/llvm/dist/include/llvm/BinaryFormat/MsgPackTypes.h vendor/llvm/dist/include/llvm/Bitcode/BitCodes.h vendor/llvm/dist/include/llvm/Bitcode/BitstreamReader.h vendor/llvm/dist/include/llvm/Bitcode/BitstreamWriter.h vendor/llvm/dist/include/llvm/Demangle/Compiler.h vendor/llvm/dist/include/llvm/IR/DomTreeUpdater.h vendor/llvm/dist/include/llvm/Object/RelocVisitor.h vendor/llvm/dist/lib/Analysis/IteratedDominanceFrontier.cpp vendor/llvm/dist/lib/BinaryFormat/MsgPackTypes.cpp vendor/llvm/dist/lib/Bitcode/Reader/BitstreamReader.cpp vendor/llvm/dist/lib/CodeGen/ExpandISelPseudos.cpp vendor/llvm/dist/lib/CodeGen/MIRParser/MIParser.h vendor/llvm/dist/lib/IR/DomTreeUpdater.cpp vendor/llvm/dist/lib/OptRemarks/ vendor/llvm/dist/lib/Target/AArch64/InstPrinter/ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegAsmNames.inc.cpp vendor/llvm/dist/lib/Target/AMDGPU/InstPrinter/ vendor/llvm/dist/lib/Target/AMDGPU/SIDebuggerInsertNops.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFixWWMLiveness.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIIntrinsics.td vendor/llvm/dist/lib/Target/ARC/InstPrinter/ vendor/llvm/dist/lib/Target/ARM/ARMComputeBlockSize.cpp vendor/llvm/dist/lib/Target/ARM/ARMScheduleM3.td vendor/llvm/dist/lib/Target/ARM/InstPrinter/ vendor/llvm/dist/lib/Target/ARM/LICENSE.TXT vendor/llvm/dist/lib/Target/AVR/InstPrinter/ vendor/llvm/dist/lib/Target/BPF/InstPrinter/ vendor/llvm/dist/lib/Target/Hexagon/HexagonDepDecoders.h vendor/llvm/dist/lib/Target/Lanai/InstPrinter/ vendor/llvm/dist/lib/Target/MSP430/InstPrinter/ vendor/llvm/dist/lib/Target/Mips/InstPrinter/ vendor/llvm/dist/lib/Target/NVPTX/InstPrinter/ vendor/llvm/dist/lib/Target/PowerPC/InstPrinter/ vendor/llvm/dist/lib/Target/RISCV/InstPrinter/ vendor/llvm/dist/lib/Target/Sparc/InstPrinter/ vendor/llvm/dist/lib/Target/SystemZ/InstPrinter/ vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyEHRestoreStackPointer.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrExceptRef.td vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmInstrumentation.h vendor/llvm/dist/lib/Target/X86/InstPrinter/ vendor/llvm/dist/lib/Target/X86/ShadowCallStack.cpp vendor/llvm/dist/lib/Target/XCore/InstPrinter/ vendor/llvm/dist/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp Modified: vendor/llvm/dist/LICENSE.TXT 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/Comdat.h vendor/llvm/dist/include/llvm-c/Core.h vendor/llvm/dist/include/llvm-c/DataTypes.h vendor/llvm/dist/include/llvm-c/DebugInfo.h vendor/llvm/dist/include/llvm-c/Disassembler.h vendor/llvm/dist/include/llvm-c/DisassemblerTypes.h vendor/llvm/dist/include/llvm-c/Error.h vendor/llvm/dist/include/llvm-c/ErrorHandling.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/LinkTimeOptimizer.h vendor/llvm/dist/include/llvm-c/Linker.h vendor/llvm/dist/include/llvm-c/Object.h vendor/llvm/dist/include/llvm-c/OrcBindings.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/AggressiveInstCombine.h vendor/llvm/dist/include/llvm-c/Transforms/Coroutines.h vendor/llvm/dist/include/llvm-c/Transforms/IPO.h vendor/llvm/dist/include/llvm-c/Transforms/InstCombine.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/Utils.h vendor/llvm/dist/include/llvm-c/Transforms/Vectorize.h vendor/llvm/dist/include/llvm-c/Types.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/AllocatorList.h vendor/llvm/dist/include/llvm/ADT/Any.h vendor/llvm/dist/include/llvm/ADT/ArrayRef.h vendor/llvm/dist/include/llvm/ADT/BitVector.h vendor/llvm/dist/include/llvm/ADT/BitmaskEnum.h vendor/llvm/dist/include/llvm/ADT/BreadthFirstIterator.h vendor/llvm/dist/include/llvm/ADT/CachedHashString.h vendor/llvm/dist/include/llvm/ADT/DAGDeltaAlgorithm.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/EpochTracker.h vendor/llvm/dist/include/llvm/ADT/EquivalenceClasses.h vendor/llvm/dist/include/llvm/ADT/FoldingSet.h vendor/llvm/dist/include/llvm/ADT/FunctionExtras.h vendor/llvm/dist/include/llvm/ADT/GraphTraits.h vendor/llvm/dist/include/llvm/ADT/Hashing.h vendor/llvm/dist/include/llvm/ADT/ImmutableList.h vendor/llvm/dist/include/llvm/ADT/ImmutableMap.h vendor/llvm/dist/include/llvm/ADT/ImmutableSet.h vendor/llvm/dist/include/llvm/ADT/IndexedMap.h vendor/llvm/dist/include/llvm/ADT/IntEqClasses.h vendor/llvm/dist/include/llvm/ADT/IntervalMap.h vendor/llvm/dist/include/llvm/ADT/IntrusiveRefCntPtr.h vendor/llvm/dist/include/llvm/ADT/MapVector.h vendor/llvm/dist/include/llvm/ADT/None.h vendor/llvm/dist/include/llvm/ADT/Optional.h vendor/llvm/dist/include/llvm/ADT/PackedVector.h vendor/llvm/dist/include/llvm/ADT/PointerEmbeddedInt.h vendor/llvm/dist/include/llvm/ADT/PointerIntPair.h vendor/llvm/dist/include/llvm/ADT/PointerSumType.h vendor/llvm/dist/include/llvm/ADT/PointerUnion.h vendor/llvm/dist/include/llvm/ADT/PostOrderIterator.h vendor/llvm/dist/include/llvm/ADT/PriorityQueue.h vendor/llvm/dist/include/llvm/ADT/PriorityWorklist.h vendor/llvm/dist/include/llvm/ADT/SCCIterator.h vendor/llvm/dist/include/llvm/ADT/STLExtras.h vendor/llvm/dist/include/llvm/ADT/ScopeExit.h vendor/llvm/dist/include/llvm/ADT/ScopedHashTable.h vendor/llvm/dist/include/llvm/ADT/Sequence.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/SmallString.h vendor/llvm/dist/include/llvm/ADT/SmallVector.h vendor/llvm/dist/include/llvm/ADT/SparseBitVector.h vendor/llvm/dist/include/llvm/ADT/SparseMultiSet.h vendor/llvm/dist/include/llvm/ADT/SparseSet.h vendor/llvm/dist/include/llvm/ADT/Statistic.h vendor/llvm/dist/include/llvm/ADT/StringExtras.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/Twine.h vendor/llvm/dist/include/llvm/ADT/UniqueVector.h vendor/llvm/dist/include/llvm/ADT/VariadicFunction.h vendor/llvm/dist/include/llvm/ADT/bit.h vendor/llvm/dist/include/llvm/ADT/edit_distance.h vendor/llvm/dist/include/llvm/ADT/ilist.h vendor/llvm/dist/include/llvm/ADT/ilist_base.h vendor/llvm/dist/include/llvm/ADT/ilist_iterator.h vendor/llvm/dist/include/llvm/ADT/ilist_node.h vendor/llvm/dist/include/llvm/ADT/ilist_node_base.h vendor/llvm/dist/include/llvm/ADT/ilist_node_options.h vendor/llvm/dist/include/llvm/ADT/iterator.h vendor/llvm/dist/include/llvm/ADT/iterator_range.h vendor/llvm/dist/include/llvm/ADT/simple_ilist.h vendor/llvm/dist/include/llvm/Analysis/AliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/AliasAnalysisEvaluator.h vendor/llvm/dist/include/llvm/Analysis/AliasSetTracker.h vendor/llvm/dist/include/llvm/Analysis/AssumptionCache.h vendor/llvm/dist/include/llvm/Analysis/BasicAliasAnalysis.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/CFGPrinter.h vendor/llvm/dist/include/llvm/Analysis/CFLAliasAnalysisUtils.h vendor/llvm/dist/include/llvm/Analysis/CFLAndersAliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/CFLSteensAliasAnalysis.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/CallPrinter.h vendor/llvm/dist/include/llvm/Analysis/CaptureTracking.h vendor/llvm/dist/include/llvm/Analysis/CmpInstAnalysis.h vendor/llvm/dist/include/llvm/Analysis/CodeMetrics.h vendor/llvm/dist/include/llvm/Analysis/ConstantFolding.h vendor/llvm/dist/include/llvm/Analysis/DOTGraphTraitsPass.h vendor/llvm/dist/include/llvm/Analysis/DemandedBits.h vendor/llvm/dist/include/llvm/Analysis/DependenceAnalysis.h vendor/llvm/dist/include/llvm/Analysis/DivergenceAnalysis.h vendor/llvm/dist/include/llvm/Analysis/DomPrinter.h vendor/llvm/dist/include/llvm/Analysis/DominanceFrontier.h vendor/llvm/dist/include/llvm/Analysis/DominanceFrontierImpl.h vendor/llvm/dist/include/llvm/Analysis/EHPersonalities.h vendor/llvm/dist/include/llvm/Analysis/GlobalsModRef.h vendor/llvm/dist/include/llvm/Analysis/GuardUtils.h vendor/llvm/dist/include/llvm/Analysis/IVDescriptors.h vendor/llvm/dist/include/llvm/Analysis/IVUsers.h vendor/llvm/dist/include/llvm/Analysis/IndirectCallPromotionAnalysis.h vendor/llvm/dist/include/llvm/Analysis/IndirectCallVisitor.h vendor/llvm/dist/include/llvm/Analysis/InlineCost.h vendor/llvm/dist/include/llvm/Analysis/InstructionPrecedenceTracking.h vendor/llvm/dist/include/llvm/Analysis/InstructionSimplify.h vendor/llvm/dist/include/llvm/Analysis/Interval.h vendor/llvm/dist/include/llvm/Analysis/IntervalIterator.h vendor/llvm/dist/include/llvm/Analysis/IntervalPartition.h vendor/llvm/dist/include/llvm/Analysis/IteratedDominanceFrontier.h vendor/llvm/dist/include/llvm/Analysis/LazyBlockFrequencyInfo.h vendor/llvm/dist/include/llvm/Analysis/LazyBranchProbabilityInfo.h vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h vendor/llvm/dist/include/llvm/Analysis/LazyValueInfo.h vendor/llvm/dist/include/llvm/Analysis/LegacyDivergenceAnalysis.h vendor/llvm/dist/include/llvm/Analysis/Lint.h vendor/llvm/dist/include/llvm/Analysis/Loads.h vendor/llvm/dist/include/llvm/Analysis/LoopAccessAnalysis.h vendor/llvm/dist/include/llvm/Analysis/LoopAnalysisManager.h vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h vendor/llvm/dist/include/llvm/Analysis/LoopInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/LoopIterator.h vendor/llvm/dist/include/llvm/Analysis/LoopPass.h vendor/llvm/dist/include/llvm/Analysis/LoopUnrollAnalyzer.h vendor/llvm/dist/include/llvm/Analysis/MemoryBuiltins.h vendor/llvm/dist/include/llvm/Analysis/MemoryDependenceAnalysis.h vendor/llvm/dist/include/llvm/Analysis/MemoryLocation.h vendor/llvm/dist/include/llvm/Analysis/MemorySSA.h vendor/llvm/dist/include/llvm/Analysis/MemorySSAUpdater.h vendor/llvm/dist/include/llvm/Analysis/ModuleSummaryAnalysis.h vendor/llvm/dist/include/llvm/Analysis/MustExecute.h vendor/llvm/dist/include/llvm/Analysis/ObjCARCAliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/ObjCARCAnalysisUtils.h vendor/llvm/dist/include/llvm/Analysis/ObjCARCInstKind.h vendor/llvm/dist/include/llvm/Analysis/OptimizationRemarkEmitter.h vendor/llvm/dist/include/llvm/Analysis/OrderedBasicBlock.h vendor/llvm/dist/include/llvm/Analysis/OrderedInstructions.h vendor/llvm/dist/include/llvm/Analysis/PHITransAddr.h vendor/llvm/dist/include/llvm/Analysis/Passes.h vendor/llvm/dist/include/llvm/Analysis/PhiValues.h vendor/llvm/dist/include/llvm/Analysis/PostDominators.h vendor/llvm/dist/include/llvm/Analysis/ProfileSummaryInfo.h vendor/llvm/dist/include/llvm/Analysis/PtrUseVisitor.h vendor/llvm/dist/include/llvm/Analysis/RegionInfo.h vendor/llvm/dist/include/llvm/Analysis/RegionInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/RegionIterator.h vendor/llvm/dist/include/llvm/Analysis/RegionPass.h vendor/llvm/dist/include/llvm/Analysis/RegionPrinter.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionNormalization.h vendor/llvm/dist/include/llvm/Analysis/ScopedNoAliasAA.h vendor/llvm/dist/include/llvm/Analysis/SparsePropagation.h vendor/llvm/dist/include/llvm/Analysis/StackSafetyAnalysis.h vendor/llvm/dist/include/llvm/Analysis/SyncDependenceAnalysis.h vendor/llvm/dist/include/llvm/Analysis/SyntheticCountsUtils.h vendor/llvm/dist/include/llvm/Analysis/TargetFolder.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/Trace.h vendor/llvm/dist/include/llvm/Analysis/TypeBasedAliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/TypeMetadataUtils.h vendor/llvm/dist/include/llvm/Analysis/Utils/Local.h vendor/llvm/dist/include/llvm/Analysis/ValueLattice.h vendor/llvm/dist/include/llvm/Analysis/ValueLatticeUtils.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/BinaryFormat/AMDGPUMetadataVerifier.h vendor/llvm/dist/include/llvm/BinaryFormat/COFF.h vendor/llvm/dist/include/llvm/BinaryFormat/Dwarf.def vendor/llvm/dist/include/llvm/BinaryFormat/Dwarf.h vendor/llvm/dist/include/llvm/BinaryFormat/DynamicTags.def vendor/llvm/dist/include/llvm/BinaryFormat/ELF.h vendor/llvm/dist/include/llvm/BinaryFormat/ELFRelocs/ARM.def vendor/llvm/dist/include/llvm/BinaryFormat/ELFRelocs/PowerPC.def vendor/llvm/dist/include/llvm/BinaryFormat/MachO.def vendor/llvm/dist/include/llvm/BinaryFormat/MachO.h vendor/llvm/dist/include/llvm/BinaryFormat/Magic.h vendor/llvm/dist/include/llvm/BinaryFormat/MsgPack.def vendor/llvm/dist/include/llvm/BinaryFormat/MsgPack.h vendor/llvm/dist/include/llvm/BinaryFormat/MsgPackReader.h vendor/llvm/dist/include/llvm/BinaryFormat/MsgPackWriter.h vendor/llvm/dist/include/llvm/BinaryFormat/Wasm.h vendor/llvm/dist/include/llvm/BinaryFormat/WasmRelocs.def vendor/llvm/dist/include/llvm/Bitcode/BitcodeReader.h vendor/llvm/dist/include/llvm/Bitcode/BitcodeWriter.h vendor/llvm/dist/include/llvm/Bitcode/BitcodeWriterPass.h vendor/llvm/dist/include/llvm/Bitcode/LLVMBitCodes.h vendor/llvm/dist/include/llvm/CodeGen/AccelTable.h vendor/llvm/dist/include/llvm/CodeGen/Analysis.h vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h vendor/llvm/dist/include/llvm/CodeGen/AsmPrinterHandler.h vendor/llvm/dist/include/llvm/CodeGen/AtomicExpandUtils.h vendor/llvm/dist/include/llvm/CodeGen/BasicTTIImpl.h vendor/llvm/dist/include/llvm/CodeGen/BuiltinGCs.h vendor/llvm/dist/include/llvm/CodeGen/CalcSpillWeights.h vendor/llvm/dist/include/llvm/CodeGen/CallingConvLower.h vendor/llvm/dist/include/llvm/CodeGen/CommandFlags.inc vendor/llvm/dist/include/llvm/CodeGen/CostTable.h vendor/llvm/dist/include/llvm/CodeGen/DAGCombine.h vendor/llvm/dist/include/llvm/CodeGen/DFAPacketizer.h vendor/llvm/dist/include/llvm/CodeGen/DIE.h vendor/llvm/dist/include/llvm/CodeGen/DIEValue.def vendor/llvm/dist/include/llvm/CodeGen/DbgEntityHistoryCalculator.h vendor/llvm/dist/include/llvm/CodeGen/DebugHandlerBase.h vendor/llvm/dist/include/llvm/CodeGen/DwarfStringPoolEntry.h vendor/llvm/dist/include/llvm/CodeGen/EdgeBundles.h vendor/llvm/dist/include/llvm/CodeGen/ExecutionDomainFix.h vendor/llvm/dist/include/llvm/CodeGen/ExpandReductions.h vendor/llvm/dist/include/llvm/CodeGen/FastISel.h vendor/llvm/dist/include/llvm/CodeGen/FaultMaps.h vendor/llvm/dist/include/llvm/CodeGen/FunctionLoweringInfo.h vendor/llvm/dist/include/llvm/CodeGen/GCMetadata.h vendor/llvm/dist/include/llvm/CodeGen/GCMetadataPrinter.h vendor/llvm/dist/include/llvm/CodeGen/GCStrategy.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/CSEInfo.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/CallLowering.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/Combiner.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/CombinerHelper.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/CombinerInfo.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/GISelWorkList.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/IRTranslator.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/InstructionSelect.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/InstructionSelector.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/Legalizer.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/Localizer.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegBankSelect.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBank.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/Types.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/Utils.h vendor/llvm/dist/include/llvm/CodeGen/ISDOpcodes.h vendor/llvm/dist/include/llvm/CodeGen/IntrinsicLowering.h vendor/llvm/dist/include/llvm/CodeGen/LatencyPriorityQueue.h vendor/llvm/dist/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h vendor/llvm/dist/include/llvm/CodeGen/LexicalScopes.h vendor/llvm/dist/include/llvm/CodeGen/LinkAllAsmWriterComponents.h vendor/llvm/dist/include/llvm/CodeGen/LinkAllCodegenComponents.h vendor/llvm/dist/include/llvm/CodeGen/LiveInterval.h vendor/llvm/dist/include/llvm/CodeGen/LiveIntervalUnion.h vendor/llvm/dist/include/llvm/CodeGen/LiveIntervals.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/LiveRegUnits.h vendor/llvm/dist/include/llvm/CodeGen/LiveStacks.h vendor/llvm/dist/include/llvm/CodeGen/LiveVariables.h vendor/llvm/dist/include/llvm/CodeGen/LoopTraversal.h vendor/llvm/dist/include/llvm/CodeGen/LowLevelType.h vendor/llvm/dist/include/llvm/CodeGen/MIRParser/MIRParser.h vendor/llvm/dist/include/llvm/CodeGen/MIRPrinter.h vendor/llvm/dist/include/llvm/CodeGen/MIRYamlMapping.h vendor/llvm/dist/include/llvm/CodeGen/MachORelocation.h vendor/llvm/dist/include/llvm/CodeGen/MachineBasicBlock.h vendor/llvm/dist/include/llvm/CodeGen/MachineBlockFrequencyInfo.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/MachineDominanceFrontier.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/MachineFunctionPass.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/MachineInstrBundleIterator.h vendor/llvm/dist/include/llvm/CodeGen/MachineJumpTableInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineLoopInfo.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/MachineOperand.h vendor/llvm/dist/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h vendor/llvm/dist/include/llvm/CodeGen/MachineOutliner.h vendor/llvm/dist/include/llvm/CodeGen/MachinePassRegistry.h vendor/llvm/dist/include/llvm/CodeGen/MachinePipeliner.h vendor/llvm/dist/include/llvm/CodeGen/MachinePostDominators.h vendor/llvm/dist/include/llvm/CodeGen/MachineRegionInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineRegisterInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineSSAUpdater.h vendor/llvm/dist/include/llvm/CodeGen/MachineScheduler.h vendor/llvm/dist/include/llvm/CodeGen/MachineTraceMetrics.h vendor/llvm/dist/include/llvm/CodeGen/MacroFusion.h vendor/llvm/dist/include/llvm/CodeGen/PBQP/CostAllocator.h vendor/llvm/dist/include/llvm/CodeGen/PBQP/Graph.h vendor/llvm/dist/include/llvm/CodeGen/PBQP/Math.h vendor/llvm/dist/include/llvm/CodeGen/PBQP/ReductionRules.h vendor/llvm/dist/include/llvm/CodeGen/PBQP/Solution.h vendor/llvm/dist/include/llvm/CodeGen/PBQPRAConstraint.h vendor/llvm/dist/include/llvm/CodeGen/ParallelCG.h vendor/llvm/dist/include/llvm/CodeGen/Passes.h vendor/llvm/dist/include/llvm/CodeGen/PreISelIntrinsicLowering.h vendor/llvm/dist/include/llvm/CodeGen/PseudoSourceValue.h vendor/llvm/dist/include/llvm/CodeGen/ReachingDefAnalysis.h vendor/llvm/dist/include/llvm/CodeGen/RegAllocPBQP.h vendor/llvm/dist/include/llvm/CodeGen/RegAllocRegistry.h vendor/llvm/dist/include/llvm/CodeGen/RegisterClassInfo.h vendor/llvm/dist/include/llvm/CodeGen/RegisterPressure.h vendor/llvm/dist/include/llvm/CodeGen/RegisterScavenging.h vendor/llvm/dist/include/llvm/CodeGen/RegisterUsageInfo.h vendor/llvm/dist/include/llvm/CodeGen/ResourcePriorityQueue.h vendor/llvm/dist/include/llvm/CodeGen/RuntimeLibcalls.h vendor/llvm/dist/include/llvm/CodeGen/SDNodeProperties.td vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAG.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAGInstrs.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAGMutation.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleDFS.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleHazardRecognizer.h vendor/llvm/dist/include/llvm/CodeGen/SchedulerRegistry.h vendor/llvm/dist/include/llvm/CodeGen/ScoreboardHazardRecognizer.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGISel.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGTargetInfo.h vendor/llvm/dist/include/llvm/CodeGen/SlotIndexes.h vendor/llvm/dist/include/llvm/CodeGen/StackMaps.h vendor/llvm/dist/include/llvm/CodeGen/StackProtector.h vendor/llvm/dist/include/llvm/CodeGen/TailDuplicator.h vendor/llvm/dist/include/llvm/CodeGen/TargetCallingConv.h vendor/llvm/dist/include/llvm/CodeGen/TargetFrameLowering.h vendor/llvm/dist/include/llvm/CodeGen/TargetInstrInfo.h vendor/llvm/dist/include/llvm/CodeGen/TargetLowering.h vendor/llvm/dist/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h vendor/llvm/dist/include/llvm/CodeGen/TargetOpcodes.h vendor/llvm/dist/include/llvm/CodeGen/TargetPassConfig.h vendor/llvm/dist/include/llvm/CodeGen/TargetRegisterInfo.h vendor/llvm/dist/include/llvm/CodeGen/TargetSchedule.h vendor/llvm/dist/include/llvm/CodeGen/TargetSubtargetInfo.h vendor/llvm/dist/include/llvm/CodeGen/UnreachableBlockElim.h vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.h vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.td vendor/llvm/dist/include/llvm/CodeGen/VirtRegMap.h vendor/llvm/dist/include/llvm/CodeGen/WasmEHFuncInfo.h vendor/llvm/dist/include/llvm/CodeGen/WinEHFuncInfo.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVRecord.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeView.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewError.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewTypes.def vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugSubsection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/EnumTables.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/Formatters.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/FunctionId.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/GUID.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/Line.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/RecordName.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/RecordSerialization.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolDumper.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolRecord.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolSerializer.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeCollection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDeserializer.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeHashing.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeIndex.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecord.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeTableCollection.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h vendor/llvm/dist/include/llvm/DebugInfo/DIContext.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFAttribute.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/DWARFDataExtractor.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDie.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFExpression.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFFormValue.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFListTable.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFObject.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFSection.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/DWARF/DWARFUnitIndex.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFVerifier.h vendor/llvm/dist/include/llvm/DebugInfo/MSF/IMSFFile.h vendor/llvm/dist/include/llvm/DebugInfo/MSF/MSFBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/MSF/MSFCommon.h vendor/llvm/dist/include/llvm/DebugInfo/MSF/MSFError.h vendor/llvm/dist/include/llvm/DebugInfo/MSF/MappedBlockStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAError.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAFrameData.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIALineNumber.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIASession.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIASourceFile.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIASupport.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIATable.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAUtils.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/GenericError.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBDataStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBFrameData.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBLineNumber.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBSession.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBSourceFile.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBTable.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/DbiStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/EnumTables.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/Formatters.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/Hash.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/HashTable.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/InfoStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeSession.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/PDBFile.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/PublicsStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/RawConstants.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/RawError.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/RawTypes.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/SymbolCache.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/SymbolStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/TpiHashing.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/TpiStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDB.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBContext.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBExtras.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymDumper.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolData.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolExe.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBTypes.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/UDTLayout.h vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/DIPrinter.h vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/Symbolize.h vendor/llvm/dist/include/llvm/Demangle/Demangle.h vendor/llvm/dist/include/llvm/Demangle/ItaniumDemangle.h vendor/llvm/dist/include/llvm/Demangle/MicrosoftDemangle.h vendor/llvm/dist/include/llvm/Demangle/MicrosoftDemangleNodes.h vendor/llvm/dist/include/llvm/Demangle/StringView.h vendor/llvm/dist/include/llvm/Demangle/Utility.h vendor/llvm/dist/include/llvm/ExecutionEngine/ExecutionEngine.h vendor/llvm/dist/include/llvm/ExecutionEngine/GenericValue.h vendor/llvm/dist/include/llvm/ExecutionEngine/Interpreter.h vendor/llvm/dist/include/llvm/ExecutionEngine/JITEventListener.h vendor/llvm/dist/include/llvm/ExecutionEngine/JITSymbol.h vendor/llvm/dist/include/llvm/ExecutionEngine/MCJIT.h vendor/llvm/dist/include/llvm/ExecutionEngine/OProfileWrapper.h vendor/llvm/dist/include/llvm/ExecutionEngine/ObjectCache.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/Core.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/LLJIT.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/LambdaResolver.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/Layer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/LazyReexports.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/Legacy.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/NullResolver.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcABISupport.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcError.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RPCSerialization.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RPCUtils.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RawByteChannel.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h vendor/llvm/dist/include/llvm/ExecutionEngine/OrcMCJITReplacement.h vendor/llvm/dist/include/llvm/ExecutionEngine/RTDyldMemoryManager.h vendor/llvm/dist/include/llvm/ExecutionEngine/RuntimeDyld.h vendor/llvm/dist/include/llvm/ExecutionEngine/RuntimeDyldChecker.h vendor/llvm/dist/include/llvm/ExecutionEngine/SectionMemoryManager.h vendor/llvm/dist/include/llvm/FuzzMutate/FuzzerCLI.h vendor/llvm/dist/include/llvm/FuzzMutate/IRMutator.h vendor/llvm/dist/include/llvm/FuzzMutate/OpDescriptor.h vendor/llvm/dist/include/llvm/FuzzMutate/Operations.h vendor/llvm/dist/include/llvm/FuzzMutate/Random.h vendor/llvm/dist/include/llvm/FuzzMutate/RandomIRBuilder.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/Attributes.td vendor/llvm/dist/include/llvm/IR/AutoUpgrade.h vendor/llvm/dist/include/llvm/IR/BasicBlock.h vendor/llvm/dist/include/llvm/IR/CFG.h vendor/llvm/dist/include/llvm/IR/CFGDiff.h 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/ConstantFolder.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/DebugLoc.h vendor/llvm/dist/include/llvm/IR/DerivedTypes.h vendor/llvm/dist/include/llvm/IR/DerivedUser.h vendor/llvm/dist/include/llvm/IR/DiagnosticHandler.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/GlobalIFunc.h vendor/llvm/dist/include/llvm/IR/GlobalIndirectSymbol.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/IntrinsicsBPF.td vendor/llvm/dist/include/llvm/IR/IntrinsicsHexagon.td vendor/llvm/dist/include/llvm/IR/IntrinsicsMips.td vendor/llvm/dist/include/llvm/IR/IntrinsicsNVVM.td vendor/llvm/dist/include/llvm/IR/IntrinsicsPowerPC.td vendor/llvm/dist/include/llvm/IR/IntrinsicsRISCV.td vendor/llvm/dist/include/llvm/IR/IntrinsicsSystemZ.td vendor/llvm/dist/include/llvm/IR/IntrinsicsWebAssembly.td vendor/llvm/dist/include/llvm/IR/IntrinsicsX86.td vendor/llvm/dist/include/llvm/IR/IntrinsicsXCore.td vendor/llvm/dist/include/llvm/IR/LLVMContext.h vendor/llvm/dist/include/llvm/IR/LegacyPassManager.h vendor/llvm/dist/include/llvm/IR/LegacyPassManagers.h vendor/llvm/dist/include/llvm/IR/LegacyPassNameParser.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/ModuleSummaryIndex.h vendor/llvm/dist/include/llvm/IR/ModuleSummaryIndexYAML.h vendor/llvm/dist/include/llvm/IR/NoFolder.h vendor/llvm/dist/include/llvm/IR/OperandTraits.h vendor/llvm/dist/include/llvm/IR/Operator.h vendor/llvm/dist/include/llvm/IR/OptBisect.h vendor/llvm/dist/include/llvm/IR/PassInstrumentation.h vendor/llvm/dist/include/llvm/IR/PassManager.h vendor/llvm/dist/include/llvm/IR/PassManagerInternal.h vendor/llvm/dist/include/llvm/IR/PassTimingInfo.h vendor/llvm/dist/include/llvm/IR/PatternMatch.h vendor/llvm/dist/include/llvm/IR/PredIteratorCache.h vendor/llvm/dist/include/llvm/IR/ProfileSummary.h vendor/llvm/dist/include/llvm/IR/RuntimeLibcalls.def vendor/llvm/dist/include/llvm/IR/SafepointIRVerifier.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/IR/Verifier.h vendor/llvm/dist/include/llvm/IRReader/IRReader.h vendor/llvm/dist/include/llvm/InitializePasses.h vendor/llvm/dist/include/llvm/LTO/Caching.h vendor/llvm/dist/include/llvm/LTO/Config.h vendor/llvm/dist/include/llvm/LTO/LTO.h vendor/llvm/dist/include/llvm/LTO/LTOBackend.h vendor/llvm/dist/include/llvm/LTO/SummaryBasedOptimizations.h vendor/llvm/dist/include/llvm/LTO/legacy/LTOCodeGenerator.h vendor/llvm/dist/include/llvm/LTO/legacy/LTOModule.h vendor/llvm/dist/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h vendor/llvm/dist/include/llvm/LTO/legacy/UpdateCompilerUsed.h vendor/llvm/dist/include/llvm/LineEditor/LineEditor.h vendor/llvm/dist/include/llvm/LinkAllIR.h vendor/llvm/dist/include/llvm/LinkAllPasses.h vendor/llvm/dist/include/llvm/Linker/IRMover.h vendor/llvm/dist/include/llvm/Linker/Linker.h vendor/llvm/dist/include/llvm/MC/ConstantPools.h vendor/llvm/dist/include/llvm/MC/LaneBitmask.h vendor/llvm/dist/include/llvm/MC/MCAsmBackend.h vendor/llvm/dist/include/llvm/MC/MCAsmInfo.h vendor/llvm/dist/include/llvm/MC/MCAsmInfoCOFF.h vendor/llvm/dist/include/llvm/MC/MCAsmInfoDarwin.h vendor/llvm/dist/include/llvm/MC/MCAsmInfoELF.h vendor/llvm/dist/include/llvm/MC/MCAsmInfoWasm.h vendor/llvm/dist/include/llvm/MC/MCAsmLayout.h vendor/llvm/dist/include/llvm/MC/MCAsmMacro.h vendor/llvm/dist/include/llvm/MC/MCAssembler.h vendor/llvm/dist/include/llvm/MC/MCCodeEmitter.h vendor/llvm/dist/include/llvm/MC/MCCodePadder.h vendor/llvm/dist/include/llvm/MC/MCCodeView.h vendor/llvm/dist/include/llvm/MC/MCContext.h vendor/llvm/dist/include/llvm/MC/MCDirectives.h vendor/llvm/dist/include/llvm/MC/MCDisassembler/MCDisassembler.h vendor/llvm/dist/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h vendor/llvm/dist/include/llvm/MC/MCDisassembler/MCRelocationInfo.h vendor/llvm/dist/include/llvm/MC/MCDisassembler/MCSymbolizer.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/MCFixup.h vendor/llvm/dist/include/llvm/MC/MCFixupKindInfo.h vendor/llvm/dist/include/llvm/MC/MCFragment.h vendor/llvm/dist/include/llvm/MC/MCInst.h vendor/llvm/dist/include/llvm/MC/MCInstBuilder.h vendor/llvm/dist/include/llvm/MC/MCInstPrinter.h vendor/llvm/dist/include/llvm/MC/MCInstrAnalysis.h vendor/llvm/dist/include/llvm/MC/MCInstrDesc.h vendor/llvm/dist/include/llvm/MC/MCInstrInfo.h vendor/llvm/dist/include/llvm/MC/MCInstrItineraries.h vendor/llvm/dist/include/llvm/MC/MCLabel.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/AsmCond.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/MCAsmParser.h vendor/llvm/dist/include/llvm/MC/MCParser/MCAsmParserExtension.h vendor/llvm/dist/include/llvm/MC/MCParser/MCAsmParserUtils.h vendor/llvm/dist/include/llvm/MC/MCParser/MCParsedAsmOperand.h vendor/llvm/dist/include/llvm/MC/MCParser/MCTargetAsmParser.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/MCSectionWasm.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/MCSymbolCOFF.h vendor/llvm/dist/include/llvm/MC/MCSymbolELF.h vendor/llvm/dist/include/llvm/MC/MCSymbolMachO.h vendor/llvm/dist/include/llvm/MC/MCSymbolWasm.h vendor/llvm/dist/include/llvm/MC/MCTargetOptions.h vendor/llvm/dist/include/llvm/MC/MCTargetOptionsCommandFlags.inc vendor/llvm/dist/include/llvm/MC/MCValue.h vendor/llvm/dist/include/llvm/MC/MCWasmObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCWasmStreamer.h vendor/llvm/dist/include/llvm/MC/MCWin64EH.h vendor/llvm/dist/include/llvm/MC/MCWinCOFFObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCWinCOFFStreamer.h vendor/llvm/dist/include/llvm/MC/MCWinEH.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/MCA/Context.h vendor/llvm/dist/include/llvm/MCA/HWEventListener.h vendor/llvm/dist/include/llvm/MCA/HardwareUnits/HardwareUnit.h vendor/llvm/dist/include/llvm/MCA/HardwareUnits/LSUnit.h vendor/llvm/dist/include/llvm/MCA/HardwareUnits/RegisterFile.h vendor/llvm/dist/include/llvm/MCA/HardwareUnits/ResourceManager.h vendor/llvm/dist/include/llvm/MCA/HardwareUnits/RetireControlUnit.h vendor/llvm/dist/include/llvm/MCA/HardwareUnits/Scheduler.h vendor/llvm/dist/include/llvm/MCA/InstrBuilder.h vendor/llvm/dist/include/llvm/MCA/Instruction.h vendor/llvm/dist/include/llvm/MCA/Pipeline.h vendor/llvm/dist/include/llvm/MCA/SourceMgr.h vendor/llvm/dist/include/llvm/MCA/Stages/DispatchStage.h vendor/llvm/dist/include/llvm/MCA/Stages/EntryStage.h vendor/llvm/dist/include/llvm/MCA/Stages/ExecuteStage.h vendor/llvm/dist/include/llvm/MCA/Stages/InstructionTables.h vendor/llvm/dist/include/llvm/MCA/Stages/RetireStage.h vendor/llvm/dist/include/llvm/MCA/Stages/Stage.h vendor/llvm/dist/include/llvm/MCA/Support.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/COFFImportFile.h vendor/llvm/dist/include/llvm/Object/COFFModuleDefinition.h vendor/llvm/dist/include/llvm/Object/CVDebugRecord.h vendor/llvm/dist/include/llvm/Object/Decompressor.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/IRObjectFile.h vendor/llvm/dist/include/llvm/Object/IRSymtab.h vendor/llvm/dist/include/llvm/Object/MachO.h vendor/llvm/dist/include/llvm/Object/MachOUniversal.h vendor/llvm/dist/include/llvm/Object/ModuleSymbolTable.h vendor/llvm/dist/include/llvm/Object/ObjectFile.h vendor/llvm/dist/include/llvm/Object/StackMapParser.h vendor/llvm/dist/include/llvm/Object/SymbolSize.h vendor/llvm/dist/include/llvm/Object/SymbolicFile.h vendor/llvm/dist/include/llvm/Object/Wasm.h vendor/llvm/dist/include/llvm/Object/WasmTraits.h vendor/llvm/dist/include/llvm/Object/WindowsResource.h vendor/llvm/dist/include/llvm/ObjectYAML/COFFYAML.h vendor/llvm/dist/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h vendor/llvm/dist/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h vendor/llvm/dist/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h vendor/llvm/dist/include/llvm/ObjectYAML/CodeViewYAMLTypes.h vendor/llvm/dist/include/llvm/ObjectYAML/DWARFEmitter.h vendor/llvm/dist/include/llvm/ObjectYAML/DWARFYAML.h vendor/llvm/dist/include/llvm/ObjectYAML/ELFYAML.h vendor/llvm/dist/include/llvm/ObjectYAML/MachOYAML.h vendor/llvm/dist/include/llvm/ObjectYAML/ObjectYAML.h vendor/llvm/dist/include/llvm/ObjectYAML/WasmYAML.h vendor/llvm/dist/include/llvm/ObjectYAML/YAML.h vendor/llvm/dist/include/llvm/Option/Arg.h vendor/llvm/dist/include/llvm/Option/ArgList.h vendor/llvm/dist/include/llvm/Option/OptParser.td vendor/llvm/dist/include/llvm/Option/OptSpecifier.h vendor/llvm/dist/include/llvm/Option/OptTable.h vendor/llvm/dist/include/llvm/Option/Option.h vendor/llvm/dist/include/llvm/Pass.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/Passes/PassBuilder.h vendor/llvm/dist/include/llvm/Passes/PassPlugin.h vendor/llvm/dist/include/llvm/Passes/StandardInstrumentations.h vendor/llvm/dist/include/llvm/ProfileData/Coverage/CoverageMapping.h vendor/llvm/dist/include/llvm/ProfileData/Coverage/CoverageMappingReader.h vendor/llvm/dist/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h vendor/llvm/dist/include/llvm/ProfileData/GCOV.h vendor/llvm/dist/include/llvm/ProfileData/InstrProf.h vendor/llvm/dist/include/llvm/ProfileData/InstrProfData.inc vendor/llvm/dist/include/llvm/ProfileData/InstrProfReader.h vendor/llvm/dist/include/llvm/ProfileData/InstrProfWriter.h vendor/llvm/dist/include/llvm/ProfileData/ProfileCommon.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/AArch64TargetParser.def vendor/llvm/dist/include/llvm/Support/AArch64TargetParser.h vendor/llvm/dist/include/llvm/Support/AMDGPUMetadata.h vendor/llvm/dist/include/llvm/Support/AMDHSAKernelDescriptor.h vendor/llvm/dist/include/llvm/Support/ARMAttributeParser.h vendor/llvm/dist/include/llvm/Support/ARMBuildAttributes.h vendor/llvm/dist/include/llvm/Support/ARMEHABI.h vendor/llvm/dist/include/llvm/Support/ARMTargetParser.def vendor/llvm/dist/include/llvm/Support/ARMTargetParser.h vendor/llvm/dist/include/llvm/Support/ARMWinEH.h vendor/llvm/dist/include/llvm/Support/AlignOf.h vendor/llvm/dist/include/llvm/Support/Allocator.h vendor/llvm/dist/include/llvm/Support/ArrayRecycler.h vendor/llvm/dist/include/llvm/Support/Atomic.h vendor/llvm/dist/include/llvm/Support/AtomicOrdering.h vendor/llvm/dist/include/llvm/Support/BinaryByteStream.h vendor/llvm/dist/include/llvm/Support/BinaryItemStream.h vendor/llvm/dist/include/llvm/Support/BinaryStream.h vendor/llvm/dist/include/llvm/Support/BinaryStreamArray.h vendor/llvm/dist/include/llvm/Support/BinaryStreamError.h vendor/llvm/dist/include/llvm/Support/BinaryStreamReader.h vendor/llvm/dist/include/llvm/Support/BinaryStreamRef.h vendor/llvm/dist/include/llvm/Support/BinaryStreamWriter.h vendor/llvm/dist/include/llvm/Support/BlockFrequency.h vendor/llvm/dist/include/llvm/Support/BranchProbability.h vendor/llvm/dist/include/llvm/Support/BuryPointer.h vendor/llvm/dist/include/llvm/Support/CBindingWrapping.h vendor/llvm/dist/include/llvm/Support/CFGUpdate.h vendor/llvm/dist/include/llvm/Support/COM.h vendor/llvm/dist/include/llvm/Support/CachePruning.h vendor/llvm/dist/include/llvm/Support/Capacity.h vendor/llvm/dist/include/llvm/Support/Casting.h vendor/llvm/dist/include/llvm/Support/CheckedArithmetic.h vendor/llvm/dist/include/llvm/Support/Chrono.h vendor/llvm/dist/include/llvm/Support/CodeGen.h vendor/llvm/dist/include/llvm/Support/CodeGenCoverage.h vendor/llvm/dist/include/llvm/Support/CommandLine.h vendor/llvm/dist/include/llvm/Support/Compiler.h vendor/llvm/dist/include/llvm/Support/Compression.h vendor/llvm/dist/include/llvm/Support/ConvertUTF.h vendor/llvm/dist/include/llvm/Support/CrashRecoveryContext.h vendor/llvm/dist/include/llvm/Support/DJB.h vendor/llvm/dist/include/llvm/Support/DOTGraphTraits.h vendor/llvm/dist/include/llvm/Support/DataExtractor.h vendor/llvm/dist/include/llvm/Support/DataTypes.h vendor/llvm/dist/include/llvm/Support/Debug.h vendor/llvm/dist/include/llvm/Support/DebugCounter.h vendor/llvm/dist/include/llvm/Support/DynamicLibrary.h vendor/llvm/dist/include/llvm/Support/Endian.h vendor/llvm/dist/include/llvm/Support/EndianStream.h vendor/llvm/dist/include/llvm/Support/Errc.h vendor/llvm/dist/include/llvm/Support/Errno.h vendor/llvm/dist/include/llvm/Support/Error.h vendor/llvm/dist/include/llvm/Support/ErrorHandling.h vendor/llvm/dist/include/llvm/Support/ErrorOr.h vendor/llvm/dist/include/llvm/Support/FileCheck.h vendor/llvm/dist/include/llvm/Support/FileOutputBuffer.h vendor/llvm/dist/include/llvm/Support/FileSystem.h vendor/llvm/dist/include/llvm/Support/FileUtilities.h vendor/llvm/dist/include/llvm/Support/Format.h vendor/llvm/dist/include/llvm/Support/FormatAdapters.h vendor/llvm/dist/include/llvm/Support/FormatCommon.h vendor/llvm/dist/include/llvm/Support/FormatProviders.h vendor/llvm/dist/include/llvm/Support/FormatVariadic.h vendor/llvm/dist/include/llvm/Support/FormatVariadicDetails.h vendor/llvm/dist/include/llvm/Support/FormattedStream.h vendor/llvm/dist/include/llvm/Support/GenericDomTree.h vendor/llvm/dist/include/llvm/Support/GenericDomTreeConstruction.h vendor/llvm/dist/include/llvm/Support/GlobPattern.h vendor/llvm/dist/include/llvm/Support/GraphWriter.h vendor/llvm/dist/include/llvm/Support/Host.h vendor/llvm/dist/include/llvm/Support/InitLLVM.h vendor/llvm/dist/include/llvm/Support/ItaniumManglingCanonicalizer.h vendor/llvm/dist/include/llvm/Support/JSON.h vendor/llvm/dist/include/llvm/Support/JamCRC.h vendor/llvm/dist/include/llvm/Support/KnownBits.h vendor/llvm/dist/include/llvm/Support/LEB128.h vendor/llvm/dist/include/llvm/Support/LineIterator.h vendor/llvm/dist/include/llvm/Support/LockFileManager.h vendor/llvm/dist/include/llvm/Support/LowLevelTypeImpl.h vendor/llvm/dist/include/llvm/Support/MSVCErrorWorkarounds.h vendor/llvm/dist/include/llvm/Support/MachineValueType.h vendor/llvm/dist/include/llvm/Support/ManagedStatic.h vendor/llvm/dist/include/llvm/Support/MathExtras.h vendor/llvm/dist/include/llvm/Support/MemAlloc.h vendor/llvm/dist/include/llvm/Support/Memory.h vendor/llvm/dist/include/llvm/Support/MemoryBuffer.h vendor/llvm/dist/include/llvm/Support/MipsABIFlags.h vendor/llvm/dist/include/llvm/Support/Mutex.h vendor/llvm/dist/include/llvm/Support/MutexGuard.h vendor/llvm/dist/include/llvm/Support/NativeFormatting.h vendor/llvm/dist/include/llvm/Support/OnDiskHashTable.h vendor/llvm/dist/include/llvm/Support/Options.h vendor/llvm/dist/include/llvm/Support/Parallel.h vendor/llvm/dist/include/llvm/Support/Path.h vendor/llvm/dist/include/llvm/Support/PluginLoader.h vendor/llvm/dist/include/llvm/Support/PointerLikeTypeTraits.h vendor/llvm/dist/include/llvm/Support/PrettyStackTrace.h vendor/llvm/dist/include/llvm/Support/Printable.h vendor/llvm/dist/include/llvm/Support/Process.h vendor/llvm/dist/include/llvm/Support/Program.h vendor/llvm/dist/include/llvm/Support/RWMutex.h vendor/llvm/dist/include/llvm/Support/RandomNumberGenerator.h vendor/llvm/dist/include/llvm/Support/Recycler.h vendor/llvm/dist/include/llvm/Support/RecyclingAllocator.h vendor/llvm/dist/include/llvm/Support/Regex.h vendor/llvm/dist/include/llvm/Support/Registry.h vendor/llvm/dist/include/llvm/Support/SHA1.h vendor/llvm/dist/include/llvm/Support/SMLoc.h vendor/llvm/dist/include/llvm/Support/SaveAndRestore.h vendor/llvm/dist/include/llvm/Support/ScaledNumber.h vendor/llvm/dist/include/llvm/Support/ScopedPrinter.h vendor/llvm/dist/include/llvm/Support/Signals.h vendor/llvm/dist/include/llvm/Support/SmallVectorMemoryBuffer.h vendor/llvm/dist/include/llvm/Support/Solaris/sys/regset.h vendor/llvm/dist/include/llvm/Support/SourceMgr.h vendor/llvm/dist/include/llvm/Support/SpecialCaseList.h vendor/llvm/dist/include/llvm/Support/StringPool.h vendor/llvm/dist/include/llvm/Support/StringSaver.h vendor/llvm/dist/include/llvm/Support/SwapByteOrder.h vendor/llvm/dist/include/llvm/Support/SymbolRemappingReader.h vendor/llvm/dist/include/llvm/Support/SystemUtils.h vendor/llvm/dist/include/llvm/Support/TarWriter.h vendor/llvm/dist/include/llvm/Support/TargetOpcodes.def 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/TaskQueue.h vendor/llvm/dist/include/llvm/Support/ThreadLocal.h vendor/llvm/dist/include/llvm/Support/ThreadPool.h vendor/llvm/dist/include/llvm/Support/Threading.h vendor/llvm/dist/include/llvm/Support/Timer.h vendor/llvm/dist/include/llvm/Support/ToolOutputFile.h vendor/llvm/dist/include/llvm/Support/TrailingObjects.h vendor/llvm/dist/include/llvm/Support/TrigramIndex.h vendor/llvm/dist/include/llvm/Support/TypeName.h vendor/llvm/dist/include/llvm/Support/Unicode.h vendor/llvm/dist/include/llvm/Support/UnicodeCharRanges.h vendor/llvm/dist/include/llvm/Support/UniqueLock.h vendor/llvm/dist/include/llvm/Support/Valgrind.h vendor/llvm/dist/include/llvm/Support/VersionTuple.h vendor/llvm/dist/include/llvm/Support/VirtualFileSystem.h vendor/llvm/dist/include/llvm/Support/Watchdog.h vendor/llvm/dist/include/llvm/Support/Win64EH.h vendor/llvm/dist/include/llvm/Support/WindowsError.h vendor/llvm/dist/include/llvm/Support/WithColor.h vendor/llvm/dist/include/llvm/Support/X86DisassemblerDecoderCommon.h vendor/llvm/dist/include/llvm/Support/X86TargetParser.def 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_os_ostream.h vendor/llvm/dist/include/llvm/Support/raw_ostream.h vendor/llvm/dist/include/llvm/Support/raw_sha1_ostream.h vendor/llvm/dist/include/llvm/Support/thread.h vendor/llvm/dist/include/llvm/Support/type_traits.h vendor/llvm/dist/include/llvm/TableGen/Error.h vendor/llvm/dist/include/llvm/TableGen/Main.h vendor/llvm/dist/include/llvm/TableGen/Record.h vendor/llvm/dist/include/llvm/TableGen/SearchableTable.td vendor/llvm/dist/include/llvm/TableGen/SetTheory.h vendor/llvm/dist/include/llvm/TableGen/StringMatcher.h vendor/llvm/dist/include/llvm/TableGen/StringToOffsetTable.h vendor/llvm/dist/include/llvm/TableGen/TableGenBackend.h vendor/llvm/dist/include/llvm/Target/CodeGenCWrappers.h vendor/llvm/dist/include/llvm/Target/GenericOpcodes.td vendor/llvm/dist/include/llvm/Target/GlobalISel/RegisterBank.td vendor/llvm/dist/include/llvm/Target/GlobalISel/SelectionDAGCompat.td vendor/llvm/dist/include/llvm/Target/GlobalISel/Target.td vendor/llvm/dist/include/llvm/Target/Target.td vendor/llvm/dist/include/llvm/Target/TargetCallingConv.td vendor/llvm/dist/include/llvm/Target/TargetInstrPredicate.td vendor/llvm/dist/include/llvm/Target/TargetIntrinsicInfo.h vendor/llvm/dist/include/llvm/Target/TargetItinerary.td vendor/llvm/dist/include/llvm/Target/TargetLoweringObjectFile.h vendor/llvm/dist/include/llvm/Target/TargetMachine.h vendor/llvm/dist/include/llvm/Target/TargetOptions.h vendor/llvm/dist/include/llvm/Target/TargetPfmCounters.td vendor/llvm/dist/include/llvm/Target/TargetSchedule.td vendor/llvm/dist/include/llvm/Target/TargetSelectionDAG.td vendor/llvm/dist/include/llvm/Testing/Support/Error.h vendor/llvm/dist/include/llvm/Testing/Support/SupportHelpers.h vendor/llvm/dist/include/llvm/TextAPI/ELF/ELFStub.h vendor/llvm/dist/include/llvm/TextAPI/ELF/TBEHandler.h vendor/llvm/dist/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h vendor/llvm/dist/include/llvm/ToolDrivers/llvm-lib/LibDriver.h vendor/llvm/dist/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h vendor/llvm/dist/include/llvm/Transforms/Coroutines.h vendor/llvm/dist/include/llvm/Transforms/IPO.h vendor/llvm/dist/include/llvm/Transforms/IPO/AlwaysInliner.h vendor/llvm/dist/include/llvm/Transforms/IPO/ArgumentPromotion.h vendor/llvm/dist/include/llvm/Transforms/IPO/CalledValuePropagation.h vendor/llvm/dist/include/llvm/Transforms/IPO/ConstantMerge.h vendor/llvm/dist/include/llvm/Transforms/IPO/CrossDSOCFI.h vendor/llvm/dist/include/llvm/Transforms/IPO/DeadArgumentElimination.h vendor/llvm/dist/include/llvm/Transforms/IPO/ElimAvailExtern.h vendor/llvm/dist/include/llvm/Transforms/IPO/ForceFunctionAttrs.h vendor/llvm/dist/include/llvm/Transforms/IPO/FunctionAttrs.h vendor/llvm/dist/include/llvm/Transforms/IPO/FunctionImport.h vendor/llvm/dist/include/llvm/Transforms/IPO/GlobalDCE.h vendor/llvm/dist/include/llvm/Transforms/IPO/GlobalOpt.h vendor/llvm/dist/include/llvm/Transforms/IPO/GlobalSplit.h vendor/llvm/dist/include/llvm/Transforms/IPO/HotColdSplitting.h vendor/llvm/dist/include/llvm/Transforms/IPO/InferFunctionAttrs.h vendor/llvm/dist/include/llvm/Transforms/IPO/Inliner.h vendor/llvm/dist/include/llvm/Transforms/IPO/Internalize.h vendor/llvm/dist/include/llvm/Transforms/IPO/LowerTypeTests.h vendor/llvm/dist/include/llvm/Transforms/IPO/PartialInlining.h vendor/llvm/dist/include/llvm/Transforms/IPO/PassManagerBuilder.h vendor/llvm/dist/include/llvm/Transforms/IPO/SCCP.h vendor/llvm/dist/include/llvm/Transforms/IPO/SampleProfile.h vendor/llvm/dist/include/llvm/Transforms/IPO/StripDeadPrototypes.h vendor/llvm/dist/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h vendor/llvm/dist/include/llvm/Transforms/IPO/WholeProgramDevirt.h vendor/llvm/dist/include/llvm/Transforms/InstCombine/InstCombine.h vendor/llvm/dist/include/llvm/Transforms/InstCombine/InstCombineWorklist.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation/BoundsChecking.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation/CGProfile.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation/GCOVProfiler.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation/InstrProfiling.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation/MemorySanitizer.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h vendor/llvm/dist/include/llvm/Transforms/ObjCARC.h vendor/llvm/dist/include/llvm/Transforms/Scalar.h vendor/llvm/dist/include/llvm/Transforms/Scalar/ADCE.h vendor/llvm/dist/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h vendor/llvm/dist/include/llvm/Transforms/Scalar/BDCE.h vendor/llvm/dist/include/llvm/Transforms/Scalar/CallSiteSplitting.h vendor/llvm/dist/include/llvm/Transforms/Scalar/ConstantHoisting.h vendor/llvm/dist/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h vendor/llvm/dist/include/llvm/Transforms/Scalar/DCE.h vendor/llvm/dist/include/llvm/Transforms/Scalar/DeadStoreElimination.h vendor/llvm/dist/include/llvm/Transforms/Scalar/DivRemPairs.h vendor/llvm/dist/include/llvm/Transforms/Scalar/EarlyCSE.h vendor/llvm/dist/include/llvm/Transforms/Scalar/Float2Int.h vendor/llvm/dist/include/llvm/Transforms/Scalar/GVN.h vendor/llvm/dist/include/llvm/Transforms/Scalar/GVNExpression.h vendor/llvm/dist/include/llvm/Transforms/Scalar/GuardWidening.h vendor/llvm/dist/include/llvm/Transforms/Scalar/IVUsersPrinter.h vendor/llvm/dist/include/llvm/Transforms/Scalar/IndVarSimplify.h vendor/llvm/dist/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h vendor/llvm/dist/include/llvm/Transforms/Scalar/InstSimplifyPass.h vendor/llvm/dist/include/llvm/Transforms/Scalar/JumpThreading.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LICM.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopDataPrefetch.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopDeletion.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopDistribute.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopInstSimplify.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopLoadElimination.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopPassManager.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopPredication.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopRotation.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopSink.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopStrengthReduce.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopUnrollPass.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LowerAtomic.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LowerGuardIntrinsic.h vendor/llvm/dist/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h vendor/llvm/dist/include/llvm/Transforms/Scalar/MemCpyOptimizer.h vendor/llvm/dist/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h vendor/llvm/dist/include/llvm/Transforms/Scalar/NaryReassociate.h vendor/llvm/dist/include/llvm/Transforms/Scalar/NewGVN.h vendor/llvm/dist/include/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h vendor/llvm/dist/include/llvm/Transforms/Scalar/Reassociate.h vendor/llvm/dist/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h vendor/llvm/dist/include/llvm/Transforms/Scalar/SCCP.h vendor/llvm/dist/include/llvm/Transforms/Scalar/SROA.h vendor/llvm/dist/include/llvm/Transforms/Scalar/Scalarizer.h vendor/llvm/dist/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h vendor/llvm/dist/include/llvm/Transforms/Scalar/SimplifyCFG.h vendor/llvm/dist/include/llvm/Transforms/Scalar/Sink.h vendor/llvm/dist/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h vendor/llvm/dist/include/llvm/Transforms/Scalar/SpeculativeExecution.h vendor/llvm/dist/include/llvm/Transforms/Scalar/TailRecursionElimination.h vendor/llvm/dist/include/llvm/Transforms/Scalar/WarnMissedTransforms.h vendor/llvm/dist/include/llvm/Transforms/Utils.h vendor/llvm/dist/include/llvm/Transforms/Utils/ASanStackFrameLayout.h vendor/llvm/dist/include/llvm/Transforms/Utils/AddDiscriminators.h vendor/llvm/dist/include/llvm/Transforms/Utils/BasicBlockUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/BreakCriticalEdges.h vendor/llvm/dist/include/llvm/Transforms/Utils/BuildLibCalls.h vendor/llvm/dist/include/llvm/Transforms/Utils/BypassSlowDivision.h vendor/llvm/dist/include/llvm/Transforms/Utils/CallPromotionUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/CanonicalizeAliases.h vendor/llvm/dist/include/llvm/Transforms/Utils/Cloning.h vendor/llvm/dist/include/llvm/Transforms/Utils/CodeExtractor.h vendor/llvm/dist/include/llvm/Transforms/Utils/CtorUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/EntryExitInstrumenter.h vendor/llvm/dist/include/llvm/Transforms/Utils/EscapeEnumerator.h vendor/llvm/dist/include/llvm/Transforms/Utils/Evaluator.h vendor/llvm/dist/include/llvm/Transforms/Utils/FunctionComparator.h vendor/llvm/dist/include/llvm/Transforms/Utils/FunctionImportUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/GlobalStatus.h vendor/llvm/dist/include/llvm/Transforms/Utils/GuardUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h vendor/llvm/dist/include/llvm/Transforms/Utils/IntegerDivision.h vendor/llvm/dist/include/llvm/Transforms/Utils/LCSSA.h vendor/llvm/dist/include/llvm/Transforms/Utils/LibCallsShrinkWrap.h vendor/llvm/dist/include/llvm/Transforms/Utils/Local.h vendor/llvm/dist/include/llvm/Transforms/Utils/LoopRotationUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/LoopSimplify.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/LowerInvoke.h vendor/llvm/dist/include/llvm/Transforms/Utils/LowerMemIntrinsics.h vendor/llvm/dist/include/llvm/Transforms/Utils/Mem2Reg.h vendor/llvm/dist/include/llvm/Transforms/Utils/ModuleUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/NameAnonGlobals.h vendor/llvm/dist/include/llvm/Transforms/Utils/PredicateInfo.h vendor/llvm/dist/include/llvm/Transforms/Utils/PromoteMemToReg.h vendor/llvm/dist/include/llvm/Transforms/Utils/SSAUpdater.h vendor/llvm/dist/include/llvm/Transforms/Utils/SSAUpdaterBulk.h vendor/llvm/dist/include/llvm/Transforms/Utils/SSAUpdaterImpl.h vendor/llvm/dist/include/llvm/Transforms/Utils/SanitizerStats.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/SplitModule.h vendor/llvm/dist/include/llvm/Transforms/Utils/SymbolRewriter.h vendor/llvm/dist/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h vendor/llvm/dist/include/llvm/Transforms/Utils/UnrollLoop.h vendor/llvm/dist/include/llvm/Transforms/Utils/VNCoercion.h vendor/llvm/dist/include/llvm/Transforms/Utils/ValueMapper.h vendor/llvm/dist/include/llvm/Transforms/Vectorize.h vendor/llvm/dist/include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h vendor/llvm/dist/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h vendor/llvm/dist/include/llvm/Transforms/Vectorize/LoopVectorize.h vendor/llvm/dist/include/llvm/Transforms/Vectorize/SLPVectorizer.h vendor/llvm/dist/include/llvm/WindowsManifest/WindowsManifestMerger.h vendor/llvm/dist/include/llvm/WindowsResource/ResourceProcessor.h vendor/llvm/dist/include/llvm/WindowsResource/ResourceScriptToken.h vendor/llvm/dist/include/llvm/WindowsResource/ResourceScriptTokenList.h vendor/llvm/dist/include/llvm/XRay/BlockIndexer.h vendor/llvm/dist/include/llvm/XRay/BlockPrinter.h vendor/llvm/dist/include/llvm/XRay/BlockVerifier.h vendor/llvm/dist/include/llvm/XRay/FDRLogBuilder.h vendor/llvm/dist/include/llvm/XRay/FDRRecordConsumer.h vendor/llvm/dist/include/llvm/XRay/FDRRecordProducer.h vendor/llvm/dist/include/llvm/XRay/FDRRecords.h vendor/llvm/dist/include/llvm/XRay/FDRTraceExpander.h vendor/llvm/dist/include/llvm/XRay/FDRTraceWriter.h vendor/llvm/dist/include/llvm/XRay/FileHeaderReader.h vendor/llvm/dist/include/llvm/XRay/Graph.h vendor/llvm/dist/include/llvm/XRay/InstrumentationMap.h vendor/llvm/dist/include/llvm/XRay/Profile.h vendor/llvm/dist/include/llvm/XRay/RecordPrinter.h vendor/llvm/dist/include/llvm/XRay/Trace.h vendor/llvm/dist/include/llvm/XRay/XRayRecord.h vendor/llvm/dist/include/llvm/XRay/YAMLXRayRecord.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/AliasAnalysisSummary.cpp vendor/llvm/dist/lib/Analysis/AliasAnalysisSummary.h vendor/llvm/dist/lib/Analysis/AliasSetTracker.cpp vendor/llvm/dist/lib/Analysis/Analysis.cpp vendor/llvm/dist/lib/Analysis/AssumptionCache.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/CFGPrinter.cpp vendor/llvm/dist/lib/Analysis/CFLAndersAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/CFLGraph.h vendor/llvm/dist/lib/Analysis/CFLSteensAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/CGSCCPassManager.cpp vendor/llvm/dist/lib/Analysis/CallGraph.cpp vendor/llvm/dist/lib/Analysis/CallGraphSCCPass.cpp vendor/llvm/dist/lib/Analysis/CallPrinter.cpp vendor/llvm/dist/lib/Analysis/CaptureTracking.cpp vendor/llvm/dist/lib/Analysis/CmpInstAnalysis.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/DemandedBits.cpp vendor/llvm/dist/lib/Analysis/DependenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/DivergenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/DomPrinter.cpp vendor/llvm/dist/lib/Analysis/DominanceFrontier.cpp vendor/llvm/dist/lib/Analysis/EHPersonalities.cpp vendor/llvm/dist/lib/Analysis/GlobalsModRef.cpp vendor/llvm/dist/lib/Analysis/GuardUtils.cpp vendor/llvm/dist/lib/Analysis/IVDescriptors.cpp vendor/llvm/dist/lib/Analysis/IVUsers.cpp vendor/llvm/dist/lib/Analysis/IndirectCallPromotionAnalysis.cpp vendor/llvm/dist/lib/Analysis/InlineCost.cpp vendor/llvm/dist/lib/Analysis/InstCount.cpp vendor/llvm/dist/lib/Analysis/InstructionPrecedenceTracking.cpp vendor/llvm/dist/lib/Analysis/InstructionSimplify.cpp vendor/llvm/dist/lib/Analysis/Interval.cpp vendor/llvm/dist/lib/Analysis/IntervalPartition.cpp vendor/llvm/dist/lib/Analysis/LazyBlockFrequencyInfo.cpp vendor/llvm/dist/lib/Analysis/LazyBranchProbabilityInfo.cpp vendor/llvm/dist/lib/Analysis/LazyCallGraph.cpp vendor/llvm/dist/lib/Analysis/LazyValueInfo.cpp vendor/llvm/dist/lib/Analysis/LegacyDivergenceAnalysis.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/LoopAnalysisManager.cpp vendor/llvm/dist/lib/Analysis/LoopInfo.cpp vendor/llvm/dist/lib/Analysis/LoopPass.cpp vendor/llvm/dist/lib/Analysis/LoopUnrollAnalyzer.cpp 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/MemoryLocation.cpp vendor/llvm/dist/lib/Analysis/MemorySSA.cpp vendor/llvm/dist/lib/Analysis/MemorySSAUpdater.cpp vendor/llvm/dist/lib/Analysis/ModuleDebugInfoPrinter.cpp vendor/llvm/dist/lib/Analysis/ModuleSummaryAnalysis.cpp vendor/llvm/dist/lib/Analysis/MustExecute.cpp vendor/llvm/dist/lib/Analysis/ObjCARCAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/ObjCARCAnalysisUtils.cpp vendor/llvm/dist/lib/Analysis/ObjCARCInstKind.cpp vendor/llvm/dist/lib/Analysis/OptimizationRemarkEmitter.cpp vendor/llvm/dist/lib/Analysis/OrderedBasicBlock.cpp vendor/llvm/dist/lib/Analysis/OrderedInstructions.cpp vendor/llvm/dist/lib/Analysis/PHITransAddr.cpp vendor/llvm/dist/lib/Analysis/PhiValues.cpp vendor/llvm/dist/lib/Analysis/PostDominators.cpp vendor/llvm/dist/lib/Analysis/ProfileSummaryInfo.cpp vendor/llvm/dist/lib/Analysis/PtrUseVisitor.cpp vendor/llvm/dist/lib/Analysis/RegionInfo.cpp vendor/llvm/dist/lib/Analysis/RegionPass.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/StackSafetyAnalysis.cpp vendor/llvm/dist/lib/Analysis/StratifiedSets.h vendor/llvm/dist/lib/Analysis/SyncDependenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/SyntheticCountsUtils.cpp vendor/llvm/dist/lib/Analysis/TargetLibraryInfo.cpp vendor/llvm/dist/lib/Analysis/TargetTransformInfo.cpp vendor/llvm/dist/lib/Analysis/Trace.cpp vendor/llvm/dist/lib/Analysis/TypeBasedAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/TypeMetadataUtils.cpp vendor/llvm/dist/lib/Analysis/ValueLattice.cpp vendor/llvm/dist/lib/Analysis/ValueLatticeUtils.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/LLLexer.h 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/BinaryFormat/AMDGPUMetadataVerifier.cpp vendor/llvm/dist/lib/BinaryFormat/Dwarf.cpp vendor/llvm/dist/lib/BinaryFormat/Magic.cpp vendor/llvm/dist/lib/BinaryFormat/MsgPackReader.cpp vendor/llvm/dist/lib/BinaryFormat/MsgPackWriter.cpp vendor/llvm/dist/lib/BinaryFormat/Wasm.cpp vendor/llvm/dist/lib/Bitcode/Reader/BitReader.cpp vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.cpp vendor/llvm/dist/lib/Bitcode/Reader/MetadataLoader.cpp vendor/llvm/dist/lib/Bitcode/Reader/MetadataLoader.h vendor/llvm/dist/lib/Bitcode/Reader/ValueList.cpp vendor/llvm/dist/lib/Bitcode/Reader/ValueList.h vendor/llvm/dist/lib/Bitcode/Writer/BitWriter.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/AggressiveAntiDepBreaker.h 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/AntiDepBreaker.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/ARMException.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AccelTable.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AddressPool.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AddressPool.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/ByteStreamer.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/CodeViewDebug.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/DbgEntityHistoryCalculator.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DebugLocEntry.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DebugLocStream.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DebugLocStream.h 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/DwarfException.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfExpression.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfExpression.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfFile.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfFile.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfStringPool.h 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/WasmException.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/WasmException.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/WinCFGuard.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/WinCFGuard.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/BranchRelaxation.cpp vendor/llvm/dist/lib/CodeGen/BreakFalseDeps.cpp vendor/llvm/dist/lib/CodeGen/BuiltinGCs.cpp vendor/llvm/dist/lib/CodeGen/CFIInstrInserter.cpp 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/CriticalAntiDepBreaker.cpp vendor/llvm/dist/lib/CodeGen/CriticalAntiDepBreaker.h vendor/llvm/dist/lib/CodeGen/DFAPacketizer.cpp vendor/llvm/dist/lib/CodeGen/DeadMachineInstructionElim.cpp vendor/llvm/dist/lib/CodeGen/DetectDeadLanes.cpp vendor/llvm/dist/lib/CodeGen/DwarfEHPrepare.cpp vendor/llvm/dist/lib/CodeGen/EarlyIfConversion.cpp vendor/llvm/dist/lib/CodeGen/EdgeBundles.cpp vendor/llvm/dist/lib/CodeGen/ExecutionDomainFix.cpp vendor/llvm/dist/lib/CodeGen/ExpandMemCmp.cpp vendor/llvm/dist/lib/CodeGen/ExpandPostRAPseudos.cpp vendor/llvm/dist/lib/CodeGen/ExpandReductions.cpp vendor/llvm/dist/lib/CodeGen/FEntryInserter.cpp vendor/llvm/dist/lib/CodeGen/FaultMaps.cpp vendor/llvm/dist/lib/CodeGen/FuncletLayout.cpp vendor/llvm/dist/lib/CodeGen/GCMetadata.cpp vendor/llvm/dist/lib/CodeGen/GCMetadataPrinter.cpp vendor/llvm/dist/lib/CodeGen/GCRootLowering.cpp vendor/llvm/dist/lib/CodeGen/GCStrategy.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/CSEInfo.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/CallLowering.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/Combiner.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/CombinerHelper.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/GlobalISel.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/IRTranslator.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/InstructionSelect.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/InstructionSelector.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/LegalityPredicates.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/LegalizeMutations.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/Legalizer.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/LegalizerHelper.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/LegalizerInfo.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/Localizer.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/RegBankSelect.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/RegisterBank.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/Utils.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/IndirectBrExpandPass.cpp vendor/llvm/dist/lib/CodeGen/InlineSpiller.cpp vendor/llvm/dist/lib/CodeGen/InterferenceCache.cpp vendor/llvm/dist/lib/CodeGen/InterferenceCache.h vendor/llvm/dist/lib/CodeGen/InterleavedAccessPass.cpp vendor/llvm/dist/lib/CodeGen/InterleavedLoadCombinePass.cpp vendor/llvm/dist/lib/CodeGen/IntrinsicLowering.cpp vendor/llvm/dist/lib/CodeGen/LLVMTargetMachine.cpp vendor/llvm/dist/lib/CodeGen/LatencyPriorityQueue.cpp vendor/llvm/dist/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp vendor/llvm/dist/lib/CodeGen/LexicalScopes.cpp vendor/llvm/dist/lib/CodeGen/LiveDebugValues.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/LiveIntervalUnion.cpp vendor/llvm/dist/lib/CodeGen/LiveIntervals.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/LiveRangeShrink.cpp vendor/llvm/dist/lib/CodeGen/LiveRangeUtils.h vendor/llvm/dist/lib/CodeGen/LiveRegMatrix.cpp vendor/llvm/dist/lib/CodeGen/LiveRegUnits.cpp vendor/llvm/dist/lib/CodeGen/LiveStacks.cpp vendor/llvm/dist/lib/CodeGen/LiveVariables.cpp vendor/llvm/dist/lib/CodeGen/LocalStackSlotAllocation.cpp vendor/llvm/dist/lib/CodeGen/LoopTraversal.cpp vendor/llvm/dist/lib/CodeGen/LowLevelType.cpp vendor/llvm/dist/lib/CodeGen/LowerEmuTLS.cpp vendor/llvm/dist/lib/CodeGen/MIRCanonicalizerPass.cpp 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/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/MachineCopyPropagation.cpp vendor/llvm/dist/lib/CodeGen/MachineDominanceFrontier.cpp vendor/llvm/dist/lib/CodeGen/MachineDominators.cpp vendor/llvm/dist/lib/CodeGen/MachineFrameInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineFunction.cpp vendor/llvm/dist/lib/CodeGen/MachineFunctionPass.cpp vendor/llvm/dist/lib/CodeGen/MachineFunctionPrinterPass.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/MachineModuleInfoImpls.cpp vendor/llvm/dist/lib/CodeGen/MachineOperand.cpp vendor/llvm/dist/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp vendor/llvm/dist/lib/CodeGen/MachineOutliner.cpp vendor/llvm/dist/lib/CodeGen/MachinePipeliner.cpp vendor/llvm/dist/lib/CodeGen/MachinePostDominators.cpp vendor/llvm/dist/lib/CodeGen/MachineRegionInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineRegisterInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineSSAUpdater.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/MacroFusion.cpp vendor/llvm/dist/lib/CodeGen/OptimizePHIs.cpp vendor/llvm/dist/lib/CodeGen/PHIElimination.cpp vendor/llvm/dist/lib/CodeGen/PHIEliminationUtils.cpp vendor/llvm/dist/lib/CodeGen/PHIEliminationUtils.h vendor/llvm/dist/lib/CodeGen/ParallelCG.cpp vendor/llvm/dist/lib/CodeGen/PatchableFunction.cpp vendor/llvm/dist/lib/CodeGen/PeepholeOptimizer.cpp vendor/llvm/dist/lib/CodeGen/PostRAHazardRecognizer.cpp vendor/llvm/dist/lib/CodeGen/PostRASchedulerList.cpp vendor/llvm/dist/lib/CodeGen/PreISelIntrinsicLowering.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/ReachingDefAnalysis.cpp vendor/llvm/dist/lib/CodeGen/RegAllocBase.cpp vendor/llvm/dist/lib/CodeGen/RegAllocBase.h 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/RegUsageInfoCollector.cpp vendor/llvm/dist/lib/CodeGen/RegUsageInfoPropagate.cpp vendor/llvm/dist/lib/CodeGen/RegisterClassInfo.cpp vendor/llvm/dist/lib/CodeGen/RegisterCoalescer.cpp vendor/llvm/dist/lib/CodeGen/RegisterCoalescer.h vendor/llvm/dist/lib/CodeGen/RegisterPressure.cpp vendor/llvm/dist/lib/CodeGen/RegisterScavenging.cpp vendor/llvm/dist/lib/CodeGen/RegisterUsageInfo.cpp vendor/llvm/dist/lib/CodeGen/RenameIndependentSubregs.cpp vendor/llvm/dist/lib/CodeGen/ResetMachineFunctionPass.cpp vendor/llvm/dist/lib/CodeGen/SafeStack.cpp vendor/llvm/dist/lib/CodeGen/SafeStackColoring.cpp vendor/llvm/dist/lib/CodeGen/SafeStackColoring.h vendor/llvm/dist/lib/CodeGen/SafeStackLayout.cpp vendor/llvm/dist/lib/CodeGen/SafeStackLayout.h vendor/llvm/dist/lib/CodeGen/ScalarizeMaskedMemIntrin.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/ScoreboardHazardRecognizer.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/InstrEmitter.h 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/SDNodeDbgValue.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.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/SelectionDAGTargetInfo.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/StatepointLowering.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/StatepointLowering.h 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/SpillPlacement.h vendor/llvm/dist/lib/CodeGen/Spiller.h vendor/llvm/dist/lib/CodeGen/SplitKit.cpp vendor/llvm/dist/lib/CodeGen/SplitKit.h vendor/llvm/dist/lib/CodeGen/StackColoring.cpp vendor/llvm/dist/lib/CodeGen/StackMapLivenessAnalysis.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/TailDuplication.cpp vendor/llvm/dist/lib/CodeGen/TailDuplicator.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/TargetOptionsImpl.cpp vendor/llvm/dist/lib/CodeGen/TargetPassConfig.cpp vendor/llvm/dist/lib/CodeGen/TargetRegisterInfo.cpp vendor/llvm/dist/lib/CodeGen/TargetSchedule.cpp vendor/llvm/dist/lib/CodeGen/TargetSubtargetInfo.cpp vendor/llvm/dist/lib/CodeGen/TwoAddressInstructionPass.cpp vendor/llvm/dist/lib/CodeGen/UnreachableBlockElim.cpp vendor/llvm/dist/lib/CodeGen/ValueTypes.cpp vendor/llvm/dist/lib/CodeGen/VirtRegMap.cpp vendor/llvm/dist/lib/CodeGen/WasmEHPrepare.cpp vendor/llvm/dist/lib/CodeGen/WinEHPrepare.cpp vendor/llvm/dist/lib/CodeGen/XRayInstrumentation.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/CVTypeVisitor.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/CodeViewError.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/DebugSubsection.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/EnumTables.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/Formatters.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/Line.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/RecordName.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/RecordSerialization.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/StringsAndChecksums.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/SymbolDumper.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/SymbolSerializer.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeHashing.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeIndex.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeRecordMapping.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeStreamMerger.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeTableCollection.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFAddressRange.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFContext.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugLine.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDie.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFExpression.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFFormValue.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFListTable.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFUnit.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFVerifier.cpp vendor/llvm/dist/lib/DebugInfo/MSF/MSFBuilder.cpp vendor/llvm/dist/lib/DebugInfo/MSF/MSFCommon.cpp vendor/llvm/dist/lib/DebugInfo/MSF/MSFError.cpp vendor/llvm/dist/lib/DebugInfo/MSF/MappedBlockStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIADataStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAEnumDebugStreams.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAEnumFrameData.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAEnumInjectedSources.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAEnumLineNumbers.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAEnumSectionContribs.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAEnumSourceFiles.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAEnumSymbols.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAFrameData.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAInjectedSource.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIALineNumber.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIASectionContrib.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIASession.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIATable.cpp vendor/llvm/dist/lib/DebugInfo/PDB/GenericError.cpp vendor/llvm/dist/lib/DebugInfo/PDB/IPDBSourceFile.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/DbiModuleList.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/DbiStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/EnumTables.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/GlobalsStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/Hash.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/HashTable.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/InfoStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NamedStreamMap.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeCompilandSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeEnumGlobals.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeEnumModules.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeSession.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeTypeArray.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeTypeBuiltin.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeTypePointer.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/PDBFile.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/PDBStringTable.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/PDBStringTableBuilder.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/PublicsStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/RawError.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/SymbolStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/TpiHashing.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/TpiStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDB.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBContext.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBExtras.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymDumper.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolBlock.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolCustom.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolData.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolExe.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolFunc.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolLabel.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolThunk.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp vendor/llvm/dist/lib/DebugInfo/PDB/UDTLayout.cpp vendor/llvm/dist/lib/DebugInfo/Symbolize/DIPrinter.cpp vendor/llvm/dist/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp vendor/llvm/dist/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h vendor/llvm/dist/lib/DebugInfo/Symbolize/Symbolize.cpp vendor/llvm/dist/lib/Demangle/ItaniumDemangle.cpp vendor/llvm/dist/lib/Demangle/MicrosoftDemangle.cpp vendor/llvm/dist/lib/Demangle/MicrosoftDemangleNodes.cpp vendor/llvm/dist/lib/ExecutionEngine/ExecutionEngine.cpp vendor/llvm/dist/lib/ExecutionEngine/ExecutionEngineBindings.cpp vendor/llvm/dist/lib/ExecutionEngine/GDBRegistrationListener.cpp vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/IntelJITEventsWrapper.h vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/ittnotify_config.h vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/ittnotify_types.h vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/jitprofiling.c vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/jitprofiling.h 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/OProfileJIT/OProfileJITEventListener.cpp vendor/llvm/dist/lib/ExecutionEngine/OProfileJIT/OProfileWrapper.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/Core.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/ExecutionUtils.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/IRCompileLayer.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/IRTransformLayer.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/IndirectionUtils.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/LLJIT.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/Layer.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/LazyReexports.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/Legacy.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/NullResolver.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcABISupport.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcCBindings.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcCBindingsStack.h vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcError.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h vendor/llvm/dist/lib/ExecutionEngine/Orc/RPCUtils.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp vendor/llvm/dist/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h 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/RuntimeDyldCOFFI386.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.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/ExecutionEngine/TargetSelect.cpp vendor/llvm/dist/lib/FuzzMutate/FuzzerCLI.cpp vendor/llvm/dist/lib/FuzzMutate/IRMutator.cpp vendor/llvm/dist/lib/FuzzMutate/OpDescriptor.cpp vendor/llvm/dist/lib/FuzzMutate/Operations.cpp vendor/llvm/dist/lib/FuzzMutate/RandomIRBuilder.cpp 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/Comdat.cpp vendor/llvm/dist/lib/IR/ConstantFold.cpp vendor/llvm/dist/lib/IR/ConstantFold.h 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/DebugLoc.cpp vendor/llvm/dist/lib/IR/DiagnosticHandler.cpp vendor/llvm/dist/lib/IR/DiagnosticInfo.cpp vendor/llvm/dist/lib/IR/DiagnosticPrinter.cpp vendor/llvm/dist/lib/IR/Dominators.cpp vendor/llvm/dist/lib/IR/Function.cpp vendor/llvm/dist/lib/IR/GVMaterializer.cpp vendor/llvm/dist/lib/IR/Globals.cpp vendor/llvm/dist/lib/IR/IRBuilder.cpp vendor/llvm/dist/lib/IR/IRPrintingPasses.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/IntrinsicInst.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/Mangler.cpp 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/ModuleSummaryIndex.cpp vendor/llvm/dist/lib/IR/Operator.cpp vendor/llvm/dist/lib/IR/OptBisect.cpp vendor/llvm/dist/lib/IR/Pass.cpp vendor/llvm/dist/lib/IR/PassInstrumentation.cpp vendor/llvm/dist/lib/IR/PassManager.cpp vendor/llvm/dist/lib/IR/PassRegistry.cpp vendor/llvm/dist/lib/IR/PassTimingInfo.cpp vendor/llvm/dist/lib/IR/ProfileSummary.cpp vendor/llvm/dist/lib/IR/SafepointIRVerifier.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/Use.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/Verifier.cpp vendor/llvm/dist/lib/IRReader/IRReader.cpp vendor/llvm/dist/lib/LTO/Caching.cpp vendor/llvm/dist/lib/LTO/LTO.cpp vendor/llvm/dist/lib/LTO/LTOBackend.cpp vendor/llvm/dist/lib/LTO/LTOCodeGenerator.cpp vendor/llvm/dist/lib/LTO/LTOModule.cpp vendor/llvm/dist/lib/LTO/SummaryBasedOptimizations.cpp vendor/llvm/dist/lib/LTO/ThinLTOCodeGenerator.cpp vendor/llvm/dist/lib/LTO/UpdateCompilerUsed.cpp vendor/llvm/dist/lib/LineEditor/LineEditor.cpp vendor/llvm/dist/lib/Linker/IRMover.cpp vendor/llvm/dist/lib/Linker/LinkDiagnosticInfo.h vendor/llvm/dist/lib/Linker/LinkModules.cpp 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/MCAsmInfoELF.cpp vendor/llvm/dist/lib/MC/MCAsmInfoWasm.cpp vendor/llvm/dist/lib/MC/MCAsmMacro.cpp vendor/llvm/dist/lib/MC/MCAsmStreamer.cpp vendor/llvm/dist/lib/MC/MCAssembler.cpp vendor/llvm/dist/lib/MC/MCCodeEmitter.cpp vendor/llvm/dist/lib/MC/MCCodePadder.cpp vendor/llvm/dist/lib/MC/MCCodeView.cpp vendor/llvm/dist/lib/MC/MCContext.cpp vendor/llvm/dist/lib/MC/MCDisassembler/Disassembler.cpp vendor/llvm/dist/lib/MC/MCDisassembler/Disassembler.h vendor/llvm/dist/lib/MC/MCDisassembler/MCDisassembler.cpp vendor/llvm/dist/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp vendor/llvm/dist/lib/MC/MCDisassembler/MCRelocationInfo.cpp vendor/llvm/dist/lib/MC/MCDisassembler/MCSymbolizer.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/MCFragment.cpp vendor/llvm/dist/lib/MC/MCInst.cpp vendor/llvm/dist/lib/MC/MCInstPrinter.cpp vendor/llvm/dist/lib/MC/MCInstrAnalysis.cpp vendor/llvm/dist/lib/MC/MCInstrDesc.cpp vendor/llvm/dist/lib/MC/MCLabel.cpp vendor/llvm/dist/lib/MC/MCLinkerOptimizationHint.cpp vendor/llvm/dist/lib/MC/MCMachOStreamer.cpp vendor/llvm/dist/lib/MC/MCMachObjectTargetWriter.cpp vendor/llvm/dist/lib/MC/MCNullStreamer.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/MCAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/MCAsmParserExtension.cpp vendor/llvm/dist/lib/MC/MCParser/MCTargetAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/WasmAsmParser.cpp vendor/llvm/dist/lib/MC/MCRegisterInfo.cpp vendor/llvm/dist/lib/MC/MCSchedule.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/MCSectionWasm.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/MCSymbolELF.cpp vendor/llvm/dist/lib/MC/MCTargetOptions.cpp vendor/llvm/dist/lib/MC/MCValue.cpp vendor/llvm/dist/lib/MC/MCWasmObjectTargetWriter.cpp vendor/llvm/dist/lib/MC/MCWasmStreamer.cpp vendor/llvm/dist/lib/MC/MCWin64EH.cpp vendor/llvm/dist/lib/MC/MCWinCOFFStreamer.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/WasmObjectWriter.cpp vendor/llvm/dist/lib/MC/WinCOFFObjectWriter.cpp vendor/llvm/dist/lib/MCA/Context.cpp vendor/llvm/dist/lib/MCA/HWEventListener.cpp vendor/llvm/dist/lib/MCA/HardwareUnits/HardwareUnit.cpp vendor/llvm/dist/lib/MCA/HardwareUnits/LSUnit.cpp vendor/llvm/dist/lib/MCA/HardwareUnits/RegisterFile.cpp vendor/llvm/dist/lib/MCA/HardwareUnits/ResourceManager.cpp vendor/llvm/dist/lib/MCA/HardwareUnits/RetireControlUnit.cpp vendor/llvm/dist/lib/MCA/HardwareUnits/Scheduler.cpp vendor/llvm/dist/lib/MCA/InstrBuilder.cpp vendor/llvm/dist/lib/MCA/Instruction.cpp vendor/llvm/dist/lib/MCA/Pipeline.cpp vendor/llvm/dist/lib/MCA/Stages/DispatchStage.cpp vendor/llvm/dist/lib/MCA/Stages/EntryStage.cpp vendor/llvm/dist/lib/MCA/Stages/ExecuteStage.cpp vendor/llvm/dist/lib/MCA/Stages/InstructionTables.cpp vendor/llvm/dist/lib/MCA/Stages/RetireStage.cpp vendor/llvm/dist/lib/MCA/Stages/Stage.cpp vendor/llvm/dist/lib/MCA/Support.cpp vendor/llvm/dist/lib/Object/Archive.cpp vendor/llvm/dist/lib/Object/ArchiveWriter.cpp vendor/llvm/dist/lib/Object/Binary.cpp vendor/llvm/dist/lib/Object/COFFImportFile.cpp vendor/llvm/dist/lib/Object/COFFModuleDefinition.cpp vendor/llvm/dist/lib/Object/COFFObjectFile.cpp vendor/llvm/dist/lib/Object/Decompressor.cpp vendor/llvm/dist/lib/Object/ELF.cpp vendor/llvm/dist/lib/Object/ELFObjectFile.cpp vendor/llvm/dist/lib/Object/Error.cpp vendor/llvm/dist/lib/Object/IRObjectFile.cpp vendor/llvm/dist/lib/Object/IRSymtab.cpp vendor/llvm/dist/lib/Object/MachOObjectFile.cpp vendor/llvm/dist/lib/Object/MachOUniversal.cpp vendor/llvm/dist/lib/Object/ModuleSymbolTable.cpp vendor/llvm/dist/lib/Object/Object.cpp vendor/llvm/dist/lib/Object/ObjectFile.cpp vendor/llvm/dist/lib/Object/RecordStreamer.cpp vendor/llvm/dist/lib/Object/RecordStreamer.h vendor/llvm/dist/lib/Object/SymbolSize.cpp vendor/llvm/dist/lib/Object/SymbolicFile.cpp vendor/llvm/dist/lib/Object/WasmObjectFile.cpp vendor/llvm/dist/lib/Object/WindowsResource.cpp vendor/llvm/dist/lib/ObjectYAML/COFFYAML.cpp vendor/llvm/dist/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp vendor/llvm/dist/lib/ObjectYAML/CodeViewYAMLSymbols.cpp vendor/llvm/dist/lib/ObjectYAML/CodeViewYAMLTypeHashing.cpp vendor/llvm/dist/lib/ObjectYAML/CodeViewYAMLTypes.cpp vendor/llvm/dist/lib/ObjectYAML/DWARFEmitter.cpp vendor/llvm/dist/lib/ObjectYAML/DWARFVisitor.cpp vendor/llvm/dist/lib/ObjectYAML/DWARFVisitor.h vendor/llvm/dist/lib/ObjectYAML/DWARFYAML.cpp vendor/llvm/dist/lib/ObjectYAML/ELFYAML.cpp vendor/llvm/dist/lib/ObjectYAML/MachOYAML.cpp vendor/llvm/dist/lib/ObjectYAML/ObjectYAML.cpp vendor/llvm/dist/lib/ObjectYAML/WasmYAML.cpp vendor/llvm/dist/lib/ObjectYAML/YAML.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/PassBuilder.cpp vendor/llvm/dist/lib/Passes/PassPlugin.cpp vendor/llvm/dist/lib/Passes/PassRegistry.def vendor/llvm/dist/lib/Passes/StandardInstrumentations.cpp vendor/llvm/dist/lib/ProfileData/Coverage/CoverageMapping.cpp vendor/llvm/dist/lib/ProfileData/Coverage/CoverageMappingReader.cpp vendor/llvm/dist/lib/ProfileData/Coverage/CoverageMappingWriter.cpp vendor/llvm/dist/lib/ProfileData/GCOV.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/ProfileSummaryBuilder.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/AArch64TargetParser.cpp vendor/llvm/dist/lib/Support/AMDGPUMetadata.cpp vendor/llvm/dist/lib/Support/APFloat.cpp vendor/llvm/dist/lib/Support/APInt.cpp vendor/llvm/dist/lib/Support/APSInt.cpp vendor/llvm/dist/lib/Support/ARMAttributeParser.cpp vendor/llvm/dist/lib/Support/ARMBuildAttrs.cpp vendor/llvm/dist/lib/Support/ARMTargetParser.cpp vendor/llvm/dist/lib/Support/ARMWinEH.cpp vendor/llvm/dist/lib/Support/Allocator.cpp vendor/llvm/dist/lib/Support/Atomic.cpp vendor/llvm/dist/lib/Support/BinaryStreamError.cpp vendor/llvm/dist/lib/Support/BinaryStreamReader.cpp vendor/llvm/dist/lib/Support/BinaryStreamRef.cpp vendor/llvm/dist/lib/Support/BinaryStreamWriter.cpp vendor/llvm/dist/lib/Support/BlockFrequency.cpp vendor/llvm/dist/lib/Support/BranchProbability.cpp vendor/llvm/dist/lib/Support/BuryPointer.cpp vendor/llvm/dist/lib/Support/COM.cpp vendor/llvm/dist/lib/Support/CachePruning.cpp vendor/llvm/dist/lib/Support/Chrono.cpp vendor/llvm/dist/lib/Support/CodeGenCoverage.cpp vendor/llvm/dist/lib/Support/CommandLine.cpp vendor/llvm/dist/lib/Support/Compression.cpp vendor/llvm/dist/lib/Support/ConvertUTF.cpp vendor/llvm/dist/lib/Support/ConvertUTFWrapper.cpp vendor/llvm/dist/lib/Support/CrashRecoveryContext.cpp vendor/llvm/dist/lib/Support/DAGDeltaAlgorithm.cpp vendor/llvm/dist/lib/Support/DJB.cpp vendor/llvm/dist/lib/Support/DataExtractor.cpp vendor/llvm/dist/lib/Support/Debug.cpp vendor/llvm/dist/lib/Support/DeltaAlgorithm.cpp vendor/llvm/dist/lib/Support/DynamicLibrary.cpp vendor/llvm/dist/lib/Support/Errno.cpp vendor/llvm/dist/lib/Support/Error.cpp vendor/llvm/dist/lib/Support/ErrorHandling.cpp vendor/llvm/dist/lib/Support/FileCheck.cpp vendor/llvm/dist/lib/Support/FileOutputBuffer.cpp vendor/llvm/dist/lib/Support/FileUtilities.cpp vendor/llvm/dist/lib/Support/FoldingSet.cpp vendor/llvm/dist/lib/Support/FormatVariadic.cpp vendor/llvm/dist/lib/Support/FormattedStream.cpp vendor/llvm/dist/lib/Support/GlobPattern.cpp vendor/llvm/dist/lib/Support/GraphWriter.cpp vendor/llvm/dist/lib/Support/Hashing.cpp vendor/llvm/dist/lib/Support/Host.cpp vendor/llvm/dist/lib/Support/InitLLVM.cpp vendor/llvm/dist/lib/Support/IntEqClasses.cpp vendor/llvm/dist/lib/Support/IntervalMap.cpp vendor/llvm/dist/lib/Support/ItaniumManglingCanonicalizer.cpp vendor/llvm/dist/lib/Support/JSON.cpp vendor/llvm/dist/lib/Support/JamCRC.cpp vendor/llvm/dist/lib/Support/KnownBits.cpp vendor/llvm/dist/lib/Support/LEB128.cpp vendor/llvm/dist/lib/Support/LineIterator.cpp vendor/llvm/dist/lib/Support/LockFileManager.cpp vendor/llvm/dist/lib/Support/LowLevelType.cpp vendor/llvm/dist/lib/Support/ManagedStatic.cpp vendor/llvm/dist/lib/Support/MathExtras.cpp vendor/llvm/dist/lib/Support/Memory.cpp vendor/llvm/dist/lib/Support/MemoryBuffer.cpp vendor/llvm/dist/lib/Support/Mutex.cpp vendor/llvm/dist/lib/Support/NativeFormatting.cpp vendor/llvm/dist/lib/Support/Options.cpp vendor/llvm/dist/lib/Support/Parallel.cpp vendor/llvm/dist/lib/Support/Path.cpp vendor/llvm/dist/lib/Support/PluginLoader.cpp vendor/llvm/dist/lib/Support/PrettyStackTrace.cpp vendor/llvm/dist/lib/Support/Process.cpp vendor/llvm/dist/lib/Support/Program.cpp vendor/llvm/dist/lib/Support/RWMutex.cpp vendor/llvm/dist/lib/Support/RandomNumberGenerator.cpp vendor/llvm/dist/lib/Support/Regex.cpp vendor/llvm/dist/lib/Support/SHA1.cpp vendor/llvm/dist/lib/Support/ScaledNumber.cpp vendor/llvm/dist/lib/Support/Signals.cpp vendor/llvm/dist/lib/Support/SmallPtrSet.cpp vendor/llvm/dist/lib/Support/SmallVector.cpp vendor/llvm/dist/lib/Support/SourceMgr.cpp vendor/llvm/dist/lib/Support/SpecialCaseList.cpp vendor/llvm/dist/lib/Support/Statistic.cpp vendor/llvm/dist/lib/Support/StringExtras.cpp vendor/llvm/dist/lib/Support/StringMap.cpp vendor/llvm/dist/lib/Support/StringPool.cpp vendor/llvm/dist/lib/Support/StringRef.cpp vendor/llvm/dist/lib/Support/StringSaver.cpp vendor/llvm/dist/lib/Support/SymbolRemappingReader.cpp vendor/llvm/dist/lib/Support/SystemUtils.cpp vendor/llvm/dist/lib/Support/TarWriter.cpp vendor/llvm/dist/lib/Support/TargetParser.cpp vendor/llvm/dist/lib/Support/TargetRegistry.cpp vendor/llvm/dist/lib/Support/ThreadLocal.cpp vendor/llvm/dist/lib/Support/ThreadPool.cpp vendor/llvm/dist/lib/Support/Threading.cpp vendor/llvm/dist/lib/Support/Timer.cpp vendor/llvm/dist/lib/Support/ToolOutputFile.cpp vendor/llvm/dist/lib/Support/TrigramIndex.cpp vendor/llvm/dist/lib/Support/Triple.cpp vendor/llvm/dist/lib/Support/Twine.cpp vendor/llvm/dist/lib/Support/Unicode.cpp vendor/llvm/dist/lib/Support/Unix/COM.inc vendor/llvm/dist/lib/Support/Unix/DynamicLibrary.inc vendor/llvm/dist/lib/Support/Unix/Host.inc vendor/llvm/dist/lib/Support/Unix/Memory.inc vendor/llvm/dist/lib/Support/Unix/Mutex.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/RWMutex.inc vendor/llvm/dist/lib/Support/Unix/Signals.inc vendor/llvm/dist/lib/Support/Unix/ThreadLocal.inc vendor/llvm/dist/lib/Support/Unix/Threading.inc vendor/llvm/dist/lib/Support/Unix/Unix.h vendor/llvm/dist/lib/Support/Unix/Watchdog.inc vendor/llvm/dist/lib/Support/Valgrind.cpp vendor/llvm/dist/lib/Support/VersionTuple.cpp vendor/llvm/dist/lib/Support/VirtualFileSystem.cpp vendor/llvm/dist/lib/Support/Watchdog.cpp vendor/llvm/dist/lib/Support/Windows/COM.inc vendor/llvm/dist/lib/Support/Windows/DynamicLibrary.inc vendor/llvm/dist/lib/Support/Windows/Host.inc vendor/llvm/dist/lib/Support/Windows/Memory.inc vendor/llvm/dist/lib/Support/Windows/Mutex.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/RWMutex.inc vendor/llvm/dist/lib/Support/Windows/Signals.inc vendor/llvm/dist/lib/Support/Windows/ThreadLocal.inc vendor/llvm/dist/lib/Support/Windows/Threading.inc vendor/llvm/dist/lib/Support/Windows/Watchdog.inc vendor/llvm/dist/lib/Support/Windows/WindowsSupport.h vendor/llvm/dist/lib/Support/WithColor.cpp vendor/llvm/dist/lib/Support/YAMLParser.cpp vendor/llvm/dist/lib/Support/YAMLTraits.cpp vendor/llvm/dist/lib/Support/circular_raw_ostream.cpp vendor/llvm/dist/lib/Support/raw_os_ostream.cpp vendor/llvm/dist/lib/Support/raw_ostream.cpp vendor/llvm/dist/lib/TableGen/Error.cpp vendor/llvm/dist/lib/TableGen/JSONBackend.cpp vendor/llvm/dist/lib/TableGen/Main.cpp vendor/llvm/dist/lib/TableGen/Record.cpp vendor/llvm/dist/lib/TableGen/SetTheory.cpp vendor/llvm/dist/lib/TableGen/StringMatcher.cpp vendor/llvm/dist/lib/TableGen/TGLexer.cpp vendor/llvm/dist/lib/TableGen/TGLexer.h vendor/llvm/dist/lib/TableGen/TGParser.cpp vendor/llvm/dist/lib/TableGen/TGParser.h vendor/llvm/dist/lib/TableGen/TableGenBackend.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64.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/AArch64AdvSIMDScalarPass.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64AsmPrinter.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64BranchTargets.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64CallLowering.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64CallLowering.h 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/AArch64CompressJumpTables.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64CondBrTuning.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/AArch64FalkorHWPFFix.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/AArch64GenRegisterBankInfo.def 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/AArch64InstrAtomics.td 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/AArch64InstructionSelector.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64LegalizerInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64LegalizerInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64MCInstLower.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64MCInstLower.h vendor/llvm/dist/lib/Target/AArch64/AArch64MachineFunctionInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64MacroFusion.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64MacroFusion.h vendor/llvm/dist/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64PBQPRegAlloc.h vendor/llvm/dist/lib/Target/AArch64/AArch64PerfectShuffle.h vendor/llvm/dist/lib/Target/AArch64/AArch64PfmCounters.td vendor/llvm/dist/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64PromoteConstant.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterBankInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterBankInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterBanks.td 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/AArch64SIMDInstrOpt.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64SVEInstrInfo.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedA53.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedA57.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedA57WriteRes.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedCyclone.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedExynosM1.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedExynosM3.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedExynosM4.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedFalkor.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedFalkorDetails.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedKryo.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedKryoDetails.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedPredExynos.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedPredicates.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedThunderX.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedThunderX2T99.td vendor/llvm/dist/lib/Target/AArch64/AArch64Schedule.td vendor/llvm/dist/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64SelectionDAGInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64SpeculationHardening.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64StorePairSuppress.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.h vendor/llvm/dist/lib/Target/AArch64/AArch64SystemOperands.td vendor/llvm/dist/lib/Target/AArch64/AArch64TargetMachine.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64TargetMachine.h vendor/llvm/dist/lib/Target/AArch64/AArch64TargetObjectFile.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64TargetObjectFile.h 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/Disassembler/AArch64Disassembler.h vendor/llvm/dist/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp vendor/llvm/dist/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.h vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64FixupKinds.h vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.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/AArch64MCTargetDesc.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.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/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h vendor/llvm/dist/lib/Target/AArch64/SVEInstrFormats.td vendor/llvm/dist/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp 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/AMDGPUAliasAnalysis.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCallLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCallLowering.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCallingConv.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUFeatures.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUFixFunctionBitcasts.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUFrameLowering.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUGISel.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.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/AMDGPUInline.cpp 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/AMDGPUInstructionSelector.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstructionSelector.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPULegalizerInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPULibCalls.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPULibFunc.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPULibFunc.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPULowerKernelAttributes.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMachineFunction.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMacroFusion.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMacroFusion.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUPTNote.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterBanks.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterInfo.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSearchableTables.td 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/AMDGPUTargetObjectFile.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDKernelCodeT.h vendor/llvm/dist/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp vendor/llvm/dist/lib/Target/AMDGPU/BUFInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/CaymanInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/DSInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h vendor/llvm/dist/lib/Target/AMDGPU/EvergreenInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/FLATInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/GCNDPPCombine.cpp vendor/llvm/dist/lib/Target/AMDGPU/GCNHazardRecognizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/GCNHazardRecognizer.h vendor/llvm/dist/lib/Target/AMDGPU/GCNILPSched.cpp vendor/llvm/dist/lib/Target/AMDGPU/GCNIterativeScheduler.cpp vendor/llvm/dist/lib/Target/AMDGPU/GCNIterativeScheduler.h vendor/llvm/dist/lib/Target/AMDGPU/GCNMinRegStrategy.cpp vendor/llvm/dist/lib/Target/AMDGPU/GCNProcessors.td vendor/llvm/dist/lib/Target/AMDGPU/GCNRegPressure.cpp vendor/llvm/dist/lib/Target/AMDGPU/GCNRegPressure.h vendor/llvm/dist/lib/Target/AMDGPU/GCNSchedStrategy.cpp vendor/llvm/dist/lib/Target/AMDGPU/GCNSchedStrategy.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.h 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/AMDGPUMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h 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/R600MCCodeEmitter.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/R600MCTargetDesc.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/AMDGPU/MIMGInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/R600.td vendor/llvm/dist/lib/Target/AMDGPU/R600AsmPrinter.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600AsmPrinter.h vendor/llvm/dist/lib/Target/AMDGPU/R600ClauseMergePass.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600Defines.h vendor/llvm/dist/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600FrameLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600FrameLowering.h vendor/llvm/dist/lib/Target/AMDGPU/R600ISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600ISelLowering.h vendor/llvm/dist/lib/Target/AMDGPU/R600InstrFormats.td 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/R600MachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600MachineFunctionInfo.h vendor/llvm/dist/lib/Target/AMDGPU/R600MachineScheduler.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600MachineScheduler.h vendor/llvm/dist/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600Packetizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600Processors.td vendor/llvm/dist/lib/Target/AMDGPU/R600RegisterInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600RegisterInfo.h vendor/llvm/dist/lib/Target/AMDGPU/R600Schedule.td vendor/llvm/dist/lib/Target/AMDGPU/R700Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/SIAddIMGInit.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIDefines.h vendor/llvm/dist/lib/Target/AMDGPU/SIFixSGPRCopies.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFixVGPRCopies.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFixupVectorISel.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFoldOperands.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFormMemoryClauses.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.h vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.h vendor/llvm/dist/lib/Target/AMDGPU/SIInsertSkips.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIInsertWaitcnts.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/SILoadStoreOptimizer.cpp 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/SIMachineScheduler.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineScheduler.h vendor/llvm/dist/lib/Target/AMDGPU/SIMemoryLegalizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIModeRegister.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIPeepholeSDWA.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIProgramInfo.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/SIWholeQuadMode.cpp vendor/llvm/dist/lib/Target/AMDGPU/SMInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/SOPInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.h 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/AMDKernelCodeTInfo.h vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h vendor/llvm/dist/lib/Target/AMDGPU/VIInstrFormats.td vendor/llvm/dist/lib/Target/AMDGPU/VIInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOP1Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOP2Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOP3Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOP3PInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOPCInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOPInstructions.td vendor/llvm/dist/lib/Target/ARC/ARC.h vendor/llvm/dist/lib/Target/ARC/ARC.td vendor/llvm/dist/lib/Target/ARC/ARCAsmPrinter.cpp vendor/llvm/dist/lib/Target/ARC/ARCBranchFinalize.cpp vendor/llvm/dist/lib/Target/ARC/ARCCallingConv.td vendor/llvm/dist/lib/Target/ARC/ARCExpandPseudos.cpp vendor/llvm/dist/lib/Target/ARC/ARCFrameLowering.cpp vendor/llvm/dist/lib/Target/ARC/ARCFrameLowering.h vendor/llvm/dist/lib/Target/ARC/ARCISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/ARC/ARCISelLowering.cpp vendor/llvm/dist/lib/Target/ARC/ARCISelLowering.h vendor/llvm/dist/lib/Target/ARC/ARCInstrFormats.td vendor/llvm/dist/lib/Target/ARC/ARCInstrInfo.cpp vendor/llvm/dist/lib/Target/ARC/ARCInstrInfo.h vendor/llvm/dist/lib/Target/ARC/ARCInstrInfo.td vendor/llvm/dist/lib/Target/ARC/ARCMCInstLower.cpp vendor/llvm/dist/lib/Target/ARC/ARCMCInstLower.h vendor/llvm/dist/lib/Target/ARC/ARCMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/ARC/ARCMachineFunctionInfo.h vendor/llvm/dist/lib/Target/ARC/ARCRegisterInfo.cpp vendor/llvm/dist/lib/Target/ARC/ARCRegisterInfo.h vendor/llvm/dist/lib/Target/ARC/ARCRegisterInfo.td vendor/llvm/dist/lib/Target/ARC/ARCSubtarget.cpp vendor/llvm/dist/lib/Target/ARC/ARCSubtarget.h vendor/llvm/dist/lib/Target/ARC/ARCTargetMachine.cpp vendor/llvm/dist/lib/Target/ARC/ARCTargetMachine.h vendor/llvm/dist/lib/Target/ARC/ARCTargetStreamer.h vendor/llvm/dist/lib/Target/ARC/ARCTargetTransformInfo.h vendor/llvm/dist/lib/Target/ARC/Disassembler/ARCDisassembler.cpp vendor/llvm/dist/lib/Target/ARC/MCTargetDesc/ARCInfo.h vendor/llvm/dist/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.cpp vendor/llvm/dist/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.h vendor/llvm/dist/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.cpp vendor/llvm/dist/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.h vendor/llvm/dist/lib/Target/ARC/TargetInfo/ARCTargetInfo.cpp vendor/llvm/dist/lib/Target/ARM/A15SDOptimizer.cpp 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/ARMBasicBlockInfo.h vendor/llvm/dist/lib/Target/ARM/ARMCallLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMCallLowering.h vendor/llvm/dist/lib/Target/ARM/ARMCallingConv.h vendor/llvm/dist/lib/Target/ARM/ARMCallingConv.td vendor/llvm/dist/lib/Target/ARM/ARMCodeGenPrepare.cpp 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/ARMFeatures.h vendor/llvm/dist/lib/Target/ARM/ARMFrameLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMFrameLowering.h vendor/llvm/dist/lib/Target/ARM/ARMHazardRecognizer.cpp vendor/llvm/dist/lib/Target/ARM/ARMHazardRecognizer.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/ARMInstrFormats.td vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.h 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/ARMInstructionSelector.cpp vendor/llvm/dist/lib/Target/ARM/ARMLegalizerInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMLegalizerInfo.h vendor/llvm/dist/lib/Target/ARM/ARMLoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/ARM/ARMMCInstLower.cpp vendor/llvm/dist/lib/Target/ARM/ARMMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMMachineFunctionInfo.h vendor/llvm/dist/lib/Target/ARM/ARMMacroFusion.cpp vendor/llvm/dist/lib/Target/ARM/ARMMacroFusion.h vendor/llvm/dist/lib/Target/ARM/ARMOptimizeBarriersPass.cpp vendor/llvm/dist/lib/Target/ARM/ARMParallelDSP.cpp vendor/llvm/dist/lib/Target/ARM/ARMPerfectShuffle.h vendor/llvm/dist/lib/Target/ARM/ARMRegisterBankInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMRegisterBankInfo.h vendor/llvm/dist/lib/Target/ARM/ARMRegisterBanks.td vendor/llvm/dist/lib/Target/ARM/ARMRegisterInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMRegisterInfo.h vendor/llvm/dist/lib/Target/ARM/ARMRegisterInfo.td vendor/llvm/dist/lib/Target/ARM/ARMSchedule.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleA57.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleA57WriteRes.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleA8.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleA9.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleR52.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleSwift.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleV6.td vendor/llvm/dist/lib/Target/ARM/ARMSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMSelectionDAGInfo.h vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.cpp vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.h vendor/llvm/dist/lib/Target/ARM/ARMSystemRegister.td vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.h vendor/llvm/dist/lib/Target/ARM/ARMTargetObjectFile.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetObjectFile.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/MCTargetDesc/ARMAddressingModes.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/ARMAsmBackendELF.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.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/ARMFixupKinds.h 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/ARMMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp 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/ARMMachORelocationInfo.cpp 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/ARMUnwindOpAsm.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp vendor/llvm/dist/lib/Target/ARM/MLxExpansionPass.cpp vendor/llvm/dist/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp 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/Thumb1InstrInfo.h vendor/llvm/dist/lib/Target/ARM/Thumb2ITBlockPass.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2InstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2InstrInfo.h vendor/llvm/dist/lib/Target/ARM/Thumb2SizeReduction.cpp vendor/llvm/dist/lib/Target/ARM/ThumbRegisterInfo.cpp vendor/llvm/dist/lib/Target/ARM/ThumbRegisterInfo.h vendor/llvm/dist/lib/Target/ARM/Utils/ARMBaseInfo.cpp vendor/llvm/dist/lib/Target/ARM/Utils/ARMBaseInfo.h vendor/llvm/dist/lib/Target/AVR/AVR.h vendor/llvm/dist/lib/Target/AVR/AVR.td vendor/llvm/dist/lib/Target/AVR/AVRAsmPrinter.cpp vendor/llvm/dist/lib/Target/AVR/AVRCallingConv.td vendor/llvm/dist/lib/Target/AVR/AVRExpandPseudoInsts.cpp vendor/llvm/dist/lib/Target/AVR/AVRFrameLowering.cpp vendor/llvm/dist/lib/Target/AVR/AVRFrameLowering.h vendor/llvm/dist/lib/Target/AVR/AVRISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/AVR/AVRISelLowering.cpp vendor/llvm/dist/lib/Target/AVR/AVRISelLowering.h vendor/llvm/dist/lib/Target/AVR/AVRInstrFormats.td vendor/llvm/dist/lib/Target/AVR/AVRInstrInfo.cpp vendor/llvm/dist/lib/Target/AVR/AVRInstrInfo.h vendor/llvm/dist/lib/Target/AVR/AVRInstrInfo.td vendor/llvm/dist/lib/Target/AVR/AVRMCInstLower.cpp vendor/llvm/dist/lib/Target/AVR/AVRMCInstLower.h vendor/llvm/dist/lib/Target/AVR/AVRMachineFunctionInfo.h vendor/llvm/dist/lib/Target/AVR/AVRRegisterInfo.cpp vendor/llvm/dist/lib/Target/AVR/AVRRegisterInfo.h vendor/llvm/dist/lib/Target/AVR/AVRRegisterInfo.td vendor/llvm/dist/lib/Target/AVR/AVRRelaxMemOperations.cpp vendor/llvm/dist/lib/Target/AVR/AVRSelectionDAGInfo.h vendor/llvm/dist/lib/Target/AVR/AVRSubtarget.cpp vendor/llvm/dist/lib/Target/AVR/AVRSubtarget.h vendor/llvm/dist/lib/Target/AVR/AVRTargetMachine.cpp vendor/llvm/dist/lib/Target/AVR/AVRTargetMachine.h vendor/llvm/dist/lib/Target/AVR/AVRTargetObjectFile.cpp vendor/llvm/dist/lib/Target/AVR/AVRTargetObjectFile.h vendor/llvm/dist/lib/Target/AVR/AsmParser/AVRAsmParser.cpp vendor/llvm/dist/lib/Target/AVR/Disassembler/AVRDisassembler.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.h vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRFixupKinds.h vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.h vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.h vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.h vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCExpr.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCExpr.h vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.h vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRTargetStreamer.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRTargetStreamer.h vendor/llvm/dist/lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp vendor/llvm/dist/lib/Target/BPF/AsmParser/BPFAsmParser.cpp vendor/llvm/dist/lib/Target/BPF/BPF.h vendor/llvm/dist/lib/Target/BPF/BPF.td vendor/llvm/dist/lib/Target/BPF/BPFAsmPrinter.cpp vendor/llvm/dist/lib/Target/BPF/BPFCallingConv.td vendor/llvm/dist/lib/Target/BPF/BPFFrameLowering.cpp vendor/llvm/dist/lib/Target/BPF/BPFFrameLowering.h vendor/llvm/dist/lib/Target/BPF/BPFISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/BPF/BPFISelLowering.cpp vendor/llvm/dist/lib/Target/BPF/BPFISelLowering.h vendor/llvm/dist/lib/Target/BPF/BPFInstrFormats.td vendor/llvm/dist/lib/Target/BPF/BPFInstrInfo.cpp vendor/llvm/dist/lib/Target/BPF/BPFInstrInfo.h vendor/llvm/dist/lib/Target/BPF/BPFInstrInfo.td vendor/llvm/dist/lib/Target/BPF/BPFMCInstLower.cpp vendor/llvm/dist/lib/Target/BPF/BPFMCInstLower.h vendor/llvm/dist/lib/Target/BPF/BPFMIChecking.cpp vendor/llvm/dist/lib/Target/BPF/BPFMIPeephole.cpp vendor/llvm/dist/lib/Target/BPF/BPFRegisterInfo.cpp vendor/llvm/dist/lib/Target/BPF/BPFRegisterInfo.h vendor/llvm/dist/lib/Target/BPF/BPFRegisterInfo.td vendor/llvm/dist/lib/Target/BPF/BPFSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/BPF/BPFSelectionDAGInfo.h vendor/llvm/dist/lib/Target/BPF/BPFSubtarget.cpp vendor/llvm/dist/lib/Target/BPF/BPFSubtarget.h vendor/llvm/dist/lib/Target/BPF/BPFTargetMachine.cpp vendor/llvm/dist/lib/Target/BPF/BPFTargetMachine.h vendor/llvm/dist/lib/Target/BPF/BTF.def vendor/llvm/dist/lib/Target/BPF/BTF.h vendor/llvm/dist/lib/Target/BPF/BTFDebug.cpp vendor/llvm/dist/lib/Target/BPF/BTFDebug.h vendor/llvm/dist/lib/Target/BPF/Disassembler/BPFDisassembler.cpp 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/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.h vendor/llvm/dist/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp vendor/llvm/dist/lib/Target/Hexagon/BitTracker.cpp vendor/llvm/dist/lib/Target/Hexagon/BitTracker.h vendor/llvm/dist/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp 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/HexagonBitSimplify.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonBitTracker.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonBitTracker.h vendor/llvm/dist/lib/Target/Hexagon/HexagonBlockRanges.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonBlockRanges.h vendor/llvm/dist/lib/Target/Hexagon/HexagonBranchRelaxation.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonCFGOptimizer.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonCallingConv.td vendor/llvm/dist/lib/Target/Hexagon/HexagonCommonGEP.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonConstExtenders.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonConstPropagation.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonCopyToCombine.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonDepArch.h vendor/llvm/dist/lib/Target/Hexagon/HexagonDepArch.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepIICHVX.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepIICScalar.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepITypes.h vendor/llvm/dist/lib/Target/Hexagon/HexagonDepITypes.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepInstrFormats.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepInstrInfo.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepMappings.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepOperands.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepTimingClasses.h vendor/llvm/dist/lib/Target/Hexagon/HexagonEarlyIfConv.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonExpandCondsets.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonFixupHwLoops.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/HexagonGenMux.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonGenPredicate.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonHardwareLoops.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonHazardRecognizer.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonHazardRecognizer.h vendor/llvm/dist/lib/Target/Hexagon/HexagonIICHVX.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIICScalar.td vendor/llvm/dist/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelDAGToDAG.h vendor/llvm/dist/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.h vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormats.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormatsV5.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormatsV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormatsV65.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonIntrinsics.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIntrinsicsV5.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIntrinsicsV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonMCInstLower.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonMachineFunctionInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonMachineScheduler.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonMachineScheduler.h vendor/llvm/dist/lib/Target/Hexagon/HexagonMapAsm2IntrinV62.gen.td vendor/llvm/dist/lib/Target/Hexagon/HexagonMapAsm2IntrinV65.gen.td vendor/llvm/dist/lib/Target/Hexagon/HexagonNewValueJump.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonOperands.td vendor/llvm/dist/lib/Target/Hexagon/HexagonOptAddrMode.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonPatterns.td vendor/llvm/dist/lib/Target/Hexagon/HexagonPatternsV65.td vendor/llvm/dist/lib/Target/Hexagon/HexagonPeephole.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonPseudo.td vendor/llvm/dist/lib/Target/Hexagon/HexagonRDFOpt.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/HexagonScheduleV5.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV55.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV62.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV65.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV66.td vendor/llvm/dist/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonSelectionDAGInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonSplitDouble.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonStoreWidening.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/HexagonTargetObjectFile.h vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetStreamer.h vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetTransformInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonVExtract.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonVLIWPacketizer.h vendor/llvm/dist/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonVectorPrint.cpp 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/HexagonELFObjectWriter.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonFixupKinds.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.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.h 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/HexagonMCELFStreamer.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.h 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/HexagonMCShuffler.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.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/RDFCopy.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFCopy.h vendor/llvm/dist/lib/Target/Hexagon/RDFDeadCode.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFDeadCode.h vendor/llvm/dist/lib/Target/Hexagon/RDFGraph.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFGraph.h vendor/llvm/dist/lib/Target/Hexagon/RDFLiveness.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFLiveness.h vendor/llvm/dist/lib/Target/Hexagon/RDFRegisters.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFRegisters.h vendor/llvm/dist/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp vendor/llvm/dist/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp vendor/llvm/dist/lib/Target/Lanai/Disassembler/LanaiDisassembler.cpp vendor/llvm/dist/lib/Target/Lanai/Disassembler/LanaiDisassembler.h vendor/llvm/dist/lib/Target/Lanai/Lanai.h vendor/llvm/dist/lib/Target/Lanai/Lanai.td vendor/llvm/dist/lib/Target/Lanai/LanaiAluCode.h vendor/llvm/dist/lib/Target/Lanai/LanaiAsmPrinter.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiCallingConv.td vendor/llvm/dist/lib/Target/Lanai/LanaiDelaySlotFiller.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiFrameLowering.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiFrameLowering.h vendor/llvm/dist/lib/Target/Lanai/LanaiISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiISelLowering.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiISelLowering.h vendor/llvm/dist/lib/Target/Lanai/LanaiInstrFormats.td vendor/llvm/dist/lib/Target/Lanai/LanaiInstrInfo.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiInstrInfo.h vendor/llvm/dist/lib/Target/Lanai/LanaiInstrInfo.td vendor/llvm/dist/lib/Target/Lanai/LanaiMCInstLower.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiMCInstLower.h vendor/llvm/dist/lib/Target/Lanai/LanaiMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiMachineFunctionInfo.h vendor/llvm/dist/lib/Target/Lanai/LanaiMemAluCombiner.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiRegisterInfo.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiRegisterInfo.h vendor/llvm/dist/lib/Target/Lanai/LanaiRegisterInfo.td vendor/llvm/dist/lib/Target/Lanai/LanaiSchedule.td vendor/llvm/dist/lib/Target/Lanai/LanaiSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiSelectionDAGInfo.h vendor/llvm/dist/lib/Target/Lanai/LanaiSubtarget.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiSubtarget.h vendor/llvm/dist/lib/Target/Lanai/LanaiTargetMachine.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiTargetMachine.h vendor/llvm/dist/lib/Target/Lanai/LanaiTargetObjectFile.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiTargetObjectFile.h vendor/llvm/dist/lib/Target/Lanai/LanaiTargetTransformInfo.h vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiBaseInfo.h vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiFixupKinds.h vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.cpp vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.h vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.cpp vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.h vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h vendor/llvm/dist/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp vendor/llvm/dist/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp vendor/llvm/dist/lib/Target/MSP430/Disassembler/MSP430Disassembler.cpp vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430ELFObjectWriter.cpp vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430ELFStreamer.cpp vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430FixupKinds.h vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.h vendor/llvm/dist/lib/Target/MSP430/MSP430.h vendor/llvm/dist/lib/Target/MSP430/MSP430.td vendor/llvm/dist/lib/Target/MSP430/MSP430AsmPrinter.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430BranchSelector.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430CallingConv.td vendor/llvm/dist/lib/Target/MSP430/MSP430FrameLowering.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430FrameLowering.h vendor/llvm/dist/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430ISelLowering.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430ISelLowering.h vendor/llvm/dist/lib/Target/MSP430/MSP430InstrFormats.td vendor/llvm/dist/lib/Target/MSP430/MSP430InstrInfo.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430InstrInfo.h vendor/llvm/dist/lib/Target/MSP430/MSP430InstrInfo.td vendor/llvm/dist/lib/Target/MSP430/MSP430MCInstLower.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430MCInstLower.h vendor/llvm/dist/lib/Target/MSP430/MSP430MachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430MachineFunctionInfo.h vendor/llvm/dist/lib/Target/MSP430/MSP430RegisterInfo.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430RegisterInfo.h vendor/llvm/dist/lib/Target/MSP430/MSP430RegisterInfo.td vendor/llvm/dist/lib/Target/MSP430/MSP430Subtarget.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430Subtarget.h vendor/llvm/dist/lib/Target/MSP430/MSP430TargetMachine.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430TargetMachine.h vendor/llvm/dist/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp vendor/llvm/dist/lib/Target/Mips/AsmParser/MipsAsmParser.cpp vendor/llvm/dist/lib/Target/Mips/Disassembler/MipsDisassembler.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.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/MipsBaseInfo.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.cpp 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.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp 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/MicroMipsDSPInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MicroMipsDSPInstrInfo.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/MicroMipsSizeReduction.cpp vendor/llvm/dist/lib/Target/Mips/Mips.h vendor/llvm/dist/lib/Target/Mips/Mips.td vendor/llvm/dist/lib/Target/Mips/Mips16FrameLowering.cpp vendor/llvm/dist/lib/Target/Mips/Mips16FrameLowering.h vendor/llvm/dist/lib/Target/Mips/Mips16HardFloat.cpp vendor/llvm/dist/lib/Target/Mips/Mips16HardFloatInfo.cpp vendor/llvm/dist/lib/Target/Mips/Mips16HardFloatInfo.h vendor/llvm/dist/lib/Target/Mips/Mips16ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Mips/Mips16ISelDAGToDAG.h vendor/llvm/dist/lib/Target/Mips/Mips16ISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/Mips16ISelLowering.h vendor/llvm/dist/lib/Target/Mips/Mips16InstrFormats.td vendor/llvm/dist/lib/Target/Mips/Mips16InstrInfo.cpp vendor/llvm/dist/lib/Target/Mips/Mips16InstrInfo.h vendor/llvm/dist/lib/Target/Mips/Mips16InstrInfo.td vendor/llvm/dist/lib/Target/Mips/Mips16RegisterInfo.cpp vendor/llvm/dist/lib/Target/Mips/Mips16RegisterInfo.h vendor/llvm/dist/lib/Target/Mips/Mips32r6InstrFormats.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/MipsAnalyzeImmediate.cpp vendor/llvm/dist/lib/Target/Mips/MipsAnalyzeImmediate.h vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.cpp vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.h vendor/llvm/dist/lib/Target/Mips/MipsBranchExpansion.cpp vendor/llvm/dist/lib/Target/Mips/MipsCCState.cpp vendor/llvm/dist/lib/Target/Mips/MipsCCState.h vendor/llvm/dist/lib/Target/Mips/MipsCallLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsCallLowering.h vendor/llvm/dist/lib/Target/Mips/MipsCallingConv.td vendor/llvm/dist/lib/Target/Mips/MipsCondMov.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/MipsEVAInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MipsEVAInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsExpandPseudo.cpp vendor/llvm/dist/lib/Target/Mips/MipsFastISel.cpp vendor/llvm/dist/lib/Target/Mips/MipsFrameLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsFrameLowering.h vendor/llvm/dist/lib/Target/Mips/MipsISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Mips/MipsISelDAGToDAG.h 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.h vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsInstructionSelector.cpp vendor/llvm/dist/lib/Target/Mips/MipsLegalizerInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsLegalizerInfo.h vendor/llvm/dist/lib/Target/Mips/MipsMCInstLower.cpp vendor/llvm/dist/lib/Target/Mips/MipsMCInstLower.h vendor/llvm/dist/lib/Target/Mips/MipsMSAInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MipsMSAInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsMTInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MipsMTInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsMachineFunction.cpp vendor/llvm/dist/lib/Target/Mips/MipsMachineFunction.h vendor/llvm/dist/lib/Target/Mips/MipsOptimizePICCall.cpp vendor/llvm/dist/lib/Target/Mips/MipsOptionRecord.h vendor/llvm/dist/lib/Target/Mips/MipsOs16.cpp vendor/llvm/dist/lib/Target/Mips/MipsPreLegalizerCombiner.cpp vendor/llvm/dist/lib/Target/Mips/MipsRegisterBankInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsRegisterBankInfo.h vendor/llvm/dist/lib/Target/Mips/MipsRegisterBanks.td vendor/llvm/dist/lib/Target/Mips/MipsRegisterInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsRegisterInfo.h vendor/llvm/dist/lib/Target/Mips/MipsRegisterInfo.td 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/MipsSEISelDAGToDAG.h vendor/llvm/dist/lib/Target/Mips/MipsSEISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEISelLowering.h 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/MipsSERegisterInfo.h vendor/llvm/dist/lib/Target/Mips/MipsSchedule.td vendor/llvm/dist/lib/Target/Mips/MipsScheduleGeneric.td vendor/llvm/dist/lib/Target/Mips/MipsScheduleP5600.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/MipsTargetMachine.h 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/Mips/TargetInfo/MipsTargetInfo.cpp vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXBaseInfo.h vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.h vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.h vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h vendor/llvm/dist/lib/Target/NVPTX/ManagedStringPool.h vendor/llvm/dist/lib/Target/NVPTX/NVPTX.h vendor/llvm/dist/lib/Target/NVPTX/NVPTX.td vendor/llvm/dist/lib/Target/NVPTX/NVPTXAllocaHoisting.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXAllocaHoisting.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXAsmPrinter.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXAsmPrinter.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXFrameLowering.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXFrameLowering.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelDAGToDAG.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelLowering.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelLowering.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXImageOptimizer.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXInstrFormats.td vendor/llvm/dist/lib/Target/NVPTX/NVPTXInstrInfo.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXInstrInfo.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXInstrInfo.td vendor/llvm/dist/lib/Target/NVPTX/NVPTXIntrinsics.td vendor/llvm/dist/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXLowerAggrCopies.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXLowerAlloca.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXLowerArgs.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXMCExpr.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXMCExpr.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXMachineFunctionInfo.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXPeephole.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXProxyRegErasure.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXRegisterInfo.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXRegisterInfo.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXRegisterInfo.td vendor/llvm/dist/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXSubtarget.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXSubtarget.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetMachine.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetMachine.h 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/NVVMIntrRange.cpp vendor/llvm/dist/lib/Target/NVPTX/NVVMReflect.cpp vendor/llvm/dist/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp vendor/llvm/dist/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h vendor/llvm/dist/lib/Target/PowerPC/P9InstrResources.td 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/PPCBoolRetToInt.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCBranchCoalescing.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCBranchSelector.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCCCState.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCCCState.h vendor/llvm/dist/lib/Target/PowerPC/PPCCTRLoops.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCCallingConv.h vendor/llvm/dist/lib/Target/PowerPC/PPCCallingConv.td vendor/llvm/dist/lib/Target/PowerPC/PPCEarlyReturn.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCExpandISEL.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/PPCHazardRecognizers.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCHazardRecognizers.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/PPCInstrAltivec.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrBuilder.h vendor/llvm/dist/lib/Target/PowerPC/PPCInstrFormats.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrHTM.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/PPCInstrSPE.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrVSX.td vendor/llvm/dist/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMCInstLower.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMIPeephole.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMachineFunctionInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCPerfectShuffle.h vendor/llvm/dist/lib/Target/PowerPC/PPCPfmCounters.td vendor/llvm/dist/lib/Target/PowerPC/PPCPreEmitPeephole.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCQPXLoadSplat.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCReduceCRLogicals.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.td vendor/llvm/dist/lib/Target/PowerPC/PPCSchedule.td vendor/llvm/dist/lib/Target/PowerPC/PPCSchedule440.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleA2.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE500.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE500mc.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE5500.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleG3.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleG4.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleG4Plus.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleG5.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleP7.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleP8.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleP9.td vendor/llvm/dist/lib/Target/PowerPC/PPCSubtarget.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCSubtarget.h vendor/llvm/dist/lib/Target/PowerPC/PPCTLSDynamicCall.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTOCRegDeps.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.h vendor/llvm/dist/lib/Target/PowerPC/PPCTargetObjectFile.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetObjectFile.h vendor/llvm/dist/lib/Target/PowerPC/PPCTargetStreamer.h 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/PowerPC/README_P9.txt vendor/llvm/dist/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp vendor/llvm/dist/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp vendor/llvm/dist/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.h vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.h vendor/llvm/dist/lib/Target/RISCV/RISCV.h vendor/llvm/dist/lib/Target/RISCV/RISCV.td vendor/llvm/dist/lib/Target/RISCV/RISCVAsmPrinter.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVCallingConv.td vendor/llvm/dist/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVFrameLowering.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVFrameLowering.h vendor/llvm/dist/lib/Target/RISCV/RISCVISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVISelLowering.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVISelLowering.h vendor/llvm/dist/lib/Target/RISCV/RISCVInstrFormats.td vendor/llvm/dist/lib/Target/RISCV/RISCVInstrFormatsC.td vendor/llvm/dist/lib/Target/RISCV/RISCVInstrInfo.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVInstrInfo.h vendor/llvm/dist/lib/Target/RISCV/RISCVInstrInfo.td vendor/llvm/dist/lib/Target/RISCV/RISCVInstrInfoA.td vendor/llvm/dist/lib/Target/RISCV/RISCVInstrInfoC.td vendor/llvm/dist/lib/Target/RISCV/RISCVInstrInfoD.td vendor/llvm/dist/lib/Target/RISCV/RISCVInstrInfoF.td vendor/llvm/dist/lib/Target/RISCV/RISCVInstrInfoM.td vendor/llvm/dist/lib/Target/RISCV/RISCVMCInstLower.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVMachineFunctionInfo.h vendor/llvm/dist/lib/Target/RISCV/RISCVMergeBaseOffset.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVRegisterInfo.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVRegisterInfo.h vendor/llvm/dist/lib/Target/RISCV/RISCVRegisterInfo.td vendor/llvm/dist/lib/Target/RISCV/RISCVSubtarget.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVSubtarget.h vendor/llvm/dist/lib/Target/RISCV/RISCVSystemOperands.td vendor/llvm/dist/lib/Target/RISCV/RISCVTargetMachine.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVTargetMachine.h vendor/llvm/dist/lib/Target/RISCV/RISCVTargetObjectFile.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVTargetObjectFile.h vendor/llvm/dist/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.cpp vendor/llvm/dist/lib/Target/RISCV/Utils/RISCVBaseInfo.cpp vendor/llvm/dist/lib/Target/RISCV/Utils/RISCVBaseInfo.h vendor/llvm/dist/lib/Target/RISCV/Utils/RISCVMatInt.cpp vendor/llvm/dist/lib/Target/RISCV/Utils/RISCVMatInt.h 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/LeonFeatures.td vendor/llvm/dist/lib/Target/Sparc/LeonPasses.cpp vendor/llvm/dist/lib/Target/Sparc/LeonPasses.h vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcFixupKinds.h vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.h vendor/llvm/dist/lib/Target/Sparc/Sparc.h vendor/llvm/dist/lib/Target/Sparc/Sparc.td 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/SparcInstr64Bit.td vendor/llvm/dist/lib/Target/Sparc/SparcInstrAliases.td vendor/llvm/dist/lib/Target/Sparc/SparcInstrFormats.td vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.cpp vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.h vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.td vendor/llvm/dist/lib/Target/Sparc/SparcInstrVIS.td vendor/llvm/dist/lib/Target/Sparc/SparcMCInstLower.cpp vendor/llvm/dist/lib/Target/Sparc/SparcMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/Sparc/SparcMachineFunctionInfo.h 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/SparcSchedule.td vendor/llvm/dist/lib/Target/Sparc/SparcSubtarget.cpp vendor/llvm/dist/lib/Target/Sparc/SparcSubtarget.h vendor/llvm/dist/lib/Target/Sparc/SparcTargetMachine.cpp vendor/llvm/dist/lib/Target/Sparc/SparcTargetMachine.h vendor/llvm/dist/lib/Target/Sparc/SparcTargetObjectFile.cpp vendor/llvm/dist/lib/Target/Sparc/SparcTargetObjectFile.h vendor/llvm/dist/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp vendor/llvm/dist/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.h vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCFixups.h vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.h vendor/llvm/dist/lib/Target/SystemZ/SystemZ.h vendor/llvm/dist/lib/Target/SystemZ/SystemZ.td vendor/llvm/dist/lib/Target/SystemZ/SystemZAsmPrinter.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZAsmPrinter.h vendor/llvm/dist/lib/Target/SystemZ/SystemZCallingConv.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZCallingConv.h vendor/llvm/dist/lib/Target/SystemZ/SystemZCallingConv.td 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/SystemZExpandPseudo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZFeatures.td vendor/llvm/dist/lib/Target/SystemZ/SystemZFrameLowering.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZFrameLowering.h vendor/llvm/dist/lib/Target/SystemZ/SystemZHazardRecognizer.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZHazardRecognizer.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/SystemZInstrDFP.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrFP.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrFormats.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrHFP.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/SystemZInstrSystem.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrVector.td vendor/llvm/dist/lib/Target/SystemZ/SystemZLDCleanup.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZLongBranch.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZMCInstLower.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZMCInstLower.h vendor/llvm/dist/lib/Target/SystemZ/SystemZMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZMachineFunctionInfo.h vendor/llvm/dist/lib/Target/SystemZ/SystemZMachineScheduler.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZMachineScheduler.h vendor/llvm/dist/lib/Target/SystemZ/SystemZOperands.td vendor/llvm/dist/lib/Target/SystemZ/SystemZOperators.td vendor/llvm/dist/lib/Target/SystemZ/SystemZPatterns.td vendor/llvm/dist/lib/Target/SystemZ/SystemZProcessors.td vendor/llvm/dist/lib/Target/SystemZ/SystemZRegisterInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZRegisterInfo.h vendor/llvm/dist/lib/Target/SystemZ/SystemZRegisterInfo.td vendor/llvm/dist/lib/Target/SystemZ/SystemZSchedule.td vendor/llvm/dist/lib/Target/SystemZ/SystemZScheduleZ13.td vendor/llvm/dist/lib/Target/SystemZ/SystemZScheduleZ14.td vendor/llvm/dist/lib/Target/SystemZ/SystemZScheduleZ196.td vendor/llvm/dist/lib/Target/SystemZ/SystemZScheduleZEC12.td vendor/llvm/dist/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZSelectionDAGInfo.h vendor/llvm/dist/lib/Target/SystemZ/SystemZShortenInst.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZSubtarget.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZSubtarget.h vendor/llvm/dist/lib/Target/SystemZ/SystemZTDC.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/SystemZ/TargetInfo/SystemZTargetInfo.cpp vendor/llvm/dist/lib/Target/Target.cpp vendor/llvm/dist/lib/Target/TargetIntrinsicInfo.cpp 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/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp vendor/llvm/dist/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyFixupKinds.h 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/WebAssemblyMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp vendor/llvm/dist/lib/Target/WebAssembly/README.txt vendor/llvm/dist/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssembly.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssembly.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyAddMissingPrototypes.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyDebugValueManager.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyExceptionInfo.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFastISel.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFrameLowering.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISD.def 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/WebAssemblyInstrAtomics.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrCall.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrControl.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/WebAssemblyInstrSIMD.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMCInstLower.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyPeephole.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp 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/WebAssemblyReplacePhysRegs.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp 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/WebAssemblyTargetMachine.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.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/WebAssembly/WebAssemblyUtilities.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyUtilities.h vendor/llvm/dist/lib/Target/WebAssembly/known_gcc_test_failures.txt vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmParser.cpp vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmParserCommon.h vendor/llvm/dist/lib/Target/X86/AsmParser/X86Operand.h 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/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/X86FixupKinds.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.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/X86MCExpr.h 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/X86TargetStreamer.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp vendor/llvm/dist/lib/Target/X86/TargetInfo/X86TargetInfo.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/X86AvoidStoreForwardingBlocks.cpp vendor/llvm/dist/lib/Target/X86/X86CallFrameOptimization.cpp vendor/llvm/dist/lib/Target/X86/X86CallLowering.cpp vendor/llvm/dist/lib/Target/X86/X86CallLowering.h vendor/llvm/dist/lib/Target/X86/X86CallingConv.cpp vendor/llvm/dist/lib/Target/X86/X86CallingConv.h vendor/llvm/dist/lib/Target/X86/X86CallingConv.td vendor/llvm/dist/lib/Target/X86/X86CmovConversion.cpp vendor/llvm/dist/lib/Target/X86/X86CondBrFolding.cpp vendor/llvm/dist/lib/Target/X86/X86DiscriminateMemOps.cpp vendor/llvm/dist/lib/Target/X86/X86DomainReassignment.cpp vendor/llvm/dist/lib/Target/X86/X86EvexToVex.cpp vendor/llvm/dist/lib/Target/X86/X86ExpandPseudo.cpp vendor/llvm/dist/lib/Target/X86/X86FastISel.cpp vendor/llvm/dist/lib/Target/X86/X86FixupBWInsts.cpp vendor/llvm/dist/lib/Target/X86/X86FixupLEAs.cpp vendor/llvm/dist/lib/Target/X86/X86FixupSetCC.cpp vendor/llvm/dist/lib/Target/X86/X86FlagsCopyLowering.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/X86GenRegisterBankInfo.def 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/X86IndirectBranchTracking.cpp vendor/llvm/dist/lib/Target/X86/X86InsertPrefetch.cpp vendor/llvm/dist/lib/Target/X86/X86Instr3DNow.td 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/X86InstrExtension.td vendor/llvm/dist/lib/Target/X86/X86InstrFMA.td vendor/llvm/dist/lib/Target/X86/X86InstrFMA3Info.cpp vendor/llvm/dist/lib/Target/X86/X86InstrFMA3Info.h vendor/llvm/dist/lib/Target/X86/X86InstrFPStack.td vendor/llvm/dist/lib/Target/X86/X86InstrFoldTables.cpp vendor/llvm/dist/lib/Target/X86/X86InstrFoldTables.h vendor/llvm/dist/lib/Target/X86/X86InstrFormats.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/X86InstrMPX.td vendor/llvm/dist/lib/Target/X86/X86InstrSGX.td vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td vendor/llvm/dist/lib/Target/X86/X86InstrSVM.td vendor/llvm/dist/lib/Target/X86/X86InstrShiftRotate.td vendor/llvm/dist/lib/Target/X86/X86InstrSystem.td vendor/llvm/dist/lib/Target/X86/X86InstrTSX.td vendor/llvm/dist/lib/Target/X86/X86InstrVMX.td vendor/llvm/dist/lib/Target/X86/X86InstrVecCompiler.td vendor/llvm/dist/lib/Target/X86/X86InstrXOP.td vendor/llvm/dist/lib/Target/X86/X86InstructionSelector.cpp vendor/llvm/dist/lib/Target/X86/X86InterleavedAccess.cpp vendor/llvm/dist/lib/Target/X86/X86IntrinsicsInfo.h vendor/llvm/dist/lib/Target/X86/X86LegalizerInfo.cpp vendor/llvm/dist/lib/Target/X86/X86LegalizerInfo.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/X86MacroFusion.cpp vendor/llvm/dist/lib/Target/X86/X86MacroFusion.h vendor/llvm/dist/lib/Target/X86/X86OptimizeLEAs.cpp vendor/llvm/dist/lib/Target/X86/X86PadShortFunction.cpp vendor/llvm/dist/lib/Target/X86/X86PfmCounters.td vendor/llvm/dist/lib/Target/X86/X86RegisterBankInfo.cpp vendor/llvm/dist/lib/Target/X86/X86RegisterBankInfo.h vendor/llvm/dist/lib/Target/X86/X86RegisterBanks.td 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/X86RetpolineThunks.cpp vendor/llvm/dist/lib/Target/X86/X86SchedBroadwell.td vendor/llvm/dist/lib/Target/X86/X86SchedHaswell.td vendor/llvm/dist/lib/Target/X86/X86SchedPredicates.td vendor/llvm/dist/lib/Target/X86/X86SchedSandyBridge.td vendor/llvm/dist/lib/Target/X86/X86SchedSkylakeClient.td vendor/llvm/dist/lib/Target/X86/X86SchedSkylakeServer.td vendor/llvm/dist/lib/Target/X86/X86Schedule.td vendor/llvm/dist/lib/Target/X86/X86ScheduleAtom.td vendor/llvm/dist/lib/Target/X86/X86ScheduleBdVer2.td vendor/llvm/dist/lib/Target/X86/X86ScheduleBtVer2.td vendor/llvm/dist/lib/Target/X86/X86ScheduleSLM.td vendor/llvm/dist/lib/Target/X86/X86ScheduleZnver1.td vendor/llvm/dist/lib/Target/X86/X86SelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/X86/X86SelectionDAGInfo.h vendor/llvm/dist/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp vendor/llvm/dist/lib/Target/X86/X86ShuffleDecodeConstantPool.h vendor/llvm/dist/lib/Target/X86/X86SpeculativeLoadHardening.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/X86TargetMachine.h 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/X86VZeroUpper.cpp vendor/llvm/dist/lib/Target/X86/X86WinAllocaExpander.cpp vendor/llvm/dist/lib/Target/X86/X86WinEHState.cpp vendor/llvm/dist/lib/Target/XCore/Disassembler/XCoreDisassembler.cpp vendor/llvm/dist/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.cpp vendor/llvm/dist/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.h vendor/llvm/dist/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp vendor/llvm/dist/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.h vendor/llvm/dist/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp vendor/llvm/dist/lib/Target/XCore/XCore.h vendor/llvm/dist/lib/Target/XCore/XCore.td vendor/llvm/dist/lib/Target/XCore/XCoreAsmPrinter.cpp vendor/llvm/dist/lib/Target/XCore/XCoreCallingConv.td vendor/llvm/dist/lib/Target/XCore/XCoreFrameLowering.cpp vendor/llvm/dist/lib/Target/XCore/XCoreFrameLowering.h vendor/llvm/dist/lib/Target/XCore/XCoreFrameToArgsOffsetElim.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/XCoreInstrFormats.td vendor/llvm/dist/lib/Target/XCore/XCoreInstrInfo.cpp vendor/llvm/dist/lib/Target/XCore/XCoreInstrInfo.h vendor/llvm/dist/lib/Target/XCore/XCoreInstrInfo.td vendor/llvm/dist/lib/Target/XCore/XCoreLowerThreadLocal.cpp vendor/llvm/dist/lib/Target/XCore/XCoreMCInstLower.cpp vendor/llvm/dist/lib/Target/XCore/XCoreMCInstLower.h vendor/llvm/dist/lib/Target/XCore/XCoreMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/XCore/XCoreMachineFunctionInfo.h vendor/llvm/dist/lib/Target/XCore/XCoreRegisterInfo.cpp vendor/llvm/dist/lib/Target/XCore/XCoreRegisterInfo.h vendor/llvm/dist/lib/Target/XCore/XCoreRegisterInfo.td vendor/llvm/dist/lib/Target/XCore/XCoreSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/XCore/XCoreSelectionDAGInfo.h vendor/llvm/dist/lib/Target/XCore/XCoreSubtarget.cpp vendor/llvm/dist/lib/Target/XCore/XCoreSubtarget.h vendor/llvm/dist/lib/Target/XCore/XCoreTargetMachine.cpp vendor/llvm/dist/lib/Target/XCore/XCoreTargetMachine.h vendor/llvm/dist/lib/Target/XCore/XCoreTargetObjectFile.cpp vendor/llvm/dist/lib/Target/XCore/XCoreTargetObjectFile.h vendor/llvm/dist/lib/Target/XCore/XCoreTargetStreamer.h vendor/llvm/dist/lib/Target/XCore/XCoreTargetTransformInfo.h vendor/llvm/dist/lib/Testing/Support/Error.cpp vendor/llvm/dist/lib/TextAPI/ELF/ELFStub.cpp vendor/llvm/dist/lib/TextAPI/ELF/TBEHandler.cpp vendor/llvm/dist/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp vendor/llvm/dist/lib/ToolDrivers/llvm-lib/LibDriver.cpp vendor/llvm/dist/lib/ToolDrivers/llvm-lib/Options.td vendor/llvm/dist/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp vendor/llvm/dist/lib/Transforms/AggressiveInstCombine/AggressiveInstCombineInternal.h vendor/llvm/dist/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp vendor/llvm/dist/lib/Transforms/Coroutines/CoroCleanup.cpp vendor/llvm/dist/lib/Transforms/Coroutines/CoroEarly.cpp vendor/llvm/dist/lib/Transforms/Coroutines/CoroElide.cpp vendor/llvm/dist/lib/Transforms/Coroutines/CoroFrame.cpp vendor/llvm/dist/lib/Transforms/Coroutines/CoroInstr.h vendor/llvm/dist/lib/Transforms/Coroutines/CoroInternal.h vendor/llvm/dist/lib/Transforms/Coroutines/CoroSplit.cpp vendor/llvm/dist/lib/Transforms/Coroutines/Coroutines.cpp vendor/llvm/dist/lib/Transforms/IPO/AlwaysInliner.cpp vendor/llvm/dist/lib/Transforms/IPO/ArgumentPromotion.cpp vendor/llvm/dist/lib/Transforms/IPO/BarrierNoopPass.cpp vendor/llvm/dist/lib/Transforms/IPO/BlockExtractor.cpp vendor/llvm/dist/lib/Transforms/IPO/CalledValuePropagation.cpp vendor/llvm/dist/lib/Transforms/IPO/ConstantMerge.cpp vendor/llvm/dist/lib/Transforms/IPO/CrossDSOCFI.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/ForceFunctionAttrs.cpp vendor/llvm/dist/lib/Transforms/IPO/FunctionAttrs.cpp vendor/llvm/dist/lib/Transforms/IPO/FunctionImport.cpp vendor/llvm/dist/lib/Transforms/IPO/GlobalDCE.cpp vendor/llvm/dist/lib/Transforms/IPO/GlobalOpt.cpp vendor/llvm/dist/lib/Transforms/IPO/GlobalSplit.cpp vendor/llvm/dist/lib/Transforms/IPO/HotColdSplitting.cpp vendor/llvm/dist/lib/Transforms/IPO/IPConstantPropagation.cpp vendor/llvm/dist/lib/Transforms/IPO/IPO.cpp vendor/llvm/dist/lib/Transforms/IPO/InferFunctionAttrs.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/LoopExtractor.cpp vendor/llvm/dist/lib/Transforms/IPO/LowerTypeTests.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/SCCP.cpp vendor/llvm/dist/lib/Transforms/IPO/SampleProfile.cpp vendor/llvm/dist/lib/Transforms/IPO/StripDeadPrototypes.cpp vendor/llvm/dist/lib/Transforms/IPO/StripSymbols.cpp vendor/llvm/dist/lib/Transforms/IPO/SyntheticCountsPropagation.cpp vendor/llvm/dist/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp vendor/llvm/dist/lib/Transforms/IPO/WholeProgramDevirt.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/CFGMST.h vendor/llvm/dist/lib/Transforms/Instrumentation/CGProfile.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/ControlHeightReduction.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/GCOVProfiling.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/InstrProfiling.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/Instrumentation.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/MaximumSpanningTree.h vendor/llvm/dist/lib/Transforms/Instrumentation/MemorySanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/PGOInstrumentation.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/SanitizerCoverage.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/ThreadSanitizer.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h vendor/llvm/dist/lib/Transforms/ObjCARC/BlotMapVector.h vendor/llvm/dist/lib/Transforms/ObjCARC/DependencyAnalysis.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/DependencyAnalysis.h 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/ObjCARCExpand.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARCOpts.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ProvenanceAnalysis.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/CallSiteSplitting.cpp vendor/llvm/dist/lib/Transforms/Scalar/ConstantHoisting.cpp vendor/llvm/dist/lib/Transforms/Scalar/ConstantProp.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/DivRemPairs.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/GVNHoist.cpp vendor/llvm/dist/lib/Transforms/Scalar/GVNSink.cpp vendor/llvm/dist/lib/Transforms/Scalar/GuardWidening.cpp vendor/llvm/dist/lib/Transforms/Scalar/IVUsersPrinter.cpp vendor/llvm/dist/lib/Transforms/Scalar/IndVarSimplify.cpp vendor/llvm/dist/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/InferAddressSpaces.cpp vendor/llvm/dist/lib/Transforms/Scalar/InstSimplifyPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/JumpThreading.cpp vendor/llvm/dist/lib/Transforms/Scalar/LICM.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopDataPrefetch.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/LoopLoadElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopPassManager.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopPredication.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopRerollPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopRotation.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopSimplifyCFG.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopSink.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopStrengthReduce.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopUnrollPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopUnswitch.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopVersioningLICM.cpp vendor/llvm/dist/lib/Transforms/Scalar/LowerAtomic.cpp vendor/llvm/dist/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp vendor/llvm/dist/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp vendor/llvm/dist/lib/Transforms/Scalar/MakeGuardsExplicit.cpp vendor/llvm/dist/lib/Transforms/Scalar/MemCpyOptimizer.cpp vendor/llvm/dist/lib/Transforms/Scalar/MergeICmps.cpp vendor/llvm/dist/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp vendor/llvm/dist/lib/Transforms/Scalar/NaryReassociate.cpp vendor/llvm/dist/lib/Transforms/Scalar/NewGVN.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/Scalarizer.cpp vendor/llvm/dist/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp vendor/llvm/dist/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp vendor/llvm/dist/lib/Transforms/Scalar/SimplifyCFGPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/Sink.cpp vendor/llvm/dist/lib/Transforms/Scalar/SpeculateAroundPHIs.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/Scalar/WarnMissedTransforms.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/CallPromotionUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/CanonicalizeAliases.cpp 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/EntryExitInstrumenter.cpp vendor/llvm/dist/lib/Transforms/Utils/EscapeEnumerator.cpp vendor/llvm/dist/lib/Transforms/Utils/Evaluator.cpp vendor/llvm/dist/lib/Transforms/Utils/FlattenCFG.cpp vendor/llvm/dist/lib/Transforms/Utils/FunctionComparator.cpp vendor/llvm/dist/lib/Transforms/Utils/FunctionImportUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/GlobalStatus.cpp vendor/llvm/dist/lib/Transforms/Utils/GuardUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp vendor/llvm/dist/lib/Transforms/Utils/InlineFunction.cpp vendor/llvm/dist/lib/Transforms/Utils/InstructionNamer.cpp vendor/llvm/dist/lib/Transforms/Utils/IntegerDivision.cpp vendor/llvm/dist/lib/Transforms/Utils/LCSSA.cpp vendor/llvm/dist/lib/Transforms/Utils/LibCallsShrinkWrap.cpp vendor/llvm/dist/lib/Transforms/Utils/Local.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopRotationUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopSimplify.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUnroll.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUnrollAndJam.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUnrollPeel.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/LowerMemIntrinsics.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/NameAnonGlobals.cpp vendor/llvm/dist/lib/Transforms/Utils/PredicateInfo.cpp vendor/llvm/dist/lib/Transforms/Utils/PromoteMemoryToRegister.cpp vendor/llvm/dist/lib/Transforms/Utils/SSAUpdater.cpp vendor/llvm/dist/lib/Transforms/Utils/SSAUpdaterBulk.cpp vendor/llvm/dist/lib/Transforms/Utils/SanitizerStats.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyIndVar.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyLibCalls.cpp vendor/llvm/dist/lib/Transforms/Utils/SplitModule.cpp vendor/llvm/dist/lib/Transforms/Utils/StripGCRelocates.cpp vendor/llvm/dist/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp vendor/llvm/dist/lib/Transforms/Utils/SymbolRewriter.cpp vendor/llvm/dist/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp vendor/llvm/dist/lib/Transforms/Utils/Utils.cpp vendor/llvm/dist/lib/Transforms/Utils/VNCoercion.cpp vendor/llvm/dist/lib/Transforms/Utils/ValueMapper.cpp vendor/llvm/dist/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp vendor/llvm/dist/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp vendor/llvm/dist/lib/Transforms/Vectorize/LoopVectorizationPlanner.h vendor/llvm/dist/lib/Transforms/Vectorize/LoopVectorize.cpp vendor/llvm/dist/lib/Transforms/Vectorize/SLPVectorizer.cpp vendor/llvm/dist/lib/Transforms/Vectorize/VPRecipeBuilder.h vendor/llvm/dist/lib/Transforms/Vectorize/VPlan.cpp vendor/llvm/dist/lib/Transforms/Vectorize/VPlan.h vendor/llvm/dist/lib/Transforms/Vectorize/VPlanDominatorTree.h vendor/llvm/dist/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp vendor/llvm/dist/lib/Transforms/Vectorize/VPlanHCFGBuilder.h vendor/llvm/dist/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp vendor/llvm/dist/lib/Transforms/Vectorize/VPlanHCFGTransforms.h vendor/llvm/dist/lib/Transforms/Vectorize/VPlanLoopInfo.h vendor/llvm/dist/lib/Transforms/Vectorize/VPlanSLP.cpp vendor/llvm/dist/lib/Transforms/Vectorize/VPlanValue.h vendor/llvm/dist/lib/Transforms/Vectorize/VPlanVerifier.cpp vendor/llvm/dist/lib/Transforms/Vectorize/VPlanVerifier.h vendor/llvm/dist/lib/Transforms/Vectorize/Vectorize.cpp vendor/llvm/dist/lib/WindowsManifest/WindowsManifestMerger.cpp vendor/llvm/dist/lib/XRay/BlockIndexer.cpp vendor/llvm/dist/lib/XRay/BlockPrinter.cpp vendor/llvm/dist/lib/XRay/BlockVerifier.cpp vendor/llvm/dist/lib/XRay/FDRRecordProducer.cpp vendor/llvm/dist/lib/XRay/FDRRecords.cpp vendor/llvm/dist/lib/XRay/FDRTraceExpander.cpp vendor/llvm/dist/lib/XRay/FDRTraceWriter.cpp vendor/llvm/dist/lib/XRay/FileHeaderReader.cpp vendor/llvm/dist/lib/XRay/InstrumentationMap.cpp vendor/llvm/dist/lib/XRay/LogBuilderConsumer.cpp vendor/llvm/dist/lib/XRay/Profile.cpp vendor/llvm/dist/lib/XRay/RecordInitializer.cpp vendor/llvm/dist/lib/XRay/RecordPrinter.cpp vendor/llvm/dist/lib/XRay/Trace.cpp vendor/llvm/dist/tools/bugpoint/BugDriver.cpp vendor/llvm/dist/tools/bugpoint/BugDriver.h 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/FindBugs.cpp vendor/llvm/dist/tools/bugpoint/ListReducer.h vendor/llvm/dist/tools/bugpoint/Miscompilation.cpp vendor/llvm/dist/tools/bugpoint/OptimizerDriver.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/llc/llc.cpp vendor/llvm/dist/tools/lli/RemoteJITUtils.h vendor/llvm/dist/tools/lli/lli.cpp 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-cov/CodeCoverage.cpp vendor/llvm/dist/tools/llvm-cov/CoverageExporter.h vendor/llvm/dist/tools/llvm-cov/CoverageExporterJson.cpp vendor/llvm/dist/tools/llvm-cov/CoverageExporterJson.h vendor/llvm/dist/tools/llvm-cov/CoverageExporterLcov.cpp vendor/llvm/dist/tools/llvm-cov/CoverageExporterLcov.h vendor/llvm/dist/tools/llvm-cov/CoverageFilters.cpp vendor/llvm/dist/tools/llvm-cov/CoverageFilters.h vendor/llvm/dist/tools/llvm-cov/CoverageReport.cpp vendor/llvm/dist/tools/llvm-cov/CoverageReport.h vendor/llvm/dist/tools/llvm-cov/CoverageSummaryInfo.cpp vendor/llvm/dist/tools/llvm-cov/CoverageSummaryInfo.h vendor/llvm/dist/tools/llvm-cov/CoverageViewOptions.h vendor/llvm/dist/tools/llvm-cov/RenderingSupport.h vendor/llvm/dist/tools/llvm-cov/SourceCoverageView.cpp vendor/llvm/dist/tools/llvm-cov/SourceCoverageView.h vendor/llvm/dist/tools/llvm-cov/SourceCoverageViewHTML.cpp vendor/llvm/dist/tools/llvm-cov/SourceCoverageViewHTML.h vendor/llvm/dist/tools/llvm-cov/SourceCoverageViewText.cpp vendor/llvm/dist/tools/llvm-cov/SourceCoverageViewText.h vendor/llvm/dist/tools/llvm-cov/TestingSupport.cpp vendor/llvm/dist/tools/llvm-cov/gcov.cpp vendor/llvm/dist/tools/llvm-cov/llvm-cov.cpp vendor/llvm/dist/tools/llvm-cxxdump/Error.cpp vendor/llvm/dist/tools/llvm-cxxdump/Error.h vendor/llvm/dist/tools/llvm-cxxdump/llvm-cxxdump.cpp vendor/llvm/dist/tools/llvm-cxxdump/llvm-cxxdump.h vendor/llvm/dist/tools/llvm-cxxfilt/llvm-cxxfilt.cpp vendor/llvm/dist/tools/llvm-cxxmap/llvm-cxxmap.cpp vendor/llvm/dist/tools/llvm-diff/DiffConsumer.cpp vendor/llvm/dist/tools/llvm-diff/DiffConsumer.h 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-diff/DifferenceEngine.h vendor/llvm/dist/tools/llvm-diff/llvm-diff.cpp vendor/llvm/dist/tools/llvm-dis/llvm-dis.cpp vendor/llvm/dist/tools/llvm-dwarfdump/Statistics.cpp vendor/llvm/dist/tools/llvm-dwarfdump/llvm-dwarfdump.cpp vendor/llvm/dist/tools/llvm-extract/llvm-extract.cpp vendor/llvm/dist/tools/llvm-link/llvm-link.cpp vendor/llvm/dist/tools/llvm-lto/llvm-lto.cpp vendor/llvm/dist/tools/llvm-lto2/llvm-lto2.cpp vendor/llvm/dist/tools/llvm-mc/Disassembler.cpp vendor/llvm/dist/tools/llvm-mc/Disassembler.h vendor/llvm/dist/tools/llvm-mc/llvm-mc.cpp vendor/llvm/dist/tools/llvm-mca/CodeRegion.cpp vendor/llvm/dist/tools/llvm-mca/CodeRegion.h vendor/llvm/dist/tools/llvm-mca/CodeRegionGenerator.cpp vendor/llvm/dist/tools/llvm-mca/CodeRegionGenerator.h vendor/llvm/dist/tools/llvm-mca/PipelinePrinter.cpp vendor/llvm/dist/tools/llvm-mca/PipelinePrinter.h vendor/llvm/dist/tools/llvm-mca/Views/DispatchStatistics.cpp vendor/llvm/dist/tools/llvm-mca/Views/DispatchStatistics.h vendor/llvm/dist/tools/llvm-mca/Views/InstructionInfoView.cpp vendor/llvm/dist/tools/llvm-mca/Views/InstructionInfoView.h vendor/llvm/dist/tools/llvm-mca/Views/RegisterFileStatistics.cpp vendor/llvm/dist/tools/llvm-mca/Views/RegisterFileStatistics.h vendor/llvm/dist/tools/llvm-mca/Views/ResourcePressureView.cpp vendor/llvm/dist/tools/llvm-mca/Views/ResourcePressureView.h vendor/llvm/dist/tools/llvm-mca/Views/RetireControlUnitStatistics.cpp vendor/llvm/dist/tools/llvm-mca/Views/RetireControlUnitStatistics.h vendor/llvm/dist/tools/llvm-mca/Views/SchedulerStatistics.cpp vendor/llvm/dist/tools/llvm-mca/Views/SchedulerStatistics.h vendor/llvm/dist/tools/llvm-mca/Views/SummaryView.cpp vendor/llvm/dist/tools/llvm-mca/Views/SummaryView.h vendor/llvm/dist/tools/llvm-mca/Views/TimelineView.cpp vendor/llvm/dist/tools/llvm-mca/Views/TimelineView.h vendor/llvm/dist/tools/llvm-mca/Views/View.cpp vendor/llvm/dist/tools/llvm-mca/Views/View.h vendor/llvm/dist/tools/llvm-mca/llvm-mca.cpp vendor/llvm/dist/tools/llvm-modextract/llvm-modextract.cpp vendor/llvm/dist/tools/llvm-nm/llvm-nm.cpp vendor/llvm/dist/tools/llvm-objcopy/Buffer.cpp vendor/llvm/dist/tools/llvm-objcopy/Buffer.h vendor/llvm/dist/tools/llvm-objcopy/COFF/COFFObjcopy.cpp vendor/llvm/dist/tools/llvm-objcopy/COFF/COFFObjcopy.h vendor/llvm/dist/tools/llvm-objcopy/COFF/Object.cpp vendor/llvm/dist/tools/llvm-objcopy/COFF/Object.h vendor/llvm/dist/tools/llvm-objcopy/COFF/Reader.cpp vendor/llvm/dist/tools/llvm-objcopy/COFF/Reader.h vendor/llvm/dist/tools/llvm-objcopy/COFF/Writer.cpp vendor/llvm/dist/tools/llvm-objcopy/COFF/Writer.h vendor/llvm/dist/tools/llvm-objcopy/CopyConfig.cpp vendor/llvm/dist/tools/llvm-objcopy/CopyConfig.h vendor/llvm/dist/tools/llvm-objcopy/ELF/ELFObjcopy.cpp vendor/llvm/dist/tools/llvm-objcopy/ELF/ELFObjcopy.h vendor/llvm/dist/tools/llvm-objcopy/ELF/Object.cpp vendor/llvm/dist/tools/llvm-objcopy/ELF/Object.h vendor/llvm/dist/tools/llvm-objcopy/ObjcopyOpts.td vendor/llvm/dist/tools/llvm-objcopy/StripOpts.td vendor/llvm/dist/tools/llvm-objcopy/llvm-objcopy.cpp vendor/llvm/dist/tools/llvm-objcopy/llvm-objcopy.h 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/WasmDump.cpp vendor/llvm/dist/tools/llvm-objdump/llvm-objdump.cpp vendor/llvm/dist/tools/llvm-objdump/llvm-objdump.h vendor/llvm/dist/tools/llvm-pdbutil/BytesOutputStyle.cpp vendor/llvm/dist/tools/llvm-pdbutil/BytesOutputStyle.h vendor/llvm/dist/tools/llvm-pdbutil/DumpOutputStyle.cpp vendor/llvm/dist/tools/llvm-pdbutil/DumpOutputStyle.h vendor/llvm/dist/tools/llvm-pdbutil/ExplainOutputStyle.cpp vendor/llvm/dist/tools/llvm-pdbutil/ExplainOutputStyle.h vendor/llvm/dist/tools/llvm-pdbutil/FormatUtil.cpp vendor/llvm/dist/tools/llvm-pdbutil/FormatUtil.h vendor/llvm/dist/tools/llvm-pdbutil/InputFile.cpp vendor/llvm/dist/tools/llvm-pdbutil/InputFile.h vendor/llvm/dist/tools/llvm-pdbutil/LinePrinter.cpp vendor/llvm/dist/tools/llvm-pdbutil/LinePrinter.h vendor/llvm/dist/tools/llvm-pdbutil/MinimalSymbolDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/MinimalSymbolDumper.h vendor/llvm/dist/tools/llvm-pdbutil/MinimalTypeDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/MinimalTypeDumper.h vendor/llvm/dist/tools/llvm-pdbutil/OutputStyle.h vendor/llvm/dist/tools/llvm-pdbutil/PdbYaml.cpp vendor/llvm/dist/tools/llvm-pdbutil/PdbYaml.h vendor/llvm/dist/tools/llvm-pdbutil/PrettyBuiltinDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/PrettyBuiltinDumper.h vendor/llvm/dist/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/PrettyClassDefinitionDumper.h vendor/llvm/dist/tools/llvm-pdbutil/PrettyClassLayoutGraphicalDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/PrettyClassLayoutGraphicalDumper.h vendor/llvm/dist/tools/llvm-pdbutil/PrettyCompilandDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/PrettyCompilandDumper.h vendor/llvm/dist/tools/llvm-pdbutil/PrettyEnumDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/PrettyEnumDumper.h vendor/llvm/dist/tools/llvm-pdbutil/PrettyExternalSymbolDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/PrettyExternalSymbolDumper.h vendor/llvm/dist/tools/llvm-pdbutil/PrettyFunctionDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/PrettyFunctionDumper.h vendor/llvm/dist/tools/llvm-pdbutil/PrettyTypeDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/PrettyTypeDumper.h vendor/llvm/dist/tools/llvm-pdbutil/PrettyTypedefDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/PrettyTypedefDumper.h vendor/llvm/dist/tools/llvm-pdbutil/PrettyVariableDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/PrettyVariableDumper.h vendor/llvm/dist/tools/llvm-pdbutil/StreamUtil.cpp vendor/llvm/dist/tools/llvm-pdbutil/StreamUtil.h vendor/llvm/dist/tools/llvm-pdbutil/YAMLOutputStyle.cpp vendor/llvm/dist/tools/llvm-pdbutil/YAMLOutputStyle.h vendor/llvm/dist/tools/llvm-pdbutil/llvm-pdbutil.cpp vendor/llvm/dist/tools/llvm-pdbutil/llvm-pdbutil.h vendor/llvm/dist/tools/llvm-profdata/llvm-profdata.cpp vendor/llvm/dist/tools/llvm-readobj/ARMEHABIPrinter.h vendor/llvm/dist/tools/llvm-readobj/ARMWinEHPrinter.cpp vendor/llvm/dist/tools/llvm-readobj/ARMWinEHPrinter.h vendor/llvm/dist/tools/llvm-readobj/COFFDumper.cpp vendor/llvm/dist/tools/llvm-readobj/COFFImportDumper.cpp vendor/llvm/dist/tools/llvm-readobj/DwarfCFIEHPrinter.h vendor/llvm/dist/tools/llvm-readobj/ELFDumper.cpp vendor/llvm/dist/tools/llvm-readobj/Error.cpp vendor/llvm/dist/tools/llvm-readobj/Error.h vendor/llvm/dist/tools/llvm-readobj/MachODumper.cpp vendor/llvm/dist/tools/llvm-readobj/ObjDumper.cpp vendor/llvm/dist/tools/llvm-readobj/ObjDumper.h vendor/llvm/dist/tools/llvm-readobj/StackMapPrinter.h vendor/llvm/dist/tools/llvm-readobj/WasmDumper.cpp vendor/llvm/dist/tools/llvm-readobj/Win64EHDumper.cpp vendor/llvm/dist/tools/llvm-readobj/Win64EHDumper.h vendor/llvm/dist/tools/llvm-readobj/WindowsResourceDumper.cpp vendor/llvm/dist/tools/llvm-readobj/WindowsResourceDumper.h 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-stress/llvm-stress.cpp vendor/llvm/dist/tools/llvm-symbolizer/llvm-symbolizer.cpp vendor/llvm/dist/tools/llvm-xray/func-id-helper.cpp vendor/llvm/dist/tools/llvm-xray/func-id-helper.h vendor/llvm/dist/tools/llvm-xray/llvm-xray.cpp vendor/llvm/dist/tools/llvm-xray/trie-node.h vendor/llvm/dist/tools/llvm-xray/xray-account.cpp vendor/llvm/dist/tools/llvm-xray/xray-account.h vendor/llvm/dist/tools/llvm-xray/xray-color-helper.cpp vendor/llvm/dist/tools/llvm-xray/xray-color-helper.h vendor/llvm/dist/tools/llvm-xray/xray-converter.cpp vendor/llvm/dist/tools/llvm-xray/xray-converter.h vendor/llvm/dist/tools/llvm-xray/xray-extract.cpp vendor/llvm/dist/tools/llvm-xray/xray-fdr-dump.cpp vendor/llvm/dist/tools/llvm-xray/xray-graph-diff.cpp vendor/llvm/dist/tools/llvm-xray/xray-graph-diff.h vendor/llvm/dist/tools/llvm-xray/xray-graph.cpp vendor/llvm/dist/tools/llvm-xray/xray-graph.h vendor/llvm/dist/tools/llvm-xray/xray-registry.cpp vendor/llvm/dist/tools/llvm-xray/xray-registry.h vendor/llvm/dist/tools/llvm-xray/xray-stacks.cpp vendor/llvm/dist/tools/opt/AnalysisWrappers.cpp vendor/llvm/dist/tools/opt/BreakpointPrinter.cpp vendor/llvm/dist/tools/opt/BreakpointPrinter.h vendor/llvm/dist/tools/opt/Debugify.cpp vendor/llvm/dist/tools/opt/Debugify.h vendor/llvm/dist/tools/opt/GraphPrinters.cpp vendor/llvm/dist/tools/opt/NewPMDriver.cpp vendor/llvm/dist/tools/opt/NewPMDriver.h vendor/llvm/dist/tools/opt/PassPrinters.cpp vendor/llvm/dist/tools/opt/PassPrinters.h vendor/llvm/dist/tools/opt/PrintSCC.cpp vendor/llvm/dist/tools/opt/opt.cpp vendor/llvm/dist/utils/TableGen/AsmMatcherEmitter.cpp vendor/llvm/dist/utils/TableGen/AsmWriterEmitter.cpp vendor/llvm/dist/utils/TableGen/AsmWriterInst.cpp vendor/llvm/dist/utils/TableGen/AsmWriterInst.h vendor/llvm/dist/utils/TableGen/Attributes.cpp vendor/llvm/dist/utils/TableGen/CTagsEmitter.cpp vendor/llvm/dist/utils/TableGen/CallingConvEmitter.cpp vendor/llvm/dist/utils/TableGen/CodeEmitterGen.cpp vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.cpp vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.h vendor/llvm/dist/utils/TableGen/CodeGenHwModes.cpp vendor/llvm/dist/utils/TableGen/CodeGenHwModes.h vendor/llvm/dist/utils/TableGen/CodeGenInstruction.cpp vendor/llvm/dist/utils/TableGen/CodeGenInstruction.h 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/CodeGenRegisters.h 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/DAGISelEmitter.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcher.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcher.h vendor/llvm/dist/utils/TableGen/DAGISelMatcherEmitter.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcherGen.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcherOpt.cpp vendor/llvm/dist/utils/TableGen/DFAPacketizerEmitter.cpp vendor/llvm/dist/utils/TableGen/DisassemblerEmitter.cpp vendor/llvm/dist/utils/TableGen/ExegesisEmitter.cpp vendor/llvm/dist/utils/TableGen/FastISelEmitter.cpp vendor/llvm/dist/utils/TableGen/FixedLenDecoderEmitter.cpp vendor/llvm/dist/utils/TableGen/GlobalISelEmitter.cpp vendor/llvm/dist/utils/TableGen/InfoByHwMode.cpp vendor/llvm/dist/utils/TableGen/InfoByHwMode.h vendor/llvm/dist/utils/TableGen/InstrDocsEmitter.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/PredicateExpander.cpp vendor/llvm/dist/utils/TableGen/PredicateExpander.h vendor/llvm/dist/utils/TableGen/PseudoLoweringEmitter.cpp vendor/llvm/dist/utils/TableGen/RISCVCompressInstEmitter.cpp vendor/llvm/dist/utils/TableGen/RegisterBankEmitter.cpp vendor/llvm/dist/utils/TableGen/RegisterInfoEmitter.cpp vendor/llvm/dist/utils/TableGen/SDNodeProperties.cpp vendor/llvm/dist/utils/TableGen/SDNodeProperties.h vendor/llvm/dist/utils/TableGen/SearchableTableEmitter.cpp vendor/llvm/dist/utils/TableGen/SequenceToOffsetTable.h vendor/llvm/dist/utils/TableGen/SubtargetEmitter.cpp vendor/llvm/dist/utils/TableGen/SubtargetFeatureInfo.cpp vendor/llvm/dist/utils/TableGen/SubtargetFeatureInfo.h vendor/llvm/dist/utils/TableGen/TableGen.cpp vendor/llvm/dist/utils/TableGen/TableGenBackends.h vendor/llvm/dist/utils/TableGen/Types.cpp vendor/llvm/dist/utils/TableGen/Types.h vendor/llvm/dist/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp vendor/llvm/dist/utils/TableGen/WebAssemblyDisassemblerEmitter.h vendor/llvm/dist/utils/TableGen/X86DisassemblerShared.h vendor/llvm/dist/utils/TableGen/X86DisassemblerTables.cpp vendor/llvm/dist/utils/TableGen/X86DisassemblerTables.h vendor/llvm/dist/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp vendor/llvm/dist/utils/TableGen/X86FoldTablesEmitter.cpp vendor/llvm/dist/utils/TableGen/X86ModRMFilters.cpp vendor/llvm/dist/utils/TableGen/X86ModRMFilters.h vendor/llvm/dist/utils/TableGen/X86RecognizableInstr.cpp vendor/llvm/dist/utils/TableGen/X86RecognizableInstr.h Modified: vendor/llvm/dist/LICENSE.TXT ============================================================================== --- vendor/llvm/dist/LICENSE.TXT Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/LICENSE.TXT Tue Aug 20 20:50:12 2019 (r351278) @@ -1,6 +1,241 @@ ============================================================================== -LLVM Release License +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: ============================================================================== + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +============================================================================== +Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): +============================================================================== University of Illinois/NCSA Open Source License @@ -42,27 +277,3 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR O OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. -============================================================================== -Copyrights and Licenses for Third Party Software Distributed with LLVM: -============================================================================== -The LLVM software contains code written by third parties. Such software will -have its own individual LICENSE.TXT file in the directory in which it appears. -This file will describe the copyrights, license, and restrictions which apply -to that code. - -The disclaimer of warranty in the University of Illinois Open Source License -applies to all code in the LLVM Distribution, and nothing in any of the -other licenses gives permission to use the names of the LLVM Team or the -University of Illinois to endorse or promote products derived from this -Software. - -The following pieces of software have additional or alternate copyrights, -licenses, and/or restrictions: - -Program Directory -------- --------- -Google Test llvm/utils/unittest/googletest -OpenBSD regex llvm/lib/Support/{reg*, COPYRIGHT.regex} -pyyaml tests llvm/test/YAMLParser/{*.data, LICENSE.TXT} -ARM contributions llvm/lib/Target/ARM/LICENSE.TXT -md5 contributions llvm/lib/Support/MD5.cpp llvm/include/llvm/Support/MD5.h Modified: vendor/llvm/dist/include/llvm-c/Analysis.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/Analysis.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/Analysis.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,9 @@ /*===-- llvm-c/Analysis.h - Analysis Library C Interface --------*- C++ -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/llvm/dist/include/llvm-c/BitReader.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/BitReader.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/BitReader.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,9 @@ /*===-- llvm-c/BitReader.h - BitReader Library C Interface ------*- C++ -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/llvm/dist/include/llvm-c/BitWriter.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/BitWriter.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/BitWriter.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,9 @@ /*===-- llvm-c/BitWriter.h - BitWriter Library C Interface ------*- C++ -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/llvm/dist/include/llvm-c/Comdat.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/Comdat.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/Comdat.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,9 @@ /*===-- llvm-c/Comdat.h - Module Comdat C Interface -------------*- C++ -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/llvm/dist/include/llvm-c/Core.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/Core.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/Core.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,10 +1,10 @@ /*===-- llvm-c/Core.h - Core Library C Interface ------------------*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| |*===----------------------------------------------------------------------===*| |* *| |* This header declares the C interface to libLLVMCore.a, which implements *| @@ -65,6 +65,7 @@ typedef enum { LLVMInvoke = 5, /* removed 6 due to API changes */ LLVMUnreachable = 7, + LLVMCallBr = 67, /* Standard Unary Operators */ LLVMFNeg = 66, @@ -2402,6 +2403,13 @@ LLVMValueRef LLVMGetPersonalityFn(LLVMValueRef Fn); void LLVMSetPersonalityFn(LLVMValueRef Fn, LLVMValueRef PersonalityFn); /** + * Obtain the intrinsic ID number which matches the given function name. + * + * @see llvm::Function::lookupIntrinsicID() + */ +unsigned LLVMLookupIntrinsicID(const char *Name, size_t NameLen); + +/** * Obtain the ID number from a function instance. * * @see llvm::Function::getIntrinsicID() @@ -2612,54 +2620,140 @@ void LLVMSetParamAlignment(LLVMValueRef Arg, unsigned */ /** - * @} + * @defgroup LLVMCCoreValueGlobalIFunc IFuncs + * + * Functions in this group relate to indirect functions. + * + * Functions in this group expect LLVMValueRef instances that correspond + * to llvm::GlobalIFunc instances. + * + * @{ */ /** - * @} + * Add a global indirect function to a module under a specified name. + * + * @see llvm::GlobalIFunc::create() */ +LLVMValueRef LLVMAddGlobalIFunc(LLVMModuleRef M, + const char *Name, size_t NameLen, + LLVMTypeRef Ty, unsigned AddrSpace, + LLVMValueRef Resolver); /** - * @} + * Obtain a GlobalIFunc value from a Module by its name. + * + * The returned value corresponds to a llvm::GlobalIFunc value. + * + * @see llvm::Module::getNamedIFunc() */ +LLVMValueRef LLVMGetNamedGlobalIFunc(LLVMModuleRef M, + const char *Name, size_t NameLen); /** - * @defgroup LLVMCCoreValueMetadata Metadata + * Obtain an iterator to the first GlobalIFunc in a Module. * - * @{ + * @see llvm::Module::ifunc_begin() */ +LLVMValueRef LLVMGetFirstGlobalIFunc(LLVMModuleRef M); /** - * Obtain a MDString value from a context. + * Obtain an iterator to the last GlobalIFunc in a Module. * - * The returned instance corresponds to the llvm::MDString class. + * @see llvm::Module::ifunc_end() + */ +LLVMValueRef LLVMGetLastGlobalIFunc(LLVMModuleRef M); + +/** + * Advance a GlobalIFunc iterator to the next GlobalIFunc. * - * The instance is specified by string data of a specified length. The - * string content is copied, so the backing memory can be freed after - * this function returns. + * Returns NULL if the iterator was already at the end and there are no more + * global aliases. */ -LLVMValueRef LLVMMDStringInContext(LLVMContextRef C, const char *Str, - unsigned SLen); +LLVMValueRef LLVMGetNextGlobalIFunc(LLVMValueRef IFunc); /** - * Obtain a MDString value from the global context. + * Decrement a GlobalIFunc iterator to the previous GlobalIFunc. + * + * Returns NULL if the iterator was already at the beginning and there are + * no previous global aliases. */ -LLVMValueRef LLVMMDString(const char *Str, unsigned SLen); +LLVMValueRef LLVMGetPreviousGlobalIFunc(LLVMValueRef IFunc); + +/** + * Retrieves the resolver function associated with this indirect function, or + * NULL if it doesn't not exist. + * + * @see llvm::GlobalIFunc::getResolver() + */ +LLVMValueRef LLVMGetGlobalIFuncResolver(LLVMValueRef IFunc); /** - * Obtain a MDNode value from a context. + * Sets the resolver function associated with this indirect function. * - * The returned value corresponds to the llvm::MDNode class. + * @see llvm::GlobalIFunc::setResolver() */ -LLVMValueRef LLVMMDNodeInContext(LLVMContextRef C, LLVMValueRef *Vals, - unsigned Count); +void LLVMSetGlobalIFuncResolver(LLVMValueRef IFunc, LLVMValueRef Resolver); /** - * Obtain a MDNode value from the global context. + * Remove a global indirect function from its parent module and delete it. + * + * @see llvm::GlobalIFunc::eraseFromParent() */ -LLVMValueRef LLVMMDNode(LLVMValueRef *Vals, unsigned Count); +void LLVMEraseGlobalIFunc(LLVMValueRef IFunc); /** + * Remove a global indirect function from its parent module. + * + * This unlinks the global indirect function from its containing module but + * keeps it alive. + * + * @see llvm::GlobalIFunc::removeFromParent() + */ +void LLVMRemoveGlobalIFunc(LLVMValueRef IFunc); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @defgroup LLVMCCoreValueMetadata Metadata + * + * @{ + */ + +/** + * Create an MDString value from a given string value. + * + * The MDString value does not take ownership of the given string, it remains + * the responsibility of the caller to free it. + * + * @see llvm::MDString::get() + */ +LLVMMetadataRef LLVMMDStringInContext2(LLVMContextRef C, const char *Str, + size_t SLen); + +/** + * Create an MDNode value with the given array of operands. + * + * @see llvm::MDNode::get() + */ +LLVMMetadataRef LLVMMDNodeInContext2(LLVMContextRef C, LLVMMetadataRef *MDs, + size_t Count); + +/** * Obtain a Metadata as a Value. */ LLVMValueRef LLVMMetadataAsValue(LLVMContextRef C, LLVMMetadataRef MD); @@ -2699,6 +2793,17 @@ unsigned LLVMGetMDNodeNumOperands(LLVMValueRef V); */ void LLVMGetMDNodeOperands(LLVMValueRef V, LLVMValueRef *Dest); +/** Deprecated: Use LLVMMDStringInContext2 instead. */ +LLVMValueRef LLVMMDStringInContext(LLVMContextRef C, const char *Str, + unsigned SLen); +/** Deprecated: Use LLVMMDStringInContext2 instead. */ +LLVMValueRef LLVMMDString(const char *Str, unsigned SLen); +/** Deprecated: Use LLVMMDNodeInContext2 instead. */ +LLVMValueRef LLVMMDNodeInContext(LLVMContextRef C, LLVMValueRef *Vals, + unsigned Count); +/** Deprecated: Use LLVMMDNodeInContext2 instead. */ +LLVMValueRef LLVMMDNode(LLVMValueRef *Vals, unsigned Count); + /** * @} */ @@ -2812,6 +2917,24 @@ LLVMBasicBlockRef LLVMGetPreviousBasicBlock(LLVMBasicB LLVMBasicBlockRef LLVMGetEntryBasicBlock(LLVMValueRef Fn); /** + * Insert the given basic block after the insertion point of the given builder. + * + * The insertion point must be valid. + * + * @see llvm::Function::BasicBlockListType::insertAfter() + */ +void LLVMInsertExistingBasicBlockAfterInsertBlock(LLVMBuilderRef Builder, + LLVMBasicBlockRef BB); + +/** + * Append the given basic block to the basic block list of the given function. + * + * @see llvm::Function::BasicBlockListType::push_back() + */ +void LLVMAppendExistingBasicBlock(LLVMValueRef Fn, + LLVMBasicBlockRef BB); + +/** * Create a new basic block without inserting it into a function. * * @see llvm::BasicBlock::Create() @@ -3387,9 +3510,59 @@ void LLVMInsertIntoBuilderWithName(LLVMBuilderRef Buil void LLVMDisposeBuilder(LLVMBuilderRef Builder); /* Metadata */ + +/** + * Get location information used by debugging information. + * + * @see llvm::IRBuilder::getCurrentDebugLocation() + */ +LLVMMetadataRef LLVMGetCurrentDebugLocation2(LLVMBuilderRef Builder); + +/** + * Set location information used by debugging information. + * + * To clear the location metadata of the given instruction, pass NULL to \p Loc. + * + * @see llvm::IRBuilder::SetCurrentDebugLocation() + */ +void LLVMSetCurrentDebugLocation2(LLVMBuilderRef Builder, LLVMMetadataRef Loc); + +/** + * Attempts to set the debug location for the given instruction using the + * current debug location for the given builder. If the builder has no current + * debug location, this function is a no-op. + * + * @see llvm::IRBuilder::SetInstDebugLocation() + */ +void LLVMSetInstDebugLocation(LLVMBuilderRef Builder, LLVMValueRef Inst); + +/** + * Get the dafult floating-point math metadata for a given builder. + * + * @see llvm::IRBuilder::getDefaultFPMathTag() + */ +LLVMMetadataRef LLVMBuilderGetDefaultFPMathTag(LLVMBuilderRef Builder); + +/** + * Set the default floating-point math metadata for the given builder. + * + * To clear the metadata, pass NULL to \p FPMathTag. + * + * @see llvm::IRBuilder::setDefaultFPMathTag() + */ +void LLVMBuilderSetDefaultFPMathTag(LLVMBuilderRef Builder, + LLVMMetadataRef FPMathTag); + +/** + * Deprecated: Passing the NULL location will crash. + * Use LLVMGetCurrentDebugLocation2 instead. + */ void LLVMSetCurrentDebugLocation(LLVMBuilderRef Builder, LLVMValueRef L); +/** + * Deprecated: Returning the NULL location will crash. + * Use LLVMGetCurrentDebugLocation2 instead. + */ LLVMValueRef LLVMGetCurrentDebugLocation(LLVMBuilderRef Builder); -void LLVMSetInstDebugLocation(LLVMBuilderRef Builder, LLVMValueRef Inst); /* Terminators */ LLVMValueRef LLVMBuildRetVoid(LLVMBuilderRef); Modified: vendor/llvm/dist/include/llvm-c/DataTypes.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/DataTypes.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/DataTypes.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,9 @@ /*===-- include/llvm-c/DataTypes.h - Define fixed size types ------*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/llvm/dist/include/llvm-c/DebugInfo.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/DebugInfo.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/DebugInfo.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,10 +1,9 @@ //===------------ DebugInfo.h - LLVM C API Debug Info API -----------------===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// /// /// This file declares the C API endpoints for generating DWARF Debug Info @@ -51,13 +50,12 @@ typedef enum { LLVMDIFlagIntroducedVirtual = 1 << 18, LLVMDIFlagBitField = 1 << 19, LLVMDIFlagNoReturn = 1 << 20, - LLVMDIFlagMainSubprogram = 1 << 21, LLVMDIFlagTypePassByValue = 1 << 22, LLVMDIFlagTypePassByReference = 1 << 23, LLVMDIFlagEnumClass = 1 << 24, LLVMDIFlagFixedEnum = LLVMDIFlagEnumClass, // Deprecated. LLVMDIFlagThunk = 1 << 25, - LLVMDIFlagTrivial = 1 << 26, + LLVMDIFlagNonTrivial = 1 << 26, LLVMDIFlagBigEndian = 1 << 27, LLVMDIFlagLittleEndian = 1 << 28, LLVMDIFlagIndirectVirtualBase = (1 << 2) | (1 << 5), @@ -161,7 +159,8 @@ enum { LLVMDIObjCPropertyMetadataKind, LLVMDIImportedEntityMetadataKind, LLVMDIMacroMetadataKind, - LLVMDIMacroFileMetadataKind + LLVMDIMacroFileMetadataKind, + LLVMDICommonBlockMetadataKind }; typedef unsigned LLVMMetadataKind; @@ -453,6 +452,49 @@ unsigned LLVMDILocationGetColumn(LLVMMetadataRef Locat LLVMMetadataRef LLVMDILocationGetScope(LLVMMetadataRef Location); /** + * Get the "inline at" location associated with this debug location. + * \param Location The debug location. + * + * @see DILocation::getInlinedAt() + */ +LLVMMetadataRef LLVMDILocationGetInlinedAt(LLVMMetadataRef Location); + +/** + * Get the metadata of the file associated with a given scope. + * \param Scope The scope object. + * + * @see DIScope::getFile() + */ +LLVMMetadataRef LLVMDIScopeGetFile(LLVMMetadataRef Scope); + +/** + * Get the directory of a given file. + * \param File The file object. + * \param Len The length of the returned string. + * + * @see DIFile::getDirectory() + */ +const char *LLVMDIFileGetDirectory(LLVMMetadataRef File, unsigned *Len); + +/** + * Get the name of a given file. + * \param File The file object. + * \param Len The length of the returned string. + * + * @see DIFile::getFilename() + */ +const char *LLVMDIFileGetFilename(LLVMMetadataRef File, unsigned *Len); + +/** + * Get the source of a given file. + * \param File The file object. + * \param Len The length of the returned string. + * + * @see DIFile::getSource() + */ +const char *LLVMDIFileGetSource(LLVMMetadataRef File, unsigned *Len); + +/** * Create a type array. * \param Builder The DIBuilder. * \param Data The type elements. @@ -480,6 +522,19 @@ LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Bui LLVMDIFlags Flags); /** + * Create debugging information entry for an enumerator. + * @param Builder The DIBuilder. + * @param Name Enumerator name. + * @param NameLen Length of enumerator name. + * @param Value Enumerator value. + * @param IsUnsigned True if the value is unsigned. + */ +LLVMMetadataRef LLVMDIBuilderCreateEnumerator(LLVMDIBuilderRef Builder, + const char *Name, size_t NameLen, + int64_t Value, + LLVMBool IsUnsigned); + +/** * Create debugging information entry for an enumeration. * \param Builder The DIBuilder. * \param Scope Scope in which this enumeration is defined. @@ -1017,7 +1072,49 @@ LLVMMetadataRef LLVMDIBuilderCreateGlobalVariableExpre size_t NameLen, const char *Linkage, size_t LinkLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty, LLVMBool LocalToUnit, LLVMMetadataRef Expr, LLVMMetadataRef Decl, uint32_t AlignInBits); + /** + * Retrieves the \c DIVariable associated with this global variable expression. + * \param GVE The global variable expression. + * + * @see llvm::DIGlobalVariableExpression::getVariable() + */ +LLVMMetadataRef LLVMDIGlobalVariableExpressionGetVariable(LLVMMetadataRef GVE); + +/** + * Retrieves the \c DIExpression associated with this global variable expression. + * \param GVE The global variable expression. + * + * @see llvm::DIGlobalVariableExpression::getExpression() + */ +LLVMMetadataRef LLVMDIGlobalVariableExpressionGetExpression( + LLVMMetadataRef GVE); + +/** + * Get the metadata of the file associated with a given variable. + * \param Var The variable object. + * + * @see DIVariable::getFile() + */ +LLVMMetadataRef LLVMDIVariableGetFile(LLVMMetadataRef Var); + +/** + * Get the metadata of the scope associated with a given variable. + * \param Var The variable object. + * + * @see DIVariable::getScope() + */ +LLVMMetadataRef LLVMDIVariableGetScope(LLVMMetadataRef Var); + +/** + * Get the source line where this \c DIVariable is declared. + * \param Var The DIVariable. + * + * @see DIVariable::getLine() + */ +unsigned LLVMDIVariableGetLine(LLVMMetadataRef Var); + +/** * Create a new temporary \c MDNode. Suitable for use in constructing cyclic * \c MDNode structures. A temporary \c MDNode is not uniqued, may be RAUW'd, * and must be manually deleted with \c LLVMDisposeTemporaryMDNode. @@ -1179,6 +1276,30 @@ LLVMMetadataRef LLVMGetSubprogram(LLVMValueRef Func); * @see llvm::Function::setSubprogram() */ void LLVMSetSubprogram(LLVMValueRef Func, LLVMMetadataRef SP); + +/** + * Get the line associated with a given subprogram. + * \param Subprogram The subprogram object. + * + * @see DISubprogram::getLine() + */ +unsigned LLVMDISubprogramGetLine(LLVMMetadataRef Subprogram); + +/** + * Get the debug location for the given instruction. + * + * @see llvm::Instruction::getDebugLoc() + */ +LLVMMetadataRef LLVMInstructionGetDebugLoc(LLVMValueRef Inst); + +/** + * Set the debug location for the given instruction. + * + * To clear the location metadata of the given instruction, pass NULL to \p Loc. + * + * @see llvm::Instruction::setDebugLoc() + */ +void LLVMInstructionSetDebugLoc(LLVMValueRef Inst, LLVMMetadataRef Loc); /** * Obtain the enumerated type of a Metadata instance. Modified: vendor/llvm/dist/include/llvm-c/Disassembler.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/Disassembler.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/Disassembler.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,9 @@ /*===-- llvm-c/Disassembler.h - Disassembler Public C Interface ---*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/llvm/dist/include/llvm-c/DisassemblerTypes.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/DisassemblerTypes.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/DisassemblerTypes.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,9 @@ /*===-- llvm-c/DisassemblerTypedefs.h -----------------------------*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*/ Modified: vendor/llvm/dist/include/llvm-c/Error.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/Error.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/Error.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,10 +1,10 @@ /*===------- llvm-c/Error.h - llvm::Error class C Interface -------*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| |*===----------------------------------------------------------------------===*| |* *| |* This file defines the C interface to LLVM's Error class. *| @@ -60,7 +60,7 @@ void LLVMDisposeErrorMessage(char *ErrMsg); /** * Returns the type id for llvm StringError. */ -LLVMErrorTypeId LLVMGetStringErrorTypeId(); +LLVMErrorTypeId LLVMGetStringErrorTypeId(void); #ifdef __cplusplus } Modified: vendor/llvm/dist/include/llvm-c/ErrorHandling.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/ErrorHandling.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/ErrorHandling.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,9 @@ /*===-- llvm-c/ErrorHandling.h - Error Handling C Interface -------*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/llvm/dist/include/llvm-c/ExecutionEngine.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/ExecutionEngine.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/ExecutionEngine.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,9 @@ /*===-- llvm-c/ExecutionEngine.h - ExecutionEngine Lib C Iface --*- C++ -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/llvm/dist/include/llvm-c/IRReader.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/IRReader.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/IRReader.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,9 @@ /*===-- llvm-c/IRReader.h - IR Reader C Interface -----------------*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/llvm/dist/include/llvm-c/Initialization.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/Initialization.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/Initialization.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,9 @@ /*===-- llvm-c/Initialization.h - Initialization C Interface ------*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/llvm/dist/include/llvm-c/LinkTimeOptimizer.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/LinkTimeOptimizer.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/LinkTimeOptimizer.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,8 @@ //===-- llvm/LinkTimeOptimizer.h - LTO Public C Interface -------*- C++ -*-===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // Modified: vendor/llvm/dist/include/llvm-c/Linker.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/Linker.h Tue Aug 20 20:18:58 2019 (r351277) +++ vendor/llvm/dist/include/llvm-c/Linker.h Tue Aug 20 20:50:12 2019 (r351278) @@ -1,9 +1,9 @@ /*===-- llvm-c/Linker.h - Module Linker C Interface -------------*- C++ -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Aug 20 20:50:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 44E63DFE9D; Tue, 20 Aug 2019 20:50:27 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjc236rFz40RH; Tue, 20 Aug 2019 20:50:26 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E5D8C8EB1; Tue, 20 Aug 2019 20:50:25 +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 x7KKoPWW075007; Tue, 20 Aug 2019 20:50:25 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKoP2p075006; Tue, 20 Aug 2019 20:50:25 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202050.x7KKoP2p075006@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:50:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351279 - vendor/llvm/llvm-trunk-r366426 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm/llvm-trunk-r366426 X-SVN-Commit-Revision: 351279 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:50:27 -0000 Author: dim Date: Tue Aug 20 20:50:25 2019 New Revision: 351279 URL: https://svnweb.freebsd.org/changeset/base/351279 Log: Tag stripped llvm trunk r366426 (just before the release_90 branch point). Added: vendor/llvm/llvm-trunk-r366426/ - copied from r351278, vendor/llvm/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:50:54 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 72DD5DFF51; Tue, 20 Aug 2019 20:50:54 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CjcZ38Wqz40dK; Tue, 20 Aug 2019 20:50:54 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4CE818ECB; Tue, 20 Aug 2019 20:50:54 +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 x7KKoscg075788; Tue, 20 Aug 2019 20:50:54 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKopQa075771; Tue, 20 Aug 2019 20:50:51 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202050.x7KKopQa075771@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:50:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351280 - in vendor/clang/dist: . include/clang-c include/clang/ARCMigrate include/clang/AST include/clang/ASTMatchers include/clang/ASTMatchers/Dynamic include/clang/Analysis include/c... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/clang/dist: . include/clang-c include/clang/ARCMigrate include/clang/AST include/clang/ASTMatchers include/clang/ASTMatchers/Dynamic include/clang/Analysis include/clang/Analysis/Analyses in... X-SVN-Commit-Revision: 351280 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:50:54 -0000 Author: dim Date: Tue Aug 20 20:50:49 2019 New Revision: 351280 URL: https://svnweb.freebsd.org/changeset/base/351280 Log: Vendor import of stripped clang trunk r366426 (just before the release_90 branch point): https://llvm.org/svn/llvm-project/cfe/trunk@366426 Added: vendor/clang/dist/include/clang/AST/ASTDumper.h vendor/clang/dist/include/clang/AST/ASTImporterSharedState.h vendor/clang/dist/include/clang/AST/ASTNodeTraverser.h vendor/clang/dist/include/clang/AST/CurrentSourceLocExprScope.h vendor/clang/dist/include/clang/AST/JSONNodeDumper.h vendor/clang/dist/include/clang/Analysis/AnyCall.h vendor/clang/dist/include/clang/Analysis/RetainSummaryManager.h vendor/clang/dist/include/clang/Basic/JsonSupport.h vendor/clang/dist/include/clang/DirectoryWatcher/ vendor/clang/dist/include/clang/DirectoryWatcher/DirectoryWatcher.h vendor/clang/dist/include/clang/Index/DeclOccurrence.h vendor/clang/dist/include/clang/Lex/DependencyDirectivesSourceMinimizer.h vendor/clang/dist/include/clang/Serialization/InMemoryModuleCache.h vendor/clang/dist/include/clang/Tooling/DependencyScanning/ vendor/clang/dist/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h vendor/clang/dist/include/clang/Tooling/Refactoring/RangeSelector.h vendor/clang/dist/include/clang/Tooling/Refactoring/SourceCode.h vendor/clang/dist/include/clang/Tooling/Refactoring/Stencil.h vendor/clang/dist/include/clang/Tooling/Refactoring/Transformer.h vendor/clang/dist/include/clang/Tooling/Syntax/ vendor/clang/dist/include/clang/Tooling/Syntax/BuildTree.h vendor/clang/dist/include/clang/Tooling/Syntax/Nodes.h vendor/clang/dist/include/clang/Tooling/Syntax/Tokens.h vendor/clang/dist/include/clang/Tooling/Syntax/Tree.h vendor/clang/dist/lib/AST/JSONNodeDumper.cpp vendor/clang/dist/lib/Analysis/RetainSummaryManager.cpp vendor/clang/dist/lib/Analysis/plugins/ vendor/clang/dist/lib/Analysis/plugins/CheckerDependencyHandling/ vendor/clang/dist/lib/Analysis/plugins/CheckerDependencyHandling/CheckerDependencyHandling.cpp vendor/clang/dist/lib/Analysis/plugins/CheckerDependencyHandling/CheckerDependencyHandlingAnalyzerPlugin.exports vendor/clang/dist/lib/Analysis/plugins/CheckerOptionHandling/ vendor/clang/dist/lib/Analysis/plugins/CheckerOptionHandling/CheckerOptionHandling.cpp vendor/clang/dist/lib/Analysis/plugins/CheckerOptionHandling/CheckerOptionHandlingAnalyzerPlugin.exports vendor/clang/dist/lib/Analysis/plugins/SampleAnalyzer/ vendor/clang/dist/lib/Analysis/plugins/SampleAnalyzer/MainCallChecker.cpp vendor/clang/dist/lib/Analysis/plugins/SampleAnalyzer/SampleAnalyzerPlugin.exports vendor/clang/dist/lib/CodeGen/PatternInit.cpp vendor/clang/dist/lib/CodeGen/PatternInit.h vendor/clang/dist/lib/DirectoryWatcher/ vendor/clang/dist/lib/DirectoryWatcher/DirectoryScanner.cpp vendor/clang/dist/lib/DirectoryWatcher/DirectoryScanner.h vendor/clang/dist/lib/DirectoryWatcher/default/ vendor/clang/dist/lib/DirectoryWatcher/default/DirectoryWatcher-not-implemented.cpp vendor/clang/dist/lib/DirectoryWatcher/linux/ vendor/clang/dist/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp vendor/clang/dist/lib/DirectoryWatcher/mac/ vendor/clang/dist/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp vendor/clang/dist/lib/Driver/ToolChains/PPCLinux.cpp vendor/clang/dist/lib/Driver/ToolChains/PPCLinux.h vendor/clang/dist/lib/Frontend/InterfaceStubFunctionsConsumer.cpp vendor/clang/dist/lib/Headers/avx512bf16intrin.h vendor/clang/dist/lib/Headers/avx512vlbf16intrin.h vendor/clang/dist/lib/Headers/avx512vlvp2intersectintrin.h vendor/clang/dist/lib/Headers/avx512vp2intersectintrin.h vendor/clang/dist/lib/Headers/enqcmdintrin.h vendor/clang/dist/lib/Headers/opencl-c-base.h vendor/clang/dist/lib/Headers/openmp_wrappers/ vendor/clang/dist/lib/Headers/openmp_wrappers/__clang_openmp_math.h vendor/clang/dist/lib/Headers/openmp_wrappers/__clang_openmp_math_declares.h vendor/clang/dist/lib/Headers/openmp_wrappers/cmath vendor/clang/dist/lib/Headers/openmp_wrappers/math.h vendor/clang/dist/lib/Headers/ppc_wrappers/ vendor/clang/dist/lib/Headers/ppc_wrappers/emmintrin.h vendor/clang/dist/lib/Headers/ppc_wrappers/mm_malloc.h vendor/clang/dist/lib/Headers/ppc_wrappers/mmintrin.h vendor/clang/dist/lib/Headers/ppc_wrappers/xmmintrin.h vendor/clang/dist/lib/Index/FileIndexRecord.cpp vendor/clang/dist/lib/Index/FileIndexRecord.h vendor/clang/dist/lib/Lex/DependencyDirectivesSourceMinimizer.cpp vendor/clang/dist/lib/Sema/OpenCLBuiltins.td vendor/clang/dist/lib/Sema/SemaModule.cpp vendor/clang/dist/lib/Serialization/InMemoryModuleCache.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MIGChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/Move.h vendor/clang/dist/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ReturnValueChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/Taint.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/Taint.h vendor/clang/dist/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp vendor/clang/dist/lib/Tooling/DependencyScanning/ vendor/clang/dist/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp vendor/clang/dist/lib/Tooling/GuessTargetAndModeCompilationDatabase.cpp vendor/clang/dist/lib/Tooling/Refactoring/RangeSelector.cpp vendor/clang/dist/lib/Tooling/Refactoring/SourceCode.cpp vendor/clang/dist/lib/Tooling/Refactoring/Stencil.cpp vendor/clang/dist/lib/Tooling/Refactoring/Transformer.cpp vendor/clang/dist/lib/Tooling/Syntax/ vendor/clang/dist/lib/Tooling/Syntax/BuildTree.cpp vendor/clang/dist/lib/Tooling/Syntax/Nodes.cpp vendor/clang/dist/lib/Tooling/Syntax/Tokens.cpp vendor/clang/dist/lib/Tooling/Syntax/Tree.cpp vendor/clang/dist/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp Deleted: vendor/clang/dist/include/clang/Basic/MemoryBufferCache.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SMTExpr.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSolver.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSort.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/RetainSummaryManager.h vendor/clang/dist/lib/Basic/MemoryBufferCache.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/TaintManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp Modified: vendor/clang/dist/LICENSE.TXT vendor/clang/dist/include/clang-c/BuildSystem.h vendor/clang/dist/include/clang-c/CXCompilationDatabase.h vendor/clang/dist/include/clang-c/CXErrorCode.h vendor/clang/dist/include/clang-c/CXString.h vendor/clang/dist/include/clang-c/Documentation.h vendor/clang/dist/include/clang-c/Index.h vendor/clang/dist/include/clang-c/Platform.h vendor/clang/dist/include/clang/ARCMigrate/ARCMT.h vendor/clang/dist/include/clang/ARCMigrate/ARCMTActions.h vendor/clang/dist/include/clang/ARCMigrate/FileRemapper.h vendor/clang/dist/include/clang/AST/APValue.h vendor/clang/dist/include/clang/AST/AST.h vendor/clang/dist/include/clang/AST/ASTConsumer.h vendor/clang/dist/include/clang/AST/ASTContext.h vendor/clang/dist/include/clang/AST/ASTContextAllocate.h vendor/clang/dist/include/clang/AST/ASTDiagnostic.h vendor/clang/dist/include/clang/AST/ASTDumperUtils.h vendor/clang/dist/include/clang/AST/ASTFwd.h vendor/clang/dist/include/clang/AST/ASTImporter.h vendor/clang/dist/include/clang/AST/ASTImporterLookupTable.h vendor/clang/dist/include/clang/AST/ASTLambda.h vendor/clang/dist/include/clang/AST/ASTMutationListener.h vendor/clang/dist/include/clang/AST/ASTStructuralEquivalence.h vendor/clang/dist/include/clang/AST/ASTTypeTraits.h vendor/clang/dist/include/clang/AST/ASTUnresolvedSet.h vendor/clang/dist/include/clang/AST/ASTVector.h vendor/clang/dist/include/clang/AST/Attr.h vendor/clang/dist/include/clang/AST/AttrIterator.h vendor/clang/dist/include/clang/AST/AttrVisitor.h vendor/clang/dist/include/clang/AST/Availability.h vendor/clang/dist/include/clang/AST/BaseSubobject.h vendor/clang/dist/include/clang/AST/BuiltinTypes.def vendor/clang/dist/include/clang/AST/CXXInheritance.h vendor/clang/dist/include/clang/AST/CanonicalType.h vendor/clang/dist/include/clang/AST/CharUnits.h vendor/clang/dist/include/clang/AST/Comment.h vendor/clang/dist/include/clang/AST/CommentBriefParser.h vendor/clang/dist/include/clang/AST/CommentCommandTraits.h vendor/clang/dist/include/clang/AST/CommentDiagnostic.h vendor/clang/dist/include/clang/AST/CommentLexer.h vendor/clang/dist/include/clang/AST/CommentParser.h vendor/clang/dist/include/clang/AST/CommentSema.h vendor/clang/dist/include/clang/AST/CommentVisitor.h vendor/clang/dist/include/clang/AST/ComparisonCategories.h vendor/clang/dist/include/clang/AST/DataCollection.h vendor/clang/dist/include/clang/AST/Decl.h vendor/clang/dist/include/clang/AST/DeclAccessPair.h vendor/clang/dist/include/clang/AST/DeclBase.h vendor/clang/dist/include/clang/AST/DeclCXX.h vendor/clang/dist/include/clang/AST/DeclContextInternals.h vendor/clang/dist/include/clang/AST/DeclFriend.h vendor/clang/dist/include/clang/AST/DeclGroup.h vendor/clang/dist/include/clang/AST/DeclLookups.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/DeclVisitor.h vendor/clang/dist/include/clang/AST/DeclarationName.h vendor/clang/dist/include/clang/AST/DependentDiagnostic.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/ExprOpenMP.h vendor/clang/dist/include/clang/AST/ExternalASTMerger.h vendor/clang/dist/include/clang/AST/ExternalASTSource.h vendor/clang/dist/include/clang/AST/FormatString.h vendor/clang/dist/include/clang/AST/GlobalDecl.h vendor/clang/dist/include/clang/AST/LambdaCapture.h vendor/clang/dist/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h vendor/clang/dist/include/clang/AST/LocInfoType.h vendor/clang/dist/include/clang/AST/Mangle.h vendor/clang/dist/include/clang/AST/MangleNumberingContext.h vendor/clang/dist/include/clang/AST/NSAPI.h vendor/clang/dist/include/clang/AST/NestedNameSpecifier.h vendor/clang/dist/include/clang/AST/NonTrivialTypeVisitor.h vendor/clang/dist/include/clang/AST/ODRHash.h vendor/clang/dist/include/clang/AST/OSLog.h vendor/clang/dist/include/clang/AST/OpenMPClause.h vendor/clang/dist/include/clang/AST/OperationKinds.def vendor/clang/dist/include/clang/AST/OperationKinds.h vendor/clang/dist/include/clang/AST/ParentMap.h vendor/clang/dist/include/clang/AST/PrettyDeclStackTrace.h vendor/clang/dist/include/clang/AST/PrettyPrinter.h vendor/clang/dist/include/clang/AST/QualTypeNames.h vendor/clang/dist/include/clang/AST/RawCommentList.h vendor/clang/dist/include/clang/AST/RecordLayout.h vendor/clang/dist/include/clang/AST/RecursiveASTVisitor.h vendor/clang/dist/include/clang/AST/Redeclarable.h vendor/clang/dist/include/clang/AST/SelectorLocationsKind.h vendor/clang/dist/include/clang/AST/Stmt.h vendor/clang/dist/include/clang/AST/StmtCXX.h vendor/clang/dist/include/clang/AST/StmtDataCollectors.td vendor/clang/dist/include/clang/AST/StmtGraphTraits.h vendor/clang/dist/include/clang/AST/StmtIterator.h vendor/clang/dist/include/clang/AST/StmtObjC.h vendor/clang/dist/include/clang/AST/StmtOpenMP.h vendor/clang/dist/include/clang/AST/StmtVisitor.h vendor/clang/dist/include/clang/AST/TemplateArgumentVisitor.h vendor/clang/dist/include/clang/AST/TemplateBase.h vendor/clang/dist/include/clang/AST/TemplateName.h vendor/clang/dist/include/clang/AST/TextNodeDumper.h vendor/clang/dist/include/clang/AST/Type.h vendor/clang/dist/include/clang/AST/TypeLoc.h vendor/clang/dist/include/clang/AST/TypeLocNodes.def vendor/clang/dist/include/clang/AST/TypeLocVisitor.h vendor/clang/dist/include/clang/AST/TypeNodes.def vendor/clang/dist/include/clang/AST/TypeOrdering.h vendor/clang/dist/include/clang/AST/TypeVisitor.h vendor/clang/dist/include/clang/AST/UnresolvedSet.h vendor/clang/dist/include/clang/AST/VTTBuilder.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/ASTMatchersMacros.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/ASTMatchers/Dynamic/VariantValue.h vendor/clang/dist/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h vendor/clang/dist/include/clang/Analysis/Analyses/Consumed.h vendor/clang/dist/include/clang/Analysis/Analyses/Dominators.h vendor/clang/dist/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h vendor/clang/dist/include/clang/Analysis/Analyses/LiveVariables.h vendor/clang/dist/include/clang/Analysis/Analyses/PostOrderCFGView.h vendor/clang/dist/include/clang/Analysis/Analyses/ReachableCode.h vendor/clang/dist/include/clang/Analysis/Analyses/ThreadSafety.h vendor/clang/dist/include/clang/Analysis/Analyses/ThreadSafetyCommon.h vendor/clang/dist/include/clang/Analysis/Analyses/ThreadSafetyLogical.h vendor/clang/dist/include/clang/Analysis/Analyses/ThreadSafetyOps.def vendor/clang/dist/include/clang/Analysis/Analyses/ThreadSafetyTIL.h vendor/clang/dist/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h vendor/clang/dist/include/clang/Analysis/Analyses/ThreadSafetyUtil.h vendor/clang/dist/include/clang/Analysis/Analyses/UninitializedValues.h vendor/clang/dist/include/clang/Analysis/AnalysisDeclContext.h vendor/clang/dist/include/clang/Analysis/AnalysisDiagnostic.h vendor/clang/dist/include/clang/Analysis/BodyFarm.h vendor/clang/dist/include/clang/Analysis/CFG.h vendor/clang/dist/include/clang/Analysis/CFGStmtMap.h vendor/clang/dist/include/clang/Analysis/CallGraph.h vendor/clang/dist/include/clang/Analysis/CloneDetection.h vendor/clang/dist/include/clang/Analysis/CodeInjector.h vendor/clang/dist/include/clang/Analysis/ConstructionContext.h vendor/clang/dist/include/clang/Analysis/DomainSpecific/CocoaConventions.h vendor/clang/dist/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h vendor/clang/dist/include/clang/Analysis/FlowSensitive/DataflowValues.h vendor/clang/dist/include/clang/Analysis/ProgramPoint.h vendor/clang/dist/include/clang/Analysis/SelectorExtras.h vendor/clang/dist/include/clang/Analysis/Support/BumpVector.h vendor/clang/dist/include/clang/Basic/ABI.h vendor/clang/dist/include/clang/Basic/AddressSpaces.h vendor/clang/dist/include/clang/Basic/AlignedAllocation.h vendor/clang/dist/include/clang/Basic/AllDiagnostics.h vendor/clang/dist/include/clang/Basic/Attr.td vendor/clang/dist/include/clang/Basic/AttrDocs.td vendor/clang/dist/include/clang/Basic/AttrKinds.h vendor/clang/dist/include/clang/Basic/AttrSubjectMatchRules.h vendor/clang/dist/include/clang/Basic/Attributes.h vendor/clang/dist/include/clang/Basic/BitmaskEnum.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/BuiltinsAMDGPU.def vendor/clang/dist/include/clang/Basic/BuiltinsARM.def vendor/clang/dist/include/clang/Basic/BuiltinsHexagon.def vendor/clang/dist/include/clang/Basic/BuiltinsLe64.def vendor/clang/dist/include/clang/Basic/BuiltinsMips.def vendor/clang/dist/include/clang/Basic/BuiltinsNEON.def vendor/clang/dist/include/clang/Basic/BuiltinsNVPTX.def vendor/clang/dist/include/clang/Basic/BuiltinsPPC.def vendor/clang/dist/include/clang/Basic/BuiltinsSystemZ.def vendor/clang/dist/include/clang/Basic/BuiltinsWebAssembly.def vendor/clang/dist/include/clang/Basic/BuiltinsX86.def vendor/clang/dist/include/clang/Basic/BuiltinsX86_64.def vendor/clang/dist/include/clang/Basic/BuiltinsXCore.def vendor/clang/dist/include/clang/Basic/CapturedStmt.h vendor/clang/dist/include/clang/Basic/CharInfo.h vendor/clang/dist/include/clang/Basic/CodeGenOptions.def vendor/clang/dist/include/clang/Basic/CodeGenOptions.h vendor/clang/dist/include/clang/Basic/CommentOptions.h vendor/clang/dist/include/clang/Basic/Cuda.h vendor/clang/dist/include/clang/Basic/DebugInfoOptions.h vendor/clang/dist/include/clang/Basic/DeclNodes.td vendor/clang/dist/include/clang/Basic/Diagnostic.h vendor/clang/dist/include/clang/Basic/Diagnostic.td vendor/clang/dist/include/clang/Basic/DiagnosticAST.h vendor/clang/dist/include/clang/Basic/DiagnosticASTKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticAnalysis.h vendor/clang/dist/include/clang/Basic/DiagnosticAnalysisKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticCategories.h vendor/clang/dist/include/clang/Basic/DiagnosticCategories.td vendor/clang/dist/include/clang/Basic/DiagnosticComment.h vendor/clang/dist/include/clang/Basic/DiagnosticCommentKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticCommonKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticCrossTU.h vendor/clang/dist/include/clang/Basic/DiagnosticCrossTUKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticDocs.td vendor/clang/dist/include/clang/Basic/DiagnosticDriver.h vendor/clang/dist/include/clang/Basic/DiagnosticDriverKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticError.h vendor/clang/dist/include/clang/Basic/DiagnosticFrontend.h vendor/clang/dist/include/clang/Basic/DiagnosticFrontendKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticGroups.td vendor/clang/dist/include/clang/Basic/DiagnosticIDs.h vendor/clang/dist/include/clang/Basic/DiagnosticLex.h vendor/clang/dist/include/clang/Basic/DiagnosticLexKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticOptions.def vendor/clang/dist/include/clang/Basic/DiagnosticOptions.h vendor/clang/dist/include/clang/Basic/DiagnosticParse.h vendor/clang/dist/include/clang/Basic/DiagnosticParseKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticRefactoring.h vendor/clang/dist/include/clang/Basic/DiagnosticRefactoringKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticSema.h vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticSerialization.h vendor/clang/dist/include/clang/Basic/DiagnosticSerializationKinds.td vendor/clang/dist/include/clang/Basic/ExceptionSpecificationType.h vendor/clang/dist/include/clang/Basic/ExpressionTraits.h vendor/clang/dist/include/clang/Basic/Features.def vendor/clang/dist/include/clang/Basic/FileManager.h vendor/clang/dist/include/clang/Basic/FileSystemOptions.h vendor/clang/dist/include/clang/Basic/FileSystemStatCache.h vendor/clang/dist/include/clang/Basic/FixedPoint.h vendor/clang/dist/include/clang/Basic/IdentifierTable.h vendor/clang/dist/include/clang/Basic/LLVM.h vendor/clang/dist/include/clang/Basic/Lambda.h vendor/clang/dist/include/clang/Basic/LangOptions.def vendor/clang/dist/include/clang/Basic/LangOptions.h vendor/clang/dist/include/clang/Basic/Linkage.h vendor/clang/dist/include/clang/Basic/MSP430Target.def vendor/clang/dist/include/clang/Basic/MacroBuilder.h vendor/clang/dist/include/clang/Basic/Module.h vendor/clang/dist/include/clang/Basic/ObjCRuntime.h vendor/clang/dist/include/clang/Basic/OpenCLExtensionTypes.def vendor/clang/dist/include/clang/Basic/OpenCLExtensions.def vendor/clang/dist/include/clang/Basic/OpenCLImageTypes.def vendor/clang/dist/include/clang/Basic/OpenCLOptions.h 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/OperatorKinds.h vendor/clang/dist/include/clang/Basic/OperatorPrecedence.h vendor/clang/dist/include/clang/Basic/PartialDiagnostic.h vendor/clang/dist/include/clang/Basic/PlistSupport.h vendor/clang/dist/include/clang/Basic/PragmaKinds.h vendor/clang/dist/include/clang/Basic/PrettyStackTrace.h vendor/clang/dist/include/clang/Basic/SanitizerBlacklist.h vendor/clang/dist/include/clang/Basic/SanitizerSpecialCaseList.h vendor/clang/dist/include/clang/Basic/Sanitizers.def vendor/clang/dist/include/clang/Basic/Sanitizers.h vendor/clang/dist/include/clang/Basic/SourceLocation.h vendor/clang/dist/include/clang/Basic/SourceManager.h vendor/clang/dist/include/clang/Basic/SourceManagerInternals.h vendor/clang/dist/include/clang/Basic/Specifiers.h vendor/clang/dist/include/clang/Basic/Stack.h vendor/clang/dist/include/clang/Basic/StmtNodes.td vendor/clang/dist/include/clang/Basic/SyncScope.h 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/TargetOptions.h vendor/clang/dist/include/clang/Basic/TemplateKinds.h vendor/clang/dist/include/clang/Basic/TokenKinds.def vendor/clang/dist/include/clang/Basic/TokenKinds.h vendor/clang/dist/include/clang/Basic/TypeTraits.h vendor/clang/dist/include/clang/Basic/Version.h vendor/clang/dist/include/clang/Basic/Visibility.h vendor/clang/dist/include/clang/Basic/X86Target.def vendor/clang/dist/include/clang/Basic/XRayInstr.h vendor/clang/dist/include/clang/Basic/XRayLists.h vendor/clang/dist/include/clang/Basic/arm_fp16.td vendor/clang/dist/include/clang/Basic/arm_neon.td vendor/clang/dist/include/clang/Basic/arm_neon_incl.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/ConstantInitBuilder.h vendor/clang/dist/include/clang/CodeGen/ConstantInitFuture.h vendor/clang/dist/include/clang/CodeGen/ModuleBuilder.h vendor/clang/dist/include/clang/CodeGen/ObjectFilePCHContainerOperations.h vendor/clang/dist/include/clang/CodeGen/SwiftCallingConv.h vendor/clang/dist/include/clang/CrossTU/CrossTUDiagnostic.h vendor/clang/dist/include/clang/CrossTU/CrossTranslationUnit.h 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/ClangOptionDocs.td vendor/clang/dist/include/clang/Driver/Compilation.h vendor/clang/dist/include/clang/Driver/DarwinSDKInfo.h vendor/clang/dist/include/clang/Driver/Distro.h vendor/clang/dist/include/clang/Driver/Driver.h vendor/clang/dist/include/clang/Driver/DriverDiagnostic.h vendor/clang/dist/include/clang/Driver/Job.h vendor/clang/dist/include/clang/Driver/Multilib.h vendor/clang/dist/include/clang/Driver/Options.h vendor/clang/dist/include/clang/Driver/Options.td vendor/clang/dist/include/clang/Driver/Phases.h vendor/clang/dist/include/clang/Driver/SanitizerArgs.h vendor/clang/dist/include/clang/Driver/Tool.h vendor/clang/dist/include/clang/Driver/ToolChain.h vendor/clang/dist/include/clang/Driver/Types.def vendor/clang/dist/include/clang/Driver/Types.h vendor/clang/dist/include/clang/Driver/Util.h vendor/clang/dist/include/clang/Driver/XRayArgs.h vendor/clang/dist/include/clang/Edit/Commit.h vendor/clang/dist/include/clang/Edit/EditedSource.h vendor/clang/dist/include/clang/Edit/EditsReceiver.h vendor/clang/dist/include/clang/Edit/FileOffset.h vendor/clang/dist/include/clang/Edit/Rewriters.h vendor/clang/dist/include/clang/Format/Format.h vendor/clang/dist/include/clang/Frontend/ASTConsumers.h vendor/clang/dist/include/clang/Frontend/ASTUnit.h vendor/clang/dist/include/clang/Frontend/ChainedDiagnosticConsumer.h vendor/clang/dist/include/clang/Frontend/CommandLineSourceLoc.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/FrontendAction.h vendor/clang/dist/include/clang/Frontend/FrontendActions.h vendor/clang/dist/include/clang/Frontend/FrontendDiagnostic.h vendor/clang/dist/include/clang/Frontend/FrontendOptions.h vendor/clang/dist/include/clang/Frontend/FrontendPluginRegistry.h vendor/clang/dist/include/clang/Frontend/LangStandard.h vendor/clang/dist/include/clang/Frontend/LangStandards.def vendor/clang/dist/include/clang/Frontend/LayoutOverrideSource.h vendor/clang/dist/include/clang/Frontend/LogDiagnosticPrinter.h vendor/clang/dist/include/clang/Frontend/MigratorOptions.h vendor/clang/dist/include/clang/Frontend/MultiplexConsumer.h vendor/clang/dist/include/clang/Frontend/PCHContainerOperations.h vendor/clang/dist/include/clang/Frontend/PrecompiledPreamble.h vendor/clang/dist/include/clang/Frontend/PreprocessorOutputOptions.h vendor/clang/dist/include/clang/Frontend/SerializedDiagnosticPrinter.h vendor/clang/dist/include/clang/Frontend/SerializedDiagnosticReader.h vendor/clang/dist/include/clang/Frontend/SerializedDiagnostics.h vendor/clang/dist/include/clang/Frontend/TextDiagnostic.h vendor/clang/dist/include/clang/Frontend/TextDiagnosticBuffer.h vendor/clang/dist/include/clang/Frontend/TextDiagnosticPrinter.h vendor/clang/dist/include/clang/Frontend/Utils.h vendor/clang/dist/include/clang/Frontend/VerifyDiagnosticConsumer.h vendor/clang/dist/include/clang/FrontendTool/Utils.h vendor/clang/dist/include/clang/Index/CodegenNameGenerator.h vendor/clang/dist/include/clang/Index/CommentToXML.h vendor/clang/dist/include/clang/Index/IndexDataConsumer.h vendor/clang/dist/include/clang/Index/IndexSymbol.h vendor/clang/dist/include/clang/Index/IndexingAction.h vendor/clang/dist/include/clang/Index/USRGeneration.h vendor/clang/dist/include/clang/Lex/CodeCompletionHandler.h vendor/clang/dist/include/clang/Lex/DirectoryLookup.h vendor/clang/dist/include/clang/Lex/ExternalPreprocessorSource.h vendor/clang/dist/include/clang/Lex/HeaderMap.h vendor/clang/dist/include/clang/Lex/HeaderMapTypes.h vendor/clang/dist/include/clang/Lex/HeaderSearch.h vendor/clang/dist/include/clang/Lex/HeaderSearchOptions.h vendor/clang/dist/include/clang/Lex/LexDiagnostic.h vendor/clang/dist/include/clang/Lex/Lexer.h vendor/clang/dist/include/clang/Lex/LiteralSupport.h vendor/clang/dist/include/clang/Lex/MacroArgs.h vendor/clang/dist/include/clang/Lex/MacroInfo.h vendor/clang/dist/include/clang/Lex/ModuleLoader.h vendor/clang/dist/include/clang/Lex/ModuleMap.h vendor/clang/dist/include/clang/Lex/MultipleIncludeOpt.h vendor/clang/dist/include/clang/Lex/PPCallbacks.h vendor/clang/dist/include/clang/Lex/PPConditionalDirectiveRecord.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/PreprocessorLexer.h vendor/clang/dist/include/clang/Lex/PreprocessorOptions.h vendor/clang/dist/include/clang/Lex/ScratchBuffer.h vendor/clang/dist/include/clang/Lex/Token.h vendor/clang/dist/include/clang/Lex/TokenConcatenation.h vendor/clang/dist/include/clang/Lex/TokenLexer.h vendor/clang/dist/include/clang/Lex/VariadicMacroSupport.h vendor/clang/dist/include/clang/Parse/LoopHint.h vendor/clang/dist/include/clang/Parse/ParseAST.h vendor/clang/dist/include/clang/Parse/ParseDiagnostic.h vendor/clang/dist/include/clang/Parse/Parser.h vendor/clang/dist/include/clang/Parse/RAIIObjectsForParser.h vendor/clang/dist/include/clang/Rewrite/Core/DeltaTree.h vendor/clang/dist/include/clang/Rewrite/Core/HTMLRewrite.h vendor/clang/dist/include/clang/Rewrite/Core/RewriteBuffer.h vendor/clang/dist/include/clang/Rewrite/Core/RewriteRope.h vendor/clang/dist/include/clang/Rewrite/Core/Rewriter.h vendor/clang/dist/include/clang/Rewrite/Core/TokenRewriter.h vendor/clang/dist/include/clang/Rewrite/Frontend/ASTConsumers.h vendor/clang/dist/include/clang/Rewrite/Frontend/FixItRewriter.h vendor/clang/dist/include/clang/Rewrite/Frontend/FrontendActions.h vendor/clang/dist/include/clang/Rewrite/Frontend/Rewriters.h vendor/clang/dist/include/clang/Sema/AnalysisBasedWarnings.h vendor/clang/dist/include/clang/Sema/CXXFieldCollector.h vendor/clang/dist/include/clang/Sema/CleanupInfo.h vendor/clang/dist/include/clang/Sema/CodeCompleteConsumer.h vendor/clang/dist/include/clang/Sema/CodeCompleteOptions.h vendor/clang/dist/include/clang/Sema/DeclSpec.h vendor/clang/dist/include/clang/Sema/DelayedDiagnostic.h vendor/clang/dist/include/clang/Sema/Designator.h vendor/clang/dist/include/clang/Sema/ExternalSemaSource.h vendor/clang/dist/include/clang/Sema/IdentifierResolver.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/ObjCMethodList.h vendor/clang/dist/include/clang/Sema/Overload.h vendor/clang/dist/include/clang/Sema/Ownership.h vendor/clang/dist/include/clang/Sema/ParsedAttr.h vendor/clang/dist/include/clang/Sema/ParsedTemplate.h vendor/clang/dist/include/clang/Sema/Scope.h vendor/clang/dist/include/clang/Sema/ScopeInfo.h vendor/clang/dist/include/clang/Sema/Sema.h vendor/clang/dist/include/clang/Sema/SemaConsumer.h vendor/clang/dist/include/clang/Sema/SemaDiagnostic.h vendor/clang/dist/include/clang/Sema/SemaFixItUtils.h vendor/clang/dist/include/clang/Sema/SemaInternal.h vendor/clang/dist/include/clang/Sema/SemaLambda.h vendor/clang/dist/include/clang/Sema/Template.h vendor/clang/dist/include/clang/Sema/TemplateDeduction.h vendor/clang/dist/include/clang/Sema/TemplateInstCallback.h vendor/clang/dist/include/clang/Sema/TypoCorrection.h vendor/clang/dist/include/clang/Sema/Weak.h vendor/clang/dist/include/clang/Serialization/ASTBitCodes.h vendor/clang/dist/include/clang/Serialization/ASTDeserializationListener.h vendor/clang/dist/include/clang/Serialization/ASTReader.h vendor/clang/dist/include/clang/Serialization/ASTWriter.h vendor/clang/dist/include/clang/Serialization/ContinuousRangeMap.h vendor/clang/dist/include/clang/Serialization/GlobalModuleIndex.h vendor/clang/dist/include/clang/Serialization/Module.h vendor/clang/dist/include/clang/Serialization/ModuleFileExtension.h vendor/clang/dist/include/clang/Serialization/ModuleManager.h vendor/clang/dist/include/clang/Serialization/PCHContainerOperations.h vendor/clang/dist/include/clang/Serialization/SerializationDiagnostic.h vendor/clang/dist/include/clang/StaticAnalyzer/Checkers/BuiltinCheckerRegistration.h vendor/clang/dist/include/clang/StaticAnalyzer/Checkers/CheckerBase.td vendor/clang/dist/include/clang/StaticAnalyzer/Checkers/Checkers.td vendor/clang/dist/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h vendor/clang/dist/include/clang/StaticAnalyzer/Checkers/MPIFunctionClassifier.h vendor/clang/dist/include/clang/StaticAnalyzer/Checkers/SValExplainer.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/Analyses.def vendor/clang/dist/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def vendor/clang/dist/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.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/IssueHash.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.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/CoreEngine.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.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/LoopUnrolling.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.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/ProgramStateTrait.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/Regions.def vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.def vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SummaryManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/Symbols.def vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h vendor/clang/dist/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h vendor/clang/dist/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h vendor/clang/dist/include/clang/StaticAnalyzer/Frontend/CheckerRegistry.h vendor/clang/dist/include/clang/StaticAnalyzer/Frontend/FrontendActions.h vendor/clang/dist/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h vendor/clang/dist/include/clang/Tooling/ASTDiff/ASTDiff.h vendor/clang/dist/include/clang/Tooling/ASTDiff/ASTDiffInternal.h vendor/clang/dist/include/clang/Tooling/AllTUsExecution.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/CompilationDatabasePluginRegistry.h vendor/clang/dist/include/clang/Tooling/Core/Diagnostic.h vendor/clang/dist/include/clang/Tooling/Core/Lookup.h vendor/clang/dist/include/clang/Tooling/Core/Replacement.h vendor/clang/dist/include/clang/Tooling/DiagnosticsYaml.h vendor/clang/dist/include/clang/Tooling/Execution.h vendor/clang/dist/include/clang/Tooling/FileMatchTrie.h vendor/clang/dist/include/clang/Tooling/FixIt.h vendor/clang/dist/include/clang/Tooling/Inclusions/HeaderIncludes.h vendor/clang/dist/include/clang/Tooling/Inclusions/IncludeStyle.h vendor/clang/dist/include/clang/Tooling/JSONCompilationDatabase.h vendor/clang/dist/include/clang/Tooling/Refactoring.h vendor/clang/dist/include/clang/Tooling/Refactoring/ASTSelection.h vendor/clang/dist/include/clang/Tooling/Refactoring/AtomicChange.h vendor/clang/dist/include/clang/Tooling/Refactoring/Extract/Extract.h vendor/clang/dist/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h vendor/clang/dist/include/clang/Tooling/Refactoring/RefactoringAction.h vendor/clang/dist/include/clang/Tooling/Refactoring/RefactoringActionRule.h vendor/clang/dist/include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h vendor/clang/dist/include/clang/Tooling/Refactoring/RefactoringActionRules.h vendor/clang/dist/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h vendor/clang/dist/include/clang/Tooling/Refactoring/RefactoringDiagnostic.h vendor/clang/dist/include/clang/Tooling/Refactoring/RefactoringOption.h vendor/clang/dist/include/clang/Tooling/Refactoring/RefactoringOptionVisitor.h vendor/clang/dist/include/clang/Tooling/Refactoring/RefactoringOptions.h vendor/clang/dist/include/clang/Tooling/Refactoring/RefactoringResultConsumer.h vendor/clang/dist/include/clang/Tooling/Refactoring/RefactoringRuleContext.h vendor/clang/dist/include/clang/Tooling/Refactoring/Rename/RenamingAction.h vendor/clang/dist/include/clang/Tooling/Refactoring/Rename/SymbolName.h vendor/clang/dist/include/clang/Tooling/Refactoring/Rename/SymbolOccurrences.h vendor/clang/dist/include/clang/Tooling/Refactoring/Rename/USRFinder.h vendor/clang/dist/include/clang/Tooling/Refactoring/Rename/USRFindingAction.h vendor/clang/dist/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h vendor/clang/dist/include/clang/Tooling/RefactoringCallbacks.h vendor/clang/dist/include/clang/Tooling/ReplacementsYaml.h vendor/clang/dist/include/clang/Tooling/StandaloneExecution.h vendor/clang/dist/include/clang/Tooling/ToolExecutorPluginRegistry.h vendor/clang/dist/include/clang/Tooling/Tooling.h vendor/clang/dist/lib/ARCMigrate/ARCMT.cpp vendor/clang/dist/lib/ARCMigrate/ARCMTActions.cpp vendor/clang/dist/lib/ARCMigrate/FileRemapper.cpp vendor/clang/dist/lib/ARCMigrate/Internals.h vendor/clang/dist/lib/ARCMigrate/ObjCMT.cpp vendor/clang/dist/lib/ARCMigrate/PlistReporter.cpp vendor/clang/dist/lib/ARCMigrate/TransAPIUses.cpp vendor/clang/dist/lib/ARCMigrate/TransARCAssign.cpp vendor/clang/dist/lib/ARCMigrate/TransAutoreleasePool.cpp vendor/clang/dist/lib/ARCMigrate/TransBlockObjCVariable.cpp vendor/clang/dist/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp vendor/clang/dist/lib/ARCMigrate/TransGCAttrs.cpp vendor/clang/dist/lib/ARCMigrate/TransGCCalls.cpp vendor/clang/dist/lib/ARCMigrate/TransProperties.cpp vendor/clang/dist/lib/ARCMigrate/TransProtectedScope.cpp vendor/clang/dist/lib/ARCMigrate/TransRetainReleaseDealloc.cpp vendor/clang/dist/lib/ARCMigrate/TransUnbridgedCasts.cpp vendor/clang/dist/lib/ARCMigrate/TransUnusedInitDelegate.cpp vendor/clang/dist/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp vendor/clang/dist/lib/ARCMigrate/TransformActions.cpp vendor/clang/dist/lib/ARCMigrate/Transforms.cpp vendor/clang/dist/lib/ARCMigrate/Transforms.h vendor/clang/dist/lib/AST/APValue.cpp vendor/clang/dist/lib/AST/ASTConsumer.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/ASTImporterLookupTable.cpp vendor/clang/dist/lib/AST/ASTStructuralEquivalence.cpp vendor/clang/dist/lib/AST/ASTTypeTraits.cpp vendor/clang/dist/lib/AST/AttrImpl.cpp vendor/clang/dist/lib/AST/CXXABI.h vendor/clang/dist/lib/AST/CXXInheritance.cpp vendor/clang/dist/lib/AST/Comment.cpp vendor/clang/dist/lib/AST/CommentBriefParser.cpp vendor/clang/dist/lib/AST/CommentCommandTraits.cpp vendor/clang/dist/lib/AST/CommentLexer.cpp vendor/clang/dist/lib/AST/CommentParser.cpp vendor/clang/dist/lib/AST/CommentSema.cpp vendor/clang/dist/lib/AST/ComparisonCategories.cpp vendor/clang/dist/lib/AST/DataCollection.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/ExprObjC.cpp vendor/clang/dist/lib/AST/ExternalASTMerger.cpp vendor/clang/dist/lib/AST/ExternalASTSource.cpp vendor/clang/dist/lib/AST/FormatString.cpp vendor/clang/dist/lib/AST/InheritViz.cpp vendor/clang/dist/lib/AST/ItaniumCXXABI.cpp vendor/clang/dist/lib/AST/ItaniumMangle.cpp vendor/clang/dist/lib/AST/Linkage.h 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/ODRHash.cpp vendor/clang/dist/lib/AST/OpenMPClause.cpp vendor/clang/dist/lib/AST/ParentMap.cpp vendor/clang/dist/lib/AST/PrintfFormatString.cpp vendor/clang/dist/lib/AST/QualTypeNames.cpp vendor/clang/dist/lib/AST/RawCommentList.cpp vendor/clang/dist/lib/AST/RecordLayout.cpp vendor/clang/dist/lib/AST/RecordLayoutBuilder.cpp vendor/clang/dist/lib/AST/ScanfFormatString.cpp vendor/clang/dist/lib/AST/SelectorLocationsKind.cpp vendor/clang/dist/lib/AST/Stmt.cpp vendor/clang/dist/lib/AST/StmtCXX.cpp vendor/clang/dist/lib/AST/StmtIterator.cpp vendor/clang/dist/lib/AST/StmtObjC.cpp vendor/clang/dist/lib/AST/StmtOpenMP.cpp vendor/clang/dist/lib/AST/StmtPrinter.cpp vendor/clang/dist/lib/AST/StmtProfile.cpp vendor/clang/dist/lib/AST/StmtViz.cpp vendor/clang/dist/lib/AST/TemplateBase.cpp vendor/clang/dist/lib/AST/TemplateName.cpp vendor/clang/dist/lib/AST/TextNodeDumper.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/VTTBuilder.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/CFGReachabilityAnalysis.cpp vendor/clang/dist/lib/Analysis/CFGStmtMap.cpp vendor/clang/dist/lib/Analysis/CallGraph.cpp vendor/clang/dist/lib/Analysis/CloneDetection.cpp vendor/clang/dist/lib/Analysis/CocoaConventions.cpp vendor/clang/dist/lib/Analysis/CodeInjector.cpp vendor/clang/dist/lib/Analysis/ConstructionContext.cpp vendor/clang/dist/lib/Analysis/Consumed.cpp vendor/clang/dist/lib/Analysis/Dominators.cpp vendor/clang/dist/lib/Analysis/ExprMutationAnalyzer.cpp vendor/clang/dist/lib/Analysis/LiveVariables.cpp vendor/clang/dist/lib/Analysis/ObjCNoReturn.cpp vendor/clang/dist/lib/Analysis/PostOrderCFGView.cpp vendor/clang/dist/lib/Analysis/ProgramPoint.cpp vendor/clang/dist/lib/Analysis/ReachableCode.cpp vendor/clang/dist/lib/Analysis/ThreadSafety.cpp vendor/clang/dist/lib/Analysis/ThreadSafetyCommon.cpp vendor/clang/dist/lib/Analysis/ThreadSafetyLogical.cpp vendor/clang/dist/lib/Analysis/ThreadSafetyTIL.cpp vendor/clang/dist/lib/Analysis/UninitializedValues.cpp vendor/clang/dist/lib/Basic/Builtins.cpp vendor/clang/dist/lib/Basic/CharInfo.cpp vendor/clang/dist/lib/Basic/CodeGenOptions.cpp vendor/clang/dist/lib/Basic/Cuda.cpp vendor/clang/dist/lib/Basic/Diagnostic.cpp vendor/clang/dist/lib/Basic/DiagnosticIDs.cpp vendor/clang/dist/lib/Basic/DiagnosticOptions.cpp vendor/clang/dist/lib/Basic/FileManager.cpp vendor/clang/dist/lib/Basic/FileSystemStatCache.cpp vendor/clang/dist/lib/Basic/FixedPoint.cpp vendor/clang/dist/lib/Basic/IdentifierTable.cpp vendor/clang/dist/lib/Basic/LangOptions.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/OperatorPrecedence.cpp vendor/clang/dist/lib/Basic/SanitizerBlacklist.cpp vendor/clang/dist/lib/Basic/SanitizerSpecialCaseList.cpp vendor/clang/dist/lib/Basic/Sanitizers.cpp vendor/clang/dist/lib/Basic/SourceLocation.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/Targets.h vendor/clang/dist/lib/Basic/Targets/AArch64.cpp vendor/clang/dist/lib/Basic/Targets/AArch64.h vendor/clang/dist/lib/Basic/Targets/AMDGPU.cpp vendor/clang/dist/lib/Basic/Targets/AMDGPU.h vendor/clang/dist/lib/Basic/Targets/ARC.cpp vendor/clang/dist/lib/Basic/Targets/ARC.h vendor/clang/dist/lib/Basic/Targets/ARM.cpp vendor/clang/dist/lib/Basic/Targets/ARM.h vendor/clang/dist/lib/Basic/Targets/AVR.cpp vendor/clang/dist/lib/Basic/Targets/AVR.h vendor/clang/dist/lib/Basic/Targets/BPF.cpp vendor/clang/dist/lib/Basic/Targets/BPF.h vendor/clang/dist/lib/Basic/Targets/Hexagon.cpp vendor/clang/dist/lib/Basic/Targets/Hexagon.h vendor/clang/dist/lib/Basic/Targets/Lanai.cpp vendor/clang/dist/lib/Basic/Targets/Lanai.h vendor/clang/dist/lib/Basic/Targets/Le64.cpp vendor/clang/dist/lib/Basic/Targets/Le64.h vendor/clang/dist/lib/Basic/Targets/MSP430.cpp vendor/clang/dist/lib/Basic/Targets/MSP430.h vendor/clang/dist/lib/Basic/Targets/Mips.cpp vendor/clang/dist/lib/Basic/Targets/Mips.h vendor/clang/dist/lib/Basic/Targets/NVPTX.cpp vendor/clang/dist/lib/Basic/Targets/NVPTX.h vendor/clang/dist/lib/Basic/Targets/OSTargets.cpp vendor/clang/dist/lib/Basic/Targets/OSTargets.h vendor/clang/dist/lib/Basic/Targets/PNaCl.cpp vendor/clang/dist/lib/Basic/Targets/PNaCl.h vendor/clang/dist/lib/Basic/Targets/PPC.cpp vendor/clang/dist/lib/Basic/Targets/PPC.h vendor/clang/dist/lib/Basic/Targets/RISCV.cpp vendor/clang/dist/lib/Basic/Targets/RISCV.h vendor/clang/dist/lib/Basic/Targets/SPIR.cpp vendor/clang/dist/lib/Basic/Targets/SPIR.h vendor/clang/dist/lib/Basic/Targets/Sparc.cpp vendor/clang/dist/lib/Basic/Targets/Sparc.h vendor/clang/dist/lib/Basic/Targets/SystemZ.cpp vendor/clang/dist/lib/Basic/Targets/SystemZ.h vendor/clang/dist/lib/Basic/Targets/TCE.cpp vendor/clang/dist/lib/Basic/Targets/TCE.h vendor/clang/dist/lib/Basic/Targets/WebAssembly.cpp vendor/clang/dist/lib/Basic/Targets/WebAssembly.h vendor/clang/dist/lib/Basic/Targets/X86.cpp vendor/clang/dist/lib/Basic/Targets/X86.h vendor/clang/dist/lib/Basic/Targets/XCore.cpp vendor/clang/dist/lib/Basic/Targets/XCore.h vendor/clang/dist/lib/Basic/TokenKinds.cpp vendor/clang/dist/lib/Basic/Version.cpp vendor/clang/dist/lib/Basic/Warnings.cpp vendor/clang/dist/lib/Basic/XRayInstr.cpp vendor/clang/dist/lib/Basic/XRayLists.cpp vendor/clang/dist/lib/CodeGen/ABIInfo.h vendor/clang/dist/lib/CodeGen/Address.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/CGCUDARuntime.cpp vendor/clang/dist/lib/CodeGen/CGCUDARuntime.h 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/CGCoroutine.cpp 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/CGGPUBuiltin.cpp vendor/clang/dist/lib/CodeGen/CGLoopInfo.cpp vendor/clang/dist/lib/CodeGen/CGLoopInfo.h vendor/clang/dist/lib/CodeGen/CGNonTrivialStruct.cpp 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/CGOpenCLRuntime.h vendor/clang/dist/lib/CodeGen/CGOpenMPRuntime.cpp vendor/clang/dist/lib/CodeGen/CGOpenMPRuntime.h vendor/clang/dist/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp vendor/clang/dist/lib/CodeGen/CGOpenMPRuntimeNVPTX.h vendor/clang/dist/lib/CodeGen/CGRecordLayout.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/CodeGenTBAA.h vendor/clang/dist/lib/CodeGen/CodeGenTypeCache.h vendor/clang/dist/lib/CodeGen/CodeGenTypes.cpp vendor/clang/dist/lib/CodeGen/CodeGenTypes.h vendor/clang/dist/lib/CodeGen/ConstantEmitter.h vendor/clang/dist/lib/CodeGen/ConstantInitBuilder.cpp vendor/clang/dist/lib/CodeGen/CoverageMappingGen.cpp vendor/clang/dist/lib/CodeGen/CoverageMappingGen.h vendor/clang/dist/lib/CodeGen/EHScopeStack.h vendor/clang/dist/lib/CodeGen/ItaniumCXXABI.cpp vendor/clang/dist/lib/CodeGen/MacroPPCallbacks.cpp vendor/clang/dist/lib/CodeGen/MacroPPCallbacks.h 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/SanitizerMetadata.cpp vendor/clang/dist/lib/CodeGen/SanitizerMetadata.h vendor/clang/dist/lib/CodeGen/SwiftCallingConv.cpp vendor/clang/dist/lib/CodeGen/TargetInfo.cpp vendor/clang/dist/lib/CodeGen/TargetInfo.h vendor/clang/dist/lib/CodeGen/VarBypassDetector.cpp vendor/clang/dist/lib/CodeGen/VarBypassDetector.h vendor/clang/dist/lib/CrossTU/CrossTranslationUnit.cpp vendor/clang/dist/lib/Driver/Action.cpp vendor/clang/dist/lib/Driver/Compilation.cpp vendor/clang/dist/lib/Driver/DarwinSDKInfo.cpp vendor/clang/dist/lib/Driver/Distro.cpp vendor/clang/dist/lib/Driver/Driver.cpp vendor/clang/dist/lib/Driver/DriverOptions.cpp vendor/clang/dist/lib/Driver/InputInfo.h vendor/clang/dist/lib/Driver/Job.cpp vendor/clang/dist/lib/Driver/Multilib.cpp vendor/clang/dist/lib/Driver/Phases.cpp vendor/clang/dist/lib/Driver/SanitizerArgs.cpp vendor/clang/dist/lib/Driver/Tool.cpp vendor/clang/dist/lib/Driver/ToolChain.cpp vendor/clang/dist/lib/Driver/ToolChains/AMDGPU.cpp vendor/clang/dist/lib/Driver/ToolChains/AMDGPU.h vendor/clang/dist/lib/Driver/ToolChains/AVR.cpp vendor/clang/dist/lib/Driver/ToolChains/AVR.h vendor/clang/dist/lib/Driver/ToolChains/Ananas.cpp vendor/clang/dist/lib/Driver/ToolChains/Ananas.h vendor/clang/dist/lib/Driver/ToolChains/Arch/AArch64.cpp vendor/clang/dist/lib/Driver/ToolChains/Arch/AArch64.h vendor/clang/dist/lib/Driver/ToolChains/Arch/ARM.cpp vendor/clang/dist/lib/Driver/ToolChains/Arch/ARM.h vendor/clang/dist/lib/Driver/ToolChains/Arch/Mips.cpp vendor/clang/dist/lib/Driver/ToolChains/Arch/Mips.h vendor/clang/dist/lib/Driver/ToolChains/Arch/PPC.cpp vendor/clang/dist/lib/Driver/ToolChains/Arch/PPC.h vendor/clang/dist/lib/Driver/ToolChains/Arch/RISCV.cpp vendor/clang/dist/lib/Driver/ToolChains/Arch/RISCV.h vendor/clang/dist/lib/Driver/ToolChains/Arch/Sparc.cpp vendor/clang/dist/lib/Driver/ToolChains/Arch/Sparc.h vendor/clang/dist/lib/Driver/ToolChains/Arch/SystemZ.cpp vendor/clang/dist/lib/Driver/ToolChains/Arch/SystemZ.h vendor/clang/dist/lib/Driver/ToolChains/Arch/X86.cpp vendor/clang/dist/lib/Driver/ToolChains/Arch/X86.h vendor/clang/dist/lib/Driver/ToolChains/BareMetal.cpp vendor/clang/dist/lib/Driver/ToolChains/BareMetal.h vendor/clang/dist/lib/Driver/ToolChains/Clang.cpp vendor/clang/dist/lib/Driver/ToolChains/Clang.h vendor/clang/dist/lib/Driver/ToolChains/CloudABI.cpp vendor/clang/dist/lib/Driver/ToolChains/CloudABI.h vendor/clang/dist/lib/Driver/ToolChains/CommonArgs.cpp vendor/clang/dist/lib/Driver/ToolChains/CommonArgs.h vendor/clang/dist/lib/Driver/ToolChains/Contiki.cpp vendor/clang/dist/lib/Driver/ToolChains/Contiki.h vendor/clang/dist/lib/Driver/ToolChains/CrossWindows.cpp vendor/clang/dist/lib/Driver/ToolChains/CrossWindows.h vendor/clang/dist/lib/Driver/ToolChains/Cuda.cpp vendor/clang/dist/lib/Driver/ToolChains/Cuda.h vendor/clang/dist/lib/Driver/ToolChains/Darwin.cpp vendor/clang/dist/lib/Driver/ToolChains/Darwin.h vendor/clang/dist/lib/Driver/ToolChains/DragonFly.cpp vendor/clang/dist/lib/Driver/ToolChains/DragonFly.h vendor/clang/dist/lib/Driver/ToolChains/FreeBSD.cpp vendor/clang/dist/lib/Driver/ToolChains/FreeBSD.h vendor/clang/dist/lib/Driver/ToolChains/Fuchsia.cpp vendor/clang/dist/lib/Driver/ToolChains/Fuchsia.h vendor/clang/dist/lib/Driver/ToolChains/Gnu.cpp vendor/clang/dist/lib/Driver/ToolChains/Gnu.h vendor/clang/dist/lib/Driver/ToolChains/HIP.cpp vendor/clang/dist/lib/Driver/ToolChains/HIP.h vendor/clang/dist/lib/Driver/ToolChains/Haiku.cpp vendor/clang/dist/lib/Driver/ToolChains/Haiku.h vendor/clang/dist/lib/Driver/ToolChains/Hexagon.cpp vendor/clang/dist/lib/Driver/ToolChains/Hexagon.h vendor/clang/dist/lib/Driver/ToolChains/Hurd.cpp vendor/clang/dist/lib/Driver/ToolChains/Hurd.h vendor/clang/dist/lib/Driver/ToolChains/Lanai.h vendor/clang/dist/lib/Driver/ToolChains/Linux.cpp vendor/clang/dist/lib/Driver/ToolChains/Linux.h vendor/clang/dist/lib/Driver/ToolChains/MSP430.cpp vendor/clang/dist/lib/Driver/ToolChains/MSP430.h vendor/clang/dist/lib/Driver/ToolChains/MSVC.cpp vendor/clang/dist/lib/Driver/ToolChains/MSVC.h vendor/clang/dist/lib/Driver/ToolChains/MinGW.cpp vendor/clang/dist/lib/Driver/ToolChains/MinGW.h vendor/clang/dist/lib/Driver/ToolChains/Minix.cpp vendor/clang/dist/lib/Driver/ToolChains/Minix.h vendor/clang/dist/lib/Driver/ToolChains/MipsLinux.cpp vendor/clang/dist/lib/Driver/ToolChains/MipsLinux.h vendor/clang/dist/lib/Driver/ToolChains/Myriad.cpp vendor/clang/dist/lib/Driver/ToolChains/Myriad.h vendor/clang/dist/lib/Driver/ToolChains/NaCl.cpp vendor/clang/dist/lib/Driver/ToolChains/NaCl.h vendor/clang/dist/lib/Driver/ToolChains/NetBSD.cpp vendor/clang/dist/lib/Driver/ToolChains/NetBSD.h vendor/clang/dist/lib/Driver/ToolChains/OpenBSD.cpp vendor/clang/dist/lib/Driver/ToolChains/OpenBSD.h vendor/clang/dist/lib/Driver/ToolChains/PS4CPU.cpp vendor/clang/dist/lib/Driver/ToolChains/PS4CPU.h vendor/clang/dist/lib/Driver/ToolChains/RISCVToolchain.cpp vendor/clang/dist/lib/Driver/ToolChains/RISCVToolchain.h vendor/clang/dist/lib/Driver/ToolChains/Solaris.cpp vendor/clang/dist/lib/Driver/ToolChains/Solaris.h vendor/clang/dist/lib/Driver/ToolChains/TCE.cpp vendor/clang/dist/lib/Driver/ToolChains/TCE.h vendor/clang/dist/lib/Driver/ToolChains/WebAssembly.cpp vendor/clang/dist/lib/Driver/ToolChains/WebAssembly.h vendor/clang/dist/lib/Driver/ToolChains/XCore.cpp vendor/clang/dist/lib/Driver/ToolChains/XCore.h vendor/clang/dist/lib/Driver/Types.cpp vendor/clang/dist/lib/Driver/XRayArgs.cpp vendor/clang/dist/lib/Edit/Commit.cpp vendor/clang/dist/lib/Edit/EditedSource.cpp vendor/clang/dist/lib/Edit/RewriteObjCFoundationAPI.cpp vendor/clang/dist/lib/Format/AffectedRangeManager.cpp vendor/clang/dist/lib/Format/AffectedRangeManager.h vendor/clang/dist/lib/Format/BreakableToken.cpp vendor/clang/dist/lib/Format/BreakableToken.h vendor/clang/dist/lib/Format/ContinuationIndenter.cpp vendor/clang/dist/lib/Format/ContinuationIndenter.h vendor/clang/dist/lib/Format/Encoding.h vendor/clang/dist/lib/Format/Format.cpp vendor/clang/dist/lib/Format/FormatInternal.h vendor/clang/dist/lib/Format/FormatToken.cpp vendor/clang/dist/lib/Format/FormatToken.h vendor/clang/dist/lib/Format/FormatTokenLexer.cpp vendor/clang/dist/lib/Format/FormatTokenLexer.h vendor/clang/dist/lib/Format/NamespaceEndCommentsFixer.cpp vendor/clang/dist/lib/Format/NamespaceEndCommentsFixer.h vendor/clang/dist/lib/Format/SortJavaScriptImports.cpp vendor/clang/dist/lib/Format/SortJavaScriptImports.h vendor/clang/dist/lib/Format/TokenAnalyzer.cpp vendor/clang/dist/lib/Format/TokenAnalyzer.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/UnwrappedLineFormatter.h vendor/clang/dist/lib/Format/UnwrappedLineParser.cpp vendor/clang/dist/lib/Format/UnwrappedLineParser.h vendor/clang/dist/lib/Format/UsingDeclarationsSorter.cpp vendor/clang/dist/lib/Format/UsingDeclarationsSorter.h vendor/clang/dist/lib/Format/WhitespaceManager.cpp vendor/clang/dist/lib/Format/WhitespaceManager.h vendor/clang/dist/lib/Frontend/ASTConsumers.cpp vendor/clang/dist/lib/Frontend/ASTMerge.cpp vendor/clang/dist/lib/Frontend/ASTUnit.cpp vendor/clang/dist/lib/Frontend/ChainedDiagnosticConsumer.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/DependencyGraph.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/FrontendOptions.cpp vendor/clang/dist/lib/Frontend/FrontendTiming.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/LangStandards.cpp vendor/clang/dist/lib/Frontend/LayoutOverrideSource.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/PrecompiledPreamble.cpp vendor/clang/dist/lib/Frontend/PrintPreprocessedOutput.cpp vendor/clang/dist/lib/Frontend/Rewrite/FixItRewriter.cpp vendor/clang/dist/lib/Frontend/Rewrite/FrontendActions.cpp vendor/clang/dist/lib/Frontend/Rewrite/HTMLPrint.cpp vendor/clang/dist/lib/Frontend/Rewrite/InclusionRewriter.cpp vendor/clang/dist/lib/Frontend/Rewrite/RewriteMacros.cpp vendor/clang/dist/lib/Frontend/Rewrite/RewriteModernObjC.cpp vendor/clang/dist/lib/Frontend/Rewrite/RewriteObjC.cpp vendor/clang/dist/lib/Frontend/Rewrite/RewriteTest.cpp vendor/clang/dist/lib/Frontend/SerializedDiagnosticPrinter.cpp vendor/clang/dist/lib/Frontend/SerializedDiagnosticReader.cpp vendor/clang/dist/lib/Frontend/TestModuleFileExtension.cpp vendor/clang/dist/lib/Frontend/TestModuleFileExtension.h vendor/clang/dist/lib/Frontend/TextDiagnostic.cpp vendor/clang/dist/lib/Frontend/TextDiagnosticBuffer.cpp vendor/clang/dist/lib/Frontend/TextDiagnosticPrinter.cpp vendor/clang/dist/lib/Frontend/VerifyDiagnosticConsumer.cpp vendor/clang/dist/lib/FrontendTool/ExecuteCompilerInvocation.cpp vendor/clang/dist/lib/Headers/__clang_cuda_builtin_vars.h vendor/clang/dist/lib/Headers/__clang_cuda_cmath.h vendor/clang/dist/lib/Headers/__clang_cuda_complex_builtins.h vendor/clang/dist/lib/Headers/__clang_cuda_device_functions.h vendor/clang/dist/lib/Headers/__clang_cuda_intrinsics.h vendor/clang/dist/lib/Headers/__clang_cuda_libdevice_declares.h vendor/clang/dist/lib/Headers/__clang_cuda_math_forward_declares.h vendor/clang/dist/lib/Headers/__clang_cuda_runtime_wrapper.h vendor/clang/dist/lib/Headers/__stddef_max_align_t.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/arm64intr.h vendor/clang/dist/lib/Headers/arm_acle.h vendor/clang/dist/lib/Headers/armintr.h vendor/clang/dist/lib/Headers/avx2intrin.h vendor/clang/dist/lib/Headers/avx512bitalgintrin.h vendor/clang/dist/lib/Headers/avx512bwintrin.h vendor/clang/dist/lib/Headers/avx512cdintrin.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/avx512ifmaintrin.h vendor/clang/dist/lib/Headers/avx512ifmavlintrin.h vendor/clang/dist/lib/Headers/avx512pfintrin.h vendor/clang/dist/lib/Headers/avx512vbmi2intrin.h vendor/clang/dist/lib/Headers/avx512vbmiintrin.h vendor/clang/dist/lib/Headers/avx512vbmivlintrin.h vendor/clang/dist/lib/Headers/avx512vlbitalgintrin.h vendor/clang/dist/lib/Headers/avx512vlbwintrin.h vendor/clang/dist/lib/Headers/avx512vlcdintrin.h vendor/clang/dist/lib/Headers/avx512vldqintrin.h vendor/clang/dist/lib/Headers/avx512vlintrin.h vendor/clang/dist/lib/Headers/avx512vlvbmi2intrin.h vendor/clang/dist/lib/Headers/avx512vlvnniintrin.h vendor/clang/dist/lib/Headers/avx512vnniintrin.h vendor/clang/dist/lib/Headers/avx512vpopcntdqintrin.h vendor/clang/dist/lib/Headers/avx512vpopcntdqvlintrin.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/cetintrin.h vendor/clang/dist/lib/Headers/cldemoteintrin.h vendor/clang/dist/lib/Headers/clflushoptintrin.h vendor/clang/dist/lib/Headers/clwbintrin.h vendor/clang/dist/lib/Headers/clzerointrin.h vendor/clang/dist/lib/Headers/cpuid.h vendor/clang/dist/lib/Headers/emmintrin.h vendor/clang/dist/lib/Headers/f16cintrin.h vendor/clang/dist/lib/Headers/float.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/gfniintrin.h vendor/clang/dist/lib/Headers/htmintrin.h vendor/clang/dist/lib/Headers/htmxlintrin.h vendor/clang/dist/lib/Headers/ia32intrin.h vendor/clang/dist/lib/Headers/immintrin.h vendor/clang/dist/lib/Headers/intrin.h vendor/clang/dist/lib/Headers/inttypes.h vendor/clang/dist/lib/Headers/invpcidintrin.h vendor/clang/dist/lib/Headers/iso646.h vendor/clang/dist/lib/Headers/limits.h vendor/clang/dist/lib/Headers/lwpintrin.h vendor/clang/dist/lib/Headers/lzcntintrin.h vendor/clang/dist/lib/Headers/mm3dnow.h vendor/clang/dist/lib/Headers/mm_malloc.h vendor/clang/dist/lib/Headers/mmintrin.h vendor/clang/dist/lib/Headers/module.modulemap vendor/clang/dist/lib/Headers/movdirintrin.h vendor/clang/dist/lib/Headers/msa.h vendor/clang/dist/lib/Headers/mwaitxintrin.h vendor/clang/dist/lib/Headers/nmmintrin.h vendor/clang/dist/lib/Headers/opencl-c.h vendor/clang/dist/lib/Headers/pconfigintrin.h vendor/clang/dist/lib/Headers/pkuintrin.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/ptwriteintrin.h vendor/clang/dist/lib/Headers/rdseedintrin.h vendor/clang/dist/lib/Headers/rtmintrin.h vendor/clang/dist/lib/Headers/s390intrin.h vendor/clang/dist/lib/Headers/sgxintrin.h vendor/clang/dist/lib/Headers/shaintrin.h vendor/clang/dist/lib/Headers/smmintrin.h vendor/clang/dist/lib/Headers/stdalign.h vendor/clang/dist/lib/Headers/stdarg.h vendor/clang/dist/lib/Headers/stdatomic.h vendor/clang/dist/lib/Headers/stdbool.h vendor/clang/dist/lib/Headers/stddef.h vendor/clang/dist/lib/Headers/stdint.h vendor/clang/dist/lib/Headers/stdnoreturn.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/unwind.h vendor/clang/dist/lib/Headers/vadefs.h vendor/clang/dist/lib/Headers/vaesintrin.h vendor/clang/dist/lib/Headers/varargs.h vendor/clang/dist/lib/Headers/vecintrin.h vendor/clang/dist/lib/Headers/vpclmulqdqintrin.h vendor/clang/dist/lib/Headers/waitpkgintrin.h vendor/clang/dist/lib/Headers/wbnoinvdintrin.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/Headers/xsavecintrin.h vendor/clang/dist/lib/Headers/xsaveintrin.h vendor/clang/dist/lib/Headers/xsaveoptintrin.h vendor/clang/dist/lib/Headers/xsavesintrin.h vendor/clang/dist/lib/Headers/xtestintrin.h vendor/clang/dist/lib/Index/CodegenNameGenerator.cpp vendor/clang/dist/lib/Index/CommentToXML.cpp vendor/clang/dist/lib/Index/IndexBody.cpp vendor/clang/dist/lib/Index/IndexDecl.cpp vendor/clang/dist/lib/Index/IndexSymbol.cpp vendor/clang/dist/lib/Index/IndexTypeSourceInfo.cpp vendor/clang/dist/lib/Index/IndexingAction.cpp vendor/clang/dist/lib/Index/IndexingContext.cpp vendor/clang/dist/lib/Index/IndexingContext.h vendor/clang/dist/lib/Index/SimpleFormatContext.h vendor/clang/dist/lib/Index/USRGeneration.cpp vendor/clang/dist/lib/Lex/HeaderMap.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/MacroArgs.cpp vendor/clang/dist/lib/Lex/MacroInfo.cpp vendor/clang/dist/lib/Lex/ModuleMap.cpp vendor/clang/dist/lib/Lex/PPCaching.cpp vendor/clang/dist/lib/Lex/PPCallbacks.cpp vendor/clang/dist/lib/Lex/PPConditionalDirectiveRecord.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/PreprocessorLexer.cpp vendor/clang/dist/lib/Lex/ScratchBuffer.cpp vendor/clang/dist/lib/Lex/TokenConcatenation.cpp vendor/clang/dist/lib/Lex/TokenLexer.cpp vendor/clang/dist/lib/Lex/UnicodeCharSets.h 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/ParseInit.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/DeltaTree.cpp vendor/clang/dist/lib/Rewrite/HTMLRewrite.cpp vendor/clang/dist/lib/Rewrite/RewriteRope.cpp vendor/clang/dist/lib/Rewrite/Rewriter.cpp vendor/clang/dist/lib/Rewrite/TokenRewriter.cpp vendor/clang/dist/lib/Sema/AnalysisBasedWarnings.cpp vendor/clang/dist/lib/Sema/CodeCompleteConsumer.cpp vendor/clang/dist/lib/Sema/CoroutineStmtBuilder.h vendor/clang/dist/lib/Sema/DeclSpec.cpp vendor/clang/dist/lib/Sema/DelayedDiagnostic.cpp vendor/clang/dist/lib/Sema/IdentifierResolver.cpp vendor/clang/dist/lib/Sema/JumpDiagnostics.cpp vendor/clang/dist/lib/Sema/MultiplexExternalSemaSource.cpp vendor/clang/dist/lib/Sema/ParsedAttr.cpp vendor/clang/dist/lib/Sema/Scope.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/SemaAttr.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/SemaConsumer.cpp vendor/clang/dist/lib/Sema/SemaCoroutine.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/Sema/TypeLocBuilder.cpp vendor/clang/dist/lib/Sema/TypeLocBuilder.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/GeneratePCH.cpp vendor/clang/dist/lib/Serialization/GlobalModuleIndex.cpp vendor/clang/dist/lib/Serialization/Module.cpp vendor/clang/dist/lib/Serialization/ModuleFileExtension.cpp vendor/clang/dist/lib/Serialization/ModuleManager.cpp vendor/clang/dist/lib/Serialization/MultiOnDiskHashTable.h vendor/clang/dist/lib/Serialization/PCHContainerOperations.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/AllocationState.h vendor/clang/dist/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.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/BlockInCriticalSectionChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CStringChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CXXSelfAssignmentChecker.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/CheckObjCInstMethSignature.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/ChrootChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CloneChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.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/DynamicTypeChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/GTestChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/InterCheckerAPI.h vendor/clang/dist/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.h vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIFunctionClassifier.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPITypes.h vendor/clang/dist/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp 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/MmapWriteExecChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MoveChecker.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/NonnullGlobalConstantsChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.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/ObjCPropertyChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/PaddingChecker.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/RetainCountChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h vendor/clang/dist/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h vendor/clang/dist/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/RunLoopAutoreleaseLeakChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.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/TraversalChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.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/UninitializedObject/UninitializedObject.h vendor/clang/dist/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedPointee.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/ValistChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/VforkChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/APSIntType.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/AnalysisManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/BasicValueFactory.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/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/CommonBugCategories.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ConstraintManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CoreEngine.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/DynamicTypeMap.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/FunctionSummary.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/IssueHash.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/LoopUnrolling.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/LoopWidening.cpp 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/PrettyStackTraceLocationContext.h vendor/clang/dist/lib/StaticAnalyzer/Core/ProgramState.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/RegionStore.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SValBuilder.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SVals.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/Store.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SubEngine.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SymbolManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/WorkList.cpp vendor/clang/dist/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp vendor/clang/dist/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp vendor/clang/dist/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp vendor/clang/dist/lib/StaticAnalyzer/Frontend/FrontendActions.cpp vendor/clang/dist/lib/StaticAnalyzer/Frontend/ModelConsumer.cpp vendor/clang/dist/lib/StaticAnalyzer/Frontend/ModelInjector.cpp vendor/clang/dist/lib/StaticAnalyzer/Frontend/ModelInjector.h vendor/clang/dist/lib/Tooling/ASTDiff/ASTDiff.cpp vendor/clang/dist/lib/Tooling/AllTUsExecution.cpp 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/Diagnostic.cpp vendor/clang/dist/lib/Tooling/Core/Lookup.cpp vendor/clang/dist/lib/Tooling/Core/Replacement.cpp vendor/clang/dist/lib/Tooling/Execution.cpp vendor/clang/dist/lib/Tooling/FileMatchTrie.cpp vendor/clang/dist/lib/Tooling/FixIt.cpp vendor/clang/dist/lib/Tooling/Inclusions/HeaderIncludes.cpp vendor/clang/dist/lib/Tooling/Inclusions/IncludeStyle.cpp vendor/clang/dist/lib/Tooling/InterpolatingCompilationDatabase.cpp vendor/clang/dist/lib/Tooling/JSONCompilationDatabase.cpp vendor/clang/dist/lib/Tooling/Refactoring.cpp vendor/clang/dist/lib/Tooling/Refactoring/ASTSelection.cpp vendor/clang/dist/lib/Tooling/Refactoring/ASTSelectionRequirements.cpp vendor/clang/dist/lib/Tooling/Refactoring/AtomicChange.cpp vendor/clang/dist/lib/Tooling/Refactoring/Extract/Extract.cpp vendor/clang/dist/lib/Tooling/Refactoring/Extract/SourceExtraction.cpp vendor/clang/dist/lib/Tooling/Refactoring/Extract/SourceExtraction.h vendor/clang/dist/lib/Tooling/Refactoring/RefactoringActions.cpp vendor/clang/dist/lib/Tooling/Refactoring/Rename/RenamingAction.cpp vendor/clang/dist/lib/Tooling/Refactoring/Rename/SymbolOccurrences.cpp vendor/clang/dist/lib/Tooling/Refactoring/Rename/USRFinder.cpp vendor/clang/dist/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp vendor/clang/dist/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp vendor/clang/dist/lib/Tooling/RefactoringCallbacks.cpp vendor/clang/dist/lib/Tooling/StandaloneExecution.cpp vendor/clang/dist/lib/Tooling/Tooling.cpp vendor/clang/dist/tools/clang-format/ClangFormat.cpp vendor/clang/dist/tools/driver/cc1_main.cpp vendor/clang/dist/tools/driver/cc1as_main.cpp vendor/clang/dist/tools/driver/cc1gen_reproducer_main.cpp vendor/clang/dist/tools/driver/driver.cpp vendor/clang/dist/utils/TableGen/ClangASTNodesEmitter.cpp vendor/clang/dist/utils/TableGen/ClangAttrEmitter.cpp vendor/clang/dist/utils/TableGen/ClangCommentCommandInfoEmitter.cpp vendor/clang/dist/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp vendor/clang/dist/utils/TableGen/ClangCommentHTMLTagsEmitter.cpp vendor/clang/dist/utils/TableGen/ClangDiagnosticsEmitter.cpp vendor/clang/dist/utils/TableGen/ClangOptionDocEmitter.cpp vendor/clang/dist/utils/TableGen/ClangSACheckersEmitter.cpp vendor/clang/dist/utils/TableGen/NeonEmitter.cpp vendor/clang/dist/utils/TableGen/TableGen.cpp vendor/clang/dist/utils/TableGen/TableGenBackends.h Modified: vendor/clang/dist/LICENSE.TXT ============================================================================== --- vendor/clang/dist/LICENSE.TXT Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/LICENSE.TXT Tue Aug 20 20:50:49 2019 (r351280) @@ -1,6 +1,241 @@ ============================================================================== -LLVM Release License +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: ============================================================================== + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +============================================================================== +Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): +============================================================================== University of Illinois/NCSA Open Source License @@ -41,23 +276,3 @@ CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CL LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. - -============================================================================== -The LLVM software contains code written by third parties. Such software will -have its own individual LICENSE.TXT file in the directory in which it appears. -This file will describe the copyrights, license, and restrictions which apply -to that code. - -The disclaimer of warranty in the University of Illinois Open Source License -applies to all code in the LLVM Distribution, and nothing in any of the -other licenses gives permission to use the names of the LLVM Team or the -University of Illinois to endorse or promote products derived from this -Software. - -The following pieces of software have additional or alternate copyrights, -licenses, and/or restrictions: - -Program Directory -------- --------- - - Modified: vendor/clang/dist/include/clang-c/BuildSystem.h ============================================================================== --- vendor/clang/dist/include/clang-c/BuildSystem.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang-c/BuildSystem.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,9 +1,9 @@ /*==-- clang-c/BuildSystem.h - Utilities for use by build systems -*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/clang/dist/include/clang-c/CXCompilationDatabase.h ============================================================================== --- vendor/clang/dist/include/clang-c/CXCompilationDatabase.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang-c/CXCompilationDatabase.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,9 +1,9 @@ /*===-- clang-c/CXCompilationDatabase.h - Compilation database ---*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/clang/dist/include/clang-c/CXErrorCode.h ============================================================================== --- vendor/clang/dist/include/clang-c/CXErrorCode.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang-c/CXErrorCode.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,9 +1,9 @@ /*===-- clang-c/CXErrorCode.h - C Index Error Codes --------------*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/clang/dist/include/clang-c/CXString.h ============================================================================== --- vendor/clang/dist/include/clang-c/CXString.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang-c/CXString.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,9 +1,9 @@ /*===-- clang-c/CXString.h - C Index strings --------------------*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/clang/dist/include/clang-c/Documentation.h ============================================================================== --- vendor/clang/dist/include/clang-c/Documentation.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang-c/Documentation.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,9 +1,9 @@ /*==-- clang-c/Documentation.h - Utilities for comment processing -*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/clang/dist/include/clang-c/Index.h ============================================================================== --- vendor/clang/dist/include/clang-c/Index.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang-c/Index.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,10 +1,10 @@ /*===-- clang-c/Index.h - Indexing Public C Interface -------------*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| |*===----------------------------------------------------------------------===*| |* *| |* This header provides a public interface to a Clang library for extracting *| @@ -32,7 +32,7 @@ * compatible, thus CINDEX_VERSION_MAJOR is expected to remain stable. */ #define CINDEX_VERSION_MAJOR 0 -#define CINDEX_VERSION_MINOR 50 +#define CINDEX_VERSION_MINOR 59 #define CINDEX_VERSION_ENCODE(major, minor) ( \ ((major) * 10000) \ @@ -221,7 +221,12 @@ enum CXCursor_ExceptionSpecificationKind { /** * The exception specification has not been parsed yet. */ - CXCursor_ExceptionSpecificationKind_Unparsed + CXCursor_ExceptionSpecificationKind_Unparsed, + + /** + * The cursor has a __declspec(nothrow) exception specification. + */ + CXCursor_ExceptionSpecificationKind_NoThrow }; /** @@ -1341,7 +1346,17 @@ enum CXTranslationUnit_Flags { /** * Used to indicate that implicit attributes should be visited. */ - CXTranslationUnit_VisitImplicitAttributes = 0x2000 + CXTranslationUnit_VisitImplicitAttributes = 0x2000, + + /** + * Used to indicate that non-errors from included files should be ignored. + * + * If set, clang_getDiagnosticSetFromTU() will not report e.g. warnings from + * included files anymore. This speeds up clang_getDiagnosticSetFromTU() for + * the case where these warnings are not of interest, as for an IDE for + * example, which typically shows only the diagnostics in the main file. + */ + CXTranslationUnit_IgnoreNonErrorsFromIncludedFiles = 0x4000 }; /** @@ -2531,8 +2546,12 @@ enum CXCursorKind { */ CXCursor_OMPTargetTeamsDistributeSimdDirective = 279, - CXCursor_LastStmt = CXCursor_OMPTargetTeamsDistributeSimdDirective, + /** C++2a std::bit_cast expression. + */ + CXCursor_BuiltinBitCastExpr = 280, + CXCursor_LastStmt = CXCursor_BuiltinBitCastExpr, + /** * Cursor that represents the translation unit itself. * @@ -2586,7 +2605,11 @@ enum CXCursorKind { CXCursor_ObjCRuntimeVisible = 435, CXCursor_ObjCBoxable = 436, CXCursor_FlagEnum = 437, - CXCursor_LastAttr = CXCursor_FlagEnum, + CXCursor_ConvergentAttr = 438, + CXCursor_WarnUnusedAttr = 439, + CXCursor_WarnUnusedResultAttr = 440, + CXCursor_AlignedAttr = 441, + CXCursor_LastAttr = CXCursor_AlignedAttr, /* Preprocessing */ CXCursor_PreprocessingDirective = 500, @@ -3311,7 +3334,9 @@ enum CXTypeKind { CXType_OCLIntelSubgroupAVCImeResultDualRefStreamout = 173, CXType_OCLIntelSubgroupAVCImeSingleRefStreamin = 174, - CXType_OCLIntelSubgroupAVCImeDualRefStreamin = 175 + CXType_OCLIntelSubgroupAVCImeDualRefStreamin = 175, + + CXType_ExtVector = 176 }; /** @@ -3838,7 +3863,11 @@ enum CXTypeLayoutError { /** * The Field name is not valid for this record. */ - CXTypeLayoutError_InvalidFieldName = -5 + CXTypeLayoutError_InvalidFieldName = -5, + /** + * The type is undeduced. + */ + CXTypeLayoutError_Undeduced = -6 }; /** @@ -3911,10 +3940,22 @@ CINDEX_LINKAGE CXType clang_Type_getModifiedType(CXTyp CINDEX_LINKAGE long long clang_Cursor_getOffsetOfField(CXCursor C); /** + * Determine whether the given cursor represents an anonymous + * tag or namespace + */ +CINDEX_LINKAGE unsigned clang_Cursor_isAnonymous(CXCursor C); + +/** * Determine whether the given cursor represents an anonymous record * declaration. */ -CINDEX_LINKAGE unsigned clang_Cursor_isAnonymous(CXCursor C); +CINDEX_LINKAGE unsigned clang_Cursor_isAnonymousRecordDecl(CXCursor C); + +/** + * Determine whether the given cursor represents an inline namespace + * declaration. + */ +CINDEX_LINKAGE unsigned clang_Cursor_isInlineNamespace(CXCursor C); enum CXRefQualifierKind { /** No ref-qualifier was provided. */ Modified: vendor/clang/dist/include/clang-c/Platform.h ============================================================================== --- vendor/clang/dist/include/clang-c/Platform.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang-c/Platform.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,9 +1,9 @@ /*===-- clang-c/Platform.h - C Index platform decls -------------*- C -*-===*\ |* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |* *| |*===----------------------------------------------------------------------===*| |* *| Modified: vendor/clang/dist/include/clang/ARCMigrate/ARCMT.h ============================================================================== --- vendor/clang/dist/include/clang/ARCMigrate/ARCMT.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang/ARCMigrate/ARCMT.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,9 +1,8 @@ //===-- ARCMT.h - ARC Migration Rewriter ------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// Modified: vendor/clang/dist/include/clang/ARCMigrate/ARCMTActions.h ============================================================================== --- vendor/clang/dist/include/clang/ARCMigrate/ARCMTActions.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang/ARCMigrate/ARCMTActions.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,9 +1,8 @@ //===--- ARCMTActions.h - ARC Migrate Tool Frontend Actions -----*- C++ -*-===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// Modified: vendor/clang/dist/include/clang/ARCMigrate/FileRemapper.h ============================================================================== --- vendor/clang/dist/include/clang/ARCMigrate/FileRemapper.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang/ARCMigrate/FileRemapper.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,9 +1,8 @@ //===-- FileRemapper.h - File Remapping Helper ------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// Modified: vendor/clang/dist/include/clang/AST/APValue.h ============================================================================== --- vendor/clang/dist/include/clang/AST/APValue.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang/AST/APValue.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,10 +1,9 @@ //===--- APValue.h - Union class for APFloat/APSInt/Complex -----*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// // // This file defines the APValue class. @@ -14,6 +13,7 @@ #ifndef LLVM_CLANG_AST_APVALUE_H #define LLVM_CLANG_AST_APVALUE_H +#include "clang/Basic/FixedPoint.h" #include "clang/Basic/LLVM.h" #include "llvm/ADT/APFloat.h" #include "llvm/ADT/APSInt.h" @@ -24,14 +24,52 @@ namespace clang { class AddrLabelExpr; class ASTContext; class CharUnits; + class CXXRecordDecl; + class Decl; class DiagnosticBuilder; class Expr; class FieldDecl; - class Decl; + struct PrintingPolicy; + class Type; class ValueDecl; - class CXXRecordDecl; - class QualType; +/// Symbolic representation of typeid(T) for some type T. +class TypeInfoLValue { + const Type *T; + +public: + TypeInfoLValue() : T() {} + explicit TypeInfoLValue(const Type *T); + + const Type *getType() const { return T; } + explicit operator bool() const { return T; } + + void *getOpaqueValue() { return const_cast(T); } + static TypeInfoLValue getFromOpaqueValue(void *Value) { + TypeInfoLValue V; + V.T = reinterpret_cast(Value); + return V; + } + + void print(llvm::raw_ostream &Out, const PrintingPolicy &Policy) const; +}; +} + +namespace llvm { +template<> struct PointerLikeTypeTraits { + static void *getAsVoidPointer(clang::TypeInfoLValue V) { + return V.getOpaqueValue(); + } + static clang::TypeInfoLValue getFromVoidPointer(void *P) { + return clang::TypeInfoLValue::getFromOpaqueValue(P); + } + // Validated by static_assert in APValue.cpp; hardcoded to avoid needing + // to include Type.h. + static constexpr int NumLowBitsAvailable = 3; +}; +} + +namespace clang { /// APValue - This class implements a discriminated union of [uninitialized] /// [APSInt] [APFloat], [Complex APSInt] [Complex APFloat], [Expr + Offset], /// [Vector: N * APValue], [Array: N * APValue] @@ -40,9 +78,13 @@ class APValue { typedef llvm::APFloat APFloat; public: enum ValueKind { - Uninitialized, + /// There is no such object (it's outside its lifetime). + None, + /// This object has an indeterminate value (C++ [basic.indet]). + Indeterminate, Int, Float, + FixedPoint, ComplexInt, ComplexFloat, LValue, @@ -55,16 +97,16 @@ class APValue { }; class LValueBase { + typedef llvm::PointerUnion + PtrTy; + public: - typedef llvm::PointerUnion PtrTy; + LValueBase() : Local{} {} + LValueBase(const ValueDecl *P, unsigned I = 0, unsigned V = 0); + LValueBase(const Expr *P, unsigned I = 0, unsigned V = 0); + static LValueBase getTypeInfo(TypeInfoLValue LV, QualType TypeInfo); - LValueBase() : CallIndex(0), Version(0) {} - template - LValueBase(T P, unsigned I = 0, unsigned V = 0) - : Ptr(P), CallIndex(I), Version(V) {} - - template bool is() const { return Ptr.is(); } template @@ -77,45 +119,73 @@ class APValue { bool isNull() const; - explicit operator bool () const; + explicit operator bool() const; - PtrTy getPointer() const { - return Ptr; - } + unsigned getCallIndex() const; + unsigned getVersion() const; + QualType getTypeInfoType() const; - unsigned getCallIndex() const { - return CallIndex; + friend bool operator==(const LValueBase &LHS, const LValueBase &RHS); + friend bool operator!=(const LValueBase &LHS, const LValueBase &RHS) { + return !(LHS == RHS); } + friend llvm::hash_code hash_value(const LValueBase &Base); - void setCallIndex(unsigned Index) { - CallIndex = Index; - } + private: + PtrTy Ptr; + struct LocalState { + unsigned CallIndex, Version; + }; + union { + LocalState Local; + /// The type std::type_info, if this is a TypeInfoLValue. + void *TypeInfoType; + }; + }; - unsigned getVersion() const { - return Version; + /// A FieldDecl or CXXRecordDecl, along with a flag indicating whether we + /// mean a virtual or non-virtual base class subobject. + typedef llvm::PointerIntPair BaseOrMemberType; + + /// A non-discriminated union of a base, field, or array index. + class LValuePathEntry { + static_assert(sizeof(uintptr_t) <= sizeof(uint64_t), + "pointer doesn't fit in 64 bits?"); + uint64_t Value; + + public: + LValuePathEntry() : Value() {} + LValuePathEntry(BaseOrMemberType BaseOrMember) + : Value{reinterpret_cast(BaseOrMember.getOpaqueValue())} {} + static LValuePathEntry ArrayIndex(uint64_t Index) { + LValuePathEntry Result; + Result.Value = Index; + return Result; } - bool operator==(const LValueBase &Other) const { - return Ptr == Other.Ptr && CallIndex == Other.CallIndex && - Version == Other.Version; + BaseOrMemberType getAsBaseOrMember() const { + return BaseOrMemberType::getFromOpaqueValue( + reinterpret_cast(Value)); } + uint64_t getAsArrayIndex() const { return Value; } - private: - PtrTy Ptr; - unsigned CallIndex, Version; + friend bool operator==(LValuePathEntry A, LValuePathEntry B) { + return A.Value == B.Value; + } + friend bool operator!=(LValuePathEntry A, LValuePathEntry B) { + return A.Value != B.Value; + } + friend llvm::hash_code hash_value(LValuePathEntry A) { + return llvm::hash_value(A.Value); + } }; - - typedef llvm::PointerIntPair BaseOrMemberType; - union LValuePathEntry { - /// BaseOrMember - The FieldDecl or CXXRecordDecl indicating the next item - /// in the path. An opaque value of type BaseOrMemberType. - void *BaseOrMember; - /// ArrayIndex - The array index of the next item in the path. - uint64_t ArrayIndex; - }; struct NoLValuePath {}; struct UninitArray {}; struct UninitStruct {}; + + friend class ASTReader; + friend class ASTWriter; + private: ValueKind Kind; @@ -168,55 +238,64 @@ class APValue { DataType Data; public: - APValue() : Kind(Uninitialized) {} - explicit APValue(APSInt I) : Kind(Uninitialized) { + APValue() : Kind(None) {} + explicit APValue(APSInt I) : Kind(None) { MakeInt(); setInt(std::move(I)); } - explicit APValue(APFloat F) : Kind(Uninitialized) { + explicit APValue(APFloat F) : Kind(None) { MakeFloat(); setFloat(std::move(F)); } - explicit APValue(const APValue *E, unsigned N) : Kind(Uninitialized) { + explicit APValue(APFixedPoint FX) : Kind(None) { + MakeFixedPoint(std::move(FX)); + } + explicit APValue(const APValue *E, unsigned N) : Kind(None) { MakeVector(); setVector(E, N); } - APValue(APSInt R, APSInt I) : Kind(Uninitialized) { + APValue(APSInt R, APSInt I) : Kind(None) { MakeComplexInt(); setComplexInt(std::move(R), std::move(I)); } - APValue(APFloat R, APFloat I) : Kind(Uninitialized) { + APValue(APFloat R, APFloat I) : Kind(None) { MakeComplexFloat(); setComplexFloat(std::move(R), std::move(I)); } APValue(const APValue &RHS); - APValue(APValue &&RHS) : Kind(Uninitialized) { swap(RHS); } + APValue(APValue &&RHS) : Kind(None) { swap(RHS); } APValue(LValueBase B, const CharUnits &O, NoLValuePath N, bool IsNullPtr = false) - : Kind(Uninitialized) { + : Kind(None) { MakeLValue(); setLValue(B, O, N, IsNullPtr); } APValue(LValueBase B, const CharUnits &O, ArrayRef Path, bool OnePastTheEnd, bool IsNullPtr = false) - : Kind(Uninitialized) { + : Kind(None) { MakeLValue(); setLValue(B, O, Path, OnePastTheEnd, IsNullPtr); } - APValue(UninitArray, unsigned InitElts, unsigned Size) : Kind(Uninitialized) { + APValue(UninitArray, unsigned InitElts, unsigned Size) : Kind(None) { MakeArray(InitElts, Size); } - APValue(UninitStruct, unsigned B, unsigned M) : Kind(Uninitialized) { + APValue(UninitStruct, unsigned B, unsigned M) : Kind(None) { MakeStruct(B, M); } explicit APValue(const FieldDecl *D, const APValue &V = APValue()) - : Kind(Uninitialized) { + : Kind(None) { MakeUnion(); setUnion(D, V); } APValue(const ValueDecl *Member, bool IsDerivedMember, - ArrayRef Path) : Kind(Uninitialized) { + ArrayRef Path) : Kind(None) { MakeMemberPointer(Member, IsDerivedMember, Path); } APValue(const AddrLabelExpr* LHSExpr, const AddrLabelExpr* RHSExpr) - : Kind(Uninitialized) { + : Kind(None) { MakeAddrLabelDiff(); setAddrLabelDiff(LHSExpr, RHSExpr); } + static APValue IndeterminateValue() { + APValue Result; + Result.Kind = Indeterminate; + return Result; + } ~APValue() { - MakeUninit(); + if (Kind != None && Kind != Indeterminate) + DestroyDataAndMakeUninit(); } /// Returns whether the object performed allocations. @@ -230,9 +309,14 @@ class APValue { void swap(APValue &RHS); ValueKind getKind() const { return Kind; } - bool isUninit() const { return Kind == Uninitialized; } + + bool isAbsent() const { return Kind == None; } + bool isIndeterminate() const { return Kind == Indeterminate; } + bool hasValue() const { return Kind != None && Kind != Indeterminate; } + bool isInt() const { return Kind == Int; } bool isFloat() const { return Kind == Float; } + bool isFixedPoint() const { return Kind == FixedPoint; } bool isComplexInt() const { return Kind == ComplexInt; } bool isComplexFloat() const { return Kind == ComplexFloat; } bool isLValue() const { return Kind == LValue; } @@ -246,8 +330,8 @@ class APValue { void dump() const; void dump(raw_ostream &OS) const; - void printPretty(raw_ostream &OS, ASTContext &Ctx, QualType Ty) const; - std::string getAsString(ASTContext &Ctx, QualType Ty) const; + void printPretty(raw_ostream &OS, const ASTContext &Ctx, QualType Ty) const; + std::string getAsString(const ASTContext &Ctx, QualType Ty) const; APSInt &getInt() { assert(isInt() && "Invalid accessor"); @@ -257,6 +341,12 @@ class APValue { return const_cast(this)->getInt(); } + /// Try to convert this value to an integral constant. This works if it's an + /// integer, null pointer, or offset from a null pointer. Returns true on + /// success. + bool toIntegralConstant(APSInt &Result, QualType SrcTy, + const ASTContext &Ctx) const; + APFloat &getFloat() { assert(isFloat() && "Invalid accessor"); return *(APFloat*)(char*)Data.buffer; @@ -265,6 +355,14 @@ class APValue { return const_cast(this)->getFloat(); } + APFixedPoint &getFixedPoint() { + assert(isFixedPoint() && "Invalid accessor"); + return *(APFixedPoint *)(char *)Data.buffer; + } + const APFixedPoint &getFixedPoint() const { + return const_cast(this)->getFixedPoint(); + } + APSInt &getComplexIntReal() { assert(isComplexInt() && "Invalid accessor"); return ((ComplexAPSInt*)(char*)Data.buffer)->Real; @@ -406,6 +504,10 @@ class APValue { assert(isFloat() && "Invalid accessor"); *(APFloat *)(char *)Data.buffer = std::move(F); } + void setFixedPoint(APFixedPoint FX) { + assert(isFixedPoint() && "Invalid accessor"); + *(APFixedPoint *)(char *)Data.buffer = std::move(FX); + } void setVector(const APValue *E, unsigned N) { assert(isVector() && "Invalid accessor"); ((Vec*)(char*)Data.buffer)->Elts = new APValue[N]; @@ -451,51 +553,52 @@ class APValue { private: void DestroyDataAndMakeUninit(); - void MakeUninit() { - if (Kind != Uninitialized) - DestroyDataAndMakeUninit(); - } void MakeInt() { - assert(isUninit() && "Bad state change"); + assert(isAbsent() && "Bad state change"); new ((void*)Data.buffer) APSInt(1); Kind = Int; } void MakeFloat() { - assert(isUninit() && "Bad state change"); + assert(isAbsent() && "Bad state change"); new ((void*)(char*)Data.buffer) APFloat(0.0); Kind = Float; } + void MakeFixedPoint(APFixedPoint &&FX) { + assert(isAbsent() && "Bad state change"); + new ((void *)(char *)Data.buffer) APFixedPoint(std::move(FX)); + Kind = FixedPoint; + } void MakeVector() { - assert(isUninit() && "Bad state change"); + assert(isAbsent() && "Bad state change"); new ((void*)(char*)Data.buffer) Vec(); Kind = Vector; } void MakeComplexInt() { - assert(isUninit() && "Bad state change"); + assert(isAbsent() && "Bad state change"); new ((void*)(char*)Data.buffer) ComplexAPSInt(); Kind = ComplexInt; } void MakeComplexFloat() { - assert(isUninit() && "Bad state change"); + assert(isAbsent() && "Bad state change"); new ((void*)(char*)Data.buffer) ComplexAPFloat(); Kind = ComplexFloat; } void MakeLValue(); void MakeArray(unsigned InitElts, unsigned Size); void MakeStruct(unsigned B, unsigned M) { - assert(isUninit() && "Bad state change"); + assert(isAbsent() && "Bad state change"); new ((void*)(char*)Data.buffer) StructData(B, M); Kind = Struct; } void MakeUnion() { - assert(isUninit() && "Bad state change"); + assert(isAbsent() && "Bad state change"); new ((void*)(char*)Data.buffer) UnionData(); Kind = Union; } void MakeMemberPointer(const ValueDecl *Member, bool IsDerivedMember, ArrayRef Path); void MakeAddrLabelDiff() { - assert(isUninit() && "Bad state change"); + assert(isAbsent() && "Bad state change"); new ((void*)(char*)Data.buffer) AddrLabelDiffData(); Kind = AddrLabelDiff; } Modified: vendor/clang/dist/include/clang/AST/AST.h ============================================================================== --- vendor/clang/dist/include/clang/AST/AST.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang/AST/AST.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,9 +1,8 @@ //===--- AST.h - "Umbrella" header for AST library --------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // Modified: vendor/clang/dist/include/clang/AST/ASTConsumer.h ============================================================================== --- vendor/clang/dist/include/clang/AST/ASTConsumer.h Tue Aug 20 20:50:25 2019 (r351279) +++ vendor/clang/dist/include/clang/AST/ASTConsumer.h Tue Aug 20 20:50:49 2019 (r351280) @@ -1,9 +1,8 @@ //===--- ASTConsumer.h - Abstract interface for reading ASTs ----*- C++ -*-===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Aug 20 20:50:58 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C82D3DFF5A; Tue, 20 Aug 2019 20:50:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjcf28t0z40fb; Tue, 20 Aug 2019 20:50:58 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 111E38ED0; Tue, 20 Aug 2019 20:50:58 +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 x7KKovOe075839; Tue, 20 Aug 2019 20:50:57 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKovFG075838; Tue, 20 Aug 2019 20:50:57 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202050.x7KKovFG075838@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:50:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351281 - vendor/clang/clang-trunk-r366426 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/clang/clang-trunk-r366426 X-SVN-Commit-Revision: 351281 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:50:58 -0000 Author: dim Date: Tue Aug 20 20:50:57 2019 New Revision: 351281 URL: https://svnweb.freebsd.org/changeset/base/351281 Log: Tag stripped clang trunk r366426 (just before the release_90 branch point). Added: vendor/clang/clang-trunk-r366426/ - copied from r351280, vendor/clang/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:51:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 00467DFFC3; Tue, 20 Aug 2019 20:51:08 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjcq6lhYz40sK; Tue, 20 Aug 2019 20:51:07 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C59F08EE4; Tue, 20 Aug 2019 20:51: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 x7KKp7cK075900; Tue, 20 Aug 2019 20:51:07 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKp7nU075894; Tue, 20 Aug 2019 20:51:07 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202051.x7KKp7nU075894@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:51:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351282 - in vendor/compiler-rt/dist: . include/sanitizer include/xray lib/asan lib/builtins lib/builtins/aarch64 lib/builtins/arm lib/builtins/hexagon lib/builtins/i386 lib/builtins/pp... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/compiler-rt/dist: . include/sanitizer include/xray lib/asan lib/builtins lib/builtins/aarch64 lib/builtins/arm lib/builtins/hexagon lib/builtins/i386 lib/builtins/ppc lib/builtins/riscv lib/... X-SVN-Commit-Revision: 351282 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:51:08 -0000 Author: dim Date: Tue Aug 20 20:51:06 2019 New Revision: 351282 URL: https://svnweb.freebsd.org/changeset/base/351282 Log: Vendor import of stripped compiler-rt trunk r366426 (just before the release_90 branch point): https://llvm.org/svn/llvm-project/compiler-rt/trunk@366426 Added: vendor/compiler-rt/dist/lib/asan/asan_interceptors_vfork.S vendor/compiler-rt/dist/lib/asan/asan_mapping_sparc64.h vendor/compiler-rt/dist/lib/cfi/cfi.cpp vendor/compiler-rt/dist/lib/crt/ vendor/compiler-rt/dist/lib/crt/crtbegin.c vendor/compiler-rt/dist/lib/crt/crtend.c vendor/compiler-rt/dist/lib/fuzzer/FuzzerFork.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerFork.h vendor/compiler-rt/dist/lib/fuzzer/utils/ vendor/compiler-rt/dist/lib/fuzzer/utils/FuzzedDataProvider.h vendor/compiler-rt/dist/lib/gwp_asan/ vendor/compiler-rt/dist/lib/gwp_asan/definitions.h vendor/compiler-rt/dist/lib/gwp_asan/guarded_pool_allocator.cpp vendor/compiler-rt/dist/lib/gwp_asan/guarded_pool_allocator.h vendor/compiler-rt/dist/lib/gwp_asan/mutex.h vendor/compiler-rt/dist/lib/gwp_asan/optional/ vendor/compiler-rt/dist/lib/gwp_asan/optional/backtrace.h vendor/compiler-rt/dist/lib/gwp_asan/optional/backtrace_linux_libc.cpp vendor/compiler-rt/dist/lib/gwp_asan/optional/backtrace_sanitizer_common.cpp vendor/compiler-rt/dist/lib/gwp_asan/optional/options_parser.cpp vendor/compiler-rt/dist/lib/gwp_asan/optional/options_parser.h vendor/compiler-rt/dist/lib/gwp_asan/options.h vendor/compiler-rt/dist/lib/gwp_asan/options.inc vendor/compiler-rt/dist/lib/gwp_asan/platform_specific/ vendor/compiler-rt/dist/lib/gwp_asan/platform_specific/guarded_pool_allocator_posix.cpp vendor/compiler-rt/dist/lib/gwp_asan/platform_specific/mutex_posix.cpp vendor/compiler-rt/dist/lib/gwp_asan/random.cpp vendor/compiler-rt/dist/lib/gwp_asan/random.h vendor/compiler-rt/dist/lib/hwasan/hwasan.cpp vendor/compiler-rt/dist/lib/hwasan/hwasan_allocator.cpp vendor/compiler-rt/dist/lib/hwasan/hwasan_dynamic_shadow.cpp vendor/compiler-rt/dist/lib/hwasan/hwasan_interceptors.cpp vendor/compiler-rt/dist/lib/hwasan/hwasan_interceptors_vfork.S vendor/compiler-rt/dist/lib/hwasan/hwasan_linux.cpp vendor/compiler-rt/dist/lib/hwasan/hwasan_malloc_bisect.h vendor/compiler-rt/dist/lib/hwasan/hwasan_memintrinsics.cpp vendor/compiler-rt/dist/lib/hwasan/hwasan_new_delete.cpp vendor/compiler-rt/dist/lib/hwasan/hwasan_poisoning.cpp vendor/compiler-rt/dist/lib/hwasan/hwasan_report.cpp vendor/compiler-rt/dist/lib/hwasan/hwasan_tag_mismatch_aarch64.S vendor/compiler-rt/dist/lib/hwasan/hwasan_thread.cpp vendor/compiler-rt/dist/lib/hwasan/hwasan_thread_list.cpp vendor/compiler-rt/dist/lib/profile/InstrProfilingPlatformWindows.c vendor/compiler-rt/dist/lib/safestack/safestack_platform.h vendor/compiler-rt/dist/lib/safestack/safestack_util.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_hash.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cc vendor/compiler-rt/dist/lib/scudo/standalone/ vendor/compiler-rt/dist/lib/scudo/standalone/allocator_config.h vendor/compiler-rt/dist/lib/scudo/standalone/atomic_helpers.h vendor/compiler-rt/dist/lib/scudo/standalone/bytemap.h vendor/compiler-rt/dist/lib/scudo/standalone/checksum.cc vendor/compiler-rt/dist/lib/scudo/standalone/checksum.h vendor/compiler-rt/dist/lib/scudo/standalone/chunk.h vendor/compiler-rt/dist/lib/scudo/standalone/combined.h vendor/compiler-rt/dist/lib/scudo/standalone/common.cc vendor/compiler-rt/dist/lib/scudo/standalone/common.h vendor/compiler-rt/dist/lib/scudo/standalone/crc32_hw.cc vendor/compiler-rt/dist/lib/scudo/standalone/flags.cc vendor/compiler-rt/dist/lib/scudo/standalone/flags.h vendor/compiler-rt/dist/lib/scudo/standalone/flags.inc vendor/compiler-rt/dist/lib/scudo/standalone/flags_parser.cc vendor/compiler-rt/dist/lib/scudo/standalone/flags_parser.h vendor/compiler-rt/dist/lib/scudo/standalone/fuchsia.cc vendor/compiler-rt/dist/lib/scudo/standalone/fuchsia.h vendor/compiler-rt/dist/lib/scudo/standalone/interface.h vendor/compiler-rt/dist/lib/scudo/standalone/internal_defs.h vendor/compiler-rt/dist/lib/scudo/standalone/linux.cc vendor/compiler-rt/dist/lib/scudo/standalone/linux.h vendor/compiler-rt/dist/lib/scudo/standalone/list.h vendor/compiler-rt/dist/lib/scudo/standalone/local_cache.h vendor/compiler-rt/dist/lib/scudo/standalone/mutex.h vendor/compiler-rt/dist/lib/scudo/standalone/platform.h vendor/compiler-rt/dist/lib/scudo/standalone/primary32.h vendor/compiler-rt/dist/lib/scudo/standalone/primary64.h vendor/compiler-rt/dist/lib/scudo/standalone/quarantine.h vendor/compiler-rt/dist/lib/scudo/standalone/release.h vendor/compiler-rt/dist/lib/scudo/standalone/report.cc vendor/compiler-rt/dist/lib/scudo/standalone/report.h vendor/compiler-rt/dist/lib/scudo/standalone/secondary.cc vendor/compiler-rt/dist/lib/scudo/standalone/secondary.h vendor/compiler-rt/dist/lib/scudo/standalone/size_class_map.h vendor/compiler-rt/dist/lib/scudo/standalone/stats.h vendor/compiler-rt/dist/lib/scudo/standalone/string_utils.cc vendor/compiler-rt/dist/lib/scudo/standalone/string_utils.h vendor/compiler-rt/dist/lib/scudo/standalone/tsd.h vendor/compiler-rt/dist/lib/scudo/standalone/tsd_exclusive.h vendor/compiler-rt/dist/lib/scudo/standalone/tsd_shared.h vendor/compiler-rt/dist/lib/scudo/standalone/vector.h vendor/compiler-rt/dist/lib/scudo/standalone/wrappers_c.cc vendor/compiler-rt/dist/lib/scudo/standalone/wrappers_c.h vendor/compiler-rt/dist/lib/scudo/standalone/wrappers_c.inc vendor/compiler-rt/dist/lib/scudo/standalone/wrappers_c_bionic.cc vendor/compiler-rt/dist/lib/scudo/standalone/wrappers_c_checks.h vendor/compiler-rt/dist/lib/scudo/standalone/wrappers_cpp.cc vendor/compiler-rt/dist/lib/tsan/benchmarks/func_entry_exit.cc vendor/compiler-rt/dist/lib/tsan/benchmarks/mop.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_dispatch_defs.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_libdispatch.cc Deleted: vendor/compiler-rt/dist/include/sanitizer/esan_interface.h vendor/compiler-rt/dist/lib/cfi/cfi.cc vendor/compiler-rt/dist/lib/esan/ vendor/compiler-rt/dist/lib/fuzzer/FuzzerShmem.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerShmemFuchsia.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerShmemPosix.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerShmemWindows.cpp vendor/compiler-rt/dist/lib/hwasan/hwasan.cc vendor/compiler-rt/dist/lib/hwasan/hwasan_allocator.cc vendor/compiler-rt/dist/lib/hwasan/hwasan_dynamic_shadow.cc vendor/compiler-rt/dist/lib/hwasan/hwasan_interceptors.cc vendor/compiler-rt/dist/lib/hwasan/hwasan_linux.cc vendor/compiler-rt/dist/lib/hwasan/hwasan_memintrinsics.cc vendor/compiler-rt/dist/lib/hwasan/hwasan_new_delete.cc vendor/compiler-rt/dist/lib/hwasan/hwasan_poisoning.cc vendor/compiler-rt/dist/lib/hwasan/hwasan_report.cc vendor/compiler-rt/dist/lib/hwasan/hwasan_thread.cc vendor/compiler-rt/dist/lib/hwasan/hwasan_thread_list.cc vendor/compiler-rt/dist/lib/sanitizer_common/sancov_begin.S vendor/compiler-rt/dist/lib/sanitizer_common/sancov_end.S vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_mips64.S vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_x86_64.S vendor/compiler-rt/dist/lib/tsan/rtl/tsan_libdispatch_mac.cc Modified: vendor/compiler-rt/dist/LICENSE.TXT vendor/compiler-rt/dist/include/sanitizer/allocator_interface.h 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/hwasan_interface.h vendor/compiler-rt/dist/include/sanitizer/linux_syscall_hooks.h vendor/compiler-rt/dist/include/sanitizer/lsan_interface.h vendor/compiler-rt/dist/include/sanitizer/msan_interface.h vendor/compiler-rt/dist/include/sanitizer/netbsd_syscall_hooks.h vendor/compiler-rt/dist/include/sanitizer/scudo_interface.h vendor/compiler-rt/dist/include/sanitizer/tsan_interface.h vendor/compiler-rt/dist/include/sanitizer/tsan_interface_atomic.h vendor/compiler-rt/dist/include/xray/xray_interface.h vendor/compiler-rt/dist/include/xray/xray_log_interface.h vendor/compiler-rt/dist/include/xray/xray_records.h vendor/compiler-rt/dist/lib/asan/asan_activation.cc vendor/compiler-rt/dist/lib/asan/asan_activation.h vendor/compiler-rt/dist/lib/asan/asan_activation_flags.inc 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_descriptions.cc vendor/compiler-rt/dist/lib/asan/asan_descriptions.h vendor/compiler-rt/dist/lib/asan/asan_errors.cc vendor/compiler-rt/dist/lib/asan/asan_errors.h vendor/compiler-rt/dist/lib/asan/asan_fake_stack.cc vendor/compiler-rt/dist/lib/asan/asan_fake_stack.h vendor/compiler-rt/dist/lib/asan/asan_flags.cc vendor/compiler-rt/dist/lib/asan/asan_flags.h vendor/compiler-rt/dist/lib/asan/asan_flags.inc vendor/compiler-rt/dist/lib/asan/asan_fuchsia.cc vendor/compiler-rt/dist/lib/asan/asan_globals.cc vendor/compiler-rt/dist/lib/asan/asan_globals_win.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_interceptors_memintrinsics.cc vendor/compiler-rt/dist/lib/asan/asan_interceptors_memintrinsics.h vendor/compiler-rt/dist/lib/asan/asan_interface.inc 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_local.h vendor/compiler-rt/dist/lib/asan/asan_malloc_mac.cc vendor/compiler-rt/dist/lib/asan/asan_malloc_win.cc vendor/compiler-rt/dist/lib/asan/asan_mapping.h vendor/compiler-rt/dist/lib/asan/asan_mapping_myriad.h vendor/compiler-rt/dist/lib/asan/asan_memory_profile.cc 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_poisoning.h vendor/compiler-rt/dist/lib/asan/asan_posix.cc vendor/compiler-rt/dist/lib/asan/asan_preinit.cc vendor/compiler-rt/dist/lib/asan/asan_premap_shadow.cc vendor/compiler-rt/dist/lib/asan/asan_premap_shadow.h 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_rtems.cc vendor/compiler-rt/dist/lib/asan/asan_rtl.cc vendor/compiler-rt/dist/lib/asan/asan_scariness_score.h vendor/compiler-rt/dist/lib/asan/asan_shadow_setup.cc vendor/compiler-rt/dist/lib/asan/asan_stack.cc vendor/compiler-rt/dist/lib/asan/asan_stack.h vendor/compiler-rt/dist/lib/asan/asan_stats.cc vendor/compiler-rt/dist/lib/asan/asan_stats.h vendor/compiler-rt/dist/lib/asan/asan_suppressions.cc vendor/compiler-rt/dist/lib/asan/asan_suppressions.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/asan_win_weak_interception.cc vendor/compiler-rt/dist/lib/builtins/aarch64/chkstk.S vendor/compiler-rt/dist/lib/builtins/absvdi2.c vendor/compiler-rt/dist/lib/builtins/absvsi2.c vendor/compiler-rt/dist/lib/builtins/absvti2.c vendor/compiler-rt/dist/lib/builtins/adddf3.c vendor/compiler-rt/dist/lib/builtins/addsf3.c vendor/compiler-rt/dist/lib/builtins/addtf3.c vendor/compiler-rt/dist/lib/builtins/addvdi3.c vendor/compiler-rt/dist/lib/builtins/addvsi3.c vendor/compiler-rt/dist/lib/builtins/addvti3.c vendor/compiler-rt/dist/lib/builtins/apple_versioning.c vendor/compiler-rt/dist/lib/builtins/arm/adddf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/addsf3.S vendor/compiler-rt/dist/lib/builtins/arm/addsf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cdcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cfcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c vendor/compiler-rt/dist/lib/builtins/arm/aeabi_dcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_div0.c vendor/compiler-rt/dist/lib/builtins/arm/aeabi_drsub.c vendor/compiler-rt/dist/lib/builtins/arm/aeabi_fcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_frsub.c vendor/compiler-rt/dist/lib/builtins/arm/aeabi_idivmod.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_ldivmod.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_memcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_memcpy.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_memmove.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_memset.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_uidivmod.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_uldivmod.S vendor/compiler-rt/dist/lib/builtins/arm/bswapdi2.S vendor/compiler-rt/dist/lib/builtins/arm/bswapsi2.S vendor/compiler-rt/dist/lib/builtins/arm/chkstk.S vendor/compiler-rt/dist/lib/builtins/arm/clzdi2.S vendor/compiler-rt/dist/lib/builtins/arm/clzsi2.S vendor/compiler-rt/dist/lib/builtins/arm/comparesf2.S vendor/compiler-rt/dist/lib/builtins/arm/divdf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/divmodsi4.S vendor/compiler-rt/dist/lib/builtins/arm/divsf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/divsi3.S vendor/compiler-rt/dist/lib/builtins/arm/eqdf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/eqsf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/extendsfdf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/fixdfsivfp.S vendor/compiler-rt/dist/lib/builtins/arm/fixsfsivfp.S vendor/compiler-rt/dist/lib/builtins/arm/fixunsdfsivfp.S vendor/compiler-rt/dist/lib/builtins/arm/fixunssfsivfp.S vendor/compiler-rt/dist/lib/builtins/arm/floatsidfvfp.S vendor/compiler-rt/dist/lib/builtins/arm/floatsisfvfp.S vendor/compiler-rt/dist/lib/builtins/arm/floatunssidfvfp.S vendor/compiler-rt/dist/lib/builtins/arm/floatunssisfvfp.S vendor/compiler-rt/dist/lib/builtins/arm/gedf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/gesf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/gtdf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/gtsf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/ledf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/lesf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/ltdf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/ltsf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/modsi3.S vendor/compiler-rt/dist/lib/builtins/arm/muldf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/mulsf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/nedf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/negdf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/negsf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/nesf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/restore_vfp_d8_d15_regs.S vendor/compiler-rt/dist/lib/builtins/arm/save_vfp_d8_d15_regs.S vendor/compiler-rt/dist/lib/builtins/arm/softfloat-alias.list vendor/compiler-rt/dist/lib/builtins/arm/subdf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/subsf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/switch16.S vendor/compiler-rt/dist/lib/builtins/arm/switch32.S vendor/compiler-rt/dist/lib/builtins/arm/switch8.S vendor/compiler-rt/dist/lib/builtins/arm/switchu8.S vendor/compiler-rt/dist/lib/builtins/arm/sync-ops.h vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_add_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_add_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_and_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_and_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_max_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_max_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_min_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_min_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_nand_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_nand_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_or_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_or_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_sub_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_sub_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_umax_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_umax_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_umin_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_umin_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_xor_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_xor_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_synchronize.S vendor/compiler-rt/dist/lib/builtins/arm/truncdfsf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/udivmodsi4.S vendor/compiler-rt/dist/lib/builtins/arm/udivsi3.S vendor/compiler-rt/dist/lib/builtins/arm/umodsi3.S vendor/compiler-rt/dist/lib/builtins/arm/unorddf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/unordsf2vfp.S vendor/compiler-rt/dist/lib/builtins/ashldi3.c vendor/compiler-rt/dist/lib/builtins/ashlti3.c vendor/compiler-rt/dist/lib/builtins/ashrdi3.c vendor/compiler-rt/dist/lib/builtins/ashrti3.c 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/bswapdi2.c vendor/compiler-rt/dist/lib/builtins/bswapsi2.c vendor/compiler-rt/dist/lib/builtins/clear_cache.c vendor/compiler-rt/dist/lib/builtins/clzdi2.c vendor/compiler-rt/dist/lib/builtins/clzsi2.c vendor/compiler-rt/dist/lib/builtins/clzti2.c vendor/compiler-rt/dist/lib/builtins/cmpdi2.c vendor/compiler-rt/dist/lib/builtins/cmpti2.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/cpu_model.c vendor/compiler-rt/dist/lib/builtins/ctzdi2.c vendor/compiler-rt/dist/lib/builtins/ctzsi2.c vendor/compiler-rt/dist/lib/builtins/ctzti2.c vendor/compiler-rt/dist/lib/builtins/divdc3.c vendor/compiler-rt/dist/lib/builtins/divdf3.c vendor/compiler-rt/dist/lib/builtins/divdi3.c vendor/compiler-rt/dist/lib/builtins/divmoddi4.c vendor/compiler-rt/dist/lib/builtins/divmodsi4.c vendor/compiler-rt/dist/lib/builtins/divsc3.c vendor/compiler-rt/dist/lib/builtins/divsf3.c vendor/compiler-rt/dist/lib/builtins/divsi3.c vendor/compiler-rt/dist/lib/builtins/divtc3.c vendor/compiler-rt/dist/lib/builtins/divtf3.c vendor/compiler-rt/dist/lib/builtins/divti3.c vendor/compiler-rt/dist/lib/builtins/divxc3.c vendor/compiler-rt/dist/lib/builtins/emutls.c vendor/compiler-rt/dist/lib/builtins/enable_execute_stack.c vendor/compiler-rt/dist/lib/builtins/eprintf.c vendor/compiler-rt/dist/lib/builtins/extenddftf2.c vendor/compiler-rt/dist/lib/builtins/extendhfsf2.c vendor/compiler-rt/dist/lib/builtins/extendsfdf2.c vendor/compiler-rt/dist/lib/builtins/extendsftf2.c vendor/compiler-rt/dist/lib/builtins/ffsdi2.c vendor/compiler-rt/dist/lib/builtins/ffssi2.c vendor/compiler-rt/dist/lib/builtins/ffsti2.c vendor/compiler-rt/dist/lib/builtins/fixdfdi.c vendor/compiler-rt/dist/lib/builtins/fixdfsi.c vendor/compiler-rt/dist/lib/builtins/fixdfti.c vendor/compiler-rt/dist/lib/builtins/fixsfdi.c vendor/compiler-rt/dist/lib/builtins/fixsfsi.c vendor/compiler-rt/dist/lib/builtins/fixsfti.c vendor/compiler-rt/dist/lib/builtins/fixtfdi.c vendor/compiler-rt/dist/lib/builtins/fixtfsi.c vendor/compiler-rt/dist/lib/builtins/fixtfti.c vendor/compiler-rt/dist/lib/builtins/fixunsdfdi.c vendor/compiler-rt/dist/lib/builtins/fixunsdfsi.c vendor/compiler-rt/dist/lib/builtins/fixunsdfti.c vendor/compiler-rt/dist/lib/builtins/fixunssfdi.c vendor/compiler-rt/dist/lib/builtins/fixunssfsi.c vendor/compiler-rt/dist/lib/builtins/fixunssfti.c vendor/compiler-rt/dist/lib/builtins/fixunstfdi.c vendor/compiler-rt/dist/lib/builtins/fixunstfsi.c vendor/compiler-rt/dist/lib/builtins/fixunstfti.c vendor/compiler-rt/dist/lib/builtins/fixunsxfdi.c vendor/compiler-rt/dist/lib/builtins/fixunsxfsi.c vendor/compiler-rt/dist/lib/builtins/fixunsxfti.c vendor/compiler-rt/dist/lib/builtins/fixxfdi.c vendor/compiler-rt/dist/lib/builtins/fixxfti.c vendor/compiler-rt/dist/lib/builtins/floatdidf.c vendor/compiler-rt/dist/lib/builtins/floatdisf.c vendor/compiler-rt/dist/lib/builtins/floatditf.c vendor/compiler-rt/dist/lib/builtins/floatdixf.c vendor/compiler-rt/dist/lib/builtins/floatsidf.c vendor/compiler-rt/dist/lib/builtins/floatsisf.c vendor/compiler-rt/dist/lib/builtins/floatsitf.c vendor/compiler-rt/dist/lib/builtins/floattidf.c vendor/compiler-rt/dist/lib/builtins/floattisf.c vendor/compiler-rt/dist/lib/builtins/floattitf.c vendor/compiler-rt/dist/lib/builtins/floattixf.c vendor/compiler-rt/dist/lib/builtins/floatundidf.c vendor/compiler-rt/dist/lib/builtins/floatundisf.c vendor/compiler-rt/dist/lib/builtins/floatunditf.c vendor/compiler-rt/dist/lib/builtins/floatundixf.c vendor/compiler-rt/dist/lib/builtins/floatunsidf.c vendor/compiler-rt/dist/lib/builtins/floatunsisf.c vendor/compiler-rt/dist/lib/builtins/floatunsitf.c vendor/compiler-rt/dist/lib/builtins/floatuntidf.c vendor/compiler-rt/dist/lib/builtins/floatuntisf.c vendor/compiler-rt/dist/lib/builtins/floatuntitf.c vendor/compiler-rt/dist/lib/builtins/floatuntixf.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/hexagon/common_entry_exit_abi1.S vendor/compiler-rt/dist/lib/builtins/hexagon/common_entry_exit_abi2.S vendor/compiler-rt/dist/lib/builtins/hexagon/common_entry_exit_legacy.S vendor/compiler-rt/dist/lib/builtins/hexagon/dfaddsub.S vendor/compiler-rt/dist/lib/builtins/hexagon/dfdiv.S vendor/compiler-rt/dist/lib/builtins/hexagon/dffma.S vendor/compiler-rt/dist/lib/builtins/hexagon/dfminmax.S vendor/compiler-rt/dist/lib/builtins/hexagon/dfmul.S vendor/compiler-rt/dist/lib/builtins/hexagon/dfsqrt.S vendor/compiler-rt/dist/lib/builtins/hexagon/divdi3.S vendor/compiler-rt/dist/lib/builtins/hexagon/divsi3.S vendor/compiler-rt/dist/lib/builtins/hexagon/fabs_opt.S vendor/compiler-rt/dist/lib/builtins/hexagon/fastmath2_dlib_asm.S vendor/compiler-rt/dist/lib/builtins/hexagon/fastmath2_ldlib_asm.S vendor/compiler-rt/dist/lib/builtins/hexagon/fastmath_dlib_asm.S vendor/compiler-rt/dist/lib/builtins/hexagon/fma_opt.S vendor/compiler-rt/dist/lib/builtins/hexagon/fmax_opt.S vendor/compiler-rt/dist/lib/builtins/hexagon/fmin_opt.S vendor/compiler-rt/dist/lib/builtins/hexagon/memcpy_forward_vp4cp4n2.S vendor/compiler-rt/dist/lib/builtins/hexagon/memcpy_likely_aligned.S vendor/compiler-rt/dist/lib/builtins/hexagon/moddi3.S vendor/compiler-rt/dist/lib/builtins/hexagon/modsi3.S vendor/compiler-rt/dist/lib/builtins/hexagon/sfdiv_opt.S vendor/compiler-rt/dist/lib/builtins/hexagon/sfsqrt_opt.S vendor/compiler-rt/dist/lib/builtins/hexagon/udivdi3.S vendor/compiler-rt/dist/lib/builtins/hexagon/udivmoddi4.S vendor/compiler-rt/dist/lib/builtins/hexagon/udivmodsi4.S vendor/compiler-rt/dist/lib/builtins/hexagon/udivsi3.S vendor/compiler-rt/dist/lib/builtins/hexagon/umoddi3.S vendor/compiler-rt/dist/lib/builtins/hexagon/umodsi3.S vendor/compiler-rt/dist/lib/builtins/i386/ashldi3.S vendor/compiler-rt/dist/lib/builtins/i386/ashrdi3.S vendor/compiler-rt/dist/lib/builtins/i386/chkstk.S vendor/compiler-rt/dist/lib/builtins/i386/chkstk2.S vendor/compiler-rt/dist/lib/builtins/i386/divdi3.S vendor/compiler-rt/dist/lib/builtins/i386/floatdidf.S vendor/compiler-rt/dist/lib/builtins/i386/floatdisf.S vendor/compiler-rt/dist/lib/builtins/i386/floatdixf.S vendor/compiler-rt/dist/lib/builtins/i386/floatundidf.S vendor/compiler-rt/dist/lib/builtins/i386/floatundisf.S vendor/compiler-rt/dist/lib/builtins/i386/floatundixf.S vendor/compiler-rt/dist/lib/builtins/i386/lshrdi3.S vendor/compiler-rt/dist/lib/builtins/i386/moddi3.S vendor/compiler-rt/dist/lib/builtins/i386/muldi3.S vendor/compiler-rt/dist/lib/builtins/i386/udivdi3.S vendor/compiler-rt/dist/lib/builtins/i386/umoddi3.S vendor/compiler-rt/dist/lib/builtins/int_endianness.h 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/lshrdi3.c vendor/compiler-rt/dist/lib/builtins/lshrti3.c vendor/compiler-rt/dist/lib/builtins/mingw_fixfloat.c vendor/compiler-rt/dist/lib/builtins/moddi3.c vendor/compiler-rt/dist/lib/builtins/modsi3.c vendor/compiler-rt/dist/lib/builtins/modti3.c vendor/compiler-rt/dist/lib/builtins/muldc3.c vendor/compiler-rt/dist/lib/builtins/muldf3.c vendor/compiler-rt/dist/lib/builtins/muldi3.c vendor/compiler-rt/dist/lib/builtins/mulodi4.c vendor/compiler-rt/dist/lib/builtins/mulosi4.c vendor/compiler-rt/dist/lib/builtins/muloti4.c vendor/compiler-rt/dist/lib/builtins/mulsc3.c vendor/compiler-rt/dist/lib/builtins/mulsf3.c vendor/compiler-rt/dist/lib/builtins/multc3.c vendor/compiler-rt/dist/lib/builtins/multf3.c vendor/compiler-rt/dist/lib/builtins/multi3.c vendor/compiler-rt/dist/lib/builtins/mulvdi3.c vendor/compiler-rt/dist/lib/builtins/mulvsi3.c vendor/compiler-rt/dist/lib/builtins/mulvti3.c vendor/compiler-rt/dist/lib/builtins/mulxc3.c vendor/compiler-rt/dist/lib/builtins/negdf2.c vendor/compiler-rt/dist/lib/builtins/negdi2.c vendor/compiler-rt/dist/lib/builtins/negsf2.c vendor/compiler-rt/dist/lib/builtins/negti2.c vendor/compiler-rt/dist/lib/builtins/negvdi2.c vendor/compiler-rt/dist/lib/builtins/negvsi2.c vendor/compiler-rt/dist/lib/builtins/negvti2.c vendor/compiler-rt/dist/lib/builtins/os_version_check.c vendor/compiler-rt/dist/lib/builtins/paritydi2.c vendor/compiler-rt/dist/lib/builtins/paritysi2.c vendor/compiler-rt/dist/lib/builtins/parityti2.c vendor/compiler-rt/dist/lib/builtins/popcountdi2.c vendor/compiler-rt/dist/lib/builtins/popcountsi2.c vendor/compiler-rt/dist/lib/builtins/popcountti2.c vendor/compiler-rt/dist/lib/builtins/powidf2.c vendor/compiler-rt/dist/lib/builtins/powisf2.c vendor/compiler-rt/dist/lib/builtins/powitf2.c vendor/compiler-rt/dist/lib/builtins/powixf2.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/fixtfdi.c vendor/compiler-rt/dist/lib/builtins/ppc/fixunstfdi.c vendor/compiler-rt/dist/lib/builtins/ppc/fixunstfti.c vendor/compiler-rt/dist/lib/builtins/ppc/floatditf.c vendor/compiler-rt/dist/lib/builtins/ppc/floattitf.c vendor/compiler-rt/dist/lib/builtins/ppc/floatunditf.c vendor/compiler-rt/dist/lib/builtins/ppc/gcc_qadd.c vendor/compiler-rt/dist/lib/builtins/ppc/gcc_qdiv.c vendor/compiler-rt/dist/lib/builtins/ppc/gcc_qmul.c vendor/compiler-rt/dist/lib/builtins/ppc/gcc_qsub.c vendor/compiler-rt/dist/lib/builtins/ppc/multc3.c vendor/compiler-rt/dist/lib/builtins/ppc/restFP.S vendor/compiler-rt/dist/lib/builtins/ppc/saveFP.S vendor/compiler-rt/dist/lib/builtins/riscv/mulsi3.S vendor/compiler-rt/dist/lib/builtins/subdf3.c vendor/compiler-rt/dist/lib/builtins/subsf3.c vendor/compiler-rt/dist/lib/builtins/subtf3.c vendor/compiler-rt/dist/lib/builtins/subvdi3.c vendor/compiler-rt/dist/lib/builtins/subvsi3.c vendor/compiler-rt/dist/lib/builtins/subvti3.c vendor/compiler-rt/dist/lib/builtins/trampoline_setup.c vendor/compiler-rt/dist/lib/builtins/truncdfhf2.c vendor/compiler-rt/dist/lib/builtins/truncdfsf2.c vendor/compiler-rt/dist/lib/builtins/truncsfhf2.c vendor/compiler-rt/dist/lib/builtins/trunctfdf2.c vendor/compiler-rt/dist/lib/builtins/trunctfsf2.c vendor/compiler-rt/dist/lib/builtins/ucmpdi2.c vendor/compiler-rt/dist/lib/builtins/ucmpti2.c vendor/compiler-rt/dist/lib/builtins/udivdi3.c vendor/compiler-rt/dist/lib/builtins/udivmoddi4.c vendor/compiler-rt/dist/lib/builtins/udivmodsi4.c vendor/compiler-rt/dist/lib/builtins/udivmodti4.c vendor/compiler-rt/dist/lib/builtins/udivsi3.c vendor/compiler-rt/dist/lib/builtins/udivti3.c vendor/compiler-rt/dist/lib/builtins/umoddi3.c vendor/compiler-rt/dist/lib/builtins/umodsi3.c vendor/compiler-rt/dist/lib/builtins/umodti3.c vendor/compiler-rt/dist/lib/builtins/unwind-ehabi-helpers.h vendor/compiler-rt/dist/lib/builtins/x86_64/chkstk.S vendor/compiler-rt/dist/lib/builtins/x86_64/chkstk2.S vendor/compiler-rt/dist/lib/builtins/x86_64/floatdidf.c vendor/compiler-rt/dist/lib/builtins/x86_64/floatdisf.c vendor/compiler-rt/dist/lib/builtins/x86_64/floatdixf.c vendor/compiler-rt/dist/lib/builtins/x86_64/floatundidf.S vendor/compiler-rt/dist/lib/builtins/x86_64/floatundisf.S vendor/compiler-rt/dist/lib/builtins/x86_64/floatundixf.S 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/dfsan_flags.inc vendor/compiler-rt/dist/lib/dfsan/dfsan_interceptors.cc vendor/compiler-rt/dist/lib/dfsan/dfsan_platform.h vendor/compiler-rt/dist/lib/dfsan/done_abilist.txt vendor/compiler-rt/dist/lib/fuzzer/FuzzerBuiltins.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerBuiltinsMsvc.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerCommand.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerCorpus.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerCrossOver.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerDataFlowTrace.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerDataFlowTrace.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerDefs.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerDictionary.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerDriver.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerExtFunctions.def vendor/compiler-rt/dist/lib/fuzzer/FuzzerExtFunctions.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerExtFunctionsDlsym.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerExtFunctionsWeak.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerExtFunctionsWindows.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerExtraCounters.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerFlags.def vendor/compiler-rt/dist/lib/fuzzer/FuzzerIO.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerIO.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerIOPosix.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerIOWindows.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerInterface.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerInternal.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerLoop.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerMain.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerMerge.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerMerge.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerMutate.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerMutate.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerOptions.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerRandom.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerSHA1.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerSHA1.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerTracePC.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerTracePC.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerUtil.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerUtil.h vendor/compiler-rt/dist/lib/fuzzer/FuzzerUtilDarwin.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerUtilFuchsia.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerUtilLinux.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerUtilPosix.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerUtilWindows.cpp vendor/compiler-rt/dist/lib/fuzzer/FuzzerValueBitMap.h vendor/compiler-rt/dist/lib/hwasan/hwasan.h vendor/compiler-rt/dist/lib/hwasan/hwasan_allocator.h vendor/compiler-rt/dist/lib/hwasan/hwasan_checks.h vendor/compiler-rt/dist/lib/hwasan/hwasan_dynamic_shadow.h vendor/compiler-rt/dist/lib/hwasan/hwasan_flags.h vendor/compiler-rt/dist/lib/hwasan/hwasan_flags.inc vendor/compiler-rt/dist/lib/hwasan/hwasan_interface_internal.h vendor/compiler-rt/dist/lib/hwasan/hwasan_mapping.h vendor/compiler-rt/dist/lib/hwasan/hwasan_poisoning.h vendor/compiler-rt/dist/lib/hwasan/hwasan_report.h vendor/compiler-rt/dist/lib/hwasan/hwasan_thread.h vendor/compiler-rt/dist/lib/hwasan/hwasan_thread_list.h vendor/compiler-rt/dist/lib/interception/interception.h vendor/compiler-rt/dist/lib/interception/interception_linux.cc vendor/compiler-rt/dist/lib/interception/interception_linux.h vendor/compiler-rt/dist/lib/interception/interception_mac.cc vendor/compiler-rt/dist/lib/interception/interception_mac.h vendor/compiler-rt/dist/lib/interception/interception_type_test.cc vendor/compiler-rt/dist/lib/interception/interception_win.cc vendor/compiler-rt/dist/lib/interception/interception_win.h vendor/compiler-rt/dist/lib/lsan/lsan.cc vendor/compiler-rt/dist/lib/lsan/lsan.h vendor/compiler-rt/dist/lib/lsan/lsan_allocator.cc vendor/compiler-rt/dist/lib/lsan/lsan_allocator.h 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_common_mac.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_linux.cc vendor/compiler-rt/dist/lib/lsan/lsan_mac.cc vendor/compiler-rt/dist/lib/lsan/lsan_malloc_mac.cc vendor/compiler-rt/dist/lib/lsan/lsan_preinit.cc vendor/compiler-rt/dist/lib/lsan/lsan_thread.cc vendor/compiler-rt/dist/lib/lsan/lsan_thread.h 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_allocator.h vendor/compiler-rt/dist/lib/msan/msan_chained_origin_depot.cc vendor/compiler-rt/dist/lib/msan/msan_chained_origin_depot.h vendor/compiler-rt/dist/lib/msan/msan_flags.h 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_origin.h vendor/compiler-rt/dist/lib/msan/msan_poisoning.cc vendor/compiler-rt/dist/lib/msan/msan_poisoning.h vendor/compiler-rt/dist/lib/msan/msan_report.cc vendor/compiler-rt/dist/lib/msan/msan_report.h vendor/compiler-rt/dist/lib/msan/msan_thread.h vendor/compiler-rt/dist/lib/profile/GCDAProfiling.c vendor/compiler-rt/dist/lib/profile/InstrProfData.inc 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/InstrProfilingMerge.c vendor/compiler-rt/dist/lib/profile/InstrProfilingMergeFile.c vendor/compiler-rt/dist/lib/profile/InstrProfilingNameVar.c vendor/compiler-rt/dist/lib/profile/InstrProfilingPlatformDarwin.c vendor/compiler-rt/dist/lib/profile/InstrProfilingPlatformFuchsia.c vendor/compiler-rt/dist/lib/profile/InstrProfilingPlatformLinux.c vendor/compiler-rt/dist/lib/profile/InstrProfilingPlatformOther.c vendor/compiler-rt/dist/lib/profile/InstrProfilingPort.h vendor/compiler-rt/dist/lib/profile/InstrProfilingRuntime.cc vendor/compiler-rt/dist/lib/profile/InstrProfilingUtil.c vendor/compiler-rt/dist/lib/profile/InstrProfilingUtil.h vendor/compiler-rt/dist/lib/profile/InstrProfilingValue.c vendor/compiler-rt/dist/lib/profile/InstrProfilingWriter.c vendor/compiler-rt/dist/lib/profile/WindowsMMap.h vendor/compiler-rt/dist/lib/safestack/safestack.cc vendor/compiler-rt/dist/lib/sanitizer_common/sancov_flags.cc vendor/compiler-rt/dist/lib/sanitizer_common/sancov_flags.h vendor/compiler-rt/dist/lib/sanitizer_common/sancov_flags.inc 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_bytemap.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_checks.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_checks.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_combined.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_interface.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_internal.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_local_cache.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_primary32.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_primary64.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_report.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_report.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_secondary.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_size_class_map.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_stats.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_atomic_clang.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_atomic_clang_mips.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_atomic_clang_other.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_atomic_clang_x86.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_atomic_msvc.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_bitvector.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_bvgraph.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_interface.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interface_posix.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_nolibc.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_syscalls.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_fuchsia.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_interface.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_win_sections.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_dbghelp.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_deadlock_detector.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_deadlock_detector1.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_deadlock_detector2.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_errno.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_errno.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_errno_codes.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_file.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_file.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_freebsd.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_fuchsia.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_fuchsia.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_getauxval.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.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_libignore.h 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_linux_s390.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_list.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_local_address_space_view.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_mac_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_malloc_mac.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_mutex.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_netbsd.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_openbsd.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_persistent_allocator.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_persistent_allocator.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_placement_new.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_freebsd.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_linux.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_openbsd.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_openbsd.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_platform_limits_solaris.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_solaris.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.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_procmaps_bsd.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_procmaps_solaris.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_quarantine.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_report_decorator.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_ring_buffer.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_rtems.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_rtems.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_signal_interceptors.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_solaris.cc 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_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stacktrace_printer.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stacktrace_printer.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stacktrace_sparc.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld_mac.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.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_internal.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc 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_mac.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_markup.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_report.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_rtems.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_win.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_syscall_generic.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_syscall_linux_arm.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_syscall_linux_x86_64.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_termination.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_thread_registry.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_tls_get_addr.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_type_traits.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_type_traits.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_unwind_win.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_vector.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_defs.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_dll_thunk.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_dll_thunk.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_weak_interception.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_weak_interception.h vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cc vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cc vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt vendor/compiler-rt/dist/lib/scudo/scudo_allocator.cpp vendor/compiler-rt/dist/lib/scudo/scudo_allocator.h vendor/compiler-rt/dist/lib/scudo/scudo_allocator_combined.h vendor/compiler-rt/dist/lib/scudo/scudo_allocator_secondary.h vendor/compiler-rt/dist/lib/scudo/scudo_crc32.cpp vendor/compiler-rt/dist/lib/scudo/scudo_crc32.h vendor/compiler-rt/dist/lib/scudo/scudo_errors.cpp vendor/compiler-rt/dist/lib/scudo/scudo_errors.h vendor/compiler-rt/dist/lib/scudo/scudo_flags.cpp vendor/compiler-rt/dist/lib/scudo/scudo_flags.h vendor/compiler-rt/dist/lib/scudo/scudo_flags.inc vendor/compiler-rt/dist/lib/scudo/scudo_interface_internal.h vendor/compiler-rt/dist/lib/scudo/scudo_malloc.cpp vendor/compiler-rt/dist/lib/scudo/scudo_new_delete.cpp vendor/compiler-rt/dist/lib/scudo/scudo_platform.h vendor/compiler-rt/dist/lib/scudo/scudo_termination.cpp vendor/compiler-rt/dist/lib/scudo/scudo_tsd.h vendor/compiler-rt/dist/lib/scudo/scudo_tsd_exclusive.cpp vendor/compiler-rt/dist/lib/scudo/scudo_tsd_exclusive.inc vendor/compiler-rt/dist/lib/scudo/scudo_tsd_shared.cpp vendor/compiler-rt/dist/lib/scudo/scudo_tsd_shared.inc vendor/compiler-rt/dist/lib/scudo/scudo_utils.cpp vendor/compiler-rt/dist/lib/scudo/scudo_utils.h vendor/compiler-rt/dist/lib/stats/stats.cc vendor/compiler-rt/dist/lib/stats/stats.h vendor/compiler-rt/dist/lib/stats/stats_client.cc vendor/compiler-rt/dist/lib/tsan/dd/dd_interceptors.cc vendor/compiler-rt/dist/lib/tsan/dd/dd_rtl.cc vendor/compiler-rt/dist/lib/tsan/dd/dd_rtl.h vendor/compiler-rt/dist/lib/tsan/go/test.c vendor/compiler-rt/dist/lib/tsan/go/tsan_go.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_clock.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_clock.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_debugging.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_external.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_fd.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_fd.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.inc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_ignoreset.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_ignoreset.h 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_interceptors_mac.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_ann.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_ann.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_atomic.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_inl.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_java.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_java.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_malloc_mac.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_md5.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_mutexset.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_mutexset.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_posix.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_platform_windows.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_preinit.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_report.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_report.h 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_aarch64.S 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_proc.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_stack_trace.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_stack_trace.h 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_suppressions.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_symbolize.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_symbolize.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_sync.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_sync.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_trace.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_update_shadow_word_inl.h vendor/compiler-rt/dist/lib/ubsan/ubsan_checks.inc 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_diag_standalone.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_flags.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_flags.h 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/lib/ubsan/ubsan_handlers_cxx.h vendor/compiler-rt/dist/lib/ubsan/ubsan_init.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_init.h vendor/compiler-rt/dist/lib/ubsan/ubsan_init_standalone.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_init_standalone_preinit.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_interface.inc vendor/compiler-rt/dist/lib/ubsan/ubsan_monitor.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_monitor.h vendor/compiler-rt/dist/lib/ubsan/ubsan_platform.h vendor/compiler-rt/dist/lib/ubsan/ubsan_signals_standalone.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_signals_standalone.h vendor/compiler-rt/dist/lib/ubsan/ubsan_type_hash.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_type_hash.h vendor/compiler-rt/dist/lib/ubsan/ubsan_type_hash_itanium.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_type_hash_win.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_value.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_value.h vendor/compiler-rt/dist/lib/ubsan/ubsan_win_dll_thunk.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_win_weak_interception.cc vendor/compiler-rt/dist/lib/xray/xray_AArch64.cc vendor/compiler-rt/dist/lib/xray/xray_allocator.h vendor/compiler-rt/dist/lib/xray/xray_arm.cc vendor/compiler-rt/dist/lib/xray/xray_basic_flags.cc vendor/compiler-rt/dist/lib/xray/xray_basic_flags.h vendor/compiler-rt/dist/lib/xray/xray_basic_flags.inc vendor/compiler-rt/dist/lib/xray/xray_basic_logging.cc vendor/compiler-rt/dist/lib/xray/xray_basic_logging.h vendor/compiler-rt/dist/lib/xray/xray_buffer_queue.cc vendor/compiler-rt/dist/lib/xray/xray_buffer_queue.h vendor/compiler-rt/dist/lib/xray/xray_defs.h vendor/compiler-rt/dist/lib/xray/xray_fdr_controller.h vendor/compiler-rt/dist/lib/xray/xray_fdr_flags.cc vendor/compiler-rt/dist/lib/xray/xray_fdr_flags.h vendor/compiler-rt/dist/lib/xray/xray_fdr_flags.inc vendor/compiler-rt/dist/lib/xray/xray_fdr_log_records.h vendor/compiler-rt/dist/lib/xray/xray_fdr_log_writer.h vendor/compiler-rt/dist/lib/xray/xray_fdr_logging.cc vendor/compiler-rt/dist/lib/xray/xray_fdr_logging.h vendor/compiler-rt/dist/lib/xray/xray_flags.cc vendor/compiler-rt/dist/lib/xray/xray_flags.h vendor/compiler-rt/dist/lib/xray/xray_flags.inc vendor/compiler-rt/dist/lib/xray/xray_function_call_trie.h vendor/compiler-rt/dist/lib/xray/xray_init.cc vendor/compiler-rt/dist/lib/xray/xray_interface.cc vendor/compiler-rt/dist/lib/xray/xray_interface_internal.h vendor/compiler-rt/dist/lib/xray/xray_log_interface.cc vendor/compiler-rt/dist/lib/xray/xray_mips.cc vendor/compiler-rt/dist/lib/xray/xray_mips64.cc vendor/compiler-rt/dist/lib/xray/xray_powerpc64.cc vendor/compiler-rt/dist/lib/xray/xray_powerpc64.inc vendor/compiler-rt/dist/lib/xray/xray_profile_collector.cc vendor/compiler-rt/dist/lib/xray/xray_profile_collector.h vendor/compiler-rt/dist/lib/xray/xray_profiling.cc vendor/compiler-rt/dist/lib/xray/xray_profiling_flags.cc vendor/compiler-rt/dist/lib/xray/xray_profiling_flags.h vendor/compiler-rt/dist/lib/xray/xray_profiling_flags.inc vendor/compiler-rt/dist/lib/xray/xray_recursion_guard.h vendor/compiler-rt/dist/lib/xray/xray_segmented_array.h vendor/compiler-rt/dist/lib/xray/xray_trampoline_mips.S vendor/compiler-rt/dist/lib/xray/xray_trampoline_mips64.S vendor/compiler-rt/dist/lib/xray/xray_trampoline_x86_64.S vendor/compiler-rt/dist/lib/xray/xray_tsc.h vendor/compiler-rt/dist/lib/xray/xray_utils.cc vendor/compiler-rt/dist/lib/xray/xray_utils.h vendor/compiler-rt/dist/lib/xray/xray_x86_64.inc Modified: vendor/compiler-rt/dist/LICENSE.TXT ============================================================================== --- vendor/compiler-rt/dist/LICENSE.TXT Tue Aug 20 20:50:57 2019 (r351281) +++ vendor/compiler-rt/dist/LICENSE.TXT Tue Aug 20 20:51:06 2019 (r351282) @@ -1,7 +1,242 @@ ============================================================================== -compiler_rt License +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: ============================================================================== + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +============================================================================== +Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): +============================================================================== + The compiler_rt library is dual licensed under both the University of Illinois "BSD-Like" license and the MIT license. As a user of this code you may choose to use it under either license. As a contributor, you agree to allow your code @@ -74,18 +309,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -============================================================================== -Copyrights and Licenses for Third Party Software Distributed with LLVM: -============================================================================== -The LLVM software contains code written by third parties. Such software will -have its own individual LICENSE.TXT file in the directory in which it appears. -This file will describe the copyrights, license, and restrictions which apply -to that code. - -The disclaimer of warranty in the University of Illinois Open Source License -applies to all code in the LLVM Distribution, and nothing in any of the -other licenses gives permission to use the names of the LLVM Team or the -University of Illinois to endorse or promote products derived from this -Software. - Modified: vendor/compiler-rt/dist/include/sanitizer/allocator_interface.h ============================================================================== --- vendor/compiler-rt/dist/include/sanitizer/allocator_interface.h Tue Aug 20 20:50:57 2019 (r351281) +++ vendor/compiler-rt/dist/include/sanitizer/allocator_interface.h Tue Aug 20 20:51:06 2019 (r351282) @@ -1,9 +1,8 @@ //===-- allocator_interface.h ---------------------------------------------===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // Modified: vendor/compiler-rt/dist/include/sanitizer/asan_interface.h ============================================================================== --- vendor/compiler-rt/dist/include/sanitizer/asan_interface.h Tue Aug 20 20:50:57 2019 (r351281) +++ vendor/compiler-rt/dist/include/sanitizer/asan_interface.h Tue Aug 20 20:51:06 2019 (r351282) @@ -1,13 +1,12 @@ //===-- sanitizer/asan_interface.h ------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// // -// This file is a part of AddressSanitizer. +// This file is a part of AddressSanitizer (ASan). // // Public interface header. //===----------------------------------------------------------------------===// @@ -19,28 +18,54 @@ #ifdef __cplusplus extern "C" { #endif - // Marks memory region [addr, addr+size) as unaddressable. - // This memory must be previously allocated by the user program. Accessing - // addresses in this region from instrumented code is forbidden until - // this region is unpoisoned. This function is not guaranteed to poison - // the whole region - it may poison only subregion of [addr, addr+size) due - // to ASan alignment restrictions. - // Method is NOT thread-safe in the sense that no two threads can - // (un)poison memory in the same memory region simultaneously. - void __asan_poison_memory_region(void const volatile *addr, size_t size); - // Marks memory region [addr, addr+size) as addressable. - // This memory must be previously allocated by the user program. Accessing - // addresses in this region is allowed until this region is poisoned again. - // This function may unpoison a superregion of [addr, addr+size) due to - // ASan alignment restrictions. - // Method is NOT thread-safe in the sense that no two threads can - // (un)poison memory in the same memory region simultaneously. - void __asan_unpoison_memory_region(void const volatile *addr, size_t size); +/// Marks a memory region ([addr, addr+size)) as unaddressable. +/// +/// This memory must be previously allocated by your program. Instrumented +/// code is forbidden from accessing addresses in this region until it is +/// unpoisoned. This function is not guaranteed to poison the entire region - +/// it could poison only a subregion of [addr, addr+size) due to ASan +/// alignment restrictions. +/// +/// \note This function is not thread-safe because no two threads can poison or +/// unpoison memory in the same memory region simultaneously. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. +void __asan_poison_memory_region(void const volatile *addr, size_t size); -// User code should use macros instead of functions. +/// Marks a memory region ([addr, addr+size)) as addressable. +/// +/// This memory must be previously allocated by your program. Accessing +/// addresses in this region is allowed until this region is poisoned again. +/// This function could unpoison a super-region of [addr, addr+size) due +/// to ASan alignment restrictions. +/// +/// \note This function is not thread-safe because no two threads can +/// poison or unpoison memory in the same memory region simultaneously. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. +void __asan_unpoison_memory_region(void const volatile *addr, size_t size); + +// Macros provided for convenience. #if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) +/// Marks a memory region as unaddressable. +/// +/// \note Macro provided for convenience; defined as a no-op if ASan is not +/// enabled. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. #define ASAN_POISON_MEMORY_REGION(addr, size) \ __asan_poison_memory_region((addr), (size)) + +/// Marks a memory region as addressable. +/// +/// \note Macro provided for convenience; defined as a no-op if ASan is not +/// enabled. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. #define ASAN_UNPOISON_MEMORY_REGION(addr, size) \ __asan_unpoison_memory_region((addr), (size)) #else @@ -50,103 +75,245 @@ extern "C" { ((void)(addr), (void)(size)) #endif - // Returns 1 if addr is poisoned (i.e. 1-byte read/write access to this - // address will result in error report from AddressSanitizer). - // Otherwise returns 0. - int __asan_address_is_poisoned(void const volatile *addr); +/// Checks if an address is poisoned. +/// +/// Returns 1 if addr is poisoned (that is, 1-byte read/write +/// access to this address would result in an error report from ASan). +/// Otherwise returns 0. +/// +/// \param addr Address to check. +/// +/// \retval 1 Address is poisoned. +/// \retval 0 Address is not poisoned. +int __asan_address_is_poisoned(void const volatile *addr); - // If at least one byte in [beg, beg+size) is poisoned, return the address - // of the first such byte. Otherwise return 0. - void *__asan_region_is_poisoned(void *beg, size_t size); +/// Checks if a region is poisoned. +/// +/// If at least one byte in [beg, beg+size) is poisoned, returns the +/// address of the first such byte. Otherwise returns 0. +/// +/// \param beg Start of memory region. +/// \param size Start of memory region. +/// \returns Address of first poisoned byte. +void *__asan_region_is_poisoned(void *beg, size_t size); - // Print the description of addr (useful when debugging in gdb). - void __asan_describe_address(void *addr); +/// Describes an address (useful for calling from the debugger). +/// +/// Prints the description of addr. +/// +/// \param addr Address to describe. +void __asan_describe_address(void *addr); - // Useful for calling from a debugger to get information about an ASan error. - // Returns 1 if an error has been (or is being) reported, otherwise returns 0. - int __asan_report_present(void); +/// Checks if an error has been or is being reported (useful for calling from +/// the debugger to get information about an ASan error). +/// +/// Returns 1 if an error has been (or is being) reported. Otherwise returns 0. +/// +/// \returns 1 if an error has been (or is being) reported. Otherwise returns +/// 0. +int __asan_report_present(void); - // Useful for calling from a debugger to get information about an ASan error. - // If an error has been (or is being) reported, the following functions return - // the pc, bp, sp, address, access type (0 = read, 1 = write), access size and - // bug description (e.g. "heap-use-after-free"). Otherwise they return 0. - void *__asan_get_report_pc(void); - void *__asan_get_report_bp(void); - void *__asan_get_report_sp(void); - void *__asan_get_report_address(void); - int __asan_get_report_access_type(void); - size_t __asan_get_report_access_size(void); - const char *__asan_get_report_description(void); +/// Gets the PC (program counter) register value of an ASan error (useful for +/// calling from the debugger). +/// +/// Returns PC if an error has been (or is being) reported. +/// Otherwise returns 0. +/// +/// \returns PC value. +void *__asan_get_report_pc(void); - // Useful for calling from the debugger to get information about a pointer. - // Returns the category of the given pointer as a constant string. - // Possible return values are "global", "stack", "stack-fake", "heap", - // "heap-invalid", "shadow-low", "shadow-gap", "shadow-high", "unknown". - // If global or stack, tries to also return the variable name, address and - // size. If heap, tries to return the chunk address and size. 'name' should - // point to an allocated buffer of size 'name_size'. - const char *__asan_locate_address(void *addr, char *name, size_t name_size, - void **region_address, size_t *region_size); +/// Gets the BP (base pointer) register value of an ASan error (useful for +/// calling from the debugger). +/// +/// Returns BP if an error has been (or is being) reported. +/// Otherwise returns 0. +/// +/// \returns BP value. +void *__asan_get_report_bp(void); - // Useful for calling from the debugger to get the allocation stack trace - // and thread ID for a heap address. Stores up to 'size' frames into 'trace', - // returns the number of stored frames or 0 on error. - size_t __asan_get_alloc_stack(void *addr, void **trace, size_t size, - int *thread_id); +/// Gets the SP (stack pointer) register value of an ASan error (useful for +/// calling from the debugger). +/// +/// If an error has been (or is being) reported, returns SP. +/// Otherwise returns 0. +/// +/// \returns SP value. +void *__asan_get_report_sp(void); - // Useful for calling from the debugger to get the free stack trace - // and thread ID for a heap address. Stores up to 'size' frames into 'trace', - // returns the number of stored frames or 0 on error. - size_t __asan_get_free_stack(void *addr, void **trace, size_t size, - int *thread_id); +/// Gets the address of the report buffer of an ASan error (useful for calling +/// from the debugger). +/// +/// Returns the address of the report buffer if an error has been (or is being) +/// reported. Otherwise returns 0. +/// +/// \returns Address of report buffer. +void *__asan_get_report_address(void); - // Useful for calling from the debugger to get the current shadow memory - // mapping. - void __asan_get_shadow_mapping(size_t *shadow_scale, size_t *shadow_offset); +/// Gets access type of an ASan error (useful for calling from the debugger). +/// +/// Returns access type (read or write) if an error has been (or is being) +/// reported. Otherwise returns 0. +/// +/// \returns Access type (0 = read, 1 = write). +int __asan_get_report_access_type(void); - // This is an internal function that is called to report an error. - // However it is still a part of the interface because users may want to - // set a breakpoint on this function in a debugger. - void __asan_report_error(void *pc, void *bp, void *sp, - void *addr, int is_write, size_t access_size); +/// Gets access size of an ASan error (useful for calling from the debugger). +/// +/// Returns access size if an error has been (or is being) reported. Otherwise +/// returns 0. +/// +/// \returns Access size in bytes. +size_t __asan_get_report_access_size(void); - // Deprecated. Call __sanitizer_set_death_callback instead. - void __asan_set_death_callback(void (*callback)(void)); +/// Gets the bug description of an ASan error (useful for calling from a +/// debugger). +/// +/// \returns Returns a bug description if an error has been (or is being) +/// reported - for example, "heap-use-after-free". Otherwise returns an empty +/// string. +const char *__asan_get_report_description(void); - void __asan_set_error_report_callback(void (*callback)(const char*)); +/// Gets information about a pointer (useful for calling from the debugger). +/// +/// Returns the category of the given pointer as a constant string. +/// Possible return values are global, stack, stack-fake, +/// heap, heap-invalid, shadow-low, shadow-gap, +/// shadow-high, and unknown. +/// +/// If the return value is global or stack, tries to also return +/// the variable name, address, and size. If the return value is heap, +/// tries to return the chunk address and size. name should point +/// to an allocated buffer of size name_size. +/// +/// \param addr Address to locate. +/// \param name Buffer to store the variable's name. +/// \param name_size Size in bytes of the variable's name buffer. +/// \param region_address [out] Address of the region. +/// \param region_size [out] Size of the region in bytes. +/// +/// \returns Returns the category of the given pointer as a constant string. +const char *__asan_locate_address(void *addr, char *name, size_t name_size, + void **region_address, size_t *region_size); - // User may provide function that would be called right when ASan detects - // an error. This can be used to notice cases when ASan detects an error, but - // the program crashes before ASan report is printed. - void __asan_on_error(void); +/// Gets the allocation stack trace and thread ID for a heap address (useful +/// for calling from the debugger). +/// +/// Stores up to size frames in trace. Returns +/// the number of stored frames or 0 on error. +/// +/// \param addr A heap address. +/// \param trace A buffer to store the stack trace. +/// \param size Size in bytes of the trace buffer. +/// \param thread_id [out] The thread ID of the address. +/// +/// \returns Returns the number of stored frames or 0 on error. +size_t __asan_get_alloc_stack(void *addr, void **trace, size_t size, + int *thread_id); - // Prints accumulated stats to stderr. Used for debugging. - void __asan_print_accumulated_stats(void); +/// Gets the free stack trace and thread ID for a heap address (useful for +/// calling from the debugger). +/// +/// Stores up to size frames in trace. Returns +/// the number of stored frames or 0 on error. +/// +/// \param addr A heap address. +/// \param trace A buffer to store the stack trace. +/// \param size Size in bytes of the trace buffer. +/// \param thread_id [out] The thread ID of the address. +/// +/// \returns Returns the number of stored frames or 0 on error. +size_t __asan_get_free_stack(void *addr, void **trace, size_t size, + int *thread_id); - // This function may be optionally provided by user and should return - // a string containing ASan runtime options. See asan_flags.h for details. - const char* __asan_default_options(void); +/// Gets the current shadow memory mapping (useful for calling from the +/// debugger). +/// +/// \param shadow_scale [out] Shadow scale value. +/// \param shadow_offset [out] Offset value. +void __asan_get_shadow_mapping(size_t *shadow_scale, size_t *shadow_offset); - // The following 2 functions facilitate garbage collection in presence of - // asan's fake stack. +/// This is an internal function that is called to report an error. However, +/// it is still a part of the interface because you might want to set a +/// breakpoint on this function in the debugger. +/// +/// \param pc pc value of the ASan error. +/// \param bp bp value of the ASan error. +/// \param sp sp value of the ASan error. +/// \param addr Address of the ASan error. +/// \param is_write True if the error is a write error; false otherwise. +/// \param access_size Size of the memory access of the ASan error. +void __asan_report_error(void *pc, void *bp, void *sp, + void *addr, int is_write, size_t access_size); - // Returns an opaque handler to be used later in __asan_addr_is_in_fake_stack. - // Returns NULL if the current thread does not have a fake stack. - void *__asan_get_current_fake_stack(void); +// Deprecated. Call __sanitizer_set_death_callback instead. +void __asan_set_death_callback(void (*callback)(void)); - // If fake_stack is non-NULL and addr belongs to a fake frame in - // fake_stack, returns the address on real stack that corresponds to - // the fake frame and sets beg/end to the boundaries of this fake frame. - // Otherwise returns NULL and does not touch beg/end. - // If beg/end are NULL, they are not touched. - // This function may be called from a thread other than the owner of - // fake_stack, but the owner thread need to be alive. - void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg, - void **end); +/// Sets the callback function to be called during ASan error reporting. +/// +/// The callback provides a string pointer to the report. +/// +/// \param callback User-provided function. +void __asan_set_error_report_callback(void (*callback)(const char *)); - // Performs cleanup before a [[noreturn]] function. Must be called - // before things like _exit and execl to avoid false positives on stack. - void __asan_handle_no_return(void); +/// User-provided callback on ASan errors. +/// +/// You can provide a function that would be called immediately when ASan +/// detects an error. This is useful in cases when ASan detects an error but +/// your program crashes before the ASan report is printed. +void __asan_on_error(void); + +/// Prints accumulated statistics to stderr (useful for calling from the +/// debugger). +void __asan_print_accumulated_stats(void); + +/// User-provided default option settings. +/// +/// You can provide your own implementation of this function to return a string +/// containing ASan runtime options (for example, +/// verbosity=1:halt_on_error=0). +/// +/// \returns Default options string. +const char* __asan_default_options(void); + +// The following two functions facilitate garbage collection in presence of +// ASan's fake stack. + +/// Gets an opaque handler to the current thread's fake stack. +/// +/// Returns an opaque handler to be used by +/// __asan_addr_is_in_fake_stack(). Returns NULL if the current thread +/// does not have a fake stack. +/// +/// \returns An opaque handler to the fake stack or NULL. +void *__asan_get_current_fake_stack(void); + +/// Checks if an address belongs to a given fake stack. +/// +/// If fake_stack is non-NULL and addr belongs to a +/// fake frame in fake_stack, returns the address of the real +/// stack that corresponds to the fake frame and sets beg and +/// end to the boundaries of this fake frame. Otherwise returns +/// NULL and does not touch beg and end. +/// +/// If beg or end are NULL, they are not touched. +/// +/// \note This function can be called from a thread other than the owner of +/// fake_stack, but the owner thread needs to be alive. +/// +/// \param fake_stack An opaque handler to a fake stack. +/// \param addr Address to test. +/// \param beg [out] Beginning of fake frame. +/// \param end [out] End of fake frame. +/// \returns Stack address or NULL. +void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg, + void **end); + +/// Performs shadow memory cleanup of the current thread's stack before a +/// function marked with the [[noreturn]] attribute is called. +/// +/// To avoid false positives on the stack, must be called before no-return +/// functions like _exit() and execl(). +void __asan_handle_no_return(void); #ifdef __cplusplus } // extern "C" Modified: vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h ============================================================================== --- vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h Tue Aug 20 20:50:57 2019 (r351281) +++ vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h Tue Aug 20 20:51:06 2019 (r351282) @@ -1,10 +1,9 @@ //===-- sanitizer/common_interface_defs.h -----------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// // // Common part of the public sanitizer interface. @@ -18,189 +17,335 @@ // GCC does not understand __has_feature. #if !defined(__has_feature) -# define __has_feature(x) 0 +#define __has_feature(x) 0 #endif #ifdef __cplusplus extern "C" { #endif - // Arguments for __sanitizer_sandbox_on_notify() below. - typedef struct { - // Enable sandbox support in sanitizer coverage. - int coverage_sandboxed; - // File descriptor to write coverage data to. If -1 is passed, a file will - // be pre-opened by __sanitizer_sandobx_on_notify(). This field has no - // effect if coverage_sandboxed == 0. - intptr_t coverage_fd; - // If non-zero, split the coverage data into well-formed blocks. This is - // useful when coverage_fd is a socket descriptor. Each block will contain - // a header, allowing data from multiple processes to be sent over the same - // socket. - unsigned int coverage_max_block_size; - } __sanitizer_sandbox_arguments; +// Arguments for __sanitizer_sandbox_on_notify() below. +typedef struct { + // Enable sandbox support in sanitizer coverage. + int coverage_sandboxed; + // File descriptor to write coverage data to. If -1 is passed, a file will + // be pre-opened by __sanitizer_sandobx_on_notify(). This field has no + // effect if coverage_sandboxed == 0. + intptr_t coverage_fd; + // If non-zero, split the coverage data into well-formed blocks. This is + // useful when coverage_fd is a socket descriptor. Each block will contain + // a header, allowing data from multiple processes to be sent over the same + // socket. + unsigned int coverage_max_block_size; +} __sanitizer_sandbox_arguments; - // Tell the tools to write their reports to "path." instead of stderr. - void __sanitizer_set_report_path(const char *path); - // Tell the tools to write their reports to the provided file descriptor - // (casted to void *). - void __sanitizer_set_report_fd(void *fd); +// Tell the tools to write their reports to "path." instead of stderr. +void __sanitizer_set_report_path(const char *path); +// Tell the tools to write their reports to the provided file descriptor +// (casted to void *). +void __sanitizer_set_report_fd(void *fd); - // Notify the tools that the sandbox is going to be turned on. The reserved - // parameter will be used in the future to hold a structure with functions - // that the tools may call to bypass the sandbox. - void __sanitizer_sandbox_on_notify(__sanitizer_sandbox_arguments *args); +// Notify the tools that the sandbox is going to be turned on. The reserved +// parameter will be used in the future to hold a structure with functions +// that the tools may call to bypass the sandbox. +void __sanitizer_sandbox_on_notify(__sanitizer_sandbox_arguments *args); - // This function is called by the tool when it has just finished reporting - // an error. 'error_summary' is a one-line string that summarizes - // the error message. This function can be overridden by the client. - void __sanitizer_report_error_summary(const char *error_summary); +// This function is called by the tool when it has just finished reporting +// an error. 'error_summary' is a one-line string that summarizes +// the error message. This function can be overridden by the client. +void __sanitizer_report_error_summary(const char *error_summary); - // Some of the sanitizers (e.g. asan/tsan) may miss bugs that happen - // in unaligned loads/stores. In order to find such bugs reliably one needs - // to replace plain unaligned loads/stores with these calls. - uint16_t __sanitizer_unaligned_load16(const void *p); - uint32_t __sanitizer_unaligned_load32(const void *p); - uint64_t __sanitizer_unaligned_load64(const void *p); - void __sanitizer_unaligned_store16(void *p, uint16_t x); - void __sanitizer_unaligned_store32(void *p, uint32_t x); - void __sanitizer_unaligned_store64(void *p, uint64_t x); +// Some of the sanitizers (for example ASan/TSan) could miss bugs that happen +// in unaligned loads/stores. To find such bugs reliably, you need to replace +// plain unaligned loads/stores with these calls. - // Returns 1 on the first call, then returns 0 thereafter. Called by the tool - // to ensure only one report is printed when multiple errors occur - // simultaneously. - int __sanitizer_acquire_crash_state(); +/// Loads a 16-bit unaligned value. +/// +/// \param p Pointer to unaligned memory. +/// +/// \returns Loaded value. +uint16_t __sanitizer_unaligned_load16(const void *p); - // Annotate the current state of a contiguous container, such as - // std::vector, std::string or similar. - // A contiguous container is a container that keeps all of its elements - // in a contiguous region of memory. The container owns the region of memory - // [beg, end); the memory [beg, mid) is used to store the current elements - // and the memory [mid, end) is reserved for future elements; - // beg <= mid <= end. For example, in "std::vector<> v" - // beg = &v[0]; - // end = beg + v.capacity() * sizeof(v[0]); - // mid = beg + v.size() * sizeof(v[0]); - // - // This annotation tells the Sanitizer tool about the current state of the - // container so that the tool can report errors when memory from [mid, end) - // is accessed. Insert this annotation into methods like push_back/pop_back. - // Supply the old and the new values of mid (old_mid/new_mid). - // In the initial state mid == end and so should be the final - // state when the container is destroyed or when it reallocates the storage. - // - // Use with caution and don't use for anything other than vector-like classes. - // - // For AddressSanitizer, 'beg' should be 8-aligned and 'end' should - // be either 8-aligned or it should point to the end of a separate heap-, - // stack-, or global- allocated buffer. I.e. the following will not work: - // int64_t x[2]; // 16 bytes, 8-aligned. - // char *beg = (char *)&x[0]; - // char *end = beg + 12; // Not 8 aligned, not the end of the buffer. - // This however will work fine: - // int32_t x[3]; // 12 bytes, but 8-aligned under AddressSanitizer. - // char *beg = (char*)&x[0]; - // char *end = beg + 12; // Not 8-aligned, but is the end of the buffer. - void __sanitizer_annotate_contiguous_container(const void *beg, - const void *end, - const void *old_mid, - const void *new_mid); - // Returns true if the contiguous container [beg, end) is properly poisoned - // (e.g. with __sanitizer_annotate_contiguous_container), i.e. if - // - [beg, mid) is addressable, - // - [mid, end) is unaddressable. - // Full verification requires O(end-beg) time; this function tries to avoid - // such complexity by touching only parts of the container around beg/mid/end. - int __sanitizer_verify_contiguous_container(const void *beg, const void *mid, - const void *end); +/// Loads a 32-bit unaligned value. +/// +/// \param p Pointer to unaligned memory. +/// +/// \returns Loaded value. +uint32_t __sanitizer_unaligned_load32(const void *p); - // Similar to __sanitizer_verify_contiguous_container but returns the address - // of the first improperly poisoned byte otherwise. Returns null if the area - // is poisoned properly. - const void *__sanitizer_contiguous_container_find_bad_address( - const void *beg, const void *mid, const void *end); +/// Loads a 64-bit unaligned value. +/// +/// \param p Pointer to unaligned memory. +/// +/// \returns Loaded value. +uint64_t __sanitizer_unaligned_load64(const void *p); - // Print the stack trace leading to this call. Useful for debugging user code. - void __sanitizer_print_stack_trace(void); +/// Stores a 16-bit unaligned value. +/// +/// \param p Pointer to unaligned memory. +/// \param x 16-bit value to store. +void __sanitizer_unaligned_store16(void *p, uint16_t x); - // Symbolizes the supplied 'pc' using the format string 'fmt'. - // Outputs at most 'out_buf_size' bytes into 'out_buf'. - // If 'out_buf' is not empty then output is zero or more non empty C strings - // followed by single empty C string. Multiple strings can be returned if PC - // corresponds to inlined function. Inlined frames are printed in the order - // from "most-inlined" to the "least-inlined", so the last frame should be the - // not inlined function. - // Inlined frames can be removed with 'symbolize_inline_frames=0'. - // The format syntax is described in - // lib/sanitizer_common/sanitizer_stacktrace_printer.h. - void __sanitizer_symbolize_pc(void *pc, const char *fmt, char *out_buf, - size_t out_buf_size); - // Same as __sanitizer_symbolize_pc, but for data section (i.e. globals). - void __sanitizer_symbolize_global(void *data_ptr, const char *fmt, - char *out_buf, size_t out_buf_size); +/// Stores a 32-bit unaligned value. +/// +/// \param p Pointer to unaligned memory. +/// \param x 32-bit value to store. +void __sanitizer_unaligned_store32(void *p, uint32_t x); - // Sets the callback to be called right before death on error. - // Passing 0 will unset the callback. - void __sanitizer_set_death_callback(void (*callback)(void)); +/// Stores a 64-bit unaligned value. +/// +/// \param p Pointer to unaligned memory. +/// \param x 64-bit value to store. +void __sanitizer_unaligned_store64(void *p, uint64_t x); - // Interceptor hooks. - // Whenever a libc function interceptor is called it checks if the - // corresponding weak hook is defined, and it so -- calls it. - // The primary use case is data-flow-guided fuzzing, where the fuzzer needs - // to know what is being passed to libc functions, e.g. memcmp. - // FIXME: implement more hooks. - void __sanitizer_weak_hook_memcmp(void *called_pc, const void *s1, - const void *s2, size_t n, int result); - void __sanitizer_weak_hook_strncmp(void *called_pc, const char *s1, - const char *s2, size_t n, int result); - void __sanitizer_weak_hook_strncasecmp(void *called_pc, const char *s1, - const char *s2, size_t n, int result); - void __sanitizer_weak_hook_strcmp(void *called_pc, const char *s1, - const char *s2, int result); - void __sanitizer_weak_hook_strcasecmp(void *called_pc, const char *s1, - const char *s2, int result); - void __sanitizer_weak_hook_strstr(void *called_pc, const char *s1, - const char *s2, char *result); - void __sanitizer_weak_hook_strcasestr(void *called_pc, const char *s1, - const char *s2, char *result); - void __sanitizer_weak_hook_memmem(void *called_pc, - const void *s1, size_t len1, - const void *s2, size_t len2, void *result); +// Returns 1 on the first call, then returns 0 thereafter. Called by the tool +// to ensure only one report is printed when multiple errors occur +// simultaneously. +int __sanitizer_acquire_crash_state(); - // Prints stack traces for all live heap allocations ordered by total - // allocation size until `top_percent` of total live heap is shown. - // `top_percent` should be between 1 and 100. - // At most `max_number_of_contexts` contexts (stack traces) is printed. - // Experimental feature currently available only with asan on Linux/x86_64. - void __sanitizer_print_memory_profile(size_t top_percent, - size_t max_number_of_contexts); +/// Annotates the current state of a contiguous container, such as +/// std::vector, std::string, or similar. +/// +/// A contiguous container is a container that keeps all of its elements +/// in a contiguous region of memory. The container owns the region of memory +/// [beg, end); the memory [beg, mid) is used to store the +/// current elements, and the memory [mid, end) is reserved for future +/// elements (beg <= mid <= end). For example, in +/// std::vector<> v: +/// +/// \code +/// beg = &v[0]; +/// end = beg + v.capacity() * sizeof(v[0]); +/// mid = beg + v.size() * sizeof(v[0]); +/// \endcode +/// +/// This annotation tells the Sanitizer tool about the current state of the +/// container so that the tool can report errors when memory from +/// [mid, end) is accessed. Insert this annotation into methods like +/// push_back() or pop_back(). Supply the old and new values of +/// mid(old_mid and new_mid). In the initial +/// state mid == end, so that should be the final state when the +/// container is destroyed or when the container reallocates the storage. +/// +/// For ASan, beg should be 8-aligned and end +/// should be either 8-aligned or it should point to the end of a separate +/// heap-, stack-, or global-allocated buffer. So the following example will +/// not work: +/// +/// \code +/// int64_t x[2]; // 16 bytes, 8-aligned +/// char *beg = (char *)&x[0]; +/// char *end = beg + 12; // Not 8-aligned, not the end of the buffer +/// \endcode +/// +/// The following, however, will work: +/// \code +/// int32_t x[3]; // 12 bytes, but 8-aligned under ASan. +/// char *beg = (char*)&x[0]; +/// char *end = beg + 12; // Not 8-aligned, but is the end of the buffer +/// \endcode +/// +/// \note Use this function with caution and do not use for anything other +/// than vector-like classes. +/// +/// \param beg Beginning of memory region. +/// \param end End of memory region. +/// \param old_mid Old middle of memory region. +/// \param new_mid New middle of memory region. +void __sanitizer_annotate_contiguous_container(const void *beg, + const void *end, + const void *old_mid, + const void *new_mid); - // Fiber annotation interface. - // Before switching to a different stack, one must call - // __sanitizer_start_switch_fiber with a pointer to the bottom of the - // destination stack and its size. When code starts running on the new stack, - // it must call __sanitizer_finish_switch_fiber to finalize the switch. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Aug 20 20:51:11 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EBD84DFFD7; Tue, 20 Aug 2019 20:51:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjcv4vzNz40t4; Tue, 20 Aug 2019 20:51: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4AA948EEB; Tue, 20 Aug 2019 20:51: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 x7KKpBMm075948; Tue, 20 Aug 2019 20:51:11 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKpBRU075947; Tue, 20 Aug 2019 20:51:11 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202051.x7KKpBRU075947@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:51:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351283 - vendor/compiler-rt/compiler-rt-trunk-r366426 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/compiler-rt/compiler-rt-trunk-r366426 X-SVN-Commit-Revision: 351283 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:51:12 -0000 Author: dim Date: Tue Aug 20 20:51:10 2019 New Revision: 351283 URL: https://svnweb.freebsd.org/changeset/base/351283 Log: Tag stripped compiler-rt trunk r366426 (just before the release_90 branch point). Added: vendor/compiler-rt/compiler-rt-trunk-r366426/ - copied from r351282, vendor/compiler-rt/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:51:17 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F30A1E0037; Tue, 20 Aug 2019 20:51:17 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjd15S3tz414w; Tue, 20 Aug 2019 20:51:17 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 92E158FFE; Tue, 20 Aug 2019 20:51:17 +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 x7KKpHSr076909; Tue, 20 Aug 2019 20:51:17 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKpGfM076902; Tue, 20 Aug 2019 20:51:16 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202051.x7KKpGfM076902@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:51:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351284 - in vendor/libc++/dist: . include include/experimental include/ext src src/experimental src/filesystem src/include src/support/runtime X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/libc++/dist: . include include/experimental include/ext src src/experimental src/filesystem src/include src/support/runtime X-SVN-Commit-Revision: 351284 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:51:18 -0000 Author: dim Date: Tue Aug 20 20:51:16 2019 New Revision: 351284 URL: https://svnweb.freebsd.org/changeset/base/351284 Log: Vendor import of stripped libc++ trunk r366426 (just before the release_90 branch point): https://llvm.org/svn/llvm-project/libcxx/trunk@366426 Added: vendor/libc++/dist/include/fenv.h vendor/libc++/dist/src/CMakeLists.txt vendor/libc++/dist/src/condition_variable_destructor.cpp vendor/libc++/dist/src/mutex_destructor.cpp vendor/libc++/dist/src/support/runtime/stdexcept_default.ipp vendor/libc++/dist/src/support/runtime/stdexcept_vcruntime.ipp Deleted: vendor/libc++/dist/include/experimental/any vendor/libc++/dist/include/experimental/chrono vendor/libc++/dist/include/experimental/numeric vendor/libc++/dist/include/experimental/optional vendor/libc++/dist/include/experimental/ratio vendor/libc++/dist/include/experimental/string_view vendor/libc++/dist/include/experimental/system_error vendor/libc++/dist/include/experimental/tuple Modified: vendor/libc++/dist/LICENSE.TXT vendor/libc++/dist/include/__bit_reference vendor/libc++/dist/include/__bsd_locale_defaults.h vendor/libc++/dist/include/__bsd_locale_fallbacks.h vendor/libc++/dist/include/__config vendor/libc++/dist/include/__debug vendor/libc++/dist/include/__errc 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/__libcpp_version vendor/libc++/dist/include/__locale vendor/libc++/dist/include/__mutex_base vendor/libc++/dist/include/__node_handle vendor/libc++/dist/include/__nullptr vendor/libc++/dist/include/__sso_allocator vendor/libc++/dist/include/__std_stream vendor/libc++/dist/include/__string vendor/libc++/dist/include/__threading_support vendor/libc++/dist/include/__tree vendor/libc++/dist/include/__tuple vendor/libc++/dist/include/__undef_macros vendor/libc++/dist/include/algorithm vendor/libc++/dist/include/any vendor/libc++/dist/include/array vendor/libc++/dist/include/atomic vendor/libc++/dist/include/bit vendor/libc++/dist/include/bitset vendor/libc++/dist/include/cassert vendor/libc++/dist/include/ccomplex vendor/libc++/dist/include/cctype vendor/libc++/dist/include/cerrno vendor/libc++/dist/include/cfenv vendor/libc++/dist/include/cfloat vendor/libc++/dist/include/charconv vendor/libc++/dist/include/chrono vendor/libc++/dist/include/cinttypes vendor/libc++/dist/include/ciso646 vendor/libc++/dist/include/climits vendor/libc++/dist/include/clocale vendor/libc++/dist/include/cmath vendor/libc++/dist/include/codecvt vendor/libc++/dist/include/compare vendor/libc++/dist/include/complex vendor/libc++/dist/include/complex.h vendor/libc++/dist/include/condition_variable vendor/libc++/dist/include/csetjmp vendor/libc++/dist/include/csignal vendor/libc++/dist/include/cstdarg vendor/libc++/dist/include/cstdbool vendor/libc++/dist/include/cstddef vendor/libc++/dist/include/cstdint vendor/libc++/dist/include/cstdio vendor/libc++/dist/include/cstdlib vendor/libc++/dist/include/cstring vendor/libc++/dist/include/ctgmath vendor/libc++/dist/include/ctime vendor/libc++/dist/include/ctype.h vendor/libc++/dist/include/cwchar vendor/libc++/dist/include/cwctype vendor/libc++/dist/include/deque vendor/libc++/dist/include/errno.h vendor/libc++/dist/include/exception vendor/libc++/dist/include/experimental/__config vendor/libc++/dist/include/experimental/__memory vendor/libc++/dist/include/experimental/algorithm vendor/libc++/dist/include/experimental/coroutine vendor/libc++/dist/include/experimental/deque vendor/libc++/dist/include/experimental/filesystem vendor/libc++/dist/include/experimental/forward_list vendor/libc++/dist/include/experimental/functional vendor/libc++/dist/include/experimental/iterator vendor/libc++/dist/include/experimental/list vendor/libc++/dist/include/experimental/map vendor/libc++/dist/include/experimental/memory_resource vendor/libc++/dist/include/experimental/propagate_const vendor/libc++/dist/include/experimental/regex vendor/libc++/dist/include/experimental/set vendor/libc++/dist/include/experimental/simd vendor/libc++/dist/include/experimental/string vendor/libc++/dist/include/experimental/type_traits vendor/libc++/dist/include/experimental/unordered_map vendor/libc++/dist/include/experimental/unordered_set vendor/libc++/dist/include/experimental/utility vendor/libc++/dist/include/experimental/vector vendor/libc++/dist/include/ext/__hash vendor/libc++/dist/include/ext/hash_map vendor/libc++/dist/include/ext/hash_set vendor/libc++/dist/include/filesystem vendor/libc++/dist/include/float.h vendor/libc++/dist/include/forward_list vendor/libc++/dist/include/fstream vendor/libc++/dist/include/functional vendor/libc++/dist/include/future vendor/libc++/dist/include/initializer_list vendor/libc++/dist/include/inttypes.h vendor/libc++/dist/include/iomanip vendor/libc++/dist/include/ios vendor/libc++/dist/include/iosfwd vendor/libc++/dist/include/iostream vendor/libc++/dist/include/istream vendor/libc++/dist/include/iterator vendor/libc++/dist/include/limits vendor/libc++/dist/include/limits.h vendor/libc++/dist/include/list vendor/libc++/dist/include/locale vendor/libc++/dist/include/locale.h vendor/libc++/dist/include/map vendor/libc++/dist/include/math.h vendor/libc++/dist/include/memory vendor/libc++/dist/include/module.modulemap vendor/libc++/dist/include/mutex vendor/libc++/dist/include/new vendor/libc++/dist/include/numeric vendor/libc++/dist/include/optional vendor/libc++/dist/include/ostream vendor/libc++/dist/include/queue 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/setjmp.h vendor/libc++/dist/include/shared_mutex vendor/libc++/dist/include/span vendor/libc++/dist/include/sstream vendor/libc++/dist/include/stack vendor/libc++/dist/include/stdbool.h vendor/libc++/dist/include/stddef.h vendor/libc++/dist/include/stdexcept vendor/libc++/dist/include/stdint.h vendor/libc++/dist/include/stdio.h vendor/libc++/dist/include/stdlib.h vendor/libc++/dist/include/streambuf vendor/libc++/dist/include/string vendor/libc++/dist/include/string.h vendor/libc++/dist/include/string_view vendor/libc++/dist/include/strstream vendor/libc++/dist/include/system_error vendor/libc++/dist/include/tgmath.h vendor/libc++/dist/include/thread vendor/libc++/dist/include/tuple vendor/libc++/dist/include/type_traits vendor/libc++/dist/include/typeindex vendor/libc++/dist/include/typeinfo vendor/libc++/dist/include/unordered_map vendor/libc++/dist/include/unordered_set vendor/libc++/dist/include/utility vendor/libc++/dist/include/valarray vendor/libc++/dist/include/variant vendor/libc++/dist/include/vector vendor/libc++/dist/include/version vendor/libc++/dist/include/wchar.h vendor/libc++/dist/include/wctype.h vendor/libc++/dist/src/algorithm.cpp vendor/libc++/dist/src/any.cpp vendor/libc++/dist/src/bind.cpp vendor/libc++/dist/src/charconv.cpp vendor/libc++/dist/src/chrono.cpp vendor/libc++/dist/src/condition_variable.cpp vendor/libc++/dist/src/debug.cpp vendor/libc++/dist/src/exception.cpp vendor/libc++/dist/src/experimental/memory_resource.cpp vendor/libc++/dist/src/filesystem/directory_iterator.cpp vendor/libc++/dist/src/filesystem/filesystem_common.h vendor/libc++/dist/src/filesystem/int128_builtins.cpp vendor/libc++/dist/src/filesystem/operations.cpp vendor/libc++/dist/src/functional.cpp vendor/libc++/dist/src/future.cpp vendor/libc++/dist/src/hash.cpp vendor/libc++/dist/src/include/apple_availability.h vendor/libc++/dist/src/include/atomic_support.h vendor/libc++/dist/src/include/config_elast.h vendor/libc++/dist/src/include/refstring.h vendor/libc++/dist/src/ios.cpp vendor/libc++/dist/src/iostream.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/optional.cpp vendor/libc++/dist/src/random.cpp vendor/libc++/dist/src/regex.cpp vendor/libc++/dist/src/shared_mutex.cpp vendor/libc++/dist/src/stdexcept.cpp vendor/libc++/dist/src/string.cpp vendor/libc++/dist/src/strstream.cpp vendor/libc++/dist/src/support/runtime/exception_fallback.ipp vendor/libc++/dist/src/support/runtime/exception_glibcxx.ipp vendor/libc++/dist/src/support/runtime/exception_libcxxabi.ipp vendor/libc++/dist/src/support/runtime/exception_libcxxrt.ipp vendor/libc++/dist/src/support/runtime/exception_msvc.ipp vendor/libc++/dist/src/support/runtime/exception_pointer_cxxabi.ipp vendor/libc++/dist/src/support/runtime/exception_pointer_glibcxx.ipp vendor/libc++/dist/src/support/runtime/exception_pointer_msvc.ipp vendor/libc++/dist/src/support/runtime/exception_pointer_unimplemented.ipp vendor/libc++/dist/src/support/runtime/new_handler_fallback.ipp vendor/libc++/dist/src/system_error.cpp vendor/libc++/dist/src/thread.cpp vendor/libc++/dist/src/typeinfo.cpp vendor/libc++/dist/src/utility.cpp vendor/libc++/dist/src/valarray.cpp vendor/libc++/dist/src/variant.cpp vendor/libc++/dist/src/vector.cpp Modified: vendor/libc++/dist/LICENSE.TXT ============================================================================== --- vendor/libc++/dist/LICENSE.TXT Tue Aug 20 20:51:10 2019 (r351283) +++ vendor/libc++/dist/LICENSE.TXT Tue Aug 20 20:51:16 2019 (r351284) @@ -1,5 +1,240 @@ ============================================================================== -libc++ License +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: +============================================================================== + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +============================================================================== +Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): ============================================================================== The libc++ library is dual licensed under both the University of Illinois Modified: vendor/libc++/dist/include/__bit_reference ============================================================================== --- vendor/libc++/dist/include/__bit_reference Tue Aug 20 20:51:10 2019 (r351283) +++ vendor/libc++/dist/include/__bit_reference Tue Aug 20 20:51:16 2019 (r351284) @@ -1,11 +1,10 @@ // -*- C++ -*- //===----------------------------------------------------------------------===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef _LIBCPP___BIT_REFERENCE @@ -69,7 +68,7 @@ class __bit_reference (public) _LIBCPP_INLINE_VISIBILITY void flip() _NOEXCEPT {*__seg_ ^= __mask_;} _LIBCPP_INLINE_VISIBILITY __bit_iterator<_Cp, false> operator&() const _NOEXCEPT - {return __bit_iterator<_Cp, false>(__seg_, static_cast(__ctz(__mask_)));} + {return __bit_iterator<_Cp, false>(__seg_, static_cast(__libcpp_ctz(__mask_)));} private: _LIBCPP_INLINE_VISIBILITY __bit_reference(__storage_pointer __s, __storage_type __m) _NOEXCEPT @@ -141,7 +140,7 @@ class __bit_const_reference (public) {return static_cast(*__seg_ & __mask_);} _LIBCPP_INLINE_VISIBILITY __bit_iterator<_Cp, true> operator&() const _NOEXCEPT - {return __bit_iterator<_Cp, true>(__seg_, static_cast(__ctz(__mask_)));} + {return __bit_iterator<_Cp, true>(__seg_, static_cast(__libcpp_ctz(__mask_)));} private: _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR @@ -168,7 +167,7 @@ __find_bool_true(__bit_iterator<_Cp, _IsConst> __first __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); __storage_type __b = *__first.__seg_ & __m; if (__b) - return _It(__first.__seg_, static_cast(_VSTD::__ctz(__b))); + return _It(__first.__seg_, static_cast(_VSTD::__libcpp_ctz(__b))); if (__n == __dn) return __first + __n; __n -= __dn; @@ -177,14 +176,14 @@ __find_bool_true(__bit_iterator<_Cp, _IsConst> __first // do middle whole words for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) if (*__first.__seg_) - return _It(__first.__seg_, static_cast(_VSTD::__ctz(*__first.__seg_))); + return _It(__first.__seg_, static_cast(_VSTD::__libcpp_ctz(*__first.__seg_))); // do last partial word if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); __storage_type __b = *__first.__seg_ & __m; if (__b) - return _It(__first.__seg_, static_cast(_VSTD::__ctz(__b))); + return _It(__first.__seg_, static_cast(_VSTD::__libcpp_ctz(__b))); } return _It(__first.__seg_, static_cast(__n)); } @@ -204,7 +203,7 @@ __find_bool_false(__bit_iterator<_Cp, _IsConst> __firs __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); __storage_type __b = ~*__first.__seg_ & __m; if (__b) - return _It(__first.__seg_, static_cast(_VSTD::__ctz(__b))); + return _It(__first.__seg_, static_cast(_VSTD::__libcpp_ctz(__b))); if (__n == __dn) return __first + __n; __n -= __dn; @@ -215,7 +214,7 @@ __find_bool_false(__bit_iterator<_Cp, _IsConst> __firs { __storage_type __b = ~*__first.__seg_; if (__b) - return _It(__first.__seg_, static_cast(_VSTD::__ctz(__b))); + return _It(__first.__seg_, static_cast(_VSTD::__libcpp_ctz(__b))); } // do last partial word if (__n > 0) @@ -223,7 +222,7 @@ __find_bool_false(__bit_iterator<_Cp, _IsConst> __firs __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); __storage_type __b = ~*__first.__seg_ & __m; if (__b) - return _It(__first.__seg_, static_cast(_VSTD::__ctz(__b))); + return _It(__first.__seg_, static_cast(_VSTD::__libcpp_ctz(__b))); } return _It(__first.__seg_, static_cast(__n)); } @@ -255,18 +254,18 @@ __count_bool_true(__bit_iterator<_Cp, _IsConst> __firs __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); __storage_type __dn = _VSTD::min(__clz_f, __n); __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); - __r = _VSTD::__popcount(*__first.__seg_ & __m); + __r = _VSTD::__libcpp_popcount(*__first.__seg_ & __m); __n -= __dn; ++__first.__seg_; } // do middle whole words for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) - __r += _VSTD::__popcount(*__first.__seg_); + __r += _VSTD::__libcpp_popcount(*__first.__seg_); // do last partial word if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - __r += _VSTD::__popcount(*__first.__seg_ & __m); + __r += _VSTD::__libcpp_popcount(*__first.__seg_ & __m); } return __r; } @@ -286,18 +285,18 @@ __count_bool_false(__bit_iterator<_Cp, _IsConst> __fir __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); __storage_type __dn = _VSTD::min(__clz_f, __n); __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); - __r = _VSTD::__popcount(~*__first.__seg_ & __m); + __r = _VSTD::__libcpp_popcount(~*__first.__seg_ & __m); __n -= __dn; ++__first.__seg_; } // do middle whole words for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) - __r += _VSTD::__popcount(~*__first.__seg_); + __r += _VSTD::__libcpp_popcount(~*__first.__seg_); // do last partial word if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - __r += _VSTD::__popcount(~*__first.__seg_ & __m); + __r += _VSTD::__libcpp_popcount(~*__first.__seg_ & __m); } return __r; } Modified: vendor/libc++/dist/include/__bsd_locale_defaults.h ============================================================================== --- vendor/libc++/dist/include/__bsd_locale_defaults.h Tue Aug 20 20:51:10 2019 (r351283) +++ vendor/libc++/dist/include/__bsd_locale_defaults.h Tue Aug 20 20:51:16 2019 (r351284) @@ -1,10 +1,9 @@ // -*- C++ -*- //===---------------------- __bsd_locale_defaults.h -----------------------===// // -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // The BSDs have lots of *_l functions. We don't want to define those symbols Modified: vendor/libc++/dist/include/__bsd_locale_fallbacks.h ============================================================================== --- vendor/libc++/dist/include/__bsd_locale_fallbacks.h Tue Aug 20 20:51:10 2019 (r351283) +++ vendor/libc++/dist/include/__bsd_locale_fallbacks.h Tue Aug 20 20:51:16 2019 (r351284) @@ -1,10 +1,9 @@ // -*- C++ -*- //===---------------------- __bsd_locale_fallbacks.h ----------------------===// // -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // The BSDs have lots of *_l functions. This file provides reimplementations Modified: vendor/libc++/dist/include/__config ============================================================================== --- vendor/libc++/dist/include/__config Tue Aug 20 20:51:10 2019 (r351283) +++ vendor/libc++/dist/include/__config Tue Aug 20 20:51:16 2019 (r351284) @@ -1,11 +1,10 @@ // -*- C++ -*- //===--------------------------- __config ---------------------------------===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef _LIBCPP_CONFIG @@ -33,12 +32,16 @@ # define _GNUC_VER_NEW 0 #endif -#define _LIBCPP_VERSION 8000 +#define _LIBCPP_VERSION 9000 #ifndef _LIBCPP_ABI_VERSION # define _LIBCPP_ABI_VERSION 1 #endif +#ifndef __STDC_HOSTED__ +# define _LIBCPP_FREESTANDING +#endif + #ifndef _LIBCPP_STD_VER # if __cplusplus <= 201103L # define _LIBCPP_STD_VER 11 @@ -93,10 +96,12 @@ // Enable optimized version of __do_get_(un)signed which avoids redundant copies. # define _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET // Use the smallest possible integer type to represent the index of the variant. -// Previously libc++ used "unsigned int" exclusivly. +// Previously libc++ used "unsigned int" exclusively. # define _LIBCPP_ABI_VARIANT_INDEX_TYPE_OPTIMIZATION // Unstable attempt to provide a more optimized std::function # define _LIBCPP_ABI_OPTIMIZED_FUNCTION +// All the regex constants must be distinct and nonzero. +# define _LIBCPP_ABI_REGEX_CONSTANTS_NONZERO #elif _LIBCPP_ABI_VERSION == 1 # if !defined(_LIBCPP_OBJECT_FORMAT_COFF) // Enable compiling copies of now inline methods into the dylib to support @@ -182,6 +187,10 @@ #define _LIBCPP_CLANG_VER 0 #endif +#if defined(_LIBCPP_COMPILER_GCC) && __cplusplus < 201103L +#error "libc++ does not support using GCC with C++03. Please enable C++11" +#endif + // FIXME: ABI detection should be done via compiler builtin macros. This // is just a placeholder until Clang implements such macros. For now assume // that Windows compilers pretending to be MSVC++ target the Microsoft ABI, @@ -201,6 +210,10 @@ # endif #endif +#if defined(_LIBCPP_ABI_MICROSOFT) && !defined(_LIBCPP_NO_VCRUNTIME) +# define _LIBCPP_ABI_VCRUNTIME +#endif + // Need to detect which libc we're using if we're on Linux. #if defined(__linux__) # include @@ -257,7 +270,7 @@ # define _LIBCPP_WIN32API # define _LIBCPP_LITTLE_ENDIAN # define _LIBCPP_SHORT_WCHAR 1 -// Both MinGW and native MSVC provide a "MSVC"-like enviroment +// Both MinGW and native MSVC provide a "MSVC"-like environment # define _LIBCPP_MSVCRT_LIKE // If mingw not explicitly detected, assume using MS C runtime only if // a MS compatibility version is specified. @@ -298,7 +311,7 @@ // random data even when using sandboxing mechanisms such as chroots, // Capsicum, etc. # define _LIBCPP_USING_ARC4_RANDOM -#elif defined(__Fuchsia__) +#elif defined(__Fuchsia__) || defined(__wasi__) # define _LIBCPP_USING_GETENTROPY #elif defined(__native_client__) // NaCl's sandbox (which PNaCl also runs in) doesn't allow filesystem access, @@ -332,7 +345,7 @@ # if defined(__FreeBSD__) # define _LIBCPP_HAS_QUICK_EXIT # define _LIBCPP_HAS_C11_FEATURES -# elif defined(__Fuchsia__) +# elif defined(__Fuchsia__) || defined(__wasi__) # define _LIBCPP_HAS_QUICK_EXIT # define _LIBCPP_HAS_TIMESPEC_GET # define _LIBCPP_HAS_C11_FEATURES @@ -400,10 +413,6 @@ typedef __char32_t char32_t; #define _LIBCPP_HAS_NO_STRONG_ENUMS #endif -#if !(__has_feature(cxx_decltype)) -#define _LIBCPP_HAS_NO_DECLTYPE -#endif - #if __has_feature(cxx_attributes) # define _LIBCPP_NORETURN [[noreturn]] #else @@ -434,18 +443,6 @@ typedef __char32_t char32_t; #define _LIBCPP_HAS_NO_VARIADICS #endif -#if !(__has_feature(cxx_generalized_initializers)) -#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS -#endif - -#if __has_feature(is_base_of) -#define _LIBCPP_HAS_IS_BASE_OF -#endif - -#if __has_feature(is_final) -#define _LIBCPP_HAS_IS_FINAL -#endif - // Objective-C++ features (opt-in) #if __has_feature(objc_arc) #define _LIBCPP_HAS_OBJC_ARC @@ -455,10 +452,6 @@ typedef __char32_t char32_t; #define _LIBCPP_HAS_OBJC_ARC_WEAK #endif -#if !(__has_feature(cxx_constexpr)) -#define _LIBCPP_HAS_NO_CONSTEXPR -#endif - #if !(__has_feature(cxx_relaxed_constexpr)) #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR #endif @@ -471,14 +464,6 @@ typedef __char32_t char32_t; #define _LIBCPP_HAS_NO_NOEXCEPT #endif -#if __has_feature(underlying_type) -#define _LIBCPP_UNDERLYING_TYPE(T) __underlying_type(T) -#endif - -#if __has_feature(is_literal) -#define _LIBCPP_IS_LITERAL(T) __is_literal(T) -#endif - #if !defined(_LIBCPP_HAS_NO_ASAN) && !__has_feature(address_sanitizer) #define _LIBCPP_HAS_NO_ASAN #endif @@ -510,69 +495,20 @@ typedef __char32_t char32_t; #define _LIBCPP_NORETURN __attribute__((noreturn)) -#if _GNUC_VER >= 407 -#define _LIBCPP_UNDERLYING_TYPE(T) __underlying_type(T) -#define _LIBCPP_IS_LITERAL(T) __is_literal_type(T) -#define _LIBCPP_HAS_IS_FINAL -#endif - -#if defined(__GNUC__) && _GNUC_VER >= 403 -#define _LIBCPP_HAS_IS_BASE_OF -#endif - #if !__EXCEPTIONS && !defined(_LIBCPP_NO_EXCEPTIONS) #define _LIBCPP_NO_EXCEPTIONS #endif -// constexpr was added to GCC in 4.6. -#if _GNUC_VER < 406 -# define _LIBCPP_HAS_NO_CONSTEXPR -// Can only use constexpr in c++11 mode. -#elif !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L -# define _LIBCPP_HAS_NO_CONSTEXPR -#endif - // Determine if GCC supports relaxed constexpr #if !defined(__cpp_constexpr) || __cpp_constexpr < 201304L #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR #endif -// GCC 5 will support variable templates +// GCC 5 supports variable templates #if !defined(__cpp_variable_templates) || __cpp_variable_templates < 201304L #define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES #endif -#ifndef __GXX_EXPERIMENTAL_CXX0X__ - -#define _LIBCPP_HAS_NO_DECLTYPE -#define _LIBCPP_HAS_NO_NULLPTR -#define _LIBCPP_HAS_NO_UNICODE_CHARS -#define _LIBCPP_HAS_NO_VARIADICS -#define _LIBCPP_HAS_NO_RVALUE_REFERENCES -#define _LIBCPP_HAS_NO_STRONG_ENUMS -#define _LIBCPP_HAS_NO_NOEXCEPT - -#else // __GXX_EXPERIMENTAL_CXX0X__ - -#if _GNUC_VER < 403 -#define _LIBCPP_HAS_NO_RVALUE_REFERENCES -#endif - - -#if _GNUC_VER < 404 -#define _LIBCPP_HAS_NO_DECLTYPE -#define _LIBCPP_HAS_NO_UNICODE_CHARS -#define _LIBCPP_HAS_NO_VARIADICS -#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS -#endif // _GNUC_VER < 404 - -#if _GNUC_VER < 406 -#define _LIBCPP_HAS_NO_NOEXCEPT -#define _LIBCPP_HAS_NO_NULLPTR -#endif - -#endif // __GXX_EXPERIMENTAL_CXX0X__ - #if !defined(_LIBCPP_HAS_NO_ASAN) && !defined(__SANITIZE_ADDRESS__) #define _LIBCPP_HAS_NO_ASAN #endif @@ -597,16 +533,12 @@ typedef __char32_t char32_t; #error "MSVC versions prior to Visual Studio 2015 are not supported" #endif -#define _LIBCPP_HAS_IS_BASE_OF -#define _LIBCPP_HAS_NO_CONSTEXPR #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR #define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES -#define _LIBCPP_HAS_NO_NOEXCEPT #define __alignof__ __alignof #define _LIBCPP_NORETURN __declspec(noreturn) #define _ALIGNAS(x) __declspec(align(x)) #define _ALIGNAS_TYPE(x) alignas(x) -#define _LIBCPP_HAS_NO_VARIADICS #define _LIBCPP_WEAK @@ -623,12 +555,7 @@ typedef __char32_t char32_t; #define _ATTRIBUTE(x) __attribute__((x)) #define _LIBCPP_NORETURN __attribute__((noreturn)) -#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS -#define _LIBCPP_HAS_NO_NOEXCEPT -#define _LIBCPP_HAS_NO_NULLPTR #define _LIBCPP_HAS_NO_UNICODE_CHARS -#define _LIBCPP_HAS_IS_BASE_OF -#define _LIBCPP_HAS_IS_FINAL #define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES #if defined(_AIX) @@ -659,8 +586,13 @@ typedef __char32_t char32_t; # define _LIBCPP_EXPORTED_FROM_ABI #elif defined(_LIBCPP_BUILDING_LIBRARY) # define _LIBCPP_DLL_VIS __declspec(dllexport) -# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS -# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS _LIBCPP_DLL_VIS +# if defined(__MINGW32__) +# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS _LIBCPP_DLL_VIS +# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS +# else +# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS +# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS _LIBCPP_DLL_VIS +# endif # define _LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_DLL_VIS # define _LIBCPP_EXPORTED_FROM_ABI __declspec(dllexport) #else @@ -777,7 +709,7 @@ typedef __char32_t char32_t; #else // Try to approximate the effect of exclude_from_explicit_instantiation // (which is that entities are not assumed to be provided by explicit - // template instantitations in the dylib) by always inlining those entities. + // template instantiations in the dylib) by always inlining those entities. # define _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION _LIBCPP_ALWAYS_INLINE #endif @@ -789,6 +721,16 @@ typedef __char32_t char32_t; # endif #endif +#ifndef _LIBCPP_HAS_MERGED_TYPEINFO_NAMES_DEFAULT +# ifdef _LIBCPP_OBJECT_FORMAT_COFF // Windows binaries can't merge typeinfos. +# define _LIBCPP_HAS_MERGED_TYPEINFO_NAMES_DEFAULT 0 +#else +// TODO: This isn't strictly correct on ELF platforms due to llvm.org/PR37398 +// And we should consider defaulting to OFF. +# define _LIBCPP_HAS_MERGED_TYPEINFO_NAMES_DEFAULT 1 +#endif +#endif + #ifndef _LIBCPP_HIDE_FROM_ABI # if _LIBCPP_HIDE_FROM_ABI_PER_TU # define _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDDEN _LIBCPP_INTERNAL_LINKAGE @@ -843,22 +785,6 @@ _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_END_NAMESPACE_STD # define _NOEXCEPT_(x) #endif -#if defined(_LIBCPP_DEBUG_USE_EXCEPTIONS) -# if !defined(_LIBCPP_DEBUG) -# error cannot use _LIBCPP_DEBUG_USE_EXCEPTIONS unless _LIBCPP_DEBUG is defined -# endif -# ifdef _LIBCPP_HAS_NO_NOEXCEPT -# define _NOEXCEPT_DEBUG -# define _NOEXCEPT_DEBUG_(x) -# else -# define _NOEXCEPT_DEBUG noexcept(false) -# define _NOEXCEPT_DEBUG_(x) noexcept(false) -# endif -#else -# define _NOEXCEPT_DEBUG _NOEXCEPT -# define _NOEXCEPT_DEBUG_(x) _NOEXCEPT_(x) -#endif - #ifdef _LIBCPP_HAS_NO_UNICODE_CHARS typedef unsigned short char16_t; typedef unsigned int char32_t; @@ -869,30 +795,11 @@ typedef unsigned int char32_t; #endif #ifdef _LIBCPP_CXX03_LANG -# if __has_extension(c_static_assert) -# define static_assert(__b, __m) _Static_assert(__b, __m) -# else -extern "C++" { -template struct __static_assert_test; -template <> struct __static_assert_test {}; -template struct __static_assert_check {}; -} -# define static_assert(__b, __m) \ - typedef __static_assert_check)> \ - _LIBCPP_CONCAT(__t, __LINE__) -# endif // __has_extension(c_static_assert) +# define static_assert(...) _Static_assert(__VA_ARGS__) +# define decltype(...) __decltype(__VA_ARGS__) #endif // _LIBCPP_CXX03_LANG -#ifdef _LIBCPP_HAS_NO_DECLTYPE -// GCC 4.6 provides __decltype in all standard modes. -# if __has_keyword(__decltype) || _LIBCPP_CLANG_VER >= 304 || _GNUC_VER >= 406 -# define decltype(__x) __decltype(__x) -# else -# define decltype(__x) __typeof__(__x) -# endif -#endif - -#ifdef _LIBCPP_HAS_NO_CONSTEXPR +#ifdef _LIBCPP_CXX03_LANG # define _LIBCPP_CONSTEXPR #else # define _LIBCPP_CONSTEXPR constexpr @@ -911,9 +818,9 @@ template struct __static_assert_check {}; #endif #ifdef __GNUC__ -# define _NOALIAS __attribute__((__malloc__)) +# define _LIBCPP_NOALIAS __attribute__((__malloc__)) #else -# define _NOALIAS +# define _LIBCPP_NOALIAS #endif #if __has_feature(cxx_explicit_conversions) || defined(__IBMCPP__) || \ @@ -966,10 +873,6 @@ template struct __static_assert_check {}; #define _LIBCPP_EXTERN_TEMPLATE2(...) extern template __VA_ARGS__; #endif -#if defined(__APPLE__) && defined(__LP64__) && !defined(__x86_64__) -#define _LIBCPP_NONUNIQUE_RTTI_BIT (1ULL << 63) -#endif - #if defined(__APPLE__) || defined(__FreeBSD__) || defined(_LIBCPP_MSVCRT_LIKE) || \ defined(__sun__) || defined(__NetBSD__) || defined(__CloudABI__) #define _LIBCPP_LOCALE__L_EXTENSIONS 1 @@ -990,13 +893,10 @@ template struct __static_assert_check {}; // for align_val_t were added in 19.12, aka VS 2017 version 15.3. #if defined(_LIBCPP_MSVCRT) && defined(_MSC_VER) && _MSC_VER < 1912 # define _LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION -#elif defined(_LIBCPP_ABI_MICROSOFT) && !defined(_LIBCPP_NO_VCRUNTIME) -# define _LIBCPP_DEFER_NEW_TO_VCRUNTIME -# if !defined(__cpp_aligned_new) - // We're defering to Microsoft's STL to provide aligned new et al. We don't - // have it unless the language feature test macro is defined. -# define _LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION -# endif +#elif defined(_LIBCPP_ABI_VCRUNTIME) && !defined(__cpp_aligned_new) + // We're deferring to Microsoft's STL to provide aligned new et al. We don't + // have it unless the language feature test macro is defined. +# define _LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION #endif #if defined(__APPLE__) @@ -1025,8 +925,10 @@ template struct __static_assert_check {}; #endif // Deprecation macros. -// Deprecations warnings are only enabled when _LIBCPP_ENABLE_DEPRECATION_WARNINGS is defined. -#if defined(_LIBCPP_ENABLE_DEPRECATION_WARNINGS) +// +// Deprecations warnings are always enabled, except when users explicitly opt-out +// by defining _LIBCPP_DISABLE_DEPRECATION_WARNINGS. +#if !defined(_LIBCPP_DISABLE_DEPRECATION_WARNINGS) # if __has_attribute(deprecated) # define _LIBCPP_DEPRECATED __attribute__ ((deprecated)) # elif _LIBCPP_STD_VER > 11 @@ -1128,6 +1030,12 @@ template struct __static_assert_check {}; #endif #endif +#if __has_attribute(no_destroy) +# define _LIBCPP_NO_DESTROY __attribute__((__no_destroy__)) +#else +# define _LIBCPP_NO_DESTROY +#endif + #ifndef _LIBCPP_HAS_NO_ASAN _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_contiguous_container( const void *, const void *, const void *, const void *); @@ -1158,6 +1066,7 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_ !defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) # if defined(__FreeBSD__) || \ defined(__Fuchsia__) || \ + defined(__wasi__) || \ defined(__NetBSD__) || \ defined(__linux__) || \ defined(__GNU__) || \ @@ -1188,6 +1097,23 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_ _LIBCPP_HAS_NO_THREADS is defined. #endif +// The Apple, glibc, and Bionic implementation of pthreads implements +// pthread_mutex_destroy as nop for regular mutexes. Additionally, Win32 +// mutexes have no destroy mechanism. +// TODO(EricWF): Enable this optimization on Apple and Bionic platforms after +// speaking to their respective stakeholders. +#if (defined(_LIBCPP_HAS_THREAD_API_PTHREAD) && defined(__GLIBC__)) \ + || defined(_LIBCPP_HAS_THREAD_API_WIN32) +# define _LIBCPP_HAS_TRIVIAL_MUTEX_DESTRUCTION +#endif + +// Destroying a condvar is a nop on Windows. +// TODO(EricWF): This is potentially true for some pthread implementations +// as well. +#if defined(_LIBCPP_HAS_THREAD_API_WIN32) +# define _LIBCPP_HAS_TRIVIAL_CONDVAR_DESTRUCTION +#endif + // Systems that use capability-based security (FreeBSD with Capsicum, // Nuxi CloudABI) may only provide local filesystem access (using *at()). // Functions like open(), rename(), unlink() and stat() should not be @@ -1204,7 +1130,7 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_ #endif #if defined(__BIONIC__) || defined(__CloudABI__) || \ - defined(__Fuchsia__) || defined(_LIBCPP_HAS_MUSL_LIBC) + defined(__Fuchsia__) || defined(__wasi__) || defined(_LIBCPP_HAS_MUSL_LIBC) #define _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE #endif @@ -1216,13 +1142,22 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_ #if __has_feature(cxx_atomic) || __has_extension(c_atomic) || __has_keyword(_Atomic) # define _LIBCPP_HAS_C_ATOMIC_IMP -#elif _GNUC_VER > 407 +#elif defined(_LIBCPP_COMPILER_GCC) # define _LIBCPP_HAS_GCC_ATOMIC_IMP #endif -#if (!defined(_LIBCPP_HAS_C_ATOMIC_IMP) && !defined(_LIBCPP_HAS_GCC_ATOMIC_IMP)) \ +#if (!defined(_LIBCPP_HAS_C_ATOMIC_IMP) && \ + !defined(_LIBCPP_HAS_GCC_ATOMIC_IMP) && \ + !defined(_LIBCPP_HAS_EXTERNAL_ATOMIC_IMP)) \ || defined(_LIBCPP_HAS_NO_THREADS) -#define _LIBCPP_HAS_NO_ATOMIC_HEADER +# define _LIBCPP_HAS_NO_ATOMIC_HEADER +#else +# ifndef _LIBCPP_ATOMIC_FLAG_TYPE +# define _LIBCPP_ATOMIC_FLAG_TYPE bool +# endif +# ifdef _LIBCPP_FREESTANDING +# define _LIBCPP_ATOMIC_ONLY_USE_BUILTINS +# endif #endif #ifndef _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK @@ -1250,6 +1185,10 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_ #define _LIBCPP_HAS_NO_BUILTIN_ADDRESSOF #endif +#if !__has_builtin(__builtin_is_constant_evaluated) && _GNUC_VER < 900 +#define _LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED +#endif + #if !defined(_LIBCPP_HAS_NO_OFF_T_FUNCTIONS) # if defined(_LIBCPP_MSVCRT) || defined(_NEWLIB_VERSION) # define _LIBCPP_HAS_NO_OFF_T_FUNCTIONS @@ -1277,6 +1216,21 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_ # define _LIBCPP_FALLTHROUGH() ((void)0) #endif +#if __has_attribute(__nodebug__) +#define _LIBCPP_NODEBUG __attribute__((__nodebug__)) +#else +#define _LIBCPP_NODEBUG +#endif + +#ifndef _LIBCPP_NODEBUG_TYPE +#if __has_attribute(__nodebug__) && \ + (defined(_LIBCPP_COMPILER_CLANG) && _LIBCPP_CLANG_VER >= 900) +#define _LIBCPP_NODEBUG_TYPE __attribute__((nodebug)) +#else +#define _LIBCPP_NODEBUG_TYPE +#endif +#endif // !defined(_LIBCPP_NODEBUG_TYPE) + #if defined(_LIBCPP_ABI_MICROSOFT) && \ (defined(_LIBCPP_COMPILER_MSVC) || __has_declspec_attribute(empty_bases)) # define _LIBCPP_DECLSPEC_EMPTY_BASES __declspec(empty_bases) @@ -1312,7 +1266,8 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_ #if !defined(_LIBCPP_BUILDING_LIBRARY) && \ !defined(_LIBCPP_DISABLE_AVAILABILITY) && \ __has_feature(attribute_availability_with_strict) && \ - __has_feature(attribute_availability_in_templates) + __has_feature(attribute_availability_in_templates) && \ + __has_extension(pragma_clang_attribute_external_declaration) # ifdef __APPLE__ # define _LIBCPP_USE_AVAILABILITY_APPLE # endif @@ -1355,6 +1310,21 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_ # define _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR \ __attribute__((availability(macosx,strict,introduced=10.9))) \ __attribute__((availability(ios,strict,introduced=7.0))) +# define _LIBCPP_AVAILABILITY_FILESYSTEM \ + __attribute__((availability(macosx,strict,introduced=10.15))) \ + __attribute__((availability(ios,strict,introduced=13.0))) \ + __attribute__((availability(tvos,strict,introduced=13.0))) \ + __attribute__((availability(watchos,strict,introduced=6.0))) +# define _LIBCPP_AVAILABILITY_FILESYSTEM_PUSH \ + _Pragma("clang attribute push(__attribute__((availability(macosx,strict,introduced=10.15))), apply_to=any(function,record))") \ + _Pragma("clang attribute push(__attribute__((availability(ios,strict,introduced=13.0))), apply_to=any(function,record))") \ + _Pragma("clang attribute push(__attribute__((availability(tvos,strict,introduced=13.0))), apply_to=any(function,record))") \ + _Pragma("clang attribute push(__attribute__((availability(watchos,strict,introduced=6.0))), apply_to=any(function,record))") +# define _LIBCPP_AVAILABILITY_FILESYSTEM_POP \ + _Pragma("clang attribute pop") \ + _Pragma("clang attribute pop") \ + _Pragma("clang attribute pop") \ + _Pragma("clang attribute pop") #else # define _LIBCPP_AVAILABILITY_SHARED_MUTEX # define _LIBCPP_AVAILABILITY_BAD_VARIANT_ACCESS @@ -1366,6 +1336,9 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_ # define _LIBCPP_AVAILABILITY_TYPEINFO_VTABLE # define _LIBCPP_AVAILABILITY_LOCALE_CATEGORY # define _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR +# define _LIBCPP_AVAILABILITY_FILESYSTEM +# define _LIBCPP_AVAILABILITY_FILESYSTEM_PUSH +# define _LIBCPP_AVAILABILITY_FILESYSTEM_POP #endif // Define availability that depends on _LIBCPP_NO_EXCEPTIONS. Modified: vendor/libc++/dist/include/__debug ============================================================================== --- vendor/libc++/dist/include/__debug Tue Aug 20 20:51:10 2019 (r351283) +++ vendor/libc++/dist/include/__debug Tue Aug 20 20:51:16 2019 (r351284) @@ -1,17 +1,17 @@ // -*- C++ -*- //===--------------------------- __debug ----------------------------------===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef _LIBCPP_DEBUG_H #define _LIBCPP_DEBUG_H #include <__config> +#include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header @@ -25,7 +25,6 @@ # include # include # include -# include *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Aug 20 20:51:20 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ECF49E005E; Tue, 20 Aug 2019 20:51:20 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjd45wMrz416P; Tue, 20 Aug 2019 20:51:20 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8DD709004; Tue, 20 Aug 2019 20:51:20 +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 x7KKpKPb076975; Tue, 20 Aug 2019 20:51:20 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKpKZW076974; Tue, 20 Aug 2019 20:51:20 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202051.x7KKpKZW076974@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:51:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351285 - vendor/libc++/libc++-trunk-r366426 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/libc++/libc++-trunk-r366426 X-SVN-Commit-Revision: 351285 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:51:21 -0000 Author: dim Date: Tue Aug 20 20:51:20 2019 New Revision: 351285 URL: https://svnweb.freebsd.org/changeset/base/351285 Log: Tag stripped libc++ trunk r366426 (just before the release_90 branch point). Added: vendor/libc++/libc++-trunk-r366426/ - copied from r351284, vendor/libc++/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:51:26 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5C2D8E00B6; Tue, 20 Aug 2019 20:51:26 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjd96x6kz41Dx; Tue, 20 Aug 2019 20:51:25 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C01D1900B; Tue, 20 Aug 2019 20:51:25 +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 x7KKpP9f077040; Tue, 20 Aug 2019 20:51:25 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKpNHN077024; Tue, 20 Aug 2019 20:51:23 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202051.x7KKpNHN077024@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:51:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351286 - in vendor/llvm-libunwind/dist: . include include/mach-o src X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-libunwind/dist: . include include/mach-o src X-SVN-Commit-Revision: 351286 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:51:26 -0000 Author: dim Date: Tue Aug 20 20:51:22 2019 New Revision: 351286 URL: https://svnweb.freebsd.org/changeset/base/351286 Log: Vendor import of stripped LLVM libunwind trunk r366426 (just before the release_90 branch point): https://llvm.org/svn/llvm-project/libunwind/trunk@366426 Modified: vendor/llvm-libunwind/dist/LICENSE.TXT vendor/llvm-libunwind/dist/include/__libunwind_config.h vendor/llvm-libunwind/dist/include/libunwind.h vendor/llvm-libunwind/dist/include/mach-o/compact_unwind_encoding.h vendor/llvm-libunwind/dist/include/unwind.h vendor/llvm-libunwind/dist/src/AddressSpace.hpp vendor/llvm-libunwind/dist/src/CompactUnwinder.hpp vendor/llvm-libunwind/dist/src/DwarfInstructions.hpp vendor/llvm-libunwind/dist/src/DwarfParser.hpp vendor/llvm-libunwind/dist/src/EHHeaderParser.hpp vendor/llvm-libunwind/dist/src/RWMutex.hpp vendor/llvm-libunwind/dist/src/Registers.hpp vendor/llvm-libunwind/dist/src/Unwind-EHABI.cpp vendor/llvm-libunwind/dist/src/Unwind-EHABI.h vendor/llvm-libunwind/dist/src/Unwind-seh.cpp vendor/llvm-libunwind/dist/src/Unwind-sjlj.c vendor/llvm-libunwind/dist/src/UnwindCursor.hpp vendor/llvm-libunwind/dist/src/UnwindLevel1-gcc-ext.c vendor/llvm-libunwind/dist/src/UnwindLevel1.c vendor/llvm-libunwind/dist/src/UnwindRegistersRestore.S vendor/llvm-libunwind/dist/src/UnwindRegistersSave.S vendor/llvm-libunwind/dist/src/Unwind_AppleExtras.cpp vendor/llvm-libunwind/dist/src/assembly.h vendor/llvm-libunwind/dist/src/config.h vendor/llvm-libunwind/dist/src/dwarf2.h vendor/llvm-libunwind/dist/src/libunwind.cpp vendor/llvm-libunwind/dist/src/libunwind_ext.h Modified: vendor/llvm-libunwind/dist/LICENSE.TXT ============================================================================== --- vendor/llvm-libunwind/dist/LICENSE.TXT Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/LICENSE.TXT Tue Aug 20 20:51:22 2019 (r351286) @@ -1,5 +1,240 @@ ============================================================================== -libunwind License +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: +============================================================================== + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +============================================================================== +Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): ============================================================================== The libunwind library is dual licensed under both the University of Illinois Modified: vendor/llvm-libunwind/dist/include/__libunwind_config.h ============================================================================== --- vendor/llvm-libunwind/dist/include/__libunwind_config.h Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/include/__libunwind_config.h Tue Aug 20 20:51:22 2019 (r351286) @@ -1,9 +1,8 @@ //===------------------------- __libunwind_config.h -----------------------===// // -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// Modified: vendor/llvm-libunwind/dist/include/libunwind.h ============================================================================== --- vendor/llvm-libunwind/dist/include/libunwind.h Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/include/libunwind.h Tue Aug 20 20:51:22 2019 (r351286) @@ -1,11 +1,10 @@ //===---------------------------- libunwind.h -----------------------------===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. // -// // Compatible with libunwind API documented at: // http://www.nongnu.org/libunwind/man/libunwind(3).html // @@ -76,7 +75,7 @@ typedef struct unw_addr_space *unw_addr_space_t; typedef int unw_regnum_t; typedef uintptr_t unw_word_t; -#if defined(__arm__) +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) typedef uint64_t unw_fpreg_t; #else typedef double unw_fpreg_t; @@ -124,32 +123,6 @@ extern int unw_get_proc_name(unw_cursor_t *, char *, s //extern int unw_get_save_loc(unw_cursor_t*, int, unw_save_loc_t*); extern unw_addr_space_t unw_local_addr_space; - -#ifdef UNW_REMOTE -/* - * Mac OS X "remote" API for unwinding other processes on same machine - * - */ -extern unw_addr_space_t unw_create_addr_space_for_task(task_t); -extern void unw_destroy_addr_space(unw_addr_space_t); -extern int unw_init_remote_thread(unw_cursor_t *, unw_addr_space_t, thread_t *); -#endif /* UNW_REMOTE */ - -/* - * traditional libunwind "remote" API - * NOT IMPLEMENTED on Mac OS X - * - * extern int unw_init_remote(unw_cursor_t*, unw_addr_space_t, - * thread_t*); - * extern unw_accessors_t unw_get_accessors(unw_addr_space_t); - * extern unw_addr_space_t unw_create_addr_space(unw_accessors_t, int); - * extern void unw_flush_cache(unw_addr_space_t, unw_word_t, - * unw_word_t); - * extern int unw_set_caching_policy(unw_addr_space_t, - * unw_caching_policy_t); - * extern void _U_dyn_register(unw_dyn_info_t*); - * extern void _U_dyn_cancel(unw_dyn_info_t*); - */ #ifdef __cplusplus } Modified: vendor/llvm-libunwind/dist/include/mach-o/compact_unwind_encoding.h ============================================================================== --- vendor/llvm-libunwind/dist/include/mach-o/compact_unwind_encoding.h Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/include/mach-o/compact_unwind_encoding.h Tue Aug 20 20:51:22 2019 (r351286) @@ -1,9 +1,8 @@ //===------------------ mach-o/compact_unwind_encoding.h ------------------===// // -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // // // Darwin's alternative to DWARF based unwind encodings. Modified: vendor/llvm-libunwind/dist/include/unwind.h ============================================================================== --- vendor/llvm-libunwind/dist/include/unwind.h Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/include/unwind.h Tue Aug 20 20:51:22 2019 (r351286) @@ -1,13 +1,12 @@ //===------------------------------- unwind.h -----------------------------===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. // -// // C++ ABI Level 1 ABI documented at: -// http://mentorembedded.github.io/cxx-abi/abi-eh.html +// https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html // //===----------------------------------------------------------------------===// Modified: vendor/llvm-libunwind/dist/src/AddressSpace.hpp ============================================================================== --- vendor/llvm-libunwind/dist/src/AddressSpace.hpp Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/src/AddressSpace.hpp Tue Aug 20 20:51:22 2019 (r351286) @@ -1,11 +1,10 @@ //===------------------------- AddressSpace.hpp ---------------------------===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. // -// // Abstracts accessing local vs remote address spaces. // //===----------------------------------------------------------------------===// @@ -28,7 +27,10 @@ #if _LIBUNWIND_USE_DLADDR #include +#if defined(__unix__) && defined(__ELF__) && defined(_LIBUNWIND_HAS_COMMENT_LIB_PRAGMA) +#pragma comment(lib, "dl") #endif +#endif #ifdef __APPLE__ #include @@ -457,6 +459,8 @@ inline bool LocalAddressSpace::findUnwindSections(pint #elif defined(_LIBUNWIND_SUPPORT_SEH_UNWIND) && defined(_WIN32) // Don't even bother, since Windows has functions that do all this stuff // for us. + (void)targetAddr; + (void)info; return true; #elif defined(_LIBUNWIND_ARM_EHABI) && defined(__BIONIC__) && \ (__ANDROID_API__ < 21) @@ -534,11 +538,11 @@ inline bool LocalAddressSpace::findUnwindSections(pint #endif cbdata->sects->dwarf_index_section = eh_frame_hdr_start; cbdata->sects->dwarf_index_section_length = phdr->p_memsz; - EHHeaderParser::decodeEHHdr( + found_hdr = EHHeaderParser::decodeEHHdr( *cbdata->addressSpace, eh_frame_hdr_start, phdr->p_memsz, hdrInfo); - cbdata->sects->dwarf_section = hdrInfo.eh_frame_ptr; - found_hdr = true; + if (found_hdr) + cbdata->sects->dwarf_section = hdrInfo.eh_frame_ptr; } } @@ -597,141 +601,14 @@ inline bool LocalAddressSpace::findFunctionName(pint_t return true; } } +#else + (void)addr; + (void)buf; + (void)bufLen; + (void)offset; #endif return false; } - - - -#ifdef UNW_REMOTE - -/// RemoteAddressSpace is used as a template parameter to UnwindCursor when -/// unwinding a thread in the another process. The other process can be a -/// different endianness and a different pointer size which is handled by -/// the P template parameter. -template -class RemoteAddressSpace { -public: - RemoteAddressSpace(task_t task) : fTask(task) {} - - typedef typename P::uint_t pint_t; - - uint8_t get8(pint_t addr); - uint16_t get16(pint_t addr); - uint32_t get32(pint_t addr); - uint64_t get64(pint_t addr); - pint_t getP(pint_t addr); - uint64_t getRegister(pint_t addr); - uint64_t getULEB128(pint_t &addr, pint_t end); - int64_t getSLEB128(pint_t &addr, pint_t end); - pint_t getEncodedP(pint_t &addr, pint_t end, uint8_t encoding, - pint_t datarelBase = 0); - bool findFunctionName(pint_t addr, char *buf, size_t bufLen, - unw_word_t *offset); - bool findUnwindSections(pint_t targetAddr, UnwindInfoSections &info); - bool findOtherFDE(pint_t targetAddr, pint_t &fde); -private: - void *localCopy(pint_t addr); - - task_t fTask; -}; - -template uint8_t RemoteAddressSpace

::get8(pint_t addr) { - return *((uint8_t *)localCopy(addr)); -} - -template uint16_t RemoteAddressSpace

::get16(pint_t addr) { - return P::E::get16(*(uint16_t *)localCopy(addr)); -} - -template uint32_t RemoteAddressSpace

::get32(pint_t addr) { - return P::E::get32(*(uint32_t *)localCopy(addr)); -} - -template uint64_t RemoteAddressSpace

::get64(pint_t addr) { - return P::E::get64(*(uint64_t *)localCopy(addr)); -} - -template -typename P::uint_t RemoteAddressSpace

::getP(pint_t addr) { - return P::getP(*(uint64_t *)localCopy(addr)); -} - -template -typename P::uint_t OtherAddressSpace

::getRegister(pint_t addr) { - return P::getRegister(*(uint64_t *)localCopy(addr)); -} - -template -uint64_t OtherAddressSpace

::getULEB128(pint_t &addr, pint_t end) { - uintptr_t size = (end - addr); - LocalAddressSpace::pint_t laddr = (LocalAddressSpace::pint_t) localCopy(addr); - LocalAddressSpace::pint_t sladdr = laddr; - uint64_t result = LocalAddressSpace::getULEB128(laddr, laddr + size); - addr += (laddr - sladdr); - return result; -} - -template -int64_t RemoteAddressSpace

::getSLEB128(pint_t &addr, pint_t end) { - uintptr_t size = (end - addr); - LocalAddressSpace::pint_t laddr = (LocalAddressSpace::pint_t) localCopy(addr); - LocalAddressSpace::pint_t sladdr = laddr; - uint64_t result = LocalAddressSpace::getSLEB128(laddr, laddr + size); - addr += (laddr - sladdr); - return result; -} - -template void *RemoteAddressSpace

::localCopy(pint_t addr) { - // FIX ME -} - -template -bool RemoteAddressSpace

::findFunctionName(pint_t addr, char *buf, - size_t bufLen, - unw_word_t *offset) { - // FIX ME -} - -/// unw_addr_space is the base class that abstract unw_addr_space_t type in -/// libunwind.h points to. -struct unw_addr_space { - cpu_type_t cpuType; - task_t taskPort; -}; - -/// unw_addr_space_i386 is the concrete instance that a unw_addr_space_t points -/// to when examining -/// a 32-bit intel process. -struct unw_addr_space_i386 : public unw_addr_space { - unw_addr_space_i386(task_t task) : oas(task) {} - RemoteAddressSpace> oas; -}; - -/// unw_addr_space_x86_64 is the concrete instance that a unw_addr_space_t -/// points to when examining -/// a 64-bit intel process. -struct unw_addr_space_x86_64 : public unw_addr_space { - unw_addr_space_x86_64(task_t task) : oas(task) {} - RemoteAddressSpace> oas; -}; - -/// unw_addr_space_ppc is the concrete instance that a unw_addr_space_t points -/// to when examining -/// a 32-bit PowerPC process. -struct unw_addr_space_ppc : public unw_addr_space { - unw_addr_space_ppc(task_t task) : oas(task) {} - RemoteAddressSpace> oas; -}; - -/// unw_addr_space_ppc is the concrete instance that a unw_addr_space_t points -/// to when examining a 64-bit PowerPC process. -struct unw_addr_space_ppc64 : public unw_addr_space { - unw_addr_space_ppc64(task_t task) : oas(task) {} - RemoteAddressSpace> oas; -}; - -#endif // UNW_REMOTE } // namespace libunwind Modified: vendor/llvm-libunwind/dist/src/CompactUnwinder.hpp ============================================================================== --- vendor/llvm-libunwind/dist/src/CompactUnwinder.hpp Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/src/CompactUnwinder.hpp Tue Aug 20 20:51:22 2019 (r351286) @@ -1,9 +1,8 @@ //===-------------------------- CompactUnwinder.hpp -----------------------===// // -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // // // Does runtime stack unwinding using compact unwind encodings. Modified: vendor/llvm-libunwind/dist/src/DwarfInstructions.hpp ============================================================================== --- vendor/llvm-libunwind/dist/src/DwarfInstructions.hpp Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/src/DwarfInstructions.hpp Tue Aug 20 20:51:22 2019 (r351286) @@ -1,11 +1,10 @@ //===-------------------------- DwarfInstructions.hpp ---------------------===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. // -// // Processor specific interpretation of DWARF unwind info. // //===----------------------------------------------------------------------===// @@ -82,12 +81,11 @@ typename A::pint_t DwarfInstructions::getSavedRe const RegisterLocation &savedReg) { switch (savedReg.location) { case CFI_Parser::kRegisterInCFA: - return addressSpace.getRegister(cfa + (pint_t)savedReg.value); + return (pint_t)addressSpace.getRegister(cfa + (pint_t)savedReg.value); case CFI_Parser::kRegisterAtExpression: - return addressSpace.getRegister( - evaluateExpression((pint_t)savedReg.value, addressSpace, - registers, cfa)); + return (pint_t)addressSpace.getRegister(evaluateExpression( + (pint_t)savedReg.value, addressSpace, registers, cfa)); case CFI_Parser::kRegisterIsExpression: return evaluateExpression((pint_t)savedReg.value, addressSpace, @@ -231,6 +229,31 @@ int DwarfInstructions::stepWithDwarf(A &addressS // Skip unimp instruction if function returns a struct if ((addressSpace.get32(returnAddress) & 0xC1C00000) == 0) returnAddress += 4; + } +#endif + +#if defined(_LIBUNWIND_TARGET_PPC64) +#define PPC64_ELFV1_R2_LOAD_INST_ENCODING 0xe8410028u // ld r2,40(r1) +#define PPC64_ELFV1_R2_OFFSET 40 +#define PPC64_ELFV2_R2_LOAD_INST_ENCODING 0xe8410018u // ld r2,24(r1) +#define PPC64_ELFV2_R2_OFFSET 24 + // If the instruction at return address is a TOC (r2) restore, + // then r2 was saved and needs to be restored. + // ELFv2 ABI specifies that the TOC Pointer must be saved at SP + 24, + // while in ELFv1 ABI it is saved at SP + 40. + if (R::getArch() == REGISTERS_PPC64 && returnAddress != 0) { + pint_t sp = newRegisters.getRegister(UNW_REG_SP); + pint_t r2 = 0; + switch (addressSpace.get32(returnAddress)) { + case PPC64_ELFV1_R2_LOAD_INST_ENCODING: + r2 = addressSpace.get64(sp + PPC64_ELFV1_R2_OFFSET); + break; + case PPC64_ELFV2_R2_LOAD_INST_ENCODING: + r2 = addressSpace.get64(sp + PPC64_ELFV2_R2_OFFSET); + break; + } + if (r2) + newRegisters.setRegister(UNW_PPC64_R2, r2); } #endif Modified: vendor/llvm-libunwind/dist/src/DwarfParser.hpp ============================================================================== --- vendor/llvm-libunwind/dist/src/DwarfParser.hpp Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/src/DwarfParser.hpp Tue Aug 20 20:51:22 2019 (r351286) @@ -1,9 +1,8 @@ //===--------------------------- DwarfParser.hpp --------------------------===// // -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // // // Parses DWARF CFIs (FDEs and CIEs). Modified: vendor/llvm-libunwind/dist/src/EHHeaderParser.hpp ============================================================================== --- vendor/llvm-libunwind/dist/src/EHHeaderParser.hpp Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/src/EHHeaderParser.hpp Tue Aug 20 20:51:22 2019 (r351286) @@ -1,11 +1,10 @@ //===------------------------- EHHeaderParser.hpp -------------------------===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. // -// // Parses ELF .eh_frame_hdr sections. // //===----------------------------------------------------------------------===// @@ -36,7 +35,7 @@ template class EHHeaderParser { (public) uint8_t table_enc; }; - static void decodeEHHdr(A &addressSpace, pint_t ehHdrStart, pint_t ehHdrEnd, + static bool decodeEHHdr(A &addressSpace, pint_t ehHdrStart, pint_t ehHdrEnd, EHHeaderInfo &ehHdrInfo); static bool findFDE(A &addressSpace, pint_t pc, pint_t ehHdrStart, uint32_t sectionLength, @@ -53,12 +52,14 @@ template class EHHeaderParser { (public) }; template -void EHHeaderParser::decodeEHHdr(A &addressSpace, pint_t ehHdrStart, +bool EHHeaderParser::decodeEHHdr(A &addressSpace, pint_t ehHdrStart, pint_t ehHdrEnd, EHHeaderInfo &ehHdrInfo) { pint_t p = ehHdrStart; uint8_t version = addressSpace.get8(p++); - if (version != 1) - _LIBUNWIND_ABORT("Unsupported .eh_frame_hdr version"); + if (version != 1) { + _LIBUNWIND_LOG0("Unsupported .eh_frame_hdr version"); + return false; + } uint8_t eh_frame_ptr_enc = addressSpace.get8(p++); uint8_t fde_count_enc = addressSpace.get8(p++); @@ -71,6 +72,8 @@ void EHHeaderParser::decodeEHHdr(A &addressSpace, p ? 0 : addressSpace.getEncodedP(p, ehHdrEnd, fde_count_enc, ehHdrStart); ehHdrInfo.table = p; + + return true; } template @@ -102,7 +105,9 @@ bool EHHeaderParser::findFDE(A &addressSpace, pint_ pint_t ehHdrEnd = ehHdrStart + sectionLength; EHHeaderParser::EHHeaderInfo hdrInfo; - EHHeaderParser::decodeEHHdr(addressSpace, ehHdrStart, ehHdrEnd, hdrInfo); + if (!EHHeaderParser::decodeEHHdr(addressSpace, ehHdrStart, ehHdrEnd, + hdrInfo)) + return false; size_t tableEntrySize = getTableEntrySize(hdrInfo.table_enc); pint_t tableEntry; Modified: vendor/llvm-libunwind/dist/src/RWMutex.hpp ============================================================================== --- vendor/llvm-libunwind/dist/src/RWMutex.hpp Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/src/RWMutex.hpp Tue Aug 20 20:51:22 2019 (r351286) @@ -1,11 +1,10 @@ //===----------------------------- Registers.hpp --------------------------===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. // -// // Abstract interface to shared reader/writer log, hiding platform and // configuration differences. // @@ -18,7 +17,10 @@ #include #elif !defined(_LIBUNWIND_HAS_NO_THREADS) #include +#if defined(__unix__) && defined(__ELF__) && defined(_LIBUNWIND_HAS_COMMENT_LIB_PRAGMA) +#pragma comment(lib, "pthread") #endif +#endif namespace libunwind { @@ -57,14 +59,49 @@ class _LIBUNWIND_HIDDEN RWMutex { (private) SRWLOCK _lock = SRWLOCK_INIT; }; -#else +#elif !defined(LIBUNWIND_USE_WEAK_PTHREAD) class _LIBUNWIND_HIDDEN RWMutex { public: - bool lock_shared() { return pthread_rwlock_rdlock(&_lock) == 0; } + bool lock_shared() { return pthread_rwlock_rdlock(&_lock) == 0; } bool unlock_shared() { return pthread_rwlock_unlock(&_lock) == 0; } bool lock() { return pthread_rwlock_wrlock(&_lock) == 0; } bool unlock() { return pthread_rwlock_unlock(&_lock) == 0; } + +private: + pthread_rwlock_t _lock = PTHREAD_RWLOCK_INITIALIZER; +}; + +#else + +extern "C" int __attribute__((weak)) +pthread_create(pthread_t *thread, const pthread_attr_t *attr, + void *(*start_routine)(void *), void *arg); +extern "C" int __attribute__((weak)) +pthread_rwlock_rdlock(pthread_rwlock_t *lock); +extern "C" int __attribute__((weak)) +pthread_rwlock_wrlock(pthread_rwlock_t *lock); +extern "C" int __attribute__((weak)) +pthread_rwlock_unlock(pthread_rwlock_t *lock); + +// Calls to the locking functions are gated on pthread_create, and not the +// functions themselves, because the data structure should only be locked if +// another thread has been created. This is what similar libraries do. + +class _LIBUNWIND_HIDDEN RWMutex { +public: + bool lock_shared() { + return !pthread_create || (pthread_rwlock_rdlock(&_lock) == 0); + } + bool unlock_shared() { + return !pthread_create || (pthread_rwlock_unlock(&_lock) == 0); + } + bool lock() { + return !pthread_create || (pthread_rwlock_wrlock(&_lock) == 0); + } + bool unlock() { + return !pthread_create || (pthread_rwlock_unlock(&_lock) == 0); + } private: pthread_rwlock_t _lock = PTHREAD_RWLOCK_INITIALIZER; Modified: vendor/llvm-libunwind/dist/src/Registers.hpp ============================================================================== --- vendor/llvm-libunwind/dist/src/Registers.hpp Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/src/Registers.hpp Tue Aug 20 20:51:22 2019 (r351286) @@ -1,11 +1,10 @@ //===----------------------------- Registers.hpp --------------------------===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. // -// // Models register sets for supported processors. // //===----------------------------------------------------------------------===// @@ -2104,16 +2103,16 @@ class _LIBUNWIND_HIDDEN Registers_arm { (private) uint32_t __pc; // Program counter r15 }; - static void saveVFPWithFSTMD(unw_fpreg_t*); - static void saveVFPWithFSTMX(unw_fpreg_t*); - static void saveVFPv3(unw_fpreg_t*); - static void restoreVFPWithFLDMD(unw_fpreg_t*); - static void restoreVFPWithFLDMX(unw_fpreg_t*); - static void restoreVFPv3(unw_fpreg_t*); + static void saveVFPWithFSTMD(void*); + static void saveVFPWithFSTMX(void*); + static void saveVFPv3(void*); + static void restoreVFPWithFLDMD(void*); + static void restoreVFPWithFLDMX(void*); + static void restoreVFPv3(void*); #if defined(__ARM_WMMX) - static void saveiWMMX(unw_fpreg_t*); + static void saveiWMMX(void*); static void saveiWMMXControl(uint32_t*); - static void restoreiWMMX(unw_fpreg_t*); + static void restoreiWMMX(void*); static void restoreiWMMXControl(uint32_t*); #endif void restoreCoreAndJumpTo(); @@ -2155,7 +2154,7 @@ inline Registers_arm::Registers_arm(const void *regist _saved_vfp_d16_d31(false) { static_assert((check_fit::does_fit), "arm registers do not fit into unw_context_t"); - // See unw_getcontext() note about data. + // See __unw_getcontext() note about data. memcpy(&_registers, registers, sizeof(_registers)); memset(&_vfp_d0_d15_pad, 0, sizeof(_vfp_d0_d15_pad)); memset(&_vfp_d16_d31, 0, sizeof(_vfp_d16_d31)); @@ -2434,7 +2433,7 @@ inline const char *Registers_arm::getRegisterName(int inline bool Registers_arm::validFloatRegister(int regNum) const { // NOTE: Consider the intel MMX registers floating points so the - // unw_get_fpreg can be used to transmit the 64-bit data back. + // __unw_get_fpreg can be used to transmit the 64-bit data back. return ((regNum >= UNW_ARM_D0) && (regNum <= UNW_ARM_D31)) #if defined(__ARM_WMMX) || ((regNum >= UNW_ARM_WR0) && (regNum <= UNW_ARM_WR15)) Modified: vendor/llvm-libunwind/dist/src/Unwind-EHABI.cpp ============================================================================== --- vendor/llvm-libunwind/dist/src/Unwind-EHABI.cpp Tue Aug 20 20:51:20 2019 (r351285) +++ vendor/llvm-libunwind/dist/src/Unwind-EHABI.cpp Tue Aug 20 20:51:22 2019 (r351286) @@ -1,11 +1,10 @@ //===--------------------------- Unwind-EHABI.cpp -------------------------===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. // -// // Implements ARM zero-cost C++ exceptions // //===----------------------------------------------------------------------===// @@ -21,8 +20,6 @@ #include #include -#include - #include "config.h" #include "libunwind.h" #include "libunwind_ext.h" @@ -34,7 +31,11 @@ namespace { // signinficant byte. uint8_t getByte(const uint32_t* data, size_t offset) { const uint8_t* byteData = reinterpret_cast(data); +#ifdef __LITTLE_ENDIAN__ return byteData[(offset & ~(size_t)0x03) + (3 - (offset & (size_t)0x03))]; +#else + return byteData[offset]; +#endif } const char* getNextWord(const char* data, uint32_t* out) { @@ -182,7 +183,7 @@ static _Unwind_Reason_Code unwindOneFrame(_Unwind_Stat if (result != _URC_CONTINUE_UNWIND) return result; - if (unw_step(reinterpret_cast(context)) != UNW_STEP_SUCCESS) + if (__unw_step(reinterpret_cast(context)) != UNW_STEP_SUCCESS) return _URC_FAILURE; return _URC_CONTINUE_UNWIND; } @@ -443,17 +444,18 @@ unwind_phase1(unw_context_t *uc, unw_cursor_t *cursor, // In this implementation, the phases don't share the VRS backing store. // Instead, they are passed the original |uc| and they create a new VRS // from scratch thus achieving the same effect. - unw_init_local(cursor, uc); + __unw_init_local(cursor, uc); // Walk each frame looking for a place to stop. for (bool handlerNotFound = true; handlerNotFound;) { // See if frame has code to run (has personality routine). unw_proc_info_t frameInfo; - if (unw_get_proc_info(cursor, &frameInfo) != UNW_ESUCCESS) { - _LIBUNWIND_TRACE_UNWINDING("unwind_phase1(ex_ojb=%p): unw_get_proc_info " - "failed => _URC_FATAL_PHASE1_ERROR", - static_cast(exception_object)); + if (__unw_get_proc_info(cursor, &frameInfo) != UNW_ESUCCESS) { + _LIBUNWIND_TRACE_UNWINDING( + "unwind_phase1(ex_ojb=%p): __unw_get_proc_info " + "failed => _URC_FATAL_PHASE1_ERROR", + static_cast(exception_object)); return _URC_FATAL_PHASE1_ERROR; } @@ -462,12 +464,12 @@ unwind_phase1(unw_context_t *uc, unw_cursor_t *cursor, char functionBuf[512]; const char *functionName = functionBuf; unw_word_t offset; - if ((unw_get_proc_name(cursor, functionBuf, sizeof(functionBuf), - &offset) != UNW_ESUCCESS) || + if ((__unw_get_proc_name(cursor, functionBuf, sizeof(functionBuf), + &offset) != UNW_ESUCCESS) || (frameInfo.start_ip + offset > frameInfo.end_ip)) functionName = ".anonymous."; unw_word_t pc; - unw_get_reg(cursor, UNW_REG_IP, &pc); + __unw_get_reg(cursor, UNW_REG_IP, &pc); _LIBUNWIND_TRACE_UNWINDING( "unwind_phase1(ex_ojb=%p): pc=0x%" PRIxPTR ", start_ip=0x%" PRIxPTR ", func=%s, " "lsda=0x%" PRIxPTR ", personality=0x%" PRIxPTR, @@ -537,7 +539,7 @@ static _Unwind_Reason_Code unwind_phase2(unw_context_t _Unwind_Exception *exception_object, bool resume) { // See comment at the start of unwind_phase1 regarding VRS integrity. - unw_init_local(cursor, uc); + __unw_init_local(cursor, uc); _LIBUNWIND_TRACE_UNWINDING("unwind_phase2(ex_ojb=%p)", static_cast(exception_object)); @@ -559,19 +561,20 @@ static _Unwind_Reason_Code unwind_phase2(unw_context_t // for. After this, continue unwinding as if normal. // // See #7.4.6 for details. - unw_set_reg(cursor, UNW_REG_IP, - exception_object->unwinder_cache.reserved2); + __unw_set_reg(cursor, UNW_REG_IP, + exception_object->unwinder_cache.reserved2); resume = false; } // Get info about this frame. unw_word_t sp; unw_proc_info_t frameInfo; - unw_get_reg(cursor, UNW_REG_SP, &sp); - if (unw_get_proc_info(cursor, &frameInfo) != UNW_ESUCCESS) { - _LIBUNWIND_TRACE_UNWINDING("unwind_phase2(ex_ojb=%p): unw_get_proc_info " - "failed => _URC_FATAL_PHASE2_ERROR", - static_cast(exception_object)); + __unw_get_reg(cursor, UNW_REG_SP, &sp); + if (__unw_get_proc_info(cursor, &frameInfo) != UNW_ESUCCESS) { + _LIBUNWIND_TRACE_UNWINDING( + "unwind_phase2(ex_ojb=%p): __unw_get_proc_info " + "failed => _URC_FATAL_PHASE2_ERROR", + static_cast(exception_object)); return _URC_FATAL_PHASE2_ERROR; } @@ -580,8 +583,8 @@ static _Unwind_Reason_Code unwind_phase2(unw_context_t char functionBuf[512]; const char *functionName = functionBuf; unw_word_t offset; - if ((unw_get_proc_name(cursor, functionBuf, sizeof(functionBuf), - &offset) != UNW_ESUCCESS) || + if ((__unw_get_proc_name(cursor, functionBuf, sizeof(functionBuf), + &offset) != UNW_ESUCCESS) || (frameInfo.start_ip + offset > frameInfo.end_ip)) functionName = ".anonymous."; _LIBUNWIND_TRACE_UNWINDING( @@ -625,8 +628,8 @@ static _Unwind_Reason_Code unwind_phase2(unw_context_t // We may get control back if landing pad calls _Unwind_Resume(). if (_LIBUNWIND_TRACING_UNWINDING) { unw_word_t pc; - unw_get_reg(cursor, UNW_REG_IP, &pc); - unw_get_reg(cursor, UNW_REG_SP, &sp); + __unw_get_reg(cursor, UNW_REG_IP, &pc); + __unw_get_reg(cursor, UNW_REG_SP, &sp); _LIBUNWIND_TRACE_UNWINDING("unwind_phase2(ex_ojb=%p): re-entering " "user code with ip=0x%" PRIxPTR ", sp=0x%" PRIxPTR, static_cast(exception_object), @@ -637,11 +640,11 @@ static _Unwind_Reason_Code unwind_phase2(unw_context_t // EHABI #7.4.1 says we need to preserve pc for when _Unwind_Resume // is called back, to find this same frame. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Aug 20 20:51:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1EE9EE0118; Tue, 20 Aug 2019 20:51:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CjdK0fZ0z41Rg; Tue, 20 Aug 2019 20:51:33 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EB9DE9013; Tue, 20 Aug 2019 20:51: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 x7KKpWm0077144; Tue, 20 Aug 2019 20:51:32 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKpWep077141; Tue, 20 Aug 2019 20:51:32 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202051.x7KKpWep077141@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:51:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351288 - in vendor/lld/dist: . COFF Common ELF ELF/Arch docs include/lld/Common include/lld/Core include/lld/ReaderWriter lib/Core lib/Driver lib/ReaderWriter lib/ReaderWriter/MachO li... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/lld/dist: . COFF Common ELF ELF/Arch docs include/lld/Common include/lld/Core include/lld/ReaderWriter lib/Core lib/Driver lib/ReaderWriter lib/ReaderWriter/MachO lib/ReaderWriter/YAML tools... X-SVN-Commit-Revision: 351288 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:51:33 -0000 Author: dim Date: Tue Aug 20 20:51:32 2019 New Revision: 351288 URL: https://svnweb.freebsd.org/changeset/base/351288 Log: Vendor import of stripped lld trunk r366426 (just before the release_90 branch point): https://llvm.org/svn/llvm-project/lld/trunk@366426 Added: vendor/lld/dist/COFF/DebugTypes.cpp vendor/lld/dist/COFF/DebugTypes.h vendor/lld/dist/COFF/TypeMerger.h vendor/lld/dist/Common/Filesystem.cpp vendor/lld/dist/docs/Partitions.rst vendor/lld/dist/docs/partitions.dot vendor/lld/dist/docs/partitions.svg (contents, props changed) vendor/lld/dist/include/lld/Common/Filesystem.h Deleted: vendor/lld/dist/ELF/Bits.h vendor/lld/dist/ELF/Filesystem.cpp vendor/lld/dist/ELF/Filesystem.h Modified: vendor/lld/dist/COFF/CMakeLists.txt vendor/lld/dist/COFF/Chunks.cpp vendor/lld/dist/COFF/Chunks.h vendor/lld/dist/COFF/Config.h vendor/lld/dist/COFF/DLL.cpp vendor/lld/dist/COFF/DLL.h vendor/lld/dist/COFF/Driver.cpp vendor/lld/dist/COFF/Driver.h vendor/lld/dist/COFF/DriverUtils.cpp vendor/lld/dist/COFF/ICF.cpp vendor/lld/dist/COFF/ICF.h vendor/lld/dist/COFF/InputFiles.cpp vendor/lld/dist/COFF/InputFiles.h vendor/lld/dist/COFF/LTO.cpp vendor/lld/dist/COFF/LTO.h vendor/lld/dist/COFF/MapFile.cpp vendor/lld/dist/COFF/MapFile.h vendor/lld/dist/COFF/MarkLive.cpp vendor/lld/dist/COFF/MarkLive.h vendor/lld/dist/COFF/MinGW.cpp vendor/lld/dist/COFF/MinGW.h vendor/lld/dist/COFF/Options.td vendor/lld/dist/COFF/PDB.cpp vendor/lld/dist/COFF/PDB.h vendor/lld/dist/COFF/SymbolTable.cpp vendor/lld/dist/COFF/SymbolTable.h vendor/lld/dist/COFF/Symbols.cpp vendor/lld/dist/COFF/Symbols.h vendor/lld/dist/COFF/Writer.cpp vendor/lld/dist/COFF/Writer.h vendor/lld/dist/Common/Args.cpp vendor/lld/dist/Common/CMakeLists.txt vendor/lld/dist/Common/ErrorHandler.cpp vendor/lld/dist/Common/Memory.cpp vendor/lld/dist/Common/Reproduce.cpp vendor/lld/dist/Common/Strings.cpp vendor/lld/dist/Common/TargetOptionsCommandFlags.cpp vendor/lld/dist/Common/Threads.cpp vendor/lld/dist/Common/Timer.cpp vendor/lld/dist/Common/Version.cpp vendor/lld/dist/ELF/AArch64ErrataFix.cpp vendor/lld/dist/ELF/AArch64ErrataFix.h vendor/lld/dist/ELF/Arch/AArch64.cpp vendor/lld/dist/ELF/Arch/AMDGPU.cpp vendor/lld/dist/ELF/Arch/ARM.cpp vendor/lld/dist/ELF/Arch/AVR.cpp vendor/lld/dist/ELF/Arch/Hexagon.cpp vendor/lld/dist/ELF/Arch/MSP430.cpp vendor/lld/dist/ELF/Arch/Mips.cpp vendor/lld/dist/ELF/Arch/MipsArchTree.cpp vendor/lld/dist/ELF/Arch/PPC.cpp vendor/lld/dist/ELF/Arch/PPC64.cpp vendor/lld/dist/ELF/Arch/RISCV.cpp vendor/lld/dist/ELF/Arch/SPARCV9.cpp vendor/lld/dist/ELF/Arch/X86.cpp vendor/lld/dist/ELF/Arch/X86_64.cpp vendor/lld/dist/ELF/CMakeLists.txt vendor/lld/dist/ELF/CallGraphSort.cpp vendor/lld/dist/ELF/CallGraphSort.h vendor/lld/dist/ELF/Config.h vendor/lld/dist/ELF/DWARF.cpp vendor/lld/dist/ELF/DWARF.h vendor/lld/dist/ELF/Driver.cpp vendor/lld/dist/ELF/Driver.h vendor/lld/dist/ELF/DriverUtils.cpp vendor/lld/dist/ELF/EhFrame.cpp vendor/lld/dist/ELF/EhFrame.h vendor/lld/dist/ELF/ICF.cpp vendor/lld/dist/ELF/ICF.h vendor/lld/dist/ELF/InputFiles.cpp vendor/lld/dist/ELF/InputFiles.h vendor/lld/dist/ELF/InputSection.cpp vendor/lld/dist/ELF/InputSection.h vendor/lld/dist/ELF/LTO.cpp vendor/lld/dist/ELF/LTO.h vendor/lld/dist/ELF/LinkerScript.cpp vendor/lld/dist/ELF/LinkerScript.h vendor/lld/dist/ELF/MapFile.cpp vendor/lld/dist/ELF/MapFile.h vendor/lld/dist/ELF/MarkLive.cpp vendor/lld/dist/ELF/MarkLive.h vendor/lld/dist/ELF/Options.td vendor/lld/dist/ELF/OutputSections.cpp vendor/lld/dist/ELF/OutputSections.h vendor/lld/dist/ELF/Relocations.cpp vendor/lld/dist/ELF/Relocations.h vendor/lld/dist/ELF/ScriptLexer.cpp vendor/lld/dist/ELF/ScriptLexer.h vendor/lld/dist/ELF/ScriptParser.cpp vendor/lld/dist/ELF/ScriptParser.h vendor/lld/dist/ELF/SymbolTable.cpp vendor/lld/dist/ELF/SymbolTable.h vendor/lld/dist/ELF/Symbols.cpp vendor/lld/dist/ELF/Symbols.h vendor/lld/dist/ELF/SyntheticSections.cpp vendor/lld/dist/ELF/SyntheticSections.h vendor/lld/dist/ELF/Target.cpp vendor/lld/dist/ELF/Target.h vendor/lld/dist/ELF/Thunks.cpp vendor/lld/dist/ELF/Thunks.h vendor/lld/dist/ELF/Writer.cpp vendor/lld/dist/ELF/Writer.h vendor/lld/dist/LICENSE.TXT vendor/lld/dist/docs/NewLLD.rst vendor/lld/dist/docs/ReleaseNotes.rst vendor/lld/dist/docs/WebAssembly.rst vendor/lld/dist/docs/conf.py vendor/lld/dist/docs/getting_started.rst vendor/lld/dist/docs/index.rst vendor/lld/dist/docs/ld.lld.1 vendor/lld/dist/docs/missingkeyfunction.rst vendor/lld/dist/docs/sphinx_intro.rst vendor/lld/dist/include/lld/Common/Args.h vendor/lld/dist/include/lld/Common/Driver.h vendor/lld/dist/include/lld/Common/ErrorHandler.h vendor/lld/dist/include/lld/Common/LLVM.h vendor/lld/dist/include/lld/Common/Memory.h vendor/lld/dist/include/lld/Common/Reproduce.h vendor/lld/dist/include/lld/Common/Strings.h vendor/lld/dist/include/lld/Common/TargetOptionsCommandFlags.h vendor/lld/dist/include/lld/Common/Threads.h vendor/lld/dist/include/lld/Common/Timer.h vendor/lld/dist/include/lld/Common/Version.h vendor/lld/dist/include/lld/Core/AbsoluteAtom.h vendor/lld/dist/include/lld/Core/ArchiveLibraryFile.h vendor/lld/dist/include/lld/Core/Atom.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/Instrumentation.h vendor/lld/dist/include/lld/Core/LinkingContext.h vendor/lld/dist/include/lld/Core/Node.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/SharedLibraryAtom.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/UndefinedAtom.h vendor/lld/dist/include/lld/Core/Writer.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/DarwinLdDriver.cpp vendor/lld/dist/lib/ReaderWriter/FileArchive.cpp vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler.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/CompactUnwindPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/DebugInfo.h vendor/lld/dist/lib/ReaderWriter/MachO/ExecutableAtoms.h vendor/lld/dist/lib/ReaderWriter/MachO/File.h vendor/lld/dist/lib/ReaderWriter/MachO/FlatNamespaceFile.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/MachONormalizedFileBinaryUtils.h 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/ObjCPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/SectCreateFile.h vendor/lld/dist/lib/ReaderWriter/MachO/ShimPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/StubsPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/TLVPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/WriterMachO.cpp vendor/lld/dist/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp vendor/lld/dist/tools/lld/CMakeLists.txt vendor/lld/dist/tools/lld/lld.cpp Modified: vendor/lld/dist/COFF/CMakeLists.txt ============================================================================== --- vendor/lld/dist/COFF/CMakeLists.txt Tue Aug 20 20:51:28 2019 (r351287) +++ vendor/lld/dist/COFF/CMakeLists.txt Tue Aug 20 20:51:32 2019 (r351288) @@ -8,6 +8,7 @@ endif() add_lld_library(lldCOFF Chunks.cpp + DebugTypes.cpp DLL.cpp Driver.cpp DriverUtils.cpp Modified: vendor/lld/dist/COFF/Chunks.cpp ============================================================================== --- vendor/lld/dist/COFF/Chunks.cpp Tue Aug 20 20:51:28 2019 (r351287) +++ vendor/lld/dist/COFF/Chunks.cpp Tue Aug 20 20:51:32 2019 (r351288) @@ -1,10 +1,9 @@ //===- Chunks.cpp ---------------------------------------------------------===// // -// The LLVM Linker +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #include "Chunks.h" @@ -30,203 +29,201 @@ using llvm::support::ulittle32_t; namespace lld { namespace coff { -SectionChunk::SectionChunk(ObjFile *F, const coff_section *H) - : Chunk(SectionKind), Repl(this), Header(H), File(F), - Relocs(File->getCOFFObj()->getRelocations(Header)) { - // Initialize SectionName. - File->getCOFFObj()->getSectionName(Header, SectionName); +SectionChunk::SectionChunk(ObjFile *f, const coff_section *h) + : Chunk(SectionKind), file(f), header(h), repl(this) { + // Initialize relocs. + setRelocs(file->getCOFFObj()->getRelocations(header)); - Alignment = Header->getAlignment(); + // Initialize sectionName. + StringRef sectionName; + if (Expected e = file->getCOFFObj()->getSectionName(header)) + sectionName = *e; + sectionNameData = sectionName.data(); + sectionNameSize = sectionName.size(); + setAlignment(header->getAlignment()); + + hasData = !(header->Characteristics & IMAGE_SCN_CNT_UNINITIALIZED_DATA); + // If linker GC is disabled, every chunk starts out alive. If linker GC is // enabled, treat non-comdat sections as roots. Generally optimized object // files will be built with -ffunction-sections or /Gy, so most things worth // stripping will be in a comdat. - Live = !Config->DoGC || !isCOMDAT(); + live = !config->doGC || !isCOMDAT(); } -// Initialize the RelocTargets vector, to allow redirecting certain relocations -// to a thunk instead of the actual symbol the relocation's symbol table index -// indicates. -void SectionChunk::readRelocTargets() { - assert(RelocTargets.empty()); - RelocTargets.reserve(Relocs.size()); - for (const coff_relocation &Rel : Relocs) - RelocTargets.push_back(File->getSymbol(Rel.SymbolTableIndex)); -} +// SectionChunk is one of the most frequently allocated classes, so it is +// important to keep it as compact as possible. As of this writing, the number +// below is the size of this class on x64 platforms. +static_assert(sizeof(SectionChunk) <= 88, "SectionChunk grew unexpectedly"); -// Reset RelocTargets to their original targets before thunks were added. -void SectionChunk::resetRelocTargets() { - for (size_t I = 0, E = Relocs.size(); I < E; ++I) - RelocTargets[I] = File->getSymbol(Relocs[I].SymbolTableIndex); -} +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); } +static void or32(uint8_t *p, uint32_t v) { write32le(p, read32le(p) | v); } -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); } -static void or32(uint8_t *P, uint32_t V) { write32le(P, read32le(P) | V); } - // Verify that given sections are appropriate targets for SECREL // relocations. This check is relaxed because unfortunately debug // sections have section-relative relocations against absolute symbols. -static bool checkSecRel(const SectionChunk *Sec, OutputSection *OS) { - if (OS) +static bool checkSecRel(const SectionChunk *sec, OutputSection *os) { + if (os) return true; - if (Sec->isCodeView()) + if (sec->isCodeView()) return false; error("SECREL relocation cannot be applied to absolute symbols"); return false; } -static void applySecRel(const SectionChunk *Sec, uint8_t *Off, - OutputSection *OS, uint64_t S) { - if (!checkSecRel(Sec, OS)) +static void applySecRel(const SectionChunk *sec, uint8_t *off, + OutputSection *os, uint64_t s) { + if (!checkSecRel(sec, os)) return; - uint64_t SecRel = S - OS->getRVA(); - if (SecRel > UINT32_MAX) { - error("overflow in SECREL relocation in section: " + Sec->getSectionName()); + uint64_t secRel = s - os->getRVA(); + if (secRel > UINT32_MAX) { + error("overflow in SECREL relocation in section: " + sec->getSectionName()); return; } - add32(Off, SecRel); + add32(off, secRel); } -static void applySecIdx(uint8_t *Off, OutputSection *OS) { +static void applySecIdx(uint8_t *off, OutputSection *os) { // Absolute symbol doesn't have section index, but section index relocation // against absolute symbol should be resolved to one plus the last output // section index. This is required for compatibility with MSVC. - if (OS) - add16(Off, OS->SectionIndex); + if (os) + add16(off, os->sectionIndex); else - add16(Off, DefinedAbsolute::NumOutputSections + 1); + add16(off, DefinedAbsolute::numOutputSections + 1); } -void SectionChunk::applyRelX64(uint8_t *Off, uint16_t Type, OutputSection *OS, - uint64_t S, uint64_t P) const { - 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: applySecIdx(Off, OS); break; - case IMAGE_REL_AMD64_SECREL: applySecRel(this, Off, OS, S); break; +void SectionChunk::applyRelX64(uint8_t *off, uint16_t type, OutputSection *os, + uint64_t s, uint64_t p) const { + 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: applySecIdx(off, os); break; + case IMAGE_REL_AMD64_SECREL: applySecRel(this, off, os, s); break; default: - error("unsupported relocation type 0x" + Twine::utohexstr(Type) + " in " + - toString(File)); + error("unsupported relocation type 0x" + Twine::utohexstr(type) + " in " + + toString(file)); } } -void SectionChunk::applyRelX86(uint8_t *Off, uint16_t Type, OutputSection *OS, - uint64_t S, uint64_t P) const { - switch (Type) { +void SectionChunk::applyRelX86(uint8_t *off, uint16_t type, OutputSection *os, + uint64_t s, uint64_t p) const { + 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: applySecIdx(Off, OS); break; - case IMAGE_REL_I386_SECREL: applySecRel(this, Off, OS, S); 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: applySecIdx(off, os); break; + case IMAGE_REL_I386_SECREL: applySecRel(this, off, os, s); break; default: - error("unsupported relocation type 0x" + Twine::utohexstr(Type) + " in " + - toString(File)); + error("unsupported relocation type 0x" + Twine::utohexstr(type) + " in " + + toString(file)); } } -static void applyMOV(uint8_t *Off, uint16_t V) { - write16le(Off, (read16le(Off) & 0xfbf0) | ((V & 0x800) >> 1) | ((V >> 12) & 0xf)); - write16le(Off + 2, (read16le(Off + 2) & 0x8f00) | ((V & 0x700) << 4) | (V & 0xff)); +static void applyMOV(uint8_t *off, uint16_t v) { + write16le(off, (read16le(off) & 0xfbf0) | ((v & 0x800) >> 1) | ((v >> 12) & 0xf)); + write16le(off + 2, (read16le(off + 2) & 0x8f00) | ((v & 0x700) << 4) | (v & 0xff)); } -static uint16_t readMOV(uint8_t *Off, bool MOVT) { - uint16_t Op1 = read16le(Off); - if ((Op1 & 0xfbf0) != (MOVT ? 0xf2c0 : 0xf240)) - error("unexpected instruction in " + Twine(MOVT ? "MOVT" : "MOVW") + +static uint16_t readMOV(uint8_t *off, bool movt) { + uint16_t op1 = read16le(off); + if ((op1 & 0xfbf0) != (movt ? 0xf2c0 : 0xf240)) + error("unexpected instruction in " + Twine(movt ? "MOVT" : "MOVW") + " instruction in MOV32T relocation"); - uint16_t Op2 = read16le(Off + 2); - if ((Op2 & 0x8000) != 0) - error("unexpected instruction in " + Twine(MOVT ? "MOVT" : "MOVW") + + uint16_t op2 = read16le(off + 2); + if ((op2 & 0x8000) != 0) + error("unexpected instruction in " + Twine(movt ? "MOVT" : "MOVW") + " instruction in MOV32T relocation"); - return (Op2 & 0x00ff) | ((Op2 >> 4) & 0x0700) | ((Op1 << 1) & 0x0800) | - ((Op1 & 0x000f) << 12); + return (op2 & 0x00ff) | ((op2 >> 4) & 0x0700) | ((op1 << 1) & 0x0800) | + ((op1 & 0x000f) << 12); } -void applyMOV32T(uint8_t *Off, uint32_t V) { - uint16_t ImmW = readMOV(Off, false); // read MOVW operand - uint16_t ImmT = readMOV(Off + 4, true); // read MOVT operand - uint32_t Imm = ImmW | (ImmT << 16); - V += Imm; // add the immediate offset - applyMOV(Off, V); // set MOVW operand - applyMOV(Off + 4, V >> 16); // set MOVT operand +void applyMOV32T(uint8_t *off, uint32_t v) { + uint16_t immW = readMOV(off, false); // read MOVW operand + uint16_t immT = readMOV(off + 4, true); // read MOVT operand + uint32_t imm = immW | (immT << 16); + v += imm; // add the immediate offset + applyMOV(off, v); // set MOVW operand + applyMOV(off + 4, v >> 16); // set MOVT operand } -static void applyBranch20T(uint8_t *Off, int32_t V) { - if (!isInt<21>(V)) +static void applyBranch20T(uint8_t *off, int32_t v) { + if (!isInt<21>(v)) error("relocation out of range"); - 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)); + 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)); } -void applyBranch24T(uint8_t *Off, int32_t V) { - if (!isInt<25>(V)) +void applyBranch24T(uint8_t *off, int32_t v) { + if (!isInt<25>(v)) error("relocation out of range"); - 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)); + 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)); // Clear out the J1 and J2 bits which may be set. - write16le(Off + 2, (read16le(Off + 2) & 0xd000) | (J1 << 13) | (J2 << 11) | ((V >> 1) & 0x7ff)); + write16le(off + 2, (read16le(off + 2) & 0xd000) | (j1 << 13) | (j2 << 11) | ((v >> 1) & 0x7ff)); } -void SectionChunk::applyRelARM(uint8_t *Off, uint16_t Type, OutputSection *OS, - uint64_t S, uint64_t P) const { +void SectionChunk::applyRelARM(uint8_t *off, uint16_t type, OutputSection *os, + uint64_t s, uint64_t p) const { // Pointer to thumb code must have the LSB set. - uint64_t SX = S; - if (OS && (OS->Header.Characteristics & IMAGE_SCN_MEM_EXECUTE)) - SX |= 1; - switch (Type) { - case IMAGE_REL_ARM_ADDR32: add32(Off, SX + Config->ImageBase); break; - case IMAGE_REL_ARM_ADDR32NB: add32(Off, SX); break; - case IMAGE_REL_ARM_MOV32T: applyMOV32T(Off, SX + Config->ImageBase); break; - case IMAGE_REL_ARM_BRANCH20T: applyBranch20T(Off, SX - P - 4); break; - case IMAGE_REL_ARM_BRANCH24T: applyBranch24T(Off, SX - P - 4); break; - case IMAGE_REL_ARM_BLX23T: applyBranch24T(Off, SX - P - 4); break; - case IMAGE_REL_ARM_SECTION: applySecIdx(Off, OS); break; - case IMAGE_REL_ARM_SECREL: applySecRel(this, Off, OS, S); break; + uint64_t sx = s; + if (os && (os->header.Characteristics & IMAGE_SCN_MEM_EXECUTE)) + sx |= 1; + switch (type) { + case IMAGE_REL_ARM_ADDR32: add32(off, sx + config->imageBase); break; + case IMAGE_REL_ARM_ADDR32NB: add32(off, sx); break; + case IMAGE_REL_ARM_MOV32T: applyMOV32T(off, sx + config->imageBase); break; + case IMAGE_REL_ARM_BRANCH20T: applyBranch20T(off, sx - p - 4); break; + case IMAGE_REL_ARM_BRANCH24T: applyBranch24T(off, sx - p - 4); break; + case IMAGE_REL_ARM_BLX23T: applyBranch24T(off, sx - p - 4); break; + case IMAGE_REL_ARM_SECTION: applySecIdx(off, os); break; + case IMAGE_REL_ARM_SECREL: applySecRel(this, off, os, s); break; + case IMAGE_REL_ARM_REL32: add32(off, sx - p - 4); break; default: - error("unsupported relocation type 0x" + Twine::utohexstr(Type) + " in " + - toString(File)); + error("unsupported relocation type 0x" + Twine::utohexstr(type) + " in " + + toString(file)); } } // Interpret the existing immediate value as a byte offset to the // target symbol, then update the instruction with the immediate as // the page offset from the current instruction to the target. -void applyArm64Addr(uint8_t *Off, uint64_t S, uint64_t P, int Shift) { - uint32_t Orig = read32le(Off); - uint64_t Imm = ((Orig >> 29) & 0x3) | ((Orig >> 3) & 0x1FFFFC); - S += Imm; - Imm = (S >> Shift) - (P >> Shift); - uint32_t ImmLo = (Imm & 0x3) << 29; - uint32_t ImmHi = (Imm & 0x1FFFFC) << 3; - uint64_t Mask = (0x3 << 29) | (0x1FFFFC << 3); - write32le(Off, (Orig & ~Mask) | ImmLo | ImmHi); +void applyArm64Addr(uint8_t *off, uint64_t s, uint64_t p, int shift) { + uint32_t orig = read32le(off); + uint64_t imm = ((orig >> 29) & 0x3) | ((orig >> 3) & 0x1FFFFC); + s += imm; + imm = (s >> shift) - (p >> shift); + uint32_t immLo = (imm & 0x3) << 29; + uint32_t immHi = (imm & 0x1FFFFC) << 3; + uint64_t mask = (0x3 << 29) | (0x1FFFFC << 3); + write32le(off, (orig & ~mask) | immLo | immHi); } // Update the immediate field in a AARCH64 ldr, str, and add instruction. // Optionally limit the range of the written immediate by one or more bits -// (RangeLimit). -void applyArm64Imm(uint8_t *Off, uint64_t Imm, uint32_t RangeLimit) { - uint32_t Orig = read32le(Off); - Imm += (Orig >> 10) & 0xFFF; - Orig &= ~(0xFFF << 10); - write32le(Off, Orig | ((Imm & (0xFFF >> RangeLimit)) << 10)); +// (rangeLimit). +void applyArm64Imm(uint8_t *off, uint64_t imm, uint32_t rangeLimit) { + uint32_t orig = read32le(off); + imm += (orig >> 10) & 0xFFF; + orig &= ~(0xFFF << 10); + write32le(off, orig | ((imm & (0xFFF >> rangeLimit)) << 10)); } // Add the 12 bit page offset to the existing immediate. @@ -237,171 +234,178 @@ void applyArm64Imm(uint8_t *Off, uint64_t Imm, uint32_ // Even if larger loads/stores have a larger range, limit the // effective offset to 12 bit, since it is intended to be a // page offset. -static void applyArm64Ldr(uint8_t *Off, uint64_t Imm) { - uint32_t Orig = read32le(Off); - uint32_t Size = Orig >> 30; +static void applyArm64Ldr(uint8_t *off, uint64_t imm) { + uint32_t orig = read32le(off); + uint32_t size = orig >> 30; // 0x04000000 indicates SIMD/FP registers // 0x00800000 indicates 128 bit - if ((Orig & 0x4800000) == 0x4800000) - Size += 4; - if ((Imm & ((1 << Size) - 1)) != 0) + if ((orig & 0x4800000) == 0x4800000) + size += 4; + if ((imm & ((1 << size) - 1)) != 0) error("misaligned ldr/str offset"); - applyArm64Imm(Off, Imm >> Size, Size); + applyArm64Imm(off, imm >> size, size); } -static void applySecRelLow12A(const SectionChunk *Sec, uint8_t *Off, - OutputSection *OS, uint64_t S) { - if (checkSecRel(Sec, OS)) - applyArm64Imm(Off, (S - OS->getRVA()) & 0xfff, 0); +static void applySecRelLow12A(const SectionChunk *sec, uint8_t *off, + OutputSection *os, uint64_t s) { + if (checkSecRel(sec, os)) + applyArm64Imm(off, (s - os->getRVA()) & 0xfff, 0); } -static void applySecRelHigh12A(const SectionChunk *Sec, uint8_t *Off, - OutputSection *OS, uint64_t S) { - if (!checkSecRel(Sec, OS)) +static void applySecRelHigh12A(const SectionChunk *sec, uint8_t *off, + OutputSection *os, uint64_t s) { + if (!checkSecRel(sec, os)) return; - uint64_t SecRel = (S - OS->getRVA()) >> 12; - if (0xfff < SecRel) { + uint64_t secRel = (s - os->getRVA()) >> 12; + if (0xfff < secRel) { error("overflow in SECREL_HIGH12A relocation in section: " + - Sec->getSectionName()); + sec->getSectionName()); return; } - applyArm64Imm(Off, SecRel & 0xfff, 0); + applyArm64Imm(off, secRel & 0xfff, 0); } -static void applySecRelLdr(const SectionChunk *Sec, uint8_t *Off, - OutputSection *OS, uint64_t S) { - if (checkSecRel(Sec, OS)) - applyArm64Ldr(Off, (S - OS->getRVA()) & 0xfff); +static void applySecRelLdr(const SectionChunk *sec, uint8_t *off, + OutputSection *os, uint64_t s) { + if (checkSecRel(sec, os)) + applyArm64Ldr(off, (s - os->getRVA()) & 0xfff); } -void applyArm64Branch26(uint8_t *Off, int64_t V) { - if (!isInt<28>(V)) +void applyArm64Branch26(uint8_t *off, int64_t v) { + if (!isInt<28>(v)) error("relocation out of range"); - or32(Off, (V & 0x0FFFFFFC) >> 2); + or32(off, (v & 0x0FFFFFFC) >> 2); } -static void applyArm64Branch19(uint8_t *Off, int64_t V) { - if (!isInt<21>(V)) +static void applyArm64Branch19(uint8_t *off, int64_t v) { + if (!isInt<21>(v)) error("relocation out of range"); - or32(Off, (V & 0x001FFFFC) << 3); + or32(off, (v & 0x001FFFFC) << 3); } -static void applyArm64Branch14(uint8_t *Off, int64_t V) { - if (!isInt<16>(V)) +static void applyArm64Branch14(uint8_t *off, int64_t v) { + if (!isInt<16>(v)) error("relocation out of range"); - or32(Off, (V & 0x0000FFFC) << 3); + or32(off, (v & 0x0000FFFC) << 3); } -void SectionChunk::applyRelARM64(uint8_t *Off, uint16_t Type, OutputSection *OS, - uint64_t S, uint64_t P) const { - switch (Type) { - case IMAGE_REL_ARM64_PAGEBASE_REL21: applyArm64Addr(Off, S, P, 12); break; - case IMAGE_REL_ARM64_REL21: applyArm64Addr(Off, S, P, 0); break; - case IMAGE_REL_ARM64_PAGEOFFSET_12A: applyArm64Imm(Off, S & 0xfff, 0); break; - case IMAGE_REL_ARM64_PAGEOFFSET_12L: applyArm64Ldr(Off, S & 0xfff); break; - case IMAGE_REL_ARM64_BRANCH26: applyArm64Branch26(Off, S - P); break; - case IMAGE_REL_ARM64_BRANCH19: applyArm64Branch19(Off, S - P); break; - case IMAGE_REL_ARM64_BRANCH14: applyArm64Branch14(Off, S - P); break; - case IMAGE_REL_ARM64_ADDR32: add32(Off, S + Config->ImageBase); break; - case IMAGE_REL_ARM64_ADDR32NB: add32(Off, S); break; - case IMAGE_REL_ARM64_ADDR64: add64(Off, S + Config->ImageBase); break; - case IMAGE_REL_ARM64_SECREL: applySecRel(this, Off, OS, S); break; - case IMAGE_REL_ARM64_SECREL_LOW12A: applySecRelLow12A(this, Off, OS, S); break; - case IMAGE_REL_ARM64_SECREL_HIGH12A: applySecRelHigh12A(this, Off, OS, S); break; - case IMAGE_REL_ARM64_SECREL_LOW12L: applySecRelLdr(this, Off, OS, S); break; - case IMAGE_REL_ARM64_SECTION: applySecIdx(Off, OS); break; +void SectionChunk::applyRelARM64(uint8_t *off, uint16_t type, OutputSection *os, + uint64_t s, uint64_t p) const { + switch (type) { + case IMAGE_REL_ARM64_PAGEBASE_REL21: applyArm64Addr(off, s, p, 12); break; + case IMAGE_REL_ARM64_REL21: applyArm64Addr(off, s, p, 0); break; + case IMAGE_REL_ARM64_PAGEOFFSET_12A: applyArm64Imm(off, s & 0xfff, 0); break; + case IMAGE_REL_ARM64_PAGEOFFSET_12L: applyArm64Ldr(off, s & 0xfff); break; + case IMAGE_REL_ARM64_BRANCH26: applyArm64Branch26(off, s - p); break; + case IMAGE_REL_ARM64_BRANCH19: applyArm64Branch19(off, s - p); break; + case IMAGE_REL_ARM64_BRANCH14: applyArm64Branch14(off, s - p); break; + case IMAGE_REL_ARM64_ADDR32: add32(off, s + config->imageBase); break; + case IMAGE_REL_ARM64_ADDR32NB: add32(off, s); break; + case IMAGE_REL_ARM64_ADDR64: add64(off, s + config->imageBase); break; + case IMAGE_REL_ARM64_SECREL: applySecRel(this, off, os, s); break; + case IMAGE_REL_ARM64_SECREL_LOW12A: applySecRelLow12A(this, off, os, s); break; + case IMAGE_REL_ARM64_SECREL_HIGH12A: applySecRelHigh12A(this, off, os, s); break; + case IMAGE_REL_ARM64_SECREL_LOW12L: applySecRelLdr(this, off, os, s); break; + case IMAGE_REL_ARM64_SECTION: applySecIdx(off, os); break; + case IMAGE_REL_ARM64_REL32: add32(off, s - p - 4); break; default: - error("unsupported relocation type 0x" + Twine::utohexstr(Type) + " in " + - toString(File)); + error("unsupported relocation type 0x" + Twine::utohexstr(type) + " in " + + toString(file)); } } -static void maybeReportRelocationToDiscarded(const SectionChunk *FromChunk, - Defined *Sym, - const coff_relocation &Rel) { +static void maybeReportRelocationToDiscarded(const SectionChunk *fromChunk, + Defined *sym, + const coff_relocation &rel) { // Don't report these errors when the relocation comes from a debug info // section or in mingw mode. MinGW mode object files (built by GCC) can // have leftover sections with relocations against discarded comdat // sections. Such sections are left as is, with relocations untouched. - if (FromChunk->isCodeView() || FromChunk->isDWARF() || Config->MinGW) + if (fromChunk->isCodeView() || fromChunk->isDWARF() || config->mingw) return; // Get the name of the symbol. If it's null, it was discarded early, so we // have to go back to the object file. - ObjFile *File = FromChunk->File; - StringRef Name; - if (Sym) { - Name = Sym->getName(); + ObjFile *file = fromChunk->file; + StringRef name; + if (sym) { + name = sym->getName(); } else { - COFFSymbolRef COFFSym = - check(File->getCOFFObj()->getSymbol(Rel.SymbolTableIndex)); - File->getCOFFObj()->getSymbolName(COFFSym, Name); + COFFSymbolRef coffSym = + check(file->getCOFFObj()->getSymbol(rel.SymbolTableIndex)); + file->getCOFFObj()->getSymbolName(coffSym, name); } - error("relocation against symbol in discarded section: " + Name + - getSymbolLocations(File, Rel.SymbolTableIndex)); + std::vector symbolLocations = + getSymbolLocations(file, rel.SymbolTableIndex); + + std::string out; + llvm::raw_string_ostream os(out); + os << "relocation against symbol in discarded section: " + name; + for (const std::string &s : symbolLocations) + os << s; + error(os.str()); } -void SectionChunk::writeTo(uint8_t *Buf) const { - if (!hasData()) +void SectionChunk::writeTo(uint8_t *buf) const { + if (!hasData) return; // Copy section contents from source object file to output file. - ArrayRef A = getContents(); - if (!A.empty()) - memcpy(Buf + OutputSectionOff, A.data(), A.size()); + ArrayRef a = getContents(); + if (!a.empty()) + memcpy(buf, a.data(), a.size()); // Apply relocations. - size_t InputSize = getSize(); - for (size_t I = 0, E = Relocs.size(); I < E; I++) { - const coff_relocation &Rel = Relocs[I]; + size_t inputSize = getSize(); + for (size_t i = 0, e = relocsSize; i < e; i++) { + const coff_relocation &rel = relocsData[i]; // Check for an invalid relocation offset. This check isn't perfect, because // we don't have the relocation size, which is only known after checking the // machine and relocation type. As a result, a relocation may overwrite the // beginning of the following input section. - if (Rel.VirtualAddress >= InputSize) { + if (rel.VirtualAddress >= inputSize) { error("relocation points beyond the end of its parent section"); continue; } - uint8_t *Off = Buf + OutputSectionOff + Rel.VirtualAddress; + uint8_t *off = buf + rel.VirtualAddress; - // Use the potentially remapped Symbol instead of the one that the - // relocation points to. - auto *Sym = dyn_cast_or_null(RelocTargets[I]); + auto *sym = + dyn_cast_or_null(file->getSymbol(rel.SymbolTableIndex)); // Get the output section of the symbol for this relocation. The output // section is needed to compute SECREL and SECTION relocations used in debug // info. - Chunk *C = Sym ? Sym->getChunk() : nullptr; - OutputSection *OS = C ? C->getOutputSection() : nullptr; + Chunk *c = sym ? sym->getChunk() : nullptr; + OutputSection *os = c ? c->getOutputSection() : nullptr; // Skip the relocation if it refers to a discarded section, and diagnose it // as an error if appropriate. If a symbol was discarded early, it may be // null. If it was discarded late, the output section will be null, unless // it was an absolute or synthetic symbol. - if (!Sym || - (!OS && !isa(Sym) && !isa(Sym))) { - maybeReportRelocationToDiscarded(this, Sym, Rel); + if (!sym || + (!os && !isa(sym) && !isa(sym))) { + maybeReportRelocationToDiscarded(this, sym, rel); continue; } - uint64_t S = Sym->getRVA(); + uint64_t s = sym->getRVA(); // Compute the RVA of the relocation for relative relocations. - uint64_t P = RVA + Rel.VirtualAddress; - switch (Config->Machine) { + uint64_t p = rva + rel.VirtualAddress; + switch (config->machine) { case AMD64: - applyRelX64(Off, Rel.Type, OS, S, P); + applyRelX64(off, rel.Type, os, s, p); break; case I386: - applyRelX86(Off, Rel.Type, OS, S, P); + applyRelX86(off, rel.Type, os, s, p); break; case ARMNT: - applyRelARM(Off, Rel.Type, OS, S, P); + applyRelARM(off, rel.Type, os, s, p); break; case ARM64: - applyRelARM64(Off, Rel.Type, OS, S, P); + applyRelARM64(off, rel.Type, os, s, p); break; default: llvm_unreachable("unknown machine type"); @@ -409,28 +413,32 @@ void SectionChunk::writeTo(uint8_t *Buf) const { } } -void SectionChunk::addAssociative(SectionChunk *Child) { - AssocChildren.push_back(Child); +void SectionChunk::addAssociative(SectionChunk *child) { + // Insert this child at the head of the list. + assert(child->assocChildren == nullptr && + "associated sections cannot have their own associated children"); + child->assocChildren = assocChildren; + assocChildren = child; } -static uint8_t getBaserelType(const coff_relocation &Rel) { - switch (Config->Machine) { +static uint8_t getBaserelType(const coff_relocation &rel) { + switch (config->machine) { case AMD64: - if (Rel.Type == IMAGE_REL_AMD64_ADDR64) + 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) + 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) + if (rel.Type == IMAGE_REL_ARM_ADDR32) return IMAGE_REL_BASED_HIGHLOW; - if (Rel.Type == IMAGE_REL_ARM_MOV32T) + if (rel.Type == IMAGE_REL_ARM_MOV32T) return IMAGE_REL_BASED_ARM_MOV32T; return IMAGE_REL_BASED_ABSOLUTE; case ARM64: - if (Rel.Type == IMAGE_REL_ARM64_ADDR64) + if (rel.Type == IMAGE_REL_ARM64_ADDR64) return IMAGE_REL_BASED_DIR64; return IMAGE_REL_BASED_ABSOLUTE; default: @@ -442,18 +450,16 @@ static uint8_t getBaserelType(const coff_relocation &R // 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 (size_t I = 0, E = Relocs.size(); I < E; I++) { - const coff_relocation &Rel = Relocs[I]; - uint8_t Ty = getBaserelType(Rel); - if (Ty == IMAGE_REL_BASED_ABSOLUTE) +void SectionChunk::getBaserels(std::vector *res) { + for (size_t i = 0, e = relocsSize; i < e; i++) { + const coff_relocation &rel = relocsData[i]; + uint8_t ty = getBaserelType(rel); + if (ty == IMAGE_REL_BASED_ABSOLUTE) continue; - // Use the potentially remapped Symbol instead of the one that the - // relocation points to. - Symbol *Target = RelocTargets[I]; - if (!Target || isa(Target)) + Symbol *target = file->getSymbol(rel.SymbolTableIndex); + if (!target || isa(target)) continue; - Res->emplace_back(RVA + Rel.VirtualAddress, Ty); + res->emplace_back(rva + rel.VirtualAddress, ty); } } @@ -464,7 +470,7 @@ void SectionChunk::getBaserels(std::vector *R // another DLL) This returns the size the relocation is supposed to update, // in bits, or 0 if the relocation cannot be handled as a runtime pseudo // relocation. -static int getRuntimePseudoRelocSize(uint16_t Type) { +static int getRuntimePseudoRelocSize(uint16_t type) { // Relocations that either contain an absolute address, or a plain // relative offset, since the runtime pseudo reloc implementation // adds 8/16/32/64 bit values to a memory address. @@ -490,9 +496,9 @@ static int getRuntimePseudoRelocSize(uint16_t Type) { // the image, or temporarily changed at runtime with VirtualProtect. // Since this only operates on direct address values, it doesn't work for // ARM/ARM64 relocations, other than the plain ADDR32/ADDR64 relocations. - switch (Config->Machine) { + switch (config->machine) { case AMD64: - switch (Type) { + switch (type) { case IMAGE_REL_AMD64_ADDR64: return 64; case IMAGE_REL_AMD64_ADDR32: @@ -507,7 +513,7 @@ static int getRuntimePseudoRelocSize(uint16_t Type) { return 0; } case I386: - switch (Type) { + switch (type) { case IMAGE_REL_I386_DIR32: case IMAGE_REL_I386_REL32: return 32; @@ -515,14 +521,14 @@ static int getRuntimePseudoRelocSize(uint16_t Type) { return 0; } case ARMNT: - switch (Type) { + switch (type) { case IMAGE_REL_ARM_ADDR32: return 32; default: return 0; } case ARM64: - switch (Type) { + switch (type) { case IMAGE_REL_ARM64_ADDR64: return 64; case IMAGE_REL_ARM64_ADDR32: @@ -541,75 +547,106 @@ static int getRuntimePseudoRelocSize(uint16_t Type) { // to a module local variable, which turned out to actually need to be // imported from another DLL). void SectionChunk::getRuntimePseudoRelocs( - std::vector &Res) { - for (const coff_relocation &Rel : Relocs) { - auto *Target = - dyn_cast_or_null(File->getSymbol(Rel.SymbolTableIndex)); - if (!Target || !Target->IsRuntimePseudoReloc) + std::vector &res) { + for (const coff_relocation &rel : getRelocs()) { + auto *target = + dyn_cast_or_null(file->getSymbol(rel.SymbolTableIndex)); + if (!target || !target->isRuntimePseudoReloc) continue; - int SizeInBits = getRuntimePseudoRelocSize(Rel.Type); - if (SizeInBits == 0) { - error("unable to automatically import from " + Target->getName() + + int sizeInBits = getRuntimePseudoRelocSize(rel.Type); + if (sizeInBits == 0) { + error("unable to automatically import from " + target->getName() + " with relocation type " + - File->getCOFFObj()->getRelocationTypeName(Rel.Type) + " in " + - toString(File)); + file->getCOFFObj()->getRelocationTypeName(rel.Type) + " in " + + toString(file)); continue; } - // SizeInBits is used to initialize the Flags field; currently no + // sizeInBits is used to initialize the Flags field; currently no // other flags are defined. - Res.emplace_back( - RuntimePseudoReloc(Target, this, Rel.VirtualAddress, SizeInBits)); + res.emplace_back( + RuntimePseudoReloc(target, this, rel.VirtualAddress, sizeInBits)); } } -bool SectionChunk::hasData() const { - return !(Header->Characteristics & IMAGE_SCN_CNT_UNINITIALIZED_DATA); -} - -uint32_t SectionChunk::getOutputCharacteristics() const { - return Header->Characteristics & (PermMask | TypeMask); -} - bool SectionChunk::isCOMDAT() const { - return Header->Characteristics & IMAGE_SCN_LNK_COMDAT; + 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) - message("Discarded " + Sym->getName()); + if (sym && this == repl) + message("Discarded " + sym->getName()); } -StringRef SectionChunk::getDebugName() { - if (Sym) - return Sym->getName(); +StringRef SectionChunk::getDebugName() const { + if (sym) + return sym->getName(); return ""; } ArrayRef SectionChunk::getContents() const { - ArrayRef A; - File->getCOFFObj()->getSectionContents(Header, A); - return A; + ArrayRef a; + cantFail(file->getCOFFObj()->getSectionContents(header, a)); + return a; } -void SectionChunk::replace(SectionChunk *Other) { - Alignment = std::max(Alignment, Other->Alignment); - Other->Repl = Repl; - Other->Live = false; +ArrayRef SectionChunk::consumeDebugMagic() { + assert(isCodeView()); + return consumeDebugMagic(getContents(), getSectionName()); } +ArrayRef SectionChunk::consumeDebugMagic(ArrayRef data, + StringRef sectionName) { + if (data.empty()) + return {}; + + // First 4 bytes are section magic. + if (data.size() < 4) + fatal("the section is too short: " + sectionName); + + if (!sectionName.startswith(".debug$")) + fatal("invalid section: " + sectionName); + + uint32_t magic = support::endian::read32le(data.data()); + uint32_t expectedMagic = sectionName == ".debug$H" + ? DEBUG_HASHES_SECTION_MAGIC + : DEBUG_SECTION_MAGIC; + if (magic != expectedMagic) { + warn("ignoring section " + sectionName + " with unrecognized magic 0x" + + utohexstr(magic)); + return {}; + } + return data.slice(4); +} + +SectionChunk *SectionChunk::findByName(ArrayRef sections, + StringRef name) { + for (SectionChunk *c : sections) + if (c->getSectionName() == name) + return c; + return nullptr; +} + +void SectionChunk::replace(SectionChunk *other) { + p2Align = std::max(p2Align, other->p2Align); + other->repl = repl; + other->live = false; +} + uint32_t SectionChunk::getSectionNumber() const { - DataRefImpl R; - R.p = reinterpret_cast(Header); - SectionRef S(R, File->getCOFFObj()); - return S.getIndex() + 1; + DataRefImpl r; + r.p = reinterpret_cast(header); + SectionRef s(r, file->getCOFFObj()); + return s.getIndex() + 1; } -CommonChunk::CommonChunk(const COFFSymbolRef S) : Sym(S) { - // Common symbols are aligned on natural boundaries up to 32 bytes. +CommonChunk::CommonChunk(const COFFSymbolRef s) : sym(s) { + // The value of a common symbol is its size. Align all common symbols smaller + // than 32 bytes naturally, i.e. round the size up to the next power of two. // This is what MSVC link.exe does. - Alignment = std::min(uint64_t(32), PowerOf2Ceil(Sym.getValue())); + setAlignment(std::min(32U, uint32_t(PowerOf2Ceil(sym.getValue())))); + hasData = false; } uint32_t CommonChunk::getOutputCharacteristics() const { @@ -617,119 +654,139 @@ uint32_t CommonChunk::getOutputCharacteristics() const IMAGE_SCN_MEM_WRITE; } -void StringChunk::writeTo(uint8_t *Buf) const { - memcpy(Buf + OutputSectionOff, Str.data(), Str.size()); - Buf[OutputSectionOff + Str.size()] = '\0'; +void StringChunk::writeTo(uint8_t *buf) const { + memcpy(buf, str.data(), str.size()); + buf[str.size()] = '\0'; } -ImportThunkChunkX64::ImportThunkChunkX64(Defined *S) : ImpSymbol(S) { +ImportThunkChunkX64::ImportThunkChunkX64(Defined *s) : ImportThunkChunk(s) { // Intel Optimization Manual says that all branch targets // should be 16-byte aligned. MSVC linker does this too. - Alignment = 16; + setAlignment(16); } -void ImportThunkChunkX64::writeTo(uint8_t *Buf) const { - memcpy(Buf + OutputSectionOff, ImportThunkX86, sizeof(ImportThunkX86)); +void ImportThunkChunkX64::writeTo(uint8_t *buf) const { + memcpy(buf, importThunkX86, sizeof(importThunkX86)); // The first two bytes is a JMP instruction. Fill its operand. - write32le(Buf + OutputSectionOff + 2, ImpSymbol->getRVA() - RVA - getSize()); + write32le(buf + 2, impSymbol->getRVA() - rva - getSize()); } -void ImportThunkChunkX86::getBaserels(std::vector *Res) { - Res->emplace_back(getRVA() + 2); +void ImportThunkChunkX86::getBaserels(std::vector *res) { + res->emplace_back(getRVA() + 2); } -void ImportThunkChunkX86::writeTo(uint8_t *Buf) const { - memcpy(Buf + OutputSectionOff, ImportThunkX86, sizeof(ImportThunkX86)); +void ImportThunkChunkX86::writeTo(uint8_t *buf) const { + memcpy(buf, importThunkX86, sizeof(importThunkX86)); // The first two bytes is a JMP instruction. Fill its operand. - write32le(Buf + OutputSectionOff + 2, - ImpSymbol->getRVA() + Config->ImageBase); + write32le(buf + 2, + impSymbol->getRVA() + config->imageBase); } -void ImportThunkChunkARM::getBaserels(std::vector *Res) { - Res->emplace_back(getRVA(), IMAGE_REL_BASED_ARM_MOV32T); +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)); +void ImportThunkChunkARM::writeTo(uint8_t *buf) const { + memcpy(buf, importThunkARM, sizeof(importThunkARM)); // Fix mov.w and mov.t operands. - applyMOV32T(Buf + OutputSectionOff, ImpSymbol->getRVA() + Config->ImageBase); + applyMOV32T(buf, impSymbol->getRVA() + config->imageBase); } -void ImportThunkChunkARM64::writeTo(uint8_t *Buf) const { - int64_t Off = ImpSymbol->getRVA() & 0xfff; - memcpy(Buf + OutputSectionOff, ImportThunkARM64, sizeof(ImportThunkARM64)); - applyArm64Addr(Buf + OutputSectionOff, ImpSymbol->getRVA(), RVA, 12); - applyArm64Ldr(Buf + OutputSectionOff + 4, Off); +void ImportThunkChunkARM64::writeTo(uint8_t *buf) const { + int64_t off = impSymbol->getRVA() & 0xfff; + memcpy(buf, importThunkARM64, sizeof(importThunkARM64)); + applyArm64Addr(buf, impSymbol->getRVA(), rva, 12); + applyArm64Ldr(buf + 4, off); } // A Thumb2, PIC, non-interworking range extension thunk. -const uint8_t ArmThunk[] = { +const uint8_t armThunk[] = { 0x40, 0xf2, 0x00, 0x0c, // P: movw ip,:lower16:S - (P + (L1-P) + 4) 0xc0, 0xf2, 0x00, 0x0c, // movt ip,:upper16:S - (P + (L1-P) + 4) 0xe7, 0x44, // L1: add pc, ip }; -size_t RangeExtensionThunk::getSize() const { - assert(Config->Machine == ARMNT); - return sizeof(ArmThunk); +size_t RangeExtensionThunkARM::getSize() const { + assert(config->machine == ARMNT); + return sizeof(armThunk); } -void RangeExtensionThunk::writeTo(uint8_t *Buf) const { - assert(Config->Machine == ARMNT); - uint64_t Offset = Target->getRVA() - RVA - 12; - memcpy(Buf + OutputSectionOff, ArmThunk, sizeof(ArmThunk)); - applyMOV32T(Buf + OutputSectionOff, uint32_t(Offset)); +void RangeExtensionThunkARM::writeTo(uint8_t *buf) const { + assert(config->machine == ARMNT); + uint64_t offset = target->getRVA() - rva - 12; + memcpy(buf, armThunk, sizeof(armThunk)); + applyMOV32T(buf, uint32_t(offset)); } -void LocalImportChunk::getBaserels(std::vector *Res) { - Res->emplace_back(getRVA()); +// A position independent ARM64 adrp+add thunk, with a maximum range of +// +/- 4 GB, which is enough for any PE-COFF. +const uint8_t arm64Thunk[] = { + 0x10, 0x00, 0x00, 0x90, // adrp x16, Dest + 0x10, 0x02, 0x00, 0x91, // add x16, x16, :lo12:Dest + 0x00, 0x02, 0x1f, 0xd6, // br x16 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Aug 20 20:51:36 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A47B8E0161; Tue, 20 Aug 2019 20:51:36 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CjdN3LgHz41Yb; Tue, 20 Aug 2019 20:51:36 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3AC379019; Tue, 20 Aug 2019 20:51:36 +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 x7KKpagB077190; Tue, 20 Aug 2019 20:51:36 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKpaK0077189; Tue, 20 Aug 2019 20:51:36 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202051.x7KKpaK0077189@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:51:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351289 - vendor/lld/lld-trunk-r366426 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/lld/lld-trunk-r366426 X-SVN-Commit-Revision: 351289 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:51:36 -0000 Author: dim Date: Tue Aug 20 20:51:35 2019 New Revision: 351289 URL: https://svnweb.freebsd.org/changeset/base/351289 Log: Tag stripped lld trunk r366426 (just before the release_90 branch point). Added: vendor/lld/lld-trunk-r366426/ - copied from r351288, vendor/lld/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:51:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2C2E5E00E9; Tue, 20 Aug 2019 20:51:29 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CjdD6nLRz41Kr; Tue, 20 Aug 2019 20:51:28 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AA1DC900D; Tue, 20 Aug 2019 20:51:28 +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 x7KKpSSL077092; Tue, 20 Aug 2019 20:51:28 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKpSMt077091; Tue, 20 Aug 2019 20:51:28 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202051.x7KKpSMt077091@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:51:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351287 - vendor/llvm-libunwind/libunwind-trunk-r366426 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-libunwind/libunwind-trunk-r366426 X-SVN-Commit-Revision: 351287 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:51:29 -0000 Author: dim Date: Tue Aug 20 20:51:28 2019 New Revision: 351287 URL: https://svnweb.freebsd.org/changeset/base/351287 Log: Tag stripped LLVM libunwind trunk r366426 (just before the release_90 branch point). Added: vendor/llvm-libunwind/libunwind-trunk-r366426/ - copied from r351286, vendor/llvm-libunwind/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:51:58 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4E14CE0297; Tue, 20 Aug 2019 20:51:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjdp20bwz41rg; Tue, 20 Aug 2019 20:51:58 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 091CF9034; Tue, 20 Aug 2019 20:51:58 +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 x7KKpws8077271; Tue, 20 Aug 2019 20:51:58 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKprGW077246; Tue, 20 Aug 2019 20:51:53 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202051.x7KKprGW077246@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:51:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351290 - in vendor/lldb/dist: . include/lldb include/lldb/API include/lldb/Breakpoint include/lldb/Core include/lldb/DataFormatters include/lldb/Expression include/lldb/Host include/ll... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/lldb/dist: . include/lldb include/lldb/API include/lldb/Breakpoint include/lldb/Core include/lldb/DataFormatters include/lldb/Expression include/lldb/Host include/lldb/Host/common include/ll... X-SVN-Commit-Revision: 351290 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:51:58 -0000 Author: dim Date: Tue Aug 20 20:51:52 2019 New Revision: 351290 URL: https://svnweb.freebsd.org/changeset/base/351290 Log: Vendor import of stripped lldb trunk r366426 (just before the release_90 branch point): https://llvm.org/svn/llvm-project/lldb/trunk@366426 Added: vendor/lldb/dist/include/lldb/API/SBReproducer.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointPrecondition.h vendor/lldb/dist/include/lldb/Expression/DynamicCheckerFunctions.h vendor/lldb/dist/include/lldb/Host/FileAction.h vendor/lldb/dist/include/lldb/Host/ProcessLaunchInfo.h vendor/lldb/dist/include/lldb/Symbol/CxxModuleHandler.h vendor/lldb/dist/include/lldb/Symbol/LocateSymbolFile.h vendor/lldb/dist/include/lldb/Symbol/PostfixExpression.h vendor/lldb/dist/include/lldb/Symbol/SourceModule.h vendor/lldb/dist/include/lldb/Target/RemoteAwarePlatform.h vendor/lldb/dist/include/lldb/Utility/FileCollector.h vendor/lldb/dist/include/lldb/Utility/ProcessInfo.h vendor/lldb/dist/include/lldb/Utility/RangeMap.h vendor/lldb/dist/include/lldb/Utility/ReproducerInstrumentation.h vendor/lldb/dist/include/lldb/Utility/UserIDResolver.h vendor/lldb/dist/source/API/SBReproducer.cpp vendor/lldb/dist/source/API/SBReproducerPrivate.h vendor/lldb/dist/source/API/Utils.h vendor/lldb/dist/source/Breakpoint/BreakpointPrecondition.cpp vendor/lldb/dist/source/Commands/Options.td vendor/lldb/dist/source/Commands/OptionsBase.td vendor/lldb/dist/source/Host/common/FileAction.cpp vendor/lldb/dist/source/Host/common/ProcessLaunchInfo.cpp vendor/lldb/dist/source/Plugins/ABI/Windows-x86_64/ vendor/lldb/dist/source/Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.cpp vendor/lldb/dist/source/Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTUtils.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTUtils.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h vendor/lldb/dist/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h vendor/lldb/dist/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp vendor/lldb/dist/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.h vendor/lldb/dist/source/Plugins/Process/POSIX/NativeProcessELF.cpp vendor/lldb/dist/source/Plugins/Process/POSIX/NativeProcessELF.h vendor/lldb/dist/source/Plugins/Process/Utility/AuxVector.cpp vendor/lldb/dist/source/Plugins/Process/Utility/AuxVector.h vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFContext.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFContext.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.h vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.cpp vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.h vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.cpp vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.h vendor/lldb/dist/source/Symbol/CxxModuleHandler.cpp vendor/lldb/dist/source/Symbol/DeclVendor.cpp vendor/lldb/dist/source/Symbol/LocateSymbolFile.cpp vendor/lldb/dist/source/Symbol/LocateSymbolFileMacOSX.cpp vendor/lldb/dist/source/Symbol/PostfixExpression.cpp vendor/lldb/dist/source/Target/RemoteAwarePlatform.cpp vendor/lldb/dist/source/Utility/FileCollector.cpp vendor/lldb/dist/source/Utility/ProcessInfo.cpp vendor/lldb/dist/source/Utility/ReproducerInstrumentation.cpp vendor/lldb/dist/source/Utility/UserIDResolver.cpp vendor/lldb/dist/tools/lldb-instr/ vendor/lldb/dist/tools/lldb-instr/Instrument.cpp Deleted: vendor/lldb/dist/include/lldb/API/SBInitializerOptions.h vendor/lldb/dist/include/lldb/Core/RangeMap.h vendor/lldb/dist/include/lldb/Expression/IRDynamicChecks.h vendor/lldb/dist/include/lldb/Host/Symbols.h vendor/lldb/dist/include/lldb/Target/CPPLanguageRuntime.h vendor/lldb/dist/include/lldb/Target/FileAction.h vendor/lldb/dist/include/lldb/Target/ObjCLanguageRuntime.h vendor/lldb/dist/include/lldb/Target/ProcessInfo.h vendor/lldb/dist/include/lldb/Target/ProcessLaunchInfo.h vendor/lldb/dist/source/API/SBInitializerOptions.cpp vendor/lldb/dist/source/Expression/ExpressionSourceCode.cpp vendor/lldb/dist/source/Expression/IRDynamicChecks.cpp vendor/lldb/dist/source/Host/common/Symbols.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.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/DWARFDebugMacinfo.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfo.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfoEntry.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfoEntry.h vendor/lldb/dist/source/Target/CPPLanguageRuntime.cpp vendor/lldb/dist/source/Target/FileAction.cpp vendor/lldb/dist/source/Target/ObjCLanguageRuntime.cpp vendor/lldb/dist/source/Target/ProcessInfo.cpp vendor/lldb/dist/source/Target/ProcessLaunchInfo.cpp Modified: vendor/lldb/dist/LICENSE.TXT vendor/lldb/dist/include/lldb/API/LLDB.h vendor/lldb/dist/include/lldb/API/SBAddress.h vendor/lldb/dist/include/lldb/API/SBAttachInfo.h vendor/lldb/dist/include/lldb/API/SBBlock.h vendor/lldb/dist/include/lldb/API/SBBreakpoint.h vendor/lldb/dist/include/lldb/API/SBBreakpointLocation.h vendor/lldb/dist/include/lldb/API/SBBreakpointName.h vendor/lldb/dist/include/lldb/API/SBBroadcaster.h vendor/lldb/dist/include/lldb/API/SBCommandInterpreter.h vendor/lldb/dist/include/lldb/API/SBCommandReturnObject.h vendor/lldb/dist/include/lldb/API/SBCommunication.h vendor/lldb/dist/include/lldb/API/SBCompileUnit.h vendor/lldb/dist/include/lldb/API/SBData.h vendor/lldb/dist/include/lldb/API/SBDebugger.h vendor/lldb/dist/include/lldb/API/SBDeclaration.h vendor/lldb/dist/include/lldb/API/SBDefines.h vendor/lldb/dist/include/lldb/API/SBError.h vendor/lldb/dist/include/lldb/API/SBEvent.h vendor/lldb/dist/include/lldb/API/SBExecutionContext.h vendor/lldb/dist/include/lldb/API/SBExpressionOptions.h vendor/lldb/dist/include/lldb/API/SBFileSpec.h vendor/lldb/dist/include/lldb/API/SBFileSpecList.h vendor/lldb/dist/include/lldb/API/SBFrame.h vendor/lldb/dist/include/lldb/API/SBFunction.h vendor/lldb/dist/include/lldb/API/SBHostOS.h vendor/lldb/dist/include/lldb/API/SBInstruction.h vendor/lldb/dist/include/lldb/API/SBInstructionList.h vendor/lldb/dist/include/lldb/API/SBLanguageRuntime.h vendor/lldb/dist/include/lldb/API/SBLaunchInfo.h vendor/lldb/dist/include/lldb/API/SBLineEntry.h vendor/lldb/dist/include/lldb/API/SBListener.h vendor/lldb/dist/include/lldb/API/SBMemoryRegionInfo.h vendor/lldb/dist/include/lldb/API/SBMemoryRegionInfoList.h vendor/lldb/dist/include/lldb/API/SBModule.h vendor/lldb/dist/include/lldb/API/SBModuleSpec.h vendor/lldb/dist/include/lldb/API/SBPlatform.h vendor/lldb/dist/include/lldb/API/SBProcess.h vendor/lldb/dist/include/lldb/API/SBProcessInfo.h vendor/lldb/dist/include/lldb/API/SBQueue.h vendor/lldb/dist/include/lldb/API/SBQueueItem.h vendor/lldb/dist/include/lldb/API/SBSection.h vendor/lldb/dist/include/lldb/API/SBSourceManager.h vendor/lldb/dist/include/lldb/API/SBStream.h vendor/lldb/dist/include/lldb/API/SBStringList.h vendor/lldb/dist/include/lldb/API/SBStructuredData.h vendor/lldb/dist/include/lldb/API/SBSymbol.h vendor/lldb/dist/include/lldb/API/SBSymbolContext.h vendor/lldb/dist/include/lldb/API/SBSymbolContextList.h vendor/lldb/dist/include/lldb/API/SBTarget.h vendor/lldb/dist/include/lldb/API/SBThread.h vendor/lldb/dist/include/lldb/API/SBThreadCollection.h vendor/lldb/dist/include/lldb/API/SBThreadPlan.h vendor/lldb/dist/include/lldb/API/SBTrace.h vendor/lldb/dist/include/lldb/API/SBTraceOptions.h vendor/lldb/dist/include/lldb/API/SBType.h vendor/lldb/dist/include/lldb/API/SBTypeCategory.h vendor/lldb/dist/include/lldb/API/SBTypeEnumMember.h vendor/lldb/dist/include/lldb/API/SBTypeFilter.h vendor/lldb/dist/include/lldb/API/SBTypeFormat.h vendor/lldb/dist/include/lldb/API/SBTypeNameSpecifier.h vendor/lldb/dist/include/lldb/API/SBTypeSummary.h vendor/lldb/dist/include/lldb/API/SBTypeSynthetic.h vendor/lldb/dist/include/lldb/API/SBUnixSignals.h vendor/lldb/dist/include/lldb/API/SBValue.h vendor/lldb/dist/include/lldb/API/SBValueList.h vendor/lldb/dist/include/lldb/API/SBVariablesOptions.h vendor/lldb/dist/include/lldb/API/SBWatchpoint.h vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointID.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointIDList.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointList.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocation.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocationCollection.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocationList.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointName.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/BreakpointResolverScripted.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointSite.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointSiteList.h vendor/lldb/dist/include/lldb/Breakpoint/Stoppoint.h vendor/lldb/dist/include/lldb/Breakpoint/StoppointCallbackContext.h vendor/lldb/dist/include/lldb/Breakpoint/StoppointLocation.h vendor/lldb/dist/include/lldb/Breakpoint/Watchpoint.h vendor/lldb/dist/include/lldb/Breakpoint/WatchpointList.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/Architecture.h vendor/lldb/dist/include/lldb/Core/ClangForward.h vendor/lldb/dist/include/lldb/Core/Communication.h vendor/lldb/dist/include/lldb/Core/Debugger.h vendor/lldb/dist/include/lldb/Core/Disassembler.h vendor/lldb/dist/include/lldb/Core/DumpDataExtractor.h vendor/lldb/dist/include/lldb/Core/DumpRegisterValue.h vendor/lldb/dist/include/lldb/Core/EmulateInstruction.h vendor/lldb/dist/include/lldb/Core/FileLineResolver.h vendor/lldb/dist/include/lldb/Core/FileSpecList.h vendor/lldb/dist/include/lldb/Core/FormatEntity.h vendor/lldb/dist/include/lldb/Core/Highlighter.h vendor/lldb/dist/include/lldb/Core/IOHandler.h vendor/lldb/dist/include/lldb/Core/IOStreamMacros.h vendor/lldb/dist/include/lldb/Core/LoadedModuleInfoList.h vendor/lldb/dist/include/lldb/Core/Mangled.h vendor/lldb/dist/include/lldb/Core/MappedHash.h vendor/lldb/dist/include/lldb/Core/Module.h vendor/lldb/dist/include/lldb/Core/ModuleChild.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/PluginInterface.h vendor/lldb/dist/include/lldb/Core/PluginManager.h vendor/lldb/dist/include/lldb/Core/RichManglingContext.h vendor/lldb/dist/include/lldb/Core/STLUtils.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/StreamAsynchronousIO.h vendor/lldb/dist/include/lldb/Core/StreamBuffer.h vendor/lldb/dist/include/lldb/Core/StreamFile.h vendor/lldb/dist/include/lldb/Core/StructuredDataImpl.h vendor/lldb/dist/include/lldb/Core/ThreadSafeDenseMap.h vendor/lldb/dist/include/lldb/Core/ThreadSafeDenseSet.h vendor/lldb/dist/include/lldb/Core/ThreadSafeSTLMap.h vendor/lldb/dist/include/lldb/Core/ThreadSafeSTLVector.h vendor/lldb/dist/include/lldb/Core/ThreadSafeValue.h vendor/lldb/dist/include/lldb/Core/UniqueCStringMap.h vendor/lldb/dist/include/lldb/Core/UserSettingsController.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/ValueObjectConstResultCast.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/CXXFunctionPointer.h vendor/lldb/dist/include/lldb/DataFormatters/DataVisualization.h vendor/lldb/dist/include/lldb/DataFormatters/DumpValueObjectOptions.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/FormattersHelpers.h vendor/lldb/dist/include/lldb/DataFormatters/LanguageCategory.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/DataFormatters/VectorIterator.h vendor/lldb/dist/include/lldb/DataFormatters/VectorType.h vendor/lldb/dist/include/lldb/Expression/DWARFExpression.h vendor/lldb/dist/include/lldb/Expression/DiagnosticManager.h vendor/lldb/dist/include/lldb/Expression/Expression.h vendor/lldb/dist/include/lldb/Expression/ExpressionParser.h vendor/lldb/dist/include/lldb/Expression/ExpressionSourceCode.h vendor/lldb/dist/include/lldb/Expression/ExpressionTypeSystemHelper.h vendor/lldb/dist/include/lldb/Expression/ExpressionVariable.h vendor/lldb/dist/include/lldb/Expression/FunctionCaller.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/LLVMUserExpression.h vendor/lldb/dist/include/lldb/Expression/Materializer.h vendor/lldb/dist/include/lldb/Expression/REPL.h vendor/lldb/dist/include/lldb/Expression/UserExpression.h vendor/lldb/dist/include/lldb/Expression/UtilityFunction.h vendor/lldb/dist/include/lldb/Host/Config.h.cmake vendor/lldb/dist/include/lldb/Host/ConnectionFileDescriptor.h vendor/lldb/dist/include/lldb/Host/Debug.h vendor/lldb/dist/include/lldb/Host/Editline.h vendor/lldb/dist/include/lldb/Host/File.h vendor/lldb/dist/include/lldb/Host/FileCache.h vendor/lldb/dist/include/lldb/Host/FileSystem.h vendor/lldb/dist/include/lldb/Host/Host.h vendor/lldb/dist/include/lldb/Host/HostGetOpt.h vendor/lldb/dist/include/lldb/Host/HostInfo.h vendor/lldb/dist/include/lldb/Host/HostInfoBase.h vendor/lldb/dist/include/lldb/Host/HostNativeProcess.h vendor/lldb/dist/include/lldb/Host/HostNativeProcessBase.h vendor/lldb/dist/include/lldb/Host/HostNativeThread.h vendor/lldb/dist/include/lldb/Host/HostNativeThreadBase.h vendor/lldb/dist/include/lldb/Host/HostNativeThreadForward.h vendor/lldb/dist/include/lldb/Host/HostProcess.h vendor/lldb/dist/include/lldb/Host/HostThread.h vendor/lldb/dist/include/lldb/Host/LockFile.h vendor/lldb/dist/include/lldb/Host/LockFileBase.h vendor/lldb/dist/include/lldb/Host/MainLoop.h vendor/lldb/dist/include/lldb/Host/MainLoopBase.h vendor/lldb/dist/include/lldb/Host/MonitoringProcessLauncher.h vendor/lldb/dist/include/lldb/Host/OptionParser.h vendor/lldb/dist/include/lldb/Host/Pipe.h vendor/lldb/dist/include/lldb/Host/PipeBase.h vendor/lldb/dist/include/lldb/Host/PosixApi.h vendor/lldb/dist/include/lldb/Host/ProcessLauncher.h vendor/lldb/dist/include/lldb/Host/ProcessRunLock.h vendor/lldb/dist/include/lldb/Host/PseudoTerminal.h vendor/lldb/dist/include/lldb/Host/SafeMachO.h vendor/lldb/dist/include/lldb/Host/Socket.h vendor/lldb/dist/include/lldb/Host/SocketAddress.h vendor/lldb/dist/include/lldb/Host/StringConvert.h vendor/lldb/dist/include/lldb/Host/TaskPool.h vendor/lldb/dist/include/lldb/Host/Terminal.h vendor/lldb/dist/include/lldb/Host/ThreadLauncher.h vendor/lldb/dist/include/lldb/Host/Time.h vendor/lldb/dist/include/lldb/Host/XML.h vendor/lldb/dist/include/lldb/Host/common/NativeBreakpointList.h vendor/lldb/dist/include/lldb/Host/common/NativeProcessProtocol.h vendor/lldb/dist/include/lldb/Host/common/NativeRegisterContext.h vendor/lldb/dist/include/lldb/Host/common/NativeThreadProtocol.h vendor/lldb/dist/include/lldb/Host/common/NativeWatchpointList.h vendor/lldb/dist/include/lldb/Host/common/TCPSocket.h vendor/lldb/dist/include/lldb/Host/common/UDPSocket.h vendor/lldb/dist/include/lldb/Host/freebsd/HostInfoFreeBSD.h vendor/lldb/dist/include/lldb/Host/netbsd/HostInfoNetBSD.h vendor/lldb/dist/include/lldb/Host/openbsd/HostInfoOpenBSD.h vendor/lldb/dist/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h vendor/lldb/dist/include/lldb/Host/posix/DomainSocket.h vendor/lldb/dist/include/lldb/Host/posix/Fcntl.h vendor/lldb/dist/include/lldb/Host/posix/HostInfoPosix.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/PipePosix.h vendor/lldb/dist/include/lldb/Host/posix/ProcessLauncherPosixFork.h vendor/lldb/dist/include/lldb/Initialization/SystemInitializer.h vendor/lldb/dist/include/lldb/Initialization/SystemInitializerCommon.h vendor/lldb/dist/include/lldb/Initialization/SystemLifetimeManager.h vendor/lldb/dist/include/lldb/Interpreter/CommandAlias.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/OptionArgParser.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/OptionValues.h vendor/lldb/dist/include/lldb/Interpreter/Options.h vendor/lldb/dist/include/lldb/Interpreter/Property.h vendor/lldb/dist/include/lldb/Interpreter/ScriptInterpreter.h vendor/lldb/dist/include/lldb/Symbol/ArmUnwindInfo.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/ClangUtil.h vendor/lldb/dist/include/lldb/Symbol/CompactUnwindInfo.h vendor/lldb/dist/include/lldb/Symbol/CompileUnit.h vendor/lldb/dist/include/lldb/Symbol/CompilerDecl.h vendor/lldb/dist/include/lldb/Symbol/CompilerDeclContext.h vendor/lldb/dist/include/lldb/Symbol/CompilerType.h vendor/lldb/dist/include/lldb/Symbol/DWARFCallFrameInfo.h vendor/lldb/dist/include/lldb/Symbol/DebugMacros.h vendor/lldb/dist/include/lldb/Symbol/DeclVendor.h vendor/lldb/dist/include/lldb/Symbol/Declaration.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/Symtab.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/TypeMap.h vendor/lldb/dist/include/lldb/Symbol/TypeSystem.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/Symbol/VerifyDecl.h vendor/lldb/dist/include/lldb/Target/ABI.h vendor/lldb/dist/include/lldb/Target/DynamicLoader.h vendor/lldb/dist/include/lldb/Target/ExecutionContext.h vendor/lldb/dist/include/lldb/Target/ExecutionContextScope.h vendor/lldb/dist/include/lldb/Target/InstrumentationRuntime.h vendor/lldb/dist/include/lldb/Target/InstrumentationRuntimeStopInfo.h vendor/lldb/dist/include/lldb/Target/JITLoader.h vendor/lldb/dist/include/lldb/Target/JITLoaderList.h vendor/lldb/dist/include/lldb/Target/Language.h vendor/lldb/dist/include/lldb/Target/LanguageRuntime.h vendor/lldb/dist/include/lldb/Target/Memory.h vendor/lldb/dist/include/lldb/Target/MemoryHistory.h vendor/lldb/dist/include/lldb/Target/MemoryRegionInfo.h vendor/lldb/dist/include/lldb/Target/ModuleCache.h vendor/lldb/dist/include/lldb/Target/OperatingSystem.h vendor/lldb/dist/include/lldb/Target/PathMappingList.h vendor/lldb/dist/include/lldb/Target/Platform.h vendor/lldb/dist/include/lldb/Target/Process.h vendor/lldb/dist/include/lldb/Target/ProcessStructReader.h vendor/lldb/dist/include/lldb/Target/Queue.h vendor/lldb/dist/include/lldb/Target/QueueItem.h vendor/lldb/dist/include/lldb/Target/QueueList.h vendor/lldb/dist/include/lldb/Target/RegisterCheckpoint.h vendor/lldb/dist/include/lldb/Target/RegisterContext.h vendor/lldb/dist/include/lldb/Target/RegisterNumber.h vendor/lldb/dist/include/lldb/Target/SectionLoadHistory.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/StackFrameRecognizer.h vendor/lldb/dist/include/lldb/Target/StackID.h vendor/lldb/dist/include/lldb/Target/StopInfo.h vendor/lldb/dist/include/lldb/Target/StructuredDataPlugin.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/ThreadCollection.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/ThreadPlanCallOnFunctionExit.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/Unwind.h vendor/lldb/dist/include/lldb/Target/UnwindAssembly.h vendor/lldb/dist/include/lldb/Utility/AnsiTerminal.h vendor/lldb/dist/include/lldb/Utility/ArchSpec.h vendor/lldb/dist/include/lldb/Utility/Args.h vendor/lldb/dist/include/lldb/Utility/Baton.h vendor/lldb/dist/include/lldb/Utility/Broadcaster.h vendor/lldb/dist/include/lldb/Utility/CleanUp.h vendor/lldb/dist/include/lldb/Utility/CompletionRequest.h vendor/lldb/dist/include/lldb/Utility/Connection.h vendor/lldb/dist/include/lldb/Utility/ConstString.h vendor/lldb/dist/include/lldb/Utility/DataBuffer.h vendor/lldb/dist/include/lldb/Utility/DataBufferHeap.h vendor/lldb/dist/include/lldb/Utility/DataBufferLLVM.h vendor/lldb/dist/include/lldb/Utility/DataEncoder.h vendor/lldb/dist/include/lldb/Utility/DataExtractor.h vendor/lldb/dist/include/lldb/Utility/Endian.h vendor/lldb/dist/include/lldb/Utility/Environment.h vendor/lldb/dist/include/lldb/Utility/Event.h vendor/lldb/dist/include/lldb/Utility/FileSpec.h vendor/lldb/dist/include/lldb/Utility/Flags.h vendor/lldb/dist/include/lldb/Utility/IOObject.h vendor/lldb/dist/include/lldb/Utility/Iterable.h vendor/lldb/dist/include/lldb/Utility/JSON.h vendor/lldb/dist/include/lldb/Utility/LLDBAssert.h vendor/lldb/dist/include/lldb/Utility/Listener.h vendor/lldb/dist/include/lldb/Utility/Log.h vendor/lldb/dist/include/lldb/Utility/Logging.h vendor/lldb/dist/include/lldb/Utility/NameMatches.h vendor/lldb/dist/include/lldb/Utility/Predicate.h vendor/lldb/dist/include/lldb/Utility/RegisterValue.h vendor/lldb/dist/include/lldb/Utility/RegularExpression.h vendor/lldb/dist/include/lldb/Utility/Reproducer.h vendor/lldb/dist/include/lldb/Utility/Scalar.h vendor/lldb/dist/include/lldb/Utility/SelectHelper.h vendor/lldb/dist/include/lldb/Utility/SharedCluster.h vendor/lldb/dist/include/lldb/Utility/SharingPtr.h vendor/lldb/dist/include/lldb/Utility/State.h vendor/lldb/dist/include/lldb/Utility/Status.h vendor/lldb/dist/include/lldb/Utility/Stream.h vendor/lldb/dist/include/lldb/Utility/StreamCallback.h vendor/lldb/dist/include/lldb/Utility/StreamGDBRemote.h vendor/lldb/dist/include/lldb/Utility/StreamString.h vendor/lldb/dist/include/lldb/Utility/StreamTee.h vendor/lldb/dist/include/lldb/Utility/StringExtractor.h vendor/lldb/dist/include/lldb/Utility/StringExtractorGDBRemote.h vendor/lldb/dist/include/lldb/Utility/StringLexer.h vendor/lldb/dist/include/lldb/Utility/StringList.h vendor/lldb/dist/include/lldb/Utility/StructuredData.h vendor/lldb/dist/include/lldb/Utility/TildeExpressionResolver.h vendor/lldb/dist/include/lldb/Utility/Timeout.h vendor/lldb/dist/include/lldb/Utility/Timer.h vendor/lldb/dist/include/lldb/Utility/TraceOptions.h vendor/lldb/dist/include/lldb/Utility/UUID.h vendor/lldb/dist/include/lldb/Utility/UriParser.h vendor/lldb/dist/include/lldb/Utility/UserID.h vendor/lldb/dist/include/lldb/Utility/VASPrintf.h vendor/lldb/dist/include/lldb/Utility/VMRange.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-defines.h vendor/lldb/dist/include/lldb/lldb-private-enumerations.h vendor/lldb/dist/include/lldb/lldb-private-forward.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-private.h vendor/lldb/dist/include/lldb/lldb-public.h vendor/lldb/dist/include/lldb/lldb-types.h vendor/lldb/dist/include/lldb/lldb-versioning.h vendor/lldb/dist/include/lldb/module.modulemap vendor/lldb/dist/source/API/SBAddress.cpp vendor/lldb/dist/source/API/SBAttachInfo.cpp vendor/lldb/dist/source/API/SBBlock.cpp vendor/lldb/dist/source/API/SBBreakpoint.cpp vendor/lldb/dist/source/API/SBBreakpointLocation.cpp vendor/lldb/dist/source/API/SBBreakpointName.cpp vendor/lldb/dist/source/API/SBBreakpointOptionCommon.cpp vendor/lldb/dist/source/API/SBBreakpointOptionCommon.h vendor/lldb/dist/source/API/SBBroadcaster.cpp vendor/lldb/dist/source/API/SBCommandInterpreter.cpp vendor/lldb/dist/source/API/SBCommandReturnObject.cpp vendor/lldb/dist/source/API/SBCommunication.cpp vendor/lldb/dist/source/API/SBCompileUnit.cpp vendor/lldb/dist/source/API/SBData.cpp vendor/lldb/dist/source/API/SBDebugger.cpp vendor/lldb/dist/source/API/SBDeclaration.cpp vendor/lldb/dist/source/API/SBError.cpp vendor/lldb/dist/source/API/SBEvent.cpp vendor/lldb/dist/source/API/SBExecutionContext.cpp vendor/lldb/dist/source/API/SBExpressionOptions.cpp vendor/lldb/dist/source/API/SBFileSpec.cpp vendor/lldb/dist/source/API/SBFileSpecList.cpp vendor/lldb/dist/source/API/SBFrame.cpp vendor/lldb/dist/source/API/SBFunction.cpp vendor/lldb/dist/source/API/SBHostOS.cpp vendor/lldb/dist/source/API/SBInstruction.cpp vendor/lldb/dist/source/API/SBInstructionList.cpp vendor/lldb/dist/source/API/SBLanguageRuntime.cpp vendor/lldb/dist/source/API/SBLaunchInfo.cpp vendor/lldb/dist/source/API/SBLineEntry.cpp vendor/lldb/dist/source/API/SBListener.cpp vendor/lldb/dist/source/API/SBMemoryRegionInfo.cpp vendor/lldb/dist/source/API/SBMemoryRegionInfoList.cpp vendor/lldb/dist/source/API/SBModule.cpp vendor/lldb/dist/source/API/SBModuleSpec.cpp vendor/lldb/dist/source/API/SBPlatform.cpp vendor/lldb/dist/source/API/SBProcess.cpp vendor/lldb/dist/source/API/SBProcessInfo.cpp vendor/lldb/dist/source/API/SBQueue.cpp vendor/lldb/dist/source/API/SBQueueItem.cpp vendor/lldb/dist/source/API/SBSection.cpp vendor/lldb/dist/source/API/SBSourceManager.cpp vendor/lldb/dist/source/API/SBStream.cpp vendor/lldb/dist/source/API/SBStringList.cpp vendor/lldb/dist/source/API/SBStructuredData.cpp vendor/lldb/dist/source/API/SBSymbol.cpp vendor/lldb/dist/source/API/SBSymbolContext.cpp vendor/lldb/dist/source/API/SBSymbolContextList.cpp vendor/lldb/dist/source/API/SBTarget.cpp vendor/lldb/dist/source/API/SBThread.cpp vendor/lldb/dist/source/API/SBThreadCollection.cpp vendor/lldb/dist/source/API/SBThreadPlan.cpp vendor/lldb/dist/source/API/SBTrace.cpp vendor/lldb/dist/source/API/SBTraceOptions.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/SBTypeFilter.cpp vendor/lldb/dist/source/API/SBTypeFormat.cpp vendor/lldb/dist/source/API/SBTypeNameSpecifier.cpp vendor/lldb/dist/source/API/SBTypeSummary.cpp vendor/lldb/dist/source/API/SBTypeSynthetic.cpp vendor/lldb/dist/source/API/SBUnixSignals.cpp vendor/lldb/dist/source/API/SBValue.cpp vendor/lldb/dist/source/API/SBValueList.cpp vendor/lldb/dist/source/API/SBVariablesOptions.cpp vendor/lldb/dist/source/API/SBWatchpoint.cpp vendor/lldb/dist/source/API/SystemInitializerFull.cpp vendor/lldb/dist/source/API/SystemInitializerFull.h 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/BreakpointList.cpp vendor/lldb/dist/source/Breakpoint/BreakpointLocation.cpp vendor/lldb/dist/source/Breakpoint/BreakpointLocationCollection.cpp vendor/lldb/dist/source/Breakpoint/BreakpointLocationList.cpp vendor/lldb/dist/source/Breakpoint/BreakpointName.cpp vendor/lldb/dist/source/Breakpoint/BreakpointOptions.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolver.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverAddress.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverFileLine.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverFileRegex.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverName.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverScripted.cpp vendor/lldb/dist/source/Breakpoint/BreakpointSite.cpp vendor/lldb/dist/source/Breakpoint/BreakpointSiteList.cpp vendor/lldb/dist/source/Breakpoint/Stoppoint.cpp vendor/lldb/dist/source/Breakpoint/StoppointCallbackContext.cpp vendor/lldb/dist/source/Breakpoint/StoppointLocation.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/CommandCompletions.cpp vendor/lldb/dist/source/Commands/CommandObjectApropos.cpp vendor/lldb/dist/source/Commands/CommandObjectApropos.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.cpp vendor/lldb/dist/source/Commands/CommandObjectGUI.h vendor/lldb/dist/source/Commands/CommandObjectHelp.cpp 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.cpp 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/CommandObjectReproducer.cpp vendor/lldb/dist/source/Commands/CommandObjectReproducer.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/CommandObjectStats.cpp vendor/lldb/dist/source/Commands/CommandObjectStats.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.cpp 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/AddressRange.cpp vendor/lldb/dist/source/Core/AddressResolver.cpp vendor/lldb/dist/source/Core/AddressResolverFileLine.cpp vendor/lldb/dist/source/Core/AddressResolverName.cpp vendor/lldb/dist/source/Core/Communication.cpp vendor/lldb/dist/source/Core/Debugger.cpp vendor/lldb/dist/source/Core/Disassembler.cpp vendor/lldb/dist/source/Core/DumpDataExtractor.cpp vendor/lldb/dist/source/Core/DumpRegisterValue.cpp vendor/lldb/dist/source/Core/DynamicLoader.cpp vendor/lldb/dist/source/Core/EmulateInstruction.cpp vendor/lldb/dist/source/Core/FileLineResolver.cpp vendor/lldb/dist/source/Core/FileSpecList.cpp vendor/lldb/dist/source/Core/FormatEntity.cpp vendor/lldb/dist/source/Core/Highlighter.cpp vendor/lldb/dist/source/Core/IOHandler.cpp vendor/lldb/dist/source/Core/Mangled.cpp vendor/lldb/dist/source/Core/Module.cpp vendor/lldb/dist/source/Core/ModuleChild.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/RichManglingContext.cpp vendor/lldb/dist/source/Core/SearchFilter.cpp vendor/lldb/dist/source/Core/Section.cpp vendor/lldb/dist/source/Core/SourceManager.cpp vendor/lldb/dist/source/Core/StreamAsynchronousIO.cpp vendor/lldb/dist/source/Core/StreamFile.cpp vendor/lldb/dist/source/Core/UserSettingsController.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/ValueObjectConstResultCast.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/ValueObjectList.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/CXXFunctionPointer.cpp vendor/lldb/dist/source/DataFormatters/DataVisualization.cpp vendor/lldb/dist/source/DataFormatters/DumpValueObjectOptions.cpp vendor/lldb/dist/source/DataFormatters/FormatCache.cpp vendor/lldb/dist/source/DataFormatters/FormatClasses.cpp vendor/lldb/dist/source/DataFormatters/FormatManager.cpp vendor/lldb/dist/source/DataFormatters/FormattersHelpers.cpp vendor/lldb/dist/source/DataFormatters/LanguageCategory.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/TypeValidator.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/DiagnosticManager.cpp vendor/lldb/dist/source/Expression/Expression.cpp vendor/lldb/dist/source/Expression/ExpressionVariable.cpp vendor/lldb/dist/source/Expression/FunctionCaller.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/LLVMUserExpression.cpp vendor/lldb/dist/source/Expression/Materializer.cpp vendor/lldb/dist/source/Expression/REPL.cpp vendor/lldb/dist/source/Expression/UserExpression.cpp vendor/lldb/dist/source/Expression/UtilityFunction.cpp vendor/lldb/dist/source/Host/common/Editline.cpp vendor/lldb/dist/source/Host/common/File.cpp vendor/lldb/dist/source/Host/common/FileCache.cpp vendor/lldb/dist/source/Host/common/FileSystem.cpp vendor/lldb/dist/source/Host/common/GetOptInc.cpp vendor/lldb/dist/source/Host/common/Host.cpp vendor/lldb/dist/source/Host/common/HostInfoBase.cpp vendor/lldb/dist/source/Host/common/HostNativeThreadBase.cpp vendor/lldb/dist/source/Host/common/HostProcess.cpp vendor/lldb/dist/source/Host/common/HostThread.cpp vendor/lldb/dist/source/Host/common/LockFileBase.cpp vendor/lldb/dist/source/Host/common/MainLoop.cpp vendor/lldb/dist/source/Host/common/MonitoringProcessLauncher.cpp vendor/lldb/dist/source/Host/common/NativeProcessProtocol.cpp vendor/lldb/dist/source/Host/common/NativeRegisterContext.cpp vendor/lldb/dist/source/Host/common/NativeThreadProtocol.cpp vendor/lldb/dist/source/Host/common/NativeWatchpointList.cpp vendor/lldb/dist/source/Host/common/OptionParser.cpp vendor/lldb/dist/source/Host/common/PipeBase.cpp vendor/lldb/dist/source/Host/common/ProcessRunLock.cpp vendor/lldb/dist/source/Host/common/PseudoTerminal.cpp vendor/lldb/dist/source/Host/common/Socket.cpp vendor/lldb/dist/source/Host/common/SocketAddress.cpp vendor/lldb/dist/source/Host/common/StringConvert.cpp vendor/lldb/dist/source/Host/common/TCPSocket.cpp vendor/lldb/dist/source/Host/common/TaskPool.cpp vendor/lldb/dist/source/Host/common/Terminal.cpp vendor/lldb/dist/source/Host/common/ThreadLauncher.cpp vendor/lldb/dist/source/Host/common/UDPSocket.cpp vendor/lldb/dist/source/Host/common/XML.cpp vendor/lldb/dist/source/Host/freebsd/Host.cpp vendor/lldb/dist/source/Host/freebsd/HostInfoFreeBSD.cpp vendor/lldb/dist/source/Host/netbsd/Host.cpp vendor/lldb/dist/source/Host/netbsd/HostInfoNetBSD.cpp vendor/lldb/dist/source/Host/openbsd/Host.cpp vendor/lldb/dist/source/Host/openbsd/HostInfoOpenBSD.cpp vendor/lldb/dist/source/Host/posix/ConnectionFileDescriptorPosix.cpp vendor/lldb/dist/source/Host/posix/DomainSocket.cpp vendor/lldb/dist/source/Host/posix/FileSystem.cpp vendor/lldb/dist/source/Host/posix/HostInfoPosix.cpp vendor/lldb/dist/source/Host/posix/HostProcessPosix.cpp vendor/lldb/dist/source/Host/posix/HostThreadPosix.cpp vendor/lldb/dist/source/Host/posix/LockFilePosix.cpp vendor/lldb/dist/source/Host/posix/PipePosix.cpp vendor/lldb/dist/source/Host/posix/ProcessLauncherPosixFork.cpp vendor/lldb/dist/source/Initialization/SystemInitializer.cpp vendor/lldb/dist/source/Initialization/SystemInitializerCommon.cpp vendor/lldb/dist/source/Initialization/SystemLifetimeManager.cpp vendor/lldb/dist/source/Interpreter/CommandAlias.cpp vendor/lldb/dist/source/Interpreter/CommandHistory.cpp vendor/lldb/dist/source/Interpreter/CommandInterpreter.cpp vendor/lldb/dist/source/Interpreter/CommandObject.cpp vendor/lldb/dist/source/Interpreter/CommandObjectRegexCommand.cpp vendor/lldb/dist/source/Interpreter/CommandObjectScript.cpp vendor/lldb/dist/source/Interpreter/CommandObjectScript.h vendor/lldb/dist/source/Interpreter/CommandOptionValidators.cpp vendor/lldb/dist/source/Interpreter/CommandReturnObject.cpp vendor/lldb/dist/source/Interpreter/OptionArgParser.cpp vendor/lldb/dist/source/Interpreter/OptionGroupArchitecture.cpp vendor/lldb/dist/source/Interpreter/OptionGroupBoolean.cpp vendor/lldb/dist/source/Interpreter/OptionGroupFile.cpp vendor/lldb/dist/source/Interpreter/OptionGroupFormat.cpp vendor/lldb/dist/source/Interpreter/OptionGroupOutputFile.cpp vendor/lldb/dist/source/Interpreter/OptionGroupPlatform.cpp vendor/lldb/dist/source/Interpreter/OptionGroupString.cpp vendor/lldb/dist/source/Interpreter/OptionGroupUInt64.cpp vendor/lldb/dist/source/Interpreter/OptionGroupUUID.cpp vendor/lldb/dist/source/Interpreter/OptionGroupValueObjectDisplay.cpp vendor/lldb/dist/source/Interpreter/OptionGroupVariable.cpp vendor/lldb/dist/source/Interpreter/OptionGroupWatchpoint.cpp vendor/lldb/dist/source/Interpreter/OptionValue.cpp vendor/lldb/dist/source/Interpreter/OptionValueArch.cpp vendor/lldb/dist/source/Interpreter/OptionValueArgs.cpp vendor/lldb/dist/source/Interpreter/OptionValueArray.cpp vendor/lldb/dist/source/Interpreter/OptionValueBoolean.cpp vendor/lldb/dist/source/Interpreter/OptionValueChar.cpp vendor/lldb/dist/source/Interpreter/OptionValueDictionary.cpp vendor/lldb/dist/source/Interpreter/OptionValueEnumeration.cpp vendor/lldb/dist/source/Interpreter/OptionValueFileSpec.cpp vendor/lldb/dist/source/Interpreter/OptionValueFileSpecLIst.cpp vendor/lldb/dist/source/Interpreter/OptionValueFormat.cpp vendor/lldb/dist/source/Interpreter/OptionValueFormatEntity.cpp vendor/lldb/dist/source/Interpreter/OptionValueLanguage.cpp vendor/lldb/dist/source/Interpreter/OptionValuePathMappings.cpp vendor/lldb/dist/source/Interpreter/OptionValueProperties.cpp vendor/lldb/dist/source/Interpreter/OptionValueRegex.cpp vendor/lldb/dist/source/Interpreter/OptionValueSInt64.cpp vendor/lldb/dist/source/Interpreter/OptionValueString.cpp vendor/lldb/dist/source/Interpreter/OptionValueUInt64.cpp vendor/lldb/dist/source/Interpreter/OptionValueUUID.cpp vendor/lldb/dist/source/Interpreter/Options.cpp vendor/lldb/dist/source/Interpreter/Property.cpp vendor/lldb/dist/source/Interpreter/ScriptInterpreter.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-s390x/ABISysV_s390x.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.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/Architecture/Arm/ArchitectureArm.cpp vendor/lldb/dist/source/Plugins/Architecture/Arm/ArchitectureArm.h vendor/lldb/dist/source/Plugins/Architecture/Mips/ArchitectureMips.cpp vendor/lldb/dist/source/Plugins/Architecture/Mips/ArchitectureMips.h vendor/lldb/dist/source/Plugins/Architecture/PPC64/ArchitecturePPC64.cpp vendor/lldb/dist/source/Plugins/Architecture/PPC64/ArchitecturePPC64.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/Hexagon-DYLD/HexagonDYLDRendezvous.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.h vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.h 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.cpp 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/ExpressionParser/Clang/ASTDumper.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTDumper.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangASTSource.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangDiagnostic.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangHost.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangHost.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/IRForTarget.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/ARM/EmulationStateARM.cpp vendor/lldb/dist/source/Plugins/Instruction/ARM/EmulationStateARM.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/Instruction/PPC64/EmulateInstructionPPC64.cpp vendor/lldb/dist/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.h vendor/lldb/dist/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.cpp vendor/lldb/dist/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.h vendor/lldb/dist/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.cpp vendor/lldb/dist/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.h vendor/lldb/dist/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.cpp vendor/lldb/dist/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.h vendor/lldb/dist/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.cpp vendor/lldb/dist/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.h vendor/lldb/dist/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp vendor/lldb/dist/source/Plugins/JITLoader/GDB/JITLoaderGDB.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/BlockPointer.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/BlockPointer.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CxxStringTypes.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxx.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxx.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxAtomic.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxList.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxOptional.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxVariant.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibStdcpp.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.h vendor/lldb/dist/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp vendor/lldb/dist/source/Plugins/Language/ClangCommon/ClangHighlighter.h vendor/lldb/dist/source/Plugins/Language/ObjC/CF.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/CF.h vendor/lldb/dist/source/Plugins/Language/ObjC/Cocoa.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/Cocoa.h vendor/lldb/dist/source/Plugins/Language/ObjC/CoreMedia.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/CoreMedia.h vendor/lldb/dist/source/Plugins/Language/ObjC/NSArray.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSDictionary.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSDictionary.h vendor/lldb/dist/source/Plugins/Language/ObjC/NSError.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSException.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSIndexPath.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSSet.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSSet.h vendor/lldb/dist/source/Plugins/Language/ObjC/NSString.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSString.h vendor/lldb/dist/source/Plugins/Language/ObjC/ObjCLanguage.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/ObjCLanguage.h vendor/lldb/dist/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp vendor/lldb/dist/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.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/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.h vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.h vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.h vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.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/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptScriptGroup.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptScriptGroup.h vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.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/Breakpad/ObjectFileBreakpad.cpp vendor/lldb/dist/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.h vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ELFHeader.cpp vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ELFHeader.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.cpp 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.cpp vendor/lldb/dist/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h vendor/lldb/dist/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp vendor/lldb/dist/source/Plugins/Platform/NetBSD/PlatformNetBSD.h vendor/lldb/dist/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.cpp vendor/lldb/dist/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.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/Darwin/CFBundle.cpp vendor/lldb/dist/source/Plugins/Process/Darwin/CFBundle.h vendor/lldb/dist/source/Plugins/Process/Darwin/CFString.cpp vendor/lldb/dist/source/Plugins/Process/Darwin/CFString.h vendor/lldb/dist/source/Plugins/Process/Darwin/CFUtils.h vendor/lldb/dist/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp vendor/lldb/dist/source/Plugins/Process/Darwin/DarwinProcessLauncher.h vendor/lldb/dist/source/Plugins/Process/Darwin/LaunchFlavor.h vendor/lldb/dist/source/Plugins/Process/Darwin/MachException.cpp vendor/lldb/dist/source/Plugins/Process/Darwin/MachException.h vendor/lldb/dist/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp vendor/lldb/dist/source/Plugins/Process/Darwin/NativeProcessDarwin.h vendor/lldb/dist/source/Plugins/Process/Darwin/NativeThreadDarwin.cpp vendor/lldb/dist/source/Plugins/Process/Darwin/NativeThreadDarwin.h vendor/lldb/dist/source/Plugins/Process/Darwin/NativeThreadListDarwin.cpp vendor/lldb/dist/source/Plugins/Process/Darwin/NativeThreadListDarwin.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/RegisterContextPOSIX.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/NetBSD/NativeProcessNetBSD.cpp vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h vendor/lldb/dist/source/Plugins/Process/POSIX/CrashReason.cpp vendor/lldb/dist/source/Plugins/Process/POSIX/CrashReason.h vendor/lldb/dist/source/Plugins/Process/POSIX/ProcessMessage.cpp vendor/lldb/dist/source/Plugins/Process/POSIX/ProcessMessage.h vendor/lldb/dist/source/Plugins/Process/POSIX/ProcessPOSIXLog.cpp vendor/lldb/dist/source/Plugins/Process/POSIX/ProcessPOSIXLog.h vendor/lldb/dist/source/Plugins/Process/Utility/ARMDefines.h vendor/lldb/dist/source/Plugins/Process/Utility/ARMUtils.h vendor/lldb/dist/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp vendor/lldb/dist/source/Plugins/Process/Utility/DynamicRegisterInfo.h vendor/lldb/dist/source/Plugins/Process/Utility/FreeBSDSignals.cpp vendor/lldb/dist/source/Plugins/Process/Utility/FreeBSDSignals.h vendor/lldb/dist/source/Plugins/Process/Utility/GDBRemoteSignals.cpp vendor/lldb/dist/source/Plugins/Process/Utility/GDBRemoteSignals.h vendor/lldb/dist/source/Plugins/Process/Utility/HistoryThread.cpp vendor/lldb/dist/source/Plugins/Process/Utility/HistoryThread.h vendor/lldb/dist/source/Plugins/Process/Utility/HistoryUnwind.cpp 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/InferiorCallPOSIX.h vendor/lldb/dist/source/Plugins/Process/Utility/InstructionUtils.h vendor/lldb/dist/source/Plugins/Process/Utility/LinuxProcMaps.cpp vendor/lldb/dist/source/Plugins/Process/Utility/LinuxProcMaps.h vendor/lldb/dist/source/Plugins/Process/Utility/LinuxSignals.cpp vendor/lldb/dist/source/Plugins/Process/Utility/LinuxSignals.h vendor/lldb/dist/source/Plugins/Process/Utility/MipsLinuxSignals.cpp vendor/lldb/dist/source/Plugins/Process/Utility/MipsLinuxSignals.h vendor/lldb/dist/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.cpp vendor/lldb/dist/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h vendor/lldb/dist/source/Plugins/Process/Utility/NetBSDSignals.cpp vendor/lldb/dist/source/Plugins/Process/Utility/NetBSDSignals.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwinConstants.h 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_i386.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.cpp 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_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_s390x.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_s390x.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.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMach_arm.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMach_arm.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMach_i386.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMach_i386.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMach_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMach_x86_64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMemory.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMemory.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextOpenBSD_i386.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextOpenBSD_i386.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.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.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp 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_s390x.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/RegisterInfoPOSIX_arm.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.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_ppc64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_s390x.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.cpp 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.cpp 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/Utility/lldb-arm64-register-enums.h vendor/lldb/dist/source/Plugins/Process/Utility/lldb-mips-freebsd-register-enums.h vendor/lldb/dist/source/Plugins/Process/Utility/lldb-mips-linux-register-enums.h vendor/lldb/dist/source/Plugins/Process/Utility/lldb-ppc64-register-enums.h vendor/lldb/dist/source/Plugins/Process/Utility/lldb-ppc64le-register-enums.h vendor/lldb/dist/source/Plugins/Process/Utility/lldb-s390x-register-enums.h vendor/lldb/dist/source/Plugins/Process/Utility/lldb-x86-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_ppc64le.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.h vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.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/RegisterUtilities.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterUtilities.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/GDBRemoteClientBase.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.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/GDBRemoteCommunicationHistory.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp 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/ProcessGDBRemoteLog.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.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/Process/minidump/MinidumpParser.cpp vendor/lldb/dist/source/Plugins/Process/minidump/MinidumpParser.h vendor/lldb/dist/source/Plugins/Process/minidump/MinidumpTypes.cpp vendor/lldb/dist/source/Plugins/Process/minidump/MinidumpTypes.h vendor/lldb/dist/source/Plugins/Process/minidump/NtStructures.h vendor/lldb/dist/source/Plugins/Process/minidump/ProcessMinidump.cpp vendor/lldb/dist/source/Plugins/Process/minidump/ProcessMinidump.h vendor/lldb/dist/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp vendor/lldb/dist/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.h vendor/lldb/dist/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp vendor/lldb/dist/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.h vendor/lldb/dist/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.cpp vendor/lldb/dist/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.h vendor/lldb/dist/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.h vendor/lldb/dist/source/Plugins/Process/minidump/ThreadMinidump.cpp vendor/lldb/dist/source/Plugins/Process/minidump/ThreadMinidump.h vendor/lldb/dist/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp vendor/lldb/dist/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.h vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.cpp vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.h vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/lldb-python.h vendor/lldb/dist/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp vendor/lldb/dist/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h vendor/lldb/dist/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp vendor/lldb/dist/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DIERef.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DIERef.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFAttribute.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFAttribute.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.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/DWARFDIE.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDIE.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.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/DWARFDebugMacro.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.h 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.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDefines.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDefines.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/DWARFIndex.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFIndex.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFUnit.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.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/SymbolFileDWARFDwo.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.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/NativePDB/CompileUnitIndex.cpp vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.h vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.cpp vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.h vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/PdbIndex.cpp vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/PdbIndex.h vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/PdbSymUid.cpp vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/PdbSymUid.h vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/PdbUtil.h vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp vendor/lldb/dist/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.h vendor/lldb/dist/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp vendor/lldb/dist/source/Plugins/SymbolFile/PDB/PDBASTParser.h vendor/lldb/dist/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.cpp vendor/lldb/dist/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.h vendor/lldb/dist/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp vendor/lldb/dist/source/Plugins/SymbolFile/PDB/SymbolFilePDB.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.cpp vendor/lldb/dist/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.h vendor/lldb/dist/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp vendor/lldb/dist/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h vendor/lldb/dist/source/Symbol/ArmUnwindInfo.cpp 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/ClangExternalASTSourceCommon.cpp vendor/lldb/dist/source/Symbol/ClangUtil.cpp vendor/lldb/dist/source/Symbol/CompactUnwindInfo.cpp vendor/lldb/dist/source/Symbol/CompileUnit.cpp vendor/lldb/dist/source/Symbol/CompilerDecl.cpp vendor/lldb/dist/source/Symbol/CompilerDeclContext.cpp vendor/lldb/dist/source/Symbol/CompilerType.cpp vendor/lldb/dist/source/Symbol/DWARFCallFrameInfo.cpp vendor/lldb/dist/source/Symbol/DebugMacros.cpp vendor/lldb/dist/source/Symbol/Declaration.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/Symbol.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/TypeMap.cpp vendor/lldb/dist/source/Symbol/TypeSystem.cpp vendor/lldb/dist/source/Symbol/UnwindPlan.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/Symbol/VerifyDecl.cpp vendor/lldb/dist/source/Target/ABI.cpp vendor/lldb/dist/source/Target/ExecutionContext.cpp vendor/lldb/dist/source/Target/InstrumentationRuntime.cpp vendor/lldb/dist/source/Target/InstrumentationRuntimeStopInfo.cpp vendor/lldb/dist/source/Target/JITLoader.cpp vendor/lldb/dist/source/Target/JITLoaderList.cpp vendor/lldb/dist/source/Target/Language.cpp vendor/lldb/dist/source/Target/LanguageRuntime.cpp vendor/lldb/dist/source/Target/Memory.cpp vendor/lldb/dist/source/Target/MemoryHistory.cpp vendor/lldb/dist/source/Target/ModuleCache.cpp vendor/lldb/dist/source/Target/OperatingSystem.cpp vendor/lldb/dist/source/Target/PathMappingList.cpp vendor/lldb/dist/source/Target/Platform.cpp vendor/lldb/dist/source/Target/Process.cpp vendor/lldb/dist/source/Target/Queue.cpp vendor/lldb/dist/source/Target/QueueItem.cpp vendor/lldb/dist/source/Target/QueueList.cpp vendor/lldb/dist/source/Target/RegisterContext.cpp vendor/lldb/dist/source/Target/RegisterNumber.cpp vendor/lldb/dist/source/Target/SectionLoadHistory.cpp vendor/lldb/dist/source/Target/SectionLoadList.cpp vendor/lldb/dist/source/Target/StackFrame.cpp vendor/lldb/dist/source/Target/StackFrameList.cpp vendor/lldb/dist/source/Target/StackFrameRecognizer.cpp vendor/lldb/dist/source/Target/StackID.cpp vendor/lldb/dist/source/Target/StopInfo.cpp vendor/lldb/dist/source/Target/StructuredDataPlugin.cpp vendor/lldb/dist/source/Target/SystemRuntime.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/ThreadCollection.cpp vendor/lldb/dist/source/Target/ThreadList.cpp vendor/lldb/dist/source/Target/ThreadPlan.cpp vendor/lldb/dist/source/Target/ThreadPlanBase.cpp vendor/lldb/dist/source/Target/ThreadPlanCallFunction.cpp vendor/lldb/dist/source/Target/ThreadPlanCallFunctionUsingABI.cpp vendor/lldb/dist/source/Target/ThreadPlanCallOnFunctionExit.cpp vendor/lldb/dist/source/Target/ThreadPlanCallUserExpression.cpp vendor/lldb/dist/source/Target/ThreadPlanPython.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/ThreadPlanStepOverBreakpoint.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/Target/UnwindAssembly.cpp vendor/lldb/dist/source/Utility/ARM64_DWARF_Registers.h vendor/lldb/dist/source/Utility/ARM64_ehframe_Registers.h vendor/lldb/dist/source/Utility/ARM_DWARF_Registers.h vendor/lldb/dist/source/Utility/ARM_ehframe_Registers.h vendor/lldb/dist/source/Utility/ArchSpec.cpp vendor/lldb/dist/source/Utility/Args.cpp vendor/lldb/dist/source/Utility/Baton.cpp vendor/lldb/dist/source/Utility/Broadcaster.cpp vendor/lldb/dist/source/Utility/CompletionRequest.cpp vendor/lldb/dist/source/Utility/Connection.cpp vendor/lldb/dist/source/Utility/ConstString.cpp vendor/lldb/dist/source/Utility/DataBufferHeap.cpp vendor/lldb/dist/source/Utility/DataBufferLLVM.cpp vendor/lldb/dist/source/Utility/DataEncoder.cpp vendor/lldb/dist/source/Utility/DataExtractor.cpp vendor/lldb/dist/source/Utility/Environment.cpp vendor/lldb/dist/source/Utility/Event.cpp vendor/lldb/dist/source/Utility/FileSpec.cpp vendor/lldb/dist/source/Utility/IOObject.cpp vendor/lldb/dist/source/Utility/JSON.cpp vendor/lldb/dist/source/Utility/LLDBAssert.cpp vendor/lldb/dist/source/Utility/Listener.cpp vendor/lldb/dist/source/Utility/Log.cpp vendor/lldb/dist/source/Utility/Logging.cpp vendor/lldb/dist/source/Utility/NameMatches.cpp vendor/lldb/dist/source/Utility/PPC64LE_DWARF_Registers.h vendor/lldb/dist/source/Utility/PPC64LE_ehframe_Registers.h vendor/lldb/dist/source/Utility/PPC64_DWARF_Registers.h vendor/lldb/dist/source/Utility/RegisterValue.cpp vendor/lldb/dist/source/Utility/RegularExpression.cpp vendor/lldb/dist/source/Utility/Reproducer.cpp vendor/lldb/dist/source/Utility/Scalar.cpp vendor/lldb/dist/source/Utility/SelectHelper.cpp vendor/lldb/dist/source/Utility/SharingPtr.cpp vendor/lldb/dist/source/Utility/State.cpp vendor/lldb/dist/source/Utility/Status.cpp vendor/lldb/dist/source/Utility/Stream.cpp vendor/lldb/dist/source/Utility/StreamCallback.cpp vendor/lldb/dist/source/Utility/StreamGDBRemote.cpp vendor/lldb/dist/source/Utility/StreamString.cpp vendor/lldb/dist/source/Utility/StringExtractor.cpp vendor/lldb/dist/source/Utility/StringExtractorGDBRemote.cpp vendor/lldb/dist/source/Utility/StringLexer.cpp vendor/lldb/dist/source/Utility/StringList.cpp vendor/lldb/dist/source/Utility/StructuredData.cpp vendor/lldb/dist/source/Utility/TildeExpressionResolver.cpp vendor/lldb/dist/source/Utility/Timer.cpp vendor/lldb/dist/source/Utility/UUID.cpp vendor/lldb/dist/source/Utility/UriParser.cpp vendor/lldb/dist/source/Utility/UserID.cpp vendor/lldb/dist/source/Utility/UuidCompatibility.h vendor/lldb/dist/source/Utility/VASprintf.cpp vendor/lldb/dist/source/Utility/VMRange.cpp vendor/lldb/dist/source/lldb.cpp vendor/lldb/dist/tools/argdumper/argdumper.cpp vendor/lldb/dist/tools/driver/Driver.cpp vendor/lldb/dist/tools/driver/Driver.h vendor/lldb/dist/tools/driver/Options.td vendor/lldb/dist/tools/driver/Platform.cpp vendor/lldb/dist/tools/driver/Platform.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.cpp 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/MICmnConfig.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.cpp 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/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-mi/Platform.h vendor/lldb/dist/tools/lldb-server/Acceptor.cpp vendor/lldb/dist/tools/lldb-server/Acceptor.h vendor/lldb/dist/tools/lldb-server/Darwin/resources/lldb-server-entitlements.plist vendor/lldb/dist/tools/lldb-server/Darwin/resources/lldb-server-macos-entitlements.plist vendor/lldb/dist/tools/lldb-server/LLDBServerUtilities.cpp vendor/lldb/dist/tools/lldb-server/LLDBServerUtilities.h vendor/lldb/dist/tools/lldb-server/SystemInitializerLLGS.cpp vendor/lldb/dist/tools/lldb-server/SystemInitializerLLGS.h vendor/lldb/dist/tools/lldb-server/lldb-gdbserver.cpp vendor/lldb/dist/tools/lldb-server/lldb-platform.cpp vendor/lldb/dist/tools/lldb-server/lldb-server.cpp Modified: vendor/lldb/dist/LICENSE.TXT ============================================================================== --- vendor/lldb/dist/LICENSE.TXT Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/LICENSE.TXT Tue Aug 20 20:51:52 2019 (r351290) @@ -1,3 +1,241 @@ +============================================================================== +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: +============================================================================== + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +============================================================================== +Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): +============================================================================== University of Illinois/NCSA Open Source License Modified: vendor/lldb/dist/include/lldb/API/LLDB.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/LLDB.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/LLDB.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- LLDB.h --------------------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_LLDB_h_ @@ -49,6 +48,7 @@ #include "lldb/API/SBProcessInfo.h" #include "lldb/API/SBQueue.h" #include "lldb/API/SBQueueItem.h" +#include "lldb/API/SBReproducer.h" #include "lldb/API/SBSection.h" #include "lldb/API/SBSourceManager.h" #include "lldb/API/SBStream.h" Modified: vendor/lldb/dist/include/lldb/API/SBAddress.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBAddress.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBAddress.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBAddress.h ---------------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBAddress_h_ @@ -30,6 +29,12 @@ class LLDB_API SBAddress { (public) const lldb::SBAddress &operator=(const lldb::SBAddress &rhs); + explicit operator bool() const; + + // operator== is a free function + + bool operator!=(const SBAddress &rhs) const; + bool IsValid() const; void Clear(); @@ -115,7 +120,7 @@ class LLDB_API SBAddress { (public) void SetAddress(const lldb_private::Address *lldb_object_ptr); private: - std::unique_ptr m_opaque_ap; + std::unique_ptr m_opaque_up; }; bool LLDB_API operator==(const SBAddress &lhs, const SBAddress &rhs); Modified: vendor/lldb/dist/include/lldb/API/SBAttachInfo.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBAttachInfo.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBAttachInfo.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBAttachInfo.h ------------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBAttachInfo_h_ @@ -22,35 +21,32 @@ class LLDB_API SBAttachInfo { (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 + /// \param[in] path /// A full or partial name for the process to attach to. /// - /// @param[in] wait_for + /// \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 + /// \param[in] path /// A full or partial name for the process to attach to. /// - /// @param[in] wait_for + /// \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 + /// \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. @@ -60,7 +56,6 @@ class LLDB_API SBAttachInfo { (public) /// 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); @@ -79,31 +74,28 @@ class LLDB_API SBAttachInfo { (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] b + /// \param[in] b /// 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] b + /// \param[in] b /// 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 + /// \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. @@ -113,7 +105,6 @@ class LLDB_API SBAttachInfo { (public) /// 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(); @@ -158,23 +149,19 @@ class LLDB_API SBAttachInfo { (public) bool ParentProcessIDIsValid(); - //---------------------------------------------------------------------- /// Get the listener that will be used to receive process events. /// /// If no listener has been set via a call to /// SBAttachInfo::SetListener(), then an invalid SBListener will be /// returned (SBListener::IsValid() will return false). If a listener /// has been set, then the valid listener object will be returned. - //---------------------------------------------------------------------- SBListener GetListener(); - //---------------------------------------------------------------------- /// Set the listener that will be used to receive process events. /// /// By default the SBDebugger, which has a listener, that the SBTarget /// belongs to will listen for the process events. Calling this function /// allows a different listener to be used to listen for process events. - //---------------------------------------------------------------------- void SetListener(SBListener &listener); protected: Modified: vendor/lldb/dist/include/lldb/API/SBBlock.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBBlock.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBBlock.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBBlock.h -----------------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBBlock_h_ @@ -29,6 +28,8 @@ class LLDB_API SBBlock { (public) bool IsInlined() const; + explicit operator bool() const; + bool IsValid() const; const char *GetInlinedName() const; @@ -59,16 +60,14 @@ class LLDB_API SBBlock { (public) lldb::SBValueList GetVariables(lldb::SBTarget &target, bool arguments, bool locals, bool statics); - //------------------------------------------------------------------ /// Get the inlined block that contains this block. /// - /// @return + /// \return /// If this block is inlined, it will return this block, else /// parent blocks will be searched to see if any contain this /// block and are themselves inlined. An invalid SBBlock will /// be returned if this block nor any parent blocks are inlined /// function blocks. - //------------------------------------------------------------------ lldb::SBBlock GetContainingInlinedBlock(); bool GetDescription(lldb::SBStream &description); Modified: vendor/lldb/dist/include/lldb/API/SBBreakpoint.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBBreakpoint.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBBreakpoint.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBBreakpoint.h ------------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBBreakpoint_h_ @@ -36,6 +35,8 @@ class LLDB_API SBBreakpoint { (public) bool operator!=(const lldb::SBBreakpoint &rhs); break_id_t GetID() const; + + explicit operator bool() const; bool IsValid() const; Modified: vendor/lldb/dist/include/lldb/API/SBBreakpointLocation.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBBreakpointLocation.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBBreakpointLocation.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBBreakpointLocation.h ----------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBBreakpointLocation_h_ @@ -27,6 +26,8 @@ class LLDB_API SBBreakpointLocation { (public) operator=(const lldb::SBBreakpointLocation &rhs); break_id_t GetID(); + + explicit operator bool() const; bool IsValid() const; Modified: vendor/lldb/dist/include/lldb/API/SBBreakpointName.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBBreakpointName.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBBreakpointName.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBBreakpointName.h ------------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBBreakpointName_h_ @@ -39,6 +38,8 @@ class LLDB_API SBBreakpointName { (public) bool operator==(const lldb::SBBreakpointName &rhs); bool operator!=(const lldb::SBBreakpointName &rhs); + + explicit operator bool() const; bool IsValid() const; Modified: vendor/lldb/dist/include/lldb/API/SBBroadcaster.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBBroadcaster.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBBroadcaster.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBBroadcaster.h -----------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBBroadcaster_h_ @@ -25,6 +24,8 @@ class LLDB_API SBBroadcaster { (public) const SBBroadcaster &operator=(const SBBroadcaster &rhs); ~SBBroadcaster(); + + explicit operator bool() const; bool IsValid() const; Modified: vendor/lldb/dist/include/lldb/API/SBCommandInterpreter.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBCommandInterpreter.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBCommandInterpreter.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBCommandInterpreter.h ----------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBCommandInterpreter_h_ @@ -88,6 +87,8 @@ class SBCommandInterpreter { (public) static bool EventIsCommandInterpreterEvent(const lldb::SBEvent &event); + explicit operator bool() const; + bool IsValid() const; bool CommandExists(const char *cmd); @@ -189,16 +190,13 @@ class SBCommandInterpreter { (public) lldb_private::CommandInterpreter *interpreter_ptr = nullptr); // Access using SBDebugger::GetCommandInterpreter(); - //---------------------------------------------------------------------- /// Return true if the command interpreter is the active IO handler. /// /// This indicates that any input coming into the debugger handles will /// go to the command interpreter and will result in LLDB command line /// commands being executed. - //---------------------------------------------------------------------- bool IsActive(); - //---------------------------------------------------------------------- /// Get the string that needs to be written to the debugger stdin file /// handle when a control character is typed. /// @@ -207,43 +205,34 @@ class SBCommandInterpreter { (public) /// terminal, so this function allows GUI programs to emulate this /// functionality. /// - /// @param[in] ch + /// \param[in] ch /// The character that was typed along with the control key /// - /// @return + /// \return /// The string that should be written into the file handle that is /// feeding the input stream for the debugger, or nullptr if there is /// no string for this control key. - //---------------------------------------------------------------------- const char *GetIOHandlerControlSequence(char ch); bool GetPromptOnQuit(); void SetPromptOnQuit(bool b); - //---------------------------------------------------------------------- /// Sets whether the command interpreter should allow custom exit codes /// for the 'quit' command. - //---------------------------------------------------------------------- void AllowExitCodeOnQuit(bool allow); - //---------------------------------------------------------------------- /// Returns true if the user has called the 'quit' command with a custom exit /// code. - //---------------------------------------------------------------------- bool HasCustomQuitExitCode(); - //---------------------------------------------------------------------- /// Returns the exit code that the user has specified when running the /// 'quit' command. Returns 0 if the user hasn't called 'quit' at all or /// without a custom exit code. - //---------------------------------------------------------------------- int GetQuitStatus(); - //---------------------------------------------------------------------- /// Resolve the command just as HandleCommand would, expanding abbreviations /// and aliases. If successful, result->GetOutput has the full expansion. - //---------------------------------------------------------------------- void ResolveCommand(const char *command_line, SBCommandReturnObject &result); protected: @@ -256,8 +245,6 @@ class SBCommandInterpreter { (public) private: friend class SBDebugger; - static void InitializeSWIG(); - lldb_private::CommandInterpreter *m_opaque_ptr; }; @@ -274,6 +261,8 @@ class SBCommandPluginInterface { (public) class SBCommand { public: SBCommand(); + + explicit operator bool() const; bool IsValid(); Modified: vendor/lldb/dist/include/lldb/API/SBCommandReturnObject.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBCommandReturnObject.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBCommandReturnObject.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBCommandReturnObject.h ---------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBCommandReturnObject_h_ @@ -33,6 +32,8 @@ class LLDB_API SBCommandReturnObject { (public) lldb_private::CommandReturnObject *Release(); + explicit operator bool() const; + bool IsValid() const; const char *GetOutput(); @@ -100,7 +101,7 @@ class LLDB_API SBCommandReturnObject { (public) void SetLLDBObjectPtr(lldb_private::CommandReturnObject *ptr); private: - std::unique_ptr m_opaque_ap; + std::unique_ptr m_opaque_up; }; } // namespace lldb Modified: vendor/lldb/dist/include/lldb/API/SBCommunication.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBCommunication.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBCommunication.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBCommunication.h ---------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBCommunication_h_ @@ -37,6 +36,8 @@ class LLDB_API SBCommunication { (public) SBCommunication(); SBCommunication(const char *broadcaster_name); ~SBCommunication(); + + explicit operator bool() const; bool IsValid() const; Modified: vendor/lldb/dist/include/lldb/API/SBCompileUnit.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBCompileUnit.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBCompileUnit.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBCompileUnit.h -----------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBCompileUnit_h_ @@ -25,6 +24,8 @@ class LLDB_API SBCompileUnit { (public) const lldb::SBCompileUnit &operator=(const lldb::SBCompileUnit &rhs); + explicit operator bool() const; + bool IsValid() const; lldb::SBFileSpec GetFileSpec() const; @@ -47,11 +48,10 @@ class LLDB_API SBCompileUnit { (public) uint32_t FindSupportFileIndex(uint32_t start_idx, const SBFileSpec &sb_file, bool full); - //------------------------------------------------------------------ /// Get all types matching \a type_mask from debug info in this /// compile unit. /// - /// @param[in] type_mask + /// \param[in] type_mask /// A bitfield that consists of one or more bits logically OR'ed /// together from the lldb::TypeClass enumeration. This allows /// you to request only structure types, or only class, struct @@ -59,9 +59,8 @@ class LLDB_API SBCompileUnit { (public) /// all types found in the debug information for this compile /// unit. /// - /// @return + /// \return /// A list of types in this compile unit that match \a type_mask - //------------------------------------------------------------------ lldb::SBTypeList GetTypes(uint32_t type_mask = lldb::eTypeClassAny); lldb::LanguageType GetLanguage(); Modified: vendor/lldb/dist/include/lldb/API/SBData.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBData.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBData.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBData.h -----------------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBData_h_ @@ -29,6 +28,8 @@ class LLDB_API SBData { (public) void SetAddressByteSize(uint8_t addr_byte_size); void Clear(); + + explicit operator bool() const; bool IsValid(); Modified: vendor/lldb/dist/include/lldb/API/SBDebugger.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBDebugger.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBDebugger.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBDebugger.h --------------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBDebugger_h_ @@ -13,7 +12,6 @@ #include #include "lldb/API/SBDefines.h" -#include "lldb/API/SBInitializerOptions.h" #include "lldb/API/SBPlatform.h" namespace lldb { @@ -23,12 +21,12 @@ class LLDB_API SBInputReader { (public) 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); + SBError Initialize(lldb::SBDebugger &sb_debugger, + unsigned long (*callback)(void *, lldb::SBInputReader *, + lldb::InputReaderAction, + char const *, unsigned long), + void *a, lldb::InputReaderGranularity b, char const *c, + char const *d, bool e); void SetIsDone(bool); bool IsActive() const; }; @@ -46,8 +44,9 @@ class LLDB_API SBDebugger { (public) lldb::SBDebugger &operator=(const lldb::SBDebugger &rhs); static void Initialize(); - static lldb::SBError Initialize(SBInitializerOptions &options); + static lldb::SBError InitializeWithErrorHandling(); + static void Terminate(); // Deprecated, use the one that takes a source_init_files bool. @@ -63,6 +62,8 @@ class LLDB_API SBDebugger { (public) static void MemoryPressureDetected(); + explicit operator bool() const; + bool IsValid() const; void Clear(); @@ -150,7 +151,7 @@ class LLDB_API SBDebugger { (public) /// Get the name and description of one of the available platforms. /// - /// @param[in] idx + /// \param[in] idx /// Zero-based index of the platform for which info should be retrieved, /// must be less than the value returned by GetNumAvailablePlatforms(). lldb::SBStructuredData GetAvailablePlatformInfoAtIndex(uint32_t idx); @@ -254,15 +255,11 @@ class LLDB_API SBDebugger { (public) SBTypeFormat GetFormatForType(SBTypeNameSpecifier); -#ifndef LLDB_DISABLE_PYTHON SBTypeSummary GetSummaryForType(SBTypeNameSpecifier); -#endif SBTypeFilter GetFilterForType(SBTypeNameSpecifier); -#ifndef LLDB_DISABLE_PYTHON SBTypeSynthetic GetSyntheticForType(SBTypeNameSpecifier); -#endif void RunCommandInterpreter(bool auto_handle_events, bool spawn_thread); Modified: vendor/lldb/dist/include/lldb/API/SBDeclaration.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBDeclaration.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBDeclaration.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,11 +1,10 @@ //===-- SBDeclaration.h -------------------------------------------*- C++ //-*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBDeclaration_h_ @@ -26,6 +25,8 @@ class LLDB_API SBDeclaration { (public) const lldb::SBDeclaration &operator=(const lldb::SBDeclaration &rhs); + explicit operator bool() const; + bool IsValid() const; lldb::SBFileSpec GetFileSpec() const; @@ -62,7 +63,7 @@ class LLDB_API SBDeclaration { (public) void SetDeclaration(const lldb_private::Declaration &lldb_object_ref); - std::unique_ptr m_opaque_ap; + std::unique_ptr m_opaque_up; }; } // namespace lldb Modified: vendor/lldb/dist/include/lldb/API/SBDefines.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBDefines.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBDefines.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBDefines.h ---------------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBDefines_h_ @@ -17,10 +16,6 @@ #include "lldb/lldb-types.h" #include "lldb/lldb-versioning.h" -#ifdef SWIG -#define LLDB_API -#endif - // Forward Declarations namespace lldb { @@ -51,7 +46,6 @@ class LLDB_API SBFileSpecList; class LLDB_API SBFrame; class LLDB_API SBFunction; class LLDB_API SBHostOS; -class LLDB_API SBInitializerOptions; class LLDB_API SBInstruction; class LLDB_API SBInstructionList; class LLDB_API SBLanguageRuntime; Modified: vendor/lldb/dist/include/lldb/API/SBError.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBError.h Tue Aug 20 20:51:35 2019 (r351289) +++ vendor/lldb/dist/include/lldb/API/SBError.h Tue Aug 20 20:51:52 2019 (r351290) @@ -1,10 +1,9 @@ //===-- SBError.h -----------------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// #ifndef LLDB_SBError_h_ @@ -47,27 +46,30 @@ class LLDB_API SBError { (public) int SetErrorStringWithFormat(const char *format, ...) __attribute__((format(printf, 2, 3))); + explicit operator bool() const; + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Aug 20 20:52:02 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 43142E02AD; Tue, 20 Aug 2019 20:52:02 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjdt021Zz41sS; Tue, 20 Aug 2019 20:52:02 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BD77C9038; Tue, 20 Aug 2019 20:52:01 +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 x7KKq1mB079555; Tue, 20 Aug 2019 20:52:01 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKq1CJ079554; Tue, 20 Aug 2019 20:52:01 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202052.x7KKq1CJ079554@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:52:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351291 - vendor/lldb/lldb-trunk-r366426 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/lldb/lldb-trunk-r366426 X-SVN-Commit-Revision: 351291 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:52:02 -0000 Author: dim Date: Tue Aug 20 20:52:01 2019 New Revision: 351291 URL: https://svnweb.freebsd.org/changeset/base/351291 Log: Tag stripped lldb trunk r366426 (just before the release_90 branch point). Added: vendor/lldb/lldb-trunk-r366426/ - copied from r351290, vendor/lldb/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:52:09 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 598D9E02E5; Tue, 20 Aug 2019 20:52:09 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjf11FlQz428n; Tue, 20 Aug 2019 20:52:09 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D8ABF9045; Tue, 20 Aug 2019 20:52:08 +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 x7KKq8AI079676; Tue, 20 Aug 2019 20:52:08 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKq8NV079675; Tue, 20 Aug 2019 20:52:08 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202052.x7KKq8NV079675@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:52:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351293 - vendor/llvm-openmp/openmp-trunk-r366426 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-openmp/openmp-trunk-r366426 X-SVN-Commit-Revision: 351293 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:52:09 -0000 Author: dim Date: Tue Aug 20 20:52:08 2019 New Revision: 351293 URL: https://svnweb.freebsd.org/changeset/base/351293 Log: Tag stripped LLVM openmp trunk r366426 (just before the release_90 branch point). Added: vendor/llvm-openmp/openmp-trunk-r366426/ - copied from r351292, vendor/llvm-openmp/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:52:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 878B5E02D0; Tue, 20 Aug 2019 20:52:06 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjdy2YD1z423g; Tue, 20 Aug 2019 20:52: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F227F903F; Tue, 20 Aug 2019 20:52:05 +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 x7KKq5Yg079611; Tue, 20 Aug 2019 20:52:05 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKq4r1079604; Tue, 20 Aug 2019 20:52:04 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202052.x7KKq4r1079604@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:52:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351292 - in vendor/llvm-openmp/dist: . runtime/src runtime/src/i18n runtime/src/include runtime/src/include/30 runtime/src/include/40 runtime/src/include/45 runtime/src/include/50 runt... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-openmp/dist: . runtime/src runtime/src/i18n runtime/src/include runtime/src/include/30 runtime/src/include/40 runtime/src/include/45 runtime/src/include/50 runtime/src/thirdparty/ittnot... X-SVN-Commit-Revision: 351292 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:52:06 -0000 Author: dim Date: Tue Aug 20 20:52:04 2019 New Revision: 351292 URL: https://svnweb.freebsd.org/changeset/base/351292 Log: Vendor import of stripped LLVM openmp trunk r366426 (just before the release_90 branch point): https://llvm.org/svn/llvm-project/openmp/trunk@366426 Added: vendor/llvm-openmp/dist/runtime/src/include/omp-tools.h.var vendor/llvm-openmp/dist/runtime/src/include/omp.h.var vendor/llvm-openmp/dist/runtime/src/include/omp_lib.f.var vendor/llvm-openmp/dist/runtime/src/include/omp_lib.f90.var vendor/llvm-openmp/dist/runtime/src/include/omp_lib.h.var Deleted: vendor/llvm-openmp/dist/runtime/src/include/30/ vendor/llvm-openmp/dist/runtime/src/include/40/ vendor/llvm-openmp/dist/runtime/src/include/45/ vendor/llvm-openmp/dist/runtime/src/include/50/ Modified: vendor/llvm-openmp/dist/LICENSE.txt vendor/llvm-openmp/dist/runtime/src/dllexports vendor/llvm-openmp/dist/runtime/src/exports_so.txt vendor/llvm-openmp/dist/runtime/src/extractExternal.cpp vendor/llvm-openmp/dist/runtime/src/i18n/en_US.txt vendor/llvm-openmp/dist/runtime/src/kmp.h vendor/llvm-openmp/dist/runtime/src/kmp_affinity.cpp vendor/llvm-openmp/dist/runtime/src/kmp_affinity.h vendor/llvm-openmp/dist/runtime/src/kmp_alloc.cpp vendor/llvm-openmp/dist/runtime/src/kmp_atomic.cpp vendor/llvm-openmp/dist/runtime/src/kmp_atomic.h vendor/llvm-openmp/dist/runtime/src/kmp_barrier.cpp vendor/llvm-openmp/dist/runtime/src/kmp_cancel.cpp vendor/llvm-openmp/dist/runtime/src/kmp_config.h.cmake vendor/llvm-openmp/dist/runtime/src/kmp_csupport.cpp vendor/llvm-openmp/dist/runtime/src/kmp_debug.cpp vendor/llvm-openmp/dist/runtime/src/kmp_debug.h vendor/llvm-openmp/dist/runtime/src/kmp_debugger.cpp vendor/llvm-openmp/dist/runtime/src/kmp_debugger.h vendor/llvm-openmp/dist/runtime/src/kmp_dispatch.cpp vendor/llvm-openmp/dist/runtime/src/kmp_dispatch.h vendor/llvm-openmp/dist/runtime/src/kmp_dispatch_hier.h vendor/llvm-openmp/dist/runtime/src/kmp_environment.cpp vendor/llvm-openmp/dist/runtime/src/kmp_environment.h vendor/llvm-openmp/dist/runtime/src/kmp_error.cpp vendor/llvm-openmp/dist/runtime/src/kmp_error.h vendor/llvm-openmp/dist/runtime/src/kmp_ftn_cdecl.cpp vendor/llvm-openmp/dist/runtime/src/kmp_ftn_entry.h vendor/llvm-openmp/dist/runtime/src/kmp_ftn_extra.cpp vendor/llvm-openmp/dist/runtime/src/kmp_ftn_os.h vendor/llvm-openmp/dist/runtime/src/kmp_ftn_stdcall.cpp vendor/llvm-openmp/dist/runtime/src/kmp_global.cpp vendor/llvm-openmp/dist/runtime/src/kmp_gsupport.cpp vendor/llvm-openmp/dist/runtime/src/kmp_i18n.cpp vendor/llvm-openmp/dist/runtime/src/kmp_i18n.h vendor/llvm-openmp/dist/runtime/src/kmp_import.cpp vendor/llvm-openmp/dist/runtime/src/kmp_io.cpp vendor/llvm-openmp/dist/runtime/src/kmp_io.h vendor/llvm-openmp/dist/runtime/src/kmp_itt.cpp vendor/llvm-openmp/dist/runtime/src/kmp_itt.h vendor/llvm-openmp/dist/runtime/src/kmp_itt.inl vendor/llvm-openmp/dist/runtime/src/kmp_lock.cpp vendor/llvm-openmp/dist/runtime/src/kmp_lock.h vendor/llvm-openmp/dist/runtime/src/kmp_omp.h vendor/llvm-openmp/dist/runtime/src/kmp_os.h vendor/llvm-openmp/dist/runtime/src/kmp_platform.h vendor/llvm-openmp/dist/runtime/src/kmp_runtime.cpp vendor/llvm-openmp/dist/runtime/src/kmp_safe_c_api.h vendor/llvm-openmp/dist/runtime/src/kmp_sched.cpp vendor/llvm-openmp/dist/runtime/src/kmp_settings.cpp vendor/llvm-openmp/dist/runtime/src/kmp_settings.h vendor/llvm-openmp/dist/runtime/src/kmp_stats.cpp vendor/llvm-openmp/dist/runtime/src/kmp_stats.h vendor/llvm-openmp/dist/runtime/src/kmp_stats_timing.cpp vendor/llvm-openmp/dist/runtime/src/kmp_stats_timing.h vendor/llvm-openmp/dist/runtime/src/kmp_str.cpp vendor/llvm-openmp/dist/runtime/src/kmp_str.h vendor/llvm-openmp/dist/runtime/src/kmp_stub.cpp vendor/llvm-openmp/dist/runtime/src/kmp_stub.h vendor/llvm-openmp/dist/runtime/src/kmp_taskdeps.cpp vendor/llvm-openmp/dist/runtime/src/kmp_taskdeps.h vendor/llvm-openmp/dist/runtime/src/kmp_tasking.cpp vendor/llvm-openmp/dist/runtime/src/kmp_taskq.cpp vendor/llvm-openmp/dist/runtime/src/kmp_threadprivate.cpp vendor/llvm-openmp/dist/runtime/src/kmp_utility.cpp vendor/llvm-openmp/dist/runtime/src/kmp_version.cpp vendor/llvm-openmp/dist/runtime/src/kmp_version.h vendor/llvm-openmp/dist/runtime/src/kmp_wait_release.cpp vendor/llvm-openmp/dist/runtime/src/kmp_wait_release.h vendor/llvm-openmp/dist/runtime/src/kmp_wrapper_getpid.h vendor/llvm-openmp/dist/runtime/src/kmp_wrapper_malloc.h vendor/llvm-openmp/dist/runtime/src/libomp.rc.var vendor/llvm-openmp/dist/runtime/src/ompt-event-specific.h vendor/llvm-openmp/dist/runtime/src/ompt-general.cpp vendor/llvm-openmp/dist/runtime/src/ompt-internal.h vendor/llvm-openmp/dist/runtime/src/ompt-specific.cpp vendor/llvm-openmp/dist/runtime/src/ompt-specific.h vendor/llvm-openmp/dist/runtime/src/test-touch.c vendor/llvm-openmp/dist/runtime/src/thirdparty/ittnotify/disable_warnings.h vendor/llvm-openmp/dist/runtime/src/thirdparty/ittnotify/ittnotify.h vendor/llvm-openmp/dist/runtime/src/thirdparty/ittnotify/ittnotify_config.h vendor/llvm-openmp/dist/runtime/src/thirdparty/ittnotify/ittnotify_static.c vendor/llvm-openmp/dist/runtime/src/thirdparty/ittnotify/ittnotify_static.h vendor/llvm-openmp/dist/runtime/src/thirdparty/ittnotify/ittnotify_types.h vendor/llvm-openmp/dist/runtime/src/thirdparty/ittnotify/legacy/ittnotify.h vendor/llvm-openmp/dist/runtime/src/tsan_annotations.cpp vendor/llvm-openmp/dist/runtime/src/tsan_annotations.h vendor/llvm-openmp/dist/runtime/src/z_Linux_asm.S vendor/llvm-openmp/dist/runtime/src/z_Linux_util.cpp vendor/llvm-openmp/dist/runtime/src/z_Windows_NT-586_asm.asm vendor/llvm-openmp/dist/runtime/src/z_Windows_NT-586_util.cpp vendor/llvm-openmp/dist/runtime/src/z_Windows_NT_util.cpp Modified: vendor/llvm-openmp/dist/LICENSE.txt ============================================================================== --- vendor/llvm-openmp/dist/LICENSE.txt Tue Aug 20 20:52:01 2019 (r351291) +++ vendor/llvm-openmp/dist/LICENSE.txt Tue Aug 20 20:52:04 2019 (r351292) @@ -1,5 +1,242 @@ ============================================================================== +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: +============================================================================== + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +============================================================================== +Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): +============================================================================== + The software contained in this directory tree is dual licensed under both the University of Illinois "BSD-Like" license and the MIT license. As a user of this code you may choose to use it under either license. As a contributor, @@ -111,56 +348,6 @@ the Work, but excluding communication that is conspicu submitted. If any entity institutes patent litigation against Intel or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that Intel's Software, or the Work to which Intel has contributed constitutes - direct or contributory patent infringement, then any patent licenses granted - to that entity under this Agreement for the Software or Work shall terminate - as of the date such litigation is filed. - -Unless required by applicable law or agreed to in writing, the software is -provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, -either express or implied, including, without limitation, any warranties or -conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. - -============================================================================== - -ARM Limited - -Software Grant License Agreement ("Agreement") - -Except for the license granted herein to you, ARM Limited ("ARM") reserves all -right, title, and interest in and to the Software (defined below). - -Definition - -"Software" means the code and documentation as well as any original work of -authorship, including any modifications or additions to an existing work, that -is intentionally submitted by ARM to llvm.org (http://llvm.org) ("LLVM") for -inclusion in, or documentation of, any of the products owned or managed by LLVM -(the "Work"). For the purposes of this definition, "submitted" means any form of -electronic, verbal, or written communication sent to LLVM or its -representatives, including but not limited to communication on electronic -mailing lists, source code control systems, and issue tracking systems that are -managed by, or on behalf of, LLVM for the purpose of discussing and improving -the Work, but excluding communication that is conspicuously marked otherwise. - -1. Grant of Copyright License. Subject to the terms and conditions of this - Agreement, ARM hereby grants to you and to recipients of the Software - distributed by LLVM a perpetual, worldwide, non-exclusive, no-charge, - royalty-free, irrevocable copyright license to reproduce, prepare derivative - works of, publicly display, publicly perform, sublicense, and distribute the - Software and such derivative works. - -2. Grant of Patent License. Subject to the terms and conditions of this - Agreement, ARM hereby grants you and to recipients of the Software - distributed by LLVM a perpetual, worldwide, non-exclusive, no-charge, - royalty-free, irrevocable (except as stated in this section) patent license - to make, have made, use, offer to sell, sell, import, and otherwise transfer - the Work, where such license applies only to those patent claims licensable - by ARM that are necessarily infringed by ARM's Software alone or by - combination of the Software with the Work to which such Software was - submitted. If any entity institutes patent litigation against ARM or any - other entity (including a cross-claim or counterclaim in a lawsuit) alleging - that ARM's Software, or the Work to which ARM has contributed constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Agreement for the Software or Work shall terminate as of the date such litigation is filed. Modified: vendor/llvm-openmp/dist/runtime/src/dllexports ============================================================================== --- vendor/llvm-openmp/dist/runtime/src/dllexports Tue Aug 20 20:52:01 2019 (r351291) +++ vendor/llvm-openmp/dist/runtime/src/dllexports Tue Aug 20 20:52:04 2019 (r351292) @@ -1,11 +1,10 @@ # #//===----------------------------------------------------------------------===// #// -#// The LLVM Compiler Infrastructure +#// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +#// See https://llvm.org/LICENSE.txt for license information. +#// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception #// -#// This file is dual licensed under the MIT and the University of Illinois Open -#// Source Licenses. See LICENSE.txt for details. -#// #//===----------------------------------------------------------------------===// # @@ -159,7 +158,7 @@ # # Regular entry points - __kmp_wait_yield_4 + __kmp_wait_4 __kmp_fork_call __kmp_invoke_microtask %ifdef KMP_USE_MONITOR @@ -182,7 +181,6 @@ __kmp_printf %endif - %ifdef USE_DEBUGGER __kmp_debugging DATA __kmp_omp_debug_struct_info DATA @@ -191,14 +189,9 @@ # Symbols for MS mutual detection: _You_must_link_with_exactly_one_OpenMP_library DATA _You_must_link_with_Intel_OpenMP_library DATA - %ifdef msvc_compat - _You_must_link_with_Microsoft_OpenMP_library DATA - %endif - __kmp_wait_64 __kmp_release_64 - # VT_getthid 1 # vtgthid 2 @@ -228,8 +221,8 @@ __kmpc_end_ordered 125 __kmpc_end_serialized_parallel 126 __kmpc_end_single 127 - __kmpc_end_taskq 128 - __kmpc_end_taskq_task 129 +# __kmpc_end_taskq 128 +# __kmpc_end_taskq_task 129 __kmpc_flush 130 __kmpc_for_static_fini 135 __kmpc_for_static_init_4 136 @@ -246,10 +239,10 @@ __kmpc_push_num_threads 148 __kmpc_serialized_parallel 150 __kmpc_single 151 - __kmpc_task 152 - __kmpc_task_buffer 153 - __kmpc_taskq 154 - __kmpc_taskq_task 155 +# __kmpc_task 152 +# __kmpc_task_buffer 153 +# __kmpc_taskq 154 +# __kmpc_taskq_task 155 __kmpc_threadprivate 156 __kmpc_threadprivate_cached 157 __kmpc_threadprivate_register 158 @@ -286,16 +279,12 @@ __kmpc_reduce 189 __kmpc_end_reduce 190 -# OpenMP 3.0 - -%ifdef OMP_30 __kmpc_omp_task_alloc 191 __kmpc_omp_task 192 __kmpc_omp_taskwait 193 __kmpc_omp_task_begin_if0 196 __kmpc_omp_task_complete_if0 197 __kmpc_omp_task_parts 198 -%endif # OMP_30 # __omp_collector_api 199 @@ -327,9 +316,7 @@ kmpc_set_stacksize_s 222 # kmpc_set_stats 217 kmpc_set_defaults 224 -# OMP 3.0 entry points for unsigned loop iteration variables %ifndef stub - %ifdef OMP_30 __kmpc_for_static_init_8u 225 __kmpc_dispatch_init_8u 226 __kmpc_dispatch_next_8u 227 @@ -338,7 +325,6 @@ kmpc_set_defaults 224 __kmpc_dispatch_init_4u 230 __kmpc_dispatch_next_4u 231 __kmpc_dispatch_fini_4u 232 - %endif # OMP_30 %endif %ifndef stub @@ -346,17 +332,12 @@ kmpc_set_defaults 224 __kmpc_get_parent_taskid 234 %endif -# OpenMP 3.1 entry points %ifndef stub - %ifdef OMP_30 __kmpc_omp_taskyield 235 - %endif # OMP_30 # __kmpc_place_threads 236 %endif -# OpenMP 4.0 entry points %ifndef stub - %ifdef OMP_40 __kmpc_push_proc_bind 237 __kmpc_taskgroup 238 __kmpc_end_taskgroup 239 @@ -379,12 +360,9 @@ kmpc_set_defaults 224 __kmpc_team_static_init_4u 256 __kmpc_team_static_init_8 257 __kmpc_team_static_init_8u 258 - %endif # OMP_40 %endif -# OpenMP 4.5 entry points %ifndef stub - %ifdef OMP_45 __kmpc_proxy_task_completed 259 __kmpc_proxy_task_completed_ooo 260 __kmpc_doacross_init 261 @@ -393,20 +371,22 @@ kmpc_set_defaults 224 __kmpc_doacross_fini 264 __kmpc_taskloop 266 __kmpc_critical_with_hint 270 - %endif %endif kmpc_aligned_malloc 265 kmpc_set_disp_num_buffers 267 -# OpenMP 5.0 entry points %ifndef stub - %ifdef OMP_50 __kmpc_task_reduction_init 268 __kmpc_task_reduction_get_th_data 269 -# USED FOR 4.5 __kmpc_critical_with_hint 270 +# USED ABOVE __kmpc_critical_with_hint 270 __kmpc_get_target_offload 271 - __kmpc_omp_reg_task_with_affinity 272 - %endif + __kmpc_omp_reg_task_with_affinity 272 + __kmpc_pause_resource 273 + __kmpc_task_reduction_modifier_init 274 + __kmpc_task_reduction_modifier_fini 275 + __kmpc_task_allow_completion_event 276 + __kmpc_taskred_init 277 + __kmpc_taskred_modifier_init 278 %endif # User API entry points that have both lower- and upper- case versions for Fortran. @@ -464,7 +444,6 @@ kmp_aligned_malloc 747 kmp_set_warnings_on 779 kmp_set_warnings_off 780 -%ifdef OMP_30 omp_get_active_level 789 omp_get_level 790 omp_get_ancestor_thread_num 791 @@ -489,17 +468,9 @@ kmp_set_warnings_off 780 kmpc_unset_affinity_mask_proc 858 kmp_get_affinity_mask_proc 859 kmpc_get_affinity_mask_proc 860 -%endif # OMP_30 -# OpenMP 3.1 - -%ifdef OMP_30 omp_in_final 861 -%endif # OMP_30 -# OpenMP 40 - -%ifdef OMP_40 omp_get_proc_bind 862 #omp_set_proc_bind 863 #omp_curr_proc_bind 864 @@ -511,11 +482,7 @@ kmp_set_warnings_off 780 omp_set_default_device 879 omp_get_default_device 880 omp_get_num_devices 881 -%endif # OMP_40 -# OpenMP 45 - -%ifdef OMP_45 omp_init_lock_with_hint 870 omp_init_nest_lock_with_hint 871 omp_get_max_task_priority 872 @@ -535,17 +502,25 @@ kmp_set_warnings_off 780 omp_target_associate_ptr 888 omp_target_disassociate_ptr 889 %endif -%endif # OMP_45 kmp_set_disp_num_buffers 890 -%ifdef OMP_50 omp_control_tool 891 omp_set_default_allocator 892 omp_get_default_allocator 893 omp_alloc 894 omp_free 895 omp_get_device_num 896 + omp_init_allocator 897 + omp_destroy_allocator 898 + %ifndef stub + __kmpc_set_default_allocator + __kmpc_get_default_allocator + __kmpc_alloc + __kmpc_free + __kmpc_init_allocator + __kmpc_destroy_allocator + %endif omp_set_affinity_format 748 omp_get_affinity_format 749 omp_display_affinity 750 @@ -554,8 +529,12 @@ kmp_set_disp_num_buffers 890 ompc_get_affinity_format 753 ompc_display_affinity 754 ompc_capture_affinity 755 + omp_pause_resource 756 + omp_pause_resource_all 757 + omp_get_supported_active_levels 758 + omp_fulfill_event 759 - OMP_NULL_ALLOCATOR DATA + omp_null_allocator DATA omp_default_mem_alloc DATA omp_large_cap_mem_alloc DATA omp_const_mem_alloc DATA @@ -564,8 +543,13 @@ kmp_set_disp_num_buffers 890 omp_cgroup_mem_alloc DATA omp_pteam_mem_alloc DATA omp_thread_mem_alloc DATA -%endif # OMP_50 + omp_default_mem_space DATA + omp_large_cap_mem_space DATA + omp_const_mem_space DATA + omp_high_bw_mem_space DATA + omp_low_lat_mem_space DATA + %ifndef stub # Ordinals between 900 and 999 are reserved @@ -1014,8 +998,6 @@ kmp_set_disp_num_buffers 890 __kmpc_atomic_float10_div_cpt_fp %endif - %ifdef OMP_40 - # ATOMIC extensions for OpenMP 4.0 spec (x86 and x64 only) __kmpc_atomic_fixed1_swp 2412 @@ -1190,8 +1172,6 @@ kmp_set_disp_num_buffers 890 __kmpc_atomic_float10_sub_cpt_rev_fp __kmpc_atomic_float10_div_cpt_rev_fp %endif - %endif # OMP_40 - %endif # arch_64 Modified: vendor/llvm-openmp/dist/runtime/src/exports_so.txt ============================================================================== --- vendor/llvm-openmp/dist/runtime/src/exports_so.txt Tue Aug 20 20:52:01 2019 (r351291) +++ vendor/llvm-openmp/dist/runtime/src/exports_so.txt Tue Aug 20 20:52:04 2019 (r351292) @@ -3,11 +3,10 @@ # #//===----------------------------------------------------------------------===// #// -#// The LLVM Compiler Infrastructure +#// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +#// See https://llvm.org/LICENSE.txt for license information. +#// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception #// -#// This file is dual licensed under the MIT and the University of Illinois Open -#// Source Licenses. See LICENSE.txt for details. -#// #//===----------------------------------------------------------------------===// # @@ -39,7 +38,6 @@ VERSION { _You_must_link_with_*; # Mutual detection/MS compatibility symbols. - # # Debugger support. # @@ -55,7 +53,6 @@ VERSION { ___kmp_allocate; ___kmp_free; __kmp_thread_pool; - __kmp_thread_pool_nth; __kmp_reset_stats; @@ -84,7 +81,7 @@ VERSION { __kmp_reap_worker; __kmp_release_64; __kmp_wait_64; - __kmp_wait_yield_4; + __kmp_wait_4; # ittnotify symbols to be used by debugger __kmp_itt_fini_ittlib; Modified: vendor/llvm-openmp/dist/runtime/src/extractExternal.cpp ============================================================================== --- vendor/llvm-openmp/dist/runtime/src/extractExternal.cpp Tue Aug 20 20:52:01 2019 (r351291) +++ vendor/llvm-openmp/dist/runtime/src/extractExternal.cpp Tue Aug 20 20:52:04 2019 (r351292) @@ -4,10 +4,9 @@ //===----------------------------------------------------------------------===// // -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// Modified: vendor/llvm-openmp/dist/runtime/src/i18n/en_US.txt ============================================================================== --- vendor/llvm-openmp/dist/runtime/src/i18n/en_US.txt Tue Aug 20 20:52:01 2019 (r351291) +++ vendor/llvm-openmp/dist/runtime/src/i18n/en_US.txt Tue Aug 20 20:52:04 2019 (r351292) @@ -3,11 +3,10 @@ # #//===----------------------------------------------------------------------===// #// -#// The LLVM Compiler Infrastructure +#// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +#// See https://llvm.org/LICENSE.txt for license information. +#// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception #// -#// This file is dual licensed under the MIT and the University of Illinois Open -#// Source Licenses. See LICENSE.txt for details. -#// #//===----------------------------------------------------------------------===// # @@ -426,8 +425,8 @@ AffHWSubsetManyTiles "KMP_HW_SUBSET ignored: t AffHWSubsetManyProcs "KMP_HW_SUBSET ignored: too many Procs requested." HierSchedInvalid "Hierarchy ignored: unsupported level: %1$s." AffFormatDefault "OMP: pid %1$s tid %2$s thread %3$s bound to OS proc set {%4$s}" +APIDeprecated "%1$s routine deprecated, please use %2$s instead." - # -------------------------------------------------------------------------------------------------- -*- HINTS -*- # -------------------------------------------------------------------------------------------------- @@ -490,4 +489,3 @@ SystemLimitOnThreads "System-related limit on # -------------------------------------------------------------------------------------------------- # end of file # # -------------------------------------------------------------------------------------------------- - Added: vendor/llvm-openmp/dist/runtime/src/include/omp-tools.h.var ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm-openmp/dist/runtime/src/include/omp-tools.h.var Tue Aug 20 20:52:04 2019 (r351292) @@ -0,0 +1,1082 @@ +/* + * include/omp-tools.h.var + */ + +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef __OMPT__ +#define __OMPT__ + +/***************************************************************************** + * system include files + *****************************************************************************/ + +#include +#include + +/***************************************************************************** + * iteration macros + *****************************************************************************/ + +#define FOREACH_OMPT_INQUIRY_FN(macro) \ + macro (ompt_enumerate_states) \ + macro (ompt_enumerate_mutex_impls) \ + \ + macro (ompt_set_callback) \ + macro (ompt_get_callback) \ + \ + macro (ompt_get_state) \ + \ + macro (ompt_get_parallel_info) \ + macro (ompt_get_task_info) \ + macro (ompt_get_task_memory) \ + macro (ompt_get_thread_data) \ + macro (ompt_get_unique_id) \ + macro (ompt_finalize_tool) \ + \ + macro(ompt_get_num_procs) \ + macro(ompt_get_num_places) \ + macro(ompt_get_place_proc_ids) \ + macro(ompt_get_place_num) \ + macro(ompt_get_partition_place_nums) \ + macro(ompt_get_proc_id) \ + \ + macro(ompt_get_target_info) \ + macro(ompt_get_num_devices) + +#define FOREACH_OMPT_STATE(macro) \ + \ + /* first available state */ \ + macro (ompt_state_undefined, 0x102) /* undefined thread state */ \ + \ + /* work states (0..15) */ \ + macro (ompt_state_work_serial, 0x000) /* working outside parallel */ \ + macro (ompt_state_work_parallel, 0x001) /* working within parallel */ \ + macro (ompt_state_work_reduction, 0x002) /* performing a reduction */ \ + \ + /* barrier wait states (16..31) */ \ + macro (ompt_state_wait_barrier, 0x010) /* waiting at a barrier */ \ + macro (ompt_state_wait_barrier_implicit_parallel, 0x011) \ + /* implicit barrier at the end of parallel region */\ + macro (ompt_state_wait_barrier_implicit_workshare, 0x012) \ + /* implicit barrier at the end of worksharing */ \ + macro (ompt_state_wait_barrier_implicit, 0x013) /* implicit barrier */ \ + macro (ompt_state_wait_barrier_explicit, 0x014) /* explicit barrier */ \ + \ + /* task wait states (32..63) */ \ + macro (ompt_state_wait_taskwait, 0x020) /* waiting at a taskwait */ \ + macro (ompt_state_wait_taskgroup, 0x021) /* waiting at a taskgroup */ \ + \ + /* mutex wait states (64..127) */ \ + macro (ompt_state_wait_mutex, 0x040) \ + macro (ompt_state_wait_lock, 0x041) /* waiting for lock */ \ + macro (ompt_state_wait_critical, 0x042) /* waiting for critical */ \ + macro (ompt_state_wait_atomic, 0x043) /* waiting for atomic */ \ + macro (ompt_state_wait_ordered, 0x044) /* waiting for ordered */ \ + \ + /* target wait states (128..255) */ \ + macro (ompt_state_wait_target, 0x080) /* waiting for target region */ \ + macro (ompt_state_wait_target_map, 0x081) /* waiting for target data mapping operation */ \ + macro (ompt_state_wait_target_update, 0x082) /* waiting for target update operation */ \ + \ + /* misc (256..511) */ \ + macro (ompt_state_idle, 0x100) /* waiting for work */ \ + macro (ompt_state_overhead, 0x101) /* overhead excluding wait states */ \ + \ + /* implementation-specific states (512..) */ + + +#define FOREACH_KMP_MUTEX_IMPL(macro) \ + macro (kmp_mutex_impl_none, 0) /* unknown implementation */ \ + macro (kmp_mutex_impl_spin, 1) /* based on spin */ \ + macro (kmp_mutex_impl_queuing, 2) /* based on some fair policy */ \ + macro (kmp_mutex_impl_speculative, 3) /* based on HW-supported speculation */ + +#define FOREACH_OMPT_EVENT(macro) \ + \ + /*--- Mandatory Events ---*/ \ + macro (ompt_callback_thread_begin, ompt_callback_thread_begin_t, 1) /* thread begin */ \ + macro (ompt_callback_thread_end, ompt_callback_thread_end_t, 2) /* thread end */ \ + \ + macro (ompt_callback_parallel_begin, ompt_callback_parallel_begin_t, 3) /* parallel begin */ \ + macro (ompt_callback_parallel_end, ompt_callback_parallel_end_t, 4) /* parallel end */ \ + \ + macro (ompt_callback_task_create, ompt_callback_task_create_t, 5) /* task begin */ \ + macro (ompt_callback_task_schedule, ompt_callback_task_schedule_t, 6) /* task schedule */ \ + macro (ompt_callback_implicit_task, ompt_callback_implicit_task_t, 7) /* implicit task */ \ + \ + macro (ompt_callback_target, ompt_callback_target_t, 8) /* target */ \ + macro (ompt_callback_target_data_op, ompt_callback_target_data_op_t, 9) /* target data op */ \ + macro (ompt_callback_target_submit, ompt_callback_target_submit_t, 10) /* target submit */ \ + \ + macro (ompt_callback_control_tool, ompt_callback_control_tool_t, 11) /* control tool */ \ + \ + macro (ompt_callback_device_initialize, ompt_callback_device_initialize_t, 12) /* device initialize */ \ + macro (ompt_callback_device_finalize, ompt_callback_device_finalize_t, 13) /* device finalize */ \ + \ + macro (ompt_callback_device_load, ompt_callback_device_load_t, 14) /* device load */ \ + macro (ompt_callback_device_unload, ompt_callback_device_unload_t, 15) /* device unload */ \ + \ + /* Optional Events */ \ + macro (ompt_callback_sync_region_wait, ompt_callback_sync_region_t, 16) /* sync region wait begin or end */ \ + \ + macro (ompt_callback_mutex_released, ompt_callback_mutex_t, 17) /* mutex released */ \ + \ + macro (ompt_callback_dependences, ompt_callback_dependences_t, 18) /* report task dependences */ \ + macro (ompt_callback_task_dependence, ompt_callback_task_dependence_t, 19) /* report task dependence */ \ + \ + macro (ompt_callback_work, ompt_callback_work_t, 20) /* task at work begin or end */ \ + \ + macro (ompt_callback_master, ompt_callback_master_t, 21) /* task at master begin or end */ \ + \ + macro (ompt_callback_target_map, ompt_callback_target_map_t, 22) /* target map */ \ + \ + macro (ompt_callback_sync_region, ompt_callback_sync_region_t, 23) /* sync region begin or end */ \ + \ + macro (ompt_callback_lock_init, ompt_callback_mutex_acquire_t, 24) /* lock init */ \ + macro (ompt_callback_lock_destroy, ompt_callback_mutex_t, 25) /* lock destroy */ \ + \ + macro (ompt_callback_mutex_acquire, ompt_callback_mutex_acquire_t, 26) /* mutex acquire */ \ + macro (ompt_callback_mutex_acquired, ompt_callback_mutex_t, 27) /* mutex acquired */ \ + \ + macro (ompt_callback_nest_lock, ompt_callback_nest_lock_t, 28) /* nest lock */ \ + \ + macro (ompt_callback_flush, ompt_callback_flush_t, 29) /* after executing flush */ \ + \ + macro (ompt_callback_cancel, ompt_callback_cancel_t, 30) /* cancel innermost binding region */ \ + \ + macro (ompt_callback_reduction, ompt_callback_sync_region_t, 31) /* reduction */ \ + \ + macro (ompt_callback_dispatch, ompt_callback_dispatch_t, 32) /* dispatch of work */ + +/***************************************************************************** + * implementation specific types + *****************************************************************************/ + +typedef enum kmp_mutex_impl_t { +#define kmp_mutex_impl_macro(impl, code) impl = code, + FOREACH_KMP_MUTEX_IMPL(kmp_mutex_impl_macro) +#undef kmp_mutex_impl_macro +} kmp_mutex_impl_t; + +/***************************************************************************** + * definitions generated from spec + *****************************************************************************/ + +typedef enum ompt_callbacks_t { + ompt_callback_thread_begin = 1, + ompt_callback_thread_end = 2, + ompt_callback_parallel_begin = 3, + ompt_callback_parallel_end = 4, + ompt_callback_task_create = 5, + ompt_callback_task_schedule = 6, + ompt_callback_implicit_task = 7, + ompt_callback_target = 8, + ompt_callback_target_data_op = 9, + ompt_callback_target_submit = 10, + ompt_callback_control_tool = 11, + ompt_callback_device_initialize = 12, + ompt_callback_device_finalize = 13, + ompt_callback_device_load = 14, + ompt_callback_device_unload = 15, + ompt_callback_sync_region_wait = 16, + ompt_callback_mutex_released = 17, + ompt_callback_dependences = 18, + ompt_callback_task_dependence = 19, + ompt_callback_work = 20, + ompt_callback_master = 21, + ompt_callback_target_map = 22, + ompt_callback_sync_region = 23, + ompt_callback_lock_init = 24, + ompt_callback_lock_destroy = 25, + ompt_callback_mutex_acquire = 26, + ompt_callback_mutex_acquired = 27, + ompt_callback_nest_lock = 28, + ompt_callback_flush = 29, + ompt_callback_cancel = 30, + ompt_callback_reduction = 31, + ompt_callback_dispatch = 32 +} ompt_callbacks_t; + +typedef enum ompt_record_t { + ompt_record_ompt = 1, + ompt_record_native = 2, + ompt_record_invalid = 3 +} ompt_record_t; + +typedef enum ompt_record_native_t { + ompt_record_native_info = 1, + ompt_record_native_event = 2 +} ompt_record_native_t; + +typedef enum ompt_set_result_t { + ompt_set_error = 0, + ompt_set_never = 1, + ompt_set_impossible = 2, + ompt_set_sometimes = 3, + ompt_set_sometimes_paired = 4, + ompt_set_always = 5 +} ompt_set_result_t; + +typedef uint64_t ompt_id_t; + +typedef uint64_t ompt_device_time_t; + +typedef uint64_t ompt_buffer_cursor_t; + +typedef enum ompt_thread_t { + ompt_thread_initial = 1, + ompt_thread_worker = 2, + ompt_thread_other = 3, + ompt_thread_unknown = 4 +} ompt_thread_t; + +typedef enum ompt_scope_endpoint_t { + ompt_scope_begin = 1, + ompt_scope_end = 2 +} ompt_scope_endpoint_t; + +typedef enum ompt_dispatch_t { + ompt_dispatch_iteration = 1, + ompt_dispatch_section = 2 +} ompt_dispatch_t; + +typedef enum ompt_sync_region_t { + ompt_sync_region_barrier = 1, + ompt_sync_region_barrier_implicit = 2, + ompt_sync_region_barrier_explicit = 3, + ompt_sync_region_barrier_implementation = 4, + ompt_sync_region_taskwait = 5, + ompt_sync_region_taskgroup = 6, + ompt_sync_region_reduction = 7 +} ompt_sync_region_t; + +typedef enum ompt_target_data_op_t { + ompt_target_data_alloc = 1, + ompt_target_data_transfer_to_device = 2, + ompt_target_data_transfer_from_device = 3, + ompt_target_data_delete = 4, + ompt_target_data_associate = 5, + ompt_target_data_disassociate = 6 +} ompt_target_data_op_t; + +typedef enum ompt_work_t { + ompt_work_loop = 1, + ompt_work_sections = 2, + ompt_work_single_executor = 3, + ompt_work_single_other = 4, + ompt_work_workshare = 5, + ompt_work_distribute = 6, + ompt_work_taskloop = 7 +} ompt_work_t; + +typedef enum ompt_mutex_t { + ompt_mutex_lock = 1, + ompt_mutex_test_lock = 2, + ompt_mutex_nest_lock = 3, + ompt_mutex_test_nest_lock = 4, + ompt_mutex_critical = 5, + ompt_mutex_atomic = 6, + ompt_mutex_ordered = 7 +} ompt_mutex_t; + +typedef enum ompt_native_mon_flag_t { + ompt_native_data_motion_explicit = 0x01, + ompt_native_data_motion_implicit = 0x02, + ompt_native_kernel_invocation = 0x04, + ompt_native_kernel_execution = 0x08, + ompt_native_driver = 0x10, + ompt_native_runtime = 0x20, + ompt_native_overhead = 0x40, + ompt_native_idleness = 0x80 +} ompt_native_mon_flag_t; + +typedef enum ompt_task_flag_t { + ompt_task_initial = 0x00000001, + ompt_task_implicit = 0x00000002, + ompt_task_explicit = 0x00000004, + ompt_task_target = 0x00000008, + ompt_task_undeferred = 0x08000000, + ompt_task_untied = 0x10000000, + ompt_task_final = 0x20000000, + ompt_task_mergeable = 0x40000000, + ompt_task_merged = 0x80000000 +} ompt_task_flag_t; + +typedef enum ompt_task_status_t { + ompt_task_complete = 1, + ompt_task_yield = 2, + ompt_task_cancel = 3, + ompt_task_detach = 4, + ompt_task_early_fulfill = 5, + ompt_task_late_fulfill = 6, + ompt_task_switch = 7 +} ompt_task_status_t; + +typedef enum ompt_target_t { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Aug 20 20:57:45 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E6A90E0697; Tue, 20 Aug 2019 20:57:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CjmT5dXmz42fq; Tue, 20 Aug 2019 20:57: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C458907B; Tue, 20 Aug 2019 20:57: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 x7KKvjXB081541; Tue, 20 Aug 2019 20:57:45 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKvjOA081540; Tue, 20 Aug 2019 20:57:45 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202057.x7KKvjOA081540@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:57:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351296 - vendor/compiler-rt/dist-release_90 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/compiler-rt/dist-release_90 X-SVN-Commit-Revision: 351296 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:57:46 -0000 Author: dim Date: Tue Aug 20 20:57:45 2019 New Revision: 351296 URL: https://svnweb.freebsd.org/changeset/base/351296 Log: Branch vendor/compiler-rt/dist to vendor/compiler-rt/dist-release_90, to allow for independent merges of the upstream trunk and release_90 branches. Added: vendor/compiler-rt/dist-release_90/ - copied from r351295, vendor/compiler-rt/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:57:48 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EBFCFE06AD; Tue, 20 Aug 2019 20:57:48 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CjmX5YjPz42lY; Tue, 20 Aug 2019 20:57:48 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 65A21907C; Tue, 20 Aug 2019 20:57:48 +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 x7KKvmB5081587; Tue, 20 Aug 2019 20:57:48 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKvmHP081586; Tue, 20 Aug 2019 20:57:48 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202057.x7KKvmHP081586@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:57:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351297 - vendor/libc++/dist-release_90 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/libc++/dist-release_90 X-SVN-Commit-Revision: 351297 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:57:49 -0000 Author: dim Date: Tue Aug 20 20:57:47 2019 New Revision: 351297 URL: https://svnweb.freebsd.org/changeset/base/351297 Log: Branch vendor/libc++/dist to vendor/libc++/dist-release_90, to allow for independent merges of the upstream trunk and release_90 branches. Added: vendor/libc++/dist-release_90/ - copied from r351296, vendor/libc++/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:57:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 25BE2E0680; Tue, 20 Aug 2019 20:57:40 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CjmN09hGz42ZY; Tue, 20 Aug 2019 20:57:40 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C209F9079; Tue, 20 Aug 2019 20:57:39 +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 x7KKvdjZ081446; Tue, 20 Aug 2019 20:57:39 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKvdIb081445; Tue, 20 Aug 2019 20:57:39 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202057.x7KKvdIb081445@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:57:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351294 - vendor/llvm/dist-release_90 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm/dist-release_90 X-SVN-Commit-Revision: 351294 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:57:40 -0000 Author: dim Date: Tue Aug 20 20:57:39 2019 New Revision: 351294 URL: https://svnweb.freebsd.org/changeset/base/351294 Log: Branch vendor/llvm/dist to vendor/llvm/dist-release_90, to allow for independent merges of the upstream trunk and release_90 branches. Added: vendor/llvm/dist-release_90/ - copied from r351293, vendor/llvm/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:57:43 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3E2ADE0691; Tue, 20 Aug 2019 20:57:43 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CjmQ71cZz42Zf; Tue, 20 Aug 2019 20:57:42 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B8C41907A; Tue, 20 Aug 2019 20:57:42 +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 x7KKvgOF081492; Tue, 20 Aug 2019 20:57:42 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKvg6C081491; Tue, 20 Aug 2019 20:57:42 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202057.x7KKvg6C081491@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:57:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351295 - vendor/clang/dist-release_90 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/clang/dist-release_90 X-SVN-Commit-Revision: 351295 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:57:43 -0000 Author: dim Date: Tue Aug 20 20:57:42 2019 New Revision: 351295 URL: https://svnweb.freebsd.org/changeset/base/351295 Log: Branch vendor/clang/dist to vendor/clang/dist-release_90, to allow for independent merges of the upstream trunk and release_90 branches. Added: vendor/clang/dist-release_90/ - copied from r351294, vendor/clang/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:59:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 43FA6E0835; Tue, 20 Aug 2019 20:59:37 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjpd0wDsz434C; Tue, 20 Aug 2019 20:59:37 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D736F907D; Tue, 20 Aug 2019 20:59:36 +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 x7KKxaUx081723; Tue, 20 Aug 2019 20:59:36 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKxaqB081722; Tue, 20 Aug 2019 20:59:36 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202059.x7KKxaqB081722@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:59:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351298 - vendor/lld/dist-release_90 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/lld/dist-release_90 X-SVN-Commit-Revision: 351298 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:59:37 -0000 Author: dim Date: Tue Aug 20 20:59:36 2019 New Revision: 351298 URL: https://svnweb.freebsd.org/changeset/base/351298 Log: Branch vendor/lld/dist to vendor/lld/dist-release_90, to allow for independent merges of the upstream trunk and release_90 branches. Added: vendor/lld/dist-release_90/ - copied from r351297, vendor/lld/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:59:45 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AA191E0891; Tue, 20 Aug 2019 20:59:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjpn44Xzz43G1; Tue, 20 Aug 2019 20:59: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 553BB9080; Tue, 20 Aug 2019 20:59: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 x7KKxjqw081867; Tue, 20 Aug 2019 20:59:45 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKxjAq081866; Tue, 20 Aug 2019 20:59:45 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202059.x7KKxjAq081866@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:59:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351301 - vendor/llvm-openmp/dist-release_90 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-openmp/dist-release_90 X-SVN-Commit-Revision: 351301 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:59:45 -0000 Author: dim Date: Tue Aug 20 20:59:44 2019 New Revision: 351301 URL: https://svnweb.freebsd.org/changeset/base/351301 Log: Branch vendor/llvm-openmp/dist to vendor/llvm-openmp/dist-release_90, to allow for independent merges of the upstream trunk and release_90 branches. Added: vendor/llvm-openmp/dist-release_90/ - copied from r351300, vendor/llvm-openmp/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:59:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3388BE0846; Tue, 20 Aug 2019 20:59:40 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjph0Zthz4357; Tue, 20 Aug 2019 20:59:40 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D0EE4907E; Tue, 20 Aug 2019 20:59:39 +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 x7KKxd2k081772; Tue, 20 Aug 2019 20:59:39 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKxdwO081771; Tue, 20 Aug 2019 20:59:39 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202059.x7KKxdwO081771@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:59:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351299 - vendor/lldb/dist-release_90 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/lldb/dist-release_90 X-SVN-Commit-Revision: 351299 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:59:40 -0000 Author: dim Date: Tue Aug 20 20:59:39 2019 New Revision: 351299 URL: https://svnweb.freebsd.org/changeset/base/351299 Log: Branch vendor/lldb/dist to vendor/lldb/dist-release_90, to allow for independent merges of the upstream trunk and release_90 branches. Added: vendor/lldb/dist-release_90/ - copied from r351298, vendor/lldb/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 20:59:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E715AE0863; Tue, 20 Aug 2019 20:59:42 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cjpk5hT2z439c; Tue, 20 Aug 2019 20:59:42 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C80F907F; Tue, 20 Aug 2019 20:59:42 +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 x7KKxgD9081818; Tue, 20 Aug 2019 20:59:42 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KKxg8V081817; Tue, 20 Aug 2019 20:59:42 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202059.x7KKxg8V081817@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 20:59:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351300 - vendor/llvm-libunwind/dist-release_90 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-libunwind/dist-release_90 X-SVN-Commit-Revision: 351300 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 20:59:43 -0000 Author: dim Date: Tue Aug 20 20:59:42 2019 New Revision: 351300 URL: https://svnweb.freebsd.org/changeset/base/351300 Log: Branch vendor/llvm-libunwind/dist to vendor/llvm-libunwind/dist-release_90, to allow for independent merges of the upstream trunk and release_90 branches. Added: vendor/llvm-libunwind/dist-release_90/ - copied from r351299, vendor/llvm-libunwind/dist/ From owner-svn-src-all@freebsd.org Tue Aug 20 21:14:45 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 01ACBE0F18; Tue, 20 Aug 2019 21:14:45 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Ck845qX8z44JK; Tue, 20 Aug 2019 21:14:44 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A9B78941A; Tue, 20 Aug 2019 21:14:44 +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 x7KLEimt093244; Tue, 20 Aug 2019 21:14:44 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLEiOw093243; Tue, 20 Aug 2019 21:14:44 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908202114.x7KLEiOw093243@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 20 Aug 2019 21:14:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351302 - head/usr.sbin/makefs X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/usr.sbin/makefs X-SVN-Commit-Revision: 351302 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:14:45 -0000 Author: emaste Date: Tue Aug 20 21:14:44 2019 New Revision: 351302 URL: https://svnweb.freebsd.org/changeset/base/351302 Log: makefs.8: update history - ported to FreeBSD and first appeared in 8.0 - Christos Zoulas added the FAT support that I imported Modified: head/usr.sbin/makefs/makefs.8 Modified: head/usr.sbin/makefs/makefs.8 ============================================================================== --- head/usr.sbin/makefs/makefs.8 Tue Aug 20 20:59:44 2019 (r351301) +++ head/usr.sbin/makefs/makefs.8 Tue Aug 20 21:14:44 2019 (r351302) @@ -499,6 +499,10 @@ The .Nm utility appeared in .Nx 1.6 . +It was ported to +.Fx +and first appeared in +.Fx 8.0 . .Sh AUTHORS .An Luke Mewburn .Aq Mt lukem@NetBSD.org @@ -508,4 +512,6 @@ utility appeared in .An Ryan Gabrys , .An Alan Perez-Rathke , .An Ram Vedam -(cd9660 support) +(cd9660 support), +.An Christos Zoulas +(msdos support). From owner-svn-src-all@freebsd.org Tue Aug 20 21:35:22 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 87EB7E1480; Tue, 20 Aug 2019 21:35:22 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Ckbt3msfz45BD; Tue, 20 Aug 2019 21:35:22 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5E7B497C3; Tue, 20 Aug 2019 21:35:22 +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 x7KLZMt7005650; Tue, 20 Aug 2019 21:35:22 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLZFjO005611; Tue, 20 Aug 2019 21:35:15 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202135.x7KLZFjO005611@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:35:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351303 - in vendor/llvm/dist-release_90: include/llvm/Analysis include/llvm/CodeGen include/llvm/ExecutionEngine/Orc include/llvm/MC include/llvm/Support include/llvm/Transforms/Utils ... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm/dist-release_90: include/llvm/Analysis include/llvm/CodeGen include/llvm/ExecutionEngine/Orc include/llvm/MC include/llvm/Support include/llvm/Transforms/Utils lib/CodeGen lib/CodeGen/A... X-SVN-Commit-Revision: 351303 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:35:22 -0000 Author: dim Date: Tue Aug 20 21:35:15 2019 New Revision: 351303 URL: https://svnweb.freebsd.org/changeset/base/351303 Log: Vendor import of llvm release_90 branch r369369: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369369 Modified: vendor/llvm/dist-release_90/include/llvm/Analysis/AliasAnalysis.h vendor/llvm/dist-release_90/include/llvm/CodeGen/SelectionDAG.h vendor/llvm/dist-release_90/include/llvm/CodeGen/TargetLowering.h vendor/llvm/dist-release_90/include/llvm/ExecutionEngine/Orc/LambdaResolver.h vendor/llvm/dist-release_90/include/llvm/MC/MCContext.h vendor/llvm/dist-release_90/include/llvm/Support/AArch64TargetParser.def vendor/llvm/dist-release_90/include/llvm/Support/AArch64TargetParser.h vendor/llvm/dist-release_90/include/llvm/Support/ARMTargetParser.h vendor/llvm/dist-release_90/include/llvm/Transforms/Utils/BypassSlowDivision.h vendor/llvm/dist-release_90/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp vendor/llvm/dist-release_90/lib/CodeGen/CodeGenPrepare.cpp vendor/llvm/dist-release_90/lib/CodeGen/LiveDebugValues.cpp vendor/llvm/dist-release_90/lib/CodeGen/MachineCSE.cpp vendor/llvm/dist-release_90/lib/CodeGen/MachineModuleInfo.cpp vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/SelectionDAG.cpp vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/TargetLowering.cpp vendor/llvm/dist-release_90/lib/MC/MCContext.cpp vendor/llvm/dist-release_90/lib/MC/MCParser/AsmParser.cpp vendor/llvm/dist-release_90/lib/Object/RelocationResolver.cpp vendor/llvm/dist-release_90/lib/Support/AArch64TargetParser.cpp vendor/llvm/dist-release_90/lib/Support/Unix/Path.inc vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64.td vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64ISelLowering.cpp vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64InstrInfo.td vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64SVEInstrInfo.td vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64TargetTransformInfo.cpp vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64TargetTransformInfo.h vendor/llvm/dist-release_90/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp vendor/llvm/dist-release_90/lib/Target/AArch64/SVEInstrFormats.td vendor/llvm/dist-release_90/lib/Target/ARM/ARMISelLowering.cpp vendor/llvm/dist-release_90/lib/Target/ARM/ARMInstrThumb.td vendor/llvm/dist-release_90/lib/Target/AVR/AVRISelLowering.cpp vendor/llvm/dist-release_90/lib/Target/BPF/BPFAbstractMemberAccess.cpp vendor/llvm/dist-release_90/lib/Target/BPF/BTFDebug.cpp vendor/llvm/dist-release_90/lib/Target/BPF/BTFDebug.h vendor/llvm/dist-release_90/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp vendor/llvm/dist-release_90/lib/Target/RISCV/RISCVFrameLowering.cpp vendor/llvm/dist-release_90/lib/Target/RISCV/RISCVISelLowering.cpp vendor/llvm/dist-release_90/lib/Target/RISCV/RISCVISelLowering.h vendor/llvm/dist-release_90/lib/Target/Sparc/SparcISelLowering.cpp vendor/llvm/dist-release_90/lib/Target/SystemZ/SystemZISelLowering.cpp vendor/llvm/dist-release_90/lib/Target/X86/X86.td vendor/llvm/dist-release_90/lib/Target/X86/X86ISelDAGToDAG.cpp vendor/llvm/dist-release_90/lib/Target/X86/X86ISelLowering.cpp vendor/llvm/dist-release_90/lib/Transforms/InstCombine/InstCombineCompares.cpp vendor/llvm/dist-release_90/lib/Transforms/Scalar/DivRemPairs.cpp vendor/llvm/dist-release_90/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp Modified: vendor/llvm/dist-release_90/include/llvm/Analysis/AliasAnalysis.h ============================================================================== --- vendor/llvm/dist-release_90/include/llvm/Analysis/AliasAnalysis.h Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/include/llvm/Analysis/AliasAnalysis.h Tue Aug 20 21:35:15 2019 (r351303) @@ -949,7 +949,7 @@ template class AAResultBase { /// A pointer to the AAResults object that this AAResult is /// aggregated within. May be null if not aggregated. - AAResults *AAR; + AAResults *AAR = nullptr; /// Helper to dispatch calls back through the derived type. DerivedT &derived() { return static_cast(*this); } Modified: vendor/llvm/dist-release_90/include/llvm/CodeGen/SelectionDAG.h ============================================================================== --- vendor/llvm/dist-release_90/include/llvm/CodeGen/SelectionDAG.h Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/include/llvm/CodeGen/SelectionDAG.h Tue Aug 20 21:35:15 2019 (r351303) @@ -269,8 +269,14 @@ class SelectionDAG { using CallSiteInfo = MachineFunction::CallSiteInfo; using CallSiteInfoImpl = MachineFunction::CallSiteInfoImpl; - DenseMap SDCallSiteInfo; + struct CallSiteDbgInfo { + CallSiteInfo CSInfo; + MDNode *HeapAllocSite = nullptr; + }; + + DenseMap SDCallSiteDbgInfo; + uint16_t NextPersistentId = 0; public: @@ -1664,14 +1670,26 @@ class SelectionDAG { } void addCallSiteInfo(const SDNode *CallNode, CallSiteInfoImpl &&CallInfo) { - SDCallSiteInfo[CallNode] = std::move(CallInfo); + SDCallSiteDbgInfo[CallNode].CSInfo = std::move(CallInfo); } CallSiteInfo getSDCallSiteInfo(const SDNode *CallNode) { - auto I = SDCallSiteInfo.find(CallNode); - if (I != SDCallSiteInfo.end()) - return std::move(I->second); + auto I = SDCallSiteDbgInfo.find(CallNode); + if (I != SDCallSiteDbgInfo.end()) + return std::move(I->second).CSInfo; return CallSiteInfo(); + } + + void addHeapAllocSite(const SDNode *Node, MDNode *MD) { + SDCallSiteDbgInfo[Node].HeapAllocSite = MD; + } + + /// Return the HeapAllocSite type associated with the SDNode, if it exists. + MDNode *getHeapAllocSite(const SDNode *Node) { + auto It = SDCallSiteDbgInfo.find(Node); + if (It == SDCallSiteDbgInfo.end()) + return nullptr; + return It->second.HeapAllocSite; } private: Modified: vendor/llvm/dist-release_90/include/llvm/CodeGen/TargetLowering.h ============================================================================== --- vendor/llvm/dist-release_90/include/llvm/CodeGen/TargetLowering.h Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/include/llvm/CodeGen/TargetLowering.h Tue Aug 20 21:35:15 2019 (r351303) @@ -3665,6 +3665,7 @@ class TargetLowering : public TargetLoweringBase { (pu C_Register, // Constraint represents specific register(s). C_RegisterClass, // Constraint represents any of register(s) in class. C_Memory, // Memory constraint. + C_Immediate, // Requires an immediate. C_Other, // Something else. C_Unknown // Unsupported constraint. }; Modified: vendor/llvm/dist-release_90/include/llvm/ExecutionEngine/Orc/LambdaResolver.h ============================================================================== --- vendor/llvm/dist-release_90/include/llvm/ExecutionEngine/Orc/LambdaResolver.h Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/include/llvm/ExecutionEngine/Orc/LambdaResolver.h Tue Aug 20 21:35:15 2019 (r351303) @@ -16,6 +16,7 @@ #include "llvm/ADT/STLExtras.h" #include "llvm/ExecutionEngine/JITSymbol.h" +#include "llvm/ExecutionEngine/OrcV1Deprecation.h" #include namespace llvm { Modified: vendor/llvm/dist-release_90/include/llvm/MC/MCContext.h ============================================================================== --- vendor/llvm/dist-release_90/include/llvm/MC/MCContext.h Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/include/llvm/MC/MCContext.h Tue Aug 20 21:35:15 2019 (r351303) @@ -112,6 +112,9 @@ namespace llvm { /// number of section symbols with the same name). StringMap UsedNames; + /// Keeps track of labels that are used in inline assembly. + SymbolTable InlineAsmUsedLabelNames; + /// The next ID to dole out to an unnamed assembler temporary symbol with /// a given prefix. StringMap NextID; @@ -376,6 +379,16 @@ namespace llvm { /// still want any modifications to the table itself to use the MCContext /// APIs. const SymbolTable &getSymbols() const { return Symbols; } + + /// isInlineAsmLabel - Return true if the name is a label referenced in + /// inline assembly. + MCSymbol *getInlineAsmLabel(StringRef Name) const { + return InlineAsmUsedLabelNames.lookup(Name); + } + + /// registerInlineAsmLabel - Records that the name is a label referenced in + /// inline assembly. + void registerInlineAsmLabel(MCSymbol *Sym); /// @} Modified: vendor/llvm/dist-release_90/include/llvm/Support/AArch64TargetParser.def ============================================================================== --- vendor/llvm/dist-release_90/include/llvm/Support/AArch64TargetParser.def Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/include/llvm/Support/AArch64TargetParser.def Tue Aug 20 21:35:15 2019 (r351303) @@ -50,35 +50,35 @@ AARCH64_ARCH("armv8.5-a", ARMV8_5A, "8.5-A", "v8.5a", #define AARCH64_ARCH_EXT_NAME(NAME, ID, FEATURE, NEGFEATURE) #endif // FIXME: This would be nicer were it tablegen -AARCH64_ARCH_EXT_NAME("invalid", AArch64::AEK_INVALID, nullptr, nullptr) -AARCH64_ARCH_EXT_NAME("none", AArch64::AEK_NONE, nullptr, nullptr) -AARCH64_ARCH_EXT_NAME("crc", AArch64::AEK_CRC, "+crc", "-crc") -AARCH64_ARCH_EXT_NAME("lse", AArch64::AEK_LSE, "+lse", "-lse") -AARCH64_ARCH_EXT_NAME("rdm", AArch64::AEK_RDM, "+rdm", "-rdm") -AARCH64_ARCH_EXT_NAME("crypto", AArch64::AEK_CRYPTO, "+crypto","-crypto") -AARCH64_ARCH_EXT_NAME("sm4", AArch64::AEK_SM4, "+sm4", "-sm4") -AARCH64_ARCH_EXT_NAME("sha3", AArch64::AEK_SHA3, "+sha3", "-sha3") -AARCH64_ARCH_EXT_NAME("sha2", AArch64::AEK_SHA2, "+sha2", "-sha2") -AARCH64_ARCH_EXT_NAME("aes", AArch64::AEK_AES, "+aes", "-aes") -AARCH64_ARCH_EXT_NAME("dotprod", AArch64::AEK_DOTPROD, "+dotprod","-dotprod") -AARCH64_ARCH_EXT_NAME("fp", AArch64::AEK_FP, "+fp-armv8", "-fp-armv8") -AARCH64_ARCH_EXT_NAME("simd", AArch64::AEK_SIMD, "+neon", "-neon") -AARCH64_ARCH_EXT_NAME("fp16", AArch64::AEK_FP16, "+fullfp16", "-fullfp16") -AARCH64_ARCH_EXT_NAME("fp16fml", AArch64::AEK_FP16FML, "+fp16fml", "-fp16fml") -AARCH64_ARCH_EXT_NAME("profile", AArch64::AEK_PROFILE, "+spe", "-spe") -AARCH64_ARCH_EXT_NAME("ras", AArch64::AEK_RAS, "+ras", "-ras") -AARCH64_ARCH_EXT_NAME("sve", AArch64::AEK_SVE, "+sve", "-sve") -AARCH64_ARCH_EXT_NAME("sve2", AArch64::AEK_SVE2, "+sve2", "-sve2") -AARCH64_ARCH_EXT_NAME("sve2-aes", AArch64::AEK_SVE2AES, "+sve2-aes", "-sve2-aes") -AARCH64_ARCH_EXT_NAME("sve2-sm4", AArch64::AEK_SVE2SM4, "+sve2-sm4", "-sve2-sm4") -AARCH64_ARCH_EXT_NAME("sve2-sha3", AArch64::AEK_SVE2SHA3, "+sve2-sha3", "-sve2-sha3") -AARCH64_ARCH_EXT_NAME("bitperm", AArch64::AEK_BITPERM, "+bitperm", "-bitperm") -AARCH64_ARCH_EXT_NAME("rcpc", AArch64::AEK_RCPC, "+rcpc", "-rcpc") -AARCH64_ARCH_EXT_NAME("rng", AArch64::AEK_RAND, "+rand", "-rand") -AARCH64_ARCH_EXT_NAME("memtag", AArch64::AEK_MTE, "+mte", "-mte") -AARCH64_ARCH_EXT_NAME("ssbs", AArch64::AEK_SSBS, "+ssbs", "-ssbs") -AARCH64_ARCH_EXT_NAME("sb", AArch64::AEK_SB, "+sb", "-sb") -AARCH64_ARCH_EXT_NAME("predres", AArch64::AEK_PREDRES, "+predres", "-predres") +AARCH64_ARCH_EXT_NAME("invalid", AArch64::AEK_INVALID, nullptr, nullptr) +AARCH64_ARCH_EXT_NAME("none", AArch64::AEK_NONE, nullptr, nullptr) +AARCH64_ARCH_EXT_NAME("crc", AArch64::AEK_CRC, "+crc", "-crc") +AARCH64_ARCH_EXT_NAME("lse", AArch64::AEK_LSE, "+lse", "-lse") +AARCH64_ARCH_EXT_NAME("rdm", AArch64::AEK_RDM, "+rdm", "-rdm") +AARCH64_ARCH_EXT_NAME("crypto", AArch64::AEK_CRYPTO, "+crypto","-crypto") +AARCH64_ARCH_EXT_NAME("sm4", AArch64::AEK_SM4, "+sm4", "-sm4") +AARCH64_ARCH_EXT_NAME("sha3", AArch64::AEK_SHA3, "+sha3", "-sha3") +AARCH64_ARCH_EXT_NAME("sha2", AArch64::AEK_SHA2, "+sha2", "-sha2") +AARCH64_ARCH_EXT_NAME("aes", AArch64::AEK_AES, "+aes", "-aes") +AARCH64_ARCH_EXT_NAME("dotprod", AArch64::AEK_DOTPROD, "+dotprod","-dotprod") +AARCH64_ARCH_EXT_NAME("fp", AArch64::AEK_FP, "+fp-armv8", "-fp-armv8") +AARCH64_ARCH_EXT_NAME("simd", AArch64::AEK_SIMD, "+neon", "-neon") +AARCH64_ARCH_EXT_NAME("fp16", AArch64::AEK_FP16, "+fullfp16", "-fullfp16") +AARCH64_ARCH_EXT_NAME("fp16fml", AArch64::AEK_FP16FML, "+fp16fml", "-fp16fml") +AARCH64_ARCH_EXT_NAME("profile", AArch64::AEK_PROFILE, "+spe", "-spe") +AARCH64_ARCH_EXT_NAME("ras", AArch64::AEK_RAS, "+ras", "-ras") +AARCH64_ARCH_EXT_NAME("sve", AArch64::AEK_SVE, "+sve", "-sve") +AARCH64_ARCH_EXT_NAME("sve2", AArch64::AEK_SVE2, "+sve2", "-sve2") +AARCH64_ARCH_EXT_NAME("sve2-aes", AArch64::AEK_SVE2AES, "+sve2-aes", "-sve2-aes") +AARCH64_ARCH_EXT_NAME("sve2-sm4", AArch64::AEK_SVE2SM4, "+sve2-sm4", "-sve2-sm4") +AARCH64_ARCH_EXT_NAME("sve2-sha3", AArch64::AEK_SVE2SHA3, "+sve2-sha3", "-sve2-sha3") +AARCH64_ARCH_EXT_NAME("sve2-bitperm", AArch64::AEK_SVE2BITPERM, "+sve2-bitperm", "-sve2-bitperm") +AARCH64_ARCH_EXT_NAME("rcpc", AArch64::AEK_RCPC, "+rcpc", "-rcpc") +AARCH64_ARCH_EXT_NAME("rng", AArch64::AEK_RAND, "+rand", "-rand") +AARCH64_ARCH_EXT_NAME("memtag", AArch64::AEK_MTE, "+mte", "-mte") +AARCH64_ARCH_EXT_NAME("ssbs", AArch64::AEK_SSBS, "+ssbs", "-ssbs") +AARCH64_ARCH_EXT_NAME("sb", AArch64::AEK_SB, "+sb", "-sb") +AARCH64_ARCH_EXT_NAME("predres", AArch64::AEK_PREDRES, "+predres", "-predres") #undef AARCH64_ARCH_EXT_NAME #ifndef AARCH64_CPU_NAME Modified: vendor/llvm/dist-release_90/include/llvm/Support/AArch64TargetParser.h ============================================================================== --- vendor/llvm/dist-release_90/include/llvm/Support/AArch64TargetParser.h Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/include/llvm/Support/AArch64TargetParser.h Tue Aug 20 21:35:15 2019 (r351303) @@ -53,7 +53,7 @@ enum ArchExtKind : unsigned { AEK_SVE2AES = 1 << 24, AEK_SVE2SM4 = 1 << 25, AEK_SVE2SHA3 = 1 << 26, - AEK_BITPERM = 1 << 27, + AEK_SVE2BITPERM = 1 << 27, }; enum class ArchKind { Modified: vendor/llvm/dist-release_90/include/llvm/Support/ARMTargetParser.h ============================================================================== --- vendor/llvm/dist-release_90/include/llvm/Support/ARMTargetParser.h Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/include/llvm/Support/ARMTargetParser.h Tue Aug 20 21:35:15 2019 (r351303) @@ -39,19 +39,13 @@ enum ArchExtKind : unsigned { AEK_DSP = 1 << 10, AEK_FP16 = 1 << 11, AEK_RAS = 1 << 12, - AEK_SVE = 1 << 13, - AEK_DOTPROD = 1 << 14, - AEK_SHA2 = 1 << 15, - AEK_AES = 1 << 16, - AEK_FP16FML = 1 << 17, - AEK_SB = 1 << 18, - AEK_SVE2 = 1 << 19, - AEK_SVE2AES = 1 << 20, - AEK_SVE2SM4 = 1 << 21, - AEK_SVE2SHA3 = 1 << 22, - AEK_BITPERM = 1 << 23, - AEK_FP_DP = 1 << 24, - AEK_LOB = 1 << 25, + AEK_DOTPROD = 1 << 13, + AEK_SHA2 = 1 << 14, + AEK_AES = 1 << 15, + AEK_FP16FML = 1 << 16, + AEK_SB = 1 << 17, + AEK_FP_DP = 1 << 18, + AEK_LOB = 1 << 19, // Unsupported extensions. AEK_OS = 0x8000000, AEK_IWMMXT = 0x10000000, Modified: vendor/llvm/dist-release_90/include/llvm/Transforms/Utils/BypassSlowDivision.h ============================================================================== --- vendor/llvm/dist-release_90/include/llvm/Transforms/Utils/BypassSlowDivision.h Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/include/llvm/Transforms/Utils/BypassSlowDivision.h Tue Aug 20 21:35:15 2019 (r351303) @@ -19,6 +19,7 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DenseMapInfo.h" +#include "llvm/IR/ValueHandle.h" #include namespace llvm { @@ -28,8 +29,8 @@ class Value; struct DivRemMapKey { bool SignedOp; - Value *Dividend; - Value *Divisor; + AssertingVH Dividend; + AssertingVH Divisor; DivRemMapKey(bool InSignedOp, Value *InDividend, Value *InDivisor) : SignedOp(InSignedOp), Dividend(InDividend), Divisor(InDivisor) {} @@ -50,8 +51,10 @@ template <> struct DenseMapInfo { } static unsigned getHashValue(const DivRemMapKey &Val) { - return (unsigned)(reinterpret_cast(Val.Dividend) ^ - reinterpret_cast(Val.Divisor)) ^ + return (unsigned)(reinterpret_cast( + static_cast(Val.Dividend)) ^ + reinterpret_cast( + static_cast(Val.Divisor))) ^ (unsigned)Val.SignedOp; } }; Modified: vendor/llvm/dist-release_90/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -432,6 +432,7 @@ static void EmitGCCInlineAsmStr(const char *AsmStr, co const BlockAddress *BA = MI->getOperand(OpNo).getBlockAddress(); MCSymbol *Sym = AP->GetBlockAddressSymbol(BA); Sym->print(OS, AP->MAI); + MMI->getContext().registerInlineAsmLabel(Sym); } else if (MI->getOperand(OpNo).isMBB()) { const MCSymbol *Sym = MI->getOperand(OpNo).getMBB()->getSymbol(); Sym->print(OS, AP->MAI); Modified: vendor/llvm/dist-release_90/lib/CodeGen/CodeGenPrepare.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/CodeGen/CodeGenPrepare.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/CodeGen/CodeGenPrepare.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -1682,10 +1682,11 @@ static bool OptimizeExtractBits(BinaryOperator *ShiftI TheUse = InsertedShift; } - // If we removed all uses, nuke the shift. + // If we removed all uses, or there are none, nuke the shift. if (ShiftI->use_empty()) { salvageDebugInfo(*ShiftI); ShiftI->eraseFromParent(); + MadeChange = true; } return MadeChange; Modified: vendor/llvm/dist-release_90/lib/CodeGen/LiveDebugValues.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/CodeGen/LiveDebugValues.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/CodeGen/LiveDebugValues.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -691,9 +691,17 @@ void LiveDebugValues::insertTransferDebugPair( "No register supplied when handling a restore of a debug value"); MachineFunction *MF = MI.getMF(); DIBuilder DIB(*const_cast(MF->getFunction()).getParent()); + + const DIExpression *NewExpr; + if (auto Fragment = DebugInstr->getDebugExpression()->getFragmentInfo()) + NewExpr = *DIExpression::createFragmentExpression(DIB.createExpression(), + Fragment->OffsetInBits, Fragment->SizeInBits); + else + NewExpr = DIB.createExpression(); + NewDebugInstr = BuildMI(*MF, DebugInstr->getDebugLoc(), DebugInstr->getDesc(), false, - NewReg, DebugInstr->getDebugVariable(), DIB.createExpression()); + NewReg, DebugInstr->getDebugVariable(), NewExpr); VarLoc VL(*NewDebugInstr, LS); ProcessVarLoc(VL, NewDebugInstr); LLVM_DEBUG(dbgs() << "Creating DBG_VALUE inst for register restore: "; @@ -848,9 +856,14 @@ void LiveDebugValues::transferSpillOrRestoreInst(Machi << "\n"); } // Check if the register or spill location is the location of a debug value. + // FIXME: Don't create a spill transfer if there is a complex expression, + // because we currently cannot recover the original expression on restore. for (unsigned ID : OpenRanges.getVarLocs()) { + const MachineInstr *DebugInstr = &VarLocIDs[ID].MI; + if (TKind == TransferKind::TransferSpill && - VarLocIDs[ID].isDescribedByReg() == Reg) { + VarLocIDs[ID].isDescribedByReg() == Reg && + !DebugInstr->getDebugExpression()->isComplex()) { LLVM_DEBUG(dbgs() << "Spilling Register " << printReg(Reg, TRI) << '(' << VarLocIDs[ID].Var.getVar()->getName() << ")\n"); } else if (TKind == TransferKind::TransferRestore && Modified: vendor/llvm/dist-release_90/lib/CodeGen/MachineCSE.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/CodeGen/MachineCSE.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/CodeGen/MachineCSE.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -21,6 +21,7 @@ #include "llvm/Analysis/AliasAnalysis.h" #include "llvm/Analysis/CFG.h" #include "llvm/CodeGen/MachineBasicBlock.h" +#include "llvm/CodeGen/MachineBlockFrequencyInfo.h" #include "llvm/CodeGen/MachineDominators.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/MachineFunctionPass.h" @@ -66,6 +67,7 @@ namespace { AliasAnalysis *AA; MachineDominatorTree *DT; MachineRegisterInfo *MRI; + MachineBlockFrequencyInfo *MBFI; public: static char ID; // Pass identification @@ -83,6 +85,8 @@ namespace { AU.addPreservedID(MachineLoopInfoID); AU.addRequired(); AU.addPreserved(); + AU.addRequired(); + AU.addPreserved(); } void releaseMemory() override { @@ -133,6 +137,11 @@ namespace { bool isPRECandidate(MachineInstr *MI); bool ProcessBlockPRE(MachineDominatorTree *MDT, MachineBasicBlock *MBB); bool PerformSimplePRE(MachineDominatorTree *DT); + /// Heuristics to see if it's beneficial to move common computations of MBB + /// and MBB1 to CandidateBB. + bool isBeneficalToHoistInto(MachineBasicBlock *CandidateBB, + MachineBasicBlock *MBB, + MachineBasicBlock *MBB1); }; } // end anonymous namespace @@ -802,6 +811,9 @@ bool MachineCSE::ProcessBlockPRE(MachineDominatorTree if (!CMBB->isLegalToHoistInto()) continue; + if (!isBeneficalToHoistInto(CMBB, MBB, MBB1)) + continue; + // Two instrs are partial redundant if their basic blocks are reachable // from one to another but one doesn't dominate another. if (CMBB != MBB1) { @@ -854,6 +866,18 @@ bool MachineCSE::PerformSimplePRE(MachineDominatorTree return Changed; } +bool MachineCSE::isBeneficalToHoistInto(MachineBasicBlock *CandidateBB, + MachineBasicBlock *MBB, + MachineBasicBlock *MBB1) { + if (CandidateBB->getParent()->getFunction().hasMinSize()) + return true; + assert(DT->dominates(CandidateBB, MBB) && "CandidateBB should dominate MBB"); + assert(DT->dominates(CandidateBB, MBB1) && + "CandidateBB should dominate MBB1"); + return MBFI->getBlockFreq(CandidateBB) <= + MBFI->getBlockFreq(MBB) + MBFI->getBlockFreq(MBB1); +} + bool MachineCSE::runOnMachineFunction(MachineFunction &MF) { if (skipFunction(MF.getFunction())) return false; @@ -863,6 +887,7 @@ bool MachineCSE::runOnMachineFunction(MachineFunction MRI = &MF.getRegInfo(); AA = &getAnalysis().getAAResults(); DT = &getAnalysis(); + MBFI = &getAnalysis(); LookAheadLimit = TII->getMachineCSELookAheadLimit(); bool ChangedPRE, ChangedCSE; ChangedPRE = PerformSimplePRE(DT); Modified: vendor/llvm/dist-release_90/lib/CodeGen/MachineModuleInfo.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/CodeGen/MachineModuleInfo.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/CodeGen/MachineModuleInfo.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -121,7 +121,7 @@ ArrayRef MMIAddrLabelMap::getAddrLabelSymb BBCallbacks.back().setMap(this); Entry.Index = BBCallbacks.size() - 1; Entry.Fn = BB->getParent(); - Entry.Symbols.push_back(Context.createTempSymbol()); + Entry.Symbols.push_back(Context.createTempSymbol(!BB->hasAddressTaken())); return Entry.Symbols; } Modified: vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -909,6 +909,12 @@ EmitSchedule(MachineBasicBlock::iterator &InsertPos) { // Remember the source order of the inserted instruction. if (HasDbg) ProcessSourceNode(N, DAG, Emitter, VRBaseMap, Orders, Seen, NewInsn); + + if (MDNode *MD = DAG->getHeapAllocSite(N)) { + if (NewInsn && NewInsn->isCall()) + MF.addCodeViewHeapAllocSite(NewInsn, MD); + } + GluedNodes.pop_back(); } auto NewInsn = @@ -917,6 +923,10 @@ EmitSchedule(MachineBasicBlock::iterator &InsertPos) { if (HasDbg) ProcessSourceNode(SU->getNode(), DAG, Emitter, VRBaseMap, Orders, Seen, NewInsn); + if (MDNode *MD = DAG->getHeapAllocSite(SU->getNode())) { + if (NewInsn && NewInsn->isCall()) + MF.addCodeViewHeapAllocSite(NewInsn, MD); + } } // Insert all the dbg_values which have not already been inserted in source Modified: vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/SelectionDAG.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -1084,6 +1084,7 @@ void SelectionDAG::clear() { ExternalSymbols.clear(); TargetExternalSymbols.clear(); MCSymbols.clear(); + SDCallSiteDbgInfo.clear(); std::fill(CondCodeNodes.begin(), CondCodeNodes.end(), static_cast(nullptr)); std::fill(ValueTypeNodes.begin(), ValueTypeNodes.end(), Modified: vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -8021,6 +8021,14 @@ void SelectionDAGBuilder::visitInlineAsm(ImmutableCall // Compute the constraint code and ConstraintType to use. TLI.ComputeConstraintToUse(T, SDValue()); + if (T.ConstraintType == TargetLowering::C_Immediate && + OpInfo.CallOperand && !isa(OpInfo.CallOperand)) + // We've delayed emitting a diagnostic like the "n" constraint because + // inlining could cause an integer showing up. + return emitInlineAsmError( + CS, "constraint '" + Twine(T.ConstraintCode) + "' expects an " + "integer constant expression"); + ExtraInfo.update(T); } @@ -8105,7 +8113,8 @@ void SelectionDAGBuilder::visitInlineAsm(ImmutableCall switch (OpInfo.Type) { case InlineAsm::isOutput: if (OpInfo.ConstraintType == TargetLowering::C_Memory || - (OpInfo.ConstraintType == TargetLowering::C_Other && + ((OpInfo.ConstraintType == TargetLowering::C_Immediate || + OpInfo.ConstraintType == TargetLowering::C_Other) && OpInfo.isIndirect)) { unsigned ConstraintID = TLI.getInlineAsmMemConstraint(OpInfo.ConstraintCode); @@ -8119,13 +8128,14 @@ void SelectionDAGBuilder::visitInlineAsm(ImmutableCall MVT::i32)); AsmNodeOperands.push_back(OpInfo.CallOperand); break; - } else if ((OpInfo.ConstraintType == TargetLowering::C_Other && + } else if (((OpInfo.ConstraintType == TargetLowering::C_Immediate || + OpInfo.ConstraintType == TargetLowering::C_Other) && !OpInfo.isIndirect) || OpInfo.ConstraintType == TargetLowering::C_Register || OpInfo.ConstraintType == TargetLowering::C_RegisterClass) { // Otherwise, this outputs to a register (directly for C_Register / - // C_RegisterClass, and a target-defined fashion for C_Other). Find a - // register that we can use. + // C_RegisterClass, and a target-defined fashion for + // C_Immediate/C_Other). Find a register that we can use. if (OpInfo.AssignedRegs.Regs.empty()) { emitInlineAsmError( CS, "couldn't allocate output register for constraint '" + @@ -8205,15 +8215,24 @@ void SelectionDAGBuilder::visitInlineAsm(ImmutableCall } // Treat indirect 'X' constraint as memory. - if (OpInfo.ConstraintType == TargetLowering::C_Other && + if ((OpInfo.ConstraintType == TargetLowering::C_Immediate || + OpInfo.ConstraintType == TargetLowering::C_Other) && OpInfo.isIndirect) OpInfo.ConstraintType = TargetLowering::C_Memory; - if (OpInfo.ConstraintType == TargetLowering::C_Other) { + if (OpInfo.ConstraintType == TargetLowering::C_Immediate || + OpInfo.ConstraintType == TargetLowering::C_Other) { std::vector Ops; TLI.LowerAsmOperandForConstraint(InOperandVal, OpInfo.ConstraintCode, Ops, DAG); if (Ops.empty()) { + if (OpInfo.ConstraintType == TargetLowering::C_Immediate) + if (isa(InOperandVal)) { + emitInlineAsmError(CS, "value out of range for constraint '" + + Twine(OpInfo.ConstraintCode) + "'"); + return; + } + emitInlineAsmError(CS, "invalid operand for inline asm constraint '" + Twine(OpInfo.ConstraintCode) + "'"); return; @@ -8250,7 +8269,8 @@ void SelectionDAGBuilder::visitInlineAsm(ImmutableCall } assert((OpInfo.ConstraintType == TargetLowering::C_RegisterClass || - OpInfo.ConstraintType == TargetLowering::C_Register) && + OpInfo.ConstraintType == TargetLowering::C_Register || + OpInfo.ConstraintType == TargetLowering::C_Immediate) && "Unknown constraint type!"); // TODO: Support this. @@ -8356,6 +8376,7 @@ void SelectionDAGBuilder::visitInlineAsm(ImmutableCall Val = OpInfo.AssignedRegs.getCopyFromRegs( DAG, FuncInfo, getCurSDLoc(), Chain, &Flag, CS.getInstruction()); break; + case TargetLowering::C_Immediate: case TargetLowering::C_Other: Val = TLI.LowerAsmOutputForConstraint(Chain, Flag, getCurSDLoc(), OpInfo, DAG); Modified: vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/TargetLowering.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/TargetLowering.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/CodeGen/SelectionDAG/TargetLowering.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -3567,15 +3567,17 @@ TargetLowering::getConstraintType(StringRef Constraint if (S == 1) { switch (Constraint[0]) { default: break; - case 'r': return C_RegisterClass; + case 'r': + return C_RegisterClass; case 'm': // memory case 'o': // offsetable case 'V': // not offsetable return C_Memory; - case 'i': // Simple Integer or Relocatable Constant case 'n': // Simple Integer case 'E': // Floating Point Constant case 'F': // Floating Point Constant + return C_Immediate; + case 'i': // Simple Integer or Relocatable Constant case 's': // Relocatable Constant case 'p': // Address. case 'X': // Allow ANY value. @@ -3950,6 +3952,7 @@ TargetLowering::ParseConstraints(const DataLayout &DL, /// Return an integer indicating how general CT is. static unsigned getConstraintGenerality(TargetLowering::ConstraintType CT) { switch (CT) { + case TargetLowering::C_Immediate: case TargetLowering::C_Other: case TargetLowering::C_Unknown: return 0; @@ -4069,11 +4072,12 @@ static void ChooseConstraint(TargetLowering::AsmOperan TargetLowering::ConstraintType CType = TLI.getConstraintType(OpInfo.Codes[i]); - // If this is an 'other' constraint, see if the operand is valid for it. - // For example, on X86 we might have an 'rI' constraint. If the operand - // is an integer in the range [0..31] we want to use I (saving a load - // of a register), otherwise we must use 'r'. - if (CType == TargetLowering::C_Other && Op.getNode()) { + // If this is an 'other' or 'immediate' constraint, see if the operand is + // valid for it. For example, on X86 we might have an 'rI' constraint. If + // the operand is an integer in the range [0..31] we want to use I (saving a + // load of a register), otherwise we must use 'r'. + if ((CType == TargetLowering::C_Other || + CType == TargetLowering::C_Immediate) && Op.getNode()) { assert(OpInfo.Codes[i].size() == 1 && "Unhandled multi-letter 'other' constraint"); std::vector ResultOps; Modified: vendor/llvm/dist-release_90/lib/MC/MCContext.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/MC/MCContext.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/MC/MCContext.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -61,6 +61,7 @@ MCContext::MCContext(const MCAsmInfo *mai, const MCReg bool DoAutoReset) : SrcMgr(mgr), InlineSrcMgr(nullptr), MAI(mai), MRI(mri), MOFI(mofi), Symbols(Allocator), UsedNames(Allocator), + InlineAsmUsedLabelNames(Allocator), CurrentDwarfLoc(0, 0, 0, DWARF2_FLAG_IS_STMT, 0, 0), AutoReset(DoAutoReset) { SecureLogFile = AsSecureLogFileName; @@ -90,6 +91,7 @@ void MCContext::reset() { XCOFFAllocator.DestroyAll(); MCSubtargetAllocator.DestroyAll(); + InlineAsmUsedLabelNames.clear(); UsedNames.clear(); Symbols.clear(); Allocator.Reset(); @@ -270,6 +272,10 @@ void MCContext::setSymbolValue(MCStreamer &Streamer, uint64_t Val) { auto Symbol = getOrCreateSymbol(Sym); Streamer.EmitAssignment(Symbol, MCConstantExpr::create(Val, *this)); +} + +void MCContext::registerInlineAsmLabel(MCSymbol *Sym) { + InlineAsmUsedLabelNames[Sym->getName()] = Sym; } //===----------------------------------------------------------------------===// Modified: vendor/llvm/dist-release_90/lib/MC/MCParser/AsmParser.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/MC/MCParser/AsmParser.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/MC/MCParser/AsmParser.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -1142,7 +1142,9 @@ bool AsmParser::parsePrimaryExpr(const MCExpr *&Res, S } } - MCSymbol *Sym = getContext().getOrCreateSymbol(SymbolName); + MCSymbol *Sym = getContext().getInlineAsmLabel(SymbolName); + if (!Sym) + Sym = getContext().getOrCreateSymbol(SymbolName); // If this is an absolute variable reference, substitute it now to preserve // semantics in the face of reassignment. Modified: vendor/llvm/dist-release_90/lib/Object/RelocationResolver.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/Object/RelocationResolver.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/Object/RelocationResolver.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -90,9 +90,9 @@ static bool supportsBPF(uint64_t Type) { static uint64_t resolveBPF(RelocationRef R, uint64_t S, uint64_t A) { switch (R.getType()) { case ELF::R_BPF_64_32: - return S & 0xFFFFFFFF; + return (S + A) & 0xFFFFFFFF; case ELF::R_BPF_64_64: - return S; + return S + A; default: llvm_unreachable("Invalid relocation type"); } Modified: vendor/llvm/dist-release_90/lib/Support/AArch64TargetParser.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/Support/AArch64TargetParser.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/Support/AArch64TargetParser.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -96,8 +96,8 @@ bool AArch64::getExtensionFeatures(unsigned Extensions Features.push_back("+sve2-sm4"); if (Extensions & AEK_SVE2SHA3) Features.push_back("+sve2-sha3"); - if (Extensions & AEK_BITPERM) - Features.push_back("+bitperm"); + if (Extensions & AEK_SVE2BITPERM) + Features.push_back("+sve2-bitperm"); if (Extensions & AEK_RCPC) Features.push_back("+rcpc"); Modified: vendor/llvm/dist-release_90/lib/Support/Unix/Path.inc ============================================================================== --- vendor/llvm/dist-release_90/lib/Support/Unix/Path.inc Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/Support/Unix/Path.inc Tue Aug 20 21:35:15 2019 (r351303) @@ -1200,7 +1200,7 @@ namespace fs { /// implementation. std::error_code copy_file(const Twine &From, const Twine &To) { uint32_t Flag = COPYFILE_DATA; -#if __has_builtin(__builtin_available) +#if __has_builtin(__builtin_available) && defined(COPYFILE_CLONE) if (__builtin_available(macos 10.12, *)) { bool IsSymlink; if (std::error_code Error = is_symlink_file(From, IsSymlink)) Modified: vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64.td ============================================================================== --- vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64.td Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64.td Tue Aug 20 21:35:15 2019 (r351303) @@ -115,7 +115,7 @@ def FeatureSVE2SM4 : SubtargetFeature<"sve2-sm4", "Has def FeatureSVE2SHA3 : SubtargetFeature<"sve2-sha3", "HasSVE2SHA3", "true", "Enable SHA3 SVE2 instructions", [FeatureSVE2, FeatureSHA3]>; -def FeatureSVE2BitPerm : SubtargetFeature<"bitperm", "HasSVE2BitPerm", "true", +def FeatureSVE2BitPerm : SubtargetFeature<"sve2-bitperm", "HasSVE2BitPerm", "true", "Enable bit permutation SVE2 instructions", [FeatureSVE2]>; def FeatureZCRegMove : SubtargetFeature<"zcm", "HasZeroCycleRegMove", "true", Modified: vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64ISelLowering.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64ISelLowering.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64ISelLowering.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -606,6 +606,10 @@ AArch64TargetLowering::AArch64TargetLowering(const Tar MaxStoresPerMemmoveOptSize = MaxStoresPerMemmove = 4; + MaxLoadsPerMemcmpOptSize = 4; + MaxLoadsPerMemcmp = Subtarget->requiresStrictAlign() + ? MaxLoadsPerMemcmpOptSize : 8; + setStackPointerRegisterToSaveRestore(AArch64::SP); setSchedulingPreference(Sched::Hybrid); @@ -5661,8 +5665,6 @@ AArch64TargetLowering::getConstraintType(StringRef Con switch (Constraint[0]) { default: break; - case 'z': - return C_Other; case 'x': case 'w': return C_RegisterClass; @@ -5670,6 +5672,16 @@ AArch64TargetLowering::getConstraintType(StringRef Con // currently handle addresses it is the same as 'r'. case 'Q': return C_Memory; + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'Y': + case 'Z': + return C_Immediate; + case 'z': case 'S': // A symbolic address return C_Other; } Modified: vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64InstrInfo.td ============================================================================== --- vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64InstrInfo.td Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64InstrInfo.td Tue Aug 20 21:35:15 2019 (r351303) @@ -116,7 +116,7 @@ def HasSVE2SM4 : Predicate<"Subtarget->hasSVE2SM def HasSVE2SHA3 : Predicate<"Subtarget->hasSVE2SHA3()">, AssemblerPredicate<"FeatureSVE2SHA3", "sve2-sha3">; def HasSVE2BitPerm : Predicate<"Subtarget->hasSVE2BitPerm()">, - AssemblerPredicate<"FeatureSVE2BitPerm", "bitperm">; + AssemblerPredicate<"FeatureSVE2BitPerm", "sve2-bitperm">; def HasRCPC : Predicate<"Subtarget->hasRCPC()">, AssemblerPredicate<"FeatureRCPC", "rcpc">; def HasAltNZCV : Predicate<"Subtarget->hasAlternativeNZCV()">, Modified: vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64SVEInstrInfo.td ============================================================================== --- vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64SVEInstrInfo.td Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64SVEInstrInfo.td Tue Aug 20 21:35:15 2019 (r351303) @@ -1164,6 +1164,13 @@ let Predicates = [HasSVE2] in { defm SQRSHLR_ZPmZ : sve2_int_arith_pred<0b011100, "sqrshlr">; defm UQRSHLR_ZPmZ : sve2_int_arith_pred<0b011110, "uqrshlr">; + // SVE2 predicated shifts + defm SQSHL_ZPmI : sve_int_bin_pred_shift_imm_left< 0b0110, "sqshl">; + defm UQSHL_ZPmI : sve_int_bin_pred_shift_imm_left< 0b0111, "uqshl">; + defm SRSHR_ZPmI : sve_int_bin_pred_shift_imm_right<0b1100, "srshr">; + defm URSHR_ZPmI : sve_int_bin_pred_shift_imm_right<0b1101, "urshr">; + defm SQSHLU_ZPmI : sve_int_bin_pred_shift_imm_left< 0b1111, "sqshlu">; + // SVE2 integer add/subtract long defm SADDLB_ZZZ : sve2_wide_int_arith_long<0b00000, "saddlb">; defm SADDLT_ZZZ : sve2_wide_int_arith_long<0b00001, "saddlt">; @@ -1199,14 +1206,14 @@ let Predicates = [HasSVE2] in { defm PMULLT_ZZZ : sve2_pmul_long<0b1, "pmullt">; // SVE2 bitwise shift and insert - defm SRI_ZZI : sve2_int_bin_cons_shift_imm_right<0b0, "sri">; - defm SLI_ZZI : sve2_int_bin_cons_shift_imm_left< 0b1, "sli">; + defm SRI_ZZI : sve2_int_bin_shift_imm_right<0b0, "sri">; + defm SLI_ZZI : sve2_int_bin_shift_imm_left< 0b1, "sli">; // SVE2 bitwise shift right and accumulate - defm SSRA_ZZI : sve2_int_bin_accum_cons_shift_imm_right<0b00, "ssra">; - defm USRA_ZZI : sve2_int_bin_accum_cons_shift_imm_right<0b01, "usra">; - defm SRSRA_ZZI : sve2_int_bin_accum_cons_shift_imm_right<0b10, "srsra">; - defm URSRA_ZZI : sve2_int_bin_accum_cons_shift_imm_right<0b11, "ursra">; + defm SSRA_ZZI : sve2_int_bin_accum_shift_imm_right<0b00, "ssra">; + defm USRA_ZZI : sve2_int_bin_accum_shift_imm_right<0b01, "usra">; + defm SRSRA_ZZI : sve2_int_bin_accum_shift_imm_right<0b10, "srsra">; + defm URSRA_ZZI : sve2_int_bin_accum_shift_imm_right<0b11, "ursra">; // SVE2 complex integer add defm CADD_ZZI : sve2_int_cadd<0b0, "cadd">; @@ -1228,42 +1235,48 @@ let Predicates = [HasSVE2] in { defm SBCLB_ZZZ : sve2_int_addsub_long_carry<0b10, "sbclb">; defm SBCLT_ZZZ : sve2_int_addsub_long_carry<0b11, "sbclt">; - // SVE2 bitwise shift right narrow - defm SQSHRUNB_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b0000, "sqshrunb">; - defm SQSHRUNT_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b0001, "sqshrunt">; - defm SQRSHRUNB_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b0010, "sqrshrunb">; - defm SQRSHRUNT_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b0011, "sqrshrunt">; - defm SHRNB_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b0100, "shrnb">; - defm SHRNT_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b0101, "shrnt">; - defm RSHRNB_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b0110, "rshrnb">; - defm RSHRNT_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b0111, "rshrnt">; - defm SQSHRNB_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b1000, "sqshrnb">; - defm SQSHRNT_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b1001, "sqshrnt">; - defm SQRSHRNB_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b1010, "sqrshrnb">; - defm SQRSHRNT_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b1011, "sqrshrnt">; - defm UQSHRNB_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b1100, "uqshrnb">; - defm UQSHRNT_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b1101, "uqshrnt">; - defm UQRSHRNB_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b1110, "uqrshrnb">; - defm UQRSHRNT_ZZI : sve2_int_bin_cons_shift_imm_right_narrow<0b1111, "uqrshrnt">; + // SVE2 bitwise shift right narrow (bottom) + defm SQSHRUNB_ZZI : sve2_int_bin_shift_imm_right_narrow_bottom<0b000, "sqshrunb">; + defm SQRSHRUNB_ZZI : sve2_int_bin_shift_imm_right_narrow_bottom<0b001, "sqrshrunb">; + defm SHRNB_ZZI : sve2_int_bin_shift_imm_right_narrow_bottom<0b010, "shrnb">; + defm RSHRNB_ZZI : sve2_int_bin_shift_imm_right_narrow_bottom<0b011, "rshrnb">; + defm SQSHRNB_ZZI : sve2_int_bin_shift_imm_right_narrow_bottom<0b100, "sqshrnb">; + defm SQRSHRNB_ZZI : sve2_int_bin_shift_imm_right_narrow_bottom<0b101, "sqrshrnb">; + defm UQSHRNB_ZZI : sve2_int_bin_shift_imm_right_narrow_bottom<0b110, "uqshrnb">; + defm UQRSHRNB_ZZI : sve2_int_bin_shift_imm_right_narrow_bottom<0b111, "uqrshrnb">; - // SVE2 integer add/subtract narrow high part - defm ADDHNB_ZZZ : sve2_int_addsub_narrow_high<0b000, "addhnb">; - defm ADDHNT_ZZZ : sve2_int_addsub_narrow_high<0b001, "addhnt">; - defm RADDHNB_ZZZ : sve2_int_addsub_narrow_high<0b010, "raddhnb">; - defm RADDHNT_ZZZ : sve2_int_addsub_narrow_high<0b011, "raddhnt">; - defm SUBHNB_ZZZ : sve2_int_addsub_narrow_high<0b100, "subhnb">; - defm SUBHNT_ZZZ : sve2_int_addsub_narrow_high<0b101, "subhnt">; - defm RSUBHNB_ZZZ : sve2_int_addsub_narrow_high<0b110, "rsubhnb">; - defm RSUBHNT_ZZZ : sve2_int_addsub_narrow_high<0b111, "rsubhnt">; + // SVE2 bitwise shift right narrow (top) + defm SQSHRUNT_ZZI : sve2_int_bin_shift_imm_right_narrow_top<0b000, "sqshrunt">; + defm SQRSHRUNT_ZZI : sve2_int_bin_shift_imm_right_narrow_top<0b001, "sqrshrunt">; + defm SHRNT_ZZI : sve2_int_bin_shift_imm_right_narrow_top<0b010, "shrnt">; + defm RSHRNT_ZZI : sve2_int_bin_shift_imm_right_narrow_top<0b011, "rshrnt">; + defm SQSHRNT_ZZI : sve2_int_bin_shift_imm_right_narrow_top<0b100, "sqshrnt">; + defm SQRSHRNT_ZZI : sve2_int_bin_shift_imm_right_narrow_top<0b101, "sqrshrnt">; + defm UQSHRNT_ZZI : sve2_int_bin_shift_imm_right_narrow_top<0b110, "uqshrnt">; + defm UQRSHRNT_ZZI : sve2_int_bin_shift_imm_right_narrow_top<0b111, "uqrshrnt">; - // SVE2 saturating extract narrow - defm SQXTNB_ZZ : sve2_int_sat_extract_narrow<0b000, "sqxtnb">; - defm SQXTNT_ZZ : sve2_int_sat_extract_narrow<0b001, "sqxtnt">; - defm UQXTNB_ZZ : sve2_int_sat_extract_narrow<0b010, "uqxtnb">; - defm UQXTNT_ZZ : sve2_int_sat_extract_narrow<0b011, "uqxtnt">; - defm SQXTUNB_ZZ : sve2_int_sat_extract_narrow<0b100, "sqxtunb">; - defm SQXTUNT_ZZ : sve2_int_sat_extract_narrow<0b101, "sqxtunt">; + // SVE2 integer add/subtract narrow high part (bottom) + defm ADDHNB_ZZZ : sve2_int_addsub_narrow_high_bottom<0b00, "addhnb">; + defm RADDHNB_ZZZ : sve2_int_addsub_narrow_high_bottom<0b01, "raddhnb">; + defm SUBHNB_ZZZ : sve2_int_addsub_narrow_high_bottom<0b10, "subhnb">; + defm RSUBHNB_ZZZ : sve2_int_addsub_narrow_high_bottom<0b11, "rsubhnb">; + // SVE2 integer add/subtract narrow high part (top) + defm ADDHNT_ZZZ : sve2_int_addsub_narrow_high_top<0b00, "addhnt">; + defm RADDHNT_ZZZ : sve2_int_addsub_narrow_high_top<0b01, "raddhnt">; + defm SUBHNT_ZZZ : sve2_int_addsub_narrow_high_top<0b10, "subhnt">; + defm RSUBHNT_ZZZ : sve2_int_addsub_narrow_high_top<0b11, "rsubhnt">; + + // SVE2 saturating extract narrow (bottom) + defm SQXTNB_ZZ : sve2_int_sat_extract_narrow_bottom<0b00, "sqxtnb">; + defm UQXTNB_ZZ : sve2_int_sat_extract_narrow_bottom<0b01, "uqxtnb">; + defm SQXTUNB_ZZ : sve2_int_sat_extract_narrow_bottom<0b10, "sqxtunb">; + + // SVE2 saturating extract narrow (top) + defm SQXTNT_ZZ : sve2_int_sat_extract_narrow_top<0b00, "sqxtnt">; + defm UQXTNT_ZZ : sve2_int_sat_extract_narrow_top<0b01, "uqxtnt">; + defm SQXTUNT_ZZ : sve2_int_sat_extract_narrow_top<0b10, "sqxtunt">; + // SVE2 character match defm MATCH_PPzZZ : sve2_char_match<0b0, "match">; defm NMATCH_PPzZZ : sve2_char_match<0b1, "nmatch">; @@ -1289,10 +1302,14 @@ let Predicates = [HasSVE2] in { // SVE2 histogram generation (vector) defm HISTCNT_ZPzZZ : sve2_hist_gen_vector<"histcnt">; + // SVE2 floating-point base 2 logarithm as integer + defm FLOGB_ZPmZ : sve2_fp_flogb<"flogb">; + // SVE2 floating-point convert precision defm FCVTXNT_ZPmZ : sve2_fp_convert_down_odd_rounding<"fcvtxnt">; defm FCVTNT_ZPmZ : sve2_fp_convert_down_narrow<"fcvtnt">; defm FCVTLT_ZPmZ : sve2_fp_convert_up_long<"fcvtlt">; + def FCVTX_ZPmZ_DtoS : sve_fp_2op_p_zd<0b0001010, "fcvtx", ZPR64, ZPR32, ElementSizeD>; // SVE2 floating-point pairwise operations defm FADDP_ZPmZZ : sve2_fp_pairwise_pred<0b000, "faddp">; @@ -1321,58 +1338,45 @@ let Predicates = [HasSVE2] in { def BSL2N_ZZZZ_D : sve2_int_bitwise_ternary_op_d<0b101, "bsl2n">; def NBSL_ZZZZ_D : sve2_int_bitwise_ternary_op_d<0b111, "nbsl">; - // sve_int_rotate_imm + // SVE2 bitwise xor and rotate right by immediate defm XAR_ZZZI : sve2_int_rotate_right_imm<"xar">; // SVE2 extract vector (immediate offset, constructive) def EXT_ZZI_B : sve2_int_perm_extract_i_cons<"ext">; - // SVE floating-point convert precision - def FCVTX_ZPmZ_DtoS : sve_fp_2op_p_zd<0b0001010, "fcvtx", ZPR64, ZPR32, ElementSizeD>; + // SVE2 non-temporal gather loads + defm LDNT1SB_ZZR_S : sve2_mem_gldnt_vs<0b00000, "ldnt1sb", Z_s, ZPR32>; + defm LDNT1B_ZZR_S : sve2_mem_gldnt_vs<0b00001, "ldnt1b", Z_s, ZPR32>; + defm LDNT1SH_ZZR_S : sve2_mem_gldnt_vs<0b00100, "ldnt1sh", Z_s, ZPR32>; + defm LDNT1H_ZZR_S : sve2_mem_gldnt_vs<0b00101, "ldnt1h", Z_s, ZPR32>; + defm LDNT1W_ZZR_S : sve2_mem_gldnt_vs<0b01001, "ldnt1w", Z_s, ZPR32>; - // SVE floating-point convert to integer - defm FLOGB_ZPmZ : sve2_fp_flogb<"flogb">; + defm LDNT1SB_ZZR_D : sve2_mem_gldnt_vs<0b10000, "ldnt1sb", Z_d, ZPR64>; + defm LDNT1B_ZZR_D : sve2_mem_gldnt_vs<0b10010, "ldnt1b", Z_d, ZPR64>; + defm LDNT1SH_ZZR_D : sve2_mem_gldnt_vs<0b10100, "ldnt1sh", Z_d, ZPR64>; + defm LDNT1H_ZZR_D : sve2_mem_gldnt_vs<0b10110, "ldnt1h", Z_d, ZPR64>; + defm LDNT1SW_ZZR_D : sve2_mem_gldnt_vs<0b11000, "ldnt1sw", Z_d, ZPR64>; + defm LDNT1W_ZZR_D : sve2_mem_gldnt_vs<0b11010, "ldnt1w", Z_d, ZPR64>; + defm LDNT1D_ZZR_D : sve2_mem_gldnt_vs<0b11110, "ldnt1d", Z_d, ZPR64>; - // Non-temporal contiguous loads (vector + register) - defm LDNT1SB_ZZR_S : sve2_mem_cldnt_vs<0b00000, "ldnt1sb", Z_s, ZPR32>; - defm LDNT1B_ZZR_S : sve2_mem_cldnt_vs<0b00001, "ldnt1b", Z_s, ZPR32>; - defm LDNT1SH_ZZR_S : sve2_mem_cldnt_vs<0b00100, "ldnt1sh", Z_s, ZPR32>; - defm LDNT1H_ZZR_S : sve2_mem_cldnt_vs<0b00101, "ldnt1h", Z_s, ZPR32>; - defm LDNT1W_ZZR_S : sve2_mem_cldnt_vs<0b01001, "ldnt1w", Z_s, ZPR32>; - - defm LDNT1SB_ZZR_D : sve2_mem_cldnt_vs<0b10000, "ldnt1sb", Z_d, ZPR64>; - defm LDNT1B_ZZR_D : sve2_mem_cldnt_vs<0b10010, "ldnt1b", Z_d, ZPR64>; - defm LDNT1SH_ZZR_D : sve2_mem_cldnt_vs<0b10100, "ldnt1sh", Z_d, ZPR64>; - defm LDNT1H_ZZR_D : sve2_mem_cldnt_vs<0b10110, "ldnt1h", Z_d, ZPR64>; - defm LDNT1SW_ZZR_D : sve2_mem_cldnt_vs<0b11000, "ldnt1sw", Z_d, ZPR64>; - defm LDNT1W_ZZR_D : sve2_mem_cldnt_vs<0b11010, "ldnt1w", Z_d, ZPR64>; - defm LDNT1D_ZZR_D : sve2_mem_cldnt_vs<0b11110, "ldnt1d", Z_d, ZPR64>; - // SVE2 vector splice (constructive) defm SPLICE_ZPZZ : sve2_int_perm_splice_cons<"splice">; - // Predicated shifts - defm SQSHL_ZPmI : sve_int_bin_pred_shift_imm_left< 0b0110, "sqshl">; - defm UQSHL_ZPmI : sve_int_bin_pred_shift_imm_left< 0b0111, "uqshl">; - defm SRSHR_ZPmI : sve_int_bin_pred_shift_imm_right<0b1100, "srshr">; - defm URSHR_ZPmI : sve_int_bin_pred_shift_imm_right<0b1101, "urshr">; - defm SQSHLU_ZPmI : sve_int_bin_pred_shift_imm_left< 0b1111, "sqshlu">; + // SVE2 non-temporal scatter stores + defm STNT1B_ZZR_S : sve2_mem_sstnt_vs<0b001, "stnt1b", Z_s, ZPR32>; + defm STNT1H_ZZR_S : sve2_mem_sstnt_vs<0b011, "stnt1h", Z_s, ZPR32>; + defm STNT1W_ZZR_S : sve2_mem_sstnt_vs<0b101, "stnt1w", Z_s, ZPR32>; - // Non-temporal contiguous stores (vector + register) - defm STNT1B_ZZR_S : sve2_mem_cstnt_vs<0b001, "stnt1b", Z_s, ZPR32>; - defm STNT1H_ZZR_S : sve2_mem_cstnt_vs<0b011, "stnt1h", Z_s, ZPR32>; - defm STNT1W_ZZR_S : sve2_mem_cstnt_vs<0b101, "stnt1w", Z_s, ZPR32>; + defm STNT1B_ZZR_D : sve2_mem_sstnt_vs<0b000, "stnt1b", Z_d, ZPR64>; + defm STNT1H_ZZR_D : sve2_mem_sstnt_vs<0b010, "stnt1h", Z_d, ZPR64>; + defm STNT1W_ZZR_D : sve2_mem_sstnt_vs<0b100, "stnt1w", Z_d, ZPR64>; + defm STNT1D_ZZR_D : sve2_mem_sstnt_vs<0b110, "stnt1d", Z_d, ZPR64>; - defm STNT1B_ZZR_D : sve2_mem_cstnt_vs<0b000, "stnt1b", Z_d, ZPR64>; - defm STNT1H_ZZR_D : sve2_mem_cstnt_vs<0b010, "stnt1h", Z_d, ZPR64>; - defm STNT1W_ZZR_D : sve2_mem_cstnt_vs<0b100, "stnt1w", Z_d, ZPR64>; - defm STNT1D_ZZR_D : sve2_mem_cstnt_vs<0b110, "stnt1d", Z_d, ZPR64>; - - // SVE table lookup (three sources) + // SVE2 table lookup (three sources) defm TBL_ZZZZ : sve2_int_perm_tbl<"tbl">; defm TBX_ZZZ : sve2_int_perm_tbx<"tbx">; - // SVE integer compare scalar count and limit + // SVE2 integer compare scalar count and limit defm WHILEGE_PWW : sve_int_while4_rr<0b000, "whilege">; defm WHILEGT_PWW : sve_int_while4_rr<0b001, "whilegt">; defm WHILEHS_PWW : sve_int_while4_rr<0b100, "whilehs">; @@ -1383,7 +1387,7 @@ let Predicates = [HasSVE2] in { defm WHILEHS_PXX : sve_int_while8_rr<0b100, "whilehs">; defm WHILEHI_PXX : sve_int_while8_rr<0b101, "whilehi">; - // SVE pointer conflict compare + // SVE2 pointer conflict compare defm WHILEWR_PXX : sve2_int_while_rr<0b0, "whilewr">; defm WHILERW_PXX : sve2_int_while_rr<0b1, "whilerw">; } Modified: vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64TargetTransformInfo.cpp ============================================================================== --- vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64TargetTransformInfo.cpp Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64TargetTransformInfo.cpp Tue Aug 20 21:35:15 2019 (r351303) @@ -618,6 +618,19 @@ int AArch64TTIImpl::getCmpSelInstrCost(unsigned Opcode return BaseT::getCmpSelInstrCost(Opcode, ValTy, CondTy, I); } +AArch64TTIImpl::TTI::MemCmpExpansionOptions +AArch64TTIImpl::enableMemCmpExpansion(bool OptSize, bool IsZeroCmp) const { + TTI::MemCmpExpansionOptions Options; + Options.AllowOverlappingLoads = !ST->requiresStrictAlign(); + Options.MaxNumLoads = TLI->getMaxExpandSizeMemcmp(OptSize); + Options.NumLoadsPerBlock = Options.MaxNumLoads; + // TODO: Though vector loads usually perform well on AArch64, in some targets + // they may wake up the FP unit, which raises the power consumption. Perhaps + // they could be used with no holds barred (-O3). + Options.LoadSizes = {8, 4, 2, 1}; + return Options; +} + int AArch64TTIImpl::getMemoryOpCost(unsigned Opcode, Type *Ty, unsigned Alignment, unsigned AddressSpace, const Instruction *I) { Modified: vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64TargetTransformInfo.h ============================================================================== --- vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64TargetTransformInfo.h Tue Aug 20 21:14:44 2019 (r351302) +++ vendor/llvm/dist-release_90/lib/Target/AArch64/AArch64TargetTransformInfo.h Tue Aug 20 21:35:15 2019 (r351303) @@ -130,6 +130,9 @@ class AArch64TTIImpl : public BasicTTIImplBase opc, string asm } class sve_int_count_v sz8_64, bits<5> opc, string asm, - ZPRRegOp zprty> -: I<(outs zprty:$Zdn), (ins zprty:$_Zdn, PPRAny:$Pg), - asm, "\t$Zdn, $Pg", + ZPRRegOp zprty, PPRRegOp pprty> +: I<(outs zprty:$Zdn), (ins zprty:$_Zdn, pprty:$Pm), + asm, "\t$Zdn, $Pm", "", []>, Sched<[]> { - bits<4> Pg; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Aug 20 21:35:25 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A3C87E1495; Tue, 20 Aug 2019 21:35:25 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Ckbx3K4Wz45BT; Tue, 20 Aug 2019 21:35:25 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3B63797C4; Tue, 20 Aug 2019 21:35:25 +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 x7KLZPOr005701; Tue, 20 Aug 2019 21:35:25 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLZPaw005700; Tue, 20 Aug 2019 21:35:25 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202135.x7KLZPaw005700@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:35:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351304 - vendor/llvm/llvm-release_90-r369369 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm/llvm-release_90-r369369 X-SVN-Commit-Revision: 351304 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:35:25 -0000 Author: dim Date: Tue Aug 20 21:35:24 2019 New Revision: 351304 URL: https://svnweb.freebsd.org/changeset/base/351304 Log: Tag llvm release_90 branch r369369. Added: vendor/llvm/llvm-release_90-r369369/ - copied from r351303, vendor/llvm/dist-release_90/ From owner-svn-src-all@freebsd.org Tue Aug 20 21:35:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B97C4E14ED; Tue, 20 Aug 2019 21:35:34 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Ckc64ZyYz45PS; Tue, 20 Aug 2019 21:35:34 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 678E197C5; Tue, 20 Aug 2019 21:35:34 +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 x7KLZYWp005778; Tue, 20 Aug 2019 21:35:34 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLZTRK005751; Tue, 20 Aug 2019 21:35:29 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202135.x7KLZTRK005751@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:35:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351305 - in vendor/clang/dist-release_90: include/clang/AST include/clang/Basic include/clang/Driver include/clang/Frontend include/clang/Sema lib/AST lib/Basic lib/Basic/Targets lib/C... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/clang/dist-release_90: include/clang/AST include/clang/Basic include/clang/Driver include/clang/Frontend include/clang/Sema lib/AST lib/Basic lib/Basic/Targets lib/CodeGen lib/DirectoryWatch... X-SVN-Commit-Revision: 351305 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:35:34 -0000 Author: dim Date: Tue Aug 20 21:35:28 2019 New Revision: 351305 URL: https://svnweb.freebsd.org/changeset/base/351305 Log: Vendor import of clang release_90 branch r369369: https://llvm.org/svn/llvm-project/cfe/branches/release_90@369369 Modified: vendor/clang/dist-release_90/include/clang/AST/ExprCXX.h vendor/clang/dist-release_90/include/clang/Basic/DiagnosticSemaKinds.td vendor/clang/dist-release_90/include/clang/Basic/TargetInfo.h vendor/clang/dist-release_90/include/clang/Driver/Options.td vendor/clang/dist-release_90/include/clang/Frontend/LangStandards.def vendor/clang/dist-release_90/include/clang/Sema/Sema.h vendor/clang/dist-release_90/lib/AST/ASTContext.cpp vendor/clang/dist-release_90/lib/AST/ExprCXX.cpp vendor/clang/dist-release_90/lib/AST/ItaniumCXXABI.cpp vendor/clang/dist-release_90/lib/AST/MicrosoftCXXABI.cpp vendor/clang/dist-release_90/lib/Basic/Targets/AArch64.cpp vendor/clang/dist-release_90/lib/Basic/Targets/OSTargets.h vendor/clang/dist-release_90/lib/Basic/Targets/RISCV.cpp vendor/clang/dist-release_90/lib/Basic/Targets/RISCV.h vendor/clang/dist-release_90/lib/Basic/Targets/SPIR.h vendor/clang/dist-release_90/lib/Basic/Targets/X86.h vendor/clang/dist-release_90/lib/Basic/Version.cpp vendor/clang/dist-release_90/lib/CodeGen/CGBuiltin.cpp vendor/clang/dist-release_90/lib/CodeGen/CGExprAgg.cpp vendor/clang/dist-release_90/lib/CodeGen/CGStmt.cpp vendor/clang/dist-release_90/lib/CodeGen/ItaniumCXXABI.cpp vendor/clang/dist-release_90/lib/CodeGen/MicrosoftCXXABI.cpp vendor/clang/dist-release_90/lib/CodeGen/TargetInfo.cpp vendor/clang/dist-release_90/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp vendor/clang/dist-release_90/lib/Driver/ToolChains/Clang.cpp vendor/clang/dist-release_90/lib/Frontend/ASTUnit.cpp vendor/clang/dist-release_90/lib/Frontend/CompilerInvocation.cpp vendor/clang/dist-release_90/lib/Frontend/InitPreprocessor.cpp vendor/clang/dist-release_90/lib/Headers/emmintrin.h vendor/clang/dist-release_90/lib/Headers/opencl-c-base.h vendor/clang/dist-release_90/lib/Headers/opencl-c.h vendor/clang/dist-release_90/lib/Lex/PPDirectives.cpp vendor/clang/dist-release_90/lib/Sema/Sema.cpp vendor/clang/dist-release_90/lib/Sema/SemaDecl.cpp vendor/clang/dist-release_90/lib/Sema/SemaDeclCXX.cpp vendor/clang/dist-release_90/lib/Sema/SemaExprCXX.cpp vendor/clang/dist-release_90/lib/Sema/SemaInit.cpp vendor/clang/dist-release_90/lib/Sema/SemaOpenMP.cpp vendor/clang/dist-release_90/lib/Sema/SemaStmtAsm.cpp vendor/clang/dist-release_90/lib/Sema/SemaTemplate.cpp vendor/clang/dist-release_90/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp Modified: vendor/clang/dist-release_90/include/clang/AST/ExprCXX.h ============================================================================== --- vendor/clang/dist-release_90/include/clang/AST/ExprCXX.h Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/include/clang/AST/ExprCXX.h Tue Aug 20 21:35:28 2019 (r351305) @@ -185,15 +185,20 @@ class CXXMemberCallExpr final : public CallExpr { (pub static CXXMemberCallExpr *CreateEmpty(const ASTContext &Ctx, unsigned NumArgs, EmptyShell Empty); - /// Retrieves the implicit object argument for the member call. + /// Retrieve the implicit object argument for the member call. /// /// For example, in "x.f(5)", this returns the sub-expression "x". Expr *getImplicitObjectArgument() const; - /// Retrieves the declaration of the called method. + /// Retrieve the type of the object argument. + /// + /// Note that this always returns a non-pointer type. + QualType getObjectType() const; + + /// Retrieve the declaration of the called method. CXXMethodDecl *getMethodDecl() const; - /// Retrieves the CXXRecordDecl for the underlying type of + /// Retrieve the CXXRecordDecl for the underlying type of /// the implicit object argument. /// /// Note that this is may not be the same declaration as that of the class Modified: vendor/clang/dist-release_90/include/clang/Basic/DiagnosticSemaKinds.td ============================================================================== --- vendor/clang/dist-release_90/include/clang/Basic/DiagnosticSemaKinds.td Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/include/clang/Basic/DiagnosticSemaKinds.td Tue Aug 20 21:35:28 2019 (r351305) @@ -598,6 +598,10 @@ def ext_implicit_lib_function_decl : ExtWarn< def note_include_header_or_declare : Note< "include the header <%0> or explicitly provide a declaration for '%1'">; def note_previous_builtin_declaration : Note<"%0 is a builtin with type %1">; +def warn_implicit_decl_no_jmp_buf + : Warning<"declaration of built-in function '%0' requires the declaration" + " of the 'jmp_buf' type, commonly provided in the header .">, + InGroup>; def warn_implicit_decl_requires_sysheader : Warning< "declaration of built-in function '%1' requires inclusion of the header <%0>">, InGroup; Modified: vendor/clang/dist-release_90/include/clang/Basic/TargetInfo.h ============================================================================== --- vendor/clang/dist-release_90/include/clang/Basic/TargetInfo.h Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/include/clang/Basic/TargetInfo.h Tue Aug 20 21:35:28 2019 (r351305) @@ -1249,15 +1249,9 @@ class TargetInfo : public virtual TransferrableTargetI bool isBigEndian() const { return BigEndian; } bool isLittleEndian() const { return !BigEndian; } - enum CallingConvMethodType { - CCMT_Unknown, - CCMT_Member, - CCMT_NonMember - }; - /// Gets the default calling convention for the given target and /// declaration context. - virtual CallingConv getDefaultCallingConv(CallingConvMethodType MT) const { + virtual CallingConv getDefaultCallingConv() const { // Not all targets will specify an explicit calling convention that we can // express. This will always do the right thing, even though it's not // an explicit calling convention. Modified: vendor/clang/dist-release_90/include/clang/Driver/Options.td ============================================================================== --- vendor/clang/dist-release_90/include/clang/Driver/Options.td Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/include/clang/Driver/Options.td Tue Aug 20 21:35:28 2019 (r351305) @@ -518,7 +518,7 @@ def cl_mad_enable : Flag<["-"], "cl-mad-enable">, Grou def cl_no_signed_zeros : Flag<["-"], "cl-no-signed-zeros">, Group, Flags<[CC1Option]>, HelpText<"OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.">; def cl_std_EQ : Joined<["-"], "cl-std=">, Group, Flags<[CC1Option]>, - HelpText<"OpenCL language standard to compile for.">, Values<"cl,CL,cl1.1,CL1.1,cl1.2,CL1.2,cl2.0,CL2.0,c++">; + HelpText<"OpenCL language standard to compile for.">, Values<"cl,CL,cl1.1,CL1.1,cl1.2,CL1.2,cl2.0,CL2.0,clc++,CLC++">; def cl_denorms_are_zero : Flag<["-"], "cl-denorms-are-zero">, Group, Flags<[CC1Option]>, HelpText<"OpenCL only. Allow denormals to be flushed to zero.">; def cl_fp32_correctly_rounded_divide_sqrt : Flag<["-"], "cl-fp32-correctly-rounded-divide-sqrt">, Group, Flags<[CC1Option]>, Modified: vendor/clang/dist-release_90/include/clang/Frontend/LangStandards.def ============================================================================== --- vendor/clang/dist-release_90/include/clang/Frontend/LangStandards.def Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/include/clang/Frontend/LangStandards.def Tue Aug 20 21:35:28 2019 (r351305) @@ -174,6 +174,7 @@ LANGSTANDARD_ALIAS_DEPR(opencl10, "CL") LANGSTANDARD_ALIAS_DEPR(opencl11, "CL1.1") LANGSTANDARD_ALIAS_DEPR(opencl12, "CL1.2") LANGSTANDARD_ALIAS_DEPR(opencl20, "CL2.0") +LANGSTANDARD_ALIAS_DEPR(openclcpp, "CLC++") // CUDA LANGSTANDARD(cuda, "cuda", CUDA, "NVIDIA CUDA(tm)", Modified: vendor/clang/dist-release_90/include/clang/Sema/Sema.h ============================================================================== --- vendor/clang/dist-release_90/include/clang/Sema/Sema.h Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/include/clang/Sema/Sema.h Tue Aug 20 21:35:28 2019 (r351305) @@ -11165,6 +11165,7 @@ class Sema { (public) // Emitting members of dllexported classes is delayed until the class // (including field initializers) is fully parsed. SmallVector DelayedDllExportClasses; + SmallVector DelayedDllExportMemberFunctions; private: class SavePendingParsedClassStateRAII { Modified: vendor/clang/dist-release_90/lib/AST/ASTContext.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/AST/ASTContext.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/AST/ASTContext.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -10035,7 +10035,7 @@ CallingConv ASTContext::getDefaultCallingConvention(bo break; } } - return Target->getDefaultCallingConv(TargetInfo::CCMT_Unknown); + return Target->getDefaultCallingConv(); } bool ASTContext::isNearlyEmpty(const CXXRecordDecl *RD) const { Modified: vendor/clang/dist-release_90/lib/AST/ExprCXX.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/AST/ExprCXX.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/AST/ExprCXX.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -651,6 +651,13 @@ Expr *CXXMemberCallExpr::getImplicitObjectArgument() c return nullptr; } +QualType CXXMemberCallExpr::getObjectType() const { + QualType Ty = getImplicitObjectArgument()->getType(); + if (Ty->isPointerType()) + Ty = Ty->getPointeeType(); + return Ty; +} + CXXMethodDecl *CXXMemberCallExpr::getMethodDecl() const { if (const auto *MemExpr = dyn_cast(getCallee()->IgnoreParens())) return cast(MemExpr->getMemberDecl()); Modified: vendor/clang/dist-release_90/lib/AST/ItaniumCXXABI.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/AST/ItaniumCXXABI.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/AST/ItaniumCXXABI.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -177,7 +177,7 @@ class ItaniumCXXABI : public CXXABI { (public) if (!isVariadic && T.isWindowsGNUEnvironment() && T.getArch() == llvm::Triple::x86) return CC_X86ThisCall; - return CC_C; + return Context.getTargetInfo().getDefaultCallingConv(); } // We cheat and just check that the class has a vtable pointer, and that it's Modified: vendor/clang/dist-release_90/lib/AST/MicrosoftCXXABI.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/AST/MicrosoftCXXABI.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/AST/MicrosoftCXXABI.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -82,7 +82,7 @@ class MicrosoftCXXABI : public CXXABI { (public) if (!isVariadic && Context.getTargetInfo().getTriple().getArch() == llvm::Triple::x86) return CC_X86ThisCall; - return CC_C; + return Context.getTargetInfo().getDefaultCallingConv(); } bool isNearlyEmpty(const CXXRecordDecl *RD) const override { Modified: vendor/clang/dist-release_90/lib/Basic/Targets/AArch64.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/Basic/Targets/AArch64.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/Basic/Targets/AArch64.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -196,9 +196,6 @@ void AArch64TargetInfo::getTargetDefines(const LangOpt Builder.defineMacro("__ARM_NEON_FP", "0xE"); } - if (FPU & SveMode) - Builder.defineMacro("__ARM_FEATURE_SVE", "1"); - if (HasCRC) Builder.defineMacro("__ARM_FEATURE_CRC32", "1"); @@ -351,10 +348,19 @@ const char *const AArch64TargetInfo::GCCRegNames[] = { "d12", "d13", "d14", "d15", "d16", "d17", "d18", "d19", "d20", "d21", "d22", "d23", "d24", "d25", "d26", "d27", "d28", "d29", "d30", "d31", - // Vector registers + // Neon vector registers "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15", "v16", "v17", "v18", "v19", "v20", "v21", "v22", - "v23", "v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31" + "v23", "v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31", + + // SVE vector registers + "z0", "z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8", "z9", "z10", + "z11", "z12", "z13", "z14", "z15", "z16", "z17", "z18", "z19", "z20", "z21", + "z22", "z23", "z24", "z25", "z26", "z27", "z28", "z29", "z30", "z31", + + // SVE predicate registers + "p0", "p1", "p2", "p3", "p4", "p5", "p6", "p7", "p8", "p9", "p10", + "p11", "p12", "p13", "p14", "p15" }; ArrayRef AArch64TargetInfo::getGCCRegNames() const { Modified: vendor/clang/dist-release_90/lib/Basic/Targets/OSTargets.h ============================================================================== --- vendor/clang/dist-release_90/lib/Basic/Targets/OSTargets.h Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/Basic/Targets/OSTargets.h Tue Aug 20 21:35:28 2019 (r351305) @@ -618,8 +618,11 @@ class LLVM_LIBRARY_VISIBILITY SolarisTargetInfo : publ Builder.defineMacro("_XOPEN_SOURCE", "600"); else Builder.defineMacro("_XOPEN_SOURCE", "500"); - if (Opts.CPlusPlus) + if (Opts.CPlusPlus) { Builder.defineMacro("__C99FEATURES__"); + Builder.defineMacro("_FILE_OFFSET_BITS", "64"); + } + // GCC restricts the next two to C++. Builder.defineMacro("_LARGEFILE_SOURCE"); Builder.defineMacro("_LARGEFILE64_SOURCE"); Builder.defineMacro("__EXTENSIONS__"); Modified: vendor/clang/dist-release_90/lib/Basic/Targets/RISCV.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/Basic/Targets/RISCV.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/Basic/Targets/RISCV.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -56,6 +56,10 @@ bool RISCVTargetInfo::validateAsmConstraint( // A 5-bit unsigned immediate for CSR access instructions. Info.setRequiresImmediate(0, 31); return true; + case 'f': + // A floating-point register. + Info.setAllowsRegister(); + return true; } } @@ -65,9 +69,18 @@ void RISCVTargetInfo::getTargetDefines(const LangOptio Builder.defineMacro("__riscv"); bool Is64Bit = getTriple().getArch() == llvm::Triple::riscv64; Builder.defineMacro("__riscv_xlen", Is64Bit ? "64" : "32"); - // TODO: modify when more code models and ABIs are supported. + // TODO: modify when more code models are supported. Builder.defineMacro("__riscv_cmodel_medlow"); - Builder.defineMacro("__riscv_float_abi_soft"); + + StringRef ABIName = getABI(); + if (ABIName == "ilp32f" || ABIName == "lp64f") + Builder.defineMacro("__riscv_float_abi_single"); + else if (ABIName == "ilp32d" || ABIName == "lp64d") + Builder.defineMacro("__riscv_float_abi_double"); + else if (ABIName == "ilp32e") + Builder.defineMacro("__riscv_abi_rve"); + else + Builder.defineMacro("__riscv_float_abi_soft"); if (HasM) { Builder.defineMacro("__riscv_mul"); Modified: vendor/clang/dist-release_90/lib/Basic/Targets/RISCV.h ============================================================================== --- vendor/clang/dist-release_90/lib/Basic/Targets/RISCV.h Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/Basic/Targets/RISCV.h Tue Aug 20 21:35:28 2019 (r351305) @@ -87,8 +87,7 @@ class LLVM_LIBRARY_VISIBILITY RISCV32TargetInfo : publ } bool setABI(const std::string &Name) override { - // TODO: support ilp32f and ilp32d ABIs. - if (Name == "ilp32") { + if (Name == "ilp32" || Name == "ilp32f" || Name == "ilp32d") { ABI = Name; return true; } @@ -105,8 +104,7 @@ class LLVM_LIBRARY_VISIBILITY RISCV64TargetInfo : publ } bool setABI(const std::string &Name) override { - // TODO: support lp64f and lp64d ABIs. - if (Name == "lp64") { + if (Name == "lp64" || Name == "lp64f" || Name == "lp64d") { ABI = Name; return true; } Modified: vendor/clang/dist-release_90/lib/Basic/Targets/SPIR.h ============================================================================== --- vendor/clang/dist-release_90/lib/Basic/Targets/SPIR.h Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/Basic/Targets/SPIR.h Tue Aug 20 21:35:28 2019 (r351305) @@ -88,7 +88,7 @@ class LLVM_LIBRARY_VISIBILITY SPIRTargetInfo : public : CCCR_Warning; } - CallingConv getDefaultCallingConv(CallingConvMethodType MT) const override { + CallingConv getDefaultCallingConv() const override { return CC_SpirFunction; } Modified: vendor/clang/dist-release_90/lib/Basic/Targets/X86.h ============================================================================== --- vendor/clang/dist-release_90/lib/Basic/Targets/X86.h Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/Basic/Targets/X86.h Tue Aug 20 21:35:28 2019 (r351305) @@ -320,8 +320,8 @@ class LLVM_LIBRARY_VISIBILITY X86TargetInfo : public T } } - CallingConv getDefaultCallingConv(CallingConvMethodType MT) const override { - return MT == CCMT_Member ? CC_X86ThisCall : CC_C; + CallingConv getDefaultCallingConv() const override { + return CC_C; } bool hasSjLjLowering() const override { return true; } @@ -659,7 +659,7 @@ class LLVM_LIBRARY_VISIBILITY X86_64TargetInfo : publi } } - CallingConv getDefaultCallingConv(CallingConvMethodType MT) const override { + CallingConv getDefaultCallingConv() const override { return CC_C; } Modified: vendor/clang/dist-release_90/lib/Basic/Version.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/Basic/Version.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/Basic/Version.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -35,7 +35,7 @@ std::string getClangRepositoryPath() { // If the CLANG_REPOSITORY is empty, try to use the SVN keyword. This helps us // pick up a tag in an SVN export, for example. - StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/trunk/lib/Basic/Version.cpp $"); + StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/branches/release_90/lib/Basic/Version.cpp $"); if (URL.empty()) { URL = SVNRepository.slice(SVNRepository.find(':'), SVNRepository.find("/lib/Basic")); Modified: vendor/clang/dist-release_90/lib/CodeGen/CGBuiltin.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/CodeGen/CGBuiltin.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/CodeGen/CGBuiltin.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -8011,7 +8011,152 @@ Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigne return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)), "vgetq_lane"); } + case AArch64::BI_BitScanForward: + case AArch64::BI_BitScanForward64: + return EmitMSVCBuiltinExpr(MSVCIntrin::_BitScanForward, E); + case AArch64::BI_BitScanReverse: + case AArch64::BI_BitScanReverse64: + return EmitMSVCBuiltinExpr(MSVCIntrin::_BitScanReverse, E); + case AArch64::BI_InterlockedAnd64: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd, E); + case AArch64::BI_InterlockedExchange64: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange, E); + case AArch64::BI_InterlockedExchangeAdd64: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd, E); + case AArch64::BI_InterlockedExchangeSub64: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeSub, E); + case AArch64::BI_InterlockedOr64: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr, E); + case AArch64::BI_InterlockedXor64: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor, E); + case AArch64::BI_InterlockedDecrement64: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement, E); + case AArch64::BI_InterlockedIncrement64: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement, E); + case AArch64::BI_InterlockedExchangeAdd8_acq: + case AArch64::BI_InterlockedExchangeAdd16_acq: + case AArch64::BI_InterlockedExchangeAdd_acq: + case AArch64::BI_InterlockedExchangeAdd64_acq: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd_acq, E); + case AArch64::BI_InterlockedExchangeAdd8_rel: + case AArch64::BI_InterlockedExchangeAdd16_rel: + case AArch64::BI_InterlockedExchangeAdd_rel: + case AArch64::BI_InterlockedExchangeAdd64_rel: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd_rel, E); + case AArch64::BI_InterlockedExchangeAdd8_nf: + case AArch64::BI_InterlockedExchangeAdd16_nf: + case AArch64::BI_InterlockedExchangeAdd_nf: + case AArch64::BI_InterlockedExchangeAdd64_nf: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd_nf, E); + case AArch64::BI_InterlockedExchange8_acq: + case AArch64::BI_InterlockedExchange16_acq: + case AArch64::BI_InterlockedExchange_acq: + case AArch64::BI_InterlockedExchange64_acq: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange_acq, E); + case AArch64::BI_InterlockedExchange8_rel: + case AArch64::BI_InterlockedExchange16_rel: + case AArch64::BI_InterlockedExchange_rel: + case AArch64::BI_InterlockedExchange64_rel: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange_rel, E); + case AArch64::BI_InterlockedExchange8_nf: + case AArch64::BI_InterlockedExchange16_nf: + case AArch64::BI_InterlockedExchange_nf: + case AArch64::BI_InterlockedExchange64_nf: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange_nf, E); + case AArch64::BI_InterlockedCompareExchange8_acq: + case AArch64::BI_InterlockedCompareExchange16_acq: + case AArch64::BI_InterlockedCompareExchange_acq: + case AArch64::BI_InterlockedCompareExchange64_acq: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedCompareExchange_acq, E); + case AArch64::BI_InterlockedCompareExchange8_rel: + case AArch64::BI_InterlockedCompareExchange16_rel: + case AArch64::BI_InterlockedCompareExchange_rel: + case AArch64::BI_InterlockedCompareExchange64_rel: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedCompareExchange_rel, E); + case AArch64::BI_InterlockedCompareExchange8_nf: + case AArch64::BI_InterlockedCompareExchange16_nf: + case AArch64::BI_InterlockedCompareExchange_nf: + case AArch64::BI_InterlockedCompareExchange64_nf: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedCompareExchange_nf, E); + case AArch64::BI_InterlockedOr8_acq: + case AArch64::BI_InterlockedOr16_acq: + case AArch64::BI_InterlockedOr_acq: + case AArch64::BI_InterlockedOr64_acq: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr_acq, E); + case AArch64::BI_InterlockedOr8_rel: + case AArch64::BI_InterlockedOr16_rel: + case AArch64::BI_InterlockedOr_rel: + case AArch64::BI_InterlockedOr64_rel: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr_rel, E); + case AArch64::BI_InterlockedOr8_nf: + case AArch64::BI_InterlockedOr16_nf: + case AArch64::BI_InterlockedOr_nf: + case AArch64::BI_InterlockedOr64_nf: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr_nf, E); + case AArch64::BI_InterlockedXor8_acq: + case AArch64::BI_InterlockedXor16_acq: + case AArch64::BI_InterlockedXor_acq: + case AArch64::BI_InterlockedXor64_acq: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor_acq, E); + case AArch64::BI_InterlockedXor8_rel: + case AArch64::BI_InterlockedXor16_rel: + case AArch64::BI_InterlockedXor_rel: + case AArch64::BI_InterlockedXor64_rel: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor_rel, E); + case AArch64::BI_InterlockedXor8_nf: + case AArch64::BI_InterlockedXor16_nf: + case AArch64::BI_InterlockedXor_nf: + case AArch64::BI_InterlockedXor64_nf: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor_nf, E); + case AArch64::BI_InterlockedAnd8_acq: + case AArch64::BI_InterlockedAnd16_acq: + case AArch64::BI_InterlockedAnd_acq: + case AArch64::BI_InterlockedAnd64_acq: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd_acq, E); + case AArch64::BI_InterlockedAnd8_rel: + case AArch64::BI_InterlockedAnd16_rel: + case AArch64::BI_InterlockedAnd_rel: + case AArch64::BI_InterlockedAnd64_rel: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd_rel, E); + case AArch64::BI_InterlockedAnd8_nf: + case AArch64::BI_InterlockedAnd16_nf: + case AArch64::BI_InterlockedAnd_nf: + case AArch64::BI_InterlockedAnd64_nf: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd_nf, E); + case AArch64::BI_InterlockedIncrement16_acq: + case AArch64::BI_InterlockedIncrement_acq: + case AArch64::BI_InterlockedIncrement64_acq: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement_acq, E); + case AArch64::BI_InterlockedIncrement16_rel: + case AArch64::BI_InterlockedIncrement_rel: + case AArch64::BI_InterlockedIncrement64_rel: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement_rel, E); + case AArch64::BI_InterlockedIncrement16_nf: + case AArch64::BI_InterlockedIncrement_nf: + case AArch64::BI_InterlockedIncrement64_nf: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement_nf, E); + case AArch64::BI_InterlockedDecrement16_acq: + case AArch64::BI_InterlockedDecrement_acq: + case AArch64::BI_InterlockedDecrement64_acq: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement_acq, E); + case AArch64::BI_InterlockedDecrement16_rel: + case AArch64::BI_InterlockedDecrement_rel: + case AArch64::BI_InterlockedDecrement64_rel: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement_rel, E); + case AArch64::BI_InterlockedDecrement16_nf: + case AArch64::BI_InterlockedDecrement_nf: + case AArch64::BI_InterlockedDecrement64_nf: + return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement_nf, E); + + case AArch64::BI_InterlockedAdd: { + Value *Arg0 = EmitScalarExpr(E->getArg(0)); + Value *Arg1 = EmitScalarExpr(E->getArg(1)); + AtomicRMWInst *RMWI = Builder.CreateAtomicRMW( + AtomicRMWInst::Add, Arg0, Arg1, + llvm::AtomicOrdering::SequentiallyConsistent); + return Builder.CreateAdd(RMWI, Arg1); } + } llvm::VectorType *VTy = GetNeonType(this, Type); llvm::Type *Ty = VTy; @@ -9127,151 +9272,6 @@ Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigne case NEON::BI__builtin_neon_vuqaddq_v: { Int = Intrinsic::aarch64_neon_suqadd; return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vuqadd"); - } - case AArch64::BI_BitScanForward: - case AArch64::BI_BitScanForward64: - return EmitMSVCBuiltinExpr(MSVCIntrin::_BitScanForward, E); - case AArch64::BI_BitScanReverse: - case AArch64::BI_BitScanReverse64: - return EmitMSVCBuiltinExpr(MSVCIntrin::_BitScanReverse, E); - case AArch64::BI_InterlockedAnd64: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd, E); - case AArch64::BI_InterlockedExchange64: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange, E); - case AArch64::BI_InterlockedExchangeAdd64: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd, E); - case AArch64::BI_InterlockedExchangeSub64: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeSub, E); - case AArch64::BI_InterlockedOr64: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr, E); - case AArch64::BI_InterlockedXor64: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor, E); - case AArch64::BI_InterlockedDecrement64: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement, E); - case AArch64::BI_InterlockedIncrement64: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement, E); - case AArch64::BI_InterlockedExchangeAdd8_acq: - case AArch64::BI_InterlockedExchangeAdd16_acq: - case AArch64::BI_InterlockedExchangeAdd_acq: - case AArch64::BI_InterlockedExchangeAdd64_acq: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd_acq, E); - case AArch64::BI_InterlockedExchangeAdd8_rel: - case AArch64::BI_InterlockedExchangeAdd16_rel: - case AArch64::BI_InterlockedExchangeAdd_rel: - case AArch64::BI_InterlockedExchangeAdd64_rel: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd_rel, E); - case AArch64::BI_InterlockedExchangeAdd8_nf: - case AArch64::BI_InterlockedExchangeAdd16_nf: - case AArch64::BI_InterlockedExchangeAdd_nf: - case AArch64::BI_InterlockedExchangeAdd64_nf: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd_nf, E); - case AArch64::BI_InterlockedExchange8_acq: - case AArch64::BI_InterlockedExchange16_acq: - case AArch64::BI_InterlockedExchange_acq: - case AArch64::BI_InterlockedExchange64_acq: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange_acq, E); - case AArch64::BI_InterlockedExchange8_rel: - case AArch64::BI_InterlockedExchange16_rel: - case AArch64::BI_InterlockedExchange_rel: - case AArch64::BI_InterlockedExchange64_rel: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange_rel, E); - case AArch64::BI_InterlockedExchange8_nf: - case AArch64::BI_InterlockedExchange16_nf: - case AArch64::BI_InterlockedExchange_nf: - case AArch64::BI_InterlockedExchange64_nf: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange_nf, E); - case AArch64::BI_InterlockedCompareExchange8_acq: - case AArch64::BI_InterlockedCompareExchange16_acq: - case AArch64::BI_InterlockedCompareExchange_acq: - case AArch64::BI_InterlockedCompareExchange64_acq: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedCompareExchange_acq, E); - case AArch64::BI_InterlockedCompareExchange8_rel: - case AArch64::BI_InterlockedCompareExchange16_rel: - case AArch64::BI_InterlockedCompareExchange_rel: - case AArch64::BI_InterlockedCompareExchange64_rel: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedCompareExchange_rel, E); - case AArch64::BI_InterlockedCompareExchange8_nf: - case AArch64::BI_InterlockedCompareExchange16_nf: - case AArch64::BI_InterlockedCompareExchange_nf: - case AArch64::BI_InterlockedCompareExchange64_nf: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedCompareExchange_nf, E); - case AArch64::BI_InterlockedOr8_acq: - case AArch64::BI_InterlockedOr16_acq: - case AArch64::BI_InterlockedOr_acq: - case AArch64::BI_InterlockedOr64_acq: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr_acq, E); - case AArch64::BI_InterlockedOr8_rel: - case AArch64::BI_InterlockedOr16_rel: - case AArch64::BI_InterlockedOr_rel: - case AArch64::BI_InterlockedOr64_rel: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr_rel, E); - case AArch64::BI_InterlockedOr8_nf: - case AArch64::BI_InterlockedOr16_nf: - case AArch64::BI_InterlockedOr_nf: - case AArch64::BI_InterlockedOr64_nf: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr_nf, E); - case AArch64::BI_InterlockedXor8_acq: - case AArch64::BI_InterlockedXor16_acq: - case AArch64::BI_InterlockedXor_acq: - case AArch64::BI_InterlockedXor64_acq: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor_acq, E); - case AArch64::BI_InterlockedXor8_rel: - case AArch64::BI_InterlockedXor16_rel: - case AArch64::BI_InterlockedXor_rel: - case AArch64::BI_InterlockedXor64_rel: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor_rel, E); - case AArch64::BI_InterlockedXor8_nf: - case AArch64::BI_InterlockedXor16_nf: - case AArch64::BI_InterlockedXor_nf: - case AArch64::BI_InterlockedXor64_nf: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor_nf, E); - case AArch64::BI_InterlockedAnd8_acq: - case AArch64::BI_InterlockedAnd16_acq: - case AArch64::BI_InterlockedAnd_acq: - case AArch64::BI_InterlockedAnd64_acq: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd_acq, E); - case AArch64::BI_InterlockedAnd8_rel: - case AArch64::BI_InterlockedAnd16_rel: - case AArch64::BI_InterlockedAnd_rel: - case AArch64::BI_InterlockedAnd64_rel: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd_rel, E); - case AArch64::BI_InterlockedAnd8_nf: - case AArch64::BI_InterlockedAnd16_nf: - case AArch64::BI_InterlockedAnd_nf: - case AArch64::BI_InterlockedAnd64_nf: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd_nf, E); - case AArch64::BI_InterlockedIncrement16_acq: - case AArch64::BI_InterlockedIncrement_acq: - case AArch64::BI_InterlockedIncrement64_acq: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement_acq, E); - case AArch64::BI_InterlockedIncrement16_rel: - case AArch64::BI_InterlockedIncrement_rel: - case AArch64::BI_InterlockedIncrement64_rel: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement_rel, E); - case AArch64::BI_InterlockedIncrement16_nf: - case AArch64::BI_InterlockedIncrement_nf: - case AArch64::BI_InterlockedIncrement64_nf: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement_nf, E); - case AArch64::BI_InterlockedDecrement16_acq: - case AArch64::BI_InterlockedDecrement_acq: - case AArch64::BI_InterlockedDecrement64_acq: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement_acq, E); - case AArch64::BI_InterlockedDecrement16_rel: - case AArch64::BI_InterlockedDecrement_rel: - case AArch64::BI_InterlockedDecrement64_rel: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement_rel, E); - case AArch64::BI_InterlockedDecrement16_nf: - case AArch64::BI_InterlockedDecrement_nf: - case AArch64::BI_InterlockedDecrement64_nf: - return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement_nf, E); - - case AArch64::BI_InterlockedAdd: { - Value *Arg0 = EmitScalarExpr(E->getArg(0)); - Value *Arg1 = EmitScalarExpr(E->getArg(1)); - AtomicRMWInst *RMWI = Builder.CreateAtomicRMW( - AtomicRMWInst::Add, Arg0, Arg1, - llvm::AtomicOrdering::SequentiallyConsistent); - return Builder.CreateAdd(RMWI, Arg1); } } } Modified: vendor/clang/dist-release_90/lib/CodeGen/CGExprAgg.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/CodeGen/CGExprAgg.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/CodeGen/CGExprAgg.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -1495,6 +1495,13 @@ void AggExprEmitter::VisitInitListExpr(InitListExpr *E // initializers throws an exception. SmallVector cleanups; llvm::Instruction *cleanupDominator = nullptr; + auto addCleanup = [&](const EHScopeStack::stable_iterator &cleanup) { + cleanups.push_back(cleanup); + if (!cleanupDominator) // create placeholder once needed + cleanupDominator = CGF.Builder.CreateAlignedLoad( + CGF.Int8Ty, llvm::Constant::getNullValue(CGF.Int8PtrTy), + CharUnits::One()); + }; unsigned curInitIndex = 0; @@ -1519,7 +1526,7 @@ void AggExprEmitter::VisitInitListExpr(InitListExpr *E if (QualType::DestructionKind dtorKind = Base.getType().isDestructedType()) { CGF.pushDestroy(dtorKind, V, Base.getType()); - cleanups.push_back(CGF.EHStack.stable_begin()); + addCleanup(CGF.EHStack.stable_begin()); } } } @@ -1596,15 +1603,9 @@ void AggExprEmitter::VisitInitListExpr(InitListExpr *E = field->getType().isDestructedType()) { assert(LV.isSimple()); if (CGF.needsEHCleanup(dtorKind)) { - if (!cleanupDominator) - cleanupDominator = CGF.Builder.CreateAlignedLoad( - CGF.Int8Ty, - llvm::Constant::getNullValue(CGF.Int8PtrTy), - CharUnits::One()); // placeholder - CGF.pushDestroy(EHCleanup, LV.getAddress(), field->getType(), CGF.getDestroyer(dtorKind), false); - cleanups.push_back(CGF.EHStack.stable_begin()); + addCleanup(CGF.EHStack.stable_begin()); pushedCleanup = true; } } @@ -1620,6 +1621,8 @@ void AggExprEmitter::VisitInitListExpr(InitListExpr *E // Deactivate all the partial cleanups in reverse order, which // generally means popping them. + assert((cleanupDominator || cleanups.empty()) && + "Missing cleanupDominator before deactivating cleanup blocks"); for (unsigned i = cleanups.size(); i != 0; --i) CGF.DeactivateCleanupBlock(cleanups[i-1], cleanupDominator); Modified: vendor/clang/dist-release_90/lib/CodeGen/CGStmt.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/CodeGen/CGStmt.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/CodeGen/CGStmt.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -1846,11 +1846,9 @@ llvm::Value* CodeGenFunction::EmitAsmInput( InputExpr->EvaluateAsRValue(EVResult, getContext(), true); llvm::APSInt IntResult; - if (!EVResult.Val.toIntegralConstant(IntResult, InputExpr->getType(), - getContext())) - llvm_unreachable("Invalid immediate constant!"); - - return llvm::ConstantInt::get(getLLVMContext(), IntResult); + if (EVResult.Val.toIntegralConstant(IntResult, InputExpr->getType(), + getContext())) + return llvm::ConstantInt::get(getLLVMContext(), IntResult); } Expr::EvalResult Result; Modified: vendor/clang/dist-release_90/lib/CodeGen/ItaniumCXXABI.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/CodeGen/ItaniumCXXABI.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/CodeGen/ItaniumCXXABI.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -1755,10 +1755,11 @@ llvm::Value *ItaniumCXXABI::EmitVirtualDestructorCall( CGCallee Callee = CGCallee::forVirtual(CE, GD, This, Ty); QualType ThisTy; - if (CE) - ThisTy = CE->getImplicitObjectArgument()->getType()->getPointeeType(); - else + if (CE) { + ThisTy = CE->getObjectType(); + } else { ThisTy = D->getDestroyedType(); + } CGF.EmitCXXDestructorCall(GD, Callee, This.getPointer(), ThisTy, nullptr, QualType(), nullptr); Modified: vendor/clang/dist-release_90/lib/CodeGen/MicrosoftCXXABI.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/CodeGen/MicrosoftCXXABI.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/CodeGen/MicrosoftCXXABI.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -1921,10 +1921,11 @@ llvm::Value *MicrosoftCXXABI::EmitVirtualDestructorCal DtorType == Dtor_Deleting); QualType ThisTy; - if (CE) - ThisTy = CE->getImplicitObjectArgument()->getType()->getPointeeType(); - else + if (CE) { + ThisTy = CE->getObjectType(); + } else { ThisTy = D->getDestroyedType(); + } This = adjustThisArgumentForVirtualFunctionCall(CGF, GD, This, true); RValue RV = CGF.EmitCXXDestructorCall(GD, Callee, This.getPointer(), ThisTy, Modified: vendor/clang/dist-release_90/lib/CodeGen/TargetInfo.cpp ============================================================================== --- vendor/clang/dist-release_90/lib/CodeGen/TargetInfo.cpp Tue Aug 20 21:35:24 2019 (r351304) +++ vendor/clang/dist-release_90/lib/CodeGen/TargetInfo.cpp Tue Aug 20 21:35:28 2019 (r351305) @@ -9188,25 +9188,45 @@ static bool getTypeString(SmallStringEnc &Enc, const D namespace { class RISCVABIInfo : public DefaultABIInfo { private: - unsigned XLen; // Size of the integer ('x') registers in bits. + // Size of the integer ('x') registers in bits. + unsigned XLen; + // Size of the floating point ('f') registers in bits. Note that the target + // ISA might have a wider FLen than the selected ABI (e.g. an RV32IF target + // with soft float ABI has FLen==0). + unsigned FLen; static const int NumArgGPRs = 8; + static const int NumArgFPRs = 8; + bool detectFPCCEligibleStructHelper(QualType Ty, CharUnits CurOff, + llvm::Type *&Field1Ty, + CharUnits &Field1Off, + llvm::Type *&Field2Ty, + CharUnits &Field2Off) const; public: - RISCVABIInfo(CodeGen::CodeGenTypes &CGT, unsigned XLen) - : DefaultABIInfo(CGT), XLen(XLen) {} + RISCVABIInfo(CodeGen::CodeGenTypes &CGT, unsigned XLen, unsigned FLen) + : DefaultABIInfo(CGT), XLen(XLen), FLen(FLen) {} // DefaultABIInfo's classifyReturnType and classifyArgumentType are // non-virtual, but computeInfo is virtual, so we overload it. void computeInfo(CGFunctionInfo &FI) const override; - ABIArgInfo classifyArgumentType(QualType Ty, bool IsFixed, - int &ArgGPRsLeft) const; + ABIArgInfo classifyArgumentType(QualType Ty, bool IsFixed, int &ArgGPRsLeft, + int &ArgFPRsLeft) const; ABIArgInfo classifyReturnType(QualType RetTy) const; Address EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty) const override; ABIArgInfo extendType(QualType Ty) const; + + bool detectFPCCEligibleStruct(QualType Ty, llvm::Type *&Field1Ty, + CharUnits &Field1Off, llvm::Type *&Field2Ty, + CharUnits &Field2Off, int &NeededArgGPRs, + int &NeededArgFPRs) const; + ABIArgInfo coerceAndExpandFPCCEligibleStruct(llvm::Type *Field1Ty, + CharUnits Field1Off, + llvm::Type *Field2Ty, + CharUnits Field2Off) const; }; } // end anonymous namespace @@ -9228,18 +9248,215 @@ void RISCVABIInfo::computeInfo(CGFunctionInfo &FI) con // different for variadic arguments, we must also track whether we are // examining a vararg or not. int ArgGPRsLeft = IsRetIndirect ? NumArgGPRs - 1 : NumArgGPRs; + int ArgFPRsLeft = FLen ? NumArgFPRs : 0; int NumFixedArgs = FI.getNumRequiredArgs(); int ArgNum = 0; for (auto &ArgInfo : FI.arguments()) { bool IsFixed = ArgNum < NumFixedArgs; - ArgInfo.info = classifyArgumentType(ArgInfo.type, IsFixed, ArgGPRsLeft); + ArgInfo.info = + classifyArgumentType(ArgInfo.type, IsFixed, ArgGPRsLeft, ArgFPRsLeft); ArgNum++; } } +// Returns true if the struct is a potential candidate for the floating point +// calling convention. If this function returns true, the caller is +// responsible for checking that if there is only a single field then that +// field is a float. +bool RISCVABIInfo::detectFPCCEligibleStructHelper(QualType Ty, CharUnits CurOff, + llvm::Type *&Field1Ty, + CharUnits &Field1Off, + llvm::Type *&Field2Ty, + CharUnits &Field2Off) const { + bool IsInt = Ty->isIntegralOrEnumerationType(); + bool IsFloat = Ty->isRealFloatingType(); + + if (IsInt || IsFloat) { + uint64_t Size = getContext().getTypeSize(Ty); + if (IsInt && Size > XLen) + return false; + // Can't be eligible if larger than the FP registers. Half precision isn't + // currently supported on RISC-V and the ABI hasn't been confirmed, so + // default to the integer ABI in that case. + if (IsFloat && (Size > FLen || Size < 32)) + return false; + // Can't be eligible if an integer type was already found (int+int pairs + // are not eligible). + if (IsInt && Field1Ty && Field1Ty->isIntegerTy()) + return false; + if (!Field1Ty) { + Field1Ty = CGT.ConvertType(Ty); + Field1Off = CurOff; + return true; + } + if (!Field2Ty) { + Field2Ty = CGT.ConvertType(Ty); + Field2Off = CurOff; + return true; + } + return false; + } + + if (auto CTy = Ty->getAs()) { + if (Field1Ty) + return false; + QualType EltTy = CTy->getElementType(); + if (getContext().getTypeSize(EltTy) > FLen) + return false; + Field1Ty = CGT.ConvertType(EltTy); + Field1Off = CurOff; + assert(CurOff.isZero() && "Unexpected offset for first field"); + Field2Ty = Field1Ty; + Field2Off = Field1Off + getContext().getTypeSizeInChars(EltTy); + return true; + } + + if (const ConstantArrayType *ATy = getContext().getAsConstantArrayType(Ty)) { + uint64_t ArraySize = ATy->getSize().getZExtValue(); + QualType EltTy = ATy->getElementType(); + CharUnits EltSize = getContext().getTypeSizeInChars(EltTy); + for (uint64_t i = 0; i < ArraySize; ++i) { + bool Ret = detectFPCCEligibleStructHelper(EltTy, CurOff, Field1Ty, + Field1Off, Field2Ty, Field2Off); + if (!Ret) + return false; + CurOff += EltSize; + } + return true; + } + + if (const auto *RTy = Ty->getAs()) { + // Structures with either a non-trivial destructor or a non-trivial + // copy constructor are not eligible for the FP calling convention. + if (CGCXXABI::RecordArgABI RAA = getRecordArgABI(Ty, CGT.getCXXABI())) + return false; + if (isEmptyRecord(getContext(), Ty, true)) + return true; + const RecordDecl *RD = RTy->getDecl(); + // Unions aren't eligible unless they're empty (which is caught above). + if (RD->isUnion()) + return false; + int ZeroWidthBitFieldCount = 0; + for (const FieldDecl *FD : RD->fields()) { + const ASTRecordLayout &Layout = getContext().getASTRecordLayout(RD); + uint64_t FieldOffInBits = Layout.getFieldOffset(FD->getFieldIndex()); + QualType QTy = FD->getType(); + if (FD->isBitField()) { + unsigned BitWidth = FD->getBitWidthValue(getContext()); + // Allow a bitfield with a type greater than XLen as long as the + // bitwidth is XLen or less. + if (getContext().getTypeSize(QTy) > XLen && BitWidth <= XLen) + QTy = getContext().getIntTypeForBitwidth(XLen, false); + if (BitWidth == 0) { + ZeroWidthBitFieldCount++; + continue; + } + } + + bool Ret = detectFPCCEligibleStructHelper( + QTy, CurOff + getContext().toCharUnitsFromBits(FieldOffInBits), + Field1Ty, Field1Off, Field2Ty, Field2Off); + if (!Ret) + return false; + + // As a quirk of the ABI, zero-width bitfields aren't ignored for fp+fp + // or int+fp structs, but are ignored for a struct with an fp field and + // any number of zero-width bitfields. + if (Field2Ty && ZeroWidthBitFieldCount > 0) + return false; + } + return Field1Ty != nullptr; + } + + return false; +} + +// Determine if a struct is eligible for passing according to the floating +// point calling convention (i.e., when flattened it contains a single fp +// value, fp+fp, or int+fp of appropriate size). If so, NeededArgFPRs and +// NeededArgGPRs are incremented appropriately. +bool RISCVABIInfo::detectFPCCEligibleStruct(QualType Ty, llvm::Type *&Field1Ty, + CharUnits &Field1Off, + llvm::Type *&Field2Ty, + CharUnits &Field2Off, + int &NeededArgGPRs, + int &NeededArgFPRs) const { + Field1Ty = nullptr; + Field2Ty = nullptr; + NeededArgGPRs = 0; + NeededArgFPRs = 0; + bool IsCandidate = detectFPCCEligibleStructHelper( + Ty, CharUnits::Zero(), Field1Ty, Field1Off, Field2Ty, Field2Off); + // Not really a candidate if we have a single int but no float. + if (Field1Ty && !Field2Ty && !Field1Ty->isFloatingPointTy()) + return IsCandidate = false; + if (!IsCandidate) + return false; + if (Field1Ty && Field1Ty->isFloatingPointTy()) + NeededArgFPRs++; + else if (Field1Ty) + NeededArgGPRs++; + if (Field2Ty && Field2Ty->isFloatingPointTy()) + NeededArgFPRs++; + else if (Field2Ty) + NeededArgGPRs++; + return IsCandidate; +} + +// Call getCoerceAndExpand for the two-element flattened struct described by +// Field1Ty, Field1Off, Field2Ty, Field2Off. This method will create an +// appropriate coerceToType and unpaddedCoerceToType. +ABIArgInfo RISCVABIInfo::coerceAndExpandFPCCEligibleStruct( + llvm::Type *Field1Ty, CharUnits Field1Off, llvm::Type *Field2Ty, + CharUnits Field2Off) const { + SmallVector CoerceElts; + SmallVector UnpaddedCoerceElts; + if (!Field1Off.isZero()) + CoerceElts.push_back(llvm::ArrayType::get( + llvm::Type::getInt8Ty(getVMContext()), Field1Off.getQuantity())); + + CoerceElts.push_back(Field1Ty); + UnpaddedCoerceElts.push_back(Field1Ty); + + if (!Field2Ty) { + return ABIArgInfo::getCoerceAndExpand( + llvm::StructType::get(getVMContext(), CoerceElts, !Field1Off.isZero()), + UnpaddedCoerceElts[0]); + } + + CharUnits Field2Align = + CharUnits::fromQuantity(getDataLayout().getABITypeAlignment(Field2Ty)); + CharUnits Field1Size = + CharUnits::fromQuantity(getDataLayout().getTypeStoreSize(Field1Ty)); + CharUnits Field2OffNoPadNoPack = Field1Size.alignTo(Field2Align); + + CharUnits Padding = CharUnits::Zero(); + if (Field2Off > Field2OffNoPadNoPack) + Padding = Field2Off - Field2OffNoPadNoPack; + else if (Field2Off != Field2Align && Field2Off > Field1Size) + Padding = Field2Off - Field1Size; + + bool IsPacked = !Field2Off.isMultipleOf(Field2Align); + + if (!Padding.isZero()) + CoerceElts.push_back(llvm::ArrayType::get( + llvm::Type::getInt8Ty(getVMContext()), Padding.getQuantity())); + + CoerceElts.push_back(Field2Ty); + UnpaddedCoerceElts.push_back(Field2Ty); + + auto CoerceToType = + llvm::StructType::get(getVMContext(), CoerceElts, IsPacked); + auto UnpaddedCoerceToType = + llvm::StructType::get(getVMContext(), UnpaddedCoerceElts, IsPacked); + + return ABIArgInfo::getCoerceAndExpand(CoerceToType, UnpaddedCoerceToType); +} + ABIArgInfo RISCVABIInfo::classifyArgumentType(QualType Ty, bool IsFixed, - int &ArgGPRsLeft) const { + int &ArgGPRsLeft, + int &ArgFPRsLeft) const { assert(ArgGPRsLeft <= NumArgGPRs && "Arg GPR tracking underflow"); Ty = useFirstFieldIfTransparentUnion(Ty); @@ -9257,6 +9474,42 @@ ABIArgInfo RISCVABIInfo::classifyArgumentType(QualType return ABIArgInfo::getIgnore(); uint64_t Size = getContext().getTypeSize(Ty); + + // Pass floating point values via FPRs if possible. + if (IsFixed && Ty->isFloatingType() && FLen >= Size && ArgFPRsLeft) { + ArgFPRsLeft--; + return ABIArgInfo::getDirect(); + } + + // Complex types for the hard float ABI must be passed direct rather than + // using CoerceAndExpand. + if (IsFixed && Ty->isComplexType() && FLen && ArgFPRsLeft >= 2) { + QualType EltTy = Ty->getAs()->getElementType(); + if (getContext().getTypeSize(EltTy) <= FLen) { + ArgFPRsLeft -= 2; + return ABIArgInfo::getDirect(); + } + } + + if (IsFixed && FLen && Ty->isStructureOrClassType()) { + llvm::Type *Field1Ty = nullptr; + llvm::Type *Field2Ty = nullptr; + CharUnits Field1Off = CharUnits::Zero(); + CharUnits Field2Off = CharUnits::Zero(); + int NeededArgGPRs; + int NeededArgFPRs; + bool IsCandidate = + detectFPCCEligibleStruct(Ty, Field1Ty, Field1Off, Field2Ty, Field2Off, + NeededArgGPRs, NeededArgFPRs); + if (IsCandidate && NeededArgGPRs <= ArgGPRsLeft && + NeededArgFPRs <= ArgFPRsLeft) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Aug 20 21:35:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EA01AE1511; Tue, 20 Aug 2019 21:35:37 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Ckc94d6cz45Q1; Tue, 20 Aug 2019 21:35:37 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6807C97C6; Tue, 20 Aug 2019 21:35:37 +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 x7KLZb5d005824; Tue, 20 Aug 2019 21:35:37 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLZbwg005823; Tue, 20 Aug 2019 21:35:37 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202135.x7KLZbwg005823@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:35:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351306 - vendor/clang/clang-release_90-r369369 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/clang/clang-release_90-r369369 X-SVN-Commit-Revision: 351306 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:35:38 -0000 Author: dim Date: Tue Aug 20 21:35:36 2019 New Revision: 351306 URL: https://svnweb.freebsd.org/changeset/base/351306 Log: Tag clang release_90 branch r369369. Added: vendor/clang/clang-release_90-r369369/ - copied from r351305, vendor/clang/dist-release_90/ From owner-svn-src-all@freebsd.org Tue Aug 20 21:35:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2503AE1569; Tue, 20 Aug 2019 21:35:42 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CkcG0Rltz45X7; Tue, 20 Aug 2019 21:35:42 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E390C97C7; Tue, 20 Aug 2019 21:35: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 x7KLZf3D005882; Tue, 20 Aug 2019 21:35:41 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLZebB005873; Tue, 20 Aug 2019 21:35:40 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202135.x7KLZebB005873@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:35:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351307 - in vendor/compiler-rt/dist-release_90/lib: asan builtins interception msan sanitizer_common tsan/rtl X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/compiler-rt/dist-release_90/lib: asan builtins interception msan sanitizer_common tsan/rtl X-SVN-Commit-Revision: 351307 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:35:42 -0000 Author: dim Date: Tue Aug 20 21:35:39 2019 New Revision: 351307 URL: https://svnweb.freebsd.org/changeset/base/351307 Log: Vendor import of compiler-rt release_90 branch r369369: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_90@369369 Modified: vendor/compiler-rt/dist-release_90/lib/asan/asan_posix.cc vendor/compiler-rt/dist-release_90/lib/builtins/cpu_model.c vendor/compiler-rt/dist-release_90/lib/interception/interception_linux.cc vendor/compiler-rt/dist-release_90/lib/msan/msan_linux.cc vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_linux.cc vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h vendor/compiler-rt/dist-release_90/lib/tsan/rtl/tsan_rtl.cc Modified: vendor/compiler-rt/dist-release_90/lib/asan/asan_posix.cc ============================================================================== --- vendor/compiler-rt/dist-release_90/lib/asan/asan_posix.cc Tue Aug 20 21:35:36 2019 (r351306) +++ vendor/compiler-rt/dist-release_90/lib/asan/asan_posix.cc Tue Aug 20 21:35:39 2019 (r351307) @@ -39,8 +39,8 @@ void AsanOnDeadlySignal(int signo, void *siginfo, void // ---------------------- TSD ---------------- {{{1 -#if SANITIZER_NETBSD || SANITIZER_FREEBSD -// Thread Static Data cannot be used in early init on NetBSD and FreeBSD. +#if SANITIZER_NETBSD && !ASAN_DYNAMIC +// Thread Static Data cannot be used in early static ASan init on NetBSD. // Reuse the Asan TSD API for compatibility with existing code // with an alternative implementation. Modified: vendor/compiler-rt/dist-release_90/lib/builtins/cpu_model.c ============================================================================== --- vendor/compiler-rt/dist-release_90/lib/builtins/cpu_model.c Tue Aug 20 21:35:36 2019 (r351306) +++ vendor/compiler-rt/dist-release_90/lib/builtins/cpu_model.c Tue Aug 20 21:35:39 2019 (r351307) @@ -543,7 +543,7 @@ static void getAvailableFeatures(unsigned ECX, unsigne setFeature(FEATURE_BMI); if (HasLeaf7 && ((EBX >> 5) & 1) && HasAVX) setFeature(FEATURE_AVX2); - if (HasLeaf7 && ((EBX >> 9) & 1)) + if (HasLeaf7 && ((EBX >> 8) & 1)) setFeature(FEATURE_BMI2); if (HasLeaf7 && ((EBX >> 16) & 1) && HasAVX512Save) setFeature(FEATURE_AVX512F); Modified: vendor/compiler-rt/dist-release_90/lib/interception/interception_linux.cc ============================================================================== --- vendor/compiler-rt/dist-release_90/lib/interception/interception_linux.cc Tue Aug 20 21:35:36 2019 (r351306) +++ vendor/compiler-rt/dist-release_90/lib/interception/interception_linux.cc Tue Aug 20 21:35:39 2019 (r351307) @@ -33,7 +33,7 @@ static int StrCmp(const char *s1, const char *s2) { } #endif -static void *GetFuncAddr(const char *name, uptr wrapper_addr) { +static void *GetFuncAddr(const char *name) { #if SANITIZER_NETBSD // FIXME: Find a better way to handle renames if (StrCmp(name, "sigaction")) @@ -47,18 +47,13 @@ static void *GetFuncAddr(const char *name, uptr wrappe // want the address of the real definition, though, so look it up using // RTLD_DEFAULT. addr = dlsym(RTLD_DEFAULT, name); - - // In case `name' is not loaded, dlsym ends up finding the actual wrapper. - // We don't want to intercept the wrapper and have it point to itself. - if ((uptr)addr == wrapper_addr) - addr = nullptr; } return addr; } bool InterceptFunction(const char *name, uptr *ptr_to_real, uptr func, uptr wrapper) { - void *addr = GetFuncAddr(name, wrapper); + void *addr = GetFuncAddr(name); *ptr_to_real = (uptr)addr; return addr && (func == wrapper); } Modified: vendor/compiler-rt/dist-release_90/lib/msan/msan_linux.cc ============================================================================== --- vendor/compiler-rt/dist-release_90/lib/msan/msan_linux.cc Tue Aug 20 21:35:36 2019 (r351306) +++ vendor/compiler-rt/dist-release_90/lib/msan/msan_linux.cc Tue Aug 20 21:35:39 2019 (r351307) @@ -174,8 +174,8 @@ void InstallAtExitHandler() { // ---------------------- TSD ---------------- {{{1 -#if SANITIZER_NETBSD || SANITIZER_FREEBSD -// Thread Static Data cannot be used in early init on NetBSD and FreeBSD. +#if SANITIZER_NETBSD +// Thread Static Data cannot be used in early init on NetBSD. // Reuse the MSan TSD API for compatibility with existing code // with an alternative implementation. Modified: vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc ============================================================================== --- vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc Tue Aug 20 21:35:36 2019 (r351306) +++ vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc Tue Aug 20 21:35:39 2019 (r351307) @@ -24,7 +24,7 @@ struct ioctl_desc { const char *name; }; -const unsigned ioctl_table_max = 1200; +const unsigned ioctl_table_max = 1236; static ioctl_desc ioctl_table[ioctl_table_max]; static unsigned ioctl_table_size = 0; @@ -645,7 +645,7 @@ static void ioctl_table_fill() { _(SPKRTUNE, NONE, 0); _(SPKRGETVOL, WRITE, sizeof(unsigned int)); _(SPKRSETVOL, READ, sizeof(unsigned int)); -#if 0 /* WIP */ +#if defined(__x86_64__) /* Entries from file: dev/nvmm/nvmm_ioctl.h */ _(NVMM_IOC_CAPABILITY, WRITE, struct_nvmm_ioc_capability_sz); _(NVMM_IOC_MACHINE_CREATE, READWRITE, struct_nvmm_ioc_machine_create_sz); @@ -661,7 +661,11 @@ static void ioctl_table_fill() { _(NVMM_IOC_GPA_UNMAP, READ, struct_nvmm_ioc_gpa_unmap_sz); _(NVMM_IOC_HVA_MAP, READ, struct_nvmm_ioc_hva_map_sz); _(NVMM_IOC_HVA_UNMAP, READ, struct_nvmm_ioc_hva_unmap_sz); + _(NVMM_IOC_CTL, READ, struct_nvmm_ioc_ctl_sz); #endif + /* Entries from file: dev/spi/spi_io.h */ + _(SPI_IOCTL_CONFIGURE, READ, struct_spi_ioctl_configure_sz); + _(SPI_IOCTL_TRANSFER, READ, struct_spi_ioctl_transfer_sz); /* Entries from file: fs/autofs/autofs_ioctl.h */ _(AUTOFSREQUEST, WRITE, struct_autofs_daemon_request_sz); _(AUTOFSDONE, READ, struct_autofs_daemon_done_sz); @@ -895,6 +899,9 @@ static void ioctl_table_fill() { _(AUDIO_GETBUFINFO, WRITE, struct_audio_info_sz); _(AUDIO_SETCHAN, READ, sizeof(int)); _(AUDIO_GETCHAN, WRITE, sizeof(int)); + _(AUDIO_QUERYFORMAT, READWRITE, struct_audio_format_query_sz); + _(AUDIO_GETFORMAT, WRITE, struct_audio_info_sz); + _(AUDIO_SETFORMAT, READ, struct_audio_info_sz); _(AUDIO_MIXER_READ, READWRITE, struct_mixer_ctrl_sz); _(AUDIO_MIXER_WRITE, READWRITE, struct_mixer_ctrl_sz); _(AUDIO_MIXER_DEVINFO, READWRITE, struct_mixer_devinfo_sz); @@ -985,6 +992,7 @@ static void ioctl_table_fill() { _(DIOCMWEDGES, WRITE, sizeof(int)); _(DIOCGSECTORSIZE, WRITE, sizeof(unsigned int)); _(DIOCGMEDIASIZE, WRITE, sizeof(uptr)); + _(DIOCRMWEDGES, WRITE, sizeof(int)); /* Entries from file: sys/drvctlio.h */ _(DRVDETACHDEV, READ, struct_devdetachargs_sz); _(DRVRESCANBUS, READ, struct_devrescanargs_sz); @@ -1206,6 +1214,8 @@ static void ioctl_table_fill() { _(SIOCGETHERCAP, READWRITE, struct_eccapreq_sz); _(SIOCGIFINDEX, READWRITE, struct_ifreq_sz); _(SIOCSETHERCAP, READ, struct_eccapreq_sz); + _(SIOCSIFDESCR, READ, struct_ifreq_sz); + _(SIOCGIFDESCR, READWRITE, struct_ifreq_sz); _(SIOCGUMBINFO, READWRITE, struct_ifreq_sz); _(SIOCSUMBPARAM, READ, struct_ifreq_sz); _(SIOCGUMBPARAM, READWRITE, struct_ifreq_sz); @@ -1335,6 +1345,21 @@ static void ioctl_table_fill() { _(WDOGIOC_TICKLE, NONE, 0); _(WDOGIOC_GTICKLER, WRITE, sizeof(int)); _(WDOGIOC_GWDOGS, READWRITE, struct_wdog_conf_sz); + /* Entries from file: sys/kcov.h */ + _(KCOV_IOC_SETBUFSIZE, READ, sizeof(u64)); + _(KCOV_IOC_ENABLE, READ, sizeof(int)); + _(KCOV_IOC_DISABLE, NONE, 0); + /* Entries from file: sys/ipmi.h */ + _(IPMICTL_RECEIVE_MSG_TRUNC, READWRITE, struct_ipmi_recv_sz); + _(IPMICTL_RECEIVE_MSG, READWRITE, struct_ipmi_recv_sz); + _(IPMICTL_SEND_COMMAND, READ, struct_ipmi_req_sz); + _(IPMICTL_REGISTER_FOR_CMD, READ, struct_ipmi_cmdspec_sz); + _(IPMICTL_UNREGISTER_FOR_CMD, READ, struct_ipmi_cmdspec_sz); + _(IPMICTL_SET_GETS_EVENTS_CMD, READ, sizeof(int)); + _(IPMICTL_SET_MY_ADDRESS_CMD, READ, sizeof(unsigned int)); + _(IPMICTL_GET_MY_ADDRESS_CMD, WRITE, sizeof(unsigned int)); + _(IPMICTL_SET_MY_LUN_CMD, READ, sizeof(unsigned int)); + _(IPMICTL_GET_MY_LUN_CMD, WRITE, sizeof(unsigned int)); /* Entries from file: soundcard.h */ _(SNDCTL_DSP_RESET, NONE, 0); _(SNDCTL_DSP_SYNC, NONE, 0); Modified: vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_linux.cc ============================================================================== --- vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_linux.cc Tue Aug 20 21:35:36 2019 (r351306) +++ vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_linux.cc Tue Aug 20 21:35:39 2019 (r351307) @@ -779,7 +779,11 @@ int internal_sysctl(const int *name, unsigned int name #if SANITIZER_FREEBSD int internal_sysctlbyname(const char *sname, void *oldp, uptr *oldlenp, const void *newp, uptr newlen) { - return sysctlbyname(sname, oldp, (size_t *)oldlenp, newp, (size_t)newlen); + static decltype(sysctlbyname) *real = nullptr; + if (!real) + real = (decltype(sysctlbyname) *)dlsym(RTLD_NEXT, "sysctlbyname"); + CHECK(real); + return real(sname, oldp, (size_t *)oldlenp, newp, (size_t)newlen); } #endif #endif Modified: vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc ============================================================================== --- vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc Tue Aug 20 21:35:36 2019 (r351306) +++ vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc Tue Aug 20 21:35:39 2019 (r351307) @@ -62,6 +62,8 @@ #include #include #include +#include +#include #include #include #include @@ -123,9 +125,6 @@ #include #include #include -#if 0 -#include -#endif #include #include #include @@ -168,6 +167,7 @@ #include #include #include +#include #include #include #include @@ -221,6 +221,10 @@ #include #include #include + +#if defined(__x86_64__) +#include +#endif // clang-format on // Include these after system headers to avoid name clashes and ambiguities. @@ -686,6 +690,26 @@ unsigned struct_usb_config_desc_sz = sizeof(usb_config unsigned struct_usb_ctl_report_desc_sz = sizeof(usb_ctl_report_desc); unsigned struct_usb_ctl_report_sz = sizeof(usb_ctl_report); unsigned struct_usb_ctl_request_sz = sizeof(usb_ctl_request); +#if defined(__x86_64__) +unsigned struct_nvmm_ioc_capability_sz = sizeof(nvmm_ioc_capability); +unsigned struct_nvmm_ioc_machine_create_sz = sizeof(nvmm_ioc_machine_create); +unsigned struct_nvmm_ioc_machine_destroy_sz = sizeof(nvmm_ioc_machine_destroy); +unsigned struct_nvmm_ioc_machine_configure_sz = + sizeof(nvmm_ioc_machine_configure); +unsigned struct_nvmm_ioc_vcpu_create_sz = sizeof(nvmm_ioc_vcpu_create); +unsigned struct_nvmm_ioc_vcpu_destroy_sz = sizeof(nvmm_ioc_vcpu_destroy); +unsigned struct_nvmm_ioc_vcpu_setstate_sz = sizeof(nvmm_ioc_vcpu_destroy); +unsigned struct_nvmm_ioc_vcpu_getstate_sz = sizeof(nvmm_ioc_vcpu_getstate); +unsigned struct_nvmm_ioc_vcpu_inject_sz = sizeof(nvmm_ioc_vcpu_inject); +unsigned struct_nvmm_ioc_vcpu_run_sz = sizeof(nvmm_ioc_vcpu_run); +unsigned struct_nvmm_ioc_gpa_map_sz = sizeof(nvmm_ioc_gpa_map); +unsigned struct_nvmm_ioc_gpa_unmap_sz = sizeof(nvmm_ioc_gpa_unmap); +unsigned struct_nvmm_ioc_hva_map_sz = sizeof(nvmm_ioc_hva_map); +unsigned struct_nvmm_ioc_hva_unmap_sz = sizeof(nvmm_ioc_hva_unmap); +unsigned struct_nvmm_ioc_ctl_sz = sizeof(nvmm_ioc_ctl); +#endif +unsigned struct_spi_ioctl_configure_sz = sizeof(spi_ioctl_configure); +unsigned struct_spi_ioctl_transfer_sz = sizeof(spi_ioctl_transfer); unsigned struct_autofs_daemon_request_sz = sizeof(autofs_daemon_request); unsigned struct_autofs_daemon_done_sz = sizeof(autofs_daemon_done); unsigned struct_sctp_connectx_addrs_sz = sizeof(sctp_connectx_addrs); @@ -728,6 +752,9 @@ unsigned struct_vnd_user_sz = sizeof(vnd_user); unsigned struct_vt_stat_sz = sizeof(vt_stat); unsigned struct_wdog_conf_sz = sizeof(wdog_conf); unsigned struct_wdog_mode_sz = sizeof(wdog_mode); +unsigned struct_ipmi_recv_sz = sizeof(ipmi_recv); +unsigned struct_ipmi_req_sz = sizeof(ipmi_req); +unsigned struct_ipmi_cmdspec_sz = sizeof(ipmi_cmdspec); unsigned struct_wfq_conf_sz = sizeof(wfq_conf); unsigned struct_wfq_getqid_sz = sizeof(wfq_getqid); unsigned struct_wfq_getstats_sz = sizeof(wfq_getstats); @@ -813,6 +840,7 @@ unsigned struct_iscsi_wait_event_parameters_sz = unsigned struct_isp_stats_sz = sizeof(isp_stats_t); unsigned struct_lsenable_sz = sizeof(struct lsenable); unsigned struct_lsdisable_sz = sizeof(struct lsdisable); +unsigned struct_audio_format_query_sz = sizeof(audio_format_query); unsigned struct_mixer_ctrl_sz = sizeof(struct mixer_ctrl); unsigned struct_mixer_devinfo_sz = sizeof(struct mixer_devinfo); unsigned struct_mpu_command_rec_sz = sizeof(mpu_command_rec); @@ -1423,7 +1451,7 @@ unsigned IOCTL_SPKRTONE = SPKRTONE; unsigned IOCTL_SPKRTUNE = SPKRTUNE; unsigned IOCTL_SPKRGETVOL = SPKRGETVOL; unsigned IOCTL_SPKRSETVOL = SPKRSETVOL; -#if 0 /* interfaces are WIP */ +#if defined(__x86_64__) unsigned IOCTL_NVMM_IOC_CAPABILITY = NVMM_IOC_CAPABILITY; unsigned IOCTL_NVMM_IOC_MACHINE_CREATE = NVMM_IOC_MACHINE_CREATE; unsigned IOCTL_NVMM_IOC_MACHINE_DESTROY = NVMM_IOC_MACHINE_DESTROY; @@ -1438,7 +1466,10 @@ unsigned IOCTL_NVMM_IOC_GPA_MAP = NVMM_IOC_GPA_MAP; unsigned IOCTL_NVMM_IOC_GPA_UNMAP = NVMM_IOC_GPA_UNMAP; unsigned IOCTL_NVMM_IOC_HVA_MAP = NVMM_IOC_HVA_MAP; unsigned IOCTL_NVMM_IOC_HVA_UNMAP = NVMM_IOC_HVA_UNMAP; +unsigned IOCTL_NVMM_IOC_CTL = NVMM_IOC_CTL; #endif +unsigned IOCTL_SPI_IOCTL_CONFIGURE = SPI_IOCTL_CONFIGURE; +unsigned IOCTL_SPI_IOCTL_TRANSFER = SPI_IOCTL_TRANSFER; unsigned IOCTL_AUTOFSREQUEST = AUTOFSREQUEST; unsigned IOCTL_AUTOFSDONE = AUTOFSDONE; unsigned IOCTL_BIOCGBLEN = BIOCGBLEN; @@ -1656,6 +1687,9 @@ unsigned IOCTL_AUDIO_GETPROPS = AUDIO_GETPROPS; unsigned IOCTL_AUDIO_GETBUFINFO = AUDIO_GETBUFINFO; unsigned IOCTL_AUDIO_SETCHAN = AUDIO_SETCHAN; unsigned IOCTL_AUDIO_GETCHAN = AUDIO_GETCHAN; +unsigned IOCTL_AUDIO_QUERYFORMAT = AUDIO_QUERYFORMAT; +unsigned IOCTL_AUDIO_GETFORMAT = AUDIO_GETFORMAT; +unsigned IOCTL_AUDIO_SETFORMAT = AUDIO_SETFORMAT; unsigned IOCTL_AUDIO_MIXER_READ = AUDIO_MIXER_READ; unsigned IOCTL_AUDIO_MIXER_WRITE = AUDIO_MIXER_WRITE; unsigned IOCTL_AUDIO_MIXER_DEVINFO = AUDIO_MIXER_DEVINFO; @@ -1741,6 +1775,7 @@ unsigned IOCTL_DIOCTUR = DIOCTUR; unsigned IOCTL_DIOCMWEDGES = DIOCMWEDGES; unsigned IOCTL_DIOCGSECTORSIZE = DIOCGSECTORSIZE; unsigned IOCTL_DIOCGMEDIASIZE = DIOCGMEDIASIZE; +unsigned IOCTL_DIOCRMWEDGES = DIOCRMWEDGES; unsigned IOCTL_DRVDETACHDEV = DRVDETACHDEV; unsigned IOCTL_DRVRESCANBUS = DRVRESCANBUS; unsigned IOCTL_DRVCTLCOMMAND = DRVCTLCOMMAND; @@ -1945,6 +1980,8 @@ unsigned IOCTL_SIOCSLINKSTR = SIOCSLINKSTR; unsigned IOCTL_SIOCGETHERCAP = SIOCGETHERCAP; unsigned IOCTL_SIOCGIFINDEX = SIOCGIFINDEX; unsigned IOCTL_SIOCSETHERCAP = SIOCSETHERCAP; +unsigned IOCTL_SIOCSIFDESCR = SIOCSIFDESCR; +unsigned IOCTL_SIOCGIFDESCR = SIOCGIFDESCR; unsigned IOCTL_SIOCGUMBINFO = SIOCGUMBINFO; unsigned IOCTL_SIOCSUMBPARAM = SIOCSUMBPARAM; unsigned IOCTL_SIOCGUMBPARAM = SIOCGUMBPARAM; @@ -2069,6 +2106,19 @@ unsigned IOCTL_WDOGIOC_WHICH = WDOGIOC_WHICH; unsigned IOCTL_WDOGIOC_TICKLE = WDOGIOC_TICKLE; unsigned IOCTL_WDOGIOC_GTICKLER = WDOGIOC_GTICKLER; unsigned IOCTL_WDOGIOC_GWDOGS = WDOGIOC_GWDOGS; +unsigned IOCTL_KCOV_IOC_SETBUFSIZE = KCOV_IOC_SETBUFSIZE; +unsigned IOCTL_KCOV_IOC_ENABLE = KCOV_IOC_ENABLE; +unsigned IOCTL_KCOV_IOC_DISABLE = KCOV_IOC_DISABLE; +unsigned IOCTL_IPMICTL_RECEIVE_MSG_TRUNC = IPMICTL_RECEIVE_MSG_TRUNC; +unsigned IOCTL_IPMICTL_RECEIVE_MSG = IPMICTL_RECEIVE_MSG; +unsigned IOCTL_IPMICTL_SEND_COMMAND = IPMICTL_SEND_COMMAND; +unsigned IOCTL_IPMICTL_REGISTER_FOR_CMD = IPMICTL_REGISTER_FOR_CMD; +unsigned IOCTL_IPMICTL_UNREGISTER_FOR_CMD = IPMICTL_UNREGISTER_FOR_CMD; +unsigned IOCTL_IPMICTL_SET_GETS_EVENTS_CMD = IPMICTL_SET_GETS_EVENTS_CMD; +unsigned IOCTL_IPMICTL_SET_MY_ADDRESS_CMD = IPMICTL_SET_MY_ADDRESS_CMD; +unsigned IOCTL_IPMICTL_GET_MY_ADDRESS_CMD = IPMICTL_GET_MY_ADDRESS_CMD; +unsigned IOCTL_IPMICTL_SET_MY_LUN_CMD = IPMICTL_SET_MY_LUN_CMD; +unsigned IOCTL_IPMICTL_GET_MY_LUN_CMD = IPMICTL_GET_MY_LUN_CMD; unsigned IOCTL_SNDCTL_DSP_RESET = SNDCTL_DSP_RESET; unsigned IOCTL_SNDCTL_DSP_SYNC = SNDCTL_DSP_SYNC; unsigned IOCTL_SNDCTL_DSP_SPEED = SNDCTL_DSP_SPEED; Modified: vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h ============================================================================== --- vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h Tue Aug 20 21:35:36 2019 (r351306) +++ vendor/compiler-rt/dist-release_90/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h Tue Aug 20 21:35:39 2019 (r351307) @@ -849,6 +849,25 @@ extern unsigned struct_usb_config_desc_sz; extern unsigned struct_usb_ctl_report_desc_sz; extern unsigned struct_usb_ctl_report_sz; extern unsigned struct_usb_ctl_request_sz; +#if defined(__x86_64__) +extern unsigned struct_nvmm_ioc_capability_sz; +extern unsigned struct_nvmm_ioc_machine_create_sz; +extern unsigned struct_nvmm_ioc_machine_destroy_sz; +extern unsigned struct_nvmm_ioc_machine_configure_sz; +extern unsigned struct_nvmm_ioc_vcpu_create_sz; +extern unsigned struct_nvmm_ioc_vcpu_destroy_sz; +extern unsigned struct_nvmm_ioc_vcpu_setstate_sz; +extern unsigned struct_nvmm_ioc_vcpu_getstate_sz; +extern unsigned struct_nvmm_ioc_vcpu_inject_sz; +extern unsigned struct_nvmm_ioc_vcpu_run_sz; +extern unsigned struct_nvmm_ioc_gpa_map_sz; +extern unsigned struct_nvmm_ioc_gpa_unmap_sz; +extern unsigned struct_nvmm_ioc_hva_map_sz; +extern unsigned struct_nvmm_ioc_hva_unmap_sz; +extern unsigned struct_nvmm_ioc_ctl_sz; +#endif +extern unsigned struct_spi_ioctl_configure_sz; +extern unsigned struct_spi_ioctl_transfer_sz; extern unsigned struct_autofs_daemon_request_sz; extern unsigned struct_autofs_daemon_done_sz; extern unsigned struct_sctp_connectx_addrs_sz; @@ -891,6 +910,9 @@ extern unsigned struct_vnd_user_sz; extern unsigned struct_vt_stat_sz; extern unsigned struct_wdog_conf_sz; extern unsigned struct_wdog_mode_sz; +extern unsigned struct_ipmi_recv_sz; +extern unsigned struct_ipmi_req_sz; +extern unsigned struct_ipmi_cmdspec_sz; extern unsigned struct_wfq_conf_sz; extern unsigned struct_wfq_getqid_sz; extern unsigned struct_wfq_getstats_sz; @@ -969,6 +991,7 @@ extern unsigned struct_iscsi_wait_event_parameters_sz; extern unsigned struct_isp_stats_sz; extern unsigned struct_lsenable_sz; extern unsigned struct_lsdisable_sz; +extern unsigned struct_audio_format_query_sz; extern unsigned struct_mixer_ctrl_sz; extern unsigned struct_mixer_devinfo_sz; extern unsigned struct_mpu_command_rec_sz; @@ -1575,7 +1598,7 @@ extern unsigned IOCTL_SPKRTONE; extern unsigned IOCTL_SPKRTUNE; extern unsigned IOCTL_SPKRGETVOL; extern unsigned IOCTL_SPKRSETVOL; -#if 0 /* interfaces are WIP */ +#if defined(__x86_64__) extern unsigned IOCTL_NVMM_IOC_CAPABILITY; extern unsigned IOCTL_NVMM_IOC_MACHINE_CREATE; extern unsigned IOCTL_NVMM_IOC_MACHINE_DESTROY; @@ -1590,6 +1613,7 @@ extern unsigned IOCTL_NVMM_IOC_GPA_MAP; extern unsigned IOCTL_NVMM_IOC_GPA_UNMAP; extern unsigned IOCTL_NVMM_IOC_HVA_MAP; extern unsigned IOCTL_NVMM_IOC_HVA_UNMAP; +extern unsigned IOCTL_NVMM_IOC_CTL; #endif extern unsigned IOCTL_AUTOFSREQUEST; extern unsigned IOCTL_AUTOFSDONE; @@ -1808,6 +1832,9 @@ extern unsigned IOCTL_AUDIO_GETPROPS; extern unsigned IOCTL_AUDIO_GETBUFINFO; extern unsigned IOCTL_AUDIO_SETCHAN; extern unsigned IOCTL_AUDIO_GETCHAN; +extern unsigned IOCTL_AUDIO_QUERYFORMAT; +extern unsigned IOCTL_AUDIO_GETFORMAT; +extern unsigned IOCTL_AUDIO_SETFORMAT; extern unsigned IOCTL_AUDIO_MIXER_READ; extern unsigned IOCTL_AUDIO_MIXER_WRITE; extern unsigned IOCTL_AUDIO_MIXER_DEVINFO; @@ -1893,6 +1920,7 @@ extern unsigned IOCTL_DIOCTUR; extern unsigned IOCTL_DIOCMWEDGES; extern unsigned IOCTL_DIOCGSECTORSIZE; extern unsigned IOCTL_DIOCGMEDIASIZE; +extern unsigned IOCTL_DIOCRMWEDGES; extern unsigned IOCTL_DRVDETACHDEV; extern unsigned IOCTL_DRVRESCANBUS; extern unsigned IOCTL_DRVCTLCOMMAND; @@ -1994,6 +2022,8 @@ extern unsigned IOCTL_SEQUENCER_TMR_TEMPO; extern unsigned IOCTL_SEQUENCER_TMR_SOURCE; extern unsigned IOCTL_SEQUENCER_TMR_METRONOME; extern unsigned IOCTL_SEQUENCER_TMR_SELECT; +extern unsigned IOCTL_SPI_IOCTL_CONFIGURE; +extern unsigned IOCTL_SPI_IOCTL_TRANSFER; extern unsigned IOCTL_MTIOCTOP; extern unsigned IOCTL_MTIOCGET; extern unsigned IOCTL_MTIOCIEOT; @@ -2097,6 +2127,8 @@ extern unsigned IOCTL_SIOCSLINKSTR; extern unsigned IOCTL_SIOCGETHERCAP; extern unsigned IOCTL_SIOCGIFINDEX; extern unsigned IOCTL_SIOCSETHERCAP; +extern unsigned IOCTL_SIOCSIFDESCR; +extern unsigned IOCTL_SIOCGIFDESCR; extern unsigned IOCTL_SIOCGUMBINFO; extern unsigned IOCTL_SIOCSUMBPARAM; extern unsigned IOCTL_SIOCGUMBPARAM; @@ -2221,6 +2253,19 @@ extern unsigned IOCTL_WDOGIOC_WHICH; extern unsigned IOCTL_WDOGIOC_TICKLE; extern unsigned IOCTL_WDOGIOC_GTICKLER; extern unsigned IOCTL_WDOGIOC_GWDOGS; +extern unsigned IOCTL_KCOV_IOC_SETBUFSIZE; +extern unsigned IOCTL_KCOV_IOC_ENABLE; +extern unsigned IOCTL_KCOV_IOC_DISABLE; +extern unsigned IOCTL_IPMICTL_RECEIVE_MSG_TRUNC; +extern unsigned IOCTL_IPMICTL_RECEIVE_MSG; +extern unsigned IOCTL_IPMICTL_SEND_COMMAND; +extern unsigned IOCTL_IPMICTL_REGISTER_FOR_CMD; +extern unsigned IOCTL_IPMICTL_UNREGISTER_FOR_CMD; +extern unsigned IOCTL_IPMICTL_SET_GETS_EVENTS_CMD; +extern unsigned IOCTL_IPMICTL_SET_MY_ADDRESS_CMD; +extern unsigned IOCTL_IPMICTL_GET_MY_ADDRESS_CMD; +extern unsigned IOCTL_IPMICTL_SET_MY_LUN_CMD; +extern unsigned IOCTL_IPMICTL_GET_MY_LUN_CMD; extern unsigned IOCTL_SNDCTL_DSP_RESET; extern unsigned IOCTL_SNDCTL_DSP_SYNC; extern unsigned IOCTL_SNDCTL_DSP_SPEED; Modified: vendor/compiler-rt/dist-release_90/lib/tsan/rtl/tsan_rtl.cc ============================================================================== --- vendor/compiler-rt/dist-release_90/lib/tsan/rtl/tsan_rtl.cc Tue Aug 20 21:35:36 2019 (r351306) +++ vendor/compiler-rt/dist-release_90/lib/tsan/rtl/tsan_rtl.cc Tue Aug 20 21:35:39 2019 (r351307) @@ -149,6 +149,7 @@ static void BackgroundThread(void *arg) { // We don't use ScopedIgnoreInterceptors, because we want ignores to be // enabled even when the thread function exits (e.g. during pthread thread // shutdown code). + cur_thread_init(); cur_thread()->ignore_interceptors++; const u64 kMs2Ns = 1000 * 1000; From owner-svn-src-all@freebsd.org Tue Aug 20 21:35:45 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 75190E1599; Tue, 20 Aug 2019 21:35:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CkcK12fzz45dF; Tue, 20 Aug 2019 21:35:44 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A6CC697C8; Tue, 20 Aug 2019 21:35: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 x7KLZifV005931; Tue, 20 Aug 2019 21:35:44 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLZiAZ005930; Tue, 20 Aug 2019 21:35:44 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202135.x7KLZiAZ005930@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:35:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351308 - vendor/compiler-rt/compiler-rt-release_90-r369369 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/compiler-rt/compiler-rt-release_90-r369369 X-SVN-Commit-Revision: 351308 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:35:45 -0000 Author: dim Date: Tue Aug 20 21:35:44 2019 New Revision: 351308 URL: https://svnweb.freebsd.org/changeset/base/351308 Log: Tag compiler-rt release_90 branch r369369. Added: vendor/compiler-rt/compiler-rt-release_90-r369369/ - copied from r351307, vendor/compiler-rt/dist-release_90/ From owner-svn-src-all@freebsd.org Tue Aug 20 21:35:48 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A2A76E15D6; Tue, 20 Aug 2019 21:35:48 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CkcN2nN9z45kj; Tue, 20 Aug 2019 21:35:48 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D48B197C9; Tue, 20 Aug 2019 21:35: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 x7KLZlYW005981; Tue, 20 Aug 2019 21:35:47 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLZlHC005978; Tue, 20 Aug 2019 21:35:47 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202135.x7KLZlHC005978@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:35:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351309 - in vendor/libc++/dist-release_90: include src X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/libc++/dist-release_90: include src X-SVN-Commit-Revision: 351309 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:35:48 -0000 Author: dim Date: Tue Aug 20 21:35:46 2019 New Revision: 351309 URL: https://svnweb.freebsd.org/changeset/base/351309 Log: Vendor import of libc++ release_90 branch r369369: https://llvm.org/svn/llvm-project/libcxx/branches/release_90@369369 Modified: vendor/libc++/dist-release_90/include/__threading_support vendor/libc++/dist-release_90/include/mutex vendor/libc++/dist-release_90/include/thread vendor/libc++/dist-release_90/src/mutex.cpp Modified: vendor/libc++/dist-release_90/include/__threading_support ============================================================================== --- vendor/libc++/dist-release_90/include/__threading_support Tue Aug 20 21:35:44 2019 (r351308) +++ vendor/libc++/dist-release_90/include/__threading_support Tue Aug 20 21:35:46 2019 (r351309) @@ -12,6 +12,7 @@ #include <__config> #include +#include #include #ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER @@ -393,6 +394,86 @@ int __libcpp_tls_set(__libcpp_tls_key __key, void *__p } #endif // !_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL || _LIBCPP_BUILDING_THREAD_LIBRARY_EXTERNAL + +class _LIBCPP_TYPE_VIS thread; +class _LIBCPP_TYPE_VIS __thread_id; + +namespace this_thread +{ + +_LIBCPP_INLINE_VISIBILITY __thread_id get_id() _NOEXCEPT; + +} // this_thread + +template<> struct hash<__thread_id>; + +class _LIBCPP_TEMPLATE_VIS __thread_id +{ + // FIXME: pthread_t is a pointer on Darwin but a long on Linux. + // NULL is the no-thread value on Darwin. Someone needs to check + // on other platforms. We assume 0 works everywhere for now. + __libcpp_thread_id __id_; + +public: + _LIBCPP_INLINE_VISIBILITY + __thread_id() _NOEXCEPT : __id_(0) {} + + friend _LIBCPP_INLINE_VISIBILITY + bool operator==(__thread_id __x, __thread_id __y) _NOEXCEPT + { // don't pass id==0 to underlying routines + if (__x.__id_ == 0) return __y.__id_ == 0; + if (__y.__id_ == 0) return false; + return __libcpp_thread_id_equal(__x.__id_, __y.__id_); + } + friend _LIBCPP_INLINE_VISIBILITY + bool operator!=(__thread_id __x, __thread_id __y) _NOEXCEPT + {return !(__x == __y);} + friend _LIBCPP_INLINE_VISIBILITY + bool operator< (__thread_id __x, __thread_id __y) _NOEXCEPT + { // id==0 is always less than any other thread_id + if (__x.__id_ == 0) return __y.__id_ != 0; + if (__y.__id_ == 0) return false; + return __libcpp_thread_id_less(__x.__id_, __y.__id_); + } + friend _LIBCPP_INLINE_VISIBILITY + bool operator<=(__thread_id __x, __thread_id __y) _NOEXCEPT + {return !(__y < __x);} + friend _LIBCPP_INLINE_VISIBILITY + bool operator> (__thread_id __x, __thread_id __y) _NOEXCEPT + {return __y < __x ;} + friend _LIBCPP_INLINE_VISIBILITY + bool operator>=(__thread_id __x, __thread_id __y) _NOEXCEPT + {return !(__x < __y);} + + _LIBCPP_INLINE_VISIBILITY + void __reset() { __id_ = 0; } + + template + friend + _LIBCPP_INLINE_VISIBILITY + basic_ostream<_CharT, _Traits>& + operator<<(basic_ostream<_CharT, _Traits>& __os, __thread_id __id); + +private: + _LIBCPP_INLINE_VISIBILITY + __thread_id(__libcpp_thread_id __id) : __id_(__id) {} + + friend __thread_id this_thread::get_id() _NOEXCEPT; + friend class _LIBCPP_TYPE_VIS thread; + friend struct _LIBCPP_TEMPLATE_VIS hash<__thread_id>; +}; + +namespace this_thread +{ + +inline _LIBCPP_INLINE_VISIBILITY +__thread_id +get_id() _NOEXCEPT +{ + return __libcpp_thread_get_current_id(); +} + +} // this_thread _LIBCPP_END_NAMESPACE_STD Modified: vendor/libc++/dist-release_90/include/mutex ============================================================================== --- vendor/libc++/dist-release_90/include/mutex Tue Aug 20 21:35:44 2019 (r351308) +++ vendor/libc++/dist-release_90/include/mutex Tue Aug 20 21:35:46 2019 (r351309) @@ -280,7 +280,7 @@ class _LIBCPP_TYPE_VIS recursive_timed_mutex mutex __m_; condition_variable __cv_; size_t __count_; - __libcpp_thread_id __id_; + __thread_id __id_; public: recursive_timed_mutex(); ~recursive_timed_mutex(); @@ -307,9 +307,9 @@ bool recursive_timed_mutex::try_lock_until(const chrono::time_point<_Clock, _Duration>& __t) { using namespace chrono; - __libcpp_thread_id __id = __libcpp_thread_get_current_id(); + __thread_id __id = this_thread::get_id(); unique_lock lk(__m_); - if (__libcpp_thread_id_equal(__id, __id_)) + if (__id == __id_) { if (__count_ == numeric_limits::max()) return false; Modified: vendor/libc++/dist-release_90/include/thread ============================================================================== --- vendor/libc++/dist-release_90/include/thread Tue Aug 20 21:35:44 2019 (r351308) +++ vendor/libc++/dist-release_90/include/thread Tue Aug 20 21:35:46 2019 (r351309) @@ -200,64 +200,6 @@ __thread_specific_ptr<_Tp>::set_pointer(pointer __p) __libcpp_tls_set(__key_, __p); } -class _LIBCPP_TYPE_VIS thread; -class _LIBCPP_TYPE_VIS __thread_id; - -namespace this_thread -{ - -_LIBCPP_INLINE_VISIBILITY __thread_id get_id() _NOEXCEPT; - -} // this_thread - -template<> struct hash<__thread_id>; - -class _LIBCPP_TEMPLATE_VIS __thread_id -{ - // FIXME: pthread_t is a pointer on Darwin but a long on Linux. - // NULL is the no-thread value on Darwin. Someone needs to check - // on other platforms. We assume 0 works everywhere for now. - __libcpp_thread_id __id_; - -public: - _LIBCPP_INLINE_VISIBILITY - __thread_id() _NOEXCEPT : __id_(0) {} - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(__thread_id __x, __thread_id __y) _NOEXCEPT - {return __libcpp_thread_id_equal(__x.__id_, __y.__id_);} - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(__thread_id __x, __thread_id __y) _NOEXCEPT - {return !(__x == __y);} - friend _LIBCPP_INLINE_VISIBILITY - bool operator< (__thread_id __x, __thread_id __y) _NOEXCEPT - {return __libcpp_thread_id_less(__x.__id_, __y.__id_);} - friend _LIBCPP_INLINE_VISIBILITY - bool operator<=(__thread_id __x, __thread_id __y) _NOEXCEPT - {return !(__y < __x);} - friend _LIBCPP_INLINE_VISIBILITY - bool operator> (__thread_id __x, __thread_id __y) _NOEXCEPT - {return __y < __x ;} - friend _LIBCPP_INLINE_VISIBILITY - bool operator>=(__thread_id __x, __thread_id __y) _NOEXCEPT - {return !(__x < __y);} - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, __thread_id __id) - {return __os << __id.__id_;} - -private: - _LIBCPP_INLINE_VISIBILITY - __thread_id(__libcpp_thread_id __id) : __id_(__id) {} - - friend __thread_id this_thread::get_id() _NOEXCEPT; - friend class _LIBCPP_TYPE_VIS thread; - friend struct _LIBCPP_TEMPLATE_VIS hash<__thread_id>; -}; - template<> struct _LIBCPP_TEMPLATE_VIS hash<__thread_id> : public unary_function<__thread_id, size_t> @@ -269,17 +211,11 @@ struct _LIBCPP_TEMPLATE_VIS hash<__thread_id> } }; -namespace this_thread -{ - -inline _LIBCPP_INLINE_VISIBILITY -__thread_id -get_id() _NOEXCEPT -{ - return __libcpp_thread_get_current_id(); -} - -} // this_thread +template +_LIBCPP_INLINE_VISIBILITY +basic_ostream<_CharT, _Traits>& +operator<<(basic_ostream<_CharT, _Traits>& __os, __thread_id __id) +{return __os << __id.__id_;} class _LIBCPP_TYPE_VIS thread { Modified: vendor/libc++/dist-release_90/src/mutex.cpp ============================================================================== --- vendor/libc++/dist-release_90/src/mutex.cpp Tue Aug 20 21:35:44 2019 (r351308) +++ vendor/libc++/dist-release_90/src/mutex.cpp Tue Aug 20 21:35:46 2019 (r351309) @@ -132,7 +132,7 @@ timed_mutex::unlock() _NOEXCEPT recursive_timed_mutex::recursive_timed_mutex() : __count_(0), - __id_(0) + __id_{} { } @@ -144,9 +144,9 @@ recursive_timed_mutex::~recursive_timed_mutex() void recursive_timed_mutex::lock() { - __libcpp_thread_id id = __libcpp_thread_get_current_id(); + __thread_id id = this_thread::get_id(); unique_lock lk(__m_); - if (__libcpp_thread_id_equal(id, __id_)) + if (id ==__id_) { if (__count_ == numeric_limits::max()) __throw_system_error(EAGAIN, "recursive_timed_mutex lock limit reached"); @@ -162,9 +162,9 @@ recursive_timed_mutex::lock() bool recursive_timed_mutex::try_lock() _NOEXCEPT { - __libcpp_thread_id id = __libcpp_thread_get_current_id(); + __thread_id id = this_thread::get_id(); unique_lock lk(__m_, try_to_lock); - if (lk.owns_lock() && (__count_ == 0 || __libcpp_thread_id_equal(id, __id_))) + if (lk.owns_lock() && (__count_ == 0 || id == __id_)) { if (__count_ == numeric_limits::max()) return false; @@ -181,7 +181,7 @@ recursive_timed_mutex::unlock() _NOEXCEPT unique_lock lk(__m_); if (--__count_ == 0) { - __id_ = 0; + __id_.__reset(); lk.unlock(); __cv_.notify_one(); } From owner-svn-src-all@freebsd.org Tue Aug 20 21:35:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6F413E1619; Tue, 20 Aug 2019 21:35:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CkcS0htCz45ql; Tue, 20 Aug 2019 21:35:52 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CCAC897CA; Tue, 20 Aug 2019 21:35:50 +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 x7KLZoEh006030; Tue, 20 Aug 2019 21:35:50 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLZopi006029; Tue, 20 Aug 2019 21:35:50 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202135.x7KLZopi006029@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:35:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351310 - vendor/libc++/libc++-release_90-r369369 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/libc++/libc++-release_90-r369369 X-SVN-Commit-Revision: 351310 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:35:52 -0000 Author: dim Date: Tue Aug 20 21:35:50 2019 New Revision: 351310 URL: https://svnweb.freebsd.org/changeset/base/351310 Log: Tag libc++ release_90 branch r369369. Added: vendor/libc++/libc++-release_90-r369369/ - copied from r351309, vendor/libc++/dist-release_90/ From owner-svn-src-all@freebsd.org Tue Aug 20 21:35:55 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6C1C7E165F; Tue, 20 Aug 2019 21:35:55 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CkcV5t8xz45vG; Tue, 20 Aug 2019 21:35:54 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7D88B97CB; Tue, 20 Aug 2019 21:35:53 +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 x7KLZrb4006076; Tue, 20 Aug 2019 21:35:53 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLZrHJ006075; Tue, 20 Aug 2019 21:35:53 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202135.x7KLZrHJ006075@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:35:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351311 - vendor/llvm-libunwind/libunwind-release_90-r369369 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-libunwind/libunwind-release_90-r369369 X-SVN-Commit-Revision: 351311 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:35:55 -0000 Author: dim Date: Tue Aug 20 21:35:53 2019 New Revision: 351311 URL: https://svnweb.freebsd.org/changeset/base/351311 Log: Tag LLVM libunwind release_90 branch r369369. Added: vendor/llvm-libunwind/libunwind-release_90-r369369/ - copied from r351310, vendor/llvm-libunwind/dist-release_90/ From owner-svn-src-all@freebsd.org Tue Aug 20 21:35:56 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E1BF4E167B; Tue, 20 Aug 2019 21:35:56 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CkcX4zG2z45y5; Tue, 20 Aug 2019 21:35:56 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8655297CC; Tue, 20 Aug 2019 21:35:56 +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 x7KLZumj006129; Tue, 20 Aug 2019 21:35:56 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLZtwV006126; Tue, 20 Aug 2019 21:35:55 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202135.x7KLZtwV006126@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:35:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351312 - in vendor/lld/dist-release_90: COFF ELF docs X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/lld/dist-release_90: COFF ELF docs X-SVN-Commit-Revision: 351312 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:35:57 -0000 Author: dim Date: Tue Aug 20 21:35:55 2019 New Revision: 351312 URL: https://svnweb.freebsd.org/changeset/base/351312 Log: Vendor import of lld release_90 branch r369369: https://llvm.org/svn/llvm-project/lld/branches/release_90@369369 Modified: vendor/lld/dist-release_90/COFF/Driver.cpp vendor/lld/dist-release_90/COFF/Writer.cpp vendor/lld/dist-release_90/ELF/SyntheticSections.cpp vendor/lld/dist-release_90/docs/ReleaseNotes.rst Modified: vendor/lld/dist-release_90/COFF/Driver.cpp ============================================================================== --- vendor/lld/dist-release_90/COFF/Driver.cpp Tue Aug 20 21:35:53 2019 (r351311) +++ vendor/lld/dist-release_90/COFF/Driver.cpp Tue Aug 20 21:35:55 2019 (r351312) @@ -184,8 +184,10 @@ void LinkerDriver::addBuffer(std::unique_ptr file = CHECK(Archive::create(mbref), filename + ": failed to parse archive"); + Archive *archive = file.get(); + make>(std::move(file)); // take ownership - for (MemoryBufferRef m : getArchiveMembers(file.get())) + for (MemoryBufferRef m : getArchiveMembers(archive)) addArchiveBuffer(m, "", filename, 0); return; } Modified: vendor/lld/dist-release_90/COFF/Writer.cpp ============================================================================== --- vendor/lld/dist-release_90/COFF/Writer.cpp Tue Aug 20 21:35:53 2019 (r351311) +++ vendor/lld/dist-release_90/COFF/Writer.cpp Tue Aug 20 21:35:55 2019 (r351312) @@ -762,6 +762,28 @@ void Writer::locateImportTables() { } } +// Return whether a SectionChunk's suffix (the dollar and any trailing +// suffix) should be removed and sorted into the main suffixless +// PartialSection. +static bool shouldStripSectionSuffix(SectionChunk *sc, StringRef name) { + // On MinGW, comdat groups are formed by putting the comdat group name + // after the '$' in the section name. For .eh_frame$, that must + // still be sorted before the .eh_frame trailer from crtend.o, thus just + // strip the section name trailer. For other sections, such as + // .tls$$ (where non-comdat .tls symbols are otherwise stored in + // ".tls$"), they must be strictly sorted after .tls. And for the + // hypothetical case of comdat .CRT$XCU, we definitely need to keep the + // suffix for sorting. Thus, to play it safe, only strip the suffix for + // the standard sections. + if (!config->mingw) + return false; + if (!sc || !sc->isCOMDAT()) + return false; + return name.startswith(".text$") || name.startswith(".data$") || + name.startswith(".rdata$") || name.startswith(".pdata$") || + name.startswith(".xdata$") || name.startswith(".eh_frame$"); +} + // Create output section objects and add them to OutputSections. void Writer::createSections() { // First, create the builtin sections. @@ -807,10 +829,7 @@ void Writer::createSections() { continue; } StringRef name = c->getSectionName(); - // On MinGW, comdat groups are formed by putting the comdat group name - // after the '$' in the section name. Such a section name suffix shouldn't - // imply separate alphabetical sorting of those section chunks though. - if (config->mingw && sc && sc->isCOMDAT()) + if (shouldStripSectionSuffix(sc, name)) name = name.split('$').first; PartialSection *pSec = createPartialSection(name, c->getOutputCharacteristics()); @@ -1075,6 +1094,13 @@ Optional Writer::createSymbol(Defined * break; } } + + // Symbols that are runtime pseudo relocations don't point to the actual + // symbol data itself (as they are imported), but points to the IAT entry + // instead. Avoid emitting them to the symbol table, as they can confuse + // debuggers. + if (def->isRuntimePseudoReloc) + return None; StringRef name = def->getName(); if (name.size() > COFF::NameSize) { Modified: vendor/lld/dist-release_90/ELF/SyntheticSections.cpp ============================================================================== --- vendor/lld/dist-release_90/ELF/SyntheticSections.cpp Tue Aug 20 21:35:53 2019 (r351311) +++ vendor/lld/dist-release_90/ELF/SyntheticSections.cpp Tue Aug 20 21:35:55 2019 (r351312) @@ -3177,11 +3177,23 @@ static bool isDuplicateArmExidxSec(InputSection *prev, // The .ARM.exidx table must be sorted in ascending order of the address of the // functions the table describes. Optionally duplicate adjacent table entries -// can be removed. At the end of the function the ExecutableSections must be +// can be removed. At the end of the function the executableSections must be // sorted in ascending order of address, Sentinel is set to the InputSection // with the highest address and any InputSections that have mergeable // .ARM.exidx table entries are removed from it. void ARMExidxSyntheticSection::finalizeContents() { + if (script->hasSectionsCommand) { + // The executableSections and exidxSections that we use to derive the + // final contents of this SyntheticSection are populated before the + // linker script assigns InputSections to OutputSections. The linker script + // SECTIONS command may have a /DISCARD/ entry that removes executable + // InputSections and their dependent .ARM.exidx section that we recorded + // earlier. + auto isDiscarded = [](const InputSection *isec) { return !isec->isLive(); }; + llvm::erase_if(executableSections, isDiscarded); + llvm::erase_if(exidxSections, isDiscarded); + } + // Sort the executable sections that may or may not have associated // .ARM.exidx sections by order of ascending address. This requires the // relative positions of InputSections to be known. Modified: vendor/lld/dist-release_90/docs/ReleaseNotes.rst ============================================================================== --- vendor/lld/dist-release_90/docs/ReleaseNotes.rst Tue Aug 20 21:35:53 2019 (r351311) +++ vendor/lld/dist-release_90/docs/ReleaseNotes.rst Tue Aug 20 21:35:55 2019 (r351312) @@ -28,6 +28,15 @@ ELF Improvements ``$ ld.lld --call-shared`` now prints ``unknown argument '--call-shared', did you mean '--call_shared'``. +* lld now supports replacing ``JAL`` with ``JALX`` instructions in case + of MIPS - microMIPS cross-mode jumps. + +* lld now creates LA25 thunks for MIPS R6 code. + +* Put MIPS-specific .reginfo, .MIPS.options, and .MIPS.abiflags sections + into corresponding PT_MIPS_REGINFO, PT_MIPS_OPTIONS, and PT_MIPS_ABIFLAGS + segments. + * ... COFF Improvements @@ -53,6 +62,14 @@ COFF Improvements * Several speed and memory usage improvements. +* Range extension thunks are now created for ARM64, if needed + +* lld-link now supports resource object files created by GNU windres and + MS cvtres, not only llvm-cvtres + +* The generated thunks for delayimports now share the majority of code + among thunks, significantly reducing the overhead of using delayimport + * ... MinGW Improvements @@ -61,6 +78,17 @@ MinGW Improvements * lld now correctly links crtend.o as the last object file, handling terminators for the sections such as .eh_frame properly, fixing DWARF exception handling with libgcc and gcc's crtend.o. + +* lld now also handles DWARF unwind info generated by GCC, when linking + with libgcc + +* Many more GNU ld options are now supported, which e.g. allows the lld + MinGW frontend to be called by GCC + +* PDB output can be requested without manually specifying the PDB file + name, with the new option ``-pdb=`` with an empty value to the option. + (The old existing syntax ``-pdb `` was more cumbersome to use + with an empty parameter value.) MachO Improvements ------------------ From owner-svn-src-all@freebsd.org Tue Aug 20 21:36:00 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EA326E16CB; Tue, 20 Aug 2019 21:36:00 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Ckcc38jmz46Kt; Tue, 20 Aug 2019 21:36:00 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BAB797CD; Tue, 20 Aug 2019 21:35:59 +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 x7KLZxmZ006175; Tue, 20 Aug 2019 21:35:59 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLZxob006174; Tue, 20 Aug 2019 21:35:59 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202135.x7KLZxob006174@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:35:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351313 - vendor/lld/lld-release_90-r369369 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/lld/lld-release_90-r369369 X-SVN-Commit-Revision: 351313 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:36:01 -0000 Author: dim Date: Tue Aug 20 21:35:58 2019 New Revision: 351313 URL: https://svnweb.freebsd.org/changeset/base/351313 Log: Tag lld release_90 branch r369369. Added: vendor/lld/lld-release_90-r369369/ - copied from r351312, vendor/lld/dist-release_90/ From owner-svn-src-all@freebsd.org Tue Aug 20 21:36:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E3EF1E1717; Tue, 20 Aug 2019 21:36:03 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Ckcg147Wz46R6; Tue, 20 Aug 2019 21:36:03 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 409D397CE; Tue, 20 Aug 2019 21:36:02 +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 x7KLa257006229; Tue, 20 Aug 2019 21:36:02 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLa2J5006228; Tue, 20 Aug 2019 21:36:02 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202136.x7KLa2J5006228@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:36:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351314 - vendor/lldb/dist-release_90/source/Core X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/lldb/dist-release_90/source/Core X-SVN-Commit-Revision: 351314 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:36:04 -0000 Author: dim Date: Tue Aug 20 21:36:01 2019 New Revision: 351314 URL: https://svnweb.freebsd.org/changeset/base/351314 Log: Vendor import of lldb release_90 branch r369369: https://llvm.org/svn/llvm-project/lldb/branches/release_90@369369 Modified: vendor/lldb/dist-release_90/source/Core/IOHandler.cpp Modified: vendor/lldb/dist-release_90/source/Core/IOHandler.cpp ============================================================================== --- vendor/lldb/dist-release_90/source/Core/IOHandler.cpp Tue Aug 20 21:35:58 2019 (r351313) +++ vendor/lldb/dist-release_90/source/Core/IOHandler.cpp Tue Aug 20 21:36:01 2019 (r351314) @@ -233,7 +233,7 @@ int IOHandlerDelegate::IOHandlerComplete( matches, descriptions); case Completion::Expression: { CompletionResult result; - CompletionRequest request(current_line, current_line - cursor, + CompletionRequest request(current_line, cursor - current_line, skip_first_n_matches, max_matches, result); CommandCompletions::InvokeCommonCompletionCallbacks( io_handler.GetDebugger().GetCommandInterpreter(), From owner-svn-src-all@freebsd.org Tue Aug 20 21:36:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 10119E174B; Tue, 20 Aug 2019 21:36:06 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Ckcj3jHrz46W7; Tue, 20 Aug 2019 21:36:05 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2610997CF; Tue, 20 Aug 2019 21:36:05 +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 x7KLa5gr006276; Tue, 20 Aug 2019 21:36:05 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLa5xc006275; Tue, 20 Aug 2019 21:36:05 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202136.x7KLa5xc006275@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:36:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351315 - vendor/lldb/lldb-release_90-r369369 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/lldb/lldb-release_90-r369369 X-SVN-Commit-Revision: 351315 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:36:06 -0000 Author: dim Date: Tue Aug 20 21:36:04 2019 New Revision: 351315 URL: https://svnweb.freebsd.org/changeset/base/351315 Log: Tag lldb release_90 branch r369369. Added: vendor/lldb/lldb-release_90-r369369/ - copied from r351314, vendor/lldb/dist-release_90/ From owner-svn-src-all@freebsd.org Tue Aug 20 21:36:09 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3A8B4E1781; Tue, 20 Aug 2019 21:36:09 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Ckcm502lz46fv; Tue, 20 Aug 2019 21:36: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0AB7497D0; Tue, 20 Aug 2019 21:36:08 +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 x7KLa7ak006324; Tue, 20 Aug 2019 21:36:07 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLa712006323; Tue, 20 Aug 2019 21:36:07 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201908202136.x7KLa712006323@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 20 Aug 2019 21:36:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351316 - vendor/llvm-openmp/openmp-release_90-r369369 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-openmp/openmp-release_90-r369369 X-SVN-Commit-Revision: 351316 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:36:09 -0000 Author: dim Date: Tue Aug 20 21:36:07 2019 New Revision: 351316 URL: https://svnweb.freebsd.org/changeset/base/351316 Log: Tag LLVM openmp release_90 branch r369369. Added: vendor/llvm-openmp/openmp-release_90-r369369/ - copied from r351315, vendor/llvm-openmp/dist-release_90/ From owner-svn-src-all@freebsd.org Tue Aug 20 21:59:50 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 05EF3E25A1; Tue, 20 Aug 2019 21:59:50 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cl856Nsvz48PZ; Tue, 20 Aug 2019 21:59:49 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BCEFB9B5F; Tue, 20 Aug 2019 21:59:49 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7KLxnv9019026; Tue, 20 Aug 2019 21:59:49 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7KLxmH4019020; Tue, 20 Aug 2019 21:59:48 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908202159.x7KLxmH4019020@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Tue, 20 Aug 2019 21:59:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351318 - in head: etc/mtree sbin/ping sbin/ping/tests X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: in head: etc/mtree sbin/ping sbin/ping/tests X-SVN-Commit-Revision: 351318 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 20 Aug 2019 21:59:50 -0000 Author: asomers Date: Tue Aug 20 21:59:48 2019 New Revision: 351318 URL: https://svnweb.freebsd.org/changeset/base/351318 Log: ping: Add tests of the Internet checksum function Submitted by: Ján Sučan MFC after: 2 weeks Sponsored by: Google LLC (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21340 Added: head/sbin/ping/tests/ head/sbin/ping/tests/Makefile (contents, props changed) head/sbin/ping/tests/in_cksum_test.c (contents, props changed) Modified: head/etc/mtree/BSD.tests.dist head/sbin/ping/Makefile Modified: head/etc/mtree/BSD.tests.dist ============================================================================== --- head/etc/mtree/BSD.tests.dist Tue Aug 20 21:43:13 2019 (r351317) +++ head/etc/mtree/BSD.tests.dist Tue Aug 20 21:59:48 2019 (r351318) @@ -440,6 +440,8 @@ files .. .. + ping + .. .. secure lib Modified: head/sbin/ping/Makefile ============================================================================== --- head/sbin/ping/Makefile Tue Aug 20 21:43:13 2019 (r351317) +++ head/sbin/ping/Makefile Tue Aug 20 21:59:48 2019 (r351318) @@ -23,4 +23,7 @@ CFLAGS+=-DWITH_CASPER CFLAGS+=-DIPSEC LIBADD+= ipsec +HAS_TESTS= +SUBDIR.${MK_TESTS}+= tests + .include Added: head/sbin/ping/tests/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/ping/tests/Makefile Tue Aug 20 21:59:48 2019 (r351318) @@ -0,0 +1,8 @@ +# $FreeBSD$ + +WARNS?= 6 + +ATF_TESTS_C+= in_cksum_test +SRCS.in_cksum_test= in_cksum_test.c ../utils.c + +.include Added: head/sbin/ping/tests/in_cksum_test.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/ping/tests/in_cksum_test.c Tue Aug 20 21:59:48 2019 (r351318) @@ -0,0 +1,146 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (C) 2019 Jan Sucan + * 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 "../utils.h" + +/* + * Test cases. + */ + +ATF_TC_WITHOUT_HEAD(aligned_even_length_big_endian); +ATF_TC_BODY(aligned_even_length_big_endian, tc) +{ + u_char data[] __aligned(sizeof(u_short)) = + {0x12, 0x34, 0x56, 0x78}; + u_short sum; + + sum = in_cksum(data, nitems(data)); + ATF_REQUIRE(sum == 0x5397); +} + +ATF_TC_WITHOUT_HEAD(aligned_odd_length_big_endian); +ATF_TC_BODY(aligned_odd_length_big_endian, tc) +{ + u_char data[] __aligned(sizeof(u_short)) = + {0x12, 0x34, 0x56, 0x78, 0x9a}; + u_short sum; + + sum = in_cksum(data, nitems(data)); + ATF_REQUIRE(sum == 0x52fd); +} + +ATF_TC_WITHOUT_HEAD(aligned_even_length_little_endian); +ATF_TC_BODY(aligned_even_length_little_endian, tc) +{ + u_char data[] __aligned(sizeof(u_short)) = + {0x34, 0x12, 0x78, 0x56}; + u_short sum; + + sum = in_cksum(data, nitems(data)); + ATF_REQUIRE_MSG(sum == 0x9753, "%d", sum); +} + +ATF_TC_WITHOUT_HEAD(aligned_odd_length_little_endian); +ATF_TC_BODY(aligned_odd_length_little_endian, tc) +{ + u_char data[] __aligned(sizeof(u_short)) = + {0x34, 0x12, 0x78, 0x56, 0x00, 0x9a}; + u_short sum; + + sum = in_cksum(data, nitems(data)); + ATF_REQUIRE(sum == 0xfd52); +} + +ATF_TC_WITHOUT_HEAD(unaligned_even_length_big_endian); +ATF_TC_BODY(unaligned_even_length_big_endian, tc) +{ + u_char data[] __aligned(sizeof(u_short)) = + {0x00, 0x12, 0x34, 0x56, 0x78}; + u_short sum; + + sum = in_cksum(data + 1, nitems(data) - 1); + ATF_REQUIRE(sum == 0x5397); +} + +ATF_TC_WITHOUT_HEAD(unaligned_odd_length_big_endian); +ATF_TC_BODY(unaligned_odd_length_big_endian, tc) +{ + u_char data[] __aligned(sizeof(u_short)) = + {0x00, 0x12, 0x34, 0x56, 0x78, 0x9a}; + u_short sum; + + sum = in_cksum(data + 1, nitems(data) - 1); + ATF_REQUIRE(sum == 0x52fd); +} + +ATF_TC_WITHOUT_HEAD(unaligned_even_length_little_endian); +ATF_TC_BODY(unaligned_even_length_little_endian, tc) +{ + u_char data[] __aligned(sizeof(u_short)) = + {0x00, 0x34, 0x12, 0x78, 0x56}; + u_short sum; + + sum = in_cksum(data + 1, nitems(data) - 1); + ATF_REQUIRE_MSG(sum == 0x9753, "%d", sum); +} + +ATF_TC_WITHOUT_HEAD(unaligned_odd_length_little_endian); +ATF_TC_BODY(unaligned_odd_length_little_endian, tc) +{ + u_char data[] __aligned(sizeof(u_short)) = + {0x00, 0x34, 0x12, 0x78, 0x56, 0x00, 0x9a}; + u_short sum; + + sum = in_cksum(data + 1, nitems(data) - 1); + ATF_REQUIRE(sum == 0xfd52); +} + +/* + * Main. + */ + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, aligned_even_length_big_endian); + ATF_TP_ADD_TC(tp, aligned_odd_length_big_endian); + ATF_TP_ADD_TC(tp, aligned_even_length_little_endian); + ATF_TP_ADD_TC(tp, aligned_odd_length_little_endian); + ATF_TP_ADD_TC(tp, unaligned_even_length_big_endian); + ATF_TP_ADD_TC(tp, unaligned_odd_length_big_endian); + ATF_TP_ADD_TC(tp, unaligned_even_length_little_endian); + ATF_TP_ADD_TC(tp, unaligned_odd_length_little_endian); + + return (atf_no_error()); +} From owner-svn-src-all@freebsd.org Wed Aug 21 01:45:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9ABCFE6593; Wed, 21 Aug 2019 01:45:30 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cr8V3btJz4KH4; Wed, 21 Aug 2019 01:45:30 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5DECBC5E0; Wed, 21 Aug 2019 01:45:30 +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 x7L1jUP2072182; Wed, 21 Aug 2019 01:45:30 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7L1jU3x072180; Wed, 21 Aug 2019 01:45:30 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908210145.x7L1jU3x072180@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 21 Aug 2019 01:45:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351319 - in head/usr.sbin/makefs: ffs msdos X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head/usr.sbin/makefs: ffs msdos X-SVN-Commit-Revision: 351319 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 01:45:30 -0000 Author: emaste Date: Wed Aug 21 01:45:29 2019 New Revision: 351319 URL: https://svnweb.freebsd.org/changeset/base/351319 Log: makefs: use `char *` not `void *` for buf b_data, drop casts in msdos (The kernel uses caddr_t.) Suggested by: cem Reviewed by: cem MFC with: r351273 Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21348 Modified: head/usr.sbin/makefs/ffs/buf.h head/usr.sbin/makefs/msdos/msdosfs_fat.c Modified: head/usr.sbin/makefs/ffs/buf.h ============================================================================== --- head/usr.sbin/makefs/ffs/buf.h Tue Aug 20 21:59:48 2019 (r351318) +++ head/usr.sbin/makefs/ffs/buf.h Wed Aug 21 01:45:29 2019 (r351319) @@ -54,7 +54,7 @@ struct vnode { }; struct buf { - void * b_data; + char * b_data; long b_bufsize; long b_bcount; daddr_t b_blkno; Modified: head/usr.sbin/makefs/msdos/msdosfs_fat.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_fat.c Tue Aug 20 21:59:48 2019 (r351318) +++ head/usr.sbin/makefs/msdos/msdosfs_fat.c Wed Aug 21 01:45:29 2019 (r351319) @@ -220,9 +220,9 @@ pcbmap(struct denode *dep, u_long findcn, daddr_t *bnp return (EIO); } if (FAT32(pmp)) - cn = getulong((char *)bp->b_data + bo); + cn = getulong(bp->b_data + bo); else - cn = getushort((char *)bp->b_data + bo); + cn = getushort(bp->b_data + bo); if (FAT12(pmp) && (prevcn & 1)) cn >>= 4; cn &= pmp->pm_fatmask; @@ -502,9 +502,9 @@ fatentry(int function, struct msdosfsmount *pmp, u_lon if (function & FAT_GET) { if (FAT32(pmp)) - readcn = getulong((char *)bp->b_data + bo); + readcn = getulong(bp->b_data + bo); else - readcn = getushort((char *)bp->b_data + bo); + readcn = getushort(bp->b_data + bo); if (FAT12(pmp) & (cn & 1)) readcn >>= 4; readcn &= pmp->pm_fatmask; @@ -516,7 +516,7 @@ fatentry(int function, struct msdosfsmount *pmp, u_lon if (function & FAT_SET) { switch (pmp->pm_fatmask) { case FAT12_MASK: - readcn = getushort((char *)bp->b_data + bo); + readcn = getushort(bp->b_data + bo); if (cn & 1) { readcn &= 0x000f; readcn |= newcontents << 4; @@ -524,20 +524,20 @@ fatentry(int function, struct msdosfsmount *pmp, u_lon readcn &= 0xf000; readcn |= newcontents & 0xfff; } - putushort((char *)bp->b_data + bo, readcn); + putushort(bp->b_data + bo, readcn); break; case FAT16_MASK: - putushort((char *)bp->b_data + bo, newcontents); + putushort(bp->b_data + bo, newcontents); break; case FAT32_MASK: /* * According to spec we have to retain the * high order bits of the FAT entry. */ - readcn = getulong((char *)bp->b_data + bo); + readcn = getulong(bp->b_data + bo); readcn &= ~FAT32_MASK; readcn |= newcontents & FAT32_MASK; - putulong((char *)bp->b_data + bo, readcn); + putulong(bp->b_data + bo, readcn); break; } updatefats(pmp, bp, bn); @@ -587,7 +587,7 @@ fatchain(struct msdosfsmount *pmp, u_long start, u_lon newc = --count > 0 ? start : fillwith; switch (pmp->pm_fatmask) { case FAT12_MASK: - readcn = getushort((char *)bp->b_data + bo); + readcn = getushort(bp->b_data + bo); if (start & 1) { readcn &= 0xf000; readcn |= newc & 0xfff; @@ -595,20 +595,20 @@ fatchain(struct msdosfsmount *pmp, u_long start, u_lon readcn &= 0x000f; readcn |= newc << 4; } - putushort((char *)bp->b_data + bo, readcn); + putushort(bp->b_data + bo, readcn); bo++; if (!(start & 1)) bo++; break; case FAT16_MASK: - putushort((char *)bp->b_data + bo, newc); + putushort(bp->b_data + bo, newc); bo += 2; break; case FAT32_MASK: - readcn = getulong((char *)bp->b_data + bo); + readcn = getulong(bp->b_data + bo); readcn &= ~pmp->pm_fatmask; readcn |= newc & pmp->pm_fatmask; - putulong((char *)bp->b_data + bo, readcn); + putulong(bp->b_data + bo, readcn); bo += 4; break; } @@ -833,7 +833,7 @@ freeclusterchain(struct msdosfsmount *pmp, u_long clus usemap_free(pmp, cluster); switch (pmp->pm_fatmask) { case FAT12_MASK: - readcn = getushort((char *)bp->b_data + bo); + readcn = getushort(bp->b_data + bo); if (cluster & 1) { cluster = readcn >> 4; readcn &= 0x000f; @@ -843,15 +843,15 @@ freeclusterchain(struct msdosfsmount *pmp, u_long clus readcn &= 0xf000; readcn |= MSDOSFSFREE & 0xfff; } - putushort((char *)bp->b_data + bo, readcn); + putushort(bp->b_data + bo, readcn); break; case FAT16_MASK: - cluster = getushort((char *)bp->b_data + bo); - putushort((char *)bp->b_data + bo, MSDOSFSFREE); + cluster = getushort(bp->b_data + bo); + putushort(bp->b_data + bo, MSDOSFSFREE); break; case FAT32_MASK: - cluster = getulong((char *)bp->b_data + bo); - putulong((char *)bp->b_data + bo, + cluster = getulong(bp->b_data + bo); + putulong(bp->b_data + bo, (MSDOSFSFREE & FAT32_MASK) | (cluster & ~FAT32_MASK)); break; } @@ -903,9 +903,9 @@ fillinusemap(struct msdosfsmount *pmp) } } if (FAT32(pmp)) - readcn = getulong((char *)bp->b_data + bo); + readcn = getulong(bp->b_data + bo); else - readcn = getushort((char *)bp->b_data + bo); + readcn = getushort(bp->b_data + bo); if (FAT12(pmp) && (cn & 1)) readcn >>= 4; readcn &= pmp->pm_fatmask; From owner-svn-src-all@freebsd.org Wed Aug 21 02:17:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 512A7E6EBB; Wed, 21 Aug 2019 02:17:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Crsc1RkPz4Lx3; Wed, 21 Aug 2019 02:17:40 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 146F1CB49; Wed, 21 Aug 2019 02:17:40 +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 x7L2HdY3090378; Wed, 21 Aug 2019 02:17:39 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7L2Hdjm090377; Wed, 21 Aug 2019 02:17:39 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201908210217.x7L2Hdjm090377@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 21 Aug 2019 02:17:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351320 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 351320 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 02:17:40 -0000 Author: mav Date: Wed Aug 21 02:17:39 2019 New Revision: 351320 URL: https://svnweb.freebsd.org/changeset/base/351320 Log: Formalize NVMe controller consumer life cycle. This fixes possible double call of fail_fn, for example on hot removal. It also allows ctrlr_fn to safely return NULL cookie in case of failure and not get useless ns_fn or fail_fn call with NULL cookie later. MFC after: 2 weeks Modified: head/sys/dev/nvme/nvme.c Modified: head/sys/dev/nvme/nvme.c ============================================================================== --- head/sys/dev/nvme/nvme.c Wed Aug 21 01:45:29 2019 (r351319) +++ head/sys/dev/nvme/nvme.c Wed Aug 21 02:17:39 2019 (r351320) @@ -330,16 +330,21 @@ nvme_notify(struct nvme_consumer *cons, return; cmpset = atomic_cmpset_32(&ctrlr->notification_sent, 0, 1); - if (cmpset == 0) return; if (cons->ctrlr_fn != NULL) ctrlr_cookie = (*cons->ctrlr_fn)(ctrlr); else - ctrlr_cookie = NULL; + ctrlr_cookie = (void *)(uintptr_t)0xdeadc0dedeadc0de; ctrlr->cons_cookie[cons->id] = ctrlr_cookie; + + /* ctrlr_fn has failed. Nothing to notify here any more. */ + if (ctrlr_cookie == NULL) + return; + if (ctrlr->is_failed) { + ctrlr->cons_cookie[cons->id] = NULL; if (cons->fail_fn != NULL) (*cons->fail_fn)(ctrlr_cookie); /* @@ -395,13 +400,16 @@ nvme_notify_async_consumers(struct nvme_controller *ct uint32_t log_page_size) { struct nvme_consumer *cons; + void *ctrlr_cookie; uint32_t i; for (i = 0; i < NVME_MAX_CONSUMERS; i++) { cons = &nvme_consumer[i]; - if (cons->id != INVALID_CONSUMER_ID && cons->async_fn != NULL) - (*cons->async_fn)(ctrlr->cons_cookie[i], async_cpl, + if (cons->id != INVALID_CONSUMER_ID && cons->async_fn != NULL && + (ctrlr_cookie = ctrlr->cons_cookie[i]) != NULL) { + (*cons->async_fn)(ctrlr_cookie, async_cpl, log_page_id, log_page_buffer, log_page_size); + } } } @@ -409,6 +417,7 @@ void nvme_notify_fail_consumers(struct nvme_controller *ctrlr) { struct nvme_consumer *cons; + void *ctrlr_cookie; uint32_t i; /* @@ -422,8 +431,12 @@ nvme_notify_fail_consumers(struct nvme_controller *ctr for (i = 0; i < NVME_MAX_CONSUMERS; i++) { cons = &nvme_consumer[i]; - if (cons->id != INVALID_CONSUMER_ID && cons->fail_fn != NULL) - cons->fail_fn(ctrlr->cons_cookie[i]); + if (cons->id != INVALID_CONSUMER_ID && + (ctrlr_cookie = ctrlr->cons_cookie[i]) != NULL) { + ctrlr->cons_cookie[i] = NULL; + if (cons->fail_fn != NULL) + cons->fail_fn(ctrlr_cookie); + } } } @@ -432,6 +445,7 @@ nvme_notify_ns(struct nvme_controller *ctrlr, int nsid { struct nvme_consumer *cons; struct nvme_namespace *ns = &ctrlr->ns[nsid - 1]; + void *ctrlr_cookie; uint32_t i; if (!ctrlr->is_initialized) @@ -439,9 +453,9 @@ nvme_notify_ns(struct nvme_controller *ctrlr, int nsid for (i = 0; i < NVME_MAX_CONSUMERS; i++) { cons = &nvme_consumer[i]; - if (cons->id != INVALID_CONSUMER_ID && cons->ns_fn != NULL) - ns->cons_cookie[cons->id] = - (*cons->ns_fn)(ns, ctrlr->cons_cookie[cons->id]); + if (cons->id != INVALID_CONSUMER_ID && cons->ns_fn != NULL && + (ctrlr_cookie = ctrlr->cons_cookie[i]) != NULL) + ns->cons_cookie[i] = (*cons->ns_fn)(ns, ctrlr_cookie); } } From owner-svn-src-all@freebsd.org Wed Aug 21 02:21:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 53F45E712A; Wed, 21 Aug 2019 02:21:42 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CryG1c0bz4MH0; Wed, 21 Aug 2019 02:21:42 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 19ED4CBAC; Wed, 21 Aug 2019 02:21:42 +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 x7L2LfnP095731; Wed, 21 Aug 2019 02:21:41 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7L2LeQH095708; Wed, 21 Aug 2019 02:21:40 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908210221.x7L2LeQH095708@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 21 Aug 2019 02:21:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351321 - in head: sys/fs/msdosfs usr.sbin/makefs/msdos X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head: sys/fs/msdosfs usr.sbin/makefs/msdos X-SVN-Commit-Revision: 351321 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 02:21:42 -0000 Author: emaste Date: Wed Aug 21 02:21:40 2019 New Revision: 351321 URL: https://svnweb.freebsd.org/changeset/base/351321 Log: makefs: share fat.h between kernel msdosfs and makefs There is no reason to duplicate this file when it can be trivially shared (just exposing one section previously under #ifdef _KERNEL). Reviewed by: imp, cem MFC with: r351273 Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21346 Deleted: head/usr.sbin/makefs/msdos/fat.h Modified: head/sys/fs/msdosfs/fat.h head/usr.sbin/makefs/msdos/Makefile.inc head/usr.sbin/makefs/msdos/msdosfs_conv.c head/usr.sbin/makefs/msdos/msdosfs_denode.c head/usr.sbin/makefs/msdos/msdosfs_fat.c head/usr.sbin/makefs/msdos/msdosfs_lookup.c head/usr.sbin/makefs/msdos/msdosfs_vfsops.c head/usr.sbin/makefs/msdos/msdosfs_vnops.c Modified: head/sys/fs/msdosfs/fat.h ============================================================================== --- head/sys/fs/msdosfs/fat.h Wed Aug 21 02:17:39 2019 (r351320) +++ head/sys/fs/msdosfs/fat.h Wed Aug 21 02:21:40 2019 (r351321) @@ -82,7 +82,7 @@ #define MSDOSFSEOF(pmp, cn) ((((cn) | ~(pmp)->pm_fatmask) & CLUST_EOFS) == CLUST_EOFS) -#ifdef _KERNEL +#if defined (_KERNEL) || defined(MAKEFS) /* * These are the values for the function argument to the function * fatentry(). @@ -105,5 +105,5 @@ int extendfile(struct denode *dep, u_long count, struc void fc_purge(struct denode *dep, u_int frcn); int markvoldirty(struct msdosfsmount *pmp, int dirty); -#endif /* _KERNEL */ +#endif /* _KERNEL || MAKEFS */ #endif /* !_FS_MSDOSFS_FAT_H_ */ Modified: head/usr.sbin/makefs/msdos/Makefile.inc ============================================================================== --- head/usr.sbin/makefs/msdos/Makefile.inc Wed Aug 21 02:17:39 2019 (r351320) +++ head/usr.sbin/makefs/msdos/Makefile.inc Wed Aug 21 02:21:40 2019 (r351321) @@ -6,7 +6,7 @@ MSDOS_NEWFS= ${SRCTOP}/sbin/newfs_msdos .PATH: ${SRCDIR}/msdos ${MSDOS} ${MSDOS_NEWFS} -CFLAGS+= -I${MSDOS} -I${MSDOS_NEWFS} +CFLAGS+= -DMAKEFS -I${MSDOS} -I${MSDOS_NEWFS} SRCS+= mkfs_msdos.c SRCS+= msdosfs_conv.c msdosfs_denode.c msdosfs_fat.c msdosfs_lookup.c Modified: head/usr.sbin/makefs/msdos/msdosfs_conv.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_conv.c Wed Aug 21 02:17:39 2019 (r351320) +++ head/usr.sbin/makefs/msdos/msdosfs_conv.c Wed Aug 21 02:21:40 2019 (r351321) @@ -62,7 +62,6 @@ __FBSDID("$FreeBSD$"); #include "msdos/denode.h" #include "msdos/direntry.h" -#include "msdos/fat.h" #include "msdos/msdosfsmount.h" static int char8ucs2str(const uint8_t *in, int n, uint16_t *out, int m); Modified: head/usr.sbin/makefs/msdos/msdosfs_denode.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_denode.c Wed Aug 21 02:17:39 2019 (r351320) +++ head/usr.sbin/makefs/msdos/msdosfs_denode.c Wed Aug 21 02:21:40 2019 (r351321) @@ -60,16 +60,16 @@ __FBSDID("$FreeBSD$"); #include #include +#include "msdos/denode.h" +#include "msdos/msdosfsmount.h" +#include #include "makefs.h" #include "msdos.h" #include "ffs/buf.h" -#include "msdos/denode.h" #include "msdos/direntry.h" -#include "msdos/fat.h" -#include "msdos/msdosfsmount.h" /* * If deget() succeeds it returns with the gotten denode locked(). Modified: head/usr.sbin/makefs/msdos/msdosfs_fat.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_fat.c Wed Aug 21 02:17:39 2019 (r351320) +++ head/usr.sbin/makefs/msdos/msdosfs_fat.c Wed Aug 21 02:21:40 2019 (r351321) @@ -59,13 +59,13 @@ #include #include +#include "msdos/denode.h" +#include "msdos/msdosfsmount.h" +#include #include "ffs/buf.h" -#include "msdos/denode.h" #include "msdos/direntry.h" -#include "msdos/fat.h" -#include "msdos/msdosfsmount.h" #include "makefs.h" #include "msdos.h" Modified: head/usr.sbin/makefs/msdos/msdosfs_lookup.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_lookup.c Wed Aug 21 02:17:39 2019 (r351320) +++ head/usr.sbin/makefs/msdos/msdosfs_lookup.c Wed Aug 21 02:21:40 2019 (r351321) @@ -57,13 +57,13 @@ #include #include +#include "msdos/denode.h" +#include "msdos/msdosfsmount.h" +#include #include "ffs/buf.h" -#include "msdos/denode.h" #include "msdos/direntry.h" -#include "msdos/fat.h" -#include "msdos/msdosfsmount.h" #include "makefs.h" #include "msdos.h" Modified: head/usr.sbin/makefs/msdos/msdosfs_vfsops.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_vfsops.c Wed Aug 21 02:17:39 2019 (r351320) +++ head/usr.sbin/makefs/msdos/msdosfs_vfsops.c Wed Aug 21 02:21:40 2019 (r351321) @@ -60,6 +60,9 @@ __FBSDID("$FreeBSD$"); #include #include +#include "msdos/denode.h" +#include "msdos/msdosfsmount.h" +#include #include @@ -68,10 +71,7 @@ __FBSDID("$FreeBSD$"); #include "ffs/buf.h" -#include "msdos/denode.h" #include "msdos/direntry.h" -#include "msdos/fat.h" -#include "msdos/msdosfsmount.h" struct msdosfsmount * msdosfs_mount(struct vnode *devvp) Modified: head/usr.sbin/makefs/msdos/msdosfs_vnops.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_vnops.c Wed Aug 21 02:17:39 2019 (r351320) +++ head/usr.sbin/makefs/msdos/msdosfs_vnops.c Wed Aug 21 02:21:40 2019 (r351321) @@ -63,16 +63,16 @@ __FBSDID("$FreeBSD$"); #include #include +#include "msdos/denode.h" +#include "msdos/msdosfsmount.h" +#include #include "makefs.h" #include "msdos.h" #include "ffs/buf.h" -#include "msdos/denode.h" #include "msdos/direntry.h" -#include "msdos/fat.h" -#include "msdos/msdosfsmount.h" /* * Some general notes: From owner-svn-src-all@freebsd.org Wed Aug 21 02:26:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 56E46E734B; Wed, 21 Aug 2019 02:26:24 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Cs3h1LTtz4Mhb; Wed, 21 Aug 2019 02:26:24 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0FB37CD0D; Wed, 21 Aug 2019 02:26:24 +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 x7L2QNtl096370; Wed, 21 Aug 2019 02:26:23 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7L2QMWe096365; Wed, 21 Aug 2019 02:26:22 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201908210226.x7L2QMWe096365@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Wed, 21 Aug 2019 02:26:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351322 - in head/sys: contrib/ncsw/Peripherals/FM/HC contrib/ncsw/Peripherals/FM/Pcd contrib/ncsw/Peripherals/QM contrib/ncsw/inc/Peripherals contrib/ncsw/user/env dev/dpaa X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: in head/sys: contrib/ncsw/Peripherals/FM/HC contrib/ncsw/Peripherals/FM/Pcd contrib/ncsw/Peripherals/QM contrib/ncsw/inc/Peripherals contrib/ncsw/user/env dev/dpaa X-SVN-Commit-Revision: 351322 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 02:26:24 -0000 Author: jhibbits Date: Wed Aug 21 02:26:22 2019 New Revision: 351322 URL: https://svnweb.freebsd.org/changeset/base/351322 Log: dpaa: Fix warnings in dtsec(4) found by clang These are all trivial warnings that have no real functional change. Modified: head/sys/contrib/ncsw/Peripherals/FM/HC/hc.c head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_cc.c head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.c head/sys/contrib/ncsw/inc/Peripherals/dpaa_ext.h head/sys/contrib/ncsw/user/env/xx.c head/sys/dev/dpaa/if_dtsec_rm.c Modified: head/sys/contrib/ncsw/Peripherals/FM/HC/hc.c ============================================================================== --- head/sys/contrib/ncsw/Peripherals/FM/HC/hc.c Wed Aug 21 02:21:40 2019 (r351321) +++ head/sys/contrib/ncsw/Peripherals/FM/HC/hc.c Wed Aug 21 02:26:22 2019 (r351322) @@ -658,7 +658,7 @@ t_Error FmHcPcdKgSetClsPlan(t_Handle h_FmHc, t_FmPcdKg p_HcFrame->extraReg = HC_HCOR_KG_SCHEME_REGS_MASK; idx = (uint8_t)(i - p_Set->baseEntry); - memcpy(&p_HcFrame->hcSpecificData.clsPlanEntries, &p_Set->vectors[idx], CLS_PLAN_NUM_PER_GRP*sizeof(uint32_t)); + memcpy(__DEVOLATILE(uint32_t *, &p_HcFrame->hcSpecificData.clsPlanEntries), &p_Set->vectors[idx], CLS_PLAN_NUM_PER_GRP*sizeof(uint32_t)); p_HcFrame->commandSequence = seqNum; BUILD_FD(sizeof(t_HcFrame)); Modified: head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_cc.c ============================================================================== --- head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_cc.c Wed Aug 21 02:21:40 2019 (r351321) +++ head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_cc.c Wed Aug 21 02:26:22 2019 (r351322) @@ -895,7 +895,7 @@ static t_Handle BuildNewAd( XX_Free(p_FmPcdCcNodeTmp); - return E_OK; + return NULL; } static t_Error DynamicChangeHc( Modified: head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.c ============================================================================== --- head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.c Wed Aug 21 02:21:40 2019 (r351321) +++ head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.c Wed Aug 21 02:26:22 2019 (r351322) @@ -1478,7 +1478,6 @@ static t_Error CalcWredCurve(t_QmCgWredCurve *p_WredCu } sa = sa/pres; ASSERT_COND(sa<128 && sa>=64); - sn = sn; ASSERT_COND(sn<64 && sn>=7); *p_CurveWord = ((ma << 24) | Modified: head/sys/contrib/ncsw/inc/Peripherals/dpaa_ext.h ============================================================================== --- head/sys/contrib/ncsw/inc/Peripherals/dpaa_ext.h Wed Aug 21 02:21:40 2019 (r351321) +++ head/sys/contrib/ncsw/inc/Peripherals/dpaa_ext.h Wed Aug 21 02:26:22 2019 (r351322) @@ -57,8 +57,12 @@ #include +#ifndef __BYTE_ORDER__ #define __BYTE_ORDER__ BYTE_ORDER +#endif +#ifndef __ORDER_BIG_ENDIAN__ #define __ORDER_BIG_ENDIAN__ BIG_ENDIAN +#endif /**************************************************************************//** @Description Frame descriptor Modified: head/sys/contrib/ncsw/user/env/xx.c ============================================================================== --- head/sys/contrib/ncsw/user/env/xx.c Wed Aug 21 02:21:40 2019 (r351321) +++ head/sys/contrib/ncsw/user/env/xx.c Wed Aug 21 02:26:22 2019 (r351322) @@ -646,7 +646,7 @@ XX_IpcInitSession(char destAddr[XX_IPC_MAX_ADDR_NAME_L /* Should not be called */ printf("NetCommSW: Unimplemented function %s() called!\n", __func__); - return (E_OK); + return (NULL); } t_Error Modified: head/sys/dev/dpaa/if_dtsec_rm.c ============================================================================== --- head/sys/dev/dpaa/if_dtsec_rm.c Wed Aug 21 02:21:40 2019 (r351321) +++ head/sys/dev/dpaa/if_dtsec_rm.c Wed Aug 21 02:26:22 2019 (r351322) @@ -86,10 +86,10 @@ enum dtsec_rm_pool_params { DTSEC_RM_POOL_FI_MAX_SIZE = 256, }; +#define DTSEC_RM_FQR_RX_CHANNEL e_QM_FQ_CHANNEL_POOL1 +#define DTSEC_RM_FQR_TX_CONF_CHANNEL e_QM_FQ_CHANNEL_SWPORTAL0 enum dtsec_rm_fqr_params { - DTSEC_RM_FQR_RX_CHANNEL = e_QM_FQ_CHANNEL_POOL1, DTSEC_RM_FQR_RX_WQ = 1, - DTSEC_RM_FQR_TX_CONF_CHANNEL = e_QM_FQ_CHANNEL_SWPORTAL0, DTSEC_RM_FQR_TX_WQ = 1, DTSEC_RM_FQR_TX_CONF_WQ = 1 }; From owner-svn-src-all@freebsd.org Wed Aug 21 04:54:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 13CD3BA511; Wed, 21 Aug 2019 04:54:49 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46CwLw6l6yz4Tw0; Wed, 21 Aug 2019 04:54:48 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C92CEE852; Wed, 21 Aug 2019 04:54:48 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7L4smKs085104; Wed, 21 Aug 2019 04:54:48 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7L4smIa085103; Wed, 21 Aug 2019 04:54:48 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201908210454.x7L4smIa085103@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Wed, 21 Aug 2019 04:54:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351323 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 351323 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 04:54:49 -0000 Author: mjg Date: Wed Aug 21 04:54:48 2019 New Revision: 351323 URL: https://svnweb.freebsd.org/changeset/base/351323 Log: seqc: predict false for _in_modify and type fixes for _consistent_* seqc_consistent_* return bool, not seqc. [0] While here annotate the rarely true condition - it is expected to run into it on vare occasion (compared to the other case). Reported by: oshogbo [0] Sponsored by: The FreeBSD Foundation Modified: head/sys/sys/seqc.h Modified: head/sys/sys/seqc.h ============================================================================== --- head/sys/sys/seqc.h Wed Aug 21 02:26:22 2019 (r351322) +++ head/sys/sys/seqc.h Wed Aug 21 04:54:48 2019 (r351323) @@ -78,7 +78,7 @@ seqc_read(const seqc_t *seqcp) for (;;) { ret = atomic_load_acq_int(__DECONST(seqc_t *, seqcp)); - if (seqc_in_modify(ret)) { + if (__predict_false(seqc_in_modify(ret))) { cpu_spinwait(); continue; } @@ -88,14 +88,14 @@ seqc_read(const seqc_t *seqcp) return (ret); } -static __inline seqc_t +static __inline bool seqc_consistent_nomb(const seqc_t *seqcp, seqc_t oldseqc) { return (*seqcp == oldseqc); } -static __inline seqc_t +static __inline bool seqc_consistent(const seqc_t *seqcp, seqc_t oldseqc) { From owner-svn-src-all@freebsd.org Wed Aug 21 07:45:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 193B8BE044; Wed, 21 Aug 2019 07:45:40 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46D0836q0Qz4cVX; Wed, 21 Aug 2019 07:45:39 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C758118781; Wed, 21 Aug 2019 07:45:39 +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 x7L7jd6o086483; Wed, 21 Aug 2019 07:45:39 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7L7jd30086482; Wed, 21 Aug 2019 07:45:39 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201908210745.x7L7jd30086482@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Wed, 21 Aug 2019 07:45:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351324 - head/sys/netgraph/bluetooth/drivers/ubt X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sys/netgraph/bluetooth/drivers/ubt X-SVN-Commit-Revision: 351324 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 07:45:40 -0000 Author: delphij Date: Wed Aug 21 07:45:39 2019 New Revision: 351324 URL: https://svnweb.freebsd.org/changeset/base/351324 Log: Fix a panic in ubt_do_hci_request. The 'mtx' is on stack and can contain garbages that would cause mtx_init (and in turn lock_init) to think that the mutex was already initialized. Modified: head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Modified: head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c ============================================================================== --- head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Wed Aug 21 04:54:48 2019 (r351323) +++ head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Wed Aug 21 07:45:39 2019 (r351324) @@ -554,6 +554,7 @@ ubt_do_hci_request(struct usb_device *udev, struct ubt return (USB_ERR_NORMAL_COMPLETION); /* Initialize INTR endpoint xfer and wait for response */ + bzero(&mtx, sizeof(mtx)); mtx_init(&mtx, "ubt pb", NULL, MTX_DEF); error = usbd_transfer_setup(udev, &iface_index, xfer, From owner-svn-src-all@freebsd.org Wed Aug 21 07:59:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C7340BE72D; Wed, 21 Aug 2019 07:59:08 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46D0Rc4nvpz4dBN; Wed, 21 Aug 2019 07:59:08 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io1-f48.google.com with SMTP id i22so2800096ioh.2; Wed, 21 Aug 2019 00:59:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=xeV9Rl8I/2RO3xcFmWHHdmOZfSGRYwVGIFBnr4sw28Y=; b=d3akbUcrDiAtNAZzo4nmnN3HAisovvbqzHn4FkuXiU2htfr0CuIlq3xSXSEKUcnaL8 tOmbmjSetq3UObOcZcsVNvKy/Ua38OJC/H76x2p+9xDhqygIj9S5DTLSN2OtGlnfb0Bu WiyjGDmtaBbTS/tSaFAsxFY33JZLbYkvywRbHx4o0qSjk7N+PW/j8nuiV2ERes8eOdfd CgQcDfrfNAJwYgoLqQPWA/zyFbpnZCCugcpesHFE5ufi3xxx+qrxRyxOeSCmczs9TyQZ UIDpB7TpFOyreZ/lzDn/tLI6QKQ7qk3xTU3xw2Z/zxZIbyFTzerNRTsS3lk6+dB8KoWs m/sg== X-Gm-Message-State: APjAAAVkjSV4yVMiOr2ao/E1lWkC0gXiuWa98wRdTsqFAEl6UK0dlOjP wXcQY2nP1nrQGjn2UbH/agoFlPiP X-Google-Smtp-Source: APXvYqzLk/aeVipYekTC2aCbA3AHhUAmUW9GiJppihpJGq5lHr3f12BkHhQlV+zqbLBmrWMP76xRrQ== X-Received: by 2002:a5e:9701:: with SMTP id w1mr4883879ioj.294.1566374347247; Wed, 21 Aug 2019 00:59:07 -0700 (PDT) Received: from mail-io1-f46.google.com (mail-io1-f46.google.com. [209.85.166.46]) by smtp.gmail.com with ESMTPSA id j16sm19614739iok.34.2019.08.21.00.59.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 21 Aug 2019 00:59:06 -0700 (PDT) Received: by mail-io1-f46.google.com with SMTP id t3so2683837ioj.12; Wed, 21 Aug 2019 00:59:06 -0700 (PDT) X-Received: by 2002:a6b:f216:: with SMTP id q22mr35767399ioh.65.1566374346744; Wed, 21 Aug 2019 00:59:06 -0700 (PDT) MIME-Version: 1.0 References: <201908210745.x7L7jd30086482@repo.freebsd.org> In-Reply-To: <201908210745.x7L7jd30086482@repo.freebsd.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Wed, 21 Aug 2019 00:58:55 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r351324 - head/sys/netgraph/bluetooth/drivers/ubt To: Xin LI Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 46D0Rc4nvpz4dBN X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.97 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 07:59:08 -0000 Hi Xin Li, On Wed, Aug 21, 2019 at 12:45 AM Xin LI wrote: > URL: https://svnweb.freebsd.org/changeset/base/351324 > > Log: > The 'mtx' is on stack and can contain garbages that would cause mtx_init > (and in turn lock_init) to think that the mutex was already initialized. > > --- head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Wed Aug 21 04:54:48 2019 (r351323) > +++ head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Wed Aug 21 07:45:39 2019 (r351324) > @@ -554,6 +554,7 @@ ubt_do_hci_request(struct usb_device *udev, struct ubt > /* Initialize INTR endpoint xfer and wait for response */ > + bzero(&mtx, sizeof(mtx)); > mtx_init(&mtx, "ubt pb", NULL, MTX_DEF); This is usually spelled 'MTX_DEF | MTX_NEW' instead. Best regards, Conrad From owner-svn-src-all@freebsd.org Wed Aug 21 08:01:44 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0148CBF6A1; Wed, 21 Aug 2019 08:01:44 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46D0Vb5rN7z4dbh; Wed, 21 Aug 2019 08:01:43 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ABC3018AC9; Wed, 21 Aug 2019 08:01:43 +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 x7L81hxN097167; Wed, 21 Aug 2019 08:01:43 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7L81hDn097166; Wed, 21 Aug 2019 08:01:43 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201908210801.x7L81hDn097166@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Wed, 21 Aug 2019 08:01:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351325 - head/sys/dev/sound/pci/hda X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sys/dev/sound/pci/hda X-SVN-Commit-Revision: 351325 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 08:01:44 -0000 Author: delphij Date: Wed Aug 21 08:01:43 2019 New Revision: 351325 URL: https://svnweb.freebsd.org/changeset/base/351325 Log: Fix sound on headset jack for ThinkPad T51. Modified: head/sys/dev/sound/pci/hda/hdaa_patches.c Modified: head/sys/dev/sound/pci/hda/hdaa_patches.c ============================================================================== --- head/sys/dev/sound/pci/hda/hdaa_patches.c Wed Aug 21 07:45:39 2019 (r351324) +++ head/sys/dev/sound/pci/hda/hdaa_patches.c Wed Aug 21 08:01:43 2019 (r351325) @@ -429,6 +429,15 @@ hdac_pin_patch(struct hdaa_widget *w) patch = "as=1 seq=15"; break; } + } else if (id == HDA_CODEC_ALC298 && HDA_DEV_MATCH(LENOVO_ALL_SUBVENDOR, subid)) { + switch (nid) { + case 23: + config = 0x03a1103f; + break; + case 33: + config = 0x2121101f; + break; + } } else if (id == HDA_CODEC_ALC298 && subid == DELL_XPS9560_SUBVENDOR) { switch (nid) { case 24: From owner-svn-src-all@freebsd.org Wed Aug 21 08:15:31 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 615CEBFA9D; Wed, 21 Aug 2019 08:15:31 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46D0pW1PZbz4f6R; Wed, 21 Aug 2019 08:15:31 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0E3C218D0B; Wed, 21 Aug 2019 08:15:31 +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 x7L8FUBj004198; Wed, 21 Aug 2019 08:15:30 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7L8FUfq004197; Wed, 21 Aug 2019 08:15:30 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201908210815.x7L8FUfq004197@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Wed, 21 Aug 2019 08:15:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351326 - head/sys/netgraph/bluetooth/drivers/ubt X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sys/netgraph/bluetooth/drivers/ubt X-SVN-Commit-Revision: 351326 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 08:15:31 -0000 Author: delphij Date: Wed Aug 21 08:15:30 2019 New Revision: 351326 URL: https://svnweb.freebsd.org/changeset/base/351326 Log: Use MTX_NEW instead of bzero(). Submitted by: cem Modified: head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Modified: head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c ============================================================================== --- head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Wed Aug 21 08:01:43 2019 (r351325) +++ head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Wed Aug 21 08:15:30 2019 (r351326) @@ -554,8 +554,7 @@ ubt_do_hci_request(struct usb_device *udev, struct ubt return (USB_ERR_NORMAL_COMPLETION); /* Initialize INTR endpoint xfer and wait for response */ - bzero(&mtx, sizeof(mtx)); - mtx_init(&mtx, "ubt pb", NULL, MTX_DEF); + mtx_init(&mtx, "ubt pb", NULL, MTX_DEF | MTX_NEW); error = usbd_transfer_setup(udev, &iface_index, xfer, &ubt_probe_config, 1, evt, &mtx); From owner-svn-src-all@freebsd.org Wed Aug 21 10:42:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8D069C39F6; Wed, 21 Aug 2019 10:42:32 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46D44837RDz3J9D; Wed, 21 Aug 2019 10:42:32 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4CF891A7EC; Wed, 21 Aug 2019 10:42:32 +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 x7LAgWID092352; Wed, 21 Aug 2019 10:42:32 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LAgW17092351; Wed, 21 Aug 2019 10:42:32 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201908211042.x7LAgW17092351@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 21 Aug 2019 10:42:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351327 - head/sys/contrib/dev/ath/ath_hal/ar9300 X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: head/sys/contrib/dev/ath/ath_hal/ar9300 X-SVN-Commit-Revision: 351327 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 10:42:32 -0000 Author: bz Date: Wed Aug 21 10:42:31 2019 New Revision: 351327 URL: https://svnweb.freebsd.org/changeset/base/351327 Log: athhal: disable unused function (big endian only) Disable ar9300_swap_tx_desc() for the moment. It is an unused function only tried to compile on big endian systems. Found by: s390x buildkernel MFC after: 3 months Modified: head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c Modified: head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c ============================================================================== --- head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c Wed Aug 21 08:15:30 2019 (r351326) +++ head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c Wed Aug 21 10:42:31 2019 (r351327) @@ -26,9 +26,11 @@ #include "ar9300/ar9300phy.h" #include "ah_devid.h" +#if 0 #if AH_BYTE_ORDER == AH_BIG_ENDIAN static void ar9300_swap_tx_desc(void *ds); #endif +#endif void ar9300_tx_req_intr_desc(struct ath_hal *ah, void *ds) @@ -174,6 +176,7 @@ ar9300_clear_dest_mask(struct ath_hal *ah, void *ds) } #endif +#if 0 #if AH_BYTE_ORDER == AH_BIG_ENDIAN /* XXX what words need swapping */ /* Swap transmit descriptor */ @@ -192,6 +195,7 @@ ar9300_swap_tx_desc(void *dsp) ds->status7 = __bswap32(ds->status7); ds->status8 = __bswap32(ds->status8); } +#endif #endif From owner-svn-src-all@freebsd.org Wed Aug 21 10:45:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1A1C3C3ABF; Wed, 21 Aug 2019 10:45:29 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46D47X6ghlz3JKb; Wed, 21 Aug 2019 10:45:28 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C25591A7FA; Wed, 21 Aug 2019 10:45:28 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LAjSqK092575; Wed, 21 Aug 2019 10:45:28 GMT (envelope-from rrs@FreeBSD.org) Received: (from rrs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LAjSHb092574; Wed, 21 Aug 2019 10:45:28 GMT (envelope-from rrs@FreeBSD.org) Message-Id: <201908211045.x7LAjSHb092574@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rrs set sender to rrs@FreeBSD.org using -f From: Randall Stewart Date: Wed, 21 Aug 2019 10:45:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351328 - head/sys/netinet/tcp_stacks X-SVN-Group: head X-SVN-Commit-Author: rrs X-SVN-Commit-Paths: head/sys/netinet/tcp_stacks X-SVN-Commit-Revision: 351328 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 10:45:29 -0000 Author: rrs Date: Wed Aug 21 10:45:28 2019 New Revision: 351328 URL: https://svnweb.freebsd.org/changeset/base/351328 Log: Fix an issue when TSO and Rack play together. Basically an retransmission of the initial SYN (with data) would cause us to strip the SYN and decrement/increase offset/len which then caused us a -1 offset and a panic. Reported by: Larry Rosenman (Michael Tuexen helped me debug this at the IETF) Modified: head/sys/netinet/tcp_stacks/rack.c Modified: head/sys/netinet/tcp_stacks/rack.c ============================================================================== --- head/sys/netinet/tcp_stacks/rack.c Wed Aug 21 10:42:31 2019 (r351327) +++ head/sys/netinet/tcp_stacks/rack.c Wed Aug 21 10:45:28 2019 (r351328) @@ -7405,9 +7405,6 @@ again: (tp->t_state == TCPS_SYN_RECEIVED)) flags &= ~TH_SYN; #endif - sb_offset--, len++; - if (sbavail(sb) == 0) - len = 0; } /* * Be careful not to send data and/or FIN on SYN segments. This From owner-svn-src-all@freebsd.org Wed Aug 21 10:54:53 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 92A38C3E17; Wed, 21 Aug 2019 10:54:53 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46D4LP3LK6z3Jky; Wed, 21 Aug 2019 10:54:53 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5479D1A9BB; Wed, 21 Aug 2019 10:54:53 +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 x7LAsrkc098156; Wed, 21 Aug 2019 10:54:53 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LAsqO9098153; Wed, 21 Aug 2019 10:54:52 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201908211054.x7LAsqO9098153@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 21 Aug 2019 10:54:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351329 - head/usr.bin/gprof X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: head/usr.bin/gprof X-SVN-Commit-Revision: 351329 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 10:54:53 -0000 Author: bz Date: Wed Aug 21 10:54:52 2019 New Revision: 351329 URL: https://svnweb.freebsd.org/changeset/base/351329 Log: gprof: disable building of a.out components On arm64, riscv, and s390x disable building of aout components. This allows gprof to build on these architectures which never supported the legacy a.out binary format. Obtained from: s390x branch MFC after: 3 months Modified: head/usr.bin/gprof/Makefile head/usr.bin/gprof/gprof.c head/usr.bin/gprof/gprof.h Modified: head/usr.bin/gprof/Makefile ============================================================================== --- head/usr.bin/gprof/Makefile Wed Aug 21 10:45:28 2019 (r351328) +++ head/usr.bin/gprof/Makefile Wed Aug 21 10:54:52 2019 (r351329) @@ -2,8 +2,14 @@ # $FreeBSD$ PROG= gprof -SRCS= gprof.c aout.c arcs.c dfn.c elf.c lookup.c hertz.c \ +SRCS= gprof.c arcs.c dfn.c elf.c lookup.c hertz.c \ printgprof.c printlist.c kernel.c + +.if ${MACHINE_ARCH} != "aarch64" && ${MACHINE_ARCH} != "riscv" && \ + ${MACHINE_ARCH} != "s390x" +SRCS+= aout.c +CFLAGS+= -DWITH_AOUT +.endif FILES= gprof.flat gprof.callg FILESDIR= ${SHAREDIR}/misc Modified: head/usr.bin/gprof/gprof.c ============================================================================== --- head/usr.bin/gprof/gprof.c Wed Aug 21 10:45:28 2019 (r351328) +++ head/usr.bin/gprof/gprof.c Wed Aug 21 10:54:52 2019 (r351329) @@ -160,8 +160,11 @@ main(int argc, char **argv) * get information from the executable file. */ if ((Kflag && kernel_getnfile(a_outname, &defaultEs) == -1) || - (!Kflag && elf_getnfile(a_outname, &defaultEs) == -1 && - aout_getnfile(a_outname, &defaultEs) == -1)) + (!Kflag && elf_getnfile(a_outname, &defaultEs) == -1 +#ifdef WITH_AOUT + && aout_getnfile(a_outname, &defaultEs) == -1 +#endif + )) errx(1, "%s: bad format", a_outname); /* * sort symbol table. Modified: head/usr.bin/gprof/gprof.h ============================================================================== --- head/usr.bin/gprof/gprof.h Wed Aug 21 10:45:28 2019 (r351328) +++ head/usr.bin/gprof/gprof.h Wed Aug 21 10:54:52 2019 (r351329) @@ -256,7 +256,9 @@ void addarc(nltype *, nltype *, long); bool addcycle(arctype **, arctype **); void addlist(struct stringlist *, char *); void alignentries(void); +#ifdef WITH_AOUT int aout_getnfile(const char *, char ***); +#endif int arccmp(arctype *, arctype *); arctype *arclookup(nltype *, nltype *); void asgnsamples(void); From owner-svn-src-all@freebsd.org Wed Aug 21 11:50:58 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3AA67C518C for ; Wed, 21 Aug 2019 11:50:58 +0000 (UTC) (envelope-from dino@dinomagic.com.sg) Received: from se15i.web-hosting.com (se15i.web-hosting.com [198.54.122.221]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46D5b46Nc0z3Lvv for ; Wed, 21 Aug 2019 11:50:56 +0000 (UTC) (envelope-from dino@dinomagic.com.sg) Received: from [198.54.114.89] (helo=server112.web-hosting.com) by se15.registrar-servers.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.89) (envelope-from ) id 1i0P8V-00018b-El for svn-src-all@freebsd.org; Wed, 21 Aug 2019 04:50:48 -0700 Received: from [41.203.78.223] (port=53916 helo=[172.20.154.217]) by server112.web-hosting.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from ) id 1i0P8J-0049Mf-8F for svn-src-all@freebsd.org; Wed, 21 Aug 2019 07:50:42 -0400 Message-Id: Mime-Version: 1.0 From: Art Duncan To: svn-src-all@freebsd.org Reply-To: artduncan51@gmail.com Subject: ## [News] Request For Quote. ## Date: Mon, 19 Aug 2019 08:23:15 -0600 X-OutGoing-Spam-Status: No, score=8.0 X-Originating-IP: 198.54.114.89 X-SpamExperts-Domain: nctest.net X-SpamExperts-Username: whmcalls3 X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.15) X-Recommended-Action: accept X-Filter-ID: Mvzo4OR0dZXEDF/gcnlw0ZMJr/TGkEWvNJbVmORegSypSDasLI4SayDByyq9LIhVUZbR67CQ7/vm /hHDJU4RXkTNWdUk1Ol2OGx3IfrIJKywOmJyM1qr8uRnWBrbSAGDbLrkcZ5ApZP/uw01mF9vR1hp NYb6O8FwW5foUXK5IKflxHt8uAtQmtzve00dESyd4pWx7WxWFZpsjT/483ewgnBpqZvo8S/Elh6D JFe855CN4NAlGxY6r4hMSxGQ+U5vmqXzXLmFKXUpm1fyauQ1G2NQkviB3lXrBbJ6BndYoQp/atGm SN6m4V7Gg3S4FvW6bJKfOqg1pUHbQwfn45WYaQMAmlPiSl7iQ2ty2njzDhUZIc1SRVp/PO3LdDRV 5xVisZxpoiN6fTRHcryGotUQNxT6OuzBA7gACwVNtshU30672rVlokj9CcZZe4NWxmYt67vW2+RO r1j+zm8pcPbOasvHSLaVrqdcIMxuccrOt8wbDOdTMnvHqOmP4VxBW3PTCJuKmef1JCbmfgcv6zoJ wFcrwQx3GfeoVZltvRi2yTs5Ix7/C9VwqPH/5QpQnZ0BoT+6/6ngnC3zT5MJtpTZ7L69ywUfK1GF yeI4etqXx2iqrJJ80NVlREkpW4CenvdvASJFC/49WOPBr5nlEUI4xLRHve4p4CvPNI1g05P3BJcS HQXS+Mq90YbKbRNbSlb5qKQzGDsk08a4Cl+slik9KbUkTpO2BnfbYChvf4AyO5rOEfwWDMSrp8pz Sh0hxEsJ/8iQN0zxJ5cQMCoazTQHTTMBJ7Uc/AwZadNDySZt+juFRdwCjmNBfCxH/iIrzkbi2Obs Z4D05XSiJp/2r1U14mbjO41FyBEqIaDudcVplPH8iSKMfIsfHa/kvxZQUPdpkV5EWEQ/Qgt+/uAw x0xwI9R4hfTICSvoA8IYXCuI++Wy81M9ObrWDl3UdSN/ixMhY5D0qT1wFY5dqDK/GtcZtCITyfOi nwYynx2WJ3xxrerpaVgFKeINzqmqJKFRvnnmA9a5xIXWLWP5TEF+bN/aB7Qsrlv7oe1QWbXSWuOn OK32OKHH5lr9xXvSM4nM3avg X-Report-Abuse-To: spam@se16.registrar-servers.com X-Rspamd-Queue-Id: 46D5b46Nc0z3Lvv X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of dino@dinomagic.com.sg designates 198.54.122.221 as permitted sender) smtp.mailfrom=dino@dinomagic.com.sg X-Spamd-Result: default: False [-0.26 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[artduncan51@gmail.com]; HAS_XOIP(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:198.54.122.192/26]; MV_CASE(0.50)[]; HAS_ATTACHMENT(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; NEURAL_HAM_SHORT(-0.33)[-0.330,0]; FROM_EQ_ENVFROM(0.00)[]; IP_SCORE(0.07)[ipnet: 198.54.122.0/24(-0.17), asn: 22612(0.58), country: US(-0.05)]; R_DKIM_NA(0.00)[]; DATE_IN_PAST(1.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~,4:~]; MID_RHS_MATCH_FROM(0.00)[]; ASN(0.00)[asn:22612, ipnet:198.54.122.0/24, country:US]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.95)[-0.946,0]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-0.26)[-0.259,0]; MIME_GOOD(-0.10)[multipart/mixed,multipart/alternative,text/plain]; FREEMAIL_REPLYTO(0.00)[gmail.com]; DMARC_NA(0.00)[dinomagic.com.sg]; RCPT_COUNT_ONE(0.00)[1]; REPLYTO_DOM_NEQ_FROM_DOM(0.00)[]; RCVD_TLS_ALL(0.00)[] Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 11:50:58 -0000 Hello, svn-src-all@freebsd=2Eorg Could we get a quote for you to handle our project called Whitetail Springs= ? It is located on Provost road in Whitehall PGH PA=2E This is a project starting next week=2E The specifications have been uploaded to Adobe=2E Please let me know if you have any questions=2E Thank you=2E From owner-svn-src-all@freebsd.org Wed Aug 21 12:49:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 282D9C7C26; Wed, 21 Aug 2019 12:49:13 +0000 (UTC) (envelope-from tijl@freebsd.org) Received: from mailrelay109.isp.belgacom.be (mailrelay109.isp.belgacom.be [195.238.20.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "relay.skynet.be", Issuer "GlobalSign Organization Validation CA - SHA256 - G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46D6tJ2JZ1z3QNy; Wed, 21 Aug 2019 12:49:11 +0000 (UTC) (envelope-from tijl@freebsd.org) X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2CjAgCJPF1d/ygG91FlHAEBAQQBAQc?= =?us-ascii?q?EAQGBVgQBAQsBghdZFFIyFhSNG4YBAYIONQGIBIIfkDUJAQECAQEBAQErDAE?= =?us-ascii?q?BhD8CglkmNwYOAgUBAQUBAgEBBgRthGVCDIVLAQU6HCMQCw4GBAklD0gGE4M?= =?us-ascii?q?jgg4Lq2iENAELAYEIg3eBCgaBNAGMAIF/hCM+hESFYwSURV2WMwmCH4ZojUU?= =?us-ascii?q?nmEaEHpEgkjkigVhNMAiDJ4JOF4hjhUE9AzCNJwEB?= X-IPAS-Result: =?us-ascii?q?A2CjAgCJPF1d/ygG91FlHAEBAQQBAQcEAQGBVgQBAQsBg?= =?us-ascii?q?hdZFFIyFhSNG4YBAYIONQGIBIIfkDUJAQECAQEBAQErDAEBhD8CglkmNwYOA?= =?us-ascii?q?gUBAQUBAgEBBgRthGVCDIVLAQU6HCMQCw4GBAklD0gGE4Mjgg4Lq2iENAELA?= =?us-ascii?q?YEIg3eBCgaBNAGMAIF/hCM+hESFYwSURV2WMwmCH4ZojUUnmEaEHpEgkjkig?= =?us-ascii?q?VhNMAiDJ4JOF4hjhUE9AzCNJwEB?= Received: from 40.6-247-81.adsl-dyn.isp.belgacom.be (HELO kalimero.tijl.coosemans.org) ([81.247.6.40]) by relay.skynet.be with ESMTP; 21 Aug 2019 14:49:09 +0200 Received: from localhost (localhost [127.0.0.1]) by kalimero.tijl.coosemans.org (8.15.2/8.15.2) with ESMTP id x7LCn8rn041401; Wed, 21 Aug 2019 14:49:08 +0200 (CEST) (envelope-from tijl@FreeBSD.org) Date: Wed, 21 Aug 2019 14:49:08 +0200 From: =?UTF-8?B?VMSzbA==?= Coosemans To: Dimitry Andric Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r351253 - in head/contrib/libc++: include src Message-ID: <20190821144908.7137e6bc@FreeBSD.org> In-Reply-To: <201908201739.x7KHdXvv054610@repo.freebsd.org> References: <201908201739.x7KHdXvv054610@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 46D6tJ2JZ1z3QNy X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-2.94 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.991,0]; NEURAL_HAM_SHORT(-0.95)[-0.954,0]; ASN(0.00)[asn:5432, ipnet:195.238.0.0/19, country:BE]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 12:49:13 -0000 On Tue, 20 Aug 2019 17:39:33 +0000 (UTC) Dimitry Andric wrote: > Author: dim > Date: Tue Aug 20 17:39:32 2019 > New Revision: 351253 > URL: https://svnweb.freebsd.org/changeset/base/351253 > > Log: > Pull in r368867 from upstream libc++ trunk (by Marshall Clow): > > Rework recursive_timed_mutex so that it uses __thread_id instead of > using the lower-level __libcpp_thread_id. This is prep for fixing > PR42918. Reviewed as https://reviews.llvm.org/D65895 > > Pull in r368916 from upstream libc++ trunk (by Marshall Clow): > > Fix thread comparison by making sure we never pass our special 'not a > thread' value to the underlying implementation. Fixes PR#42918. > > This should fix std::thread::id::operator==() attempting to call > pthread_equal(3) with zero values. > > Reported by: andrew@tao11.riddles.org.uk > PR: 239038, 239550 > MFC after: 3 days > > Modified: > head/contrib/libc++/include/__threading_support > head/contrib/libc++/include/mutex > head/contrib/libc++/include/thread > head/contrib/libc++/src/mutex.cpp > > Modified: head/contrib/libc++/include/__threading_support > ============================================================================== > --- head/contrib/libc++/include/__threading_support Tue Aug 20 17:00:31 2019 (r351252) > +++ head/contrib/libc++/include/__threading_support Tue Aug 20 17:39:32 2019 (r351253) > @@ -13,6 +13,7 @@ > > #include <__config> > #include > +#include > #include > > #ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER > @@ -392,6 +393,86 @@ int __libcpp_tls_set(__libcpp_tls_key __key, void *__p > } > > #endif // !_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL || _LIBCPP_BUILDING_THREAD_LIBRARY_EXTERNAL > + > +class _LIBCPP_TYPE_VIS thread; This seems to break building Firefox: In file included from /home/root/obj/ports/home/tijl/projects/freebsd/ports/head/www/firefox/work/firefox-68.0.2/media/mtransport/nricectx.cpp:82: In file included from /home/root/obj/ports/home/tijl/projects/freebsd/ports/head/www/firefox/work/firefox-68.0.2/media/mtransport/third_party/nICEr/src/stun/stun_client_ctx.h:41: In file included from /home/root/obj/ports/home/tijl/projects/freebsd/ports/head/www/firefox/work/firefox-68.0.2/media/mtransport/third_party/nICEr/src/stun/stun.h:45: In file included from /usr/include/net/if_var.h:84: /usr/include/sys/lock.h:68:15: error: reference to 'thread' is ambiguous struct thread **owner); ^ /usr/include/sys/lock.h:42:8: note: candidate found by name lookup is 'thread' struct thread; ^ /usr/include/c++/v1/__threading_support:397:24: note: candidate found by name lookup is 'std::__1::thread' class _LIBCPP_TYPE_VIS thread; ^ This "class thread" conflicts with "struct thread" in sys/lock.h. Should everything in sys/lock.h be under #ifdef _KERNEL? From owner-svn-src-all@freebsd.org Wed Aug 21 13:07:58 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E7292C8484; Wed, 21 Aug 2019 13:07:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46D7Hy5sYpz3wnn; Wed, 21 Aug 2019 13:07:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "tensor.andric.com", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: dim) by smtp.freebsd.org (Postfix) with ESMTPSA id 618AF4521; Wed, 21 Aug 2019 13:07:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from [192.168.1.58] (92-111-45-100.static.v4.ziggozakelijk.nl [92.111.45.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 2E063252; Wed, 21 Aug 2019 15:07:57 +0200 (CEST) From: Dimitry Andric Message-Id: Content-Type: multipart/signed; boundary="Apple-Mail=_CF6FB93D-1E70-4E41-974C-55A7A4FCF69D"; protocol="application/pgp-signature"; micalg=pgp-sha1 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: svn commit: r351253 - in head/contrib/libc++: include src Date: Wed, 21 Aug 2019 15:07:56 +0200 In-Reply-To: <20190821144908.7137e6bc@FreeBSD.org> Cc: src-committers , svn-src-all , svn-src-head@freebsd.org, Marshall Clow To: =?utf-8?Q?T=C4=B3l_Coosemans?= References: <201908201739.x7KHdXvv054610@repo.freebsd.org> <20190821144908.7137e6bc@FreeBSD.org> X-Mailer: Apple Mail (2.3445.104.11) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 13:07:59 -0000 --Apple-Mail=_CF6FB93D-1E70-4E41-974C-55A7A4FCF69D Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 On 21 Aug 2019, at 14:49, T=C4=B3l Coosemans wrote: >=20 > On Tue, 20 Aug 2019 17:39:33 +0000 (UTC) Dimitry Andric > wrote: >> Author: dim >> Date: Tue Aug 20 17:39:32 2019 >> New Revision: 351253 >> URL: https://svnweb.freebsd.org/changeset/base/351253 >>=20 >> Log: >> Pull in r368867 from upstream libc++ trunk (by Marshall Clow): >>=20 >> Rework recursive_timed_mutex so that it uses __thread_id instead = of >> using the lower-level __libcpp_thread_id. This is prep for fixing >> PR42918. Reviewed as https://reviews.llvm.org/D65895 >>=20 >> Pull in r368916 from upstream libc++ trunk (by Marshall Clow): >>=20 >> Fix thread comparison by making sure we never pass our special = 'not a >> thread' value to the underlying implementation. Fixes PR#42918. >>=20 >> This should fix std::thread::id::operator=3D=3D() attempting to call >> pthread_equal(3) with zero values. ... > This seems to break building Firefox: >=20 > In file included from = /home/root/obj/ports/home/tijl/projects/freebsd/ports/head/www/firefox/wor= k/firefox-68.0.2/media/mtransport/nricectx.cpp:82: > In file included from = /home/root/obj/ports/home/tijl/projects/freebsd/ports/head/www/firefox/wor= k/firefox-68.0.2/media/mtransport/third_party/nICEr/src/stun/stun_client_c= tx.h:41: > In file included from = /home/root/obj/ports/home/tijl/projects/freebsd/ports/head/www/firefox/wor= k/firefox-68.0.2/media/mtransport/third_party/nICEr/src/stun/stun.h:45: > In file included from /usr/include/net/if_var.h:84: > /usr/include/sys/lock.h:68:15: error: reference to 'thread' is = ambiguous > struct thread **owner); > ^ > /usr/include/sys/lock.h:42:8: note: candidate found by name lookup is = 'thread' > struct thread; > ^ > /usr/include/c++/v1/__threading_support:397:24: note: candidate found = by name > lookup is 'std::__1::thread' > class _LIBCPP_TYPE_VIS thread; > ^ >=20 >=20 > This "class thread" conflicts with "struct thread" in sys/lock.h. > Should everything in sys/lock.h be under #ifdef _KERNEL? Maybe, but is Firefox using "using namespace std;" here? It is a likely explanation for the ambiguity between the global struct thread from sys/lock.h, and std::thread from libc++. -Dimitry --Apple-Mail=_CF6FB93D-1E70-4E41-974C-55A7A4FCF69D Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.2 iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCXV1CLAAKCRCwXqMKLiCW ox00AJ94I76mMSoo1TroHaI8A6k+KaAz9wCfen99CTsq3xdljkYIPUC2ZtXpEEA= =3WIy -----END PGP SIGNATURE----- --Apple-Mail=_CF6FB93D-1E70-4E41-974C-55A7A4FCF69D-- From owner-svn-src-all@freebsd.org Wed Aug 21 13:20:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6AA58C8794; Wed, 21 Aug 2019 13:20:06 +0000 (UTC) (envelope-from tijl@freebsd.org) Received: from mailrelay109.isp.belgacom.be (mailrelay109.isp.belgacom.be [195.238.20.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "relay.skynet.be", Issuer "GlobalSign Organization Validation CA - SHA256 - G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46D7Yx6K45z3xLq; Wed, 21 Aug 2019 13:20:05 +0000 (UTC) (envelope-from tijl@freebsd.org) X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2DQCgC0RF1d/ygG91FlHAEBAQQBAQc?= =?us-ascii?q?EAQGBZ4IYWRRSMhYUhB+IfIYCAYIONQGIBIIfkDUJAQEBMQwBAYQ/AoJZJjg?= =?us-ascii?q?TAgUBAQUBAgEBBgRthGVCDIVLAQUjMyMQCw4GBAICBSECAg9IBhODI4IOC6o?= =?us-ascii?q?3gTKENAELAYUBgQoGgQwojAGBf4QjPoREgwuCWASURZcQCYIfhmiNRSeYRoQ?= =?us-ascii?q?ekSCSOiGBWE0wCIMni0iFQT0DMI0nAQE?= X-IPAS-Result: =?us-ascii?q?A2DQCgC0RF1d/ygG91FlHAEBAQQBAQcEAQGBZ4IYWRRSM?= =?us-ascii?q?hYUhB+IfIYCAYIONQGIBIIfkDUJAQEBMQwBAYQ/AoJZJjgTAgUBAQUBAgEBB?= =?us-ascii?q?gRthGVCDIVLAQUjMyMQCw4GBAICBSECAg9IBhODI4IOC6o3gTKENAELAYUBg?= =?us-ascii?q?QoGgQwojAGBf4QjPoREgwuCWASURZcQCYIfhmiNRSeYRoQekSCSOiGBWE0wC?= =?us-ascii?q?IMni0iFQT0DMI0nAQE?= Received: from 40.6-247-81.adsl-dyn.isp.belgacom.be (HELO kalimero.tijl.coosemans.org) ([81.247.6.40]) by relay.skynet.be with ESMTP; 21 Aug 2019 15:20:05 +0200 Received: from localhost (localhost [127.0.0.1]) by kalimero.tijl.coosemans.org (8.15.2/8.15.2) with ESMTP id x7LDK3Pa041528; Wed, 21 Aug 2019 15:20:03 +0200 (CEST) (envelope-from tijl@FreeBSD.org) Date: Wed, 21 Aug 2019 15:20:03 +0200 From: =?UTF-8?B?VMSzbA==?= Coosemans To: Dimitry Andric Cc: src-committers , svn-src-all , svn-src-head@freebsd.org, Marshall Clow Subject: Re: svn commit: r351253 - in head/contrib/libc++: include src Message-ID: <20190821151949.00c9845c@FreeBSD.org> In-Reply-To: References: <201908201739.x7KHdXvv054610@repo.freebsd.org> <20190821144908.7137e6bc@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 46D7Yx6K45z3xLq X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.94 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TAGGED_RCPT(0.00)[]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.95)[-0.949,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 13:20:06 -0000 On Wed, 21 Aug 2019 15:07:56 +0200 Dimitry Andric wrote: > On 21 Aug 2019, at 14:49, T=C4=B3l Coosemans wrote: >> On Tue, 20 Aug 2019 17:39:33 +0000 (UTC) Dimitry Andric >> wrote: =20 >>> Author: dim >>> Date: Tue Aug 20 17:39:32 2019 >>> New Revision: 351253 >>> URL: https://svnweb.freebsd.org/changeset/base/351253 >>>=20 >>> Log: >>> Pull in r368867 from upstream libc++ trunk (by Marshall Clow): >>>=20 >>> Rework recursive_timed_mutex so that it uses __thread_id instead of >>> using the lower-level __libcpp_thread_id. This is prep for fixing >>> PR42918. Reviewed as https://reviews.llvm.org/D65895 >>>=20 >>> Pull in r368916 from upstream libc++ trunk (by Marshall Clow): >>>=20 >>> Fix thread comparison by making sure we never pass our special 'not a >>> thread' value to the underlying implementation. Fixes PR#42918. >>>=20 >>> This should fix std::thread::id::operator=3D=3D() attempting to call >>> pthread_equal(3) with zero values. =20 > ... >> This seems to break building Firefox: >>=20 >> In file included from /usr/ports/www/firefox/work/firefox-68.0.2/media/m= transport/nricectx.cpp:82: >> In file included from /usr/ports/www/firefox/work/firefox-68.0.2/media/m= transport/third_party/nICEr/src/stun/stun_client_ctx.h:41: >> In file included from /usr/ports/www/firefox/work/firefox-68.0.2/media/m= transport/third_party/nICEr/src/stun/stun.h:45: >> In file included from /usr/include/net/if_var.h:84: >> /usr/include/sys/lock.h:68:15: error: reference to 'thread' is ambiguous >> struct thread **owner); >> ^ >> /usr/include/sys/lock.h:42:8: note: candidate found by name lookup is 't= hread' >> struct thread; >> ^ >> /usr/include/c++/v1/__threading_support:397:24: note: candidate found by= name >> lookup is 'std::__1::thread' >> class _LIBCPP_TYPE_VIS thread; >> ^ >>=20 >> This "class thread" conflicts with "struct thread" in sys/lock.h. >> Should everything in sys/lock.h be under #ifdef _KERNEL? =20 >=20 > Maybe, but is Firefox using "using namespace std;" here? It is a likely > explanation for the ambiguity between the global struct thread from > sys/lock.h, and std::thread from libc++. Yes, several headers in media/mtransport/third_party/nICEr/src start with: #ifdef __cplusplus using namespace std; extern "C" { #endif /* __cplusplus */ From owner-svn-src-all@freebsd.org Wed Aug 21 14:52:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A4180CA7EE; Wed, 21 Aug 2019 14:52:13 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46D9cF3vSGz42mg; Wed, 21 Aug 2019 14:52:13 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5CE901D4FA; Wed, 21 Aug 2019 14:52:13 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LEqDiq036968; Wed, 21 Aug 2019 14:52:13 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LEqDJt036967; Wed, 21 Aug 2019 14:52:13 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908211452.x7LEqDJt036967@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Wed, 21 Aug 2019 14:52:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351330 - head/sbin/ping X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/sbin/ping X-SVN-Commit-Revision: 351330 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 14:52:13 -0000 Author: asomers Date: Wed Aug 21 14:52:12 2019 New Revision: 351330 URL: https://svnweb.freebsd.org/changeset/base/351330 Log: ping: do reverse DNS lookup of the target address When printing replies, ping will now attempt a reverse DNS lookup of the target. That can be suppressed by using the "-n" option. Curiously, ping has always done reverse lookups in certain error paths, but never in the success path. Submitted by: Ján Sučan MFC after: 2 weeks Sponsored by: Google LLC (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21351 Modified: head/sbin/ping/ping.c Modified: head/sbin/ping/ping.c ============================================================================== --- head/sbin/ping/ping.c Wed Aug 21 10:54:52 2019 (r351329) +++ head/sbin/ping/ping.c Wed Aug 21 14:52:12 2019 (r351330) @@ -1168,8 +1168,7 @@ pr_pack(char *buf, int cc, struct sockaddr_in *from, s (void)write(STDOUT_FILENO, &BSPACE, 1); else { (void)printf("%d bytes from %s: icmp_seq=%u", cc, - inet_ntoa(*(struct in_addr *)&from->sin_addr.s_addr), - seq); + pr_addr(from->sin_addr), seq); (void)printf(" ttl=%d", ip->ip_ttl); if (timing) (void)printf(" time=%.3f ms", triptime); From owner-svn-src-all@freebsd.org Wed Aug 21 15:52:11 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 58A7FCBFE6; Wed, 21 Aug 2019 15:52:11 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DBxR1hmmz46NZ; Wed, 21 Aug 2019 15:52:11 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1BEC01DFF6; Wed, 21 Aug 2019 15:52:11 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LFqAtC073931; Wed, 21 Aug 2019 15:52:10 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LFqAKP073930; Wed, 21 Aug 2019 15:52:10 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211552.x7LFqAKP073930@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 15:52:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351331 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 351331 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 15:52:11 -0000 Author: markj Date: Wed Aug 21 15:52:10 2019 New Revision: 351331 URL: https://svnweb.freebsd.org/changeset/base/351331 Log: Don't requeue active pages in vm_swapout_object_deactivate_pages(). As of r332974 the page daemon does not requeue pages during a scan of the active queue, so there is not much value in doing so here either. Reviewed by: alc, dougm, kib MFC after: 1 week Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21343 Modified: head/sys/vm/vm_swapout.c Modified: head/sys/vm/vm_swapout.c ============================================================================== --- head/sys/vm/vm_swapout.c Wed Aug 21 14:52:12 2019 (r351330) +++ head/sys/vm/vm_swapout.c Wed Aug 21 15:52:10 2019 (r351331) @@ -226,20 +226,22 @@ vm_swapout_object_deactivate_pages(pmap_t pmap, vm_obj vm_page_activate(p); p->act_count += act_delta; } else if (vm_page_active(p)) { + /* + * The page daemon does not requeue pages + * after modifying their activation count. + */ if (act_delta == 0) { p->act_count -= min(p->act_count, ACT_DECLINE); if (!remove_mode && p->act_count == 0) { pmap_remove_all(p); vm_page_deactivate(p); - } else - vm_page_requeue(p); + } } else { vm_page_activate(p); if (p->act_count < ACT_MAX - ACT_ADVANCE) p->act_count += ACT_ADVANCE; - vm_page_requeue(p); } } else if (vm_page_inactive(p)) pmap_remove_all(p); From owner-svn-src-all@freebsd.org Wed Aug 21 15:52:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 462EDCC04C; Wed, 21 Aug 2019 15:52:41 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46DBy07392z46XT; Wed, 21 Aug 2019 15:52:40 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id x7LFqVVi064194 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Wed, 21 Aug 2019 18:52:34 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua x7LFqVVi064194 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id x7LFqVQ7064193; Wed, 21 Aug 2019 18:52:31 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 21 Aug 2019 18:52:31 +0300 From: Konstantin Belousov To: =?utf-8?Q?T=C4=B3l?= Coosemans Cc: Dimitry Andric , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r351253 - in head/contrib/libc++: include src Message-ID: <20190821155231.GQ71821@kib.kiev.ua> References: <201908201739.x7KHdXvv054610@repo.freebsd.org> <20190821144908.7137e6bc@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190821144908.7137e6bc@FreeBSD.org> User-Agent: Mutt/1.12.1 (2019-06-15) X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tom.home X-Rspamd-Queue-Id: 46DBy07392z46XT X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.90 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.994,0]; NEURAL_HAM_SHORT(-0.90)[-0.901,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 15:52:41 -0000 On Wed, Aug 21, 2019 at 02:49:08PM +0200, Tijl Coosemans wrote: > On Tue, 20 Aug 2019 17:39:33 +0000 (UTC) Dimitry Andric > wrote: > > Author: dim > > Date: Tue Aug 20 17:39:32 2019 > > New Revision: 351253 > > URL: https://svnweb.freebsd.org/changeset/base/351253 > > > > Log: > > Pull in r368867 from upstream libc++ trunk (by Marshall Clow): > > > > Rework recursive_timed_mutex so that it uses __thread_id instead of > > using the lower-level __libcpp_thread_id. This is prep for fixing > > PR42918. Reviewed as https://reviews.llvm.org/D65895 > > > > Pull in r368916 from upstream libc++ trunk (by Marshall Clow): > > > > Fix thread comparison by making sure we never pass our special 'not a > > thread' value to the underlying implementation. Fixes PR#42918. > > > > This should fix std::thread::id::operator==() attempting to call > > pthread_equal(3) with zero values. > > > > Reported by: andrew@tao11.riddles.org.uk > > PR: 239038, 239550 > > MFC after: 3 days > > > > Modified: > > head/contrib/libc++/include/__threading_support > > head/contrib/libc++/include/mutex > > head/contrib/libc++/include/thread > > head/contrib/libc++/src/mutex.cpp > > > > Modified: head/contrib/libc++/include/__threading_support > > ============================================================================== > > --- head/contrib/libc++/include/__threading_support Tue Aug 20 17:00:31 2019 (r351252) > > +++ head/contrib/libc++/include/__threading_support Tue Aug 20 17:39:32 2019 (r351253) > > @@ -13,6 +13,7 @@ > > > > #include <__config> > > #include > > +#include > > #include > > > > #ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER > > @@ -392,6 +393,86 @@ int __libcpp_tls_set(__libcpp_tls_key __key, void *__p > > } > > > > #endif // !_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL || _LIBCPP_BUILDING_THREAD_LIBRARY_EXTERNAL > > + > > +class _LIBCPP_TYPE_VIS thread; > > This seems to break building Firefox: > > In file included from /home/root/obj/ports/home/tijl/projects/freebsd/ports/head/www/firefox/work/firefox-68.0.2/media/mtransport/nricectx.cpp:82: > In file included from /home/root/obj/ports/home/tijl/projects/freebsd/ports/head/www/firefox/work/firefox-68.0.2/media/mtransport/third_party/nICEr/src/stun/stun_client_ctx.h:41: > In file included from /home/root/obj/ports/home/tijl/projects/freebsd/ports/head/www/firefox/work/firefox-68.0.2/media/mtransport/third_party/nICEr/src/stun/stun.h:45: > In file included from /usr/include/net/if_var.h:84: > /usr/include/sys/lock.h:68:15: error: reference to 'thread' is ambiguous > struct thread **owner); > ^ > /usr/include/sys/lock.h:42:8: note: candidate found by name lookup is 'thread' > struct thread; > ^ > /usr/include/c++/v1/__threading_support:397:24: note: candidate found by name > lookup is 'std::__1::thread' > class _LIBCPP_TYPE_VIS thread; > ^ > > > This "class thread" conflicts with "struct thread" in sys/lock.h. > Should everything in sys/lock.h be under #ifdef _KERNEL? Why does firefox pulls if_var.h at all ? (As I understand, this is how the pollution occurs.) From owner-svn-src-all@freebsd.org Wed Aug 21 16:01:17 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ECFA4CC452; Wed, 21 Aug 2019 16:01:17 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DC7x5J93z477j; Wed, 21 Aug 2019 16:01:17 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 936911E067; Wed, 21 Aug 2019 16:01:17 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LG1Hs4076084; Wed, 21 Aug 2019 16:01:17 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LG1HLd076083; Wed, 21 Aug 2019 16:01:17 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211601.x7LG1HLd076083@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 16:01:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351332 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 351332 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:01:18 -0000 Author: markj Date: Wed Aug 21 16:01:17 2019 New Revision: 351332 URL: https://svnweb.freebsd.org/changeset/base/351332 Log: Unconditionally enable debug.vm_lowmem. It is useful for testing purposes to be able to drain UMA caches, so do not limit the sysctl to DIAGNOSTIC kernels. MFC after: 1 week Sponsored by: Netflix Modified: head/sys/vm/vm_kern.c Modified: head/sys/vm/vm_kern.c ============================================================================== --- head/sys/vm/vm_kern.c Wed Aug 21 15:52:10 2019 (r351331) +++ head/sys/vm/vm_kern.c Wed Aug 21 16:01:17 2019 (r351332) @@ -839,7 +839,6 @@ kmem_bootstrap_free(vm_offset_t start, vm_size_t size) #endif } -#ifdef DIAGNOSTIC /* * Allow userspace to directly trigger the VM drain routine for testing * purposes. @@ -862,4 +861,3 @@ debug_vm_lowmem(SYSCTL_HANDLER_ARGS) SYSCTL_PROC(_debug, OID_AUTO, vm_lowmem, CTLTYPE_INT | CTLFLAG_RW, 0, 0, debug_vm_lowmem, "I", "set to trigger vm_lowmem event with given flags"); -#endif From owner-svn-src-all@freebsd.org Wed Aug 21 16:02:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1D7FDCC65F; Wed, 21 Aug 2019 16:02:01 +0000 (UTC) (envelope-from mclow.lists@gmail.com) Received: from mail-vs1-xe29.google.com (mail-vs1-xe29.google.com [IPv6:2607:f8b0:4864:20::e29]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DC8m71Dpz47P4; Wed, 21 Aug 2019 16:02:00 +0000 (UTC) (envelope-from mclow.lists@gmail.com) Received: by mail-vs1-xe29.google.com with SMTP id i128so1720020vsc.7; Wed, 21 Aug 2019 09:02:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5UdbzTow5/mXNO03bJS7WeaJSWN9Eht+8sSN+1eDm88=; b=I5bU7Co3IszA01oTHzkxhpfyOlT/y0rO2SpJIAEkwphGPJzPY2cCJWJ9x/AUUnU8XO mkUCSm4JMgw8Q66PHdz0sgqf92OS9hBTE3ws6IANVRlpBvCypDn+8pygSE+x3g/sFLAr HFVniXbG5KBIORi8aSQL+EQbR5qwXU86ibDA+DtJmplpWCn8ozpj7pGi0alk+MmP0khd GDpFim9PjftdTHJfWfl3nJNeBSvPVrYR167rJcDejOms4KM9uLxaOhmQUgUZNZquOo/f v7PxW2/JZcrVXQFjIsZMeSRpO0WSydE/DCwPn164e6a+fhk2rijAq8HJLGerYH28PtcT o4Ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5UdbzTow5/mXNO03bJS7WeaJSWN9Eht+8sSN+1eDm88=; b=TP9TS5Q4J/D3tUTHoKZlkRel+mE7IG0/BANRkJ6XITOMxdFCqrqeM2HCZzoOeyyuLK M5OrFYW7i+OKtLDAxAsXGJeOheeSputdKw5SfI8LygnWYb1sBl3U+sC7mei9eBvyGA7Y JlDgVvbZA9tS72Hyy7Rk/LJNundt0wUVwWmBc4yn8h2hGa8VdND6qcvcCLs8qQJd3Php 5cNrV1p2DBoRTx96VDddeIF/REElaQCKRieNjpCpup9AJ9K6NWgWoyWUpr9kT+ycgEW1 Ry5lBB31B3/CBHLTKvPp+QjktPe8sIGevqJmPzXGAffLBt6RsdNVh/VRLJ+qnMdGq/T+ ShqA== X-Gm-Message-State: APjAAAUgBf4VMcLYmiXo9eJYVkElbbtaNvZztwcj5cMV9mexeXbX5MAN HHcfXxVzyp5BeJwVEFRLA16LAzzR5F5TK1W2EFENdQ== X-Google-Smtp-Source: APXvYqx93Z/Aij0qB53lKm2I1/PVex3dS9dsFDVrX8gUMHoNpwvAMVb37Pd5AFZeniKVTiErEIP/k55PBNVdcLFauB8= X-Received: by 2002:a67:fc14:: with SMTP id o20mr14403200vsq.160.1566403319556; Wed, 21 Aug 2019 09:01:59 -0700 (PDT) MIME-Version: 1.0 References: <201908201739.x7KHdXvv054610@repo.freebsd.org> <20190821144908.7137e6bc@FreeBSD.org> <20190821151949.00c9845c@FreeBSD.org> In-Reply-To: <20190821151949.00c9845c@FreeBSD.org> From: Marshall Clow Date: Wed, 21 Aug 2019 09:01:48 -0700 Message-ID: Subject: Re: svn commit: r351253 - in head/contrib/libc++: include src To: =?UTF-8?Q?T=C4=B3l_Coosemans?= Cc: Dimitry Andric , src-committers , svn-src-all , svn-src-head@freebsd.org X-Rspamd-Queue-Id: 46DC8m71Dpz47P4 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.982,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[] Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:02:01 -0000 On Wed, Aug 21, 2019 at 6:20 AM T=C4=B3l Coosemans wrote= : > On Wed, 21 Aug 2019 15:07:56 +0200 Dimitry Andric > wrote: > > On 21 Aug 2019, at 14:49, T=C4=B3l Coosemans wrote: > >> On Tue, 20 Aug 2019 17:39:33 +0000 (UTC) Dimitry Andric > >> wrote: > >>> Author: dim > >>> Date: Tue Aug 20 17:39:32 2019 > >>> New Revision: 351253 > >>> URL: https://svnweb.freebsd.org/changeset/base/351253 > >>> > >>> Log: > >>> Pull in r368867 from upstream libc++ trunk (by Marshall Clow): > >>> > >>> Rework recursive_timed_mutex so that it uses __thread_id instead o= f > >>> using the lower-level __libcpp_thread_id. This is prep for fixing > >>> PR42918. Reviewed as https://reviews.llvm.org/D65895 > >>> > >>> Pull in r368916 from upstream libc++ trunk (by Marshall Clow): > >>> > >>> Fix thread comparison by making sure we never pass our special 'no= t > a > >>> thread' value to the underlying implementation. Fixes PR#42918. > >>> > >>> This should fix std::thread::id::operator=3D=3D() attempting to call > >>> pthread_equal(3) with zero values. > > ... > >> This seems to break building Firefox: > >> > >> In file included from > /usr/ports/www/firefox/work/firefox-68.0.2/media/mtransport/nricectx.cpp:= 82: > >> In file included from > /usr/ports/www/firefox/work/firefox-68.0.2/media/mtransport/third_party/n= ICEr/src/stun/stun_client_ctx.h:41: > >> In file included from > /usr/ports/www/firefox/work/firefox-68.0.2/media/mtransport/third_party/n= ICEr/src/stun/stun.h:45: > >> In file included from /usr/include/net/if_var.h:84: > >> /usr/include/sys/lock.h:68:15: error: reference to 'thread' is ambiguo= us > >> struct thread **owner); > >> ^ > >> /usr/include/sys/lock.h:42:8: note: candidate found by name lookup is > 'thread' > >> struct thread; > >> ^ > >> /usr/include/c++/v1/__threading_support:397:24: note: candidate found > by name > >> lookup is 'std::__1::thread' > >> class _LIBCPP_TYPE_VIS thread; > >> ^ > >> > >> This "class thread" conflicts with "struct thread" in sys/lock.h. > >> Should everything in sys/lock.h be under #ifdef _KERNEL? > > > > Maybe, but is Firefox using "using namespace std;" here? It is a likel= y > > explanation for the ambiguity between the global struct thread from > > sys/lock.h, and std::thread from libc++. > > Yes, several headers in media/mtransport/third_party/nICEr/src start > with: > > #ifdef __cplusplus > using namespace std; > extern "C" { > #endif /* __cplusplus */ > libc++ has always had a `std::thread` struct. The change here is that forward declaration moved from to <__threading_support>, and that was included by . -- Marshall From owner-svn-src-all@freebsd.org Wed Aug 21 16:11:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F0793CCB70; Wed, 21 Aug 2019 16:11:13 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DCMP66CCz47qg; Wed, 21 Aug 2019 16:11:13 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B3CEF1E225; Wed, 21 Aug 2019 16:11:13 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LGBD2T081908; Wed, 21 Aug 2019 16:11:13 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LGBD8Z081905; Wed, 21 Aug 2019 16:11:13 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211611.x7LGBD8Z081905@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 16:11:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351333 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 351333 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:11:14 -0000 Author: markj Date: Wed Aug 21 16:11:12 2019 New Revision: 351333 URL: https://svnweb.freebsd.org/changeset/base/351333 Log: Simplify vm_page_dequeue() and fix an assertion. - Add a vm_pagequeue_remove() function to physically remove a page from its queue and update the queue length. - Remove vm_page_pagequeue_lockptr() and let vm_page_pagequeue() return NULL for dequeued pages. - Avoid unnecessarily reloading the queue index if vm_page_dequeue() loses a race with a concurrent queue operation. - Correct an always-true assertion: vm_page_dequeue() may be called from the page allocator with the page unlocked. The assertion m->order == VM_NFREEORDER simply tests whether the page has been removed from the vm_phys free lists; instead, check whether the page belongs to an object. Reviewed by: kib MFC after: 1 week Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21341 Modified: head/sys/vm/vm_page.c head/sys/vm/vm_page.h head/sys/vm/vm_pagequeue.h Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Wed Aug 21 16:01:17 2019 (r351332) +++ head/sys/vm/vm_page.c Wed Aug 21 16:11:12 2019 (r351333) @@ -3056,21 +3056,15 @@ vm_waitpfault(struct domainset *dset, int timo) mtx_unlock(&vm_domainset_lock); } -struct vm_pagequeue * +static struct vm_pagequeue * vm_page_pagequeue(vm_page_t m) { - return (&vm_pagequeue_domain(m)->vmd_pagequeues[m->queue]); -} - -static struct mtx * -vm_page_pagequeue_lockptr(vm_page_t m) -{ uint8_t queue; if ((queue = atomic_load_8(&m->queue)) == PQ_NONE) return (NULL); - return (&vm_pagequeue_domain(m)->vmd_pagequeues[queue].pq_mutex); + return (&vm_pagequeue_domain(m)->vmd_pagequeues[queue]); } static inline void @@ -3093,10 +3087,8 @@ vm_pqbatch_process_page(struct vm_pagequeue *pq, vm_pa m, pq, qflags)); if ((qflags & PGA_DEQUEUE) != 0) { - if (__predict_true((qflags & PGA_ENQUEUED) != 0)) { - TAILQ_REMOVE(&pq->pq_pl, m, plinks.q); - vm_pagequeue_cnt_dec(pq); - } + if (__predict_true((qflags & PGA_ENQUEUED) != 0)) + vm_pagequeue_remove(pq, m); vm_page_dequeue_complete(m); } else if ((qflags & (PGA_REQUEUE | PGA_REQUEUE_HEAD)) != 0) { if ((qflags & PGA_ENQUEUED) != 0) @@ -3299,16 +3291,14 @@ vm_page_dequeue_deferred_free(vm_page_t m) void vm_page_dequeue(vm_page_t m) { - struct mtx *lock, *lock1; - struct vm_pagequeue *pq; + struct vm_pagequeue *pq, *pq1; uint8_t aflags; - KASSERT(mtx_owned(vm_page_lockptr(m)) || m->order == VM_NFREEORDER, + KASSERT(mtx_owned(vm_page_lockptr(m)) || m->object == NULL, ("page %p is allocated and unlocked", m)); - for (;;) { - lock = vm_page_pagequeue_lockptr(m); - if (lock == NULL) { + for (pq = vm_page_pagequeue(m);; pq = pq1) { + if (pq == NULL) { /* * A thread may be concurrently executing * vm_page_dequeue_complete(). Ensure that all queue @@ -3327,27 +3317,24 @@ vm_page_dequeue(vm_page_t m) * critical section. */ cpu_spinwait(); + pq1 = vm_page_pagequeue(m); continue; } - mtx_lock(lock); - if ((lock1 = vm_page_pagequeue_lockptr(m)) == lock) + vm_pagequeue_lock(pq); + if ((pq1 = vm_page_pagequeue(m)) == pq) break; - mtx_unlock(lock); - lock = lock1; + vm_pagequeue_unlock(pq); } - KASSERT(lock == vm_page_pagequeue_lockptr(m), + KASSERT(pq == vm_page_pagequeue(m), ("%s: page %p migrated directly between queues", __func__, m)); KASSERT((m->aflags & PGA_DEQUEUE) != 0 || mtx_owned(vm_page_lockptr(m)), ("%s: queued unlocked page %p", __func__, m)); - if ((m->aflags & PGA_ENQUEUED) != 0) { - pq = vm_page_pagequeue(m); - TAILQ_REMOVE(&pq->pq_pl, m, plinks.q); - vm_pagequeue_cnt_dec(pq); - } + if ((m->aflags & PGA_ENQUEUED) != 0) + vm_pagequeue_remove(pq, m); vm_page_dequeue_complete(m); - mtx_unlock(lock); + vm_pagequeue_unlock(pq); } /* Modified: head/sys/vm/vm_page.h ============================================================================== --- head/sys/vm/vm_page.h Wed Aug 21 16:01:17 2019 (r351332) +++ head/sys/vm/vm_page.h Wed Aug 21 16:11:12 2019 (r351333) @@ -552,7 +552,6 @@ void vm_page_launder(vm_page_t m); vm_page_t vm_page_lookup (vm_object_t, vm_pindex_t); vm_page_t vm_page_next(vm_page_t m); int vm_page_pa_tryrelock(pmap_t, vm_paddr_t, vm_paddr_t *); -struct vm_pagequeue *vm_page_pagequeue(vm_page_t m); vm_page_t vm_page_prev(vm_page_t m); bool vm_page_ps_test(vm_page_t m, int flags, vm_page_t skip_m); void vm_page_putfake(vm_page_t m); Modified: head/sys/vm/vm_pagequeue.h ============================================================================== --- head/sys/vm/vm_pagequeue.h Wed Aug 21 16:01:17 2019 (r351332) +++ head/sys/vm/vm_pagequeue.h Wed Aug 21 16:11:12 2019 (r351333) @@ -199,6 +199,14 @@ vm_pagequeue_cnt_add(struct vm_pagequeue *pq, int adde #define vm_pagequeue_cnt_dec(pq) vm_pagequeue_cnt_add((pq), -1) static inline void +vm_pagequeue_remove(struct vm_pagequeue *pq, vm_page_t m) +{ + + TAILQ_REMOVE(&pq->pq_pl, m, plinks.q); + vm_pagequeue_cnt_dec(pq); +} + +static inline void vm_batchqueue_init(struct vm_batchqueue *bq) { From owner-svn-src-all@freebsd.org Wed Aug 21 16:15:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E0554CCC53; Wed, 21 Aug 2019 16:15:07 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DCRv5bYcz48CG; Wed, 21 Aug 2019 16:15:07 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A19FA1E3B9; Wed, 21 Aug 2019 16:15:07 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LGF7Ji086559; Wed, 21 Aug 2019 16:15:07 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LGF7cX086558; Wed, 21 Aug 2019 16:15:07 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211615.x7LGF7cX086558@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 16:15:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351334 - stable/12/sys/sys X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/sys X-SVN-Commit-Revision: 351334 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:15:07 -0000 Author: markj Date: Wed Aug 21 16:15:07 2019 New Revision: 351334 URL: https://svnweb.freebsd.org/changeset/base/351334 Log: MFC r350458: Use VNASSERT() in checked VOP wrappers. Modified: stable/12/sys/sys/vnode.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/sys/vnode.h ============================================================================== --- stable/12/sys/sys/vnode.h Wed Aug 21 16:11:12 2019 (r351333) +++ stable/12/sys/sys/vnode.h Wed Aug 21 16:15:07 2019 (r351334) @@ -826,27 +826,30 @@ void vop_rename_fail(struct vop_rename_args *ap); #define VOP_LOCK(vp, flags) VOP_LOCK1(vp, flags, __FILE__, __LINE__) -#ifdef INVARIANTS +#ifdef INVARIANTS #define VOP_ADD_WRITECOUNT_CHECKED(vp, cnt) \ do { \ int error_; \ \ error_ = VOP_ADD_WRITECOUNT((vp), (cnt)); \ - MPASS(error_ == 0); \ + VNASSERT(error_ == 0, (vp), ("VOP_ADD_WRITECOUNT returned %d", \ + error_)); \ } while (0) #define VOP_SET_TEXT_CHECKED(vp) \ do { \ int error_; \ \ error_ = VOP_SET_TEXT((vp)); \ - MPASS(error_ == 0); \ + VNASSERT(error_ == 0, (vp), ("VOP_SET_TEXT returned %d", \ + error_)); \ } while (0) #define VOP_UNSET_TEXT_CHECKED(vp) \ do { \ int error_; \ \ error_ = VOP_UNSET_TEXT((vp)); \ - MPASS(error_ == 0); \ + VNASSERT(error_ == 0, (vp), ("VOP_UNSET_TEXT returned %d", \ + error_)); \ } while (0) #else #define VOP_ADD_WRITECOUNT_CHECKED(vp, cnt) VOP_ADD_WRITECOUNT((vp), (cnt)) From owner-svn-src-all@freebsd.org Wed Aug 21 16:15:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 39627CCCBF; Wed, 21 Aug 2019 16:15:41 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DCSY0hZ1z48KL; Wed, 21 Aug 2019 16:15:41 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ED6621E3BA; Wed, 21 Aug 2019 16:15:40 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LGFeAe086635; Wed, 21 Aug 2019 16:15:40 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LGFekF086634; Wed, 21 Aug 2019 16:15:40 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211615.x7LGFekF086634@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 16:15:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351335 - stable/12/sbin/iscontrol X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sbin/iscontrol X-SVN-Commit-Revision: 351335 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:15:41 -0000 Author: markj Date: Wed Aug 21 16:15:40 2019 New Revision: 351335 URL: https://svnweb.freebsd.org/changeset/base/351335 Log: MFC r350779: Fix formatting. PR: 239726 Modified: stable/12/sbin/iscontrol/iscontrol.8 Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/iscontrol/iscontrol.8 ============================================================================== --- stable/12/sbin/iscontrol/iscontrol.8 Wed Aug 21 16:15:07 2019 (r351334) +++ stable/12/sbin/iscontrol/iscontrol.8 Wed Aug 21 16:15:40 2019 (r351335) @@ -129,7 +129,7 @@ RFC 3720 The .Nm utility appeared in -Fx 7.0 . +.Fx 7.0 . .Sh BUGS .Nm should probably load the iscsi_initiator module if needed. From owner-svn-src-all@freebsd.org Wed Aug 21 16:16:18 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 075D6CCD53; Wed, 21 Aug 2019 16:16:18 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DCTF613xz48Rb; Wed, 21 Aug 2019 16:16:17 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AF7221E3BC; Wed, 21 Aug 2019 16:16:17 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LGGH2U086723; Wed, 21 Aug 2019 16:16:17 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LGGHZC086722; Wed, 21 Aug 2019 16:16:17 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211616.x7LGGHZC086722@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 16:16:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351336 - stable/12/usr.sbin/mountd X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/usr.sbin/mountd X-SVN-Commit-Revision: 351336 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:16:18 -0000 Author: markj Date: Wed Aug 21 16:16:17 2019 New Revision: 351336 URL: https://svnweb.freebsd.org/changeset/base/351336 Log: MFC r350780: Add a reference to the NFSv3 RFC. PR: 239721 Modified: stable/12/usr.sbin/mountd/mountd.8 Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/mountd/mountd.8 ============================================================================== --- stable/12/usr.sbin/mountd/mountd.8 Wed Aug 21 16:15:40 2019 (r351335) +++ stable/12/usr.sbin/mountd/mountd.8 Wed Aug 21 16:16:17 2019 (r351336) @@ -28,7 +28,7 @@ .\" @(#)mountd.8 8.4 (Berkeley) 4/28/95 .\" $FreeBSD$ .\" -.Dd October 24, 2016 +.Dd August 1, 2019 .Dt MOUNTD 8 .Os .Sh NAME @@ -54,7 +54,7 @@ server specification; see .%T "Network File System Protocol Specification" , RFC1094, Appendix A and .%T "NFS: Network File System Version 3 Protocol Specification" , -Appendix I. +RFC1813, Appendix I. .Pp The following options are available: .Bl -tag -width indent From owner-svn-src-all@freebsd.org Wed Aug 21 16:16:53 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A95C6CCE5E; Wed, 21 Aug 2019 16:16:53 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DCTx3y6Kz48g7; Wed, 21 Aug 2019 16:16:53 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 693841E3CA; Wed, 21 Aug 2019 16:16:53 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LGGrsM086804; Wed, 21 Aug 2019 16:16:53 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LGGrSa086803; Wed, 21 Aug 2019 16:16:53 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211616.x7LGGrSa086803@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 16:16:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351337 - stable/12/usr.bin/whois X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/usr.bin/whois X-SVN-Commit-Revision: 351337 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:16:53 -0000 Author: markj Date: Wed Aug 21 16:16:52 2019 New Revision: 351337 URL: https://svnweb.freebsd.org/changeset/base/351337 Log: MFC r350781: Update RFC references in the whois(1) man page. PR: 239720 Modified: stable/12/usr.bin/whois/whois.1 Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/whois/whois.1 ============================================================================== --- stable/12/usr.bin/whois/whois.1 Wed Aug 21 16:16:17 2019 (r351336) +++ stable/12/usr.bin/whois/whois.1 Wed Aug 21 16:16:52 2019 (r351337) @@ -28,7 +28,7 @@ .\" From: @(#)whois.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd April 25, 2016 +.Dd August 1, 2019 .Dt WHOIS 1 .Os .Sh NAME @@ -272,13 +272,21 @@ to return a brief description of its object type: .Pp .Dl Ic whois -r -- '-t domain' -.Sh SEE ALSO +.Sh STANDARDS .Rs -.%A Ken Harrenstien -.%A Vic White +.%A K. Harrenstien +.%A M. Stahl +.%A E. Feinler +.%D October 1985 +.%R RFC 954 .%T NICNAME/WHOIS -.%D 1 March 1982 -.%O RFC 812 +.Re +.Pp +.Rs +.%A L. Daigle +.%D September 2004 +.%R RFC 3912 +.%T WHOIS Protocol Specification .Re .Sh HISTORY The From owner-svn-src-all@freebsd.org Wed Aug 21 16:17:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A8A0FCCFD2; Wed, 21 Aug 2019 16:17:23 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DCVW42d6z48qh; Wed, 21 Aug 2019 16:17:23 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6DF221E3CD; Wed, 21 Aug 2019 16:17:23 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LGHN9S086888; Wed, 21 Aug 2019 16:17:23 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LGHNNT086887; Wed, 21 Aug 2019 16:17:23 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211617.x7LGHNNT086887@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 16:17:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351338 - stable/12/usr.bin/du X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/usr.bin/du X-SVN-Commit-Revision: 351338 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:17:23 -0000 Author: markj Date: Wed Aug 21 16:17:22 2019 New Revision: 351338 URL: https://svnweb.freebsd.org/changeset/base/351338 Log: MFC r350782: Flesh out the STANDARDS and AUTHORS sections in the du(1) man page. PR: 239722 Modified: stable/12/usr.bin/du/du.1 Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/du/du.1 ============================================================================== --- stable/12/usr.bin/du/du.1 Wed Aug 21 16:16:52 2019 (r351337) +++ stable/12/usr.bin/du/du.1 Wed Aug 21 16:17:22 2019 (r351338) @@ -28,7 +28,7 @@ .\" @(#)du.1 8.2 (Berkeley) 4/1/94 .\" $FreeBSD$ .\" -.Dd August 8, 2017 +.Dd August 1, 2019 .Dt DU 1 .Os .Sh NAME @@ -221,8 +221,78 @@ Also display a grand total at the end: .Xr fts 3 , .Xr symlink 7 , .Xr quot 8 +.Sh STANDARDS +The +.Nm +utility is compliant with the +.St -p1003.1-2008 +specification. +.Pp +The flags +.Op Fl cdhP , +as well as the +.Ev BLOCKSIZE +environment variable, +are extensions to that specification. +.Pp +The flag +.Op Fl r +is accepted but ignored, for compatibility with systems implementing +the obsolete +.St -xcu5 +standard. .Sh HISTORY -A +The .Nm -command appeared in +utility and its +.Fl a +and +.Fl s +options first appeared in .At v1 . +.Pp +The +.Fl r +option first appeared in +.At III +and is available since +.Fx 3.5 . +The +.Fl k +and +.Fl x +options first appeared in +.Bx 4.3 Reno +and +.Fl H +in +.Bx 4.4 . +The +.Fl c +and +.Fl L +options first appeared in the GNU fileutils; +.Fl L +and +.Fl P +are available since +.Bx 4.4 Lite1 , +.Fl c +since +.Fx 2.2.6 . +The +.Fl d +option first appeared in +.Fx 2.2 , +.Fl h +first appeared in +.Fx 4.0 . +.Sh AUTHORS +.An -nosplit +This version of +.Nm +was written by +.An Chris Newcomb +for +.Bx 4.3 Reno +in 1989. From owner-svn-src-all@freebsd.org Wed Aug 21 16:17:54 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C9FC6CD149; Wed, 21 Aug 2019 16:17:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DCW64KlSz4960; Wed, 21 Aug 2019 16:17:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 736891E3DC; Wed, 21 Aug 2019 16:17:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LGHsp6086970; Wed, 21 Aug 2019 16:17:54 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LGHs3E086969; Wed, 21 Aug 2019 16:17:54 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211617.x7LGHs3E086969@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 16:17:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351339 - stable/12/lib/libarchive/tests X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/lib/libarchive/tests X-SVN-Commit-Revision: 351339 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:17:54 -0000 Author: markj Date: Wed Aug 21 16:17:54 2019 New Revision: 351339 URL: https://svnweb.freebsd.org/changeset/base/351339 Log: MFC r350423: Remove a duplicate file listing in the libarchive tests. Modified: stable/12/lib/libarchive/tests/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libarchive/tests/Makefile ============================================================================== --- stable/12/lib/libarchive/tests/Makefile Wed Aug 21 16:17:22 2019 (r351338) +++ stable/12/lib/libarchive/tests/Makefile Wed Aug 21 16:17:54 2019 (r351339) @@ -581,7 +581,6 @@ ${PACKAGE}FILES+= test_read_format_zip_jar.jar.uu ${PACKAGE}FILES+= test_read_format_zip_length_at_end.zip.uu ${PACKAGE}FILES+= test_read_format_zip_lzma_alone_leak.zipx.uu ${PACKAGE}FILES+= test_read_format_zip_lzma.zipx.uu -${PACKAGE}FILES+= test_read_format_zip_lzma.zipx.uu ${PACKAGE}FILES+= test_read_format_zip_lzma_multi.zipx.uu ${PACKAGE}FILES+= test_read_format_zip_mac_metadata.zip.uu ${PACKAGE}FILES+= test_read_format_zip_malformed1.zip.uu From owner-svn-src-all@freebsd.org Wed Aug 21 16:18:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3484BCD303; Wed, 21 Aug 2019 16:18:33 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DCWs0Mmcz49MC; Wed, 21 Aug 2019 16:18:33 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E3E711E3DD; Wed, 21 Aug 2019 16:18:32 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LGIW1r087048; Wed, 21 Aug 2019 16:18:32 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LGIWij087047; Wed, 21 Aug 2019 16:18:32 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211618.x7LGIWij087047@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 16:18:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351340 - stable/12/sys/riscv/riscv X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/riscv/riscv X-SVN-Commit-Revision: 351340 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:18:33 -0000 Author: markj Date: Wed Aug 21 16:18:32 2019 New Revision: 351340 URL: https://svnweb.freebsd.org/changeset/base/351340 Log: MFC r350002: Fix reference counting in pmap_ts_referenced() on RISC-V. Modified: stable/12/sys/riscv/riscv/pmap.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/riscv/riscv/pmap.c ============================================================================== --- stable/12/sys/riscv/riscv/pmap.c Wed Aug 21 16:17:54 2019 (r351339) +++ stable/12/sys/riscv/riscv/pmap.c Wed Aug 21 16:18:32 2019 (r351340) @@ -3940,12 +3940,12 @@ pmap_ts_referenced(vm_page_t m) pt_entry_t *l3, l3e; vm_paddr_t pa; vm_offset_t va; - int md_gen, pvh_gen, ret; + int cleared, md_gen, not_cleared, pvh_gen; KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_ts_referenced: page %p is not managed", m)); SLIST_INIT(&free); - ret = 0; + cleared = 0; pa = VM_PAGE_TO_PHYS(m); pvh = (m->flags & PG_FICTITIOUS) != 0 ? &pv_dummy : pa_to_pvh(pa); @@ -3953,6 +3953,7 @@ pmap_ts_referenced(vm_page_t m) rw_rlock(&pvh_global_lock); rw_wlock(lock); retry: + not_cleared = 0; if ((pvf = TAILQ_FIRST(&pvh->pv_list)) == NULL) goto small_mappings; pv = pvf; @@ -4003,8 +4004,9 @@ retry: (l2e & PTE_SW_WIRED) == 0) { pmap_clear_bits(l2, PTE_A); pmap_invalidate_page(pmap, va); - } - ret++; + cleared++; + } else + not_cleared++; } PMAP_UNLOCK(pmap); /* Rotate the PV list if it has more than one entry. */ @@ -4013,7 +4015,7 @@ retry: TAILQ_INSERT_TAIL(&pvh->pv_list, pv, pv_next); pvh->pv_gen++; } - if (ret >= PMAP_TS_REFERENCED_MAX) + if (cleared + not_cleared >= PMAP_TS_REFERENCED_MAX) goto out; } while ((pv = TAILQ_FIRST(&pvh->pv_list)) != pvf); small_mappings: @@ -4052,8 +4054,9 @@ small_mappings: */ pmap_clear_bits(l3, PTE_A); pmap_invalidate_page(pmap, pv->pv_va); - } - ret++; + cleared++; + } else + not_cleared++; } PMAP_UNLOCK(pmap); /* Rotate the PV list if it has more than one entry. */ @@ -4062,13 +4065,13 @@ small_mappings: TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_next); m->md.pv_gen++; } - } while ((pv = TAILQ_FIRST(&m->md.pv_list)) != pvf && ret < - PMAP_TS_REFERENCED_MAX); + } while ((pv = TAILQ_FIRST(&m->md.pv_list)) != pvf && cleared + + not_cleared < PMAP_TS_REFERENCED_MAX); out: rw_wunlock(lock); rw_runlock(&pvh_global_lock); vm_page_free_pages_toq(&free, false); - return (ret); + return (cleared + not_cleared); } /* From owner-svn-src-all@freebsd.org Wed Aug 21 16:19:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2FF46CD3EB; Wed, 21 Aug 2019 16:19:07 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DCXW0XB1z49WT; Wed, 21 Aug 2019 16:19:07 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0D4AE1E3DE; Wed, 21 Aug 2019 16:19:07 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LGJ6H5087121; Wed, 21 Aug 2019 16:19:06 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LGJ625087120; Wed, 21 Aug 2019 16:19:06 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211619.x7LGJ625087120@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 16:19:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351341 - stable/12/sys/riscv/riscv X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/riscv/riscv X-SVN-Commit-Revision: 351341 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:19:07 -0000 Author: markj Date: Wed Aug 21 16:19:06 2019 New Revision: 351341 URL: https://svnweb.freebsd.org/changeset/base/351341 Log: MFC r350003: pmap_clear_modify() needs to clear PTE_W. Modified: stable/12/sys/riscv/riscv/pmap.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/riscv/riscv/pmap.c ============================================================================== --- stable/12/sys/riscv/riscv/pmap.c Wed Aug 21 16:18:32 2019 (r351340) +++ stable/12/sys/riscv/riscv/pmap.c Wed Aug 21 16:19:06 2019 (r351341) @@ -4177,7 +4177,7 @@ restart: m)); l3 = pmap_l2_to_l3(l2, pv->pv_va); if ((pmap_load(l3) & (PTE_D | PTE_W)) == (PTE_D | PTE_W)) { - pmap_clear_bits(l3, PTE_D); + pmap_clear_bits(l3, PTE_D | PTE_W); pmap_invalidate_page(pmap, pv->pv_va); } PMAP_UNLOCK(pmap); From owner-svn-src-all@freebsd.org Wed Aug 21 16:21:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6A92FCD65C; Wed, 21 Aug 2019 16:21:27 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DCbC28KYz49l4; Wed, 21 Aug 2019 16:21:27 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 128691E545; Wed, 21 Aug 2019 16:21:27 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LGLQ2u088022; Wed, 21 Aug 2019 16:21:26 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LGLQqS088021; Wed, 21 Aug 2019 16:21:26 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211621.x7LGLQqS088021@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 16:21:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351342 - stable/12 X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12 X-SVN-Commit-Revision: 351342 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:21:27 -0000 Author: markj Date: Wed Aug 21 16:21:26 2019 New Revision: 351342 URL: https://svnweb.freebsd.org/changeset/base/351342 Log: MFC r344670: Allow FIONBIO and FIOASYNC ioctls on POSIX shm descriptors. Modified: Directory Properties: stable/12/ (props changed) From owner-svn-src-all@freebsd.org Wed Aug 21 16:24:59 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 30F67CD86E; Wed, 21 Aug 2019 16:24:59 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DCgG4vGCz4BXJ; Wed, 21 Aug 2019 16:24:58 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-io1-xd43.google.com with SMTP id j4so5702060iop.11; Wed, 21 Aug 2019 09:24:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=fAbj/cPBtzZKsAoXrkohFJhSwgv1I+2Ug04eVfx8VVM=; b=GQvuqBy1yxmSVk6L3fIKMjylgVg4OvODTU2uaxC0pkjMzyJxdAS8jjvfF3Yg2sYa8Z 3hQPm+Oq8Qbn5JMHd/FqYKXRptlrBszFNubeMvidx1e6Zst0R+Rhw7Yt2aC7uq9ux/eG HfL8aj6CW98lRyE8D4hTRYlkeuMH8iJXAwq4nIYw0C4r/T14DSXI6AL822+PAPsyZsPR cIONKb8uM5Qyx9RxIEra166FNm0AjOpgOUeUhQ81Z2cnfQ9q0zjvmIyFuRXWwLQuA/od BBRiIkANIETKAuUMoc+cv2nirsPvZ3el1xa6QxvfWNmxfx7zgCiqAUMBj3kzuyOhHIzP VjrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=fAbj/cPBtzZKsAoXrkohFJhSwgv1I+2Ug04eVfx8VVM=; b=rttx6U+qIzoJRMuIdlQxw7L5izChcmnV98F7ee3CRVFiFnink4V3n2rWy8xaTOo+7I 7psfAaupH9r9Y8Bvw8oKd3dPUL/TWp1Y3pABodmE3SKUPiNEaDop0nhYSktVfTT5DnPP EuHA5aI5sYWH88jSs/w0vpvez9ELQsdcs+jMS2POsc8pljgjAIyXl1TQawIQ7I/Sxo9z UOtHEivAzMeRaCF/tIADqCkWtgRJ4zFyX84PUcIAOsiUnssvk043SYXpjQMptPbUE8HY z5VdK1rGYF9ZW3wyZd13i3CXPvSWItHl9OjxkOZeGDVeU1IWSW+xgOgSLv6ELXqNNsNv s5ow== X-Gm-Message-State: APjAAAUHGBpKOpBNUNyR/joGGtS9+reGc7bvegYCDX/EmcxCiHFxEgnZ xDc3lz8w9VbCGn6qiYsCeXjcgN2h X-Google-Smtp-Source: APXvYqwANV2dkXnFNwv6rQTD9LgJFk7Ecmx8Lmud78c9KpoQCKzuQGCIwPh8zOfgEVPcWLkVzEwa/w== X-Received: by 2002:a02:c64a:: with SMTP id k10mr11009381jan.22.1566404697183; Wed, 21 Aug 2019 09:24:57 -0700 (PDT) Received: from raichu (toroon0560w-lp130-04-184-145-252-124.dsl.bell.ca. [184.145.252.124]) by smtp.gmail.com with ESMTPSA id y25sm21713530iol.59.2019.08.21.09.24.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Aug 2019 09:24:56 -0700 (PDT) Sender: Mark Johnston Date: Wed, 21 Aug 2019 12:24:54 -0400 From: Mark Johnston To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: Re: svn commit: r351342 - stable/12 Message-ID: <20190821162454.GB91995@raichu> References: <201908211621.x7LGLQqS088021@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201908211621.x7LGLQqS088021@repo.freebsd.org> User-Agent: Mutt/1.12.1 (2019-06-15) X-Rspamd-Queue-Id: 46DCgG4vGCz4BXJ X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=GQvuqBy1; dmarc=none; spf=pass (mx1.freebsd.org: domain of markjdb@gmail.com designates 2607:f8b0:4864:20::d43 as permitted sender) smtp.mailfrom=markjdb@gmail.com X-Spamd-Result: default: False [-3.26 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; TO_DN_NONE(0.00)[]; DMARC_NA(0.00)[freebsd.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCVD_COUNT_THREE(0.00)[3]; IP_SCORE(-0.63)[ip: (2.15), ipnet: 2607:f8b0::/32(-2.90), asn: 15169(-2.35), country: US(-0.05)]; DKIM_TRACE(0.00)[gmail.com:+]; NEURAL_HAM_SHORT(-0.92)[-0.924,0]; RCVD_IN_DNSWL_NONE(0.00)[3.4.d.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; FORGED_SENDER(0.30)[markj@freebsd.org,markjdb@gmail.com]; RECEIVED_SPAMHAUS_PBL(0.00)[124.252.145.184.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11]; MID_RHS_NOT_FQDN(0.50)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[markj@freebsd.org,markjdb@gmail.com]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:24:59 -0000 On Wed, Aug 21, 2019 at 04:21:26PM +0000, Mark Johnston wrote: > Author: markj > Date: Wed Aug 21 16:21:26 2019 > New Revision: 351342 > URL: https://svnweb.freebsd.org/changeset/base/351342 > > Log: > MFC r344670: > Allow FIONBIO and FIOASYNC ioctls on POSIX shm descriptors. > > Modified: > Directory Properties: > stable/12/ (props changed) This had already been merged, but the mergeinfo was missing. From owner-svn-src-all@freebsd.org Wed Aug 21 16:27:19 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E530FCD972; Wed, 21 Aug 2019 16:27:19 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DCjz4rDkz4Bgj; Wed, 21 Aug 2019 16:27:19 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 880C01E5B4; Wed, 21 Aug 2019 16:27:19 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LGRJln092877; Wed, 21 Aug 2019 16:27:19 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LGRJ73092876; Wed, 21 Aug 2019 16:27:19 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211627.x7LGRJ73092876@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 16:27:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351343 - stable/12/sys/riscv/conf X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/riscv/conf X-SVN-Commit-Revision: 351343 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:27:20 -0000 Author: markj Date: Wed Aug 21 16:27:19 2019 New Revision: 351343 URL: https://svnweb.freebsd.org/changeset/base/351343 Log: MFC r342731: Configure hz=100 in the QEMU target. Modified: stable/12/sys/riscv/conf/QEMU Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/riscv/conf/QEMU ============================================================================== --- stable/12/sys/riscv/conf/QEMU Wed Aug 21 16:21:26 2019 (r351342) +++ stable/12/sys/riscv/conf/QEMU Wed Aug 21 16:27:19 2019 (r351343) @@ -6,4 +6,5 @@ include "GENERIC" ident QEMU +options HZ=100 options ROOTDEVNAME=\"ufs:/dev/vtbd0\" From owner-svn-src-all@freebsd.org Wed Aug 21 16:47:17 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9BD5FCE1F0 for ; Wed, 21 Aug 2019 16:47:17 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound2m.ore.mailhop.org (outbound2m.ore.mailhop.org [54.149.155.156]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46DD911T25z4CvP for ; Wed, 21 Aug 2019 16:47:16 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1566406035; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=VudpuNK5ZBwLJAfcfJ8oNTEQqL1CBgyQG3tfvCXa9qvR1GezNBAd89tUGDSKjAXxGcJ/wLDOpet87 AXGulIhm6IL1gqjb+uYikF3AePmDQmAHM10w24mIbFWNMRBjqCEfP7lmgMc80f3+hP7McotlgwwUes cSsgBbNFlPoWYb/IbEQRHt+woqsxlEWi4eN4LqtwCQtGHUDSutKOgsOe70Fv6JL4rQ2fBhK8YkLXBo wE5tNJc8uZOyINuxW9KD4t2oDBoLokhVgdNetNgJntIK2meRZIv79EbJ/U0cR0FD7FLUkAM+cYEAW1 dNDA83c1Q7CFdPtFdvWDxBDdv8LZQxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:dkim-signature:from; bh=vQ2KC4pbh1V1SPTtlTq4b+QhnPG98/d8uu8BatM3KHA=; b=q4LlDGLMFLuKt8D2UZ31lJcgFKNKbBtlNdNSHBdgtq24++UdkWV3xWTLVMxc2noJgkjP/hbG4zVJF LX5FmaboVGcqNk7cYXbMp/zLnFdRvqnFBTCDNimL/ancMFErjm4258nwn0ViKui/lW+qS7+Ee0Edqf 4/jh1aNNFUJcuXTpG+B2wzhtd0rnZ1cZl1jJRRnYFHhJ/Wx+3NqNgNT8v/v4DN6CFIAOl/zOcFjqv7 ZMSa2SArT+nZKx+x+f7GXAnNaFpI2EMrYZQE3z9RKc5y86oCbOr/yQ5JALN7ER0vrKBjp9P2gX5oge PSXkn8Vi+HN9r2DHlV3RXalOhoNkS8w== ARC-Authentication-Results: i=1; outbound4.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:from; bh=vQ2KC4pbh1V1SPTtlTq4b+QhnPG98/d8uu8BatM3KHA=; b=dyfAS81Racvni55bJtPLS2rtrzzscXoH19AQJ2M2ptbKNf/YvF0ih9cS/WlCybsJLE27/A2HK9Wyg iJBoq78A+nC3gjTd5uI/R++3RI+jhCIkMFEC23ZqICkp638UKyzb0lvohnIQOGiA1W18NT9qme3DB6 jb1yaEgZN1quChXklCFbmMTJRq0O1dSERrYYY5nCq6ZUuQVrJHxtmnAu6z71U0l+OcqVuyOSGTCUW/ oxAnGshHebRCMwPRb+5ino54Fd9XB+pax4BzVS3HY85HdxaZMcrpRxpX75zE6ufQym0RAithnV8NZU BjHhJ08u4mTj7iib9Hq7lW2mjU+iTTQ== X-MHO-RoutePath: aGlwcGll X-MHO-User: 53752a5b-c433-11e9-85ec-13b9aae3a1d2 X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [67.177.211.60]) by outbound4.ore.mailhop.org (Halon) with ESMTPSA id 53752a5b-c433-11e9-85ec-13b9aae3a1d2; Wed, 21 Aug 2019 16:47:14 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id x7LGlDrN084700; Wed, 21 Aug 2019 10:47:13 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <2722bd2586be8b60720bd634238e63f629b60c50.camel@freebsd.org> Subject: Re: svn commit: r351253 - in head/contrib/libc++: include src From: Ian Lepore To: Marshall Clow , T Coosemans Cc: Dimitry Andric , src-committers , svn-src-all , svn-src-head@freebsd.org Date: Wed, 21 Aug 2019 10:47:13 -0600 In-Reply-To: References: <201908201739.x7KHdXvv054610@repo.freebsd.org> <20190821144908.7137e6bc@FreeBSD.org> <20190821151949.00c9845c@FreeBSD.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5 FreeBSD GNOME Team Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 46DD911T25z4CvP X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TAGGED_RCPT(0.00)[]; NEURAL_HAM_SHORT(-0.98)[-0.981,0]; ASN(0.00)[asn:16509, ipnet:54.148.0.0/15, country:US] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 16:47:17 -0000 On Wed, 2019-08-21 at 09:01 -0700, Marshall Clow wrote: > On Wed, Aug 21, 2019 at 6:20 AM Tijl Coosemans > wrote: > > > On Wed, 21 Aug 2019 15:07:56 +0200 Dimitry Andric > > wrote: > > > On 21 Aug 2019, at 14:49, Tijl Coosemans wrote: > > > > On Tue, 20 Aug 2019 17:39:33 +0000 (UTC) Dimitry Andric > > > > wrote: > > > > > Author: dim > > > > > Date: Tue Aug 20 17:39:32 2019 > > > > > New Revision: 351253 > > > > > URL: https://svnweb.freebsd.org/changeset/base/351253 > > > > > > > > > > Log: > > > > > Pull in r368867 from upstream libc++ trunk (by Marshall > > > > > Clow): > > > > > > > > > > Rework recursive_timed_mutex so that it uses __thread_id > > > > > instead of > > > > > using the lower-level __libcpp_thread_id. This is prep for > > > > > fixing > > > > > PR42918. Reviewed as https://reviews.llvm.org/D65895 > > > > > > > > > > Pull in r368916 from upstream libc++ trunk (by Marshall > > > > > Clow): > > > > > > > > > > Fix thread comparison by making sure we never pass our > > > > > special 'not > > > > a > > > > > thread' value to the underlying implementation. Fixes > > > > > PR#42918. > > > > > > > > > > This should fix std::thread::id::operator==() attempting to > > > > > call > > > > > pthread_equal(3) with zero values. > > > > > > ... > > > > This seems to break building Firefox: > > > > > > > > In file included from > > > > /usr/ports/www/firefox/work/firefox- > > 68.0.2/media/mtransport/nricectx.cpp:82: > > > > In file included from > > > > /usr/ports/www/firefox/work/firefox- > > 68.0.2/media/mtransport/third_party/nICEr/src/stun/stun_client_ctx. > > h:41: > > > > In file included from > > > > /usr/ports/www/firefox/work/firefox- > > 68.0.2/media/mtransport/third_party/nICEr/src/stun/stun.h:45: > > > > In file included from /usr/include/net/if_var.h:84: > > > > /usr/include/sys/lock.h:68:15: error: reference to 'thread' is > > > > ambiguous > > > > struct thread **owner); > > > > ^ > > > > /usr/include/sys/lock.h:42:8: note: candidate found by name > > > > lookup is > > > > 'thread' > > > > struct thread; > > > > ^ > > > > /usr/include/c++/v1/__threading_support:397:24: note: candidate > > > > found > > > > by name > > > > lookup is 'std::__1::thread' > > > > class _LIBCPP_TYPE_VIS thread; > > > > ^ > > > > > > > > This "class thread" conflicts with "struct thread" in > > > > sys/lock.h. > > > > Should everything in sys/lock.h be under #ifdef _KERNEL? > > > > > > Maybe, but is Firefox using "using namespace std;" here? It is a > > > likely > > > explanation for the ambiguity between the global struct thread > > > from > > > sys/lock.h, and std::thread from libc++. > > > > Yes, several headers in media/mtransport/third_party/nICEr/src > > start > > with: > > > > #ifdef __cplusplus > > using namespace std; > > extern "C" { > > #endif /* __cplusplus */ > > > > libc++ has always had a `std::thread` struct. > > The change here is that forward declaration moved from to > <__threading_support>, and > that was included by . > > It doesn't matter what the change was, because the error is in firefox. It violates the c++ convention that you NEVER put 'using namespace' statements in a header file. Never. Because, this stuff happens if you do. -- Ian From owner-svn-src-all@freebsd.org Wed Aug 21 18:28:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 50B18D02F8; Wed, 21 Aug 2019 18:28:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DGQ21VSCz4Jrj; Wed, 21 Aug 2019 18:28:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1588F1FB39; Wed, 21 Aug 2019 18:28:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LISflu064464; Wed, 21 Aug 2019 18:28:41 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LIScxE064447; Wed, 21 Aug 2019 18:28:38 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211828.x7LIScxE064447@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 18:28:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351345 - in stable/12/sys: compat/freebsd32 dev/bhnd/nvram dev/drm2 fs/devfs fs/ext2fs fs/fuse kern mips/broadcom rpc X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in stable/12/sys: compat/freebsd32 dev/bhnd/nvram dev/drm2 fs/devfs fs/ext2fs fs/fuse kern mips/broadcom rpc X-SVN-Commit-Revision: 351345 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 18:28:42 -0000 Author: markj Date: Wed Aug 21 18:28:38 2019 New Revision: 351345 URL: https://svnweb.freebsd.org/changeset/base/351345 Log: MFC r350421: Avoid relying on header pollution from sys/refcount.h. Modified: stable/12/sys/compat/freebsd32/freebsd32_capability.c stable/12/sys/dev/bhnd/nvram/bhnd_nvram_data_tlv.c stable/12/sys/dev/bhnd/nvram/bhnd_nvram_store.c stable/12/sys/dev/bhnd/nvram/bhnd_nvram_value.c stable/12/sys/dev/bhnd/nvram/bhnd_nvram_value_prf.c stable/12/sys/dev/drm2/drmP.h stable/12/sys/fs/devfs/devfs_vnops.c stable/12/sys/fs/ext2fs/ext2_vnops.c stable/12/sys/fs/fuse/fuse_vnops.c stable/12/sys/kern/kern_event.c stable/12/sys/kern/kern_sig.c stable/12/sys/kern/sys_process.c stable/12/sys/kern/uipc_shm.c stable/12/sys/mips/broadcom/bhnd_nexus.c stable/12/sys/rpc/svc_vc.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/compat/freebsd32/freebsd32_capability.c ============================================================================== --- stable/12/sys/compat/freebsd32/freebsd32_capability.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/compat/freebsd32/freebsd32_capability.c Wed Aug 21 18:28:38 2019 (r351345) @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: stable/12/sys/dev/bhnd/nvram/bhnd_nvram_data_tlv.c ============================================================================== --- stable/12/sys/dev/bhnd/nvram/bhnd_nvram_data_tlv.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/dev/bhnd/nvram/bhnd_nvram_data_tlv.c Wed Aug 21 18:28:38 2019 (r351345) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); #ifdef _KERNEL #include #include +#include #include #include #else /* !_KERNEL */ Modified: stable/12/sys/dev/bhnd/nvram/bhnd_nvram_store.c ============================================================================== --- stable/12/sys/dev/bhnd/nvram/bhnd_nvram_store.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/dev/bhnd/nvram/bhnd_nvram_store.c Wed Aug 21 18:28:38 2019 (r351345) @@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #ifdef _KERNEL Modified: stable/12/sys/dev/bhnd/nvram/bhnd_nvram_value.c ============================================================================== --- stable/12/sys/dev/bhnd/nvram/bhnd_nvram_value.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/dev/bhnd/nvram/bhnd_nvram_value.c Wed Aug 21 18:28:38 2019 (r351345) @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #ifdef _KERNEL Modified: stable/12/sys/dev/bhnd/nvram/bhnd_nvram_value_prf.c ============================================================================== --- stable/12/sys/dev/bhnd/nvram/bhnd_nvram_value_prf.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/dev/bhnd/nvram/bhnd_nvram_value_prf.c Wed Aug 21 18:28:38 2019 (r351345) @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #ifdef _KERNEL Modified: stable/12/sys/dev/drm2/drmP.h ============================================================================== --- stable/12/sys/dev/drm2/drmP.h Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/dev/drm2/drmP.h Wed Aug 21 18:28:38 2019 (r351345) @@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: stable/12/sys/fs/devfs/devfs_vnops.c ============================================================================== --- stable/12/sys/fs/devfs/devfs_vnops.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/fs/devfs/devfs_vnops.c Wed Aug 21 18:28:38 2019 (r351345) @@ -51,6 +51,7 @@ #include #include #include +#include #include #include #include Modified: stable/12/sys/fs/ext2fs/ext2_vnops.c ============================================================================== --- stable/12/sys/fs/ext2fs/ext2_vnops.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/fs/ext2fs/ext2_vnops.c Wed Aug 21 18:28:38 2019 (r351345) @@ -51,6 +51,7 @@ #include #include #include +#include #include #include #include Modified: stable/12/sys/fs/fuse/fuse_vnops.c ============================================================================== --- stable/12/sys/fs/fuse/fuse_vnops.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/fs/fuse/fuse_vnops.c Wed Aug 21 18:28:38 2019 (r351345) @@ -68,6 +68,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: stable/12/sys/kern/kern_event.c ============================================================================== --- stable/12/sys/kern/kern_event.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/kern/kern_event.c Wed Aug 21 18:28:38 2019 (r351345) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: stable/12/sys/kern/kern_sig.c ============================================================================== --- stable/12/sys/kern/kern_sig.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/kern/kern_sig.c Wed Aug 21 18:28:38 2019 (r351345) @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: stable/12/sys/kern/sys_process.c ============================================================================== --- stable/12/sys/kern/sys_process.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/kern/sys_process.c Wed Aug 21 18:28:38 2019 (r351345) @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include Modified: stable/12/sys/kern/uipc_shm.c ============================================================================== --- stable/12/sys/kern/uipc_shm.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/kern/uipc_shm.c Wed Aug 21 18:28:38 2019 (r351345) @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: stable/12/sys/mips/broadcom/bhnd_nexus.c ============================================================================== --- stable/12/sys/mips/broadcom/bhnd_nexus.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/mips/broadcom/bhnd_nexus.c Wed Aug 21 18:28:38 2019 (r351345) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: stable/12/sys/rpc/svc_vc.c ============================================================================== --- stable/12/sys/rpc/svc_vc.c Wed Aug 21 18:13:02 2019 (r351344) +++ stable/12/sys/rpc/svc_vc.c Wed Aug 21 18:28:38 2019 (r351345) @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); */ #include +#include #include #include #include From owner-svn-src-all@freebsd.org Wed Aug 21 19:07:15 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B4D8DD0C8F; Wed, 21 Aug 2019 19:07:15 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DHGW4KgWz4LlP; Wed, 21 Aug 2019 19:07:15 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7641F20266; Wed, 21 Aug 2019 19:07:15 +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 x7LJ7FQi088564; Wed, 21 Aug 2019 19:07:15 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LJ7DFA088554; Wed, 21 Aug 2019 19:07:13 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908211907.x7LJ7DFA088554@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 21 Aug 2019 19:07:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351346 - in head: sys/fs/msdosfs usr.sbin/makefs usr.sbin/makefs/ffs usr.sbin/makefs/msdos X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head: sys/fs/msdosfs usr.sbin/makefs usr.sbin/makefs/ffs usr.sbin/makefs/msdos X-SVN-Commit-Revision: 351346 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 19:07:15 -0000 Author: emaste Date: Wed Aug 21 19:07:13 2019 New Revision: 351346 URL: https://svnweb.freebsd.org/changeset/base/351346 Log: makefs: share denode.h between kernel msdosfs and makefs There is no need to duplicate this file when it can be trivially shared (just exposing sections previously under #ifdef _KERNEL). MFC with: r351273 Differential Revision: The FreeBSD Foundation Deleted: head/usr.sbin/makefs/msdos/denode.h Modified: head/sys/fs/msdosfs/denode.h head/usr.sbin/makefs/ffs/buf.h head/usr.sbin/makefs/msdos.c head/usr.sbin/makefs/msdos/msdosfs_conv.c head/usr.sbin/makefs/msdos/msdosfs_denode.c head/usr.sbin/makefs/msdos/msdosfs_fat.c head/usr.sbin/makefs/msdos/msdosfs_lookup.c head/usr.sbin/makefs/msdos/msdosfs_vfsops.c head/usr.sbin/makefs/msdos/msdosfs_vnops.c Modified: head/sys/fs/msdosfs/denode.h ============================================================================== --- head/sys/fs/msdosfs/denode.h Wed Aug 21 18:28:38 2019 (r351345) +++ head/sys/fs/msdosfs/denode.h Wed Aug 21 19:07:13 2019 (r351346) @@ -213,7 +213,7 @@ struct denode { ((dep)->de_Attributes & ATTR_DIRECTORY) ? 0 : (dep)->de_FileSize), \ putushort((dp)->deHighClust, (dep)->de_StartCluster >> 16)) -#ifdef _KERNEL +#if defined(_KERNEL) || defined(MAKEFS) #define VTODE(vp) ((struct denode *)(vp)->v_data) #define DETOV(de) ((de)->de_vnode) @@ -262,9 +262,11 @@ struct defid { extern struct vop_vector msdosfs_vnodeops; +#ifdef _KERNEL int msdosfs_lookup(struct vop_cachedlookup_args *); int msdosfs_inactive(struct vop_inactive_args *); int msdosfs_reclaim(struct vop_reclaim_args *); +#endif /* * Internal service routine prototypes. @@ -283,5 +285,5 @@ int deupdat(struct denode *dep, int waitfor); int removede(struct denode *pdep, struct denode *dep); int detrunc(struct denode *dep, u_long length, int flags, struct ucred *cred); int doscheckpath( struct denode *source, struct denode *target); -#endif /* _KERNEL */ +#endif /* _KERNEL || MAKEFS */ #endif /* !_FS_MSDOSFS_DENODE_H_ */ Modified: head/usr.sbin/makefs/ffs/buf.h ============================================================================== --- head/usr.sbin/makefs/ffs/buf.h Wed Aug 21 18:28:38 2019 (r351345) +++ head/usr.sbin/makefs/ffs/buf.h Wed Aug 21 19:07:13 2019 (r351346) @@ -45,6 +45,7 @@ #include #include +struct componentname; struct makefs_fsinfo; struct ucred; Modified: head/usr.sbin/makefs/msdos.c ============================================================================== --- head/usr.sbin/makefs/msdos.c Wed Aug 21 18:28:38 2019 (r351345) +++ head/usr.sbin/makefs/msdos.c Wed Aug 21 19:07:13 2019 (r351346) @@ -55,17 +55,17 @@ __FBSDID("$FreeBSD$"); #include #include +#include "ffs/buf.h" #include "makefs.h" #include "msdos.h" #include #include +#include "msdos/direntry.h" +#include -#include "ffs/buf.h" #include "msdos/msdosfsmount.h" -#include "msdos/direntry.h" -#include "msdos/denode.h" static int msdos_populate_dir(const char *, struct denode *, fsnode *, fsnode *, fsinfo_t *); Modified: head/usr.sbin/makefs/msdos/msdosfs_conv.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_conv.c Wed Aug 21 18:28:38 2019 (r351345) +++ head/usr.sbin/makefs/msdos/msdosfs_conv.c Wed Aug 21 19:07:13 2019 (r351346) @@ -56,13 +56,11 @@ __FBSDID("$FreeBSD$"); #include #include +#include "msdos/direntry.h" +#include "msdos/msdosfsmount.h" #include "makefs.h" #include "msdos.h" - -#include "msdos/denode.h" -#include "msdos/direntry.h" -#include "msdos/msdosfsmount.h" static int char8ucs2str(const uint8_t *in, int n, uint16_t *out, int m); static void ucs2pad(uint16_t *buf, int len, int size); Modified: head/usr.sbin/makefs/msdos/msdosfs_denode.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_denode.c Wed Aug 21 18:28:38 2019 (r351345) +++ head/usr.sbin/makefs/msdos/msdosfs_denode.c Wed Aug 21 19:07:13 2019 (r351346) @@ -59,18 +59,18 @@ __FBSDID("$FreeBSD$"); #include #include +#include "ffs/buf.h" + #include -#include "msdos/denode.h" -#include "msdos/msdosfsmount.h" +#include +#include #include +#include "msdos/msdosfsmount.h" #include "makefs.h" #include "msdos.h" -#include "ffs/buf.h" -#include "msdos/direntry.h" - /* * If deget() succeeds it returns with the gotten denode locked(). * @@ -208,7 +208,7 @@ deget(struct msdosfsmount *pmp, u_long dirclust, u_lon * Truncate the file described by dep to the length specified by length. */ int -detrunc(struct denode *dep, u_long length, int flags) +detrunc(struct denode *dep, u_long length, int flags, struct ucred *cred) { int error; int allerror; @@ -240,7 +240,7 @@ detrunc(struct denode *dep, u_long length, int flags) } if (dep->de_FileSize < length) - return deextend(dep, length); + return deextend(dep, length, cred); /* * If the desired length is 0 then remember the starting cluster of @@ -333,7 +333,7 @@ detrunc(struct denode *dep, u_long length, int flags) * Extend the file described by dep to length specified by length. */ int -deextend(struct denode *dep, u_long length) +deextend(struct denode *dep, u_long length, struct ucred *cred) { struct msdosfsmount *pmp = dep->de_pmp; u_long count; @@ -364,7 +364,7 @@ deextend(struct denode *dep, u_long length) error = extendfile(dep, count, NULL, NULL, DE_CLEAR); if (error) { /* truncate the added clusters away again */ - (void) detrunc(dep, dep->de_FileSize, 0); + (void) detrunc(dep, dep->de_FileSize, 0, cred); return (error); } } Modified: head/usr.sbin/makefs/msdos/msdosfs_fat.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_fat.c Wed Aug 21 18:28:38 2019 (r351345) +++ head/usr.sbin/makefs/msdos/msdosfs_fat.c Wed Aug 21 19:07:13 2019 (r351346) @@ -58,14 +58,13 @@ #include #include -#include -#include "msdos/denode.h" -#include "msdos/msdosfsmount.h" -#include - #include "ffs/buf.h" +#include #include "msdos/direntry.h" +#include +#include +#include "msdos/msdosfsmount.h" #include "makefs.h" #include "msdos.h" Modified: head/usr.sbin/makefs/msdos/msdosfs_lookup.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_lookup.c Wed Aug 21 18:28:38 2019 (r351345) +++ head/usr.sbin/makefs/msdos/msdosfs_lookup.c Wed Aug 21 19:07:13 2019 (r351346) @@ -56,15 +56,13 @@ #include #include +#include "ffs/buf.h" #include -#include "msdos/denode.h" -#include "msdos/msdosfsmount.h" +#include "msdos/direntry.h" +#include #include +#include "msdos/msdosfsmount.h" -#include "ffs/buf.h" - -#include "msdos/direntry.h" - #include "makefs.h" #include "msdos.h" @@ -104,7 +102,7 @@ createde(struct denode *dep, struct denode *ddep, stru dirclust = de_clcount(pmp, diroffset); error = extendfile(ddep, dirclust, 0, 0, DE_CLEAR); if (error) { - (void)detrunc(ddep, ddep->de_FileSize, 0); + (void)detrunc(ddep, ddep->de_FileSize, 0, NULL); return error; } Modified: head/usr.sbin/makefs/msdos/msdosfs_vfsops.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_vfsops.c Wed Aug 21 18:28:38 2019 (r351345) +++ head/usr.sbin/makefs/msdos/msdosfs_vfsops.c Wed Aug 21 19:07:13 2019 (r351346) @@ -58,20 +58,20 @@ __FBSDID("$FreeBSD$"); #include #include +#include "ffs/buf.h" #include #include -#include "msdos/denode.h" -#include "msdos/msdosfsmount.h" +#include "msdos/direntry.h" +#include #include +#include "msdos/msdosfsmount.h" #include #include "makefs.h" #include "msdos.h" -#include "ffs/buf.h" -#include "msdos/direntry.h" struct msdosfsmount * msdosfs_mount(struct vnode *devvp) Modified: head/usr.sbin/makefs/msdos/msdosfs_vnops.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_vnops.c Wed Aug 21 18:28:38 2019 (r351345) +++ head/usr.sbin/makefs/msdos/msdosfs_vnops.c Wed Aug 21 19:07:13 2019 (r351346) @@ -62,18 +62,16 @@ __FBSDID("$FreeBSD$"); #include #include +#include "ffs/buf.h" #include -#include "msdos/denode.h" -#include "msdos/msdosfsmount.h" +#include "msdos/direntry.h" +#include #include +#include "msdos/msdosfsmount.h" #include "makefs.h" #include "msdos.h" -#include "ffs/buf.h" - -#include "msdos/direntry.h" - /* * Some general notes: * @@ -455,7 +453,7 @@ msdosfs_wfile(const char *path, struct denode *dep, fs nsize = st->st_size; MSDOSFS_DPRINTF(("%s(nsize=%zu, osize=%zu)\n", __func__, nsize, osize)); if (nsize > osize) { - if ((error = deextend(dep, nsize)) != 0) + if ((error = deextend(dep, nsize, NULL)) != 0) return error; if ((error = msdosfs_updatede(dep)) != 0) return error; From owner-svn-src-all@freebsd.org Wed Aug 21 19:09:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 68930D0D32; Wed, 21 Aug 2019 19:09:41 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DHKK27TSz4LvM; Wed, 21 Aug 2019 19:09:41 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 276D120267; Wed, 21 Aug 2019 19:09:41 +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 x7LJ9eTZ088699; Wed, 21 Aug 2019 19:09:40 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LJ9e7l088698; Wed, 21 Aug 2019 19:09:40 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908211909.x7LJ9e7l088698@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 21 Aug 2019 19:09:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351347 - head/usr.sbin/makefs/msdos X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/usr.sbin/makefs/msdos X-SVN-Commit-Revision: 351347 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 19:09:41 -0000 Author: emaste Date: Wed Aug 21 19:09:40 2019 New Revision: 351347 URL: https://svnweb.freebsd.org/changeset/base/351347 Log: makefs: Verify that the BPB media descriptor and FAT ID match From r322982 in sys/fs/msdosfs. Modified: head/usr.sbin/makefs/msdos/msdosfs_fat.c Modified: head/usr.sbin/makefs/msdos/msdosfs_fat.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_fat.c Wed Aug 21 19:07:13 2019 (r351346) +++ head/usr.sbin/makefs/msdos/msdosfs_fat.c Wed Aug 21 19:09:40 2019 (r351347) @@ -887,19 +887,17 @@ fillinusemap(struct msdosfsmount *pmp) * zero. These represent free clusters. */ pmp->pm_freeclustercount = 0; - for (cn = CLUST_FIRST; cn <= pmp->pm_maxcluster; cn++) { + for (cn = 0; cn <= pmp->pm_maxcluster; cn++) { byteoffset = FATOFS(pmp, cn); bo = byteoffset % pmp->pm_fatblocksize; - if (bo == 0 || bp == NULL) { + if (bo == 0) { /* Read new FAT block */ if (bp != NULL) brelse(bp); fatblock(pmp, byteoffset, &bn, &bsize, NULL); error = bread(pmp->pm_devvp, bn, bsize, NOCRED, &bp); - if (error != 0) { - brelse(bp); + if (error != 0) return (error); - } } if (FAT32(pmp)) readcn = getulong(bp->b_data + bo); @@ -909,7 +907,19 @@ fillinusemap(struct msdosfsmount *pmp) readcn >>= 4; readcn &= pmp->pm_fatmask; - if (readcn == CLUST_FREE) + /* + * Check if the FAT ID matches the BPB's media descriptor and + * all other bits are set to 1. + */ + if (cn == 0 && readcn != ((pmp->pm_fatmask & 0xffffff00) | + pmp->pm_bpb.bpbMedia)) { +#ifdef MSDOSFS_DEBUG + printf("mountmsdosfs(): Media descriptor in BPB" + "does not match FAT ID\n"); +#endif + brelse(bp); + return (EINVAL); + } else if (readcn == CLUST_FREE) usemap_free(pmp, cn); } if (bp != NULL) From owner-svn-src-all@freebsd.org Wed Aug 21 19:35:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3F410D1E4F; Wed, 21 Aug 2019 19:35:05 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DHtd0sz5z4QZV; Wed, 21 Aug 2019 19:35:05 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EA1AF207E6; Wed, 21 Aug 2019 19:35:04 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LJZ4aY008617; Wed, 21 Aug 2019 19:35:04 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LJZ4dd008616; Wed, 21 Aug 2019 19:35:04 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908211935.x7LJZ4dd008616@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 19:35:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351348 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 351348 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 19:35:05 -0000 Author: markj Date: Wed Aug 21 19:35:04 2019 New Revision: 351348 URL: https://svnweb.freebsd.org/changeset/base/351348 Log: Modify pipe_poll() to properly check for pending direct writes. With r349546, it is a responsibility of the writer to clear PIPE_DIRECTW after pinned data has been read. In particular, once a reader has drained this data, there is a small window where the pipe is empty but PIPE_DIRECTW is set. pipe_poll() was using the presence of PIPE_DIRECTW to determine whether to return POLLIN, so in this window it would claim that data was available to read when this was not the case. Fix this by modifying several checks for PIPE_DIRECTW to instead look at the number of residual bytes in data pinned by a direct writer. In some cases we really do want to check for PIPE_DIRECTW, since the presence of this flag indicates that any attempt to write to the pipe will block on the existing direct writer. Bisected and test case provided by: mav Tested by: pho Reviewed by: kib MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21333 Modified: head/sys/kern/sys_pipe.c Modified: head/sys/kern/sys_pipe.c ============================================================================== --- head/sys/kern/sys_pipe.c Wed Aug 21 19:09:40 2019 (r351347) +++ head/sys/kern/sys_pipe.c Wed Aug 21 19:35:04 2019 (r351348) @@ -709,11 +709,9 @@ pipe_read(struct file *fp, struct uio *uio, struct ucr /* * Direct copy, bypassing a kernel buffer. */ - } else if ((size = rpipe->pipe_map.cnt) && - (rpipe->pipe_state & PIPE_DIRECTW)) { + } else if ((size = rpipe->pipe_map.cnt) != 0) { if (size > uio->uio_resid) size = (u_int) uio->uio_resid; - PIPE_UNLOCK(rpipe); error = uiomove_fromphys(rpipe->pipe_map.ms, rpipe->pipe_map.pos, size, uio); @@ -819,32 +817,33 @@ pipe_build_write_buffer(struct pipe *wpipe, struct uio u_int size; int i; - PIPE_LOCK_ASSERT(wpipe, MA_NOTOWNED); - KASSERT(wpipe->pipe_state & PIPE_DIRECTW, - ("Clone attempt on non-direct write pipe!")); + PIPE_LOCK_ASSERT(wpipe, MA_OWNED); + KASSERT((wpipe->pipe_state & PIPE_DIRECTW) == 0, + ("%s: PIPE_DIRECTW set on %p", __func__, wpipe)); + KASSERT(wpipe->pipe_map.cnt == 0, + ("%s: pipe map for %p contains residual data", __func__, wpipe)); if (uio->uio_iov->iov_len > wpipe->pipe_buffer.size) size = wpipe->pipe_buffer.size; else size = uio->uio_iov->iov_len; - if ((i = vm_fault_quick_hold_pages(&curproc->p_vmspace->vm_map, + wpipe->pipe_state |= PIPE_DIRECTW; + PIPE_UNLOCK(wpipe); + i = vm_fault_quick_hold_pages(&curproc->p_vmspace->vm_map, (vm_offset_t)uio->uio_iov->iov_base, size, VM_PROT_READ, - wpipe->pipe_map.ms, PIPENPAGES)) < 0) + wpipe->pipe_map.ms, PIPENPAGES); + PIPE_LOCK(wpipe); + if (i < 0) { + wpipe->pipe_state &= ~PIPE_DIRECTW; return (EFAULT); + } -/* - * set up the control block - */ wpipe->pipe_map.npages = i; wpipe->pipe_map.pos = ((vm_offset_t) uio->uio_iov->iov_base) & PAGE_MASK; wpipe->pipe_map.cnt = size; -/* - * and update the uio data - */ - uio->uio_iov->iov_len -= size; uio->uio_iov->iov_base = (char *)uio->uio_iov->iov_base + size; if (uio->uio_iov->iov_len == 0) @@ -864,6 +863,8 @@ pipe_destroy_write_buffer(struct pipe *wpipe) PIPE_LOCK_ASSERT(wpipe, MA_OWNED); KASSERT((wpipe->pipe_state & PIPE_DIRECTW) != 0, ("%s: PIPE_DIRECTW not set on %p", __func__, wpipe)); + KASSERT(wpipe->pipe_map.cnt == 0, + ("%s: pipe map for %p contains residual data", __func__, wpipe)); wpipe->pipe_state &= ~PIPE_DIRECTW; vm_page_unhold_pages(wpipe->pipe_map.ms, wpipe->pipe_map.npages); @@ -889,6 +890,7 @@ pipe_clone_write_buffer(struct pipe *wpipe) size = wpipe->pipe_map.cnt; pos = wpipe->pipe_map.pos; + wpipe->pipe_map.cnt = 0; wpipe->pipe_buffer.in = size; wpipe->pipe_buffer.out = 0; @@ -946,7 +948,6 @@ retry: else goto retry; } - wpipe->pipe_map.cnt = 0; /* transfer not ready yet */ if (wpipe->pipe_buffer.cnt > 0) { if (wpipe->pipe_state & PIPE_WANTR) { wpipe->pipe_state &= ~PIPE_WANTR; @@ -963,19 +964,15 @@ retry: goto retry; } - wpipe->pipe_state |= PIPE_DIRECTW; - - PIPE_UNLOCK(wpipe); error = pipe_build_write_buffer(wpipe, uio); - PIPE_LOCK(wpipe); if (error) { - wpipe->pipe_state &= ~PIPE_DIRECTW; pipeunlock(wpipe); goto error1; } while (wpipe->pipe_map.cnt != 0) { if (wpipe->pipe_state & PIPE_EOF) { + wpipe->pipe_map.cnt = 0; pipe_destroy_write_buffer(wpipe); pipeselwakeup(wpipe); pipeunlock(wpipe); @@ -1129,7 +1126,7 @@ pipe_write(struct file *fp, struct uio *uio, struct uc * pipe buffer. We break out if a signal occurs or the * reader goes away. */ - if (wpipe->pipe_state & PIPE_DIRECTW) { + if (wpipe->pipe_map.cnt != 0) { if (wpipe->pipe_state & PIPE_WANTR) { wpipe->pipe_state &= ~PIPE_WANTR; wakeup(wpipe); @@ -1347,7 +1344,7 @@ pipe_ioctl(struct file *fp, u_long cmd, void *data, st PIPE_UNLOCK(mpipe); return (0); } - if (mpipe->pipe_state & PIPE_DIRECTW) + if (mpipe->pipe_map.cnt != 0) *(int *)data = mpipe->pipe_map.cnt; else *(int *)data = mpipe->pipe_buffer.cnt; @@ -1403,14 +1400,13 @@ pipe_poll(struct file *fp, int events, struct ucred *a goto locked_error; #endif if (fp->f_flag & FREAD && events & (POLLIN | POLLRDNORM)) - if ((rpipe->pipe_state & PIPE_DIRECTW) || - (rpipe->pipe_buffer.cnt > 0)) + if (rpipe->pipe_map.cnt > 0 || rpipe->pipe_buffer.cnt > 0) revents |= events & (POLLIN | POLLRDNORM); if (fp->f_flag & FWRITE && events & (POLLOUT | POLLWRNORM)) if (wpipe->pipe_present != PIPE_ACTIVE || (wpipe->pipe_state & PIPE_EOF) || - (((wpipe->pipe_state & PIPE_DIRECTW) == 0) && + ((wpipe->pipe_state & PIPE_DIRECTW) == 0 && ((wpipe->pipe_buffer.size - wpipe->pipe_buffer.cnt) >= PIPE_BUF || wpipe->pipe_buffer.size == 0))) revents |= events & (POLLOUT | POLLWRNORM); @@ -1485,7 +1481,7 @@ pipe_stat(struct file *fp, struct stat *ub, struct ucr bzero(ub, sizeof(*ub)); ub->st_mode = S_IFIFO; ub->st_blksize = PAGE_SIZE; - if (pipe->pipe_state & PIPE_DIRECTW) + if (pipe->pipe_map.cnt != 0) ub->st_size = pipe->pipe_map.cnt; else ub->st_size = pipe->pipe_buffer.cnt; @@ -1727,7 +1723,7 @@ filt_piperead(struct knote *kn, long hint) PIPE_LOCK_ASSERT(rpipe, MA_OWNED); kn->kn_data = rpipe->pipe_buffer.cnt; - if ((kn->kn_data == 0) && (rpipe->pipe_state & PIPE_DIRECTW)) + if (kn->kn_data == 0) kn->kn_data = rpipe->pipe_map.cnt; if ((rpipe->pipe_state & PIPE_EOF) || From owner-svn-src-all@freebsd.org Wed Aug 21 19:53:51 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B91E2D277E; Wed, 21 Aug 2019 19:53:51 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DJJH4S3tz4SB3; Wed, 21 Aug 2019 19:53:51 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6046B20B9C; Wed, 21 Aug 2019 19:53:51 +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 x7LJrpYg021067; Wed, 21 Aug 2019 19:53:51 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LJroaw021064; Wed, 21 Aug 2019 19:53:50 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908211953.x7LJroaw021064@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 21 Aug 2019 19:53:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351349 - head/lib/libthr/thread X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/lib/libthr/thread X-SVN-Commit-Revision: 351349 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 19:53:51 -0000 Author: kib Date: Wed Aug 21 19:53:50 2019 New Revision: 351349 URL: https://svnweb.freebsd.org/changeset/base/351349 Log: Fix _pthread_cancel_enter() and _pthread_cancel_leave() jmptable entries. PR: 240022 Reported by: Andrew Gierth Sponsored by: The FreeBSD Foundation MFC after: 3 days Modified: head/lib/libthr/thread/thr_cancel.c head/lib/libthr/thread/thr_init.c head/lib/libthr/thread/thr_private.h Modified: head/lib/libthr/thread/thr_cancel.c ============================================================================== --- head/lib/libthr/thread/thr_cancel.c Wed Aug 21 19:35:04 2019 (r351348) +++ head/lib/libthr/thread/thr_cancel.c Wed Aug 21 19:53:50 2019 (r351349) @@ -43,6 +43,8 @@ __weak_reference(_thr_setcanceltype, pthread_setcancel __weak_reference(_thr_setcanceltype, _pthread_setcanceltype); __weak_reference(_Tthr_testcancel, pthread_testcancel); __weak_reference(_Tthr_testcancel, _pthread_testcancel); +__weak_reference(_Tthr_cancel_enter, _pthread_cancel_enter); +__weak_reference(_Tthr_cancel_leave, _pthread_cancel_leave); static inline void testcancel(struct pthread *curthread) @@ -173,13 +175,13 @@ _thr_cancel_leave(struct pthread *curthread, int mayca } void -_pthread_cancel_enter(int maycancel) +_Tthr_cancel_enter(int maycancel) { _thr_cancel_enter2(_get_curthread(), maycancel); } void -_pthread_cancel_leave(int maycancel) +_Tthr_cancel_leave(int maycancel) { _thr_cancel_leave(_get_curthread(), maycancel); } Modified: head/lib/libthr/thread/thr_init.c ============================================================================== --- head/lib/libthr/thread/thr_init.c Wed Aug 21 19:35:04 2019 (r351348) +++ head/lib/libthr/thread/thr_init.c Wed Aug 21 19:53:50 2019 (r351349) @@ -265,8 +265,8 @@ static pthread_func_t jmp_table[][2] = { [PJT_TESTCANCEL] = {DUAL_ENTRY(_Tthr_testcancel)}, [PJT_CLEANUP_POP_IMP] = {DUAL_ENTRY(__thr_cleanup_pop_imp)}, [PJT_CLEANUP_PUSH_IMP] = {DUAL_ENTRY(__thr_cleanup_push_imp)}, - [PJT_CANCEL_ENTER] = {DUAL_ENTRY(_thr_cancel_enter)}, - [PJT_CANCEL_LEAVE] = {DUAL_ENTRY(_thr_cancel_leave)}, + [PJT_CANCEL_ENTER] = {DUAL_ENTRY(_Tthr_cancel_enter)}, + [PJT_CANCEL_LEAVE] = {DUAL_ENTRY(_Tthr_cancel_leave)}, [PJT_MUTEX_CONSISTENT] = {DUAL_ENTRY(_Tthr_mutex_consistent)}, [PJT_MUTEXATTR_GETROBUST] = {DUAL_ENTRY(_thr_mutexattr_getrobust)}, [PJT_MUTEXATTR_SETROBUST] = {DUAL_ENTRY(_thr_mutexattr_setrobust)}, Modified: head/lib/libthr/thread/thr_private.h ============================================================================== --- head/lib/libthr/thread/thr_private.h Wed Aug 21 19:35:04 2019 (r351348) +++ head/lib/libthr/thread/thr_private.h Wed Aug 21 19:53:50 2019 (r351349) @@ -1022,6 +1022,8 @@ void __thr_cleanup_pop_imp(int); void _thr_cleanup_push(void (*)(void *), void *); void _thr_cleanup_pop(int); void _Tthr_testcancel(void); +void _Tthr_cancel_enter(int); +void _Tthr_cancel_leave(int); int _thr_cancel(pthread_t); int _thr_atfork(void (*)(void), void (*)(void), void (*)(void)); int _thr_attr_destroy(pthread_attr_t *); From owner-svn-src-all@freebsd.org Wed Aug 21 20:01:53 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 64D3BD29DD; Wed, 21 Aug 2019 20:01:53 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DJTY1jsGz4SXX; Wed, 21 Aug 2019 20:01:53 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1C7A720C1E; Wed, 21 Aug 2019 20:01:53 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LK1qPo023912; Wed, 21 Aug 2019 20:01:52 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LK1q8a023911; Wed, 21 Aug 2019 20:01:52 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908212001.x7LK1q8a023911@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 20:01:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351351 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 351351 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 20:01:53 -0000 Author: markj Date: Wed Aug 21 20:01:52 2019 New Revision: 351351 URL: https://svnweb.freebsd.org/changeset/base/351351 Log: Remove manual wire_count adjustments from the unmapped mbuf code. The original code came from a desire to minimize the number of updates to v_wire_count, which prior to r329187 was updated using atomics. However, there is no significant benefit to batching today, so simply allocate pages using VM_ALLOC_WIRED and rely on system accounting. Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D21323 Modified: head/sys/kern/uipc_mbuf.c Modified: head/sys/kern/uipc_mbuf.c ============================================================================== --- head/sys/kern/uipc_mbuf.c Wed Aug 21 19:57:54 2019 (r351350) +++ head/sys/kern/uipc_mbuf.c Wed Aug 21 20:01:52 2019 (r351351) @@ -1616,22 +1616,18 @@ mb_free_mext_pgs(struct mbuf *m) { struct mbuf_ext_pgs *ext_pgs; vm_page_t pg; - int wire_adj; MBUF_EXT_PGS_ASSERT(m); ext_pgs = m->m_ext.ext_pgs; - wire_adj = 0; for (int i = 0; i < ext_pgs->npgs; i++) { pg = PHYS_TO_VM_PAGE(ext_pgs->pa[i]); /* * Note: page is not locked, as it has no * object and is not on any queues. */ - vm_page_free_toq(pg); - wire_adj++; + vm_page_unwire_noq(pg); + vm_page_free(pg); } - if (wire_adj) - vm_wire_sub(wire_adj); } static struct mbuf * @@ -1640,9 +1636,10 @@ m_uiotombuf_nomap(struct uio *uio, int how, int len, i struct mbuf *m, *mb, *prev; struct mbuf_ext_pgs *pgs; vm_page_t pg_array[MBUF_PEXT_MAX_PGS]; - int error, length, i, needed, wire_adj = 0; + int error, length, i, needed; ssize_t total; - int pflags = malloc2vm_flags(how) | VM_ALLOC_NOOBJ | VM_ALLOC_NODUMP; + int pflags = malloc2vm_flags(how) | VM_ALLOC_NOOBJ | VM_ALLOC_NODUMP | + VM_ALLOC_WIRED; /* * len can be zero or an arbitrary large value bound by @@ -1676,9 +1673,6 @@ m_uiotombuf_nomap(struct uio *uio, int how, int len, i retry_page: pg_array[i] = vm_page_alloc(NULL, 0, pflags); if (pg_array[i] == NULL) { - if (wire_adj) - vm_wire_add(wire_adj); - wire_adj = 0; if (how & M_NOWAIT) { goto failed; } else { @@ -1686,15 +1680,12 @@ retry_page: goto retry_page; } } - wire_adj++; pg_array[i]->flags &= ~PG_ZERO; pgs->pa[i] = VM_PAGE_TO_PHYS(pg_array[i]); pgs->npgs++; } pgs->last_pg_len = length - PAGE_SIZE * (pgs->npgs - 1); MBUF_EXT_PGS_ASSERT_SANITY(pgs); - vm_wire_add(wire_adj); - wire_adj = 0; total -= length; error = uiomove_fromphys(pg_array, 0, length, uio); if (error != 0) From owner-svn-src-all@freebsd.org Wed Aug 21 20:17:31 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 33D40D2F85; Wed, 21 Aug 2019 20:17:31 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DJqb0dyMz4Tn0; Wed, 21 Aug 2019 20:17:31 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EBD3020F2D; Wed, 21 Aug 2019 20:17:30 +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 x7LKHUeZ033458; Wed, 21 Aug 2019 20:17:30 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LKHUOw033457; Wed, 21 Aug 2019 20:17:30 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201908212017.x7LKHUOw033457@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 21 Aug 2019 20:17:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351352 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 351352 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 20:17:31 -0000 Author: mav Date: Wed Aug 21 20:17:30 2019 New Revision: 351352 URL: https://svnweb.freebsd.org/changeset/base/351352 Log: Improve NVMe hot unplug handling. If device is unplugged from the system (CSTS register reads return 0xffffffff), it makes no sense to send any more recovery requests or expect any responses back. If there is a detach call in such state, just stop all activity and free resources. If there is no detach call (hot-plug is not supported), rely on normal timeout handling, but when it trigger controller reset, do not wait for impossible and quickly report failure. MFC after: 2 weeks Sponsored by: iXsystems, Inc. Modified: head/sys/dev/nvme/nvme_ctrlr.c head/sys/dev/nvme/nvme_qpair.c Modified: head/sys/dev/nvme/nvme_ctrlr.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr.c Wed Aug 21 20:01:52 2019 (r351351) +++ head/sys/dev/nvme/nvme_ctrlr.c Wed Aug 21 20:17:30 2019 (r351352) @@ -207,10 +207,13 @@ nvme_ctrlr_fail(struct nvme_controller *ctrlr) int i; ctrlr->is_failed = TRUE; + nvme_admin_qpair_disable(&ctrlr->adminq); nvme_qpair_fail(&ctrlr->adminq); if (ctrlr->ioq != NULL) { - for (i = 0; i < ctrlr->num_io_queues; i++) + for (i = 0; i < ctrlr->num_io_queues; i++) { + nvme_io_qpair_disable(&ctrlr->ioq[i]); nvme_qpair_fail(&ctrlr->ioq[i]); + } } nvme_notify_fail_consumers(ctrlr); } @@ -249,17 +252,20 @@ nvme_ctrlr_wait_for_ready(struct nvme_controller *ctrl int ms_waited; uint32_t csts; - csts = nvme_mmio_read_4(ctrlr, csts); - ms_waited = 0; - while (((csts >> NVME_CSTS_REG_RDY_SHIFT) & NVME_CSTS_REG_RDY_MASK) != desired_val) { + while (1) { + csts = nvme_mmio_read_4(ctrlr, csts); + if (csts == 0xffffffff) /* Hot unplug. */ + return (ENXIO); + if (((csts >> NVME_CSTS_REG_RDY_SHIFT) & NVME_CSTS_REG_RDY_MASK) + == desired_val) + break; if (ms_waited++ > ctrlr->ready_timeout_in_ms) { nvme_printf(ctrlr, "controller ready did not become %d " "within %d ms\n", desired_val, ctrlr->ready_timeout_in_ms); return (ENXIO); } DELAY(1000); - csts = nvme_mmio_read_4(ctrlr, csts); } return (0); @@ -1338,12 +1344,20 @@ nvme_ctrlr_construct(struct nvme_controller *ctrlr, de void nvme_ctrlr_destruct(struct nvme_controller *ctrlr, device_t dev) { - int i; + int gone, i; if (ctrlr->resource == NULL) goto nores; - nvme_notify_fail_consumers(ctrlr); + /* + * Check whether it is a hot unplug or a clean driver detach. + * If device is not there any more, skip any shutdown commands. + */ + gone = (nvme_mmio_read_4(ctrlr, csts) == 0xffffffff); + if (gone) + nvme_ctrlr_fail(ctrlr); + else + nvme_notify_fail_consumers(ctrlr); for (i = 0; i < NVME_MAX_NAMESPACES; i++) nvme_ns_destruct(&ctrlr->ns[i]); @@ -1351,12 +1365,11 @@ nvme_ctrlr_destruct(struct nvme_controller *ctrlr, dev if (ctrlr->cdev) destroy_dev(ctrlr->cdev); - nvme_ctrlr_destroy_qpairs(ctrlr); - for (i = 0; i < ctrlr->num_io_queues; i++) { + if (!gone) + nvme_ctrlr_destroy_qpairs(ctrlr); + for (i = 0; i < ctrlr->num_io_queues; i++) nvme_io_qpair_destroy(&ctrlr->ioq[i]); - } free(ctrlr->ioq, M_NVME); - nvme_admin_qpair_destroy(&ctrlr->adminq); /* @@ -1366,9 +1379,11 @@ nvme_ctrlr_destruct(struct nvme_controller *ctrlr, dev * shutdown notification in case the system is shutdown before * reloading the driver. */ - nvme_ctrlr_shutdown(ctrlr); + if (!gone) + nvme_ctrlr_shutdown(ctrlr); - nvme_ctrlr_disable(ctrlr); + if (!gone) + nvme_ctrlr_disable(ctrlr); if (ctrlr->taskqueue) taskqueue_free(ctrlr->taskqueue); @@ -1407,14 +1422,19 @@ nvme_ctrlr_shutdown(struct nvme_controller *ctrlr) cc |= NVME_SHN_NORMAL << NVME_CC_REG_SHN_SHIFT; nvme_mmio_write_4(ctrlr, cc, cc); - csts = nvme_mmio_read_4(ctrlr, csts); - while ((NVME_CSTS_GET_SHST(csts) != NVME_SHST_COMPLETE) && (ticks++ < 5*hz)) { - pause("nvme shn", 1); + while (1) { csts = nvme_mmio_read_4(ctrlr, csts); + if (csts == 0xffffffff) /* Hot unplug. */ + break; + if (NVME_CSTS_GET_SHST(csts) == NVME_SHST_COMPLETE) + break; + if (ticks++ > 5*hz) { + nvme_printf(ctrlr, "did not complete shutdown within" + " 5 seconds of notification\n"); + break; + } + pause("nvme shn", 1); } - if (NVME_CSTS_GET_SHST(csts) != NVME_SHST_COMPLETE) - nvme_printf(ctrlr, "did not complete shutdown within 5 seconds " - "of notification\n"); } void Modified: head/sys/dev/nvme/nvme_qpair.c ============================================================================== --- head/sys/dev/nvme/nvme_qpair.c Wed Aug 21 20:01:52 2019 (r351351) +++ head/sys/dev/nvme/nvme_qpair.c Wed Aug 21 20:17:30 2019 (r351352) @@ -911,7 +911,8 @@ nvme_timeout(void *arg) nvme_abort_complete, tr); } else { nvme_printf(ctrlr, "Resetting controller due to a timeout%s.\n", - cfs ? " and fatal error status" : ""); + (csts == 0xffffffff) ? " and possible hot unplug" : + (cfs ? " and fatal error status" : "")); nvme_ctrlr_reset(ctrlr); } } From owner-svn-src-all@freebsd.org Wed Aug 21 21:05:16 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 27FC7D43E6; Wed, 21 Aug 2019 21:05:16 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DKth06MXz4Y7T; Wed, 21 Aug 2019 21:05:16 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DAD3F21839; Wed, 21 Aug 2019 21:05:15 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LL5F2q063637; Wed, 21 Aug 2019 21:05:15 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LL5Frr063636; Wed, 21 Aug 2019 21:05:15 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908212105.x7LL5Frr063636@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Wed, 21 Aug 2019 21:05:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351354 - head/sbin/ping X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/sbin/ping X-SVN-Commit-Revision: 351354 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 21:05:16 -0000 Author: asomers Date: Wed Aug 21 21:05:15 2019 New Revision: 351354 URL: https://svnweb.freebsd.org/changeset/base/351354 Log: ping: add -H option for enabling reverse DNS lookup This is the reverse of the -n flag. Submitted by: Ján Sučan Sponsored by: Google LLC (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21356 Modified: head/sbin/ping/ping.8 head/sbin/ping/ping.c Modified: head/sbin/ping/ping.8 ============================================================================== --- head/sbin/ping/ping.8 Wed Aug 21 20:44:42 2019 (r351353) +++ head/sbin/ping/ping.8 Wed Aug 21 21:05:15 2019 (r351354) @@ -28,7 +28,7 @@ .\" @(#)ping.8 8.2 (Berkeley) 12/11/93 .\" $FreeBSD$ .\" -.Dd March 11, 2016 +.Dd August 21, 2019 .Dt PING 8 .Os .Sh NAME @@ -38,7 +38,7 @@ packets to network hosts .Sh SYNOPSIS .Nm -.Op Fl AaDdfnoQqRrv +.Op Fl AaDdfHnoQqRrv .Op Fl c Ar count .Op Fl G Ar sweepmaxsize .Op Fl g Ar sweepminsize @@ -56,7 +56,7 @@ packets to network hosts .Op Fl z Ar tos .Ar host .Nm -.Op Fl AaDdfLnoQqRrv +.Op Fl AaDdfHLnoQqRrv .Op Fl c Ar count .Op Fl I Ar iface .Op Fl i Ar wait @@ -157,6 +157,14 @@ Specify the size of .Tn ICMP payload to start with when sending sweeping pings. The default value is 0. +.It Fl H +Hostname output. +Try to do a reverse DNS lookup when displaying addresses. +This is the opposite of +.Fl n , +and it is the default behavior. +.Nm +utility tries reverse-lookup by default. .It Fl h Ar sweepincrsize Specify the number of bytes to increment the size of .Tn ICMP Modified: head/sbin/ping/ping.c ============================================================================== --- head/sbin/ping/ping.c Wed Aug 21 20:44:42 2019 (r351353) +++ head/sbin/ping/ping.c Wed Aug 21 21:05:15 2019 (r351354) @@ -297,7 +297,7 @@ main(int argc, char *const *argv) outpack = outpackhdr + sizeof(struct ip); while ((ch = getopt(argc, argv, - "Aac:DdfG:g:h:I:i:Ll:M:m:nop:QqRrS:s:T:t:vW:z:" + "Aac:DdfG:g:Hh:I:i:Ll:M:m:nop:QqRrS:s:T:t:vW:z:" #ifdef IPSEC #ifdef IPSEC_POLICY_IPSEC "P:" @@ -363,6 +363,9 @@ main(int argc, char *const *argv) options |= F_SWEEP; sweepmin = ltmp; break; + case 'H': + options &= ~F_NUMERIC; + break; case 'h': /* Packet size increment for ping sweep */ ltmp = strtol(optarg, &ep, 0); if (*ep || ep == optarg || ltmp < 1) @@ -1743,11 +1746,11 @@ usage(void) { (void)fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n", -"usage: ping [-AaDdfnoQqRrv] [-c count] [-G sweepmaxsize] [-g sweepminsize]", +"usage: ping [-AaDdfHnoQqRrv] [-c count] [-G sweepmaxsize] [-g sweepminsize]", " [-h sweepincrsize] [-i wait] [-l preload] [-M mask | time] [-m ttl]", " " SECOPT " [-p pattern] [-S src_addr] [-s packetsize] [-t timeout]", " [-W waittime] [-z tos] host", -" ping [-AaDdfLnoQqRrv] [-c count] [-I iface] [-i wait] [-l preload]", +" ping [-AaDdfHLnoQqRrv] [-c count] [-I iface] [-i wait] [-l preload]", " [-M mask | time] [-m ttl]" SECOPT " [-p pattern] [-S src_addr]", " [-s packetsize] [-T ttl] [-t timeout] [-W waittime]", " [-z tos] mcast-group"); From owner-svn-src-all@freebsd.org Wed Aug 21 21:46:57 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 49D91D4EC4; Wed, 21 Aug 2019 21:46:57 +0000 (UTC) (envelope-from tijl@freebsd.org) Received: from mailrelay105.isp.belgacom.be (mailrelay105.isp.belgacom.be [195.238.20.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "relay.skynet.be", Issuer "GlobalSign Organization Validation CA - SHA256 - G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DLpm3MKmz4b8w; Wed, 21 Aug 2019 21:46:56 +0000 (UTC) (envelope-from tijl@freebsd.org) X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2D0EgAqu11d/ygG91FkGwEBAQEDAQE?= =?us-ascii?q?BBwMBAQGBZwKCFlkUUiASKoQfiHyGAwGCDjUBiSh7kDUJAQEBMQwBAYFLgnQ?= =?us-ascii?q?CglkmOBMCBQEBBQEBAQEBBgRthGVCDEIBDAGEewEFIzMjEAsOBgQCAgUhAgI?= =?us-ascii?q?PEjYGARKDI4FqAyELqmSBMoQ0AQsBg1wNgRqBCgaBDCgBjAWBf4QjPoIagiq?= =?us-ascii?q?DC4JYBJRFllBACYIfhmiJWINtJ5hGhB6JPYdjgXqQQCGBWE0wCIMngk4XiGO?= =?us-ascii?q?FQT0DMIJPinsBAQ?= X-IPAS-Result: =?us-ascii?q?A2D0EgAqu11d/ygG91FkGwEBAQEDAQEBBwMBAQGBZwKCF?= =?us-ascii?q?lkUUiASKoQfiHyGAwGCDjUBiSh7kDUJAQEBMQwBAYFLgnQCglkmOBMCBQEBB?= =?us-ascii?q?QEBAQEBBgRthGVCDEIBDAGEewEFIzMjEAsOBgQCAgUhAgIPEjYGARKDI4FqA?= =?us-ascii?q?yELqmSBMoQ0AQsBg1wNgRqBCgaBDCgBjAWBf4QjPoIagiqDC4JYBJRFllBAC?= =?us-ascii?q?YIfhmiJWINtJ5hGhB6JPYdjgXqQQCGBWE0wCIMngk4XiGOFQT0DMIJPinsBA?= =?us-ascii?q?Q?= Received: from 40.6-247-81.adsl-dyn.isp.belgacom.be (HELO kalimero.tijl.coosemans.org) ([81.247.6.40]) by relay.skynet.be with ESMTP; 21 Aug 2019 23:46:53 +0200 Received: from localhost (localhost [127.0.0.1]) by kalimero.tijl.coosemans.org (8.15.2/8.15.2) with ESMTP id x7LLkqnU043143; Wed, 21 Aug 2019 23:46:53 +0200 (CEST) (envelope-from tijl@FreeBSD.org) Date: Wed, 21 Aug 2019 23:46:52 +0200 From: =?UTF-8?B?VMSzbA==?= Coosemans To: Konstantin Belousov , gecko@FreeBSD.org Cc: Dimitry Andric , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Marshall Clow Subject: Re: svn commit: r351253 - in head/contrib/libc++: include src Message-ID: <20190821234652.0ed2f345@FreeBSD.org> In-Reply-To: <20190821155231.GQ71821@kib.kiev.ua> References: <201908201739.x7KHdXvv054610@repo.freebsd.org> <20190821144908.7137e6bc@FreeBSD.org> <20190821155231.GQ71821@kib.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 46DLpm3MKmz4b8w X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-2.94 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.991,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; TAGGED_RCPT(0.00)[]; NEURAL_HAM_SHORT(-0.95)[-0.949,0]; ASN(0.00)[asn:5432, ipnet:195.238.0.0/19, country:BE] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 21:46:57 -0000 On Wed, 21 Aug 2019 18:52:31 +0300 Konstantin Belousov wrote: > On Wed, Aug 21, 2019 at 02:49:08PM +0200, T=C4=B3l Coosemans wrote: >> On Tue, 20 Aug 2019 17:39:33 +0000 (UTC) Dimitry Andric >> wrote: =20 >>> Author: dim >>> Date: Tue Aug 20 17:39:32 2019 >>> New Revision: 351253 >>> URL: https://svnweb.freebsd.org/changeset/base/351253 >>>=20 >>> Log: >>> Pull in r368867 from upstream libc++ trunk (by Marshall Clow): >>> =20 >>> Rework recursive_timed_mutex so that it uses __thread_id instead of >>> using the lower-level __libcpp_thread_id. This is prep for fixing >>> PR42918. Reviewed as https://reviews.llvm.org/D65895 >>> =20 >>> Pull in r368916 from upstream libc++ trunk (by Marshall Clow): >>> =20 >>> Fix thread comparison by making sure we never pass our special 'not= a >>> thread' value to the underlying implementation. Fixes PR#42918. >>> =20 >>> This should fix std::thread::id::operator=3D=3D() attempting to call >>> pthread_equal(3) with zero values. >>> =20 >>> Reported by: andrew@tao11.riddles.org.uk >>> PR: 239038, 239550 >>> MFC after: 3 days >>>=20 >>> Modified: >>> head/contrib/libc++/include/__threading_support >>> head/contrib/libc++/include/mutex >>> head/contrib/libc++/include/thread >>> head/contrib/libc++/src/mutex.cpp >>>=20 >>> Modified: head/contrib/libc++/include/__threading_support >>> =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/contrib/libc++/include/__threading_support Tue Aug 20 17:00:31= 2019 (r351252) >>> +++ head/contrib/libc++/include/__threading_support Tue Aug 20 17:39:32= 2019 (r351253) >>> @@ -13,6 +13,7 @@ >>> =20 >>> #include <__config> >>> #include >>> +#include >>> #include >>> =20 >>> #ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER >>> @@ -392,6 +393,86 @@ int __libcpp_tls_set(__libcpp_tls_key __key, void = *__p >>> } >>> =20 >>> #endif // !_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL || _LIBCPP_BUILDING_THR= EAD_LIBRARY_EXTERNAL >>> + >>> +class _LIBCPP_TYPE_VIS thread; =20 >>=20 >> This seems to break building Firefox: >>=20 >> In file included from /usr/ports/www/firefox/work/firefox-68.0.2/media/m= transport/nricectx.cpp:82: >> In file included from /usr/ports/www/firefox/work/firefox-68.0.2/media/m= transport/third_party/nICEr/src/stun/stun_client_ctx.h:41: >> In file included from /usr/ports/www/firefox/work/firefox-68.0.2/media/m= transport/third_party/nICEr/src/stun/stun.h:45: >> In file included from /usr/include/net/if_var.h:84: >> /usr/include/sys/lock.h:68:15: error: reference to 'thread' is ambiguous >> struct thread **owner); >> ^ >> /usr/include/sys/lock.h:42:8: note: candidate found by name lookup is 't= hread' >> struct thread; >> ^ >> /usr/include/c++/v1/__threading_support:397:24: note: candidate found by= name >> lookup is 'std::__1::thread' >> class _LIBCPP_TYPE_VIS thread; >> ^ >>=20 >>=20 >> This "class thread" conflicts with "struct thread" in sys/lock.h. >> Should everything in sys/lock.h be under #ifdef _KERNEL? =20 > Why does firefox pulls if_var.h at all ? (As I understand, this is how > the pollution occurs.) Right, it turns out it doesn't need it: --- media/mtransport/third_party/nICEr/src/stun/stun.h.orig 2019-08-13 = 18:06:44 UTC +++ media/mtransport/third_party/nICEr/src/stun/stun.h @@ -41,7 +41,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY O #include #ifndef LINUX #include -#if !defined(__OpenBSD__) && !defined(__NetBSD__) +#if !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__FreeBSD__) #include #endif #include From owner-svn-src-all@freebsd.org Wed Aug 21 22:17:56 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B34DAD5CF1; Wed, 21 Aug 2019 22:17:56 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DMVX50tVz4cy5; Wed, 21 Aug 2019 22:17:56 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8D51C2253A; Wed, 21 Aug 2019 22:17:56 +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 x7LMHutQ004914; Wed, 21 Aug 2019 22:17:56 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LMHtWs004908; Wed, 21 Aug 2019 22:17:55 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201908212217.x7LMHtWs004908@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 21 Aug 2019 22:17:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351355 - in head/sys: conf dev/nvme modules/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys: conf dev/nvme modules/nvme X-SVN-Commit-Revision: 351355 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 22:17:56 -0000 Author: imp Date: Wed Aug 21 22:17:55 2019 New Revision: 351355 URL: https://svnweb.freebsd.org/changeset/base/351355 Log: Separate the pci attachment from the rest of nvme Nvme drives can be attached in a number of different ways. Separate out the PCI attachment so that we can have other attachment types, like ahci and various types of NVMeoF. Submitted by: cognet@ Added: head/sys/dev/nvme/nvme_pci.c (contents, props changed) Modified: head/sys/conf/files head/sys/dev/nvme/nvme.c head/sys/dev/nvme/nvme_ctrlr.c head/sys/dev/nvme/nvme_private.h head/sys/modules/nvme/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Wed Aug 21 21:05:15 2019 (r351354) +++ head/sys/conf/files Wed Aug 21 22:17:55 2019 (r351355) @@ -2483,6 +2483,7 @@ dev/nvme/nvme_ctrlr.c optional nvme dev/nvme/nvme_ctrlr_cmd.c optional nvme dev/nvme/nvme_ns.c optional nvme dev/nvme/nvme_ns_cmd.c optional nvme +dev/nvme/nvme_pci.c optional nvme pci dev/nvme/nvme_qpair.c optional nvme dev/nvme/nvme_sim.c optional nvme scbus dev/nvme/nvme_sysctl.c optional nvme Modified: head/sys/dev/nvme/nvme.c ============================================================================== --- head/sys/dev/nvme/nvme.c Wed Aug 21 21:05:15 2019 (r351354) +++ head/sys/dev/nvme/nvme.c Wed Aug 21 22:17:55 2019 (r351355) @@ -36,9 +36,6 @@ __FBSDID("$FreeBSD$"); #include -#include -#include - #include "nvme_private.h" struct nvme_consumer { @@ -58,107 +55,8 @@ int32_t nvme_retry_count; MALLOC_DEFINE(M_NVME, "nvme", "nvme(4) memory allocations"); -static int nvme_probe(device_t); -static int nvme_attach(device_t); -static int nvme_detach(device_t); -static int nvme_shutdown(device_t); +devclass_t nvme_devclass; -static devclass_t nvme_devclass; - -static device_method_t nvme_pci_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, nvme_probe), - DEVMETHOD(device_attach, nvme_attach), - DEVMETHOD(device_detach, nvme_detach), - DEVMETHOD(device_shutdown, nvme_shutdown), - { 0, 0 } -}; - -static driver_t nvme_pci_driver = { - "nvme", - nvme_pci_methods, - sizeof(struct nvme_controller), -}; - -DRIVER_MODULE(nvme, pci, nvme_pci_driver, nvme_devclass, NULL, NULL); -MODULE_VERSION(nvme, 1); -MODULE_DEPEND(nvme, cam, 1, 1, 1); - -static struct _pcsid -{ - uint32_t devid; - int match_subdevice; - uint16_t subdevice; - const char *desc; - uint32_t quirks; -} pci_ids[] = { - { 0x01118086, 0, 0, "NVMe Controller" }, - { IDT32_PCI_ID, 0, 0, "IDT NVMe Controller (32 channel)" }, - { IDT8_PCI_ID, 0, 0, "IDT NVMe Controller (8 channel)" }, - { 0x09538086, 1, 0x3702, "DC P3700 SSD" }, - { 0x09538086, 1, 0x3703, "DC P3700 SSD [2.5\" SFF]" }, - { 0x09538086, 1, 0x3704, "DC P3500 SSD [Add-in Card]" }, - { 0x09538086, 1, 0x3705, "DC P3500 SSD [2.5\" SFF]" }, - { 0x09538086, 1, 0x3709, "DC P3600 SSD [Add-in Card]" }, - { 0x09538086, 1, 0x370a, "DC P3600 SSD [2.5\" SFF]" }, - { 0x00031c58, 0, 0, "HGST SN100", QUIRK_DELAY_B4_CHK_RDY }, - { 0x00231c58, 0, 0, "WDC SN200", QUIRK_DELAY_B4_CHK_RDY }, - { 0x05401c5f, 0, 0, "Memblaze Pblaze4", QUIRK_DELAY_B4_CHK_RDY }, - { 0xa821144d, 0, 0, "Samsung PM1725", QUIRK_DELAY_B4_CHK_RDY }, - { 0xa822144d, 0, 0, "Samsung PM1725a", QUIRK_DELAY_B4_CHK_RDY }, - { 0x01161179, 0, 0, "Toshiba XG5", QUIRK_DISABLE_TIMEOUT }, - { 0x00000000, 0, 0, NULL } -}; - -static int -nvme_match(uint32_t devid, uint16_t subdevice, struct _pcsid *ep) -{ - if (devid != ep->devid) - return 0; - - if (!ep->match_subdevice) - return 1; - - if (subdevice == ep->subdevice) - return 1; - else - return 0; -} - -static int -nvme_probe (device_t device) -{ - struct _pcsid *ep; - uint32_t devid; - uint16_t subdevice; - - devid = pci_get_devid(device); - subdevice = pci_get_subdevice(device); - ep = pci_ids; - - while (ep->devid) { - if (nvme_match(devid, subdevice, ep)) - break; - ++ep; - } - - if (ep->desc) { - device_set_desc(device, ep->desc); - return (BUS_PROBE_DEFAULT); - } - -#if defined(PCIS_STORAGE_NVM) - if (pci_get_class(device) == PCIC_STORAGE && - pci_get_subclass(device) == PCIS_STORAGE_NVM && - pci_get_progif(device) == PCIP_STORAGE_NVM_ENTERPRISE_NVMHCI_1_0) { - device_set_desc(device, "Generic NVMe Device"); - return (BUS_PROBE_GENERIC); - } -#endif - - return (ENXIO); -} - static void nvme_init(void) { @@ -181,7 +79,7 @@ nvme_uninit(void) SYSUNINIT(nvme_unregister, SI_SUB_DRIVERS, SI_ORDER_SECOND, nvme_uninit, NULL); -static int +int nvme_shutdown(device_t dev) { struct nvme_controller *ctrlr; @@ -225,25 +123,12 @@ nvme_dump_completion(struct nvme_completion *cpl) cpl->cid, p, sc, sct, m, dnr); } -static int +int nvme_attach(device_t dev) { struct nvme_controller *ctrlr = DEVICE2SOFTC(dev); int status; - struct _pcsid *ep; - uint32_t devid; - uint16_t subdevice; - devid = pci_get_devid(dev); - subdevice = pci_get_subdevice(dev); - ep = pci_ids; - while (ep->devid) { - if (nvme_match(devid, subdevice, ep)) - break; - ++ep; - } - ctrlr->quirks = ep->quirks; - status = nvme_ctrlr_construct(ctrlr, dev); if (status != 0) { @@ -252,32 +137,8 @@ nvme_attach(device_t dev) } /* - * Some drives do not implement the completion timeout feature - * correctly. There's a WAR from the manufacturer to just disable it. - * The driver wouldn't respond correctly to a timeout anyway. - */ - if (ep->quirks & QUIRK_DISABLE_TIMEOUT) { - int ptr; - uint16_t devctl2; - - status = pci_find_cap(dev, PCIY_EXPRESS, &ptr); - if (status) { - device_printf(dev, "Can't locate PCIe capability?"); - return (status); - } - devctl2 = pci_read_config(dev, ptr + PCIER_DEVICE_CTL2, sizeof(devctl2)); - devctl2 |= PCIEM_CTL2_COMP_TIMO_DISABLE; - pci_write_config(dev, ptr + PCIER_DEVICE_CTL2, devctl2, sizeof(devctl2)); - } - - /* - * Enable busmastering so the completion status messages can - * be busmastered back to the host. - */ - pci_enable_busmaster(dev); - - /* * Reset controller twice to ensure we do a transition from cc.en==1 + * Reset controller twice to ensure we do a transition from cc.en==1 * to cc.en==0. This is because we don't really know what status * the controller was left in when boot handed off to OS. */ @@ -301,13 +162,12 @@ nvme_attach(device_t dev) return (0); } -static int +int nvme_detach (device_t dev) { struct nvme_controller *ctrlr = DEVICE2SOFTC(dev); nvme_ctrlr_destruct(ctrlr, dev); - pci_disable_busmaster(dev); return (0); } Modified: head/sys/dev/nvme/nvme_ctrlr.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr.c Wed Aug 21 21:05:15 2019 (r351354) +++ head/sys/dev/nvme/nvme_ctrlr.c Wed Aug 21 22:17:55 2019 (r351355) @@ -42,50 +42,14 @@ __FBSDID("$FreeBSD$"); #include #include -#include -#include - #include "nvme_private.h" #define B4_CHK_RDY_DELAY_MS 2300 /* work around controller bug */ static void nvme_ctrlr_construct_and_submit_aer(struct nvme_controller *ctrlr, struct nvme_async_event_request *aer); -static void nvme_ctrlr_setup_interrupts(struct nvme_controller *ctrlr); static int -nvme_ctrlr_allocate_bar(struct nvme_controller *ctrlr) -{ - - ctrlr->resource_id = PCIR_BAR(0); - - ctrlr->resource = bus_alloc_resource_any(ctrlr->dev, SYS_RES_MEMORY, - &ctrlr->resource_id, RF_ACTIVE); - - if(ctrlr->resource == NULL) { - nvme_printf(ctrlr, "unable to allocate pci resource\n"); - return (ENOMEM); - } - - ctrlr->bus_tag = rman_get_bustag(ctrlr->resource); - ctrlr->bus_handle = rman_get_bushandle(ctrlr->resource); - ctrlr->regs = (struct nvme_registers *)ctrlr->bus_handle; - - /* - * The NVMe spec allows for the MSI-X table to be placed behind - * BAR 4/5, separate from the control/doorbell registers. Always - * try to map this bar, because it must be mapped prior to calling - * pci_alloc_msix(). If the table isn't behind BAR 4/5, - * bus_alloc_resource() will just return NULL which is OK. - */ - ctrlr->bar4_resource_id = PCIR_BAR(4); - ctrlr->bar4_resource = bus_alloc_resource_any(ctrlr->dev, SYS_RES_MEMORY, - &ctrlr->bar4_resource_id, RF_ACTIVE); - - return (0); -} - -static int nvme_ctrlr_construct_admin_qpair(struct nvme_controller *ctrlr) { struct nvme_qpair *qpair; @@ -876,9 +840,8 @@ nvme_ctrlr_start(void *ctrlr_arg) * the number of I/O queues supported, so cannot reset * the adminq again here. */ - if (ctrlr->is_resetting) { + if (ctrlr->is_resetting) nvme_qpair_reset(&ctrlr->adminq); - } for (i = 0; i < ctrlr->num_io_queues; i++) nvme_qpair_reset(&ctrlr->ioq[i]); @@ -1004,34 +967,6 @@ nvme_ctrlr_intx_handler(void *arg) nvme_mmio_write_4(ctrlr, intmc, 1); } -static int -nvme_ctrlr_configure_intx(struct nvme_controller *ctrlr) -{ - - ctrlr->msix_enabled = 0; - ctrlr->num_io_queues = 1; - ctrlr->num_cpus_per_ioq = mp_ncpus; - ctrlr->rid = 0; - ctrlr->res = bus_alloc_resource_any(ctrlr->dev, SYS_RES_IRQ, - &ctrlr->rid, RF_SHAREABLE | RF_ACTIVE); - - if (ctrlr->res == NULL) { - nvme_printf(ctrlr, "unable to allocate shared IRQ\n"); - return (ENOMEM); - } - - bus_setup_intr(ctrlr->dev, ctrlr->res, - INTR_TYPE_MISC | INTR_MPSAFE, NULL, nvme_ctrlr_intx_handler, - ctrlr, &ctrlr->tag); - - if (ctrlr->tag == NULL) { - nvme_printf(ctrlr, "unable to setup intx handler\n"); - return (ENOMEM); - } - - return (0); -} - static void nvme_pt_done(void *arg, const struct nvme_completion *cpl) { @@ -1177,88 +1112,6 @@ static struct cdevsw nvme_ctrlr_cdevsw = { .d_ioctl = nvme_ctrlr_ioctl }; -static void -nvme_ctrlr_setup_interrupts(struct nvme_controller *ctrlr) -{ - device_t dev; - int per_cpu_io_queues; - int min_cpus_per_ioq; - int num_vectors_requested, num_vectors_allocated; - int num_vectors_available; - - dev = ctrlr->dev; - min_cpus_per_ioq = 1; - TUNABLE_INT_FETCH("hw.nvme.min_cpus_per_ioq", &min_cpus_per_ioq); - - if (min_cpus_per_ioq < 1) { - min_cpus_per_ioq = 1; - } else if (min_cpus_per_ioq > mp_ncpus) { - min_cpus_per_ioq = mp_ncpus; - } - - per_cpu_io_queues = 1; - TUNABLE_INT_FETCH("hw.nvme.per_cpu_io_queues", &per_cpu_io_queues); - - if (per_cpu_io_queues == 0) { - min_cpus_per_ioq = mp_ncpus; - } - - ctrlr->force_intx = 0; - TUNABLE_INT_FETCH("hw.nvme.force_intx", &ctrlr->force_intx); - - /* - * FreeBSD currently cannot allocate more than about 190 vectors at - * boot, meaning that systems with high core count and many devices - * requesting per-CPU interrupt vectors will not get their full - * allotment. So first, try to allocate as many as we may need to - * understand what is available, then immediately release them. - * Then figure out how many of those we will actually use, based on - * assigning an equal number of cores to each I/O queue. - */ - - /* One vector for per core I/O queue, plus one vector for admin queue. */ - num_vectors_available = min(pci_msix_count(dev), mp_ncpus + 1); - if (pci_alloc_msix(dev, &num_vectors_available) != 0) { - num_vectors_available = 0; - } - pci_release_msi(dev); - - if (ctrlr->force_intx || num_vectors_available < 2) { - nvme_ctrlr_configure_intx(ctrlr); - return; - } - - /* - * Do not use all vectors for I/O queues - one must be saved for the - * admin queue. - */ - ctrlr->num_cpus_per_ioq = max(min_cpus_per_ioq, - howmany(mp_ncpus, num_vectors_available - 1)); - - ctrlr->num_io_queues = howmany(mp_ncpus, ctrlr->num_cpus_per_ioq); - num_vectors_requested = ctrlr->num_io_queues + 1; - num_vectors_allocated = num_vectors_requested; - - /* - * Now just allocate the number of vectors we need. This should - * succeed, since we previously called pci_alloc_msix() - * successfully returning at least this many vectors, but just to - * be safe, if something goes wrong just revert to INTx. - */ - if (pci_alloc_msix(dev, &num_vectors_allocated) != 0) { - nvme_ctrlr_configure_intx(ctrlr); - return; - } - - if (num_vectors_allocated < num_vectors_requested) { - pci_release_msi(dev); - nvme_ctrlr_configure_intx(ctrlr); - return; - } - - ctrlr->msix_enabled = 1; -} - int nvme_ctrlr_construct(struct nvme_controller *ctrlr, device_t dev) { @@ -1274,11 +1127,6 @@ nvme_ctrlr_construct(struct nvme_controller *ctrlr, de mtx_init(&ctrlr->lock, "nvme ctrlr lock", NULL, MTX_DEF); - status = nvme_ctrlr_allocate_bar(ctrlr); - - if (status != 0) - return (status); - /* * Software emulators may set the doorbell stride to something * other than zero, but this driver is not set up to handle that. @@ -1308,8 +1156,6 @@ nvme_ctrlr_construct(struct nvme_controller *ctrlr, de ctrlr->enable_aborts = 0; TUNABLE_INT_FETCH("hw.nvme.enable_aborts", &ctrlr->enable_aborts); - nvme_ctrlr_setup_interrupts(ctrlr); - ctrlr->max_xfer_size = NVME_MAX_XFER_SIZE; if (nvme_ctrlr_construct_admin_qpair(ctrlr) != 0) return (ENXIO); @@ -1394,9 +1240,6 @@ nvme_ctrlr_destruct(struct nvme_controller *ctrlr, dev if (ctrlr->res) bus_release_resource(ctrlr->dev, SYS_RES_IRQ, rman_get_rid(ctrlr->res), ctrlr->res); - - if (ctrlr->msix_enabled) - pci_release_msi(dev); if (ctrlr->bar4_resource != NULL) { bus_release_resource(dev, SYS_RES_MEMORY, Added: head/sys/dev/nvme/nvme_pci.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/nvme/nvme_pci.c Wed Aug 21 22:17:55 2019 (r351355) @@ -0,0 +1,333 @@ +/*- + * Copyright (C) 2012-2016 Intel Corporation + * 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 +#include +#include + +#include +#include + +#include "nvme_private.h" + +static int nvme_pci_probe(device_t); +static int nvme_pci_attach(device_t); +static int nvme_pci_detach(device_t); + +static void nvme_ctrlr_setup_interrupts(struct nvme_controller *ctrlr); + +static device_method_t nvme_pci_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, nvme_pci_probe), + DEVMETHOD(device_attach, nvme_pci_attach), + DEVMETHOD(device_detach, nvme_pci_detach), + DEVMETHOD(device_shutdown, nvme_shutdown), + { 0, 0 } +}; + +static driver_t nvme_pci_driver = { + "nvme", + nvme_pci_methods, + sizeof(struct nvme_controller), +}; + +DRIVER_MODULE(nvme, pci, nvme_pci_driver, nvme_devclass, NULL, 0); +MODULE_VERSION(nvme_pci, 1); + +static struct _pcsid +{ + uint32_t devid; + int match_subdevice; + uint16_t subdevice; + const char *desc; + uint32_t quirks; +} pci_ids[] = { + { 0x01118086, 0, 0, "NVMe Controller" }, + { IDT32_PCI_ID, 0, 0, "IDT NVMe Controller (32 channel)" }, + { IDT8_PCI_ID, 0, 0, "IDT NVMe Controller (8 channel)" }, + { 0x09538086, 1, 0x3702, "DC P3700 SSD" }, + { 0x09538086, 1, 0x3703, "DC P3700 SSD [2.5\" SFF]" }, + { 0x09538086, 1, 0x3704, "DC P3500 SSD [Add-in Card]" }, + { 0x09538086, 1, 0x3705, "DC P3500 SSD [2.5\" SFF]" }, + { 0x09538086, 1, 0x3709, "DC P3600 SSD [Add-in Card]" }, + { 0x09538086, 1, 0x370a, "DC P3600 SSD [2.5\" SFF]" }, + { 0x00031c58, 0, 0, "HGST SN100", QUIRK_DELAY_B4_CHK_RDY }, + { 0x00231c58, 0, 0, "WDC SN200", QUIRK_DELAY_B4_CHK_RDY }, + { 0x05401c5f, 0, 0, "Memblaze Pblaze4", QUIRK_DELAY_B4_CHK_RDY }, + { 0xa821144d, 0, 0, "Samsung PM1725", QUIRK_DELAY_B4_CHK_RDY }, + { 0xa822144d, 0, 0, "Samsung PM1725a", QUIRK_DELAY_B4_CHK_RDY }, + { 0x00000000, 0, 0, NULL } +}; + + +static int +nvme_match(uint32_t devid, uint16_t subdevice, struct _pcsid *ep) +{ + if (devid != ep->devid) + return 0; + + if (!ep->match_subdevice) + return 1; + + if (subdevice == ep->subdevice) + return 1; + else + return 0; +} + +static int +nvme_pci_probe (device_t device) +{ + struct nvme_controller *ctrlr = DEVICE2SOFTC(device); + struct _pcsid *ep; + uint32_t devid; + uint16_t subdevice; + + devid = pci_get_devid(device); + subdevice = pci_get_subdevice(device); + ep = pci_ids; + + while (ep->devid) { + if (nvme_match(devid, subdevice, ep)) + break; + ++ep; + } + if (ep->devid) + ctrlr->quirks = ep->quirks; + + if (ep->desc) { + device_set_desc(device, ep->desc); + return (BUS_PROBE_DEFAULT); + } + +#if defined(PCIS_STORAGE_NVM) + if (pci_get_class(device) == PCIC_STORAGE && + pci_get_subclass(device) == PCIS_STORAGE_NVM && + pci_get_progif(device) == PCIP_STORAGE_NVM_ENTERPRISE_NVMHCI_1_0) { + device_set_desc(device, "Generic NVMe Device"); + return (BUS_PROBE_GENERIC); + } +#endif + + return (ENXIO); +} + +static int +nvme_ctrlr_allocate_bar(struct nvme_controller *ctrlr) +{ + + ctrlr->resource_id = PCIR_BAR(0); + + ctrlr->resource = bus_alloc_resource_any(ctrlr->dev, SYS_RES_MEMORY, + &ctrlr->resource_id, RF_ACTIVE); + + if(ctrlr->resource == NULL) { + nvme_printf(ctrlr, "unable to allocate pci resource\n"); + return (ENOMEM); + } + + ctrlr->bus_tag = rman_get_bustag(ctrlr->resource); + ctrlr->bus_handle = rman_get_bushandle(ctrlr->resource); + ctrlr->regs = (struct nvme_registers *)ctrlr->bus_handle; + + /* + * The NVMe spec allows for the MSI-X table to be placed behind + * BAR 4/5, separate from the control/doorbell registers. Always + * try to map this bar, because it must be mapped prior to calling + * pci_alloc_msix(). If the table isn't behind BAR 4/5, + * bus_alloc_resource() will just return NULL which is OK. + */ + ctrlr->bar4_resource_id = PCIR_BAR(4); + ctrlr->bar4_resource = bus_alloc_resource_any(ctrlr->dev, SYS_RES_MEMORY, + &ctrlr->bar4_resource_id, RF_ACTIVE); + + return (0); +} + +static int +nvme_pci_attach(device_t dev) +{ + struct nvme_controller*ctrlr = DEVICE2SOFTC(dev); + int status; + + ctrlr->dev = dev; + status = nvme_ctrlr_allocate_bar(ctrlr); + if (status != 0) + goto bad; + pci_enable_busmaster(dev); + nvme_ctrlr_setup_interrupts(ctrlr); + return nvme_attach(dev); +bad: + if (ctrlr->resource != NULL) { + bus_release_resource(dev, SYS_RES_MEMORY, + ctrlr->resource_id, ctrlr->resource); + } + + if (ctrlr->bar4_resource != NULL) { + bus_release_resource(dev, SYS_RES_MEMORY, + ctrlr->bar4_resource_id, ctrlr->bar4_resource); + } + + if (ctrlr->tag) + bus_teardown_intr(dev, ctrlr->res, ctrlr->tag); + + if (ctrlr->res) + bus_release_resource(dev, SYS_RES_IRQ, + rman_get_rid(ctrlr->res), ctrlr->res); + + if (ctrlr->msix_enabled) + pci_release_msi(dev); + + return status; +} + +static int +nvme_pci_detach(device_t dev) +{ + struct nvme_controller*ctrlr = DEVICE2SOFTC(dev); + + if (ctrlr->msix_enabled) + pci_release_msi(dev); + pci_disable_busmaster(dev); + return (nvme_detach(dev)); +} + +static int +nvme_ctrlr_configure_intx(struct nvme_controller *ctrlr) +{ + + ctrlr->msix_enabled = 0; + ctrlr->num_io_queues = 1; + ctrlr->num_cpus_per_ioq = mp_ncpus; + ctrlr->rid = 0; + ctrlr->res = bus_alloc_resource_any(ctrlr->dev, SYS_RES_IRQ, + &ctrlr->rid, RF_SHAREABLE | RF_ACTIVE); + + if (ctrlr->res == NULL) { + nvme_printf(ctrlr, "unable to allocate shared IRQ\n"); + return (ENOMEM); + } + + bus_setup_intr(ctrlr->dev, ctrlr->res, + INTR_TYPE_MISC | INTR_MPSAFE, NULL, nvme_ctrlr_intx_handler, + ctrlr, &ctrlr->tag); + + if (ctrlr->tag == NULL) { + nvme_printf(ctrlr, "unable to setup intx handler\n"); + return (ENOMEM); + } + + return (0); +} + +static void +nvme_ctrlr_setup_interrupts(struct nvme_controller *ctrlr) +{ + device_t dev; + int per_cpu_io_queues; + int min_cpus_per_ioq; + int num_vectors_requested, num_vectors_allocated; + int num_vectors_available; + + dev = ctrlr->dev; + min_cpus_per_ioq = 1; + TUNABLE_INT_FETCH("hw.nvme.min_cpus_per_ioq", &min_cpus_per_ioq); + + if (min_cpus_per_ioq < 1) { + min_cpus_per_ioq = 1; + } else if (min_cpus_per_ioq > mp_ncpus) { + min_cpus_per_ioq = mp_ncpus; + } + + per_cpu_io_queues = 1; + TUNABLE_INT_FETCH("hw.nvme.per_cpu_io_queues", &per_cpu_io_queues); + + if (per_cpu_io_queues == 0) { + min_cpus_per_ioq = mp_ncpus; + } + + ctrlr->force_intx = 0; + TUNABLE_INT_FETCH("hw.nvme.force_intx", &ctrlr->force_intx); + + /* + * FreeBSD currently cannot allocate more than about 190 vectors at + * boot, meaning that systems with high core count and many devices + * requesting per-CPU interrupt vectors will not get their full + * allotment. So first, try to allocate as many as we may need to + * understand what is available, then immediately release them. + * Then figure out how many of those we will actually use, based on + * assigning an equal number of cores to each I/O queue. + */ + + /* One vector for per core I/O queue, plus one vector for admin queue. */ + num_vectors_available = min(pci_msix_count(dev), mp_ncpus + 1); + if (pci_alloc_msix(dev, &num_vectors_available) != 0) { + num_vectors_available = 0; + } + pci_release_msi(dev); + + if (ctrlr->force_intx || num_vectors_available < 2) { + nvme_ctrlr_configure_intx(ctrlr); + return; + } + + /* + * Do not use all vectors for I/O queues - one must be saved for the + * admin queue. + */ + ctrlr->num_cpus_per_ioq = max(min_cpus_per_ioq, + howmany(mp_ncpus, num_vectors_available - 1)); + + ctrlr->num_io_queues = howmany(mp_ncpus, ctrlr->num_cpus_per_ioq); + num_vectors_requested = ctrlr->num_io_queues + 1; + num_vectors_allocated = num_vectors_requested; + + /* + * Now just allocate the number of vectors we need. This should + * succeed, since we previously called pci_alloc_msix() + * successfully returning at least this many vectors, but just to + * be safe, if something goes wrong just revert to INTx. + */ + if (pci_alloc_msix(dev, &num_vectors_allocated) != 0) { + nvme_ctrlr_configure_intx(ctrlr); + return; + } + + if (num_vectors_allocated < num_vectors_requested) { + pci_release_msi(dev); + nvme_ctrlr_configure_intx(ctrlr); + return; + } + + ctrlr->msix_enabled = 1; +} Modified: head/sys/dev/nvme/nvme_private.h ============================================================================== --- head/sys/dev/nvme/nvme_private.h Wed Aug 21 21:05:15 2019 (r351354) +++ head/sys/dev/nvme/nvme_private.h Wed Aug 21 22:17:55 2019 (r351355) @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -122,6 +123,8 @@ struct nvme_completion_poll_status { int done; }; +extern devclass_t nvme_devclass; + #define NVME_REQUEST_VADDR 1 #define NVME_REQUEST_NULL 2 /* For requests with no payload. */ #define NVME_REQUEST_UIO 3 @@ -438,6 +441,10 @@ void nvme_sysctl_initialize_ctrlr(struct nvme_controll void nvme_dump_command(struct nvme_command *cmd); void nvme_dump_completion(struct nvme_completion *cpl); + +int nvme_attach(device_t dev); +int nvme_shutdown(device_t dev); +int nvme_detach(device_t dev); static __inline void nvme_single_map(void *arg, bus_dma_segment_t *seg, int nseg, int error) Modified: head/sys/modules/nvme/Makefile ============================================================================== --- head/sys/modules/nvme/Makefile Wed Aug 21 21:05:15 2019 (r351354) +++ head/sys/modules/nvme/Makefile Wed Aug 21 22:17:55 2019 (r351355) @@ -9,6 +9,7 @@ SRCS = nvme.c \ nvme_ctrlr_cmd.c \ nvme_ns.c \ nvme_ns_cmd.c \ + nvme_pci.c \ nvme_qpair.c \ nvme_sim.c \ nvme_sysctl.c \ From owner-svn-src-all@freebsd.org Wed Aug 21 22:18:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1DAE6D5D21; Wed, 21 Aug 2019 22:18:03 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DMVf75mhz4d59; Wed, 21 Aug 2019 22:18:02 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D63532253B; Wed, 21 Aug 2019 22:18:02 +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 x7LMI2ak004977; Wed, 21 Aug 2019 22:18:02 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LMI1kO004971; Wed, 21 Aug 2019 22:18:01 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201908212218.x7LMI1kO004971@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 21 Aug 2019 22:18:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351356 - in head/sys: conf dev/ahci dev/nvme modules/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys: conf dev/ahci dev/nvme modules/nvme X-SVN-Commit-Revision: 351356 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 22:18:03 -0000 Author: imp Date: Wed Aug 21 22:18:01 2019 New Revision: 351356 URL: https://svnweb.freebsd.org/changeset/base/351356 Log: Create a AHCI attachment for nvme. Intel has created RST and many laptops from vendors like Lenovo and Asus. It's a mechanism for creating multiple boot devices under windows. It effectively hides the nvme drive inside of the ahci controller. The details are supposed to be a trade secret. However, there's a reverse engineered Linux driver, and this implements similar operations to allow nvme drives to attach. The ahci driver attaches nvme children that proxy the remapped resources to the child. nvme_ahci is just like nvme_pci, except it doesn't do the PCI specific things. That's moved into ahci where appropriate. When the nvme drive is remapped, MSI-x interrupts aren't forwarded (the linux driver doesn't know how to use this either). INTx interrupts are used instead. This is suboptimal, but usually sufficient for the laptops these parts are in. This is based loosely on https://www.spinics.net/lists/linux-ide/msg53364.html submitted, but not accepted by, Linux. It was written by Dan Williams. These changes were written from scratch by Olivier Houchard. Submitted by: cognet@ (Olivier Houchard) Added: head/sys/dev/nvme/nvme_ahci.c (contents, props changed) Modified: head/sys/conf/files head/sys/dev/ahci/ahci.c head/sys/dev/ahci/ahci.h head/sys/dev/ahci/ahci_pci.c head/sys/modules/nvme/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Wed Aug 21 22:17:55 2019 (r351355) +++ head/sys/conf/files Wed Aug 21 22:18:01 2019 (r351356) @@ -2479,6 +2479,7 @@ dev/nmdm/nmdm.c optional nmdm dev/null/null.c standard dev/nvd/nvd.c optional nvd nvme dev/nvme/nvme.c optional nvme +dev/nvme/nvme_ahci.c optional nvme ahci dev/nvme/nvme_ctrlr.c optional nvme dev/nvme/nvme_ctrlr_cmd.c optional nvme dev/nvme/nvme_ns.c optional nvme Modified: head/sys/dev/ahci/ahci.c ============================================================================== --- head/sys/dev/ahci/ahci.c Wed Aug 21 22:17:55 2019 (r351355) +++ head/sys/dev/ahci/ahci.c Wed Aug 21 22:18:01 2019 (r351356) @@ -347,6 +347,16 @@ ahci_attach(device_t dev) if ((ctlr->ichannels & (1 << unit)) == 0) device_disable(child); } + /* Attach any remapped NVME device */ + for (; unit < ctlr->channels + ctlr->remapped_devices; unit++) { + child = device_add_child(dev, "nvme", -1); + if (child == NULL) { + device_printf(dev, "failed to add remapped NVMe device"); + continue; + } + device_set_ivars(child, (void *)(intptr_t)(unit | AHCI_REMAPPED_UNIT)); + } + if (ctlr->caps & AHCI_CAP_EMS) { child = device_add_child(dev, "ahciem", -1); if (child == NULL) @@ -497,6 +507,12 @@ ahci_intr(void *data) ctlr->interrupt[unit].function(arg); } } + for (; unit < ctlr->channels + ctlr->remapped_devices; unit++) { + if ((arg = ctlr->interrupt[unit].argument)) { + ctlr->interrupt[unit].function(arg); + } + } + /* AHCI declares level triggered IS. */ if (!(ctlr->quirks & AHCI_Q_EDGEIS)) ATA_OUTL(ctlr->r_mem, AHCI_IS, is); @@ -546,12 +562,23 @@ ahci_alloc_resource(device_t dev, device_t child, int struct resource *res; rman_res_t st; int offset, size, unit; + bool is_remapped; unit = (intptr_t)device_get_ivars(child); + if (unit & AHCI_REMAPPED_UNIT) { + unit &= ~AHCI_REMAPPED_UNIT; + unit -= ctlr->channels; + is_remapped = true; + } else + is_remapped = false; res = NULL; switch (type) { case SYS_RES_MEMORY: - if (unit >= 0) { + if (is_remapped) { + offset = ctlr->remap_offset + unit * ctlr->remap_size; + size = ctlr->remap_size; + } + else if (unit >= 0) { offset = AHCI_OFFSET + (unit << 7); size = 128; } else if (*rid == 0) { @@ -612,7 +639,7 @@ ahci_setup_intr(device_t dev, device_t child, struct r void *argument, void **cookiep) { struct ahci_controller *ctlr = device_get_softc(dev); - int unit = (intptr_t)device_get_ivars(child); + int unit = (intptr_t)device_get_ivars(child) & ~AHCI_REMAPPED_UNIT; if (filter != NULL) { printf("ahci.c: we cannot use a filter here\n"); @@ -628,7 +655,7 @@ ahci_teardown_intr(device_t dev, device_t child, struc void *cookie) { struct ahci_controller *ctlr = device_get_softc(dev); - int unit = (intptr_t)device_get_ivars(child); + int unit = (intptr_t)device_get_ivars(child) & ~AHCI_REMAPPED_UNIT; ctlr->interrupt[unit].function = NULL; ctlr->interrupt[unit].argument = NULL; @@ -641,7 +668,7 @@ ahci_print_child(device_t dev, device_t child) int retval, channel; retval = bus_print_child_header(dev, child); - channel = (int)(intptr_t)device_get_ivars(child); + channel = (int)(intptr_t)device_get_ivars(child) & ~AHCI_REMAPPED_UNIT; if (channel >= 0) retval += printf(" at channel %d", channel); retval += bus_print_child_footer(dev, child); @@ -654,7 +681,7 @@ ahci_child_location_str(device_t dev, device_t child, { int channel; - channel = (int)(intptr_t)device_get_ivars(child); + channel = (int)(intptr_t)device_get_ivars(child) & ~AHCI_REMAPPED_UNIT; if (channel >= 0) snprintf(buf, buflen, "channel=%d", channel); return (0); Modified: head/sys/dev/ahci/ahci.h ============================================================================== --- head/sys/dev/ahci/ahci.h Wed Aug 21 22:17:55 2019 (r351355) +++ head/sys/dev/ahci/ahci.h Wed Aug 21 22:18:01 2019 (r351356) @@ -214,6 +214,7 @@ #define AHCI_CAP2_SADM 0x00000010 #define AHCI_CAP2_DESO 0x00000020 +#define AHCI_VSCAP 0xa4 #define AHCI_OFFSET 0x100 #define AHCI_STEP 0x80 @@ -318,6 +319,10 @@ /* Total main work area. */ #define AHCI_WORK_SIZE (AHCI_CT_OFFSET + AHCI_CT_SIZE * ch->numslots) + +/* NVMe remapped device */ +#define AHCI_REMAPPED_UNIT (1 << 31) + struct ahci_dma_prd { u_int64_t dba; u_int32_t reserved; @@ -518,6 +523,9 @@ struct ahci_controller { int cccv; /* CCC vector */ int direct; /* Direct command completion */ int msi; /* MSI interupts */ + int remapped_devices; /* Remapped NVMe devices */ + uint32_t remap_offset; + uint32_t remap_size; struct { void (*function)(void *); void *argument; Modified: head/sys/dev/ahci/ahci_pci.c ============================================================================== --- head/sys/dev/ahci/ahci_pci.c Wed Aug 21 22:17:55 2019 (r351355) +++ head/sys/dev/ahci/ahci_pci.c Wed Aug 21 22:18:01 2019 (r351356) @@ -495,6 +495,48 @@ ahci_pci_attach(device_t dev) &ctlr->r_rid, RF_ACTIVE))) return ENXIO; + /* + * Intel RAID hardware can remap NVMe devices inside its BAR. + * Try to detect this. Either we have to add the device + * here, or the user has to change the mode in the BIOS + * from RST to AHCI. + */ + if (pci_get_vendor(dev) == 0x8086) { + uint32_t vscap; + + vscap = ATA_INL(ctlr->r_mem, AHCI_VSCAP); + if (vscap & 1) { + uint32_t cap = ATA_INL(ctlr->r_mem, 0x800); /* Intel's REMAP CAP */ + int i; + + ctlr->remap_offset = 0x4000; + ctlr->remap_size = 0x4000; + + /* + * Check each of the devices that might be remapped to + * make sure they are an nvme device. At the present, + * nvme are the only known devices remapped. + */ + for (i = 0; i < 3; i++) { + if (cap & (1 << i) && + (ATA_INL(ctlr->r_mem, 0x880 + i * 0x80) == + ((PCIC_STORAGE << 16) | + (PCIS_STORAGE_NVM << 8) | + PCIP_STORAGE_NVM_ENTERPRISE_NVMHCI_1_0))) { + ctlr->remapped_devices++; + } + } + + /* If we have any remapped device, disable MSI */ + if (ctlr->remapped_devices > 0) { + device_printf(dev, "Detected %d nvme remapped devices\n", + ctlr->remapped_devices); + ctlr->quirks |= (AHCI_Q_NOMSIX | AHCI_Q_NOMSI); + } + } + } + + if (ctlr->quirks & AHCI_Q_NOMSIX) msix_count = 0; Added: head/sys/dev/nvme/nvme_ahci.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/nvme/nvme_ahci.c Wed Aug 21 22:18:01 2019 (r351356) @@ -0,0 +1,127 @@ +/*- + * Copyright (C) 2017 Olivier Houchard + * + * 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 + +#include "nvme_private.h" + +static int nvme_ahci_probe(device_t dev); +static int nvme_ahci_attach(device_t dev); +static int nvme_ahci_detach(device_t dev); + +static device_method_t nvme_ahci_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, nvme_ahci_probe), + DEVMETHOD(device_attach, nvme_ahci_attach), + DEVMETHOD(device_detach, nvme_ahci_detach), + DEVMETHOD(device_shutdown, nvme_shutdown), + { 0, 0 } +}; + +static driver_t nvme_ahci_driver = { + "nvme", + nvme_ahci_methods, + sizeof(struct nvme_controller), +}; + +DRIVER_MODULE(nvme, ahci, nvme_ahci_driver, nvme_devclass, NULL, 0); +MODULE_VERSION(nvme_ahci, 1); + +static int +nvme_ahci_probe (device_t device) +{ + return (0); +} + +static int +nvme_ahci_attach(device_t dev) +{ + struct nvme_controller*ctrlr = DEVICE2SOFTC(dev); + int ret; + + /* Map MMIO registers */ + ctrlr->resource_id = 0; + + ctrlr->resource = bus_alloc_resource_any(dev, SYS_RES_MEMORY, + &ctrlr->resource_id, RF_ACTIVE); + + if(ctrlr->resource == NULL) { + nvme_printf(ctrlr, "unable to allocate mem resource\n"); + ret = ENOMEM; + goto bad; + } + ctrlr->bus_tag = rman_get_bustag(ctrlr->resource); + ctrlr->bus_handle = rman_get_bushandle(ctrlr->resource); + ctrlr->regs = (struct nvme_registers *)ctrlr->bus_handle; + + /* Allocate and setup IRQ */ + ctrlr->rid = 0; + ctrlr->res = bus_alloc_resource_any(dev, SYS_RES_IRQ, + &ctrlr->rid, RF_SHAREABLE | RF_ACTIVE); + + if (ctrlr->res == NULL) { + nvme_printf(ctrlr, "unable to allocate shared IRQ\n"); + ret = ENOMEM; + goto bad; + } + + ctrlr->msix_enabled = 0; + ctrlr->num_io_queues = 1; + ctrlr->num_cpus_per_ioq = mp_ncpus; + if (bus_setup_intr(dev, ctrlr->res, + INTR_TYPE_MISC | INTR_MPSAFE, NULL, nvme_ctrlr_intx_handler, + ctrlr, &ctrlr->tag) != 0) { + nvme_printf(ctrlr, "unable to setup intx handler\n"); + ret = ENOMEM; + goto bad; + } + ctrlr->tag = (void *)0x1; + + return nvme_attach(dev); +bad: + if (ctrlr->resource != NULL) { + bus_release_resource(dev, SYS_RES_MEMORY, + ctrlr->resource_id, ctrlr->resource); + } + if (ctrlr->res) + bus_release_resource(ctrlr->dev, SYS_RES_IRQ, + rman_get_rid(ctrlr->res), ctrlr->res); + return (ret); +} + +static int +nvme_ahci_detach(device_t dev) +{ + + return (nvme_detach(dev)); +} Modified: head/sys/modules/nvme/Makefile ============================================================================== --- head/sys/modules/nvme/Makefile Wed Aug 21 22:17:55 2019 (r351355) +++ head/sys/modules/nvme/Makefile Wed Aug 21 22:18:01 2019 (r351356) @@ -5,6 +5,7 @@ KMOD = nvme SRCS = nvme.c \ + nvme_ahci.c \ nvme_ctrlr.c \ nvme_ctrlr_cmd.c \ nvme_ns.c \ From owner-svn-src-all@freebsd.org Wed Aug 21 22:18:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4700DD5D60; Wed, 21 Aug 2019 22:18:08 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DMVm0mfvz4dCQ; Wed, 21 Aug 2019 22:18:08 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EF6C82253C; Wed, 21 Aug 2019 22:18:07 +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 x7LMI7Ws005032; Wed, 21 Aug 2019 22:18:07 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LMI7vg005030; Wed, 21 Aug 2019 22:18:07 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201908212218.x7LMI7vg005030@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 21 Aug 2019 22:18:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351357 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 351357 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 22:18:08 -0000 Author: imp Date: Wed Aug 21 22:18:07 2019 New Revision: 351357 URL: https://svnweb.freebsd.org/changeset/base/351357 Log: Document RST support in nvme(4) and ahci(4). Modified: head/share/man/man4/ahci.4 head/share/man/man4/nvme.4 Modified: head/share/man/man4/ahci.4 ============================================================================== --- head/share/man/man4/ahci.4 Wed Aug 21 22:18:01 2019 (r351356) +++ head/share/man/man4/ahci.4 Wed Aug 21 22:18:07 2019 (r351357) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 2, 2018 +.Dd August 21, 2019 .Dt AHCI 4 .Os .Sh NAME @@ -153,6 +153,26 @@ subclass 6 (SATA) and programming interface 1 (AHCI). Also, in cooperation with atamarvell and atajmicron drivers of ata(4), it supports AHCI part of legacy-PATA + AHCI-SATA combined controllers, such as JMicron JMB36x and Marvell 88SE61xx. +.Pp +The +.Nm +driver also supports AHCI devices that act as PCI bridges for +.Xr nvme 4 +using Intel Rapid Storage Technology (RST). +To use the +.Xr nvme 4 +device, either one must set the SATA mode in the BIOS to AHCI (from RST), +or one must accept the performance with RST enabled due to interrupt sharing. +.Fx +will automatically detect AHCI devices with this extension that are in RST +mode. +When that happens, +.Nm +will attach +.Xr nvme 4 +children to the +.Xr ahci 4 +device. .Sh FILES .Bl -tag -width /dev/led/ahcich*.locate .It Pa /dev/led/ahci*.*.act Modified: head/share/man/man4/nvme.4 ============================================================================== --- head/share/man/man4/nvme.4 Wed Aug 21 22:18:01 2019 (r351356) +++ head/share/man/man4/nvme.4 Wed Aug 21 22:18:07 2019 (r351357) @@ -33,7 +33,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 18, 2019 +.Dd August 21, 2019 .Dt NVME 4 .Os .Sh NAME @@ -207,6 +207,23 @@ with a completion entry that was posted by the control (W) Writing 1 to this sysctl will dump the full contents of the submission and completion queues to the console. .El +.Pp +In addition to the typical pci attachment, the +.Nm +driver supports attaching to a +.Xr ahci 4 +device. +Intel's Rapid Storage Technology (RST) hides the nvme device +behind the AHCI device due to limitations in Windows. +However, this effectively hides it from the +.Fx +kernel. +To work around this limitation, +.Fx +detects that the AHCI device supports RST and when it is enabled. +See +.Xr ahci 4 +for more details. .Sh SEE ALSO .Xr nda 4 , .Xr nvd 4 , From owner-svn-src-all@freebsd.org Wed Aug 21 22:42:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A5002D677E; Wed, 21 Aug 2019 22:42:12 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DN2X3tYRz4fky; Wed, 21 Aug 2019 22:42:12 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 67C0022A87; Wed, 21 Aug 2019 22:42:12 +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 x7LMgC3o022235; Wed, 21 Aug 2019 22:42:12 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LMg9jA022221; Wed, 21 Aug 2019 22:42:09 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908212242.x7LMg9jA022221@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 21 Aug 2019 22:42:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351358 - in stable: 11/share/man/man9 11/sys/kern 11/sys/kgssapi/krb5 11/sys/netipsec 11/sys/opencrypto 11/sys/sys 12/share/man/man9 12/sys/kern 12/sys/kgssapi/krb5 12/sys/netipsec 12/... X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/share/man/man9 11/sys/kern 11/sys/kgssapi/krb5 11/sys/netipsec 11/sys/opencrypto 11/sys/sys 12/share/man/man9 12/sys/kern 12/sys/kgssapi/krb5 12/sys/netipsec 12/sys/opencrypto 12/sys/sys X-SVN-Commit-Revision: 351358 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 22:42:12 -0000 Author: jhb Date: Wed Aug 21 22:42:08 2019 New Revision: 351358 URL: https://svnweb.freebsd.org/changeset/base/351358 Log: MFC 348970,348974: Make the warning intervals for deprecated crypto algorithms tunable. 348970: Make the warning intervals for deprecated crypto algorithms tunable. New sysctl/tunables can now set the interval (in seconds) between rate-limited crypto warnings. The new sysctls are: - kern.cryptodev_warn_interval for /dev/crypto - net.inet.ipsec.crypto_warn_interval for IPsec - kern.kgssapi_warn_interval for KGSSAPI 348974: Move declaration of warninterval out from under COMPAT_FREEBSD32. This fixes builds of kernels without COMPAT_FREEBSD32. Modified: stable/12/share/man/man9/Makefile stable/12/share/man/man9/sysctl.9 stable/12/sys/kern/kern_sysctl.c stable/12/sys/kgssapi/krb5/kcrypto.c stable/12/sys/kgssapi/krb5/kcrypto.h stable/12/sys/kgssapi/krb5/kcrypto_arcfour.c stable/12/sys/kgssapi/krb5/kcrypto_des.c stable/12/sys/kgssapi/krb5/kcrypto_des3.c stable/12/sys/netipsec/ipsec.c stable/12/sys/netipsec/ipsec.h stable/12/sys/netipsec/xform_ah.c stable/12/sys/netipsec/xform_esp.c stable/12/sys/opencrypto/cryptodev.c stable/12/sys/sys/sysctl.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/share/man/man9/Makefile stable/11/share/man/man9/sysctl.9 stable/11/sys/kern/kern_sysctl.c stable/11/sys/kgssapi/krb5/kcrypto.c stable/11/sys/kgssapi/krb5/kcrypto.h stable/11/sys/kgssapi/krb5/kcrypto_arcfour.c stable/11/sys/kgssapi/krb5/kcrypto_des.c stable/11/sys/kgssapi/krb5/kcrypto_des3.c stable/11/sys/netipsec/ipsec.c stable/11/sys/netipsec/ipsec.h stable/11/sys/netipsec/xform_ah.c stable/11/sys/netipsec/xform_esp.c stable/11/sys/opencrypto/cryptodev.c stable/11/sys/sys/sysctl.h Directory Properties: stable/11/ (props changed) Modified: stable/12/share/man/man9/Makefile ============================================================================== --- stable/12/share/man/man9/Makefile Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/share/man/man9/Makefile Wed Aug 21 22:42:08 2019 (r351358) @@ -2006,6 +2006,7 @@ MLINKS+=sysctl.9 SYSCTL_DECL.9 \ sysctl.9 SYSCTL_ADD_S64.9 \ sysctl.9 SYSCTL_ADD_STRING.9 \ sysctl.9 SYSCTL_ADD_STRUCT.9 \ + sysctl.9 SYSCTL_ADD_TIMEVAL_SEC.9 \ sysctl.9 SYSCTL_ADD_U8.9 \ sysctl.9 SYSCTL_ADD_U16.9 \ sysctl.9 SYSCTL_ADD_U32.9 \ @@ -2034,6 +2035,7 @@ MLINKS+=sysctl.9 SYSCTL_DECL.9 \ sysctl.9 SYSCTL_S64.9 \ sysctl.9 SYSCTL_STRING.9 \ sysctl.9 SYSCTL_STRUCT.9 \ + sysctl.9 SYSCTL_TIMEVAL_SEC.9 \ sysctl.9 SYSCTL_U8.9 \ sysctl.9 SYSCTL_U16.9 \ sysctl.9 SYSCTL_U32.9 \ Modified: stable/12/share/man/man9/sysctl.9 ============================================================================== --- stable/12/share/man/man9/sysctl.9 Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/share/man/man9/sysctl.9 Wed Aug 21 22:42:08 2019 (r351358) @@ -45,6 +45,7 @@ .Nm SYSCTL_ADD_STRING , .Nm SYSCTL_ADD_CONST_STRING , .Nm SYSCTL_ADD_STRUCT , +.Nm SYSCTL_ADD_TIMEVAL_SEC , .Nm SYSCTL_ADD_U8 , .Nm SYSCTL_ADD_U16 , .Nm SYSCTL_ADD_U32 , @@ -74,6 +75,7 @@ .Nm SYSCTL_STRING , .Nm SYSCTL_CONST_STRING , .Nm SYSCTL_STRUCT , +.Nm SYSCTL_TIMEVAL_SEC , .Nm SYSCTL_U8 , .Nm SYSCTL_U16 , .Nm SYSCTL_U32 , @@ -249,6 +251,16 @@ .Fa "const char *descr" .Fc .Ft struct sysctl_oid * +.Fo SYSCTL_ADD_TIMEVAL_SEC +.Fa "struct sysctl_ctx_list *ctx" +.Fa "struct sysctl_oid_list *parent" +.Fa "int number" +.Fa "const char *name" +.Fa "int ctlflags" +.Fa "struct timeval *ptr" +.Fa "const char *descr" +.Fc +.Ft struct sysctl_oid * .Fo SYSCTL_ADD_U8 .Fa "struct sysctl_ctx_list *ctx" .Fa "struct sysctl_oid_list *parent" @@ -368,6 +380,7 @@ .Fn SYSCTL_STRING parent number name ctlflags arg len descr .Fn SYSCTL_CONST_STRING parent number name ctlflags arg descr .Fn SYSCTL_STRUCT parent number name ctlflags ptr struct_type descr +.Fn SYSCTL_TIMEVAL_SEC parent number name ctlflags ptr descr .Fn SYSCTL_U8 parent number name ctlflags ptr val descr .Fn SYSCTL_U16 parent number name ctlflags ptr val descr .Fn SYSCTL_U32 parent number name ctlflags ptr val descr @@ -537,6 +550,21 @@ Similarly, .Fn sysctl_msec_to_ticks accepts new values in milliseconds and stores an equivalent value in ticks to .Fa *arg2 . +.Pp +The +.Fn SYSCTL_ADD_TIMEVAL_SEC +function and +.Fn SYSCTL_TIMEVAL_SEC +macro create nodes which export an in-kernel variable of type +.Vt struct timeval . +These nodes do not export full value of the associated structure. +Instead, they export a count in seconds as a simple integer which is +stored in the +.Fa tv_sec +field of the associated variable. +This function and macro are intended to be used with variables which +store a non-negative interval rather than an absolute time. +As a result, they reject attempts to store negative values. .Sh CREATING ROOT NODES Sysctl MIBs or OIDs are created in a hierarchical tree. The nodes at the bottom of the tree are called root nodes, and have no @@ -614,6 +642,7 @@ Static sysctls are declared using one of the .Fn SYSCTL_STRING , .Fn SYSCTL_CONST_STRING , .Fn SYSCTL_STRUCT , +.Fn SYSCTL_TIMEVAL_SEC , .Fn SYSCTL_U8 , .Fn SYSCTL_U16 , .Fn SYSCTL_U32 , @@ -640,6 +669,7 @@ Dynamic nodes are created using one of the .Fn SYSCTL_ADD_STRING , .Fn SYSCTL_ADD_CONST_STRING , .Fn SYSCTL_ADD_STRUCT , +.Fn SYSCTL_ADD_TIMEVAL_SEC , .Fn SYSCTL_ADD_U8 , .Fn SYSCTL_ADD_U16 , .Fn SYSCTL_ADD_U32 , Modified: stable/12/sys/kern/kern_sysctl.c ============================================================================== --- stable/12/sys/kern/kern_sysctl.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/sys/kern/kern_sysctl.c Wed Aug 21 22:42:08 2019 (r351358) @@ -1694,6 +1694,30 @@ retry: } /* + * Convert seconds to a struct timeval. Intended for use with + * intervals and thus does not permit negative seconds. + */ +int +sysctl_sec_to_timeval(SYSCTL_HANDLER_ARGS) +{ + struct timeval *tv; + int error, secs; + + tv = arg1; + secs = tv->tv_sec; + + error = sysctl_handle_int(oidp, &secs, 0, req); + if (error || req->newptr == NULL) + return (error); + + if (secs < 0) + return (EINVAL); + tv->tv_sec = secs; + + return (0); +} + +/* * Transfer functions to/from kernel space. * XXX: rather untested at this point */ Modified: stable/12/sys/kgssapi/krb5/kcrypto.c ============================================================================== --- stable/12/sys/kgssapi/krb5/kcrypto.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/sys/kgssapi/krb5/kcrypto.c Wed Aug 21 22:42:08 2019 (r351358) @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -49,6 +50,11 @@ static struct krb5_encryption_class *krb5_encryption_c &krb5_arcfour_56_encryption_class, NULL }; + +struct timeval krb5_warn_interval = { .tv_sec = 3600, .tv_usec = 0 }; +SYSCTL_TIMEVAL_SEC(_kern, OID_AUTO, kgssapi_warn_interval, CTLFLAG_RW, + &krb5_warn_interval, + "Delay in seconds between warnings of deprecated KGSSAPI crypto."); struct krb5_encryption_class * krb5_find_encryption_class(int etype) Modified: stable/12/sys/kgssapi/krb5/kcrypto.h ============================================================================== --- stable/12/sys/kgssapi/krb5/kcrypto.h Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/sys/kgssapi/krb5/kcrypto.h Wed Aug 21 22:42:08 2019 (r351358) @@ -101,6 +101,7 @@ extern struct krb5_encryption_class krb5_aes128_encryp extern struct krb5_encryption_class krb5_aes256_encryption_class; extern struct krb5_encryption_class krb5_arcfour_encryption_class; extern struct krb5_encryption_class krb5_arcfour_56_encryption_class; +extern struct timeval krb5_warn_interval; static __inline void krb5_set_key(struct krb5_key_state *ks, const void *keydata) Modified: stable/12/sys/kgssapi/krb5/kcrypto_arcfour.c ============================================================================== --- stable/12/sys/kgssapi/krb5/kcrypto_arcfour.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/sys/kgssapi/krb5/kcrypto_arcfour.c Wed Aug 21 22:42:08 2019 (r351358) @@ -47,10 +47,9 @@ static void arcfour_init(struct krb5_key_state *ks) { static struct timeval lastwarn; - static struct timeval warninterval = { .tv_sec = 3600, .tv_usec = 0 }; ks->ks_priv = NULL; - if (ratecheck(&lastwarn, &warninterval)) + if (ratecheck(&lastwarn, &krb5_warn_interval)) gone_in(13, "RC4 cipher for Kerberos GSS"); } Modified: stable/12/sys/kgssapi/krb5/kcrypto_des.c ============================================================================== --- stable/12/sys/kgssapi/krb5/kcrypto_des.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/sys/kgssapi/krb5/kcrypto_des.c Wed Aug 21 22:42:08 2019 (r351358) @@ -54,13 +54,12 @@ static void des1_init(struct krb5_key_state *ks) { static struct timeval lastwarn; - static struct timeval warninterval = { .tv_sec = 3600, .tv_usec = 0 }; struct des1_state *ds; ds = malloc(sizeof(struct des1_state), M_GSSAPI, M_WAITOK|M_ZERO); mtx_init(&ds->ds_lock, "gss des lock", NULL, MTX_DEF); ks->ks_priv = ds; - if (ratecheck(&lastwarn, &warninterval)) + if (ratecheck(&lastwarn, &krb5_warn_interval)) gone_in(13, "DES cipher for Kerberos GSS"); } Modified: stable/12/sys/kgssapi/krb5/kcrypto_des3.c ============================================================================== --- stable/12/sys/kgssapi/krb5/kcrypto_des3.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/sys/kgssapi/krb5/kcrypto_des3.c Wed Aug 21 22:42:08 2019 (r351358) @@ -55,13 +55,12 @@ static void des3_init(struct krb5_key_state *ks) { static struct timeval lastwarn; - static struct timeval warninterval = { .tv_sec = 3600, .tv_usec = 0 }; struct des3_state *ds; ds = malloc(sizeof(struct des3_state), M_GSSAPI, M_WAITOK|M_ZERO); mtx_init(&ds->ds_lock, "gss des3 lock", NULL, MTX_DEF); ks->ks_priv = ds; - if (ratecheck(&lastwarn, &warninterval)) + if (ratecheck(&lastwarn, &krb5_warn_interval)) gone_in(13, "DES3 cipher for Kerberos GSS"); } Modified: stable/12/sys/netipsec/ipsec.c ============================================================================== --- stable/12/sys/netipsec/ipsec.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/sys/netipsec/ipsec.c Wed Aug 21 22:42:08 2019 (r351358) @@ -216,6 +216,11 @@ SYSCTL_INT(_net_inet_ipsec, OID_AUTO, filtertunnel, SYSCTL_VNET_PCPUSTAT(_net_inet_ipsec, OID_AUTO, ipsecstats, struct ipsecstat, ipsec4stat, "IPsec IPv4 statistics."); +struct timeval ipsec_warn_interval = { .tv_sec = 1, .tv_usec = 0 }; +SYSCTL_TIMEVAL_SEC(_net_inet_ipsec, OID_AUTO, crypto_warn_interval, CTLFLAG_RW, + &ipsec_warn_interval, + "Delay in seconds between warnings of deprecated IPsec crypto algorithms."); + #ifdef REGRESSION /* * When set to 1, IPsec will send packets with the same sequence number. Modified: stable/12/sys/netipsec/ipsec.h ============================================================================== --- stable/12/sys/netipsec/ipsec.h Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/sys/netipsec/ipsec.h Wed Aug 21 22:42:08 2019 (r351358) @@ -287,6 +287,8 @@ VNET_DECLARE(int, crypto_support); VNET_DECLARE(int, async_crypto); VNET_DECLARE(int, natt_cksum_policy); +extern struct timeval ipsec_warn_interval; + #define IPSECSTAT_INC(name) \ VNET_PCPUSTAT_ADD(struct ipsecstat, ipsec4stat, name, 1) #define V_ip4_esp_trans_deflev VNET(ip4_esp_trans_deflev) Modified: stable/12/sys/netipsec/xform_ah.c ============================================================================== --- stable/12/sys/netipsec/xform_ah.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/sys/netipsec/xform_ah.c Wed Aug 21 22:42:08 2019 (r351358) @@ -109,7 +109,6 @@ SYSCTL_VNET_PCPUSTAT(_net_inet_ah, IPSECCTL_STATS, sta static unsigned char ipseczeroes[256]; /* larger than an ip6 extension hdr */ static struct timeval md5warn, ripewarn, kpdkmd5warn, kpdksha1warn; -static struct timeval warninterval = { .tv_sec = 1, .tv_usec = 0 }; static int ah_input_cb(struct cryptop*); static int ah_output_cb(struct cryptop*); @@ -189,19 +188,19 @@ ah_init0(struct secasvar *sav, struct xformsw *xsp, st switch (sav->alg_auth) { case SADB_AALG_MD5HMAC: - if (ratecheck(&md5warn, &warninterval)) + if (ratecheck(&md5warn, &ipsec_warn_interval)) gone_in(13, "MD5-HMAC authenticator for IPsec"); break; case SADB_X_AALG_RIPEMD160HMAC: - if (ratecheck(&ripewarn, &warninterval)) + if (ratecheck(&ripewarn, &ipsec_warn_interval)) gone_in(13, "RIPEMD160-HMAC authenticator for IPsec"); break; case SADB_X_AALG_MD5: - if (ratecheck(&kpdkmd5warn, &warninterval)) + if (ratecheck(&kpdkmd5warn, &ipsec_warn_interval)) gone_in(13, "Keyed-MD5 authenticator for IPsec"); break; case SADB_X_AALG_SHA: - if (ratecheck(&kpdksha1warn, &warninterval)) + if (ratecheck(&kpdksha1warn, &ipsec_warn_interval)) gone_in(13, "Keyed-SHA1 authenticator for IPsec"); break; } Modified: stable/12/sys/netipsec/xform_esp.c ============================================================================== --- stable/12/sys/netipsec/xform_esp.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/sys/netipsec/xform_esp.c Wed Aug 21 22:42:08 2019 (r351358) @@ -95,7 +95,6 @@ SYSCTL_VNET_PCPUSTAT(_net_inet_esp, IPSECCTL_STATS, st "ESP statistics (struct espstat, netipsec/esp_var.h"); static struct timeval deswarn, blfwarn, castwarn, camelliawarn; -static struct timeval warninterval = { .tv_sec = 1, .tv_usec = 0 }; static int esp_input_cb(struct cryptop *op); static int esp_output_cb(struct cryptop *crp); @@ -162,19 +161,19 @@ esp_init(struct secasvar *sav, struct xformsw *xsp) switch (sav->alg_enc) { case SADB_EALG_DESCBC: - if (ratecheck(&deswarn, &warninterval)) + if (ratecheck(&deswarn, &ipsec_warn_interval)) gone_in(13, "DES cipher for IPsec"); break; case SADB_X_EALG_BLOWFISHCBC: - if (ratecheck(&blfwarn, &warninterval)) + if (ratecheck(&blfwarn, &ipsec_warn_interval)) gone_in(13, "Blowfish cipher for IPsec"); break; case SADB_X_EALG_CAST128CBC: - if (ratecheck(&castwarn, &warninterval)) + if (ratecheck(&castwarn, &ipsec_warn_interval)) gone_in(13, "CAST cipher for IPsec"); break; case SADB_X_EALG_CAMELLIACBC: - if (ratecheck(&camelliawarn, &warninterval)) + if (ratecheck(&camelliawarn, &ipsec_warn_interval)) gone_in(13, "Camellia cipher for IPsec"); break; } Modified: stable/12/sys/opencrypto/cryptodev.c ============================================================================== --- stable/12/sys/opencrypto/cryptodev.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/sys/opencrypto/cryptodev.c Wed Aug 21 22:42:08 2019 (r351358) @@ -294,6 +294,11 @@ struct fcrypt { int sesn; }; +static struct timeval warninterval = { .tv_sec = 60, .tv_usec = 0 }; +SYSCTL_TIMEVAL_SEC(_kern, OID_AUTO, cryptodev_warn_interval, CTLFLAG_RW, + &warninterval, + "Delay in seconds between warnings of deprecated /dev/crypto algorithms"); + static int cryptof_ioctl(struct file *, u_long, void *, struct ucred *, struct thread *); static int cryptof_stat(struct file *, struct stat *, @@ -388,7 +393,6 @@ cryptof_ioctl( #endif static struct timeval arc4warn, blfwarn, castwarn, deswarn, md5warn; static struct timeval skipwarn, tdeswarn; - static struct timeval warninterval = { .tv_sec = 60, .tv_usec = 0 }; switch (cmd) { case CIOCGSESSION: Modified: stable/12/sys/sys/sysctl.h ============================================================================== --- stable/12/sys/sys/sysctl.h Wed Aug 21 22:18:07 2019 (r351357) +++ stable/12/sys/sys/sysctl.h Wed Aug 21 22:42:08 2019 (r351358) @@ -216,6 +216,8 @@ int sysctl_handle_counter_u64_array(SYSCTL_HANDLER_ARG int sysctl_handle_uma_zone_max(SYSCTL_HANDLER_ARGS); int sysctl_handle_uma_zone_cur(SYSCTL_HANDLER_ARGS); +int sysctl_sec_to_timeval(SYSCTL_HANDLER_ARGS); + int sysctl_dpcpu_int(SYSCTL_HANDLER_ARGS); int sysctl_dpcpu_long(SYSCTL_HANDLER_ARGS); int sysctl_dpcpu_quad(SYSCTL_HANDLER_ARGS); @@ -815,6 +817,24 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); sysctl_add_oid(ctx, parent, nbr, name, \ CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ __ptr, 0, sysctl_handle_uma_zone_cur, "I", __DESCR(descr), \ + NULL); \ +}) + +/* OID expressing a struct timeval as seconds */ +#define SYSCTL_TIMEVAL_SEC(parent, nbr, name, access, ptr, descr) \ + SYSCTL_OID(parent, nbr, name, \ + CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ + (ptr), 0, sysctl_sec_to_timeval, "I", descr); \ + CTASSERT(((access) & CTLTYPE) == 0 || \ + ((access) & SYSCTL_CT_ASSERT_MASK) == CTLTYPE_INT) +#define SYSCTL_ADD_TIMEVAL_SEC(ctx, parent, nbr, name, access, ptr, descr) \ +({ \ + struct timeval *__ptr = (ptr); \ + CTASSERT(((access) & CTLTYPE) == 0 || \ + ((access) & SYSCTL_CT_ASSERT_MASK) == CTLTYPE_INT); \ + sysctl_add_oid(ctx, parent, nbr, name, \ + CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ + __ptr, 0, sysctl_sec_to_timeval, "I", __DESCR(descr), \ NULL); \ }) From owner-svn-src-all@freebsd.org Wed Aug 21 22:42:15 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BF2B0D67AE; Wed, 21 Aug 2019 22:42:15 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DN2b5Jykz4fmV; Wed, 21 Aug 2019 22:42:15 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 97A2D22A8D; Wed, 21 Aug 2019 22:42:15 +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 x7LMgFN6022256; Wed, 21 Aug 2019 22:42:15 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LMgCWf022240; Wed, 21 Aug 2019 22:42:12 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908212242.x7LMgCWf022240@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 21 Aug 2019 22:42:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351358 - in stable: 11/share/man/man9 11/sys/kern 11/sys/kgssapi/krb5 11/sys/netipsec 11/sys/opencrypto 11/sys/sys 12/share/man/man9 12/sys/kern 12/sys/kgssapi/krb5 12/sys/netipsec 12/... X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/share/man/man9 11/sys/kern 11/sys/kgssapi/krb5 11/sys/netipsec 11/sys/opencrypto 11/sys/sys 12/share/man/man9 12/sys/kern 12/sys/kgssapi/krb5 12/sys/netipsec 12/sys/opencrypto 12/sys/sys X-SVN-Commit-Revision: 351358 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 22:42:15 -0000 Author: jhb Date: Wed Aug 21 22:42:08 2019 New Revision: 351358 URL: https://svnweb.freebsd.org/changeset/base/351358 Log: MFC 348970,348974: Make the warning intervals for deprecated crypto algorithms tunable. 348970: Make the warning intervals for deprecated crypto algorithms tunable. New sysctl/tunables can now set the interval (in seconds) between rate-limited crypto warnings. The new sysctls are: - kern.cryptodev_warn_interval for /dev/crypto - net.inet.ipsec.crypto_warn_interval for IPsec - kern.kgssapi_warn_interval for KGSSAPI 348974: Move declaration of warninterval out from under COMPAT_FREEBSD32. This fixes builds of kernels without COMPAT_FREEBSD32. Modified: stable/11/share/man/man9/Makefile stable/11/share/man/man9/sysctl.9 stable/11/sys/kern/kern_sysctl.c stable/11/sys/kgssapi/krb5/kcrypto.c stable/11/sys/kgssapi/krb5/kcrypto.h stable/11/sys/kgssapi/krb5/kcrypto_arcfour.c stable/11/sys/kgssapi/krb5/kcrypto_des.c stable/11/sys/kgssapi/krb5/kcrypto_des3.c stable/11/sys/netipsec/ipsec.c stable/11/sys/netipsec/ipsec.h stable/11/sys/netipsec/xform_ah.c stable/11/sys/netipsec/xform_esp.c stable/11/sys/opencrypto/cryptodev.c stable/11/sys/sys/sysctl.h Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/share/man/man9/Makefile stable/12/share/man/man9/sysctl.9 stable/12/sys/kern/kern_sysctl.c stable/12/sys/kgssapi/krb5/kcrypto.c stable/12/sys/kgssapi/krb5/kcrypto.h stable/12/sys/kgssapi/krb5/kcrypto_arcfour.c stable/12/sys/kgssapi/krb5/kcrypto_des.c stable/12/sys/kgssapi/krb5/kcrypto_des3.c stable/12/sys/netipsec/ipsec.c stable/12/sys/netipsec/ipsec.h stable/12/sys/netipsec/xform_ah.c stable/12/sys/netipsec/xform_esp.c stable/12/sys/opencrypto/cryptodev.c stable/12/sys/sys/sysctl.h Directory Properties: stable/12/ (props changed) Modified: stable/11/share/man/man9/Makefile ============================================================================== --- stable/11/share/man/man9/Makefile Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/share/man/man9/Makefile Wed Aug 21 22:42:08 2019 (r351358) @@ -1758,6 +1758,7 @@ MLINKS+=sysctl.9 SYSCTL_DECL.9 \ sysctl.9 SYSCTL_ADD_S64.9 \ sysctl.9 SYSCTL_ADD_STRING.9 \ sysctl.9 SYSCTL_ADD_STRUCT.9 \ + sysctl.9 SYSCTL_ADD_TIMEVAL_SEC.9 \ sysctl.9 SYSCTL_ADD_U8.9 \ sysctl.9 SYSCTL_ADD_U16.9 \ sysctl.9 SYSCTL_ADD_U32.9 \ @@ -1784,6 +1785,7 @@ MLINKS+=sysctl.9 SYSCTL_DECL.9 \ sysctl.9 SYSCTL_S64.9 \ sysctl.9 SYSCTL_STRING.9 \ sysctl.9 SYSCTL_STRUCT.9 \ + sysctl.9 SYSCTL_TIMEVAL_SEC.9 \ sysctl.9 SYSCTL_U8.9 \ sysctl.9 SYSCTL_U16.9 \ sysctl.9 SYSCTL_U32.9 \ Modified: stable/11/share/man/man9/sysctl.9 ============================================================================== --- stable/11/share/man/man9/sysctl.9 Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/share/man/man9/sysctl.9 Wed Aug 21 22:42:08 2019 (r351358) @@ -44,6 +44,7 @@ .Nm SYSCTL_ADD_STRING , .Nm SYSCTL_ADD_CONST_STRING , .Nm SYSCTL_ADD_STRUCT , +.Nm SYSCTL_ADD_TIMEVAL_SEC , .Nm SYSCTL_ADD_U8 , .Nm SYSCTL_ADD_U16 , .Nm SYSCTL_ADD_U32 , @@ -71,6 +72,7 @@ .Nm SYSCTL_STRING , .Nm SYSCTL_CONST_STRING , .Nm SYSCTL_STRUCT , +.Nm SYSCTL_TIMEVAL_SEC , .Nm SYSCTL_U8 , .Nm SYSCTL_U16 , .Nm SYSCTL_U32 , @@ -235,6 +237,16 @@ .Fa "const char *descr" .Fc .Ft struct sysctl_oid * +.Fo SYSCTL_ADD_TIMEVAL_SEC +.Fa "struct sysctl_ctx_list *ctx" +.Fa "struct sysctl_oid_list *parent" +.Fa "int number" +.Fa "const char *name" +.Fa "int ctlflags" +.Fa "struct timeval *ptr" +.Fa "const char *descr" +.Fc +.Ft struct sysctl_oid * .Fo SYSCTL_ADD_U8 .Fa "struct sysctl_ctx_list *ctx" .Fa "struct sysctl_oid_list *parent" @@ -352,6 +364,7 @@ .Fn SYSCTL_STRING parent number name ctlflags arg len descr .Fn SYSCTL_CONST_STRING parent number name ctlflags arg descr .Fn SYSCTL_STRUCT parent number name ctlflags ptr struct_type descr +.Fn SYSCTL_TIMEVAL_SEC parent number name ctlflags ptr descr .Fn SYSCTL_U8 parent number name ctlflags ptr val descr .Fn SYSCTL_U16 parent number name ctlflags ptr val descr .Fn SYSCTL_U32 parent number name ctlflags ptr val descr @@ -509,6 +522,21 @@ Similarly, .Fn sysctl_msec_to_ticks accepts new values in milliseconds and stores an equivalent value in ticks to .Fa *arg2 . +.Pp +The +.Fn SYSCTL_ADD_TIMEVAL_SEC +function and +.Fn SYSCTL_TIMEVAL_SEC +macro create nodes which export an in-kernel variable of type +.Vt struct timeval . +These nodes do not export full value of the associated structure. +Instead, they export a count in seconds as a simple integer which is +stored in the +.Fa tv_sec +field of the associated variable. +This function and macro are intended to be used with variables which +store a non-negative interval rather than an absolute time. +As a result, they reject attempts to store negative values. .Sh CREATING ROOT NODES Sysctl MIBs or OIDs are created in a hierarchical tree. The nodes at the bottom of the tree are called root nodes, and have no @@ -584,6 +612,7 @@ Static sysctls are declared using one of the .Fn SYSCTL_STRING , .Fn SYSCTL_CONST_STRING , .Fn SYSCTL_STRUCT , +.Fn SYSCTL_TIMEVAL_SEC , .Fn SYSCTL_U8 , .Fn SYSCTL_U16 , .Fn SYSCTL_U32 , @@ -609,6 +638,7 @@ Dynamic nodes are created using one of the .Fn SYSCTL_ADD_STRING , .Fn SYSCTL_ADD_CONST_STRING , .Fn SYSCTL_ADD_STRUCT , +.Fn SYSCTL_ADD_TIMEVAL_SEC , .Fn SYSCTL_ADD_U8 , .Fn SYSCTL_ADD_U16 , .Fn SYSCTL_ADD_U32 , Modified: stable/11/sys/kern/kern_sysctl.c ============================================================================== --- stable/11/sys/kern/kern_sysctl.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/sys/kern/kern_sysctl.c Wed Aug 21 22:42:08 2019 (r351358) @@ -1576,6 +1576,30 @@ retry: } /* + * Convert seconds to a struct timeval. Intended for use with + * intervals and thus does not permit negative seconds. + */ +int +sysctl_sec_to_timeval(SYSCTL_HANDLER_ARGS) +{ + struct timeval *tv; + int error, secs; + + tv = arg1; + secs = tv->tv_sec; + + error = sysctl_handle_int(oidp, &secs, 0, req); + if (error || req->newptr == NULL) + return (error); + + if (secs < 0) + return (EINVAL); + tv->tv_sec = secs; + + return (0); +} + +/* * Transfer functions to/from kernel space. * XXX: rather untested at this point */ Modified: stable/11/sys/kgssapi/krb5/kcrypto.c ============================================================================== --- stable/11/sys/kgssapi/krb5/kcrypto.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/sys/kgssapi/krb5/kcrypto.c Wed Aug 21 22:42:08 2019 (r351358) @@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -47,6 +48,11 @@ static struct krb5_encryption_class *krb5_encryption_c &krb5_arcfour_56_encryption_class, NULL }; + +struct timeval krb5_warn_interval = { .tv_sec = 3600, .tv_usec = 0 }; +SYSCTL_TIMEVAL_SEC(_kern, OID_AUTO, kgssapi_warn_interval, CTLFLAG_RW, + &krb5_warn_interval, + "Delay in seconds between warnings of deprecated KGSSAPI crypto."); struct krb5_encryption_class * krb5_find_encryption_class(int etype) Modified: stable/11/sys/kgssapi/krb5/kcrypto.h ============================================================================== --- stable/11/sys/kgssapi/krb5/kcrypto.h Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/sys/kgssapi/krb5/kcrypto.h Wed Aug 21 22:42:08 2019 (r351358) @@ -99,6 +99,7 @@ extern struct krb5_encryption_class krb5_aes128_encryp extern struct krb5_encryption_class krb5_aes256_encryption_class; extern struct krb5_encryption_class krb5_arcfour_encryption_class; extern struct krb5_encryption_class krb5_arcfour_56_encryption_class; +extern struct timeval krb5_warn_interval; static __inline void krb5_set_key(struct krb5_key_state *ks, const void *keydata) Modified: stable/11/sys/kgssapi/krb5/kcrypto_arcfour.c ============================================================================== --- stable/11/sys/kgssapi/krb5/kcrypto_arcfour.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/sys/kgssapi/krb5/kcrypto_arcfour.c Wed Aug 21 22:42:08 2019 (r351358) @@ -45,10 +45,9 @@ static void arcfour_init(struct krb5_key_state *ks) { static struct timeval lastwarn; - static struct timeval warninterval = { .tv_sec = 3600, .tv_usec = 0 }; ks->ks_priv = NULL; - if (ratecheck(&lastwarn, &warninterval)) + if (ratecheck(&lastwarn, &krb5_warn_interval)) gone_in(13, "RC4 cipher for Kerberos GSS"); } Modified: stable/11/sys/kgssapi/krb5/kcrypto_des.c ============================================================================== --- stable/11/sys/kgssapi/krb5/kcrypto_des.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/sys/kgssapi/krb5/kcrypto_des.c Wed Aug 21 22:42:08 2019 (r351358) @@ -52,13 +52,12 @@ static void des1_init(struct krb5_key_state *ks) { static struct timeval lastwarn; - static struct timeval warninterval = { .tv_sec = 3600, .tv_usec = 0 }; struct des1_state *ds; ds = malloc(sizeof(struct des1_state), M_GSSAPI, M_WAITOK|M_ZERO); mtx_init(&ds->ds_lock, "gss des lock", NULL, MTX_DEF); ks->ks_priv = ds; - if (ratecheck(&lastwarn, &warninterval)) + if (ratecheck(&lastwarn, &krb5_warn_interval)) gone_in(13, "DES cipher for Kerberos GSS"); } Modified: stable/11/sys/kgssapi/krb5/kcrypto_des3.c ============================================================================== --- stable/11/sys/kgssapi/krb5/kcrypto_des3.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/sys/kgssapi/krb5/kcrypto_des3.c Wed Aug 21 22:42:08 2019 (r351358) @@ -53,13 +53,12 @@ static void des3_init(struct krb5_key_state *ks) { static struct timeval lastwarn; - static struct timeval warninterval = { .tv_sec = 3600, .tv_usec = 0 }; struct des3_state *ds; ds = malloc(sizeof(struct des3_state), M_GSSAPI, M_WAITOK|M_ZERO); mtx_init(&ds->ds_lock, "gss des3 lock", NULL, MTX_DEF); ks->ks_priv = ds; - if (ratecheck(&lastwarn, &warninterval)) + if (ratecheck(&lastwarn, &krb5_warn_interval)) gone_in(13, "DES3 cipher for Kerberos GSS"); } Modified: stable/11/sys/netipsec/ipsec.c ============================================================================== --- stable/11/sys/netipsec/ipsec.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/sys/netipsec/ipsec.c Wed Aug 21 22:42:08 2019 (r351358) @@ -202,6 +202,11 @@ SYSCTL_INT(_net_inet_ipsec, OID_AUTO, filtertunnel, SYSCTL_VNET_PCPUSTAT(_net_inet_ipsec, OID_AUTO, ipsecstats, struct ipsecstat, ipsec4stat, "IPsec IPv4 statistics."); +struct timeval ipsec_warn_interval = { .tv_sec = 1, .tv_usec = 0 }; +SYSCTL_TIMEVAL_SEC(_net_inet_ipsec, OID_AUTO, crypto_warn_interval, CTLFLAG_RW, + &ipsec_warn_interval, + "Delay in seconds between warnings of deprecated IPsec crypto algorithms."); + #ifdef REGRESSION /* * When set to 1, IPsec will send packets with the same sequence number. Modified: stable/11/sys/netipsec/ipsec.h ============================================================================== --- stable/11/sys/netipsec/ipsec.h Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/sys/netipsec/ipsec.h Wed Aug 21 22:42:08 2019 (r351358) @@ -283,6 +283,8 @@ VNET_DECLARE(int, ip4_ipsec_ecn); VNET_DECLARE(int, crypto_support); VNET_DECLARE(int, natt_cksum_policy); +extern struct timeval ipsec_warn_interval; + #define IPSECSTAT_INC(name) \ VNET_PCPUSTAT_ADD(struct ipsecstat, ipsec4stat, name, 1) #define V_ip4_esp_trans_deflev VNET(ip4_esp_trans_deflev) Modified: stable/11/sys/netipsec/xform_ah.c ============================================================================== --- stable/11/sys/netipsec/xform_ah.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/sys/netipsec/xform_ah.c Wed Aug 21 22:42:08 2019 (r351358) @@ -109,7 +109,6 @@ SYSCTL_VNET_PCPUSTAT(_net_inet_ah, IPSECCTL_STATS, sta static unsigned char ipseczeroes[256]; /* larger than an ip6 extension hdr */ static struct timeval md5warn, ripewarn, kpdkmd5warn, kpdksha1warn; -static struct timeval warninterval = { .tv_sec = 1, .tv_usec = 0 }; static int ah_input_cb(struct cryptop*); static int ah_output_cb(struct cryptop*); @@ -179,19 +178,19 @@ ah_init0(struct secasvar *sav, struct xformsw *xsp, st switch (sav->alg_auth) { case SADB_AALG_MD5HMAC: - if (ratecheck(&md5warn, &warninterval)) + if (ratecheck(&md5warn, &ipsec_warn_interval)) gone_in(13, "MD5-HMAC authenticator for IPsec"); break; case SADB_X_AALG_RIPEMD160HMAC: - if (ratecheck(&ripewarn, &warninterval)) + if (ratecheck(&ripewarn, &ipsec_warn_interval)) gone_in(13, "RIPEMD160-HMAC authenticator for IPsec"); break; case SADB_X_AALG_MD5: - if (ratecheck(&kpdkmd5warn, &warninterval)) + if (ratecheck(&kpdkmd5warn, &ipsec_warn_interval)) gone_in(13, "Keyed-MD5 authenticator for IPsec"); break; case SADB_X_AALG_SHA: - if (ratecheck(&kpdksha1warn, &warninterval)) + if (ratecheck(&kpdksha1warn, &ipsec_warn_interval)) gone_in(13, "Keyed-SHA1 authenticator for IPsec"); break; } Modified: stable/11/sys/netipsec/xform_esp.c ============================================================================== --- stable/11/sys/netipsec/xform_esp.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/sys/netipsec/xform_esp.c Wed Aug 21 22:42:08 2019 (r351358) @@ -95,7 +95,6 @@ SYSCTL_VNET_PCPUSTAT(_net_inet_esp, IPSECCTL_STATS, st "ESP statistics (struct espstat, netipsec/esp_var.h"); static struct timeval deswarn, blfwarn, castwarn, camelliawarn; -static struct timeval warninterval = { .tv_sec = 1, .tv_usec = 0 }; static int esp_input_cb(struct cryptop *op); static int esp_output_cb(struct cryptop *crp); @@ -162,19 +161,19 @@ esp_init(struct secasvar *sav, struct xformsw *xsp) switch (sav->alg_enc) { case SADB_EALG_DESCBC: - if (ratecheck(&deswarn, &warninterval)) + if (ratecheck(&deswarn, &ipsec_warn_interval)) gone_in(13, "DES cipher for IPsec"); break; case SADB_X_EALG_BLOWFISHCBC: - if (ratecheck(&blfwarn, &warninterval)) + if (ratecheck(&blfwarn, &ipsec_warn_interval)) gone_in(13, "Blowfish cipher for IPsec"); break; case SADB_X_EALG_CAST128CBC: - if (ratecheck(&castwarn, &warninterval)) + if (ratecheck(&castwarn, &ipsec_warn_interval)) gone_in(13, "CAST cipher for IPsec"); break; case SADB_X_EALG_CAMELLIACBC: - if (ratecheck(&camelliawarn, &warninterval)) + if (ratecheck(&camelliawarn, &ipsec_warn_interval)) gone_in(13, "Camellia cipher for IPsec"); break; } Modified: stable/11/sys/opencrypto/cryptodev.c ============================================================================== --- stable/11/sys/opencrypto/cryptodev.c Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/sys/opencrypto/cryptodev.c Wed Aug 21 22:42:08 2019 (r351358) @@ -296,6 +296,11 @@ struct fcrypt { int sesn; }; +static struct timeval warninterval = { .tv_sec = 60, .tv_usec = 0 }; +SYSCTL_TIMEVAL_SEC(_kern, OID_AUTO, cryptodev_warn_interval, CTLFLAG_RW, + &warninterval, + "Delay in seconds between warnings of deprecated /dev/crypto algorithms"); + static int cryptof_ioctl(struct file *, u_long, void *, struct ucred *, struct thread *); static int cryptof_stat(struct file *, struct stat *, @@ -390,7 +395,6 @@ cryptof_ioctl( #endif static struct timeval arc4warn, blfwarn, castwarn, deswarn, md5warn; static struct timeval skipwarn, tdeswarn; - static struct timeval warninterval = { .tv_sec = 60, .tv_usec = 0 }; switch (cmd) { case CIOCGSESSION: Modified: stable/11/sys/sys/sysctl.h ============================================================================== --- stable/11/sys/sys/sysctl.h Wed Aug 21 22:18:07 2019 (r351357) +++ stable/11/sys/sys/sysctl.h Wed Aug 21 22:42:08 2019 (r351358) @@ -211,6 +211,8 @@ int sysctl_handle_counter_u64_array(SYSCTL_HANDLER_ARG int sysctl_handle_uma_zone_max(SYSCTL_HANDLER_ARGS); int sysctl_handle_uma_zone_cur(SYSCTL_HANDLER_ARGS); +int sysctl_sec_to_timeval(SYSCTL_HANDLER_ARGS); + int sysctl_dpcpu_int(SYSCTL_HANDLER_ARGS); int sysctl_dpcpu_long(SYSCTL_HANDLER_ARGS); int sysctl_dpcpu_quad(SYSCTL_HANDLER_ARGS); @@ -790,6 +792,24 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); sysctl_add_oid(ctx, parent, nbr, name, \ CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ __ptr, 0, sysctl_handle_uma_zone_cur, "I", __DESCR(descr)); \ +}) + +/* OID expressing a struct timeval as seconds */ +#define SYSCTL_TIMEVAL_SEC(parent, nbr, name, access, ptr, descr) \ + SYSCTL_OID(parent, nbr, name, \ + CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ + (ptr), 0, sysctl_sec_to_timeval, "I", descr); \ + CTASSERT(((access) & CTLTYPE) == 0 || \ + ((access) & SYSCTL_CT_ASSERT_MASK) == CTLTYPE_INT) +#define SYSCTL_ADD_TIMEVAL_SEC(ctx, parent, nbr, name, access, ptr, descr) \ +({ \ + struct timeval *__ptr = (ptr); \ + CTASSERT(((access) & CTLTYPE) == 0 || \ + ((access) & SYSCTL_CT_ASSERT_MASK) == CTLTYPE_INT); \ + sysctl_add_oid(ctx, parent, nbr, name, \ + CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ + __ptr, 0, sysctl_sec_to_timeval, "I", __DESCR(descr), \ + NULL); \ }) /* From owner-svn-src-all@freebsd.org Wed Aug 21 23:13:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 29DFCD71A5; Wed, 21 Aug 2019 23:13:01 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DNk50Jjrz3CsL; Wed, 21 Aug 2019 23:13:01 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E05FE22FFB; Wed, 21 Aug 2019 23:13:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LND0FP040237; Wed, 21 Aug 2019 23:13:00 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LND0OP040236; Wed, 21 Aug 2019 23:13:00 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908212313.x7LND0OP040236@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 23:13:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351359 - head/cddl/contrib/opensolaris/cmd/lockstat X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/cmd/lockstat X-SVN-Commit-Revision: 351359 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 23:13:01 -0000 Author: markj Date: Wed Aug 21 23:13:00 2019 New Revision: 351359 URL: https://svnweb.freebsd.org/changeset/base/351359 Log: Fix inverted predicates for sx lock hold events in lockstat(1). This caused shared sx holds to be reported as exclusive, and vice versa. Reviewed by: mjg MFC after: 3 days Sponsored by: The FreeBSD Foundation Modified: head/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c Modified: head/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c ============================================================================== --- head/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c Wed Aug 21 22:42:08 2019 (r351358) +++ head/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c Wed Aug 21 23:13:00 2019 (r351359) @@ -206,10 +206,10 @@ static ls_event_info_t g_event_info[LS_MAX_EVENTS] = { "lockstat:::rw-release", "arg1 == 1", "lockstat:::rw-acquire" }, { 'H', "Lock", "SX shared hold", "nsec", - "lockstat:::sx-release", "arg1 == 0", + "lockstat:::sx-release", "arg1 == 1", "lockstat:::sx-acquire" }, { 'H', "Lock", "SX exclusive hold", "nsec", - "lockstat:::sx-release", "arg1 == 1", + "lockstat:::sx-release", "arg1 == 0", "lockstat:::sx-acquire" }, { 'H', "Lock", "Unknown event (type 38)", "units" }, { 'H', "Lock", "Unknown event (type 39)", "units" }, From owner-svn-src-all@freebsd.org Wed Aug 21 23:24:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E11C9D745F; Wed, 21 Aug 2019 23:24:40 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DNzX5fLhz3DWX; Wed, 21 Aug 2019 23:24:40 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B89BD231CD; Wed, 21 Aug 2019 23:24:40 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LNOeVU046595; Wed, 21 Aug 2019 23:24:40 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LNOeTj046593; Wed, 21 Aug 2019 23:24:40 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201908212324.x7LNOeTj046593@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Wed, 21 Aug 2019 23:24:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351360 - head/sys/fs/nullfs X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/fs/nullfs X-SVN-Commit-Revision: 351360 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 23:24:40 -0000 Author: mjg Date: Wed Aug 21 23:24:40 2019 New Revision: 351360 URL: https://svnweb.freebsd.org/changeset/base/351360 Log: nullfs: lock the vnode with LK_SHARED in null_vptocnp null_nodeget which follows almost always finds the target vnode in the hash, avoiding insmntque1 altogether. Should it be needed, it already checks if the lock needs to be upgraded. Reviewed by: kib Tested by: pho Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D20244 Modified: head/sys/fs/nullfs/null_subr.c head/sys/fs/nullfs/null_vnops.c Modified: head/sys/fs/nullfs/null_subr.c ============================================================================== --- head/sys/fs/nullfs/null_subr.c Wed Aug 21 23:13:00 2019 (r351359) +++ head/sys/fs/nullfs/null_subr.c Wed Aug 21 23:24:40 2019 (r351360) @@ -222,9 +222,6 @@ null_nodeget(mp, lowervp, vpp) * provide ready to use vnode. */ if (VOP_ISLOCKED(lowervp) != LK_EXCLUSIVE) { - KASSERT((MOUNTTONULLMOUNT(mp)->nullm_flags & NULLM_CACHE) != 0, - ("lowervp %p is not excl locked and cache is disabled", - lowervp)); vn_lock(lowervp, LK_UPGRADE | LK_RETRY); if ((lowervp->v_iflag & VI_DOOMED) != 0) { vput(lowervp); Modified: head/sys/fs/nullfs/null_vnops.c ============================================================================== --- head/sys/fs/nullfs/null_vnops.c Wed Aug 21 23:13:00 2019 (r351359) +++ head/sys/fs/nullfs/null_vnops.c Wed Aug 21 23:24:40 2019 (r351360) @@ -893,11 +893,7 @@ null_vptocnp(struct vop_vptocnp_args *ap) return (ENOENT); } - /* - * Exclusive lock is required by insmntque1 call in - * null_nodeget() - */ - error = vn_lock(ldvp, LK_EXCLUSIVE); + error = vn_lock(ldvp, LK_SHARED); if (error != 0) { vrele(ldvp); vn_lock(vp, locked | LK_RETRY); From owner-svn-src-all@freebsd.org Wed Aug 21 23:44:00 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 13F40D79B0; Wed, 21 Aug 2019 23:44:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DPPr0GPTz3FRT; Wed, 21 Aug 2019 23:44:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0433623556; Wed, 21 Aug 2019 23:44:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LNhxYN058388; Wed, 21 Aug 2019 23:43:59 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LNhxkh058383; Wed, 21 Aug 2019 23:43:59 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908212343.x7LNhxkh058383@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 23:43:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351361 - in head: cddl/contrib/opensolaris/cmd/lockstat share/man/man4 sys/kern sys/sys X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head: cddl/contrib/opensolaris/cmd/lockstat share/man/man4 sys/kern sys/sys X-SVN-Commit-Revision: 351361 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 23:44:00 -0000 Author: markj Date: Wed Aug 21 23:43:58 2019 New Revision: 351361 URL: https://svnweb.freebsd.org/changeset/base/351361 Log: Add lockmgr(9) probes to the lockstat DTrace provider. They follow the conventions set by rw and sx lock probes. There is an additional lockstat:::lockmgr-disown probe. Update lockstat(1) to report on contention and hold events for lockmgr locks. Document the new probes in dtrace_lockstat.4, and deduplicate some of the existing probe descriptions. Reviewed by: mjg MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21355 Modified: head/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c head/share/man/man4/dtrace_lockstat.4 head/sys/kern/kern_lock.c head/sys/kern/kern_lockstat.c head/sys/sys/lockstat.h Modified: head/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c ============================================================================== --- head/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c Wed Aug 21 23:24:40 2019 (r351360) +++ head/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c Wed Aug 21 23:43:58 2019 (r351361) @@ -158,29 +158,33 @@ static ls_event_info_t g_event_info[LS_MAX_EVENTS] = { { 'C', "Lock", "R/W writer blocked by readers", "nsec", "lockstat:::rw-block", "arg2 == 0 && arg3 == 0 && arg4" }, { 'C', "Lock", "R/W reader blocked by writer", "nsec", - "lockstat:::rw-block", "arg2 != 0 && arg3 == 1" }, + "lockstat:::rw-block", "arg2 == 1 && arg3 == 1" }, { 'C', "Lock", "R/W reader blocked by write wanted", "nsec", - "lockstat:::rw-block", "arg2 != 0 && arg3 == 0 && arg4" }, + "lockstat:::rw-block", "arg2 == 1 && arg3 == 0 && arg4" }, { 'C', "Lock", "R/W writer spin on writer", "nsec", "lockstat:::rw-spin", "arg2 == 0 && arg3 == 1" }, { 'C', "Lock", "R/W writer spin on readers", "nsec", "lockstat:::rw-spin", "arg2 == 0 && arg3 == 0 && arg4" }, { 'C', "Lock", "R/W reader spin on writer", "nsec", - "lockstat:::rw-spin", "arg2 != 0 && arg3 == 1" }, + "lockstat:::rw-spin", "arg2 == 1 && arg3 == 1" }, { 'C', "Lock", "R/W reader spin on write wanted", "nsec", - "lockstat:::rw-spin", "arg2 != 0 && arg3 == 0 && arg4" }, + "lockstat:::rw-spin", "arg2 == 1 && arg3 == 0 && arg4" }, { 'C', "Lock", "SX exclusive block", "nsec", "lockstat:::sx-block", "arg2 == 0" }, { 'C', "Lock", "SX shared block", "nsec", - "lockstat:::sx-block", "arg2 != 0" }, + "lockstat:::sx-block", "arg2 == 1" }, { 'C', "Lock", "SX exclusive spin", "nsec", "lockstat:::sx-spin", "arg2 == 0" }, { 'C', "Lock", "SX shared spin", "nsec", - "lockstat:::sx-spin", "arg2 != 0" }, - { 'C', "Lock", "Unknown event (type 16)", "units" }, - { 'C', "Lock", "Unknown event (type 17)", "units" }, - { 'C', "Lock", "Unknown event (type 18)", "units" }, - { 'C', "Lock", "Unknown event (type 19)", "units" }, + "lockstat:::sx-spin", "arg2 == 1" }, + { 'C', "Lock", "lockmgr writer blocked by writer", "nsec", + "lockstat:::lockmgr-block", "arg2 == 0 && arg3 == 1" }, + { 'C', "Lock", "lockmgr writer blocked by readers", "nsec", + "lockstat:::lockmgr-block", "arg2 == 0 && arg3 == 0 && arg4" }, + { 'C', "Lock", "lockmgr reader blocked by writer", "nsec", + "lockstat:::lockmgr-block", "arg2 == 1 && arg3 == 1" }, + { 'C', "Lock", "lockmgr reader blocked by write wanted", "nsec", + "lockstat:::lockmgr-block", "arg2 == 1 && arg3 == 0 && arg4" }, { 'C', "Lock", "Unknown event (type 20)", "units" }, { 'C', "Lock", "Unknown event (type 21)", "units" }, { 'C', "Lock", "Unknown event (type 22)", "units" }, Modified: head/share/man/man4/dtrace_lockstat.4 ============================================================================== --- head/share/man/man4/dtrace_lockstat.4 Wed Aug 21 23:24:40 2019 (r351360) +++ head/share/man/man4/dtrace_lockstat.4 Wed Aug 21 23:43:58 2019 (r351361) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 2, 2018 +.Dd August 20, 2019 .Dt DTRACE_LOCKSTAT 4 .Os .Sh NAME @@ -50,6 +50,12 @@ .Fn lockstat:::sx-spin "struct sx *" "uint64_t" .Fn lockstat:::sx-upgrade "struct sx *" .Fn lockstat:::sx-downgrade "struct sx *" +.Fn lockstat:::lockmgr-acquire "struct lock *" "int" +.Fn lockstat:::lockmgr-release "struct lock *" "int" +.Fn lockstat:::lockmgr-disown "struct lock *" "int" +.Fn lockstat:::lockmgr-block "struct lock *" "uint64_t" "int" "int" "int" +.Fn lockstat:::lockmgr-upgrade "struct lock *" +.Fn lockstat:::lockmgr-downgrade "struct lock *" .Fn lockstat:::thread-spin "struct mtx *" "uint64" .Sh DESCRIPTION The DTrace @@ -62,6 +68,7 @@ The provider contains DTrace probes for inspecting kernel lock state transitions. Probes exist for the +.Xr lockmgr 9 , .Xr mutex 9 , .Xr rwlock 9 , and @@ -159,76 +166,50 @@ The second argument is if the lock is being acquired or released as a writer, and .Dv 1 if it is being acquired or released as a reader. -.Pp The -.Fn lockstat:::rw-block -probe fires when a thread removes itself from the CPU while -waiting to acquire a -.Xr rwlock 9 . -The -.Fn lockstat:::rw-spin -probe fires when a thread spins while waiting to acquire a -.Xr rwlock 9 . -Both probes take the same set of arguments. -The first argument is a pointer to the lock structure that describes -the lock. -The second argument is the length of time, in nanoseconds, -that the waiting thread was off the CPU or spinning for the lock. -The third argument is -.Dv 0 -if the thread is attempting to acquire the lock as a writer, and -.Dv 1 -if the thread is attempting to acquire the lock as a reader. -The fourth argument is -.Dv 0 -if the thread is waiting for a writer to release the lock, and -.Dv 1 -if the thread is waiting for a reader to release the lock. -The fifth argument is the number of readers that held the lock when -the thread first attempted to acquire the lock. -This argument will be -.Dv 0 -if the fourth argument is -.Dv 0 . -.Pp -The -.Fn lockstat:::rw-upgrade -probe fires when a thread successfully upgrades a held -.Xr rwlock 9 -read lock to a write lock. -The -.Fn lockstat:::rw-downgrade -probe fires when a thread downgrades a held -.Xr rwlock 9 -write lock to a read lock. -The only argument is a pointer to the structure which describes -the lock being acquired. -.Pp -The .Fn lockstat:::sx-acquire and -.Fn lockstat:::sx-release -probes fire when a +.Fn lockstat:::sx-release , +and +.Fn lockstat:::lockmgr-acquire +and +.Fn lockstat:::lockmgr-release +probes fire upon the corresponding events for .Xr sx 9 -is acquired or released, respectively. +and +.Xr lockmgr 9 +locks, respectively. +The +.Fn lockstat:::lockmgr-disown +probe fires when a +.Xr lockmgr 9 +exclusive lock is disowned. +In this state, the lock remains exclusively held, but may be +released by a different thread. +The +.Fn lockstat:::lockmgr-release +probe does not fire when releasing a disowned lock. The first argument is a pointer to the structure which describes -the lock being acquired. +the lock being disowned. The second argument is -.Dv 0 -if the shared lock is being acquired or released, and -.Dv 1 -if the exclusive lock is being acquired or released. +.Dv 0 , +for compatibility with +.Fn lockstat:::lockmgr-release . .Pp The -.Fn lockstat:::sx-block -probe fires when a thread takes itself off the CPU while -waiting to acquire a -.Xr sx 9 . +.Fn lockstat:::rw-block , +.Fn lockstat:::sx-block , +and +.Fn lockstat:::lockmgr-block +probes fire when a thread removes itself from the CPU while +waiting to acquire a lock of the corresponding type. The +.Fn lockstat:::rw-spin +and .Fn lockstat:::sx-spin -probe fires when a thread spins while waiting to acquire a -.Xr sx 9 . -Both probes take the same set of arguments. +probes fire when a thread spins while waiting to acquire a lock +of the corresponding type. +All probes take the same set of arguments. The first argument is a pointer to the lock structure that describes the lock. The second argument is the length of time, in nanoseconds, @@ -240,28 +221,40 @@ if the thread is attempting to acquire the lock as a w if the thread is attempting to acquire the lock as a reader. The fourth argument is .Dv 0 -if the thread is waiting for a writer to release the lock, and +if the thread is waiting for a reader to release the lock, and .Dv 1 -if the thread is waiting for a reader to release the lock. +if the thread is waiting for a writer to release the lock. The fifth argument is the number of readers that held the lock when the thread first attempted to acquire the lock. This argument will be .Dv 0 if the fourth argument is -.Dv 0 . +.Dv 1 . .Pp The +.Fn lockstat:::lockmgr-upgrade , +.Fn lockstat:::rw-upgrade , +and .Fn lockstat:::sx-upgrade -probe fires when a thread successfully upgrades a held +probes fire when a thread successfully upgrades a held +.Xr lockmgr 9 , +.Xr rwlock 9 , +or .Xr sx 9 -shared lock to an exclusive lock. +shared/reader lock to an exclusive/writer lock. The only argument is a pointer to the structure which describes the lock being acquired. The +.Fn lockstat:::lockmgr-downgrade , +.Fn lockstat:::rw-downgrade , +and .Fn lockstat:::sx-downgrade -probe fires when a thread downgrades a held +probes fire when a thread downgrades a held +.Xr lockmgr 9 , +.Xr rwlock 9 , +or .Xr sx 9 -exclusive lock to a shared lock. +exclusive/writer lock to a shared/reader lock. .Pp The .Fn lockstat:::thread-spin @@ -291,10 +284,11 @@ provider first appeared in .Fx 9 . .Sh AUTHORS This manual page was written by -.An George V. Neville-Neil Aq Mt gnn@FreeBSD.org . +.An George V. Neville-Neil Aq Mt gnn@FreeBSD.org +and +.An -nosplit +.An Mark Johnston Aq Mt markj@FreeBSD.org . .Sh BUGS Probes for -.Xr lockmgr 9 -and .Xr rmlock 9 locks have not yet been added. Modified: head/sys/kern/kern_lock.c ============================================================================== --- head/sys/kern/kern_lock.c Wed Aug 21 23:24:40 2019 (r351360) +++ head/sys/kern/kern_lock.c Wed Aug 21 23:43:58 2019 (r351361) @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -201,8 +202,8 @@ lockmgr_note_shared_acquire(struct lock *lk, int conte uint64_t waittime, const char *file, int line, int flags) { - lock_profile_obtain_lock_success(&lk->lock_object, contested, waittime, - file, line); + LOCKSTAT_PROFILE_OBTAIN_RWLOCK_SUCCESS(lockmgr__acquire, lk, contested, + waittime, file, line, LOCKSTAT_READER); LOCK_LOG_LOCK("SLOCK", &lk->lock_object, 0, 0, file, line); WITNESS_LOCK(&lk->lock_object, LK_TRYWIT(flags), file, line); TD_LOCKS_INC(curthread); @@ -214,7 +215,7 @@ static void lockmgr_note_shared_release(struct lock *lk, const char *file, int line) { - lock_profile_release_lock(&lk->lock_object); + LOCKSTAT_PROFILE_RELEASE_RWLOCK(lockmgr__release, lk, LOCKSTAT_READER); WITNESS_UNLOCK(&lk->lock_object, 0, file, line); LOCK_LOG_LOCK("SUNLOCK", &lk->lock_object, 0, 0, file, line); TD_LOCKS_DEC(curthread); @@ -226,8 +227,8 @@ lockmgr_note_exclusive_acquire(struct lock *lk, int co uint64_t waittime, const char *file, int line, int flags) { - lock_profile_obtain_lock_success(&lk->lock_object, contested, waittime, - file, line); + LOCKSTAT_PROFILE_OBTAIN_RWLOCK_SUCCESS(lockmgr__acquire, lk, contested, + waittime, file, line, LOCKSTAT_WRITER); LOCK_LOG_LOCK("XLOCK", &lk->lock_object, 0, lk->lk_recurse, file, line); WITNESS_LOCK(&lk->lock_object, LOP_EXCLUSIVE | LK_TRYWIT(flags), file, line); @@ -239,7 +240,7 @@ static void lockmgr_note_exclusive_release(struct lock *lk, const char *file, int line) { - lock_profile_release_lock(&lk->lock_object); + LOCKSTAT_PROFILE_RELEASE_RWLOCK(lockmgr__release, lk, LOCKSTAT_WRITER); LOCK_LOG_LOCK("XUNLOCK", &lk->lock_object, 0, lk->lk_recurse, file, line); WITNESS_UNLOCK(&lk->lock_object, LOP_EXCLUSIVE, file, line); @@ -555,6 +556,9 @@ lockmgr_slock_hard(struct lock *lk, u_int flags, struc const char *iwmesg; int ipri, itimo; +#ifdef KDTRACE_HOOKS + uint64_t sleep_time = 0; +#endif #ifdef LOCK_PROFILING uint64_t waittime = 0; int contested = 0; @@ -645,8 +649,14 @@ retry_sleepq: * shared lock and the shared waiters flag is set, * we will sleep. */ +#ifdef KDTRACE_HOOKS + sleep_time -= lockstat_nsecs(&lk->lock_object); +#endif error = sleeplk(lk, flags, ilk, iwmesg, ipri, itimo, SQ_SHARED_QUEUE); +#ifdef KDTRACE_HOOKS + sleep_time += lockstat_nsecs(&lk->lock_object); +#endif flags &= ~LK_INTERLOCK; if (error) { LOCK_LOG3(lk, @@ -658,6 +668,12 @@ retry_sleepq: __func__, lk); } if (error == 0) { +#ifdef KDTRACE_HOOKS + if (sleep_time != 0) + LOCKSTAT_RECORD4(lockmgr__block, lk, sleep_time, + LOCKSTAT_READER, (x & LK_SHARE) == 0, + (x & LK_SHARE) == 0 ? 0 : LK_SHARERS(x)); +#endif #ifdef LOCK_PROFILING lockmgr_note_shared_acquire(lk, contested, waittime, file, line, flags); @@ -682,6 +698,9 @@ lockmgr_xlock_hard(struct lock *lk, u_int flags, struc const char *iwmesg; int ipri, itimo; +#ifdef KDTRACE_HOOKS + uint64_t sleep_time = 0; +#endif #ifdef LOCK_PROFILING uint64_t waittime = 0; int contested = 0; @@ -821,8 +840,14 @@ retry_sleepq: * exclusive lock and the exclusive waiters flag * is set, we will sleep. */ +#ifdef KDTRACE_HOOKS + sleep_time -= lockstat_nsecs(&lk->lock_object); +#endif error = sleeplk(lk, flags, ilk, iwmesg, ipri, itimo, SQ_EXCLUSIVE_QUEUE); +#ifdef KDTRACE_HOOKS + sleep_time += lockstat_nsecs(&lk->lock_object); +#endif flags &= ~LK_INTERLOCK; if (error) { LOCK_LOG3(lk, @@ -834,6 +859,12 @@ retry_sleepq: __func__, lk); } if (error == 0) { +#ifdef KDTRACE_HOOKS + if (sleep_time != 0) + LOCKSTAT_RECORD4(lockmgr__block, lk, sleep_time, + LOCKSTAT_WRITER, (x & LK_SHARE) == 0, + (x & LK_SHARE) == 0 ? 0 : LK_SHARERS(x)); +#endif #ifdef LOCK_PROFILING lockmgr_note_exclusive_acquire(lk, contested, waittime, file, line, flags); @@ -877,6 +908,7 @@ lockmgr_upgrade(struct lock *lk, u_int flags, struct l line); WITNESS_UPGRADE(&lk->lock_object, LOP_EXCLUSIVE | LK_TRYWIT(flags), file, line); + LOCKSTAT_RECORD0(lockmgr__upgrade, lk); TD_SLOCKS_DEC(curthread); goto out; } @@ -1024,7 +1056,8 @@ lockmgr_xunlock_hard(struct lock *lk, uintptr_t x, u_i goto out; } if (tid != LK_KERNPROC) - lock_profile_release_lock(&lk->lock_object); + LOCKSTAT_PROFILE_RELEASE_RWLOCK(lockmgr__release, lk, + LOCKSTAT_WRITER); if (x == tid && atomic_cmpset_rel_ptr(&lk->lk_lock, tid, LK_UNLOCKED)) goto out; @@ -1205,7 +1238,6 @@ __lockmgr_args(struct lock *lk, u_int flags, struct lo break; case LK_DOWNGRADE: _lockmgr_assert(lk, KA_XLOCKED, file, line); - LOCK_LOG_LOCK("XDOWNGRADE", &lk->lock_object, 0, 0, file, line); WITNESS_DOWNGRADE(&lk->lock_object, 0, file, line); /* @@ -1231,6 +1263,8 @@ __lockmgr_args(struct lock *lk, u_int flags, struct lo break; cpu_spinwait(); } + LOCK_LOG_LOCK("XDOWNGRADE", &lk->lock_object, 0, 0, file, line); + LOCKSTAT_RECORD0(lockmgr__downgrade, lk); break; case LK_RELEASE: _lockmgr_assert(lk, KA_LOCKED, file, line); @@ -1462,6 +1496,7 @@ _lockmgr_disown(struct lock *lk, const char *file, int if (LK_HOLDER(lk->lk_lock) != tid) return; lock_profile_release_lock(&lk->lock_object); + LOCKSTAT_RECORD1(lockmgr__disown, lk, LOCKSTAT_WRITER); LOCK_LOG_LOCK("XDISOWN", &lk->lock_object, 0, 0, file, line); WITNESS_UNLOCK(&lk->lock_object, LOP_EXCLUSIVE, file, line); TD_LOCKS_DEC(curthread); Modified: head/sys/kern/kern_lockstat.c ============================================================================== --- head/sys/kern/kern_lockstat.c Wed Aug 21 23:24:40 2019 (r351360) +++ head/sys/kern/kern_lockstat.c Wed Aug 21 23:43:58 2019 (r351361) @@ -62,6 +62,14 @@ SDT_PROBE_DEFINE2(lockstat, , , sx__spin, "struct sx * SDT_PROBE_DEFINE1(lockstat, , , sx__upgrade, "struct sx *"); SDT_PROBE_DEFINE1(lockstat, , , sx__downgrade, "struct sx *"); +SDT_PROBE_DEFINE2(lockstat, , , lockmgr__acquire, "struct lock *", "int"); +SDT_PROBE_DEFINE2(lockstat, , , lockmgr__release, "struct lock *", "int"); +SDT_PROBE_DEFINE2(lockstat, , , lockmgr__disown, "struct lock *", "int"); +SDT_PROBE_DEFINE5(lockstat, , , lockmgr__block, "struct lock *", "uint64_t", + "int", "int", "int"); +SDT_PROBE_DEFINE1(lockstat, , , lockmgr__upgrade, "struct lock *"); +SDT_PROBE_DEFINE1(lockstat, , , lockmgr__downgrade, "struct lock *"); + SDT_PROBE_DEFINE2(lockstat, , , thread__spin, "struct mtx *", "uint64_t"); volatile bool __read_frequently lockstat_enabled; Modified: head/sys/sys/lockstat.h ============================================================================== --- head/sys/sys/lockstat.h Wed Aug 21 23:24:40 2019 (r351360) +++ head/sys/sys/lockstat.h Wed Aug 21 23:43:58 2019 (r351361) @@ -65,6 +65,13 @@ SDT_PROBE_DECLARE(lockstat, , , sx__spin); SDT_PROBE_DECLARE(lockstat, , , sx__upgrade); SDT_PROBE_DECLARE(lockstat, , , sx__downgrade); +SDT_PROBE_DECLARE(lockstat, , , lockmgr__acquire); +SDT_PROBE_DECLARE(lockstat, , , lockmgr__release); +SDT_PROBE_DECLARE(lockstat, , , lockmgr__disown); +SDT_PROBE_DECLARE(lockstat, , , lockmgr__block); +SDT_PROBE_DECLARE(lockstat, , , lockmgr__upgrade); +SDT_PROBE_DECLARE(lockstat, , , lockmgr__downgrade); + SDT_PROBE_DECLARE(lockstat, , , thread__spin); #define LOCKSTAT_WRITER 0 From owner-svn-src-all@freebsd.org Wed Aug 21 23:44:47 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 45F19D7A28; Wed, 21 Aug 2019 23:44:47 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DPQl18p4z3Fbs; Wed, 21 Aug 2019 23:44:47 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E3E9423568; Wed, 21 Aug 2019 23:44:46 +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 x7LNikWJ058497; Wed, 21 Aug 2019 23:44:46 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LNik8Z058496; Wed, 21 Aug 2019 23:44:46 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908212344.x7LNik8Z058496@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 21 Aug 2019 23:44:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351362 - in stable: 11/usr.bin/netstat 12/usr.bin/netstat X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/usr.bin/netstat 12/usr.bin/netstat X-SVN-Commit-Revision: 351362 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 23:44:47 -0000 Author: jhb Date: Wed Aug 21 23:44:46 2019 New Revision: 351362 URL: https://svnweb.freebsd.org/changeset/base/351362 Log: MFC 350666: Tidy up the list of auth and encryption algorithms for IPsec stats. - Use keyed-md5 and keyed_sha1 instead of md5 and sha1 to match the names accepted by setkey and to also avoid confusion since these are not "plain" MD5 or SHA1. - Remove always-true #ifdef's to make the source a bit easier to read. - Add missing mappings for tcp-md5, camellia-cbc, and aes-gmac. Modified: stable/11/usr.bin/netstat/ipsec.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.bin/netstat/ipsec.c Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.bin/netstat/ipsec.c ============================================================================== --- stable/11/usr.bin/netstat/ipsec.c Wed Aug 21 23:43:58 2019 (r351361) +++ stable/11/usr.bin/netstat/ipsec.c Wed Aug 21 23:44:46 2019 (r351362) @@ -123,33 +123,18 @@ static struct val2str ipsec_ahnames[] = { { SADB_AALG_NONE, "none", }, { SADB_AALG_MD5HMAC, "hmac-md5", }, { SADB_AALG_SHA1HMAC, "hmac-sha1", }, - { SADB_X_AALG_MD5, "md5", }, - { SADB_X_AALG_SHA, "sha", }, + { SADB_X_AALG_MD5, "keyed-md5", }, + { SADB_X_AALG_SHA, "keyed-sha1", }, { SADB_X_AALG_NULL, "null", }, -#ifdef SADB_X_AALG_SHA2_256 { SADB_X_AALG_SHA2_256, "hmac-sha2-256", }, -#endif -#ifdef SADB_X_AALG_SHA2_384 { SADB_X_AALG_SHA2_384, "hmac-sha2-384", }, -#endif -#ifdef SADB_X_AALG_SHA2_512 { SADB_X_AALG_SHA2_512, "hmac-sha2-512", }, -#endif -#ifdef SADB_X_AALG_RIPEMD160HMAC { SADB_X_AALG_RIPEMD160HMAC, "hmac-ripemd160", }, -#endif -#ifdef SADB_X_AALG_AES_XCBC_MAC { SADB_X_AALG_AES_XCBC_MAC, "aes-xcbc-mac", }, -#endif -#ifdef SADB_X_AALG_AES128GMAC + { SADB_X_AALG_TCP_MD5, "tcp-md5", }, { SADB_X_AALG_AES128GMAC, "aes-gmac-128", }, -#endif -#ifdef SADB_X_AALG_AES192GMAC { SADB_X_AALG_AES192GMAC, "aes-gmac-192", }, -#endif -#ifdef SADB_X_AALG_AES256GMAC { SADB_X_AALG_AES256GMAC, "aes-gmac-256", }, -#endif { -1, NULL }, }; @@ -160,15 +145,11 @@ static struct val2str ipsec_espnames[] = { { SADB_EALG_NULL, "null", }, { SADB_X_EALG_CAST128CBC, "cast128-cbc", }, { SADB_X_EALG_BLOWFISHCBC, "blowfish-cbc", }, -#ifdef SADB_X_EALG_RIJNDAELCBC { SADB_X_EALG_RIJNDAELCBC, "rijndael-cbc", }, -#endif -#ifdef SADB_X_EALG_AESCTR + { SADB_X_EALG_CAMELLIACBC, "camellia-cbc", }, { SADB_X_EALG_AESCTR, "aes-ctr", }, -#endif -#ifdef SADB_X_EALG_AESGCM16 { SADB_X_EALG_AESGCM16, "aes-gcm-16", }, -#endif + { SADB_X_EALG_AESGMAC, "aes-gmac", }, { -1, NULL }, }; From owner-svn-src-all@freebsd.org Wed Aug 21 23:44:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D3A4ED7A1F; Wed, 21 Aug 2019 23:44:46 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DPQk5CS2z3Fbp; Wed, 21 Aug 2019 23:44:46 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 954AA23567; Wed, 21 Aug 2019 23:44:46 +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 x7LNikJO058491; Wed, 21 Aug 2019 23:44:46 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LNikcv058490; Wed, 21 Aug 2019 23:44:46 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908212344.x7LNikcv058490@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 21 Aug 2019 23:44:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351362 - in stable: 11/usr.bin/netstat 12/usr.bin/netstat X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/usr.bin/netstat 12/usr.bin/netstat X-SVN-Commit-Revision: 351362 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 23:44:46 -0000 Author: jhb Date: Wed Aug 21 23:44:46 2019 New Revision: 351362 URL: https://svnweb.freebsd.org/changeset/base/351362 Log: MFC 350666: Tidy up the list of auth and encryption algorithms for IPsec stats. - Use keyed-md5 and keyed_sha1 instead of md5 and sha1 to match the names accepted by setkey and to also avoid confusion since these are not "plain" MD5 or SHA1. - Remove always-true #ifdef's to make the source a bit easier to read. - Add missing mappings for tcp-md5, camellia-cbc, and aes-gmac. Modified: stable/12/usr.bin/netstat/ipsec.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.bin/netstat/ipsec.c Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.bin/netstat/ipsec.c ============================================================================== --- stable/12/usr.bin/netstat/ipsec.c Wed Aug 21 23:43:58 2019 (r351361) +++ stable/12/usr.bin/netstat/ipsec.c Wed Aug 21 23:44:46 2019 (r351362) @@ -125,33 +125,18 @@ static struct val2str ipsec_ahnames[] = { { SADB_AALG_NONE, "none", }, { SADB_AALG_MD5HMAC, "hmac-md5", }, { SADB_AALG_SHA1HMAC, "hmac-sha1", }, - { SADB_X_AALG_MD5, "md5", }, - { SADB_X_AALG_SHA, "sha", }, + { SADB_X_AALG_MD5, "keyed-md5", }, + { SADB_X_AALG_SHA, "keyed-sha1", }, { SADB_X_AALG_NULL, "null", }, -#ifdef SADB_X_AALG_SHA2_256 { SADB_X_AALG_SHA2_256, "hmac-sha2-256", }, -#endif -#ifdef SADB_X_AALG_SHA2_384 { SADB_X_AALG_SHA2_384, "hmac-sha2-384", }, -#endif -#ifdef SADB_X_AALG_SHA2_512 { SADB_X_AALG_SHA2_512, "hmac-sha2-512", }, -#endif -#ifdef SADB_X_AALG_RIPEMD160HMAC { SADB_X_AALG_RIPEMD160HMAC, "hmac-ripemd160", }, -#endif -#ifdef SADB_X_AALG_AES_XCBC_MAC { SADB_X_AALG_AES_XCBC_MAC, "aes-xcbc-mac", }, -#endif -#ifdef SADB_X_AALG_AES128GMAC + { SADB_X_AALG_TCP_MD5, "tcp-md5", }, { SADB_X_AALG_AES128GMAC, "aes-gmac-128", }, -#endif -#ifdef SADB_X_AALG_AES192GMAC { SADB_X_AALG_AES192GMAC, "aes-gmac-192", }, -#endif -#ifdef SADB_X_AALG_AES256GMAC { SADB_X_AALG_AES256GMAC, "aes-gmac-256", }, -#endif { -1, NULL }, }; @@ -162,15 +147,11 @@ static struct val2str ipsec_espnames[] = { { SADB_EALG_NULL, "null", }, { SADB_X_EALG_CAST128CBC, "cast128-cbc", }, { SADB_X_EALG_BLOWFISHCBC, "blowfish-cbc", }, -#ifdef SADB_X_EALG_RIJNDAELCBC { SADB_X_EALG_RIJNDAELCBC, "rijndael-cbc", }, -#endif -#ifdef SADB_X_EALG_AESCTR + { SADB_X_EALG_CAMELLIACBC, "camellia-cbc", }, { SADB_X_EALG_AESCTR, "aes-ctr", }, -#endif -#ifdef SADB_X_EALG_AESGCM16 { SADB_X_EALG_AESGCM16, "aes-gcm-16", }, -#endif + { SADB_X_EALG_AESGMAC, "aes-gmac", }, { -1, NULL }, }; From owner-svn-src-all@freebsd.org Wed Aug 21 23:47:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BE628D7B43; Wed, 21 Aug 2019 23:47:01 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DPTK4bnzz3FtC; Wed, 21 Aug 2019 23:47:01 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7F7982356D; Wed, 21 Aug 2019 23:47:01 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7LNl1cW058647; Wed, 21 Aug 2019 23:47:01 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7LNl1L8058646; Wed, 21 Aug 2019 23:47:01 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908212347.x7LNl1L8058646@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 21 Aug 2019 23:47:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351363 - head/cddl/contrib/opensolaris/cmd/lockstat X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/cmd/lockstat X-SVN-Commit-Revision: 351363 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 21 Aug 2019 23:47:01 -0000 Author: markj Date: Wed Aug 21 23:47:01 2019 New Revision: 351363 URL: https://svnweb.freebsd.org/changeset/base/351363 Log: Add hold events for lockmgr probes, missed in r351361. MFC with: r351361 Modified: head/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c Modified: head/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c ============================================================================== --- head/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c Wed Aug 21 23:44:46 2019 (r351362) +++ head/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c Wed Aug 21 23:47:01 2019 (r351363) @@ -215,8 +215,12 @@ static ls_event_info_t g_event_info[LS_MAX_EVENTS] = { { 'H', "Lock", "SX exclusive hold", "nsec", "lockstat:::sx-release", "arg1 == 0", "lockstat:::sx-acquire" }, - { 'H', "Lock", "Unknown event (type 38)", "units" }, - { 'H', "Lock", "Unknown event (type 39)", "units" }, + { 'H', "Lock", "lockmgr shared hold", "nsec", + "lockstat:::lockmgr-release", "arg1 == 1", + "lockstat:::lockmgr-acquire" }, + { 'H', "Lock", "lockmgr exclusive hold", "nsec", + "lockstat:::lockmgr-release,lockstat:::lockmgr-disown", "arg1 == 0", + "lockstat:::lockmgr-acquire" }, { 'H', "Lock", "Unknown event (type 40)", "units" }, { 'H', "Lock", "Unknown event (type 41)", "units" }, { 'H', "Lock", "Unknown event (type 42)", "units" }, From owner-svn-src-all@freebsd.org Thu Aug 22 00:02:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 40467D8070; Thu, 22 Aug 2019 00:02:13 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DPps1b0wz3GdK; Thu, 22 Aug 2019 00:02:13 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F333B237DE; Thu, 22 Aug 2019 00:02:12 +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 x7M02Cdm070136; Thu, 22 Aug 2019 00:02:12 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M028Jh070116; Thu, 22 Aug 2019 00:02:08 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908220002.x7M028Jh070116@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Thu, 22 Aug 2019 00:02:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351364 - in head/sys: crypto/blowfish crypto/chacha20 crypto/des opencrypto X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head/sys: crypto/blowfish crypto/chacha20 crypto/des opencrypto X-SVN-Commit-Revision: 351364 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 00:02:13 -0000 Author: jhb Date: Thu Aug 22 00:02:08 2019 New Revision: 351364 URL: https://svnweb.freebsd.org/changeset/base/351364 Log: Use 'const' for keys and IVs passed to software encryption algorithms. Specifically, use 'const' for the key passed to the 'setkey' method and 'const' for the 'iv' passed to the 'reinit' method. Reviewed by: cem Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D21347 Modified: head/sys/crypto/blowfish/bf_skey.c head/sys/crypto/blowfish/blowfish.h head/sys/crypto/chacha20/chacha-sw.c head/sys/crypto/des/des.h head/sys/crypto/des/des_setkey.c head/sys/opencrypto/cast.c head/sys/opencrypto/cast.h head/sys/opencrypto/skipjack.c head/sys/opencrypto/skipjack.h head/sys/opencrypto/xform_aes_icm.c head/sys/opencrypto/xform_aes_xts.c head/sys/opencrypto/xform_blf.c head/sys/opencrypto/xform_cast5.c head/sys/opencrypto/xform_cml.c head/sys/opencrypto/xform_des1.c head/sys/opencrypto/xform_des3.c head/sys/opencrypto/xform_enc.h head/sys/opencrypto/xform_null.c head/sys/opencrypto/xform_rijndael.c head/sys/opencrypto/xform_skipjack.c Modified: head/sys/crypto/blowfish/bf_skey.c ============================================================================== --- head/sys/crypto/blowfish/bf_skey.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/crypto/blowfish/bf_skey.c Thu Aug 22 00:02:08 2019 (r351364) @@ -73,11 +73,11 @@ void BF_set_key(key, len, data) BF_KEY *key; int len; - unsigned char *data; + const unsigned char *data; { int i; BF_LONG *p, ri, in[2]; - unsigned char *d, *end; + const unsigned char *d, *end; memcpy((char *)key, (const char *)&bf_init, sizeof(BF_KEY)); p = key->P; Modified: head/sys/crypto/blowfish/blowfish.h ============================================================================== --- head/sys/crypto/blowfish/blowfish.h Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/crypto/blowfish/blowfish.h Thu Aug 22 00:02:08 2019 (r351364) @@ -80,7 +80,7 @@ typedef struct bf_key_st { BF_LONG S[4*256]; } BF_KEY; -void BF_set_key(BF_KEY *, int, unsigned char *); +void BF_set_key(BF_KEY *, int, const unsigned char *); void BF_encrypt(BF_LONG *, BF_KEY *); void BF_decrypt(BF_LONG *, BF_KEY *); void BF_ecb_encrypt(const unsigned char *, unsigned char *, Modified: head/sys/crypto/chacha20/chacha-sw.c ============================================================================== --- head/sys/crypto/chacha20/chacha-sw.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/crypto/chacha20/chacha-sw.c Thu Aug 22 00:02:08 2019 (r351364) @@ -7,7 +7,7 @@ __FBSDID("$FreeBSD$"); #include static int -chacha20_xform_setkey(u_int8_t **sched, u_int8_t *key, int len) +chacha20_xform_setkey(u_int8_t **sched, const u_int8_t *key, int len) { struct chacha_ctx *ctx; @@ -24,7 +24,7 @@ chacha20_xform_setkey(u_int8_t **sched, u_int8_t *key, } static void -chacha20_xform_reinit(caddr_t key, u_int8_t *iv) +chacha20_xform_reinit(caddr_t key, const u_int8_t *iv) { struct chacha_ctx *ctx; Modified: head/sys/crypto/des/des.h ============================================================================== --- head/sys/crypto/des/des.h Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/crypto/des/des.h Thu Aug 22 00:02:08 2019 (r351364) @@ -103,12 +103,12 @@ void des_ede3_cbc_encrypt(const unsigned char *, unsig void des_set_odd_parity(des_cblock *); void des_fixup_key_parity(des_cblock *); -int des_is_weak_key(des_cblock *); -int des_set_key(des_cblock *, des_key_schedule); -int des_key_sched(des_cblock *, des_key_schedule); -int des_set_key_checked(des_cblock *, des_key_schedule); -void des_set_key_unchecked(des_cblock *, des_key_schedule); -int des_check_key_parity(des_cblock *); +int des_is_weak_key(const des_cblock *); +int des_set_key(const des_cblock *, des_key_schedule); +int des_key_sched(const des_cblock *, des_key_schedule); +int des_set_key_checked(const des_cblock *, des_key_schedule); +void des_set_key_unchecked(const des_cblock *, des_key_schedule); +int des_check_key_parity(const des_cblock *); #ifdef __cplusplus } Modified: head/sys/crypto/des/des_setkey.c ============================================================================== --- head/sys/crypto/des/des_setkey.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/crypto/des/des_setkey.c Thu Aug 22 00:02:08 2019 (r351364) @@ -75,7 +75,7 @@ void des_set_odd_parity(des_cblock *key) (*key)[i]=odd_parity[(*key)[i]]; } -int des_check_key_parity(des_cblock *key) +int des_check_key_parity(const des_cblock *key) { int i; @@ -117,7 +117,7 @@ static des_cblock weak_keys[NUM_WEAK_KEY]={ {0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1,0xFE}, {0xFE,0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1}}; -int des_is_weak_key(des_cblock *key) +int des_is_weak_key(const des_cblock *key) { int i; @@ -142,7 +142,7 @@ int des_is_weak_key(des_cblock *key) #define HPERM_OP(a,t,n,m) ((t)=((((a)<<(16-(n)))^(a))&(m)),\ (a)=(a)^(t)^(t>>(16-(n)))) -int des_set_key(des_cblock *key, des_key_schedule schedule) +int des_set_key(const des_cblock *key, des_key_schedule schedule) { if (des_check_key) { @@ -159,7 +159,7 @@ int des_set_key(des_cblock *key, des_key_schedule sche * return -1 if key parity error, * return -2 if illegal weak key. */ -int des_set_key_checked(des_cblock *key, des_key_schedule schedule) +int des_set_key_checked(const des_cblock *key, des_key_schedule schedule) { if (!des_check_key_parity(key)) return(-1); @@ -169,7 +169,7 @@ int des_set_key_checked(des_cblock *key, des_key_sched return 0; } -void des_set_key_unchecked(des_cblock *key, des_key_schedule schedule) +void des_set_key_unchecked(const des_cblock *key, des_key_schedule schedule) { static int shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0}; DES_LONG c,d,t,s,t2; @@ -225,7 +225,7 @@ void des_set_key_unchecked(des_cblock *key, des_key_sc } } -int des_key_sched(des_cblock *key, des_key_schedule schedule) +int des_key_sched(const des_cblock *key, des_key_schedule schedule) { return(des_set_key(key,schedule)); } Modified: head/sys/opencrypto/cast.c ============================================================================== --- head/sys/opencrypto/cast.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/cast.c Thu Aug 22 00:02:08 2019 (r351364) @@ -129,7 +129,7 @@ u_int32_t t, l, r; /***** Key Schedule *****/ -void cast_setkey(cast_key* key, u_int8_t* rawkey, int keybytes) +void cast_setkey(cast_key* key, const u_int8_t* rawkey, int keybytes) { u_int32_t t[4] = {0, 0, 0, 0}, z[4] = {0, 0, 0, 0}, x[4]; int i; Modified: head/sys/opencrypto/cast.h ============================================================================== --- head/sys/opencrypto/cast.h Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/cast.h Thu Aug 22 00:02:08 2019 (r351364) @@ -16,7 +16,7 @@ typedef struct { int rounds; /* Number of rounds to use, 12 or 16 */ } cast_key; -void cast_setkey(cast_key * key, u_int8_t * rawkey, int keybytes); +void cast_setkey(cast_key * key, const u_int8_t * rawkey, int keybytes); void cast_encrypt(cast_key * key, u_int8_t * inblock, u_int8_t * outblock); void cast_decrypt(cast_key * key, u_int8_t * inblock, u_int8_t * outblock); Modified: head/sys/opencrypto/skipjack.c ============================================================================== --- head/sys/opencrypto/skipjack.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/skipjack.c Thu Aug 22 00:02:08 2019 (r351364) @@ -65,7 +65,7 @@ static const u_int8_t ftable[0x100] = */ void -subkey_table_gen (u_int8_t *key, u_int8_t **key_tables) +subkey_table_gen (const u_int8_t *key, u_int8_t **key_tables) { int i, k; Modified: head/sys/opencrypto/skipjack.h ============================================================================== --- head/sys/opencrypto/skipjack.h Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/skipjack.h Thu Aug 22 00:02:08 2019 (r351364) @@ -19,6 +19,6 @@ 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); +extern void subkey_table_gen(const u_int8_t *key, u_int8_t **key_tables); #endif Modified: head/sys/opencrypto/xform_aes_icm.c ============================================================================== --- head/sys/opencrypto/xform_aes_icm.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/xform_aes_icm.c Thu Aug 22 00:02:08 2019 (r351364) @@ -52,12 +52,12 @@ __FBSDID("$FreeBSD$"); #include -static int aes_icm_setkey(u_int8_t **, u_int8_t *, int); +static int aes_icm_setkey(u_int8_t **, const u_int8_t *, int); static void aes_icm_crypt(caddr_t, u_int8_t *); static void aes_icm_zerokey(u_int8_t **); -static void aes_icm_reinit(caddr_t, u_int8_t *); -static void aes_gcm_reinit(caddr_t, u_int8_t *); -static void aes_ccm_reinit(caddr_t, u_int8_t *); +static void aes_icm_reinit(caddr_t, const u_int8_t *); +static void aes_gcm_reinit(caddr_t, const u_int8_t *); +static void aes_ccm_reinit(caddr_t, const u_int8_t *); /* Encryption instances */ struct enc_xform enc_xform_aes_icm = { @@ -96,7 +96,7 @@ struct enc_xform enc_xform_ccm = { * Encryption wrapper routines. */ static void -aes_icm_reinit(caddr_t key, u_int8_t *iv) +aes_icm_reinit(caddr_t key, const u_int8_t *iv) { struct aes_icm_ctx *ctx; @@ -105,7 +105,7 @@ aes_icm_reinit(caddr_t key, u_int8_t *iv) } static void -aes_gcm_reinit(caddr_t key, u_int8_t *iv) +aes_gcm_reinit(caddr_t key, const u_int8_t *iv) { struct aes_icm_ctx *ctx; @@ -118,7 +118,7 @@ aes_gcm_reinit(caddr_t key, u_int8_t *iv) } static void -aes_ccm_reinit(caddr_t key, u_int8_t *iv) +aes_ccm_reinit(caddr_t key, const u_int8_t *iv) { struct aes_icm_ctx *ctx; @@ -153,7 +153,7 @@ aes_icm_crypt(caddr_t key, u_int8_t *data) } static int -aes_icm_setkey(u_int8_t **sched, u_int8_t *key, int len) +aes_icm_setkey(u_int8_t **sched, const u_int8_t *key, int len) { struct aes_icm_ctx *ctx; @@ -166,7 +166,7 @@ aes_icm_setkey(u_int8_t **sched, u_int8_t *key, int le return ENOMEM; ctx = (struct aes_icm_ctx *)*sched; - ctx->ac_nr = rijndaelKeySetupEnc(ctx->ac_ek, (u_char *)key, len * 8); + ctx->ac_nr = rijndaelKeySetupEnc(ctx->ac_ek, key, len * 8); return 0; } Modified: head/sys/opencrypto/xform_aes_xts.c ============================================================================== --- head/sys/opencrypto/xform_aes_xts.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/xform_aes_xts.c Thu Aug 22 00:02:08 2019 (r351364) @@ -52,11 +52,11 @@ __FBSDID("$FreeBSD$"); #include -static int aes_xts_setkey(u_int8_t **, u_int8_t *, int); +static int aes_xts_setkey(u_int8_t **, const u_int8_t *, int); static void aes_xts_encrypt(caddr_t, u_int8_t *); static void aes_xts_decrypt(caddr_t, u_int8_t *); static void aes_xts_zerokey(u_int8_t **); -static void aes_xts_reinit(caddr_t, u_int8_t *); +static void aes_xts_reinit(caddr_t, const u_int8_t *); /* Encryption instances */ struct enc_xform enc_xform_aes_xts = { @@ -73,7 +73,7 @@ struct enc_xform enc_xform_aes_xts = { * Encryption wrapper routines. */ static void -aes_xts_reinit(caddr_t key, u_int8_t *iv) +aes_xts_reinit(caddr_t key, const u_int8_t *iv) { struct aes_xts_ctx *ctx = (struct aes_xts_ctx *)key; u_int64_t blocknum; @@ -136,7 +136,7 @@ aes_xts_decrypt(caddr_t key, u_int8_t *data) } static int -aes_xts_setkey(u_int8_t **sched, u_int8_t *key, int len) +aes_xts_setkey(u_int8_t **sched, const u_int8_t *key, int len) { struct aes_xts_ctx *ctx; Modified: head/sys/opencrypto/xform_blf.c ============================================================================== --- head/sys/opencrypto/xform_blf.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/xform_blf.c Thu Aug 22 00:02:08 2019 (r351364) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include -static int blf_setkey(u_int8_t **, u_int8_t *, int); +static int blf_setkey(u_int8_t **, const u_int8_t *, int); static void blf_encrypt(caddr_t, u_int8_t *); static void blf_decrypt(caddr_t, u_int8_t *); static void blf_zerokey(u_int8_t **); @@ -104,7 +104,7 @@ blf_decrypt(caddr_t key, u_int8_t *blk) } static int -blf_setkey(u_int8_t **sched, u_int8_t *key, int len) +blf_setkey(u_int8_t **sched, const u_int8_t *key, int len) { int err; Modified: head/sys/opencrypto/xform_cast5.c ============================================================================== --- head/sys/opencrypto/xform_cast5.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/xform_cast5.c Thu Aug 22 00:02:08 2019 (r351364) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include -static int cast5_setkey(u_int8_t **, u_int8_t *, int); +static int cast5_setkey(u_int8_t **, const u_int8_t *, int); static void cast5_encrypt(caddr_t, u_int8_t *); static void cast5_decrypt(caddr_t, u_int8_t *); static void cast5_zerokey(u_int8_t **); @@ -85,7 +85,7 @@ cast5_decrypt(caddr_t key, u_int8_t *blk) } static int -cast5_setkey(u_int8_t **sched, u_int8_t *key, int len) +cast5_setkey(u_int8_t **sched, const u_int8_t *key, int len) { int err; Modified: head/sys/opencrypto/xform_cml.c ============================================================================== --- head/sys/opencrypto/xform_cml.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/xform_cml.c Thu Aug 22 00:02:08 2019 (r351364) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include -static int cml_setkey(u_int8_t **, u_int8_t *, int); +static int cml_setkey(u_int8_t **, const u_int8_t *, int); static void cml_encrypt(caddr_t, u_int8_t *); static void cml_decrypt(caddr_t, u_int8_t *); static void cml_zerokey(u_int8_t **); @@ -87,7 +87,7 @@ cml_decrypt(caddr_t key, u_int8_t *blk) } static int -cml_setkey(u_int8_t **sched, u_int8_t *key, int len) +cml_setkey(u_int8_t **sched, const u_int8_t *key, int len) { int err; @@ -96,7 +96,7 @@ cml_setkey(u_int8_t **sched, u_int8_t *key, int len) *sched = KMALLOC(sizeof(camellia_ctx), M_CRYPTO_DATA, M_NOWAIT|M_ZERO); if (*sched != NULL) { - camellia_set_key((camellia_ctx *) *sched, (u_char *) key, + camellia_set_key((camellia_ctx *) *sched, key, len * 8); err = 0; } else Modified: head/sys/opencrypto/xform_des1.c ============================================================================== --- head/sys/opencrypto/xform_des1.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/xform_des1.c Thu Aug 22 00:02:08 2019 (r351364) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include -static int des1_setkey(u_int8_t **, u_int8_t *, int); +static int des1_setkey(u_int8_t **, const u_int8_t *, int); static void des1_encrypt(caddr_t, u_int8_t *); static void des1_decrypt(caddr_t, u_int8_t *); static void des1_zerokey(u_int8_t **); @@ -91,7 +91,7 @@ des1_decrypt(caddr_t key, u_int8_t *blk) } static int -des1_setkey(u_int8_t **sched, u_int8_t *key, int len) +des1_setkey(u_int8_t **sched, const u_int8_t *key, int len) { des_key_schedule *p; int err; @@ -99,7 +99,7 @@ des1_setkey(u_int8_t **sched, u_int8_t *key, int len) p = KMALLOC(sizeof (des_key_schedule), M_CRYPTO_DATA, M_NOWAIT|M_ZERO); if (p != NULL) { - des_set_key((des_cblock *) key, p[0]); + des_set_key((const des_cblock *) key, p[0]); err = 0; } else err = ENOMEM; Modified: head/sys/opencrypto/xform_des3.c ============================================================================== --- head/sys/opencrypto/xform_des3.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/xform_des3.c Thu Aug 22 00:02:08 2019 (r351364) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include -static int des3_setkey(u_int8_t **, u_int8_t *, int); +static int des3_setkey(u_int8_t **, const u_int8_t *, int); static void des3_encrypt(caddr_t, u_int8_t *); static void des3_decrypt(caddr_t, u_int8_t *); static void des3_zerokey(u_int8_t **); @@ -92,7 +92,7 @@ des3_decrypt(caddr_t key, u_int8_t *blk) } static int -des3_setkey(u_int8_t **sched, u_int8_t *key, int len) +des3_setkey(u_int8_t **sched, const u_int8_t *key, int len) { des_key_schedule *p; int err; @@ -100,9 +100,9 @@ des3_setkey(u_int8_t **sched, u_int8_t *key, int len) p = KMALLOC(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]); + des_set_key((const des_cblock *)(key + 0), p[0]); + des_set_key((const des_cblock *)(key + 8), p[1]); + des_set_key((const des_cblock *)(key + 16), p[2]); err = 0; } else err = ENOMEM; Modified: head/sys/opencrypto/xform_enc.h ============================================================================== --- head/sys/opencrypto/xform_enc.h Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/xform_enc.h Thu Aug 22 00:02:08 2019 (r351364) @@ -56,9 +56,9 @@ struct enc_xform { 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); + int (*setkey) (u_int8_t **, const u_int8_t *, int len); void (*zerokey) (u_int8_t **); - void (*reinit) (caddr_t, u_int8_t *); + void (*reinit) (caddr_t, const u_int8_t *); /* * Encrypt/decrypt 1+ blocks of input -- total size is 'len' bytes. * Len is guaranteed to be a multiple of the defined 'blocksize'. Modified: head/sys/opencrypto/xform_null.c ============================================================================== --- head/sys/opencrypto/xform_null.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/xform_null.c Thu Aug 22 00:02:08 2019 (r351364) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include -static int null_setkey(u_int8_t **, u_int8_t *, int); +static int null_setkey(u_int8_t **, const u_int8_t *, int); static void null_encrypt(caddr_t, u_int8_t *); static void null_decrypt(caddr_t, u_int8_t *); static void null_zerokey(u_int8_t **); @@ -104,7 +104,7 @@ null_decrypt(caddr_t key, u_int8_t *blk) } static int -null_setkey(u_int8_t **sched, u_int8_t *key, int len) +null_setkey(u_int8_t **sched, const u_int8_t *key, int len) { *sched = NULL; return 0; Modified: head/sys/opencrypto/xform_rijndael.c ============================================================================== --- head/sys/opencrypto/xform_rijndael.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/xform_rijndael.c Thu Aug 22 00:02:08 2019 (r351364) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include -static int rijndael128_setkey(u_int8_t **, u_int8_t *, int); +static int rijndael128_setkey(u_int8_t **, const u_int8_t *, int); static void rijndael128_encrypt(caddr_t, u_int8_t *); static void rijndael128_decrypt(caddr_t, u_int8_t *); static void rijndael128_zerokey(u_int8_t **); @@ -87,7 +87,7 @@ rijndael128_decrypt(caddr_t key, u_int8_t *blk) } static int -rijndael128_setkey(u_int8_t **sched, u_int8_t *key, int len) +rijndael128_setkey(u_int8_t **sched, const u_int8_t *key, int len) { int err; @@ -96,7 +96,7 @@ rijndael128_setkey(u_int8_t **sched, u_int8_t *key, in *sched = KMALLOC(sizeof(rijndael_ctx), M_CRYPTO_DATA, M_NOWAIT|M_ZERO); if (*sched != NULL) { - rijndael_set_key((rijndael_ctx *) *sched, (u_char *) key, + rijndael_set_key((rijndael_ctx *) *sched, key, len * 8); err = 0; } else Modified: head/sys/opencrypto/xform_skipjack.c ============================================================================== --- head/sys/opencrypto/xform_skipjack.c Wed Aug 21 23:47:01 2019 (r351363) +++ head/sys/opencrypto/xform_skipjack.c Thu Aug 22 00:02:08 2019 (r351364) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include -static int skipjack_setkey(u_int8_t **, u_int8_t *, int); +static int skipjack_setkey(u_int8_t **, const u_int8_t *, int); static void skipjack_encrypt(caddr_t, u_int8_t *); static void skipjack_decrypt(caddr_t, u_int8_t *); static void skipjack_zerokey(u_int8_t **); @@ -85,7 +85,7 @@ skipjack_decrypt(caddr_t key, u_int8_t *blk) } static int -skipjack_setkey(u_int8_t **sched, u_int8_t *key, int len) +skipjack_setkey(u_int8_t **sched, const u_int8_t *key, int len) { int err; From owner-svn-src-all@freebsd.org Thu Aug 22 00:19:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D0445D8935; Thu, 22 Aug 2019 00:19:14 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DQBV5BLjz3HVG; Thu, 22 Aug 2019 00:19:14 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 937D123ADE; Thu, 22 Aug 2019 00:19:14 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M0JE4B076393; Thu, 22 Aug 2019 00:19:14 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M0JEsx076392; Thu, 22 Aug 2019 00:19:14 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201908220019.x7M0JEsx076392@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Thu, 22 Aug 2019 00:19:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351365 - head/sys/gdb X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/gdb X-SVN-Commit-Revision: 351365 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 00:19:14 -0000 Author: cem Date: Thu Aug 22 00:19:14 2019 New Revision: 351365 URL: https://svnweb.freebsd.org/changeset/base/351365 Log: gdb(4): Include thread in Target Halt Reason This saves a round trip of the gdb remote inferior attempting to find the thread id of the halted thread. Sponsored by: Dell EMC Isilon Modified: head/sys/gdb/gdb_main.c Modified: head/sys/gdb/gdb_main.c ============================================================================== --- head/sys/gdb/gdb_main.c Thu Aug 22 00:02:08 2019 (r351364) +++ head/sys/gdb/gdb_main.c Thu Aug 22 00:19:14 2019 (r351365) @@ -198,8 +198,11 @@ gdb_trap(int type, int code) /* printf("GDB: got '%s'\n", gdb_rxp); */ switch (gdb_rx_char()) { case '?': /* Last signal. */ - gdb_tx_begin('S'); + gdb_tx_begin('T'); gdb_tx_hex(gdb_cpu_signal(type, code), 2); + gdb_tx_str("thread:"); + gdb_tx_varhex((long)kdb_thread->td_tid); + gdb_tx_char(';'); gdb_tx_end(); break; case 'c': { /* Continue. */ From owner-svn-src-all@freebsd.org Thu Aug 22 00:19:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BC977D899A; Thu, 22 Aug 2019 00:19:41 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DQC14ZYYz3Hcn; Thu, 22 Aug 2019 00:19:41 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7EC5123ADF; Thu, 22 Aug 2019 00:19:41 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M0Jfka076454; Thu, 22 Aug 2019 00:19:41 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M0JfYc076453; Thu, 22 Aug 2019 00:19:41 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201908220019.x7M0JfYc076453@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Thu, 22 Aug 2019 00:19:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351366 - head/sys/gdb X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/gdb X-SVN-Commit-Revision: 351366 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 00:19:41 -0000 Author: cem Date: Thu Aug 22 00:19:41 2019 New Revision: 351366 URL: https://svnweb.freebsd.org/changeset/base/351366 Log: gdb(4): Add basic 'qSupported' support This is where the host GDB tells us what features it supports, and we respond with the list we support. For now, just report PacketSize. Modified: head/sys/gdb/gdb_main.c Modified: head/sys/gdb/gdb_main.c ============================================================================== --- head/sys/gdb/gdb_main.c Thu Aug 22 00:19:14 2019 (r351365) +++ head/sys/gdb/gdb_main.c Thu Aug 22 00:19:41 2019 (r351366) @@ -162,12 +162,117 @@ sendit: gdb_tx_end(); } +#define BIT(n) (1ull << (n)) +enum { + GDB_MULTIPROCESS, + GDB_SWBREAK, + GDB_HWBREAK, + GDB_QRELOCINSN, + GDB_FORK_EVENTS, + GDB_VFORK_EVENTS, + GDB_EXEC_EVENTS, + GDB_VCONT_SUPPORTED, + GDB_QTHREADEVENTS, + GDB_NO_RESUMED, +}; +static const char * const gdb_feature_names[] = { + [GDB_MULTIPROCESS] = "multiprocess", + [GDB_SWBREAK] = "swbreak", + [GDB_HWBREAK] = "hwbreak", + [GDB_QRELOCINSN] = "qRelocInsn", + [GDB_FORK_EVENTS] = "fork-events", + [GDB_VFORK_EVENTS] = "vfork-events", + [GDB_EXEC_EVENTS] = "exec-events", + [GDB_VCONT_SUPPORTED] = "vContSupported", + [GDB_QTHREADEVENTS] = "QThreadEvents", + [GDB_NO_RESUMED] = "no-resumed", +}; +static void +gdb_do_qsupported(uint32_t *feat) +{ + char *tok, *delim, ok; + size_t i, toklen; + + /* Parse supported host features */ + *feat = 0; + if (gdb_rx_char() != ':') + goto error; + + while (gdb_rxsz > 0) { + tok = gdb_rxp; + delim = strchrnul(gdb_rxp, ';'); + toklen = (delim - tok); + + gdb_rxp += toklen; + gdb_rxsz -= toklen; + if (*delim != '\0') { + *delim = '\0'; + gdb_rxp += 1; + gdb_rxsz -= 1; + } + + if (toklen < 2) + goto error; + + ok = tok[toklen - 1]; + if (ok != '-' && ok != '+') { + /* + * GDB only has one KV-pair feature, and we don't + * support it, so ignore and move on. + */ + if (strchr(tok, '=') != NULL) + continue; + /* Not a KV-pair, and not a +/- flag? Malformed. */ + goto error; + } + if (ok != '+') + continue; + tok[toklen - 1] = '\0'; + + for (i = 0; i < nitems(gdb_feature_names); i++) + if (strcmp(gdb_feature_names[i], tok) == 0) + break; + + if (i == nitems(gdb_feature_names)) { + /* Unknown GDB feature. */ + continue; + } + + *feat |= BIT(i); + } + + /* Send a supported feature list back */ + gdb_tx_begin(0); + + gdb_tx_str("PacketSize"); + gdb_tx_char('='); + /* + * We don't buffer framing bytes, but we do need to retain a byte for a + * trailing nul. + */ + gdb_tx_varhex(GDB_BUFSZ + strlen("$#nn") - 1); + + /* + * Future consideration: + * - vCont + * - multiprocess + * - qXfer:threads:read + */ + gdb_tx_end(); + return; + +error: + *feat = 0; + gdb_tx_err(EINVAL); +} + static int gdb_trap(int type, int code) { jmp_buf jb; struct thread *thr_iter; void *prev_jb; + uint32_t host_features; prev_jb = kdb_jmpbuf(jb); if (setjmp(jb) != 0) { @@ -313,6 +418,8 @@ gdb_trap(int type, int code) gdb_tx_char('C'); gdb_tx_varhex((long)kdb_thread->td_tid); gdb_tx_end(); + } else if (gdb_rx_equal("Supported")) { + gdb_do_qsupported(&host_features); } else if (gdb_rx_equal("fThreadInfo")) { thr_iter = kdb_thr_first(); gdb_do_threadinfo(&thr_iter); From owner-svn-src-all@freebsd.org Thu Aug 22 00:33:23 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A1300D8D8F; Thu, 22 Aug 2019 00:33:23 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DQVq3ZBzz3JNJ; Thu, 22 Aug 2019 00:33: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4268523E7C; Thu, 22 Aug 2019 00:33: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 x7M0XNNM087958; Thu, 22 Aug 2019 00:33:23 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M0XNtf087957; Thu, 22 Aug 2019 00:33:23 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908220033.x7M0XNtf087957@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 22 Aug 2019 00:33:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351367 - stable/12/share/man/man7 X-SVN-Group: stable-12 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: stable/12/share/man/man7 X-SVN-Commit-Revision: 351367 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 00:33:23 -0000 Author: emaste Date: Thu Aug 22 00:33:22 2019 New Revision: 351367 URL: https://svnweb.freebsd.org/changeset/base/351367 Log: arch.7: add default tool chain table MFC r351035: arch.7: add tool chain table MFC r351036: arch.7: add deprecation notice for GCC 4.2.1 MFC r351037: arch.7: clarify that the table shows the default tool chain MFC r351063: arch.7: be explicit about the future for unmigrated GCC 4.2.1 archs Modified: stable/12/share/man/man7/arch.7 Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man7/arch.7 ============================================================================== --- stable/12/share/man/man7/arch.7 Thu Aug 22 00:19:41 2019 (r351366) +++ stable/12/share/man/man7/arch.7 Thu Aug 22 00:33:22 2019 (r351367) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 5, 2018 +.Dd August 14, 2019 .Dt ARCH 7 .Os .Sh NAME @@ -295,6 +295,50 @@ is 8 bytes on all supported architectures except i386. .Fx 11.0 , armv6 used the softfp ABI even though it supported only processors with a floating point unit. +.Ss Default Tool Chain +.Fx uses a variety of tool chain components for the supported CPU +architectures: +.Xr clang 1 +and +.Xr ld.lld 1 +provided by the base system, +GNU +.Xr gcc 1 +and Binutils +.Xr ld 1 , +or an external toolchain compiler and linker provided by a port or package. +This table shows the default tool chain for each architecture. +.Bl -column -offset indent "Sy Architecture" "Sy Compiler" "Sy Linker" +.It Sy Architecture Ta Sy Compiler Ta Sy Linker +.It aarch64 Ta Clang Ta lld +.It amd64 Ta Clang Ta lld +.It arm Ta Clang Ta GNU ld 2.17.50 +.It armv6 Ta Clang Ta GNU ld 2.17.50 +.It armv7 Ta Clang Ta lld +.It i386 Ta Clang Ta lld +.It mips Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It mipsel Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It mipselhf Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It mipshf Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It mipsn32 Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It mips64 Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It mips64el Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It mips64elhf Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It mips64hf Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It powerpc Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It powerpcspe Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It powerpc64 Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It riscv64 Ta GCC(1) Ta GNU ld(1) +.It riscv64sf Ta GCC(1) Ta GNU ld(1) +.It sparc64 Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.El +.Pp +(1) External toolchain provided by ports/packages. +.Pp +Note that GCC 4.2.1 is deprecated, and scheduled for removal on 2020-03-31. +Any CPU architectures not migrated by then +(to either base system Clang or external toolchain) +may be removed from the tree after that date. .Ss Predefined Macros The compiler provides a number of predefined macros. Some of these provide architecture-specific details and are explained below. From owner-svn-src-all@freebsd.org Thu Aug 22 00:34:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1B670D8DFB; Thu, 22 Aug 2019 00:34:12 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DQWl6zbFz3JVK; Thu, 22 Aug 2019 00:34:11 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D13C923E7D; Thu, 22 Aug 2019 00:34:11 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M0YBUo088033; Thu, 22 Aug 2019 00:34:11 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M0YBOw088032; Thu, 22 Aug 2019 00:34:11 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201908220034.x7M0YBOw088032@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Thu, 22 Aug 2019 00:34:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351368 - head/sys/gdb X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/gdb X-SVN-Commit-Revision: 351368 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 00:34:12 -0000 Author: cem Date: Thu Aug 22 00:34:11 2019 New Revision: 351368 URL: https://svnweb.freebsd.org/changeset/base/351368 Log: gdb(4): Implement qXfer:threads:read This streams out an XML document over several GDB packets describing all threads in the system; their ids, name, and any loosely defined "extra info" we feel like including. For now, I have included a string version of the run state, similar to some of the DDB logic to stringify thread state. The benefit of supporting this in addition to the qfThreadInfo/qsThreadInfo packing is that in this mode, the host gdb does not ask for every thread's "qThreadExtraInfo," saving per-thread round-trips on "info threads." To use this feature, (k)gdb needs to be built with the --with-expat option. I would encourage enabling this option by default in our GDB port, if it is not already. Finally, there is another optional attribute you can specify per-thread called a "handle." Handles are arbitrarily long sequences of bytes, represented in the XML as hexadecimal. It is unclear to me how or if GDB actually uses handles for anything. So I have left them out. Modified: head/sys/gdb/gdb_main.c Modified: head/sys/gdb/gdb_main.c ============================================================================== --- head/sys/gdb/gdb_main.c Thu Aug 22 00:33:22 2019 (r351367) +++ head/sys/gdb/gdb_main.c Thu Aug 22 00:34:11 2019 (r351368) @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -252,11 +253,12 @@ gdb_do_qsupported(uint32_t *feat) */ gdb_tx_varhex(GDB_BUFSZ + strlen("$#nn") - 1); + gdb_tx_str(";qXfer:threads:read+"); + /* * Future consideration: * - vCont * - multiprocess - * - qXfer:threads:read */ gdb_tx_end(); return; @@ -266,7 +268,306 @@ error: gdb_tx_err(EINVAL); } +/* + * A qXfer_context provides a vaguely generic way to generate a multi-packet + * response on the fly, making some assumptions about the size of sbuf writes + * vs actual packet length constraints. A non-byzantine gdb host should allow + * hundreds of bytes per packet or more. + * + * Upper layers are considered responsible for escaping the four forbidden + * characters '# $ } *'. + */ +struct qXfer_context { + struct sbuf sb; + size_t last_offset; + bool flushed; + bool lastmessage; + char xfer_buf[GDB_BUFSZ]; +}; + static int +qXfer_drain(void *v, const char *buf, int len) +{ + struct qXfer_context *qx; + + if (len < 0) + return (-EINVAL); + + qx = v; + if (qx->flushed) { + /* + * Overflow. We lost some message. Maybe the packet size is + * ridiculously small. + */ + printf("%s: Overflow in qXfer detected.\n", __func__); + return (-ENOBUFS); + } + + qx->last_offset += len; + qx->flushed = true; + + if (qx->lastmessage) + gdb_tx_begin('l'); + else + gdb_tx_begin('m'); + + memcpy(gdb_txp, buf, len); + gdb_txp += len; + + gdb_tx_end(); + return (len); +} + +static int +init_qXfer_ctx(struct qXfer_context *qx, uintmax_t len) +{ + + /* Protocol (max) length field includes framing overhead. */ + if (len < sizeof("$m#nn")) + return (ENOSPC); + + len -= 4; + len = ummin(len, GDB_BUFSZ - 1); + + qx->last_offset = 0; + qx->flushed = false; + qx->lastmessage = false; + sbuf_new(&qx->sb, qx->xfer_buf, len, SBUF_FIXEDLEN); + sbuf_set_drain(&qx->sb, qXfer_drain, qx); + return (0); +} + +/* + * dst must be 2x strlen(max_src) + 1. + * + * Squashes invalid XML characters down to _. Sorry. Then escapes for GDB. + */ +static void +qXfer_escape_xmlattr_str(char *dst, size_t dstlen, const char *src) +{ + static const char *forbidden = "#$}*"; + + size_t i; + char c; + + for (i = 0; i < dstlen - 1 && *src != 0; src++, i++) { + c = *src; + /* XML attr filter */ + if (c < 32) + c = '_'; + /* We assume attributes will be "" quoted. */ + if (c == '<' || c == '&' || c == '"') + c = '_'; + + /* GDB escape. */ + if (strchr(forbidden, c) != NULL) { + *dst++ = '}'; + c ^= 0x20; + } + *dst++ = c; + } + if (*src != 0) + printf("XXX%s: overflow; API misuse\n", __func__); + + *dst = 0; +} + +/* + * Dynamically generate qXfer:threads document, one packet at a time. + * + * The format is loosely described[0], although it does not seem that the + * mentioned on that page is required. + * + * [0]: https://sourceware.org/gdb/current/onlinedocs/gdb/Thread-List-Format.html + */ +static void +do_qXfer_threads_read(void) +{ + /* Kludgy context */ + static struct { + struct qXfer_context qXfer; + /* Kludgy state machine */ + struct thread *iter; + enum { + XML_START_THREAD, /* ' ...' */ + XML_END_THREAD, /* '' */ + XML_SENT_END_THREADS, /* '' */ + } next_step; + } ctx; + static char td_name_escape[MAXCOMLEN * 2 + 1]; + + const char *name_src; + uintmax_t offset, len; + int error; + + /* Annex part must be empty. */ + if (gdb_rx_char() != ':') + goto misformed_request; + + if (gdb_rx_varhex(&offset) != 0 || + gdb_rx_char() != ',' || + gdb_rx_varhex(&len) != 0) + goto misformed_request; + + /* + * Validate resume xfers. + */ + if (offset != 0) { + if (offset != ctx.qXfer.last_offset) { + printf("%s: Resumed offset %ju != expected %ju\n", + __func__, offset, ctx.qXfer.last_offset); + error = ESPIPE; + goto request_error; + } + ctx.qXfer.flushed = false; + } + + if (offset == 0) { + ctx.iter = kdb_thr_first(); + ctx.next_step = XML_START_THREAD; + error = init_qXfer_ctx(&ctx.qXfer, len); + if (error != 0) + goto request_error; + + sbuf_cat(&ctx.qXfer.sb, ""); + } + + while (!ctx.qXfer.flushed && ctx.iter != NULL) { + switch (ctx.next_step) { + case XML_START_THREAD: + ctx.next_step = XML_THREAD_ID; + sbuf_cat(&ctx.qXfer.sb, "td_tid); + continue; + + case XML_THREAD_CORE: + ctx.next_step = XML_THREAD_NAME; + if (ctx.iter->td_oncpu != NOCPU) { + sbuf_printf(&ctx.qXfer.sb, " core=\"%d\"", + ctx.iter->td_oncpu); + } + continue; + + case XML_THREAD_NAME: + ctx.next_step = XML_THREAD_EXTRA; + + if (ctx.iter->td_name[0] != 0) + name_src = ctx.iter->td_name; + else if (ctx.iter->td_proc != NULL && + ctx.iter->td_proc->p_comm[0] != 0) + name_src = ctx.iter->td_proc->p_comm; + else + continue; + + qXfer_escape_xmlattr_str(td_name_escape, + sizeof(td_name_escape), name_src); + sbuf_printf(&ctx.qXfer.sb, " name=\"%s\"", + td_name_escape); + continue; + + case XML_THREAD_EXTRA: + ctx.next_step = XML_END_THREAD; + + sbuf_putc(&ctx.qXfer.sb, '>'); + + if (ctx.iter->td_state == TDS_RUNNING) + sbuf_cat(&ctx.qXfer.sb, "Running"); + else if (ctx.iter->td_state == TDS_RUNQ) + sbuf_cat(&ctx.qXfer.sb, "RunQ"); + else if (ctx.iter->td_state == TDS_CAN_RUN) + sbuf_cat(&ctx.qXfer.sb, "CanRun"); + else if (TD_ON_LOCK(ctx.iter)) + sbuf_cat(&ctx.qXfer.sb, "Blocked"); + else if (TD_IS_SLEEPING(ctx.iter)) + sbuf_cat(&ctx.qXfer.sb, "Sleeping"); + else if (TD_IS_SWAPPED(ctx.iter)) + sbuf_cat(&ctx.qXfer.sb, "Swapped"); + else if (TD_AWAITING_INTR(ctx.iter)) + sbuf_cat(&ctx.qXfer.sb, "IthreadWait"); + else if (TD_IS_SUSPENDED(ctx.iter)) + sbuf_cat(&ctx.qXfer.sb, "Suspended"); + else + sbuf_cat(&ctx.qXfer.sb, "???"); + continue; + + case XML_END_THREAD: + ctx.next_step = XML_START_THREAD; + sbuf_cat(&ctx.qXfer.sb, ""); + ctx.iter = kdb_thr_next(ctx.iter); + continue; + + /* + * This one isn't part of the looping state machine, + * but GCC complains if you leave an enum value out of the + * select. + */ + case XML_SENT_END_THREADS: + /* NOTREACHED */ + break; + } + } + if (ctx.qXfer.flushed) + return; + + if (ctx.next_step != XML_SENT_END_THREADS) { + ctx.next_step = XML_SENT_END_THREADS; + sbuf_cat(&ctx.qXfer.sb, ""); + } + if (ctx.qXfer.flushed) + return; + + ctx.qXfer.lastmessage = true; + sbuf_finish(&ctx.qXfer.sb); + sbuf_delete(&ctx.qXfer.sb); + ctx.qXfer.last_offset = 0; + return; + +misformed_request: + /* + * GDB "General-Query-Packets.html" qXfer-read anchor specifically + * documents an E00 code for malformed requests or invalid annex. + * Non-zero codes indicate invalid offset or "error reading the data." + */ + error = 0; +request_error: + gdb_tx_err(error); + return; +} + +/* + * A set of standardized transfers from "special data areas." + * + * We've already matched on "qXfer:" and advanced the rx packet buffer past + * that bit. Parse out the rest of the packet and generate an appropriate + * response. + */ +static void +do_qXfer(void) +{ + if (!gdb_rx_equal("threads:")) + goto unrecognized; + + if (!gdb_rx_equal("read:")) + goto unrecognized; + + do_qXfer_threads_read(); + return; + +unrecognized: + gdb_tx_empty(); + return; +} + +static int gdb_trap(int type, int code) { jmp_buf jb; @@ -425,6 +726,8 @@ gdb_trap(int type, int code) gdb_do_threadinfo(&thr_iter); } else if (gdb_rx_equal("sThreadInfo")) { gdb_do_threadinfo(&thr_iter); + } else if (gdb_rx_equal("Xfer:")) { + do_qXfer(); } else if (gdb_rx_equal("Search:memory:")) { gdb_do_mem_search(); } else if (!gdb_cpu_query()) From owner-svn-src-all@freebsd.org Thu Aug 22 00:35:18 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 20BA2D8E74; Thu, 22 Aug 2019 00:35:18 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DQY16zpGz3JdQ; Thu, 22 Aug 2019 00:35:17 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D21AB23E7E; Thu, 22 Aug 2019 00:35:17 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M0ZHqc088143; Thu, 22 Aug 2019 00:35:17 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M0ZH3R088142; Thu, 22 Aug 2019 00:35:17 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201908220035.x7M0ZH3R088142@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Thu, 22 Aug 2019 00:35:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351369 - head/sys/amd64/include X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/amd64/include X-SVN-Commit-Revision: 351369 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 00:35:18 -0000 Author: cem Date: Thu Aug 22 00:35:17 2019 New Revision: 351369 URL: https://svnweb.freebsd.org/changeset/base/351369 Log: gdb(4):amd64: Bump MI GDB_BUFSZ for more efficient transfers A bigger buffer reduces the RTTs to transfer long messages and is otherwise relatively harmless, especially on systems with plenty of memory. Modified: head/sys/amd64/include/gdb_machdep.h Modified: head/sys/amd64/include/gdb_machdep.h ============================================================================== --- head/sys/amd64/include/gdb_machdep.h Thu Aug 22 00:34:11 2019 (r351368) +++ head/sys/amd64/include/gdb_machdep.h Thu Aug 22 00:35:17 2019 (r351369) @@ -31,9 +31,10 @@ #ifndef _MACHINE_GDB_MACHDEP_H_ #define _MACHINE_GDB_MACHDEP_H_ -#define GDB_BUFSZ (GDB_NREGS * 16) +#define GDB_BUFSZ 4096 #define GDB_NREGS 56 #define GDB_REG_PC 16 +_Static_assert(GDB_BUFSZ >= (GDB_NREGS * 16), "buffer fits 'g' regs"); static __inline size_t gdb_cpu_regsz(int regnum) From owner-svn-src-all@freebsd.org Thu Aug 22 00:36:17 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B353FD8EF0; Thu, 22 Aug 2019 00:36:17 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DQZ94Jgrz3JmP; Thu, 22 Aug 2019 00:36:17 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 75C2A23E80; Thu, 22 Aug 2019 00:36:17 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M0aHpj088230; Thu, 22 Aug 2019 00:36:17 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M0aHHJ088228; Thu, 22 Aug 2019 00:36:17 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201908220036.x7M0aHHJ088228@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Thu, 22 Aug 2019 00:36:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351370 - head/sys/gdb X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/gdb X-SVN-Commit-Revision: 351370 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 00:36:17 -0000 Author: cem Date: Thu Aug 22 00:36:16 2019 New Revision: 351370 URL: https://svnweb.freebsd.org/changeset/base/351370 Log: gdb(4): Style No functional change. I was surprised to find that no sys/ header already defines the -1 EOF convention anywhere, so defined one locally. Modified: head/sys/gdb/gdb_int.h head/sys/gdb/gdb_main.c head/sys/gdb/gdb_packet.c Modified: head/sys/gdb/gdb_int.h ============================================================================== --- head/sys/gdb/gdb_int.h Thu Aug 22 00:35:17 2019 (r351369) +++ head/sys/gdb/gdb_int.h Thu Aug 22 00:36:16 2019 (r351370) @@ -31,6 +31,10 @@ #ifndef _GDB_GDB_INT_H_ #define _GDB_GDB_INT_H_ +#ifndef EOF +#define EOF (-1) +#endif + extern struct gdb_dbgport *gdb_cur; extern int gdb_listening; @@ -54,7 +58,7 @@ gdb_rx_char(void) c = *gdb_rxp++; gdb_rxsz--; } else - c = -1; + c = EOF; return (c); } Modified: head/sys/gdb/gdb_main.c ============================================================================== --- head/sys/gdb/gdb_main.c Thu Aug 22 00:35:17 2019 (r351369) +++ head/sys/gdb/gdb_main.c Thu Aug 22 00:36:16 2019 (r351370) @@ -653,7 +653,10 @@ gdb_trap(int type, int code) case 'H': { /* Set thread. */ intmax_t tid; struct thread *thr; - gdb_rx_char(); + + /* Ignore 'g' (general) or 'c' (continue) flag. */ + (void) gdb_rx_char(); + if (gdb_rx_varhex(&tid)) { gdb_tx_err(EINVAL); break; @@ -768,7 +771,7 @@ gdb_trap(int type, int code) gdb_tx_err(ENOENT); break; } - case -1: + case EOF: /* Empty command. Treat as unknown command. */ /* FALLTHROUGH */ default: Modified: head/sys/gdb/gdb_packet.c ============================================================================== --- head/sys/gdb/gdb_packet.c Thu Aug 22 00:35:17 2019 (r351369) +++ head/sys/gdb/gdb_packet.c Thu Aug 22 00:36:16 2019 (r351370) @@ -197,7 +197,7 @@ gdb_rx_varhex(uintmax_t *vp) v += C2N(c); c = gdb_rx_char(); } while (isxdigit(c)); - if (c != -1) { + if (c != EOF) { gdb_rxp--; gdb_rxsz++; } @@ -343,13 +343,12 @@ gdb_rx_bindata(unsigned char *data, size_t datalen, si while (*amt < datalen) { c = gdb_rx_char(); - /* End of packet? */ - if (c == -1) + if (c == EOF) break; /* Escaped character up next */ if (c == '}') { - /* Truncated packet? Bail out */ - if ((c = gdb_rx_char()) == -1) + /* Malformed packet. */ + if ((c = gdb_rx_char()) == EOF) return (1); c ^= 0x20; } From owner-svn-src-all@freebsd.org Thu Aug 22 01:15:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EDCD0D9906; Thu, 22 Aug 2019 01:15:06 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DRQy637Kz3LQZ; Thu, 22 Aug 2019 01:15:06 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AE41D245B3; Thu, 22 Aug 2019 01:15:06 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M1F6fd011710; Thu, 22 Aug 2019 01:15:06 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M1F6fu011709; Thu, 22 Aug 2019 01:15:06 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201908220115.x7M1F6fu011709@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Thu, 22 Aug 2019 01:15:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351372 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 351372 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 01:15:07 -0000 Author: rmacklem Date: Thu Aug 22 01:15:06 2019 New Revision: 351372 URL: https://svnweb.freebsd.org/changeset/base/351372 Log: Map ENOTTY to EINVAL for lseek(SEEK_DATA/SEEK_HOLE). Without this patch, when an application performed lseek(SEEK_DATA/SEEK_HOLE) on a file in a file system that does not have its own VOP_IOCTL(), the lseek(2) fails with errno ENOTTY. This didn't seem appropriate, since ENOTTY is not listed as an error return by either the lseek(2) man page nor the POSIX draft for lseek(2). This was discussed on freebsd-current@ here: http://docs.FreeBSD.org/cgi/mid.cgi?CAOtMX2iiQdv1+15e1N_r7V6aCx_VqAJCTP1AW+qs3Yg7sPg9wA This trivial patch maps ENOTTY to EINVAL for lseek(SEEK_DATA/SEEK_HOLE). Reviewed by: markj Relnotes: yes Differential Revision: https://reviews.freebsd.org/D21300 Modified: head/sys/kern/vfs_vnops.c Modified: head/sys/kern/vfs_vnops.c ============================================================================== --- head/sys/kern/vfs_vnops.c Thu Aug 22 00:37:38 2019 (r351371) +++ head/sys/kern/vfs_vnops.c Thu Aug 22 01:15:06 2019 (r351372) @@ -2275,9 +2275,13 @@ vn_seek(struct file *fp, off_t offset, int whence, str break; case SEEK_DATA: error = fo_ioctl(fp, FIOSEEKDATA, &offset, cred, td); + if (error == ENOTTY) + error = EINVAL; break; case SEEK_HOLE: error = fo_ioctl(fp, FIOSEEKHOLE, &offset, cred, td); + if (error == ENOTTY) + error = EINVAL; break; default: error = EINVAL; From owner-svn-src-all@freebsd.org Thu Aug 22 01:18:36 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E6650D998D; Thu, 22 Aug 2019 01:18:36 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DRW05gdnz3LYs; Thu, 22 Aug 2019 01:18:36 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B9174245B8; Thu, 22 Aug 2019 01:18:36 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M1Ia8w011898; Thu, 22 Aug 2019 01:18:36 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M1IacB011897; Thu, 22 Aug 2019 01:18:36 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908220118.x7M1IacB011897@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 22 Aug 2019 01:18:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351373 - head X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 351373 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 01:18:37 -0000 Author: markj Date: Thu Aug 22 01:18:36 2019 New Revision: 351373 URL: https://svnweb.freebsd.org/changeset/base/351373 Log: Document r351361. Modified: head/RELNOTES Modified: head/RELNOTES ============================================================================== --- head/RELNOTES Thu Aug 22 01:15:06 2019 (r351372) +++ head/RELNOTES Thu Aug 22 01:18:36 2019 (r351373) @@ -10,6 +10,11 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +r351361: + Add probes for lockmgr(9) to the lockstat DTrace provider, add + corresponding lockstat(1) events, and document the new probes in + dtrace_lockstat.4. + r351201: Add a vop_stdioctl() call, so that file systems that do not support holes will have a trivial implementation of lseek(SEEK_DATA/SEEK_HOLE). From owner-svn-src-all@freebsd.org Thu Aug 22 01:30:00 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B1A40DA0C3; Thu, 22 Aug 2019 01:30:00 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DRm842MRz3MHd; Thu, 22 Aug 2019 01:30:00 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6C4DE24780; Thu, 22 Aug 2019 01:30:00 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M1U0Q0017605; Thu, 22 Aug 2019 01:30:00 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M1U0dA017604; Thu, 22 Aug 2019 01:30:00 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201908220130.x7M1U0dA017604@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Thu, 22 Aug 2019 01:30:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351374 - head X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 351374 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 01:30:00 -0000 Author: rmacklem Date: Thu Aug 22 01:29:59 2019 New Revision: 351374 URL: https://svnweb.freebsd.org/changeset/base/351374 Log: Add a couple of lines noting that r351372 maps ENOTTY->EINVAL for other cases. Modified: head/RELNOTES Modified: head/RELNOTES ============================================================================== --- head/RELNOTES Thu Aug 22 01:18:36 2019 (r351373) +++ head/RELNOTES Thu Aug 22 01:29:59 2019 (r351374) @@ -15,7 +15,7 @@ r351361: corresponding lockstat(1) events, and document the new probes in dtrace_lockstat.4. -r351201: +r351201, r351372: Add a vop_stdioctl() call, so that file systems that do not support holes will have a trivial implementation of lseek(SEEK_DATA/SEEK_HOLE). The algorithm appears to be compatible with the POSIX draft and @@ -23,6 +23,8 @@ r351201: does not support holes. Prior to this patch, lseek(2) would reply -1 with errno set to ENOTTY for SEEK_DATA/SEEK_HOLE on files in file systems that do not support holes. + r351372 maps ENOTTY to EINVAL for lseek(SEEK_DATA/SEEK_HOLE) for + any other cases, such as a ENOTTY return from vn_bmap_seekhole(). r350665: The fuse driver has been renamed to fusefs(5) and been substantially From owner-svn-src-all@freebsd.org Thu Aug 22 02:53:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A7811DBABB; Thu, 22 Aug 2019 02:53:46 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DTcp3yVrz3QsQ; Thu, 22 Aug 2019 02:53:46 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 69CB6257A4; Thu, 22 Aug 2019 02:53:46 +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 x7M2rkTr070389; Thu, 22 Aug 2019 02:53:46 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M2rkqn070388; Thu, 22 Aug 2019 02:53:46 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201908220253.x7M2rkqn070388@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 22 Aug 2019 02:53:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351375 - head X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 351375 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 02:53:46 -0000 Author: imp Date: Thu Aug 22 02:53:46 2019 New Revision: 351375 URL: https://svnweb.freebsd.org/changeset/base/351375 Log: Document Intel RST support just added Modified: head/RELNOTES Modified: head/RELNOTES ============================================================================== --- head/RELNOTES Thu Aug 22 01:29:59 2019 (r351374) +++ head/RELNOTES Thu Aug 22 02:53:46 2019 (r351375) @@ -15,6 +15,14 @@ r351361: corresponding lockstat(1) events, and document the new probes in dtrace_lockstat.4. +r351356: + Intel RST is a new 'feature' that remaps NVMe devices from + their normal location to part of the AHCI bar space. This + will eliminate the need to set the BIOS SATA setting from RST + to AHCI causing the nvme drive to be erased before FreeBSD + will see the nvme drive. FreeBSD will now be able to see the + nvme drive now in the default config. + r351201, r351372: Add a vop_stdioctl() call, so that file systems that do not support holes will have a trivial implementation of lseek(SEEK_DATA/SEEK_HOLE). From owner-svn-src-all@freebsd.org Thu Aug 22 02:53:51 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CBF77DBAE2; Thu, 22 Aug 2019 02:53:51 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DTcv4sd0z3Qyl; Thu, 22 Aug 2019 02:53:51 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 73058257A5; Thu, 22 Aug 2019 02:53:51 +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 x7M2rpIc070443; Thu, 22 Aug 2019 02:53:51 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M2rpLq070442; Thu, 22 Aug 2019 02:53:51 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201908220253.x7M2rpLq070442@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 22 Aug 2019 02:53:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351376 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 351376 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 02:53:51 -0000 Author: imp Date: Thu Aug 22 02:53:51 2019 New Revision: 351376 URL: https://svnweb.freebsd.org/changeset/base/351376 Log: Remove stray line that was duplicated. Noticed by: rpokala@ Modified: head/sys/dev/nvme/nvme.c Modified: head/sys/dev/nvme/nvme.c ============================================================================== --- head/sys/dev/nvme/nvme.c Thu Aug 22 02:53:46 2019 (r351375) +++ head/sys/dev/nvme/nvme.c Thu Aug 22 02:53:51 2019 (r351376) @@ -138,7 +138,6 @@ nvme_attach(device_t dev) /* * Reset controller twice to ensure we do a transition from cc.en==1 - * Reset controller twice to ensure we do a transition from cc.en==1 * to cc.en==0. This is because we don't really know what status * the controller was left in when boot handed off to OS. */ From owner-svn-src-all@freebsd.org Thu Aug 22 02:58:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9D08BDBC01; Thu, 22 Aug 2019 02:58:52 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DTkh4BPnz3R9b; Thu, 22 Aug 2019 02:58:52 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 717CC257A8; Thu, 22 Aug 2019 02:58:52 +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 x7M2wqBY070736; Thu, 22 Aug 2019 02:58:52 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M2woZe070723; Thu, 22 Aug 2019 02:58:50 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201908220258.x7M2woZe070723@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Thu, 22 Aug 2019 02:58:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351377 - in vendor/wpa/dist: hostapd hs20/client src src/ap src/common src/crypto src/drivers src/eap_common src/eap_peer src/eap_server src/eapol_auth src/eapol_supp src/p2p src/pae s... X-SVN-Group: vendor X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in vendor/wpa/dist: hostapd hs20/client src src/ap src/common src/crypto src/drivers src/eap_common src/eap_peer src/eap_server src/eapol_auth src/eapol_supp src/p2p src/pae src/radius src/rsn_supp sr... X-SVN-Commit-Revision: 351377 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 02:58:52 -0000 Author: cy Date: Thu Aug 22 02:58:49 2019 New Revision: 351377 URL: https://svnweb.freebsd.org/changeset/base/351377 Log: Import wpa_supplicant/hostapd 2.9 Added: vendor/wpa/dist/src/ap/airtime_policy.c (contents, props changed) vendor/wpa/dist/src/ap/airtime_policy.h (contents, props changed) vendor/wpa/dist/src/ap/wpa_auth_kay.c (contents, props changed) vendor/wpa/dist/src/ap/wpa_auth_kay.h (contents, props changed) vendor/wpa/dist/src/common/dragonfly.c (contents, props changed) vendor/wpa/dist/src/common/dragonfly.h (contents, props changed) vendor/wpa/dist/src/eap_common/eap_teap_common.c (contents, props changed) vendor/wpa/dist/src/eap_common/eap_teap_common.h (contents, props changed) vendor/wpa/dist/src/eap_peer/eap_teap.c (contents, props changed) vendor/wpa/dist/src/eap_peer/eap_teap_pac.c (contents, props changed) vendor/wpa/dist/src/eap_peer/eap_teap_pac.h (contents, props changed) vendor/wpa/dist/src/eap_server/eap_server_teap.c (contents, props changed) Modified: vendor/wpa/dist/hostapd/Android.mk vendor/wpa/dist/hostapd/ChangeLog vendor/wpa/dist/hostapd/Makefile vendor/wpa/dist/hostapd/config_file.c vendor/wpa/dist/hostapd/ctrl_iface.c vendor/wpa/dist/hostapd/defconfig vendor/wpa/dist/hostapd/eap_register.c vendor/wpa/dist/hostapd/hostapd.conf vendor/wpa/dist/hostapd/hostapd_cli.c vendor/wpa/dist/hostapd/main.c vendor/wpa/dist/hs20/client/.gitignore vendor/wpa/dist/hs20/client/osu_client.c vendor/wpa/dist/src/ap/Makefile vendor/wpa/dist/src/ap/accounting.c vendor/wpa/dist/src/ap/acs.c vendor/wpa/dist/src/ap/ap_config.c vendor/wpa/dist/src/ap/ap_config.h vendor/wpa/dist/src/ap/ap_drv_ops.c vendor/wpa/dist/src/ap/ap_drv_ops.h vendor/wpa/dist/src/ap/authsrv.c vendor/wpa/dist/src/ap/beacon.c vendor/wpa/dist/src/ap/ctrl_iface_ap.c vendor/wpa/dist/src/ap/dfs.c vendor/wpa/dist/src/ap/dpp_hostapd.c vendor/wpa/dist/src/ap/dpp_hostapd.h vendor/wpa/dist/src/ap/drv_callbacks.c vendor/wpa/dist/src/ap/gas_serv.c vendor/wpa/dist/src/ap/gas_serv.h vendor/wpa/dist/src/ap/hostapd.c vendor/wpa/dist/src/ap/hostapd.h vendor/wpa/dist/src/ap/hw_features.c vendor/wpa/dist/src/ap/ieee802_11.c vendor/wpa/dist/src/ap/ieee802_11.h vendor/wpa/dist/src/ap/ieee802_11_he.c vendor/wpa/dist/src/ap/ieee802_11_vht.c vendor/wpa/dist/src/ap/ieee802_1x.c vendor/wpa/dist/src/ap/ieee802_1x.h vendor/wpa/dist/src/ap/neighbor_db.c vendor/wpa/dist/src/ap/sta_info.c vendor/wpa/dist/src/ap/sta_info.h vendor/wpa/dist/src/ap/wmm.c vendor/wpa/dist/src/ap/wpa_auth.c vendor/wpa/dist/src/ap/wpa_auth.h vendor/wpa/dist/src/ap/wpa_auth_ft.c vendor/wpa/dist/src/ap/wpa_auth_glue.c vendor/wpa/dist/src/ap/wpa_auth_ie.c vendor/wpa/dist/src/common/dpp.c vendor/wpa/dist/src/common/dpp.h vendor/wpa/dist/src/common/hw_features_common.c vendor/wpa/dist/src/common/hw_features_common.h vendor/wpa/dist/src/common/ieee802_11_common.c vendor/wpa/dist/src/common/ieee802_11_common.h vendor/wpa/dist/src/common/ieee802_11_defs.h vendor/wpa/dist/src/common/qca-vendor.h vendor/wpa/dist/src/common/sae.c vendor/wpa/dist/src/common/sae.h vendor/wpa/dist/src/common/version.h vendor/wpa/dist/src/common/wpa_common.c vendor/wpa/dist/src/common/wpa_ctrl.h vendor/wpa/dist/src/crypto/aes_i.h vendor/wpa/dist/src/crypto/crypto.h vendor/wpa/dist/src/crypto/crypto_openssl.c vendor/wpa/dist/src/crypto/crypto_wolfssl.c vendor/wpa/dist/src/crypto/sha1-internal.c vendor/wpa/dist/src/crypto/sha1-prf.c vendor/wpa/dist/src/crypto/sha1-tlsprf.c vendor/wpa/dist/src/crypto/sha1-tprf.c vendor/wpa/dist/src/crypto/sha1.c vendor/wpa/dist/src/crypto/sha256-kdf.c vendor/wpa/dist/src/crypto/sha256-prf.c vendor/wpa/dist/src/crypto/sha256-tlsprf.c vendor/wpa/dist/src/crypto/sha256.h vendor/wpa/dist/src/crypto/sha384-kdf.c vendor/wpa/dist/src/crypto/sha384-prf.c vendor/wpa/dist/src/crypto/sha512-kdf.c vendor/wpa/dist/src/crypto/sha512-prf.c vendor/wpa/dist/src/crypto/tls.h vendor/wpa/dist/src/crypto/tls_openssl.c vendor/wpa/dist/src/crypto/tls_wolfssl.c vendor/wpa/dist/src/drivers/driver.h vendor/wpa/dist/src/drivers/driver_atheros.c vendor/wpa/dist/src/drivers/driver_bsd.c vendor/wpa/dist/src/drivers/driver_common.c vendor/wpa/dist/src/drivers/driver_hostap.c vendor/wpa/dist/src/drivers/driver_macsec_linux.c vendor/wpa/dist/src/drivers/driver_macsec_qca.c vendor/wpa/dist/src/drivers/driver_ndis.c vendor/wpa/dist/src/drivers/driver_nl80211.c vendor/wpa/dist/src/drivers/driver_nl80211.h vendor/wpa/dist/src/drivers/driver_nl80211_capa.c vendor/wpa/dist/src/drivers/driver_nl80211_event.c vendor/wpa/dist/src/drivers/driver_privsep.c vendor/wpa/dist/src/drivers/driver_wext.c vendor/wpa/dist/src/drivers/nl80211_copy.h vendor/wpa/dist/src/eap_common/eap_defs.h vendor/wpa/dist/src/eap_common/eap_pwd_common.c vendor/wpa/dist/src/eap_common/eap_sim_common.c vendor/wpa/dist/src/eap_common/eap_sim_common.h vendor/wpa/dist/src/eap_peer/eap.c vendor/wpa/dist/src/eap_peer/eap.h vendor/wpa/dist/src/eap_peer/eap_aka.c vendor/wpa/dist/src/eap_peer/eap_config.h vendor/wpa/dist/src/eap_peer/eap_eke.c vendor/wpa/dist/src/eap_peer/eap_leap.c vendor/wpa/dist/src/eap_peer/eap_methods.h vendor/wpa/dist/src/eap_peer/eap_peap.c vendor/wpa/dist/src/eap_peer/eap_pwd.c vendor/wpa/dist/src/eap_peer/eap_sim.c vendor/wpa/dist/src/eap_peer/eap_tls.c vendor/wpa/dist/src/eap_peer/eap_tls_common.c vendor/wpa/dist/src/eap_peer/eap_tls_common.h vendor/wpa/dist/src/eap_server/eap.h vendor/wpa/dist/src/eap_server/eap_i.h vendor/wpa/dist/src/eap_server/eap_methods.h vendor/wpa/dist/src/eap_server/eap_server.c vendor/wpa/dist/src/eap_server/eap_server_aka.c vendor/wpa/dist/src/eap_server/eap_server_pax.c vendor/wpa/dist/src/eap_server/eap_server_peap.c vendor/wpa/dist/src/eap_server/eap_server_pwd.c vendor/wpa/dist/src/eap_server/eap_server_sim.c vendor/wpa/dist/src/eap_server/eap_server_tls.c vendor/wpa/dist/src/eap_server/eap_server_tls_common.c vendor/wpa/dist/src/eap_server/eap_tls_common.h vendor/wpa/dist/src/eapol_auth/eapol_auth_sm.c vendor/wpa/dist/src/eapol_auth/eapol_auth_sm.h vendor/wpa/dist/src/eapol_supp/eapol_supp_sm.c vendor/wpa/dist/src/eapol_supp/eapol_supp_sm.h vendor/wpa/dist/src/lib.rules vendor/wpa/dist/src/p2p/p2p.c vendor/wpa/dist/src/p2p/p2p_go_neg.c vendor/wpa/dist/src/p2p/p2p_i.h vendor/wpa/dist/src/pae/ieee802_1x_kay.c vendor/wpa/dist/src/radius/radius_server.c vendor/wpa/dist/src/radius/radius_server.h vendor/wpa/dist/src/rsn_supp/wpa.c vendor/wpa/dist/src/rsn_supp/wpa.h vendor/wpa/dist/src/rsn_supp/wpa_ft.c vendor/wpa/dist/src/rsn_supp/wpa_i.h vendor/wpa/dist/src/tls/asn1.c vendor/wpa/dist/src/tls/libtommath.c vendor/wpa/dist/src/tls/x509v3.c vendor/wpa/dist/src/utils/common.c vendor/wpa/dist/src/utils/common.h vendor/wpa/dist/src/utils/trace.c vendor/wpa/dist/src/utils/wpa_debug.c vendor/wpa/dist/src/wps/wps.h vendor/wpa/dist/wpa_supplicant/Android.mk vendor/wpa/dist/wpa_supplicant/ChangeLog vendor/wpa/dist/wpa_supplicant/Makefile vendor/wpa/dist/wpa_supplicant/README-DPP vendor/wpa/dist/wpa_supplicant/ap.c vendor/wpa/dist/wpa_supplicant/ap.h vendor/wpa/dist/wpa_supplicant/bss.c vendor/wpa/dist/wpa_supplicant/config.c vendor/wpa/dist/wpa_supplicant/config.h vendor/wpa/dist/wpa_supplicant/config_file.c vendor/wpa/dist/wpa_supplicant/config_ssid.h vendor/wpa/dist/wpa_supplicant/config_winreg.c vendor/wpa/dist/wpa_supplicant/ctrl_iface.c vendor/wpa/dist/wpa_supplicant/dbus/dbus_new_helpers.c vendor/wpa/dist/wpa_supplicant/defconfig vendor/wpa/dist/wpa_supplicant/doc/docbook/eapol_test.8 vendor/wpa/dist/wpa_supplicant/doc/docbook/wpa_background.8 vendor/wpa/dist/wpa_supplicant/doc/docbook/wpa_cli.8 vendor/wpa/dist/wpa_supplicant/doc/docbook/wpa_gui.8 vendor/wpa/dist/wpa_supplicant/doc/docbook/wpa_passphrase.8 vendor/wpa/dist/wpa_supplicant/doc/docbook/wpa_priv.8 vendor/wpa/dist/wpa_supplicant/doc/docbook/wpa_supplicant.8 vendor/wpa/dist/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5 vendor/wpa/dist/wpa_supplicant/dpp_supplicant.c vendor/wpa/dist/wpa_supplicant/dpp_supplicant.h vendor/wpa/dist/wpa_supplicant/driver_i.h vendor/wpa/dist/wpa_supplicant/eap_register.c vendor/wpa/dist/wpa_supplicant/eapol_test.c vendor/wpa/dist/wpa_supplicant/events.c vendor/wpa/dist/wpa_supplicant/ibss_rsn.c vendor/wpa/dist/wpa_supplicant/interworking.c vendor/wpa/dist/wpa_supplicant/mesh.c vendor/wpa/dist/wpa_supplicant/mesh_mpm.c vendor/wpa/dist/wpa_supplicant/notify.c vendor/wpa/dist/wpa_supplicant/notify.h vendor/wpa/dist/wpa_supplicant/op_classes.c vendor/wpa/dist/wpa_supplicant/p2p_supplicant.c vendor/wpa/dist/wpa_supplicant/preauth_test.c vendor/wpa/dist/wpa_supplicant/rrm.c vendor/wpa/dist/wpa_supplicant/sme.c vendor/wpa/dist/wpa_supplicant/wnm_sta.c vendor/wpa/dist/wpa_supplicant/wpa_cli.c vendor/wpa/dist/wpa_supplicant/wpa_supplicant.c vendor/wpa/dist/wpa_supplicant/wpa_supplicant.conf vendor/wpa/dist/wpa_supplicant/wpa_supplicant_i.h vendor/wpa/dist/wpa_supplicant/wpas_glue.c Modified: vendor/wpa/dist/hostapd/Android.mk ============================================================================== --- vendor/wpa/dist/hostapd/Android.mk Thu Aug 22 02:53:51 2019 (r351376) +++ vendor/wpa/dist/hostapd/Android.mk Thu Aug 22 02:58:49 2019 (r351377) @@ -269,6 +269,7 @@ L_CFLAGS += -DCONFIG_SAE OBJS += src/common/sae.c NEED_ECC=y NEED_DH_GROUPS=y +NEED_DRAGONFLY=y endif ifdef CONFIG_OWE @@ -462,6 +463,7 @@ L_CFLAGS += -DEAP_SERVER_PWD OBJS += src/eap_server/eap_server_pwd.c src/eap_common/eap_pwd_common.c NEED_SHA256=y NEED_ECC=y +NEED_DRAGONFLY=y endif ifdef CONFIG_EAP_EKE @@ -485,6 +487,16 @@ NEED_T_PRF=y NEED_AES_UNWRAP=y endif +ifdef CONFIG_EAP_TEAP +L_CFLAGS += -DEAP_SERVER_TEAP +OBJS += src/eap_server/eap_server_teap.c +OBJS += src/eap_common/eap_teap_common.c +TLS_FUNCS=y +NEED_T_PRF=y +NEED_SHA384=y +NEED_AES_UNWRAP=y +endif + ifdef CONFIG_WPS L_CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC OBJS += src/utils/uuid.c @@ -593,6 +605,10 @@ endif ifdef CONFIG_PKCS12 L_CFLAGS += -DPKCS12_FUNCS +endif + +ifdef NEED_DRAGONFLY +OBJS += src/common/dragonfly.c endif ifdef MS_FUNCS Modified: vendor/wpa/dist/hostapd/ChangeLog ============================================================================== --- vendor/wpa/dist/hostapd/ChangeLog Thu Aug 22 02:53:51 2019 (r351376) +++ vendor/wpa/dist/hostapd/ChangeLog Thu Aug 22 02:58:49 2019 (r351377) @@ -1,5 +1,29 @@ ChangeLog for hostapd +2019-08-07 - v2.9 + * SAE changes + - disable use of groups using Brainpool curves + - improved protection against side channel attacks + [https://w1.fi/security/2019-6/] + * EAP-pwd changes + - disable use of groups using Brainpool curves + - improved protection against side channel attacks + [https://w1.fi/security/2019-6/] + * fixed FT-EAP initial mobility domain association using PMKSA caching + * added configuration of airtime policy + * fixed FILS to and RSNE into (Re)Association Response frames + * fixed DPP bootstrapping URI parser of channel list + * added support for regulatory WMM limitation (for ETSI) + * added support for MACsec Key Agreement using IEEE 802.1X/PSK + * added experimental support for EAP-TEAP server (RFC 7170) + * added experimental support for EAP-TLS server with TLS v1.3 + * added support for two server certificates/keys (RSA/ECC) + * added AKMSuiteSelector into "STA " control interface data to + determine with AKM was used for an association + * added eap_sim_id parameter to allow EAP-SIM/AKA server pseudonym and + fast reauthentication use to be disabled + * fixed an ECDH operation corner case with OpenSSL + 2019-04-21 - v2.8 * SAE changes - added support for SAE Password Identifier Modified: vendor/wpa/dist/hostapd/Makefile ============================================================================== --- vendor/wpa/dist/hostapd/Makefile Thu Aug 22 02:53:51 2019 (r351376) +++ vendor/wpa/dist/hostapd/Makefile Thu Aug 22 02:58:49 2019 (r351377) @@ -313,6 +313,7 @@ OBJS += ../src/common/sae.o NEED_ECC=y NEED_DH_GROUPS=y NEED_AP_MLME=y +NEED_DRAGONFLY=y endif ifdef CONFIG_OWE @@ -326,6 +327,11 @@ NEED_SHA384=y NEED_SHA512=y endif +ifdef CONFIG_AIRTIME_POLICY +CFLAGS += -DCONFIG_AIRTIME_POLICY +OBJS += ../src/ap/airtime_policy.o +endif + ifdef CONFIG_FILS CFLAGS += -DCONFIG_FILS OBJS += ../src/ap/fils_hlp.o @@ -496,6 +502,7 @@ CFLAGS += -DEAP_SERVER_PWD OBJS += ../src/eap_server/eap_server_pwd.o ../src/eap_common/eap_pwd_common.o NEED_SHA256=y NEED_ECC=y +NEED_DRAGONFLY=y endif ifdef CONFIG_EAP_EKE @@ -519,6 +526,16 @@ NEED_T_PRF=y NEED_AES_UNWRAP=y endif +ifdef CONFIG_EAP_TEAP +CFLAGS += -DEAP_SERVER_TEAP +OBJS += ../src/eap_server/eap_server_teap.o +OBJS += ../src/eap_common/eap_teap_common.o +TLS_FUNCS=y +NEED_T_PRF=y +NEED_SHA384=y +NEED_AES_UNWRAP=y +endif + ifdef CONFIG_WPS CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC OBJS += ../src/utils/uuid.o @@ -613,6 +630,15 @@ LIBS += -ldl endif endif +ifdef CONFIG_MACSEC +CFLAGS += -DCONFIG_MACSEC +OBJS += ../src/ap/wpa_auth_kay.o +OBJS += ../src/pae/ieee802_1x_cp.o +OBJS += ../src/pae/ieee802_1x_kay.o +OBJS += ../src/pae/ieee802_1x_key.o +OBJS += ../src/pae/ieee802_1x_secy_ops.o +endif + # Basic EAP functionality is needed for EAPOL OBJS += eap_register.o OBJS += ../src/eap_server/eap_server.o @@ -627,6 +653,10 @@ endif ifdef CONFIG_PKCS12 CFLAGS += -DPKCS12_FUNCS +endif + +ifdef NEED_DRAGONFLY +OBJS += ../src/common/dragonfly.o endif ifdef MS_FUNCS Modified: vendor/wpa/dist/hostapd/config_file.c ============================================================================== --- vendor/wpa/dist/hostapd/config_file.c Thu Aug 22 02:53:51 2019 (r351376) +++ vendor/wpa/dist/hostapd/config_file.c Thu Aug 22 02:58:49 2019 (r351377) @@ -24,14 +24,6 @@ #include "config_file.h" -#ifndef CONFIG_NO_RADIUS -#ifdef EAP_SERVER -static struct hostapd_radius_attr * -hostapd_parse_radius_attr(const char *value); -#endif /* EAP_SERVER */ -#endif /* CONFIG_NO_RADIUS */ - - #ifndef CONFIG_NO_VLAN static int hostapd_config_read_vlan_file(struct hostapd_bss_config *bss, const char *fname) @@ -660,76 +652,7 @@ hostapd_config_read_radius_addr(struct hostapd_radius_ } -static struct hostapd_radius_attr * -hostapd_parse_radius_attr(const char *value) -{ - const char *pos; - char syntax; - struct hostapd_radius_attr *attr; - size_t len; - attr = os_zalloc(sizeof(*attr)); - if (attr == NULL) - return NULL; - - attr->type = atoi(value); - - pos = os_strchr(value, ':'); - if (pos == NULL) { - attr->val = wpabuf_alloc(1); - if (attr->val == NULL) { - os_free(attr); - return NULL; - } - wpabuf_put_u8(attr->val, 0); - return attr; - } - - pos++; - if (pos[0] == '\0' || pos[1] != ':') { - os_free(attr); - return NULL; - } - syntax = *pos++; - pos++; - - switch (syntax) { - case 's': - attr->val = wpabuf_alloc_copy(pos, os_strlen(pos)); - break; - case 'x': - len = os_strlen(pos); - if (len & 1) - break; - len /= 2; - attr->val = wpabuf_alloc(len); - if (attr->val == NULL) - break; - if (hexstr2bin(pos, wpabuf_put(attr->val, len), len) < 0) { - wpabuf_free(attr->val); - os_free(attr); - return NULL; - } - break; - case 'd': - attr->val = wpabuf_alloc(4); - if (attr->val) - wpabuf_put_be32(attr->val, atoi(pos)); - break; - default: - os_free(attr); - return NULL; - } - - if (attr->val == NULL) { - os_free(attr); - return NULL; - } - - return attr; -} - - static int hostapd_parse_das_client(struct hostapd_bss_config *bss, char *val) { char *secret; @@ -2313,6 +2236,42 @@ static unsigned int parse_tls_flags(const char *val) #endif /* EAP_SERVER */ +#ifdef CONFIG_AIRTIME_POLICY +static int add_airtime_weight(struct hostapd_bss_config *bss, char *value) +{ + struct airtime_sta_weight *wt; + char *pos, *next; + + wt = os_zalloc(sizeof(*wt)); + if (!wt) + return -1; + + /* 02:01:02:03:04:05 10 */ + pos = value; + next = os_strchr(pos, ' '); + if (next) + *next++ = '\0'; + if (!next || hwaddr_aton(pos, wt->addr)) { + wpa_printf(MSG_ERROR, "Invalid station address: '%s'", pos); + os_free(wt); + return -1; + } + + pos = next; + wt->weight = atoi(pos); + if (!wt->weight) { + wpa_printf(MSG_ERROR, "Invalid weight: '%s'", pos); + os_free(wt); + return -1; + } + + wt->next = bss->airtime_weight_list; + bss->airtime_weight_list = wt; + return 0; +} +#endif /* CONFIG_AIRTIME_POLICY */ + + #ifdef CONFIG_SAE static int parse_sae_password(struct hostapd_bss_config *bss, const char *val) { @@ -2376,6 +2335,36 @@ fail: #endif /* CONFIG_SAE */ +#ifdef CONFIG_DPP2 +static int hostapd_dpp_controller_parse(struct hostapd_bss_config *bss, + const char *pos) +{ + struct dpp_controller_conf *conf; + char *val; + + conf = os_zalloc(sizeof(*conf)); + if (!conf) + return -1; + val = get_param(pos, "ipaddr="); + if (!val || hostapd_parse_ip_addr(val, &conf->ipaddr)) + goto fail; + os_free(val); + val = get_param(pos, "pkhash="); + if (!val || os_strlen(val) != 2 * SHA256_MAC_LEN || + hexstr2bin(val, conf->pkhash, SHA256_MAC_LEN) < 0) + goto fail; + os_free(val); + conf->next = bss->dpp_controller; + bss->dpp_controller = conf; + return 0; +fail: + os_free(val); + os_free(conf); + return -1; +} +#endif /* CONFIG_DPP2 */ + + static int hostapd_config_fill(struct hostapd_config *conf, struct hostapd_bss_config *bss, const char *buf, char *pos, int line) @@ -2496,7 +2485,11 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "eapol_version") == 0) { int eapol_version = atoi(pos); +#ifdef CONFIG_MACSEC + if (eapol_version < 1 || eapol_version > 3) { +#else /* CONFIG_MACSEC */ if (eapol_version < 1 || eapol_version > 2) { +#endif /* CONFIG_MACSEC */ wpa_printf(MSG_ERROR, "Line %d: invalid EAPOL version (%d): '%s'.", line, eapol_version, pos); @@ -2519,12 +2512,21 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "server_cert") == 0) { os_free(bss->server_cert); bss->server_cert = os_strdup(pos); + } else if (os_strcmp(buf, "server_cert2") == 0) { + os_free(bss->server_cert2); + bss->server_cert2 = os_strdup(pos); } else if (os_strcmp(buf, "private_key") == 0) { os_free(bss->private_key); bss->private_key = os_strdup(pos); + } else if (os_strcmp(buf, "private_key2") == 0) { + os_free(bss->private_key2); + bss->private_key2 = os_strdup(pos); } else if (os_strcmp(buf, "private_key_passwd") == 0) { os_free(bss->private_key_passwd); bss->private_key_passwd = os_strdup(pos); + } else if (os_strcmp(buf, "private_key_passwd2") == 0) { + os_free(bss->private_key_passwd2); + bss->private_key_passwd2 = os_strdup(pos); } else if (os_strcmp(buf, "check_cert_subject") == 0) { if (!pos[0]) { wpa_printf(MSG_ERROR, "Line %d: unknown check_cert_subject '%s'", @@ -2605,6 +2607,20 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "pac_key_refresh_time") == 0) { bss->pac_key_refresh_time = atoi(pos); #endif /* EAP_SERVER_FAST */ +#ifdef EAP_SERVER_TEAP + } else if (os_strcmp(buf, "eap_teap_auth") == 0) { + int val = atoi(pos); + + if (val < 0 || val > 1) { + wpa_printf(MSG_ERROR, + "Line %d: Invalid eap_teap_auth value", + line); + return 1; + } + bss->eap_teap_auth = val; + } else if (os_strcmp(buf, "eap_teap_pac_no_inner") == 0) { + bss->eap_teap_pac_no_inner = atoi(pos); +#endif /* EAP_SERVER_TEAP */ #ifdef EAP_SERVER_SIM } else if (os_strcmp(buf, "eap_sim_db") == 0) { os_free(bss->eap_sim_db); @@ -2613,6 +2629,8 @@ static int hostapd_config_fill(struct hostapd_config * bss->eap_sim_db_timeout = atoi(pos); } else if (os_strcmp(buf, "eap_sim_aka_result_ind") == 0) { bss->eap_sim_aka_result_ind = atoi(pos); + } else if (os_strcmp(buf, "eap_sim_id") == 0) { + bss->eap_sim_id = atoi(pos); #endif /* EAP_SERVER_SIM */ #ifdef EAP_SERVER_TNC } else if (os_strcmp(buf, "tnc") == 0) { @@ -2816,6 +2834,9 @@ static int hostapd_config_fill(struct hostapd_config * a = a->next; a->next = attr; } + } else if (os_strcmp(buf, "radius_req_attr_sqlite") == 0) { + os_free(bss->radius_req_attr_sqlite); + bss->radius_req_attr_sqlite = os_strdup(pos); } else if (os_strcmp(buf, "radius_das_port") == 0) { bss->radius_das_port = atoi(pos); } else if (os_strcmp(buf, "radius_das_client") == 0) { @@ -3442,6 +3463,8 @@ static int hostapd_config_fill(struct hostapd_config * conf->he_op.he_twt_required = atoi(pos); } else if (os_strcmp(buf, "he_rts_threshold") == 0) { conf->he_op.he_rts_threshold = atoi(pos); + } else if (os_strcmp(buf, "he_basic_mcs_nss_set") == 0) { + conf->he_op.he_basic_mcs_nss_set = atoi(pos); } else if (os_strcmp(buf, "he_mu_edca_qos_info_param_count") == 0) { conf->he_mu_edca.he_qos_info |= set_he_cap(atoi(pos), HE_QOS_INFO_EDCA_PARAM_SET_COUNT); @@ -3526,6 +3549,20 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "he_mu_edca_ac_vo_timer") == 0) { conf->he_mu_edca.he_mu_ac_vo_param[HE_MU_AC_PARAM_TIMER_IDX] = atoi(pos) & 0xff; + } else if (os_strcmp(buf, "he_spr_sr_control") == 0) { + conf->spr.sr_control = atoi(pos) & 0xff; + } else if (os_strcmp(buf, "he_spr_non_srg_obss_pd_max_offset") == 0) { + conf->spr.non_srg_obss_pd_max_offset = atoi(pos); + } else if (os_strcmp(buf, "he_spr_srg_obss_pd_min_offset") == 0) { + conf->spr.srg_obss_pd_min_offset = atoi(pos); + } else if (os_strcmp(buf, "he_spr_srg_obss_pd_max_offset") == 0) { + conf->spr.srg_obss_pd_max_offset = atoi(pos); + } else if (os_strcmp(buf, "he_oper_chwidth") == 0) { + conf->he_oper_chwidth = atoi(pos); + } else if (os_strcmp(buf, "he_oper_centr_freq_seg0_idx") == 0) { + conf->he_oper_centr_freq_seg0_idx = atoi(pos); + } else if (os_strcmp(buf, "he_oper_centr_freq_seg1_idx") == 0) { + conf->he_oper_centr_freq_seg1_idx = atoi(pos); #endif /* CONFIG_IEEE80211AX */ } else if (os_strcmp(buf, "max_listen_interval") == 0) { bss->max_listen_interval = atoi(pos); @@ -4298,6 +4335,11 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "dpp_csign") == 0) { if (parse_wpabuf_hex(line, buf, &bss->dpp_csign, pos)) return 1; +#ifdef CONFIG_DPP2 + } else if (os_strcmp(buf, "dpp_controller") == 0) { + if (hostapd_dpp_controller_parse(bss, pos)) + return 1; +#endif /* CONFIG_DPP2 */ #endif /* CONFIG_DPP */ #ifdef CONFIG_OWE } else if (os_strcmp(buf, "owe_transition_bssid") == 0) { @@ -4349,6 +4391,121 @@ static int hostapd_config_fill(struct hostapd_config * conf->rssi_reject_assoc_timeout = atoi(pos); } else if (os_strcmp(buf, "pbss") == 0) { bss->pbss = atoi(pos); +#ifdef CONFIG_AIRTIME_POLICY + } else if (os_strcmp(buf, "airtime_mode") == 0) { + int val = atoi(pos); + + if (val < 0 || val > AIRTIME_MODE_MAX) { + wpa_printf(MSG_ERROR, "Line %d: Unknown airtime_mode", + line); + return 1; + } + conf->airtime_mode = val; + } else if (os_strcmp(buf, "airtime_update_interval") == 0) { + conf->airtime_update_interval = atoi(pos); + } else if (os_strcmp(buf, "airtime_bss_weight") == 0) { + bss->airtime_weight = atoi(pos); + } else if (os_strcmp(buf, "airtime_bss_limit") == 0) { + int val = atoi(pos); + + if (val < 0 || val > 1) { + wpa_printf(MSG_ERROR, + "Line %d: Invalid airtime_bss_limit (must be 0 or 1)", + line); + return 1; + } + bss->airtime_limit = val; + } else if (os_strcmp(buf, "airtime_sta_weight") == 0) { + if (add_airtime_weight(bss, pos) < 0) { + wpa_printf(MSG_ERROR, + "Line %d: Invalid airtime weight '%s'", + line, pos); + return 1; + } +#endif /* CONFIG_AIRTIME_POLICY */ +#ifdef CONFIG_MACSEC + } else if (os_strcmp(buf, "macsec_policy") == 0) { + int macsec_policy = atoi(pos); + + if (macsec_policy < 0 || macsec_policy > 1) { + wpa_printf(MSG_ERROR, + "Line %d: invalid macsec_policy (%d): '%s'.", + line, macsec_policy, pos); + return 1; + } + bss->macsec_policy = macsec_policy; + } else if (os_strcmp(buf, "macsec_integ_only") == 0) { + int macsec_integ_only = atoi(pos); + + if (macsec_integ_only < 0 || macsec_integ_only > 1) { + wpa_printf(MSG_ERROR, + "Line %d: invalid macsec_integ_only (%d): '%s'.", + line, macsec_integ_only, pos); + return 1; + } + bss->macsec_integ_only = macsec_integ_only; + } else if (os_strcmp(buf, "macsec_replay_protect") == 0) { + int macsec_replay_protect = atoi(pos); + + if (macsec_replay_protect < 0 || macsec_replay_protect > 1) { + wpa_printf(MSG_ERROR, + "Line %d: invalid macsec_replay_protect (%d): '%s'.", + line, macsec_replay_protect, pos); + return 1; + } + bss->macsec_replay_protect = macsec_replay_protect; + } else if (os_strcmp(buf, "macsec_replay_window") == 0) { + bss->macsec_replay_window = atoi(pos); + } else if (os_strcmp(buf, "macsec_port") == 0) { + int macsec_port = atoi(pos); + + if (macsec_port < 1 || macsec_port > 65534) { + wpa_printf(MSG_ERROR, + "Line %d: invalid macsec_port (%d): '%s'.", + line, macsec_port, pos); + return 1; + } + bss->macsec_port = macsec_port; + } else if (os_strcmp(buf, "mka_priority") == 0) { + int mka_priority = atoi(pos); + + if (mka_priority < 0 || mka_priority > 255) { + wpa_printf(MSG_ERROR, + "Line %d: invalid mka_priority (%d): '%s'.", + line, mka_priority, pos); + return 1; + } + bss->mka_priority = mka_priority; + } else if (os_strcmp(buf, "mka_cak") == 0) { + size_t len = os_strlen(pos); + + if (len > 2 * MACSEC_CAK_MAX_LEN || + (len != 2 * 16 && len != 2 * 32) || + hexstr2bin(pos, bss->mka_cak, len / 2)) { + wpa_printf(MSG_ERROR, "Line %d: Invalid MKA-CAK '%s'.", + line, pos); + return 1; + } + bss->mka_cak_len = len / 2; + bss->mka_psk_set |= MKA_PSK_SET_CAK; + } else if (os_strcmp(buf, "mka_ckn") == 0) { + size_t len = os_strlen(pos); + + if (len > 2 * MACSEC_CKN_MAX_LEN || /* too long */ + len < 2 || /* too short */ + len % 2 != 0 /* not an integral number of bytes */) { + wpa_printf(MSG_ERROR, "Line %d: Invalid MKA-CKN '%s'.", + line, pos); + return 1; + } + bss->mka_ckn_len = len / 2; + if (hexstr2bin(pos, bss->mka_ckn, bss->mka_ckn_len)) { + wpa_printf(MSG_ERROR, "Line %d: Invalid MKA-CKN '%s'.", + line, pos); + return -1; + } + bss->mka_psk_set |= MKA_PSK_SET_CKN; +#endif /* CONFIG_MACSEC */ } else { wpa_printf(MSG_ERROR, "Line %d: unknown configuration item '%s'", Modified: vendor/wpa/dist/hostapd/ctrl_iface.c ============================================================================== --- vendor/wpa/dist/hostapd/ctrl_iface.c Thu Aug 22 02:53:51 2019 (r351376) +++ vendor/wpa/dist/hostapd/ctrl_iface.c Thu Aug 22 02:58:49 2019 (r351377) @@ -1830,26 +1830,40 @@ static void hostapd_data_test_rx(void *ctx, const u8 * struct iphdr ip; const u8 *pos; unsigned int i; + char extra[30]; - if (len != HWSIM_PACKETLEN) + if (len < sizeof(*eth) + sizeof(ip) || len > HWSIM_PACKETLEN) { + wpa_printf(MSG_DEBUG, + "test data: RX - ignore unexpected length %d", + (int) len); return; + } eth = (const struct ether_header *) buf; os_memcpy(&ip, eth + 1, sizeof(ip)); pos = &buf[sizeof(*eth) + sizeof(ip)]; if (ip.ihl != 5 || ip.version != 4 || - ntohs(ip.tot_len) != HWSIM_IP_LEN) + ntohs(ip.tot_len) > HWSIM_IP_LEN) { + wpa_printf(MSG_DEBUG, + "test data: RX - ignore unexpect IP header"); return; + } - for (i = 0; i < HWSIM_IP_LEN - sizeof(ip); i++) { - if (*pos != (u8) i) + for (i = 0; i < ntohs(ip.tot_len) - sizeof(ip); i++) { + if (*pos != (u8) i) { + wpa_printf(MSG_DEBUG, + "test data: RX - ignore mismatching payload"); return; + } pos++; } - wpa_msg(hapd->msg_ctx, MSG_INFO, "DATA-TEST-RX " MACSTR " " MACSTR, - MAC2STR(eth->ether_dhost), MAC2STR(eth->ether_shost)); + extra[0] = '\0'; + if (ntohs(ip.tot_len) != HWSIM_IP_LEN) + os_snprintf(extra, sizeof(extra), " len=%d", ntohs(ip.tot_len)); + wpa_msg(hapd->msg_ctx, MSG_INFO, "DATA-TEST-RX " MACSTR " " MACSTR "%s", + MAC2STR(eth->ether_dhost), MAC2STR(eth->ether_shost), extra); } @@ -1894,7 +1908,7 @@ static int hostapd_ctrl_iface_data_test_config(struct static int hostapd_ctrl_iface_data_test_tx(struct hostapd_data *hapd, char *cmd) { u8 dst[ETH_ALEN], src[ETH_ALEN]; - char *pos; + char *pos, *pos2; int used; long int val; u8 tos; @@ -1903,11 +1917,12 @@ static int hostapd_ctrl_iface_data_test_tx(struct host struct iphdr *ip; u8 *dpos; unsigned int i; + size_t send_len = HWSIM_IP_LEN; if (hapd->l2_test == NULL) return -1; - /* format: */ + /* format: [len=] */ pos = cmd; used = hwaddr_aton2(pos, dst); @@ -1921,11 +1936,19 @@ static int hostapd_ctrl_iface_data_test_tx(struct host return -1; pos += used; - val = strtol(pos, NULL, 0); + val = strtol(pos, &pos2, 0); if (val < 0 || val > 0xff) return -1; tos = val; + pos = os_strstr(pos2, " len="); + if (pos) { + i = atoi(pos + 5); + if (i < sizeof(*ip) || i > HWSIM_IP_LEN) + return -1; + send_len = i; + } + eth = (struct ether_header *) &buf[2]; os_memcpy(eth->ether_dhost, dst, ETH_ALEN); os_memcpy(eth->ether_shost, src, ETH_ALEN); @@ -1936,17 +1959,17 @@ static int hostapd_ctrl_iface_data_test_tx(struct host ip->version = 4; ip->ttl = 64; ip->tos = tos; - ip->tot_len = htons(HWSIM_IP_LEN); + ip->tot_len = htons(send_len); ip->protocol = 1; ip->saddr = htonl(192U << 24 | 168 << 16 | 1 << 8 | 1); ip->daddr = htonl(192U << 24 | 168 << 16 | 1 << 8 | 2); ip->check = ipv4_hdr_checksum(ip, sizeof(*ip)); dpos = (u8 *) (ip + 1); - for (i = 0; i < HWSIM_IP_LEN - sizeof(*ip); i++) + for (i = 0; i < send_len - sizeof(*ip); i++) *dpos++ = i; if (l2_packet_send(hapd->l2_test, dst, ETHERTYPE_IP, &buf[2], - HWSIM_PACKETLEN) < 0) + sizeof(struct ether_header) + send_len) < 0) return -1; wpa_dbg(hapd->msg_ctx, MSG_DEBUG, "test data: TX dst=" MACSTR Modified: vendor/wpa/dist/hostapd/defconfig ============================================================================== --- vendor/wpa/dist/hostapd/defconfig Thu Aug 22 02:53:51 2019 (r351376) +++ vendor/wpa/dist/hostapd/defconfig Thu Aug 22 02:58:49 2019 (r351377) @@ -108,11 +108,18 @@ CONFIG_EAP_TTLS=y #CONFIG_EAP_GPSK_SHA256=y # EAP-FAST for the integrated EAP server -# Note: If OpenSSL is used as the TLS library, OpenSSL 1.0 or newer is needed -# for EAP-FAST support. Older OpenSSL releases would need to be patched, e.g., -# with openssl-0.9.8x-tls-extensions.patch, to add the needed functions. #CONFIG_EAP_FAST=y +# EAP-TEAP for the integrated EAP server +# Note: The current EAP-TEAP implementation is experimental and should not be +# enabled for production use. The IETF RFC 7170 that defines EAP-TEAP has number +# of conflicting statements and missing details and the implementation has +# vendor specific workarounds for those and as such, may not interoperate with +# any other implementation. This should not be used for anything else than +# experimentation and interoperability testing until those issues has been +# resolved. +#CONFIG_EAP_TEAP=y + # Wi-Fi Protected Setup (WPS) #CONFIG_WPS=y # Enable UPnP support for external WPS Registrars @@ -375,6 +382,9 @@ CONFIG_IPV6=y # Opportunistic Wireless Encryption (OWE) # Experimental implementation of draft-harkins-owe-07.txt #CONFIG_OWE=y + +# Airtime policy support +#CONFIG_AIRTIME_POLICY=y # Override default value for the wpa_disable_eapol_key_retries configuration # parameter. See that parameter in hostapd.conf for more details. Modified: vendor/wpa/dist/hostapd/eap_register.c ============================================================================== --- vendor/wpa/dist/hostapd/eap_register.c Thu Aug 22 02:53:51 2019 (r351376) +++ vendor/wpa/dist/hostapd/eap_register.c Thu Aug 22 02:58:49 2019 (r351377) @@ -121,6 +121,11 @@ int eap_server_register_methods(void) ret = eap_server_fast_register(); #endif /* EAP_SERVER_FAST */ +#ifdef EAP_SERVER_TEAP + if (ret == 0) + ret = eap_server_teap_register(); +#endif /* EAP_SERVER_TEAP */ + #ifdef EAP_SERVER_WSC if (ret == 0) ret = eap_server_wsc_register(); Modified: vendor/wpa/dist/hostapd/hostapd.conf ============================================================================== --- vendor/wpa/dist/hostapd/hostapd.conf Thu Aug 22 02:53:51 2019 (r351376) +++ vendor/wpa/dist/hostapd/hostapd.conf Thu Aug 22 02:58:49 2019 (r351377) @@ -782,10 +782,8 @@ wmm_ac_vo_acm=0 # 1 = supported #he_mu_beamformer=1 -# he_bss_color: BSS color -# 0 = no BSS color (default) -# unsigned integer = BSS color -#he_bss_color=0 +# he_bss_color: BSS color (1-63) +#he_bss_color=1 #he_default_pe_duration: The duration of PE field in an HE PPDU in us # Possible values are 0 us (default), 4 us, 8 us, 12 us, and 16 us @@ -801,6 +799,17 @@ wmm_ac_vo_acm=0 # unsigned integer = duration in units of 16 us #he_rts_threshold=0 +# HE operating channel information; see matching vht_* parameters for details. +#he_oper_chwidth +#he_oper_centr_freq_seg0_idx +#he_oper_centr_freq_seg1_idx + +#he_basic_mcs_nss_set: Basic NSS/MCS set +# 16-bit combination of 2-bit values of Max HE-MCS For 1..8 SS; each 2-bit +# value having following meaning: +# 0 = HE-MCS 0-7, 1 = HE-MCS 0-9, 2 = HE-MCS 0-11, 3 = not supported +#he_basic_mcs_nss_set + #he_mu_edca_qos_info_param_count #he_mu_edca_qos_info_q_ack #he_mu_edca_qos_info_queue_request=1 @@ -825,6 +834,12 @@ wmm_ac_vo_acm=0 #he_mu_edca_ac_vo_ecwmax=15 #he_mu_edca_ac_vo_timer=255 +# Spatial Reuse Parameter Set +#he_spr_sr_control +#he_spr_non_srg_obss_pd_max_offset +#he_spr_srg_obss_pd_min_offset +#he_spr_srg_obss_pd_max_offset + ##### IEEE 802.1X-2004 related configuration ################################## # Require IEEE 802.1X authorization @@ -836,6 +851,8 @@ wmm_ac_vo_acm=0 # the new version number correctly (they seem to drop the frames completely). # In order to make hostapd interoperate with these clients, the version number # can be set to the older version (1) with this configuration value. +# Note: When using MACsec, eapol_version shall be set to 3, which is +# defined in IEEE Std 802.1X-2010. #eapol_version=2 # Optional displayable message sent with EAP Request-Identity. The first \0 @@ -879,6 +896,54 @@ eapol_key_index_workaround=0 # ERP is enabled (eap_server_erp=1). #erp_domain=example.com +##### MACsec ################################################################## + +# macsec_policy: IEEE 802.1X/MACsec options +# This determines how sessions are secured with MACsec (only for MACsec +# drivers). +# 0: MACsec not in use (default) +# 1: MACsec enabled - Should secure, accept key server's advice to +# determine whether to use a secure session or not. +# +# macsec_integ_only: IEEE 802.1X/MACsec transmit mode +# This setting applies only when MACsec is in use, i.e., +# - macsec_policy is enabled +# - the key server has decided to enable MACsec +# 0: Encrypt traffic (default) +# 1: Integrity only +# +# macsec_replay_protect: IEEE 802.1X/MACsec replay protection +# This setting applies only when MACsec is in use, i.e., +# - macsec_policy is enabled +# - the key server has decided to enable MACsec +# 0: Replay protection disabled (default) +# 1: Replay protection enabled +# +# macsec_replay_window: IEEE 802.1X/MACsec replay protection window +# This determines a window in which replay is tolerated, to allow receipt +# of frames that have been misordered by the network. +# This setting applies only when MACsec replay protection active, i.e., +# - macsec_replay_protect is enabled +# - the key server has decided to enable MACsec +# 0: No replay window, strict check (default) +# 1..2^32-1: number of packets that could be misordered +# +# macsec_port: IEEE 802.1X/MACsec port +# Port component of the SCI +# Range: 1-65534 (default: 1) +# +# mka_priority (Priority of MKA Actor) +# Range: 0..255 (default: 255) +# +# mka_cak, mka_ckn, and mka_priority: IEEE 802.1X/MACsec pre-shared key mode +# This allows to configure MACsec with a pre-shared key using a (CAK,CKN) pair. +# In this mode, instances of hostapd can act as MACsec peers. The peer +# with lower priority will become the key server and start distributing SAKs. +# mka_cak (CAK = Secure Connectivity Association Key) takes a 16-byte (128-bit) +# hex-string (32 hex-digits) or a 32-byte (256-bit) hex-string (64 hex-digits) +# mka_ckn (CKN = CAK Name) takes a 1..32-bytes (8..256 bit) hex-string +# (2..64 hex-digits) + ##### Integrated EAP server ################################################### # Optionally, hostapd can be configured to use an integrated EAP server @@ -912,6 +977,23 @@ eap_server=0 # Passphrase for private key #private_key_passwd=secret passphrase +# An alternative server certificate and private key can be configured with the +# following parameters (with values just like the parameters above without the +# '2' suffix). The ca_cert file (in PEM encoding) is used to add the trust roots +# for both server certificates and/or client certificates). +# +# The main use case for this alternative server certificate configuration is to +# enable both RSA and ECC public keys. The server will pick which one to use +# based on the client preferences for the cipher suite (in the TLS ClientHello +# message). It should be noted that number of deployed EAP peer implementations +# do not filter out the cipher suite list based on their local configuration and +# as such, configuration of alternative types of certificates on the server may +# result in interoperability issues. +#server_cert2=/etc/hostapd.server-ecc.pem +#private_key2=/etc/hostapd.server-ecc.prv +#private_key_passwd2=secret passphrase + + # Server identity # EAP methods that provide mechanism for authenticated server identity delivery # use this value. If not set, "hostapd" is used as a default. @@ -1109,10 +1191,27 @@ eap_server=0 # (or fewer) of the lifetime remains. #pac_key_refresh_time=86400 +# EAP-TEAP authentication type +# 0 = inner EAP (default) +# 1 = Basic-Password-Auth +#eap_teap_auth=0 + +# EAP-TEAP authentication behavior when using PAC +# 0 = perform inner authentication (default) +# 1 = skip inner authentication (inner EAP/Basic-Password-Auth) +#eap_teap_pac_no_inner=0 + # EAP-SIM and EAP-AKA protected success/failure indication using AT_RESULT_IND # (default: 0 = disabled). #eap_sim_aka_result_ind=1 +# EAP-SIM and EAP-AKA identity options +# 0 = do not use pseudonyms or fast reauthentication +# 1 = use pseudonyms, but not fast reauthentication +# 2 = do not use pseudonyms, but use fast reauthentication +# 3 = use pseudonyms and use fast reauthentication (default) +#eap_sim_id=3 + # Trusted Network Connect (TNC) # If enabled, TNC validation will be required before the peer is allowed to # connect. Note: This is only used with EAP-TTLS and EAP-FAST. If any other @@ -1292,6 +1391,17 @@ own_ip_addr=127.0.0.1 # Operator-Name = "Operator" #radius_acct_req_attr=126:s:Operator +# If SQLite support is included, path to a database from which additional +# RADIUS request attributes are extracted based on the station MAC address. +# +# The schema for the radius_attributes table is: +# id | sta | reqtype | attr : multi-key (sta, reqtype) +# id = autonumber +# sta = station MAC address in `11:22:33:44:55:66` format. +# type = `auth` | `acct` | NULL (match any) +# attr = existing config file format, e.g. `126:s:Test Operator` +#radius_req_attr_sqlite=radius_attr.sqlite + # Dynamic Authorization Extensions (RFC 5176) # This mechanism can be used to allow dynamic changes to user session based on # commands from a RADIUS server (or some other disconnect client that has the @@ -2491,6 +2601,42 @@ own_ip_addr=127.0.0.1 # as a radio measurement even if the request doesn't contain a max age element # that allows sending of such data. Default: 0. #stationary_ap=0 + +##### Airtime policy configuration ########################################### + +# Set the airtime policy operating mode: +# 0 = disabled (default) +# 1 = static config +# 2 = per-BSS dynamic config +# 3 = per-BSS limit mode +#airtime_mode=0 + +# Interval (in milliseconds) to poll the kernel for updated station activity in +# dynamic and limit modes +#airtime_update_interval=200 + +# Static configuration of station weights (when airtime_mode=1). Kernel default +# weight is 256; set higher for larger airtime share, lower for smaller share. +# Each entry is a MAC address followed by a weight. +#airtime_sta_weight=02:01:02:03:04:05 256 +#airtime_sta_weight=02:01:02:03:04:06 512 + +# Per-BSS airtime weight. In multi-BSS mode, set for each BSS and hostapd will +# configure station weights to enforce the correct ratio between BSS weights +# depending on the number of active stations. The *ratios* between different +# BSSes is what's important, not the absolute numbers. +# Must be set for all BSSes if airtime_mode=2 or 3, has no effect otherwise. +#airtime_bss_weight=1 + +# Whether the current BSS should be limited (when airtime_mode=3). +# +# If set, the BSS weight ratio will be applied in the case where the current BSS +# would exceed the share defined by the BSS weight ratio. E.g., if two BSSes are +# set to the same weights, and one is set to limited, the limited BSS will get +# no more than half the available airtime, but if the non-limited BSS has more +# stations active, that *will* be allowed to exceed its half of the available +# airtime. +#airtime_bss_limit=1 ##### TESTING OPTIONS ######################################################### # Modified: vendor/wpa/dist/hostapd/hostapd_cli.c ============================================================================== --- vendor/wpa/dist/hostapd/hostapd_cli.c Thu Aug 22 02:53:51 2019 (r351376) +++ vendor/wpa/dist/hostapd/hostapd_cli.c Thu Aug 22 02:58:49 2019 (r351377) @@ -1214,6 +1214,13 @@ static int hostapd_cli_cmd_disable(struct wpa_ctrl *ct } +static int hostapd_cli_cmd_update_beacon(struct wpa_ctrl *ctrl, int argc, + char *argv[]) +{ + return wpa_ctrl_command(ctrl, "UPDATE_BEACON"); +} + + static int hostapd_cli_cmd_vendor(struct wpa_ctrl *ctrl, int argc, char *argv[]) { char cmd[256]; @@ -1617,6 +1624,8 @@ static const struct hostapd_cli_cmd hostapd_cli_comman "= reload configuration for current interface" }, { "disable", hostapd_cli_cmd_disable, NULL, "= disable hostapd on current interface" }, + { "update_beacon", hostapd_cli_cmd_update_beacon, NULL, + "= update Beacon frame contents\n"}, { "erp_flush", hostapd_cli_cmd_erp_flush, NULL, "= drop all ERP keys"}, { "log_level", hostapd_cli_cmd_log_level, NULL, Modified: vendor/wpa/dist/hostapd/main.c ============================================================================== --- vendor/wpa/dist/hostapd/main.c Thu Aug 22 02:53:51 2019 (r351376) +++ vendor/wpa/dist/hostapd/main.c Thu Aug 22 02:58:49 2019 (r351377) @@ -653,6 +653,9 @@ int main(int argc, char *argv[]) int start_ifaces_in_sync = 0; char **if_names = NULL; size_t if_names_size = 0; +#ifdef CONFIG_DPP + struct dpp_global_config dpp_conf; +#endif /* CONFIG_DPP */ if (os_program_init()) return -1; @@ -672,7 +675,9 @@ int main(int argc, char *argv[]) dl_list_init(&interfaces.eth_p_oui); #endif /* CONFIG_ETH_P_OUI */ #ifdef CONFIG_DPP - interfaces.dpp = dpp_global_init(); + os_memset(&dpp_conf, 0, sizeof(dpp_conf)); + /* TODO: dpp_conf.msg_ctx? */ + interfaces.dpp = dpp_global_init(&dpp_conf); if (!interfaces.dpp) return -1; #endif /* CONFIG_DPP */ Modified: vendor/wpa/dist/hs20/client/.gitignore ============================================================================== --- vendor/wpa/dist/hs20/client/.gitignore Thu Aug 22 02:53:51 2019 (r351376) +++ vendor/wpa/dist/hs20/client/.gitignore Thu Aug 22 02:58:49 2019 (r351377) @@ -1 +1,4 @@ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Aug 22 03:00:55 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E43DCDBC96; Thu, 22 Aug 2019 03:00:55 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DTn35nCSz3RKX; Thu, 22 Aug 2019 03:00:55 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8E0BF257CF; Thu, 22 Aug 2019 03:00:55 +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 x7M30tLc072848; Thu, 22 Aug 2019 03:00:55 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M30tuf072837; Thu, 22 Aug 2019 03:00:55 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201908220300.x7M30tuf072837@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Thu, 22 Aug 2019 03:00:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r351378 - vendor/wpa/2.9 X-SVN-Group: vendor X-SVN-Commit-Author: cy X-SVN-Commit-Paths: vendor/wpa/2.9 X-SVN-Commit-Revision: 351378 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 03:00:56 -0000 Author: cy Date: Thu Aug 22 03:00:55 2019 New Revision: 351378 URL: https://svnweb.freebsd.org/changeset/base/351378 Log: Tag wpa_supplicant/hostapd 2.9. Added: vendor/wpa/2.9/ - copied from r351377, vendor/wpa/dist/ From owner-svn-src-all@freebsd.org Thu Aug 22 03:28:31 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E0E98DC629; Thu, 22 Aug 2019 03:28:31 +0000 (UTC) (envelope-from karels@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DVNv5dBKz3y4d; Thu, 22 Aug 2019 03:28:31 +0000 (UTC) (envelope-from karels@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A2A6B25DAE; Thu, 22 Aug 2019 03:28:31 +0000 (UTC) (envelope-from karels@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M3SVer089701; Thu, 22 Aug 2019 03:28:31 GMT (envelope-from karels@FreeBSD.org) Received: (from karels@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M3SVDU089700; Thu, 22 Aug 2019 03:28:31 GMT (envelope-from karels@FreeBSD.org) Message-Id: <201908220328.x7M3SVDU089700@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: karels set sender to karels@FreeBSD.org using -f From: Mike Karels Date: Thu, 22 Aug 2019 03:28:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351379 - head/usr.bin/w X-SVN-Group: head X-SVN-Commit-Author: karels X-SVN-Commit-Paths: head/usr.bin/w X-SVN-Commit-Revision: 351379 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 03:28:31 -0000 Author: karels Date: Thu Aug 22 03:28:31 2019 New Revision: 351379 URL: https://svnweb.freebsd.org/changeset/base/351379 Log: Change w(1) to compute FROM (host) field size dynamically It's nice to be able to display a full IPv6 host address if needed, but it's also nice to display more than 3 characters of a command line. Compute the needed size for the FROM column in an earlier pass, and determine the maximum, then print what fits for the command. Reviewed by: marcel@ (markm@ previous revision) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D21211 Modified: head/usr.bin/w/w.c Modified: head/usr.bin/w/w.c ============================================================================== --- head/usr.bin/w/w.c Thu Aug 22 03:00:55 2019 (r351378) +++ head/usr.bin/w/w.c Thu Aug 22 03:28:31 2019 (r351379) @@ -96,7 +96,8 @@ static struct winsize ws; static kvm_t *kd; static time_t now; /* the current time of day */ static int ttywidth; /* width of tty */ -static int argwidth; /* width of tty */ +static int fromwidth = 0; /* max width of "from" field */ +static int argwidth; /* width of arguments */ static int header = 1; /* true if -h flag: don't print heading */ static int nflag; /* true if -n flag: don't convert addrs */ static int dflag; /* true if -d flag: output debug info */ @@ -116,13 +117,14 @@ static struct entry { struct kinfo_proc *kp; /* `most interesting' proc */ char *args; /* arg list of interesting process */ struct kinfo_proc *dkp; /* debug option proc list */ + char *from; /* "from": name or addr */ } *ep, *ehead = NULL, **nextp = &ehead; #define debugproc(p) *(&((struct kinfo_proc *)p)->ki_udata) #define W_DISPUSERSIZE 10 #define W_DISPLINESIZE 8 -#define W_DISPHOSTSIZE 40 +#define W_MAXHOSTSIZE 40 static void pr_header(time_t *, int); static struct stat *ttystat(char *); @@ -209,6 +211,13 @@ main(int argc, char *argv[]) setutxent(); for (nusers = 0; (utmp = getutxent()) != NULL;) { + struct addrinfo hints, *res; + struct sockaddr_storage ss; + struct sockaddr *sa = (struct sockaddr *)&ss; + struct sockaddr_in *lsin = (struct sockaddr_in *)&ss; + struct sockaddr_in6 *lsin6 = (struct sockaddr_in6 *)&ss; + int isaddr; + if (utmp->ut_type != USER_PROCESS) continue; if (!(stp = ttystat(utmp->ut_line))) @@ -250,9 +259,76 @@ main(int argc, char *argv[]) } if ((ep->idle = now - touched) < 0) ep->idle = 0; + + save_p = p = *ep->utmp.ut_host ? ep->utmp.ut_host : "-"; + if ((x_suffix = strrchr(p, ':')) != NULL) { + if ((dot = strchr(x_suffix, '.')) != NULL && + strchr(dot+1, '.') == NULL) + *x_suffix++ = '\0'; + else + x_suffix = NULL; + } + + isaddr = 0; + memset(&ss, '\0', sizeof(ss)); + if (inet_pton(AF_INET6, p, &lsin6->sin6_addr) == 1) { + lsin6->sin6_len = sizeof(*lsin6); + lsin6->sin6_family = AF_INET6; + isaddr = 1; + } else if (inet_pton(AF_INET, p, &lsin->sin_addr) == 1) { + lsin->sin_len = sizeof(*lsin); + lsin->sin_family = AF_INET; + isaddr = 1; + } + if (nflag == 0) { + /* Attempt to change an IP address into a name */ + if (isaddr && realhostname_sa(fn, sizeof(fn), sa, + sa->sa_len) == HOSTNAME_FOUND) + p = fn; + } else if (!isaddr && nflag > 1) { + /* + * If a host has only one A/AAAA RR, change a + * name into an IP address + */ + memset(&hints, 0, sizeof(hints)); + hints.ai_flags = AI_PASSIVE; + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + if (getaddrinfo(p, NULL, &hints, &res) == 0) { + if (res->ai_next == NULL && + getnameinfo(res->ai_addr, res->ai_addrlen, + fn, sizeof(fn), NULL, 0, + NI_NUMERICHOST) == 0) + p = fn; + freeaddrinfo(res); + } + } + + if (x_suffix) { + (void)snprintf(buf, sizeof(buf), "%s:%s", p, x_suffix); + p = buf; + } + ep->from = strdup(p); + if ((i = strlen(p)) > fromwidth) + fromwidth = i; } endutxent(); +#define HEADER_USER "USER" +#define HEADER_TTY "TTY" +#define HEADER_FROM "FROM" +#define HEADER_LOGIN_IDLE "LOGIN@ IDLE " +#define HEADER_WHAT "WHAT\n" +#define WUSED (W_DISPUSERSIZE + W_DISPLINESIZE + fromwidth + \ + sizeof(HEADER_LOGIN_IDLE) + 3) /* header width incl. spaces */ + + + if ((int) sizeof(HEADER_FROM) > fromwidth) + fromwidth = sizeof(HEADER_FROM); + fromwidth++; + if (fromwidth > W_MAXHOSTSIZE) + fromwidth = W_MAXHOSTSIZE; + xo_open_container("uptime-information"); if (header || wcmd == 0) { @@ -265,17 +341,10 @@ main(int argc, char *argv[]) exit(0); } -#define HEADER_USER "USER" -#define HEADER_TTY "TTY" -#define HEADER_FROM "FROM" -#define HEADER_LOGIN_IDLE "LOGIN@ IDLE " -#define HEADER_WHAT "WHAT\n" -#define WUSED (W_DISPUSERSIZE + W_DISPLINESIZE + W_DISPHOSTSIZE + \ - sizeof(HEADER_LOGIN_IDLE) + 3) /* header width incl. spaces */ xo_emit("{T:/%-*.*s} {T:/%-*.*s} {T:/%-*.*s} {T:/%s}", W_DISPUSERSIZE, W_DISPUSERSIZE, HEADER_USER, W_DISPLINESIZE, W_DISPLINESIZE, HEADER_TTY, - W_DISPHOSTSIZE, W_DISPHOSTSIZE, HEADER_FROM, + fromwidth, fromwidth, HEADER_FROM, HEADER_LOGIN_IDLE HEADER_WHAT); } @@ -350,64 +419,10 @@ main(int argc, char *argv[]) xo_open_list("user-entry"); for (ep = ehead; ep != NULL; ep = ep->next) { - struct addrinfo hints, *res; - struct sockaddr_storage ss; - struct sockaddr *sa = (struct sockaddr *)&ss; - struct sockaddr_in *lsin = (struct sockaddr_in *)&ss; - struct sockaddr_in6 *lsin6 = (struct sockaddr_in6 *)&ss; time_t t; - int isaddr; xo_open_instance("user-entry"); - save_p = p = *ep->utmp.ut_host ? ep->utmp.ut_host : "-"; - if ((x_suffix = strrchr(p, ':')) != NULL) { - if ((dot = strchr(x_suffix, '.')) != NULL && - strchr(dot+1, '.') == NULL) - *x_suffix++ = '\0'; - else - x_suffix = NULL; - } - - isaddr = 0; - memset(&ss, '\0', sizeof(ss)); - if (inet_pton(AF_INET6, p, &lsin6->sin6_addr) == 1) { - lsin6->sin6_len = sizeof(*lsin6); - lsin6->sin6_family = AF_INET6; - isaddr = 1; - } else if (inet_pton(AF_INET, p, &lsin->sin_addr) == 1) { - lsin->sin_len = sizeof(*lsin); - lsin->sin_family = AF_INET; - isaddr = 1; - } - if (nflag == 0) { - /* Attempt to change an IP address into a name */ - if (isaddr && realhostname_sa(fn, sizeof(fn), sa, - sa->sa_len) == HOSTNAME_FOUND) - p = fn; - } else if (!isaddr && nflag > 1) { - /* - * If a host has only one A/AAAA RR, change a - * name into an IP address - */ - memset(&hints, 0, sizeof(hints)); - hints.ai_flags = AI_PASSIVE; - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = SOCK_STREAM; - if (getaddrinfo(p, NULL, &hints, &res) == 0) { - if (res->ai_next == NULL && - getnameinfo(res->ai_addr, res->ai_addrlen, - fn, sizeof(fn), NULL, 0, - NI_NUMERICHOST) == 0) - p = fn; - freeaddrinfo(res); - } - } - - if (x_suffix) { - (void)snprintf(buf, sizeof(buf), "%s:%s", p, x_suffix); - p = buf; - } if (dflag) { xo_open_container("process-table"); xo_open_list("process-entry"); @@ -438,7 +453,7 @@ main(int argc, char *argv[]) if (save_p && save_p != p) xo_attr("address", "%s", save_p); xo_emit("{:from/%-*.*s/%@**@s} ", - W_DISPHOSTSIZE, W_DISPHOSTSIZE, *p ? p : "-"); + fromwidth, fromwidth, ep->from); t = ep->utmp.ut_tv.tv_sec; longattime = pr_attime(&t, &now); longidle = pr_idle(ep->idle); From owner-svn-src-all@freebsd.org Thu Aug 22 03:33:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DF247DC7FE; Thu, 22 Aug 2019 03:33:10 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DVVG5Mmqz3yR9; Thu, 22 Aug 2019 03:33:10 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9A02025F6D; Thu, 22 Aug 2019 03:33:10 +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 x7M3XATe095335; Thu, 22 Aug 2019 03:33:10 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M3XAj2095334; Thu, 22 Aug 2019 03:33:10 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201908220333.x7M3XAj2095334@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Thu, 22 Aug 2019 03:33:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351380 - head/sys/contrib/ipfilter/netinet X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/sys/contrib/ipfilter/netinet X-SVN-Commit-Revision: 351380 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 03:33:10 -0000 Author: cy Date: Thu Aug 22 03:33:10 2019 New Revision: 351380 URL: https://svnweb.freebsd.org/changeset/base/351380 Log: Specifying array sizes for fully initialized tables at compile time is redundant. MFC after: 1 week Modified: head/sys/contrib/ipfilter/netinet/fil.c Modified: head/sys/contrib/ipfilter/netinet/fil.c ============================================================================== --- head/sys/contrib/ipfilter/netinet/fil.c Thu Aug 22 03:28:31 2019 (r351379) +++ head/sys/contrib/ipfilter/netinet/fil.c Thu Aug 22 03:33:10 2019 (r351380) @@ -194,7 +194,7 @@ static int ppsratecheck(struct timeval *, int *, int) * hand side to allow for binary searching of the array and include a trailer * with a 0 for the bitmask for linear searches to easily find the end with. */ -static const struct optlist ipopts[20] = { +static const struct optlist ipopts[] = { { IPOPT_NOP, 0x000001 }, { IPOPT_RR, 0x000002 }, { IPOPT_ZSU, 0x000004 }, @@ -235,7 +235,7 @@ static const struct optlist ip6exthdr[] = { /* * bit values for identifying presence of individual IP security options */ -static const struct optlist secopt[8] = { +static const struct optlist secopt[] = { { IPSO_CLASS_RES4, 0x01 }, { IPSO_CLASS_TOPS, 0x02 }, { IPSO_CLASS_SECR, 0x04 }, From owner-svn-src-all@freebsd.org Thu Aug 22 04:31:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 75201DD420; Thu, 22 Aug 2019 04:31:08 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DWn82Vrvz41XQ; Thu, 22 Aug 2019 04:31:08 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 37AFD268A6; Thu, 22 Aug 2019 04:31:08 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M4V87o026549; Thu, 22 Aug 2019 04:31:08 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M4V8Df026548; Thu, 22 Aug 2019 04:31:08 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201908220431.x7M4V8Df026548@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Thu, 22 Aug 2019 04:31:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351381 - head/sys/gdb X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/gdb X-SVN-Commit-Revision: 351381 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 04:31:08 -0000 Author: cem Date: Thu Aug 22 04:31:07 2019 New Revision: 351381 URL: https://svnweb.freebsd.org/changeset/base/351381 Log: Fix i386 build after r351368 Reported by: cy Submitted by: cy Modified: head/sys/gdb/gdb_main.c Modified: head/sys/gdb/gdb_main.c ============================================================================== --- head/sys/gdb/gdb_main.c Thu Aug 22 03:33:10 2019 (r351380) +++ head/sys/gdb/gdb_main.c Thu Aug 22 04:31:07 2019 (r351381) @@ -418,7 +418,7 @@ do_qXfer_threads_read(void) */ if (offset != 0) { if (offset != ctx.qXfer.last_offset) { - printf("%s: Resumed offset %ju != expected %ju\n", + printf("%s: Resumed offset %ju != expected %zu\n", __func__, offset, ctx.qXfer.last_offset); error = ESPIPE; goto request_error; From owner-svn-src-all@freebsd.org Thu Aug 22 06:14:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 240CCDEB4D; Thu, 22 Aug 2019 06:14:07 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DZ3y72dKz453W; Thu, 22 Aug 2019 06:14:06 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D335F27C10; Thu, 22 Aug 2019 06:14:06 +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 x7M6E6DT089217; Thu, 22 Aug 2019 06:14:06 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M6E62J089216; Thu, 22 Aug 2019 06:14:06 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201908220614.x7M6E62J089216@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Thu, 22 Aug 2019 06:14:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351382 - head/sbin/newfs_msdos X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sbin/newfs_msdos X-SVN-Commit-Revision: 351382 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 06:14:07 -0000 Author: delphij Date: Thu Aug 22 06:14:06 2019 New Revision: 351382 URL: https://svnweb.freebsd.org/changeset/base/351382 Log: When creating a new FAT32 filesystem, use "unknown" (0xFFFFFFFF) for FSI_Nxt_Free instead of providing a wrong value. With this change, fsck_msdosfs would no longer complain about invalid FSInfo information. MFC after: 2 weeks Modified: head/sbin/newfs_msdos/mkfs_msdos.c Modified: head/sbin/newfs_msdos/mkfs_msdos.c ============================================================================== --- head/sbin/newfs_msdos/mkfs_msdos.c Thu Aug 22 04:31:07 2019 (r351381) +++ head/sbin/newfs_msdos/mkfs_msdos.c Thu Aug 22 06:14:06 2019 (r351382) @@ -717,7 +717,7 @@ mkfs_msdos(const char *fname, const char *dtype, const mk4(img, 0x41615252); mk4(img + MINBPS - 28, 0x61417272); mk4(img + MINBPS - 24, 0xffffffff); - mk4(img + MINBPS - 20, bpb.bpbRootClust); + mk4(img + MINBPS - 20, 0xffffffff); mk2(img + MINBPS - 2, DOSMAGIC); } else if (lsn >= bpb.bpbResSectors && lsn < dir && !((lsn - bpb.bpbResSectors) % From owner-svn-src-all@freebsd.org Thu Aug 22 07:17:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B59FFDFA57; Thu, 22 Aug 2019 07:17:49 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DbTT4MN9z47mQ; Thu, 22 Aug 2019 07:17:49 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 78846749; Thu, 22 Aug 2019 07:17:49 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M7HnOH025664; Thu, 22 Aug 2019 07:17:49 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M7Hnep025663; Thu, 22 Aug 2019 07:17:49 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201908220717.x7M7Hnep025663@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Thu, 22 Aug 2019 07:17:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351383 - stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-12 X-SVN-Commit-Author: avg X-SVN-Commit-Paths: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 351383 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 07:17:49 -0000 Author: avg Date: Thu Aug 22 07:17:49 2019 New Revision: 351383 URL: https://svnweb.freebsd.org/changeset/base/351383 Log: MFC r350894: a stop gap fix for a race between dnode_hold and dnode_sync_free The race was introduced in r337669, the large dnode feature import from ZoL. The problem was debugged by ZoL developers and then, independently, on FreeBSD. The fix is an early proposal by Brian Behlendorf: https://github.com/behlendorf/zfs/commit/50f32ed74e42aa28522e9681fb8ae55239fa33a7 This fix never went into ZoL. A larger change that was committed later included a different solution because of the re-worked code. Ideally, we want to revert this fix and re-synchronize FreeBSD large dnode code with that in illumos (or newer ZoL). illumos has a later import of the feature from ZoL that does not have the bug. PR: 236480 Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c Thu Aug 22 06:14:06 2019 (r351382) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c Thu Aug 22 07:17:49 2019 (r351383) @@ -1324,7 +1324,9 @@ dnode_hold_impl(objset_t *os, uint64_t object, int fla mutex_enter(&dn->dn_mtx); type = dn->dn_type; if (dn->dn_free_txg || - ((flag & DNODE_MUST_BE_FREE) && !refcount_is_zero(&dn->dn_holds))) { + ((flag & DNODE_MUST_BE_ALLOCATED) && type == DMU_OT_NONE) || + ((flag & DNODE_MUST_BE_FREE) && + (type != DMU_OT_NONE || !refcount_is_zero(&dn->dn_holds)))) { mutex_exit(&dn->dn_mtx); zrl_remove(&dnh->dnh_zrlock); dbuf_rele(db, FTAG); From owner-svn-src-all@freebsd.org Thu Aug 22 07:37:36 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5384CDFF0E; Thu, 22 Aug 2019 07:37:36 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DbwJ2Jw6z48Yx; Thu, 22 Aug 2019 07:37:36 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 31D1FB04; Thu, 22 Aug 2019 07:37:36 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M7ba1n037731; Thu, 22 Aug 2019 07:37:36 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M7bYrE037721; Thu, 22 Aug 2019 07:37:34 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <201908220737.x7M7bYrE037721@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Thu, 22 Aug 2019 07:37:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351384 - in stable/12: cddl/contrib/opensolaris/lib/libzfs/common stand/efi/boot1 stand/i386/gptzfsboot stand/i386/zfsboot stand/libsa/zfs sys/cddl/boot/zfs sys/cddl/contrib/opensolari... X-SVN-Group: stable-12 X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: in stable/12: cddl/contrib/opensolaris/lib/libzfs/common stand/efi/boot1 stand/i386/gptzfsboot stand/i386/zfsboot stand/libsa/zfs sys/cddl/boot/zfs sys/cddl/contrib/opensolaris/uts/common/os sys/cddl/... X-SVN-Commit-Revision: 351384 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 07:37:36 -0000 Author: tsoome Date: Thu Aug 22 07:37:34 2019 New Revision: 351384 URL: https://svnweb.freebsd.org/changeset/base/351384 Log: loader: support com.delphix:removing MFC r348353: boot1.efi should also provide Calloc MFC r350772: loader: support com.delphix:removing MFC r350825: loader: add error check for vdev_indirect calls As prerequisite, we need Calloc in boot1 so we would not conflict with libsa. We should support removing vdev from boot pool. Update loader zfs reader to support com.delphix:removing. Relnotes: yes Modified: stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c stable/12/stand/efi/boot1/Makefile stable/12/stand/efi/boot1/boot1.c stable/12/stand/i386/gptzfsboot/Makefile stable/12/stand/i386/zfsboot/Makefile stable/12/stand/libsa/zfs/Makefile.inc stable/12/stand/libsa/zfs/zfsimpl.c stable/12/sys/cddl/boot/zfs/zfsimpl.h stable/12/sys/cddl/contrib/opensolaris/uts/common/os/list.c stable/12/sys/cddl/contrib/opensolaris/uts/common/sys/list.h stable/12/sys/cddl/contrib/opensolaris/uts/common/sys/list_impl.h stable/12/sys/cddl/contrib/opensolaris/uts/common/sys/note.h stable/12/sys/cddl/contrib/opensolaris/uts/common/sys/sysmacros.h Directory Properties: stable/12/ (props changed) Modified: stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c ============================================================================== --- stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Thu Aug 22 07:17:49 2019 (r351383) +++ stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Thu Aug 22 07:37:34 2019 (r351384) @@ -3300,13 +3300,6 @@ zpool_vdev_remove(zpool_handle_t *zhp, const char *pat return (zfs_error(hdl, EZFS_BADVERSION, msg)); } - if (!islog && !avail_spare && !l2cache && zpool_is_bootable(zhp)) { - zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, - "root pool can not have removed devices, " - "because GRUB does not understand them")); - return (zfs_error(hdl, EINVAL, msg)); - } - zc.zc_guid = fnvlist_lookup_uint64(tgt, ZPOOL_CONFIG_GUID); if (zfs_ioctl(hdl, ZFS_IOC_VDEV_REMOVE, &zc) == 0) Modified: stable/12/stand/efi/boot1/Makefile ============================================================================== --- stable/12/stand/efi/boot1/Makefile Thu Aug 22 07:17:49 2019 (r351383) +++ stable/12/stand/efi/boot1/Makefile Thu Aug 22 07:37:34 2019 (r351384) @@ -30,6 +30,8 @@ SRCS+= zfs_module.c CFLAGS.zfs_module.c+= -I${ZFSSRC} CFLAGS.zfs_module.c+= -I${SYSDIR}/cddl/boot/zfs CFLAGS.zfs_module.c+= -I${SYSDIR}/crypto/skein +CFLAGS.zfs_module.c+= -I${SYSDIR}/cddl/contrib/opensolaris/uts/common + CFLAGS+= -DEFI_ZFS_BOOT .endif Modified: stable/12/stand/efi/boot1/boot1.c ============================================================================== --- stable/12/stand/efi/boot1/boot1.c Thu Aug 22 07:17:49 2019 (r351383) +++ stable/12/stand/efi/boot1/boot1.c Thu Aug 22 07:37:34 2019 (r351384) @@ -56,10 +56,11 @@ static EFI_GUID LoadedImageGUID = LOADED_IMAGE_PROTOCO static EFI_GUID ConsoleControlGUID = EFI_CONSOLE_CONTROL_PROTOCOL_GUID; /* - * Provide Malloc / Free backed by EFIs AllocatePool / FreePool which ensures + * Provide Malloc / Free / Calloc backed by EFIs AllocatePool / FreePool which ensures * memory is correctly aligned avoiding EFI_INVALID_PARAMETER returns from * EFI methods. */ + void * Malloc(size_t len, const char *file __unused, int line __unused) { @@ -76,6 +77,19 @@ Free(void *buf, const char *file __unused, int line __ { if (buf != NULL) (void)BS->FreePool(buf); +} + +void * +Calloc(size_t n1, size_t n2, const char *file, int line) +{ + size_t bytes; + void *res; + + bytes = n1 * n2; + if ((res = Malloc(bytes, file, line)) != NULL) + bzero(res, bytes); + + return (res); } /* Modified: stable/12/stand/i386/gptzfsboot/Makefile ============================================================================== --- stable/12/stand/i386/gptzfsboot/Makefile Thu Aug 22 07:17:49 2019 (r351383) +++ stable/12/stand/i386/gptzfsboot/Makefile Thu Aug 22 07:37:34 2019 (r351384) @@ -28,6 +28,7 @@ CFLAGS+=-DBOOTPROG=\"gptzfsboot\" \ -I${ZFSSRC} \ -I${SYSDIR}/crypto/skein \ -I${SYSDIR}/cddl/boot/zfs \ + -I${SYSDIR}/cddl/contrib/opensolaris/uts/common \ -I${BOOTSRC}/i386/btx/lib \ -I${BOOTSRC}/i386/boot2 \ -Wall -Waggregate-return -Wbad-function-cast \ Modified: stable/12/stand/i386/zfsboot/Makefile ============================================================================== --- stable/12/stand/i386/zfsboot/Makefile Thu Aug 22 07:17:49 2019 (r351383) +++ stable/12/stand/i386/zfsboot/Makefile Thu Aug 22 07:37:34 2019 (r351384) @@ -27,6 +27,7 @@ CFLAGS+=-DBOOTPROG=\"zfsboot\" \ -I${ZFSSRC} \ -I${SYSDIR}/crypto/skein \ -I${SYSDIR}/cddl/boot/zfs \ + -I${SYSDIR}/cddl/contrib/opensolaris/uts/common \ -I${BOOTSRC}/i386/boot2 \ -Wall -Waggregate-return -Wbad-function-cast -Wno-cast-align \ -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \ Modified: stable/12/stand/libsa/zfs/Makefile.inc ============================================================================== --- stable/12/stand/libsa/zfs/Makefile.inc Thu Aug 22 07:17:49 2019 (r351383) +++ stable/12/stand/libsa/zfs/Makefile.inc Thu Aug 22 07:37:34 2019 (r351384) @@ -1,13 +1,15 @@ # $FreeBSD$ .PATH: ${ZFSSRC} -SRCS+= zfs.c skein.c skein_block.c +SRCS+= zfs.c skein.c skein_block.c list.c # Do not unroll skein loops, reduce code size CFLAGS+= -DSKEIN_LOOP=111 .PATH: ${SYSDIR}/crypto/skein +.PATH: ${SYSDIR}/cddl/contrib/opensolaris/uts/common/os CFLAGS+= -I${LDRSRC} CFLAGS+= -I${SYSDIR}/cddl/boot/zfs +CFLAGS+= -I${SYSDIR}/cddl/contrib/opensolaris/uts/common CFLAGS+= -I${SYSDIR}/crypto/skein CFLAGS+= -Wformat -Wall Modified: stable/12/stand/libsa/zfs/zfsimpl.c ============================================================================== --- stable/12/stand/libsa/zfs/zfsimpl.c Thu Aug 22 07:17:49 2019 (r351383) +++ stable/12/stand/libsa/zfs/zfsimpl.c Thu Aug 22 07:37:34 2019 (r351384) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "zfsimpl.h" #include "zfssubr.c" @@ -46,6 +47,58 @@ struct zfsmount { static struct zfsmount zfsmount __unused; /* + * The indirect_child_t represents the vdev that we will read from, when we + * need to read all copies of the data (e.g. for scrub or reconstruction). + * For plain (non-mirror) top-level vdevs (i.e. is_vdev is not a mirror), + * ic_vdev is the same as is_vdev. However, for mirror top-level vdevs, + * ic_vdev is a child of the mirror. + */ +typedef struct indirect_child { + void *ic_data; + vdev_t *ic_vdev; +} indirect_child_t; + +/* + * The indirect_split_t represents one mapped segment of an i/o to the + * indirect vdev. For non-split (contiguously-mapped) blocks, there will be + * only one indirect_split_t, with is_split_offset==0 and is_size==io_size. + * For split blocks, there will be several of these. + */ +typedef struct indirect_split { + list_node_t is_node; /* link on iv_splits */ + + /* + * is_split_offset is the offset into the i/o. + * This is the sum of the previous splits' is_size's. + */ + uint64_t is_split_offset; + + vdev_t *is_vdev; /* top-level vdev */ + uint64_t is_target_offset; /* offset on is_vdev */ + uint64_t is_size; + int is_children; /* number of entries in is_child[] */ + + /* + * is_good_child is the child that we are currently using to + * attempt reconstruction. + */ + int is_good_child; + + indirect_child_t is_child[1]; /* variable-length */ +} indirect_split_t; + +/* + * The indirect_vsd_t is associated with each i/o to the indirect vdev. + * It is the "Vdev-Specific Data" in the zio_t's io_vsd. + */ +typedef struct indirect_vsd { + boolean_t iv_split_block; + boolean_t iv_reconstruct; + + list_t iv_splits; /* list of indirect_split_t's */ +} indirect_vsd_t; + +/* * List of all vdevs, chained through v_alllink. */ static vdev_list_t zfs_vdevs; @@ -63,6 +116,8 @@ static const char *features_for_read[] = { "org.illumos:skein", "org.zfsonlinux:large_dnode", "com.joyent:multi_vdev_crash_dump", + "com.delphix:device_removal", + "com.delphix:obsolete_counts", NULL }; @@ -85,6 +140,18 @@ static int zfs_rlookup(const spa_t *spa, uint64_t objn static int zap_lookup(const spa_t *spa, const dnode_phys_t *dnode, const char *name, uint64_t integer_size, uint64_t num_integers, void *value); +static int objset_get_dnode(const spa_t *, const objset_phys_t *, uint64_t, + dnode_phys_t *); +static int dnode_read(const spa_t *, const dnode_phys_t *, off_t, void *, + size_t); +static int vdev_indirect_read(vdev_t *, const blkptr_t *, void *, off_t, + size_t); +static int vdev_mirror_read(vdev_t *, const blkptr_t *, void *, off_t, size_t); +vdev_indirect_mapping_t *vdev_indirect_mapping_open(spa_t *, objset_phys_t *, + uint64_t); +vdev_indirect_mapping_entry_phys_t * + vdev_indirect_mapping_duplicate_adjacent_entries(vdev_t *, uint64_t, + uint64_t, uint64_t *); static void zfs_init(void) @@ -162,7 +229,7 @@ xdr_uint64_t(const unsigned char **xdr, uint64_t *lp) static int nvlist_find(const unsigned char *nvlist, const char *name, int type, - int* elementsp, void *valuep) + int *elementsp, void *valuep) { const unsigned char *p, *pair; int junk; @@ -427,13 +494,512 @@ vdev_read_phys(vdev_t *vdev, const blkptr_t *bp, void rc = vdev->v_phys_read(vdev, vdev->v_read_priv, offset, buf, psize); if (rc) return (rc); - if (bp && zio_checksum_verify(vdev->spa, bp, buf)) - return (EIO); + if (bp != NULL) + return (zio_checksum_verify(vdev->spa, bp, buf)); return (0); } +typedef struct remap_segment { + vdev_t *rs_vd; + uint64_t rs_offset; + uint64_t rs_asize; + uint64_t rs_split_offset; + list_node_t rs_node; +} remap_segment_t; + +static remap_segment_t * +rs_alloc(vdev_t *vd, uint64_t offset, uint64_t asize, uint64_t split_offset) +{ + remap_segment_t *rs = malloc(sizeof (remap_segment_t)); + + if (rs != NULL) { + rs->rs_vd = vd; + rs->rs_offset = offset; + rs->rs_asize = asize; + rs->rs_split_offset = split_offset; + } + + return (rs); +} + +vdev_indirect_mapping_t * +vdev_indirect_mapping_open(spa_t *spa, objset_phys_t *os, + uint64_t mapping_object) +{ + vdev_indirect_mapping_t *vim; + vdev_indirect_mapping_phys_t *vim_phys; + int rc; + + vim = calloc(1, sizeof (*vim)); + if (vim == NULL) + return (NULL); + + vim->vim_dn = calloc(1, sizeof (*vim->vim_dn)); + if (vim->vim_dn == NULL) { + free(vim); + return (NULL); + } + + rc = objset_get_dnode(spa, os, mapping_object, vim->vim_dn); + if (rc != 0) { + free(vim->vim_dn); + free(vim); + return (NULL); + } + + vim->vim_spa = spa; + vim->vim_phys = malloc(sizeof (*vim->vim_phys)); + if (vim->vim_phys == NULL) { + free(vim->vim_dn); + free(vim); + return (NULL); + } + + vim_phys = (vdev_indirect_mapping_phys_t *)DN_BONUS(vim->vim_dn); + *vim->vim_phys = *vim_phys; + + vim->vim_objset = os; + vim->vim_object = mapping_object; + vim->vim_entries = NULL; + + vim->vim_havecounts = + (vim->vim_dn->dn_bonuslen > VDEV_INDIRECT_MAPPING_SIZE_V0); + return (vim); +} + +/* + * Compare an offset with an indirect mapping entry; there are three + * possible scenarios: + * + * 1. The offset is "less than" the mapping entry; meaning the + * offset is less than the source offset of the mapping entry. In + * this case, there is no overlap between the offset and the + * mapping entry and -1 will be returned. + * + * 2. The offset is "greater than" the mapping entry; meaning the + * offset is greater than the mapping entry's source offset plus + * the entry's size. In this case, there is no overlap between + * the offset and the mapping entry and 1 will be returned. + * + * NOTE: If the offset is actually equal to the entry's offset + * plus size, this is considered to be "greater" than the entry, + * and this case applies (i.e. 1 will be returned). Thus, the + * entry's "range" can be considered to be inclusive at its + * start, but exclusive at its end: e.g. [src, src + size). + * + * 3. The last case to consider is if the offset actually falls + * within the mapping entry's range. If this is the case, the + * offset is considered to be "equal to" the mapping entry and + * 0 will be returned. + * + * NOTE: If the offset is equal to the entry's source offset, + * this case applies and 0 will be returned. If the offset is + * equal to the entry's source plus its size, this case does + * *not* apply (see "NOTE" above for scenario 2), and 1 will be + * returned. + */ static int +dva_mapping_overlap_compare(const void *v_key, const void *v_array_elem) +{ + const uint64_t *key = v_key; + const vdev_indirect_mapping_entry_phys_t *array_elem = + v_array_elem; + uint64_t src_offset = DVA_MAPPING_GET_SRC_OFFSET(array_elem); + + if (*key < src_offset) { + return (-1); + } else if (*key < src_offset + DVA_GET_ASIZE(&array_elem->vimep_dst)) { + return (0); + } else { + return (1); + } +} + +/* + * Return array entry. + */ +static vdev_indirect_mapping_entry_phys_t * +vdev_indirect_mapping_entry(vdev_indirect_mapping_t *vim, uint64_t index) +{ + uint64_t size; + off_t offset = 0; + int rc; + + if (vim->vim_phys->vimp_num_entries == 0) + return (NULL); + + if (vim->vim_entries == NULL) { + uint64_t bsize; + + bsize = vim->vim_dn->dn_datablkszsec << SPA_MINBLOCKSHIFT; + size = vim->vim_phys->vimp_num_entries * + sizeof (*vim->vim_entries); + if (size > bsize) { + size = bsize / sizeof (*vim->vim_entries); + size *= sizeof (*vim->vim_entries); + } + vim->vim_entries = malloc(size); + if (vim->vim_entries == NULL) + return (NULL); + vim->vim_num_entries = size / sizeof (*vim->vim_entries); + offset = index * sizeof (*vim->vim_entries); + } + + /* We have data in vim_entries */ + if (offset == 0) { + if (index >= vim->vim_entry_offset && + index <= vim->vim_entry_offset + vim->vim_num_entries) { + index -= vim->vim_entry_offset; + return (&vim->vim_entries[index]); + } + offset = index * sizeof (*vim->vim_entries); + } + + vim->vim_entry_offset = index; + size = vim->vim_num_entries * sizeof (*vim->vim_entries); + rc = dnode_read(vim->vim_spa, vim->vim_dn, offset, vim->vim_entries, + size); + if (rc != 0) { + /* Read error, invalidate vim_entries. */ + free(vim->vim_entries); + vim->vim_entries = NULL; + return (NULL); + } + index -= vim->vim_entry_offset; + return (&vim->vim_entries[index]); +} + +/* + * Returns the mapping entry for the given offset. + * + * It's possible that the given offset will not be in the mapping table + * (i.e. no mapping entries contain this offset), in which case, the + * return value value depends on the "next_if_missing" parameter. + * + * If the offset is not found in the table and "next_if_missing" is + * B_FALSE, then NULL will always be returned. The behavior is intended + * to allow consumers to get the entry corresponding to the offset + * parameter, iff the offset overlaps with an entry in the table. + * + * If the offset is not found in the table and "next_if_missing" is + * B_TRUE, then the entry nearest to the given offset will be returned, + * such that the entry's source offset is greater than the offset + * passed in (i.e. the "next" mapping entry in the table is returned, if + * the offset is missing from the table). If there are no entries whose + * source offset is greater than the passed in offset, NULL is returned. + */ +static vdev_indirect_mapping_entry_phys_t * +vdev_indirect_mapping_entry_for_offset(vdev_indirect_mapping_t *vim, + uint64_t offset) +{ + ASSERT(vim->vim_phys->vimp_num_entries > 0); + + vdev_indirect_mapping_entry_phys_t *entry; + + uint64_t last = vim->vim_phys->vimp_num_entries - 1; + uint64_t base = 0; + + /* + * We don't define these inside of the while loop because we use + * their value in the case that offset isn't in the mapping. + */ + uint64_t mid; + int result; + + while (last >= base) { + mid = base + ((last - base) >> 1); + + entry = vdev_indirect_mapping_entry(vim, mid); + if (entry == NULL) + break; + result = dva_mapping_overlap_compare(&offset, entry); + + if (result == 0) { + break; + } else if (result < 0) { + last = mid - 1; + } else { + base = mid + 1; + } + } + return (entry); +} + +/* + * Given an indirect vdev and an extent on that vdev, it duplicates the + * physical entries of the indirect mapping that correspond to the extent + * to a new array and returns a pointer to it. In addition, copied_entries + * is populated with the number of mapping entries that were duplicated. + * + * Finally, since we are doing an allocation, it is up to the caller to + * free the array allocated in this function. + */ +vdev_indirect_mapping_entry_phys_t * +vdev_indirect_mapping_duplicate_adjacent_entries(vdev_t *vd, uint64_t offset, + uint64_t asize, uint64_t *copied_entries) +{ + vdev_indirect_mapping_entry_phys_t *duplicate_mappings = NULL; + vdev_indirect_mapping_t *vim = vd->v_mapping; + uint64_t entries = 0; + + vdev_indirect_mapping_entry_phys_t *first_mapping = + vdev_indirect_mapping_entry_for_offset(vim, offset); + ASSERT3P(first_mapping, !=, NULL); + + vdev_indirect_mapping_entry_phys_t *m = first_mapping; + while (asize > 0) { + uint64_t size = DVA_GET_ASIZE(&m->vimep_dst); + uint64_t inner_offset = offset - DVA_MAPPING_GET_SRC_OFFSET(m); + uint64_t inner_size = MIN(asize, size - inner_offset); + + offset += inner_size; + asize -= inner_size; + entries++; + m++; + } + + size_t copy_length = entries * sizeof (*first_mapping); + duplicate_mappings = malloc(copy_length); + if (duplicate_mappings != NULL) + bcopy(first_mapping, duplicate_mappings, copy_length); + else + entries = 0; + + *copied_entries = entries; + + return (duplicate_mappings); +} + +static vdev_t * +vdev_lookup_top(spa_t *spa, uint64_t vdev) +{ + vdev_t *rvd; + + STAILQ_FOREACH(rvd, &spa->spa_vdevs, v_childlink) + if (rvd->v_id == vdev) + break; + + return (rvd); +} + +/* + * This is a callback for vdev_indirect_remap() which allocates an + * indirect_split_t for each split segment and adds it to iv_splits. + */ +static void +vdev_indirect_gather_splits(uint64_t split_offset, vdev_t *vd, uint64_t offset, + uint64_t size, void *arg) +{ + int n = 1; + zio_t *zio = arg; + indirect_vsd_t *iv = zio->io_vsd; + + if (vd->v_read == vdev_indirect_read) + return; + + if (vd->v_read == vdev_mirror_read) + n = vd->v_nchildren; + + indirect_split_t *is = + malloc(offsetof(indirect_split_t, is_child[n])); + if (is == NULL) { + zio->io_error = ENOMEM; + return; + } + bzero(is, offsetof(indirect_split_t, is_child[n])); + + is->is_children = n; + is->is_size = size; + is->is_split_offset = split_offset; + is->is_target_offset = offset; + is->is_vdev = vd; + + /* + * Note that we only consider multiple copies of the data for + * *mirror* vdevs. We don't for "replacing" or "spare" vdevs, even + * though they use the same ops as mirror, because there's only one + * "good" copy under the replacing/spare. + */ + if (vd->v_read == vdev_mirror_read) { + int i = 0; + vdev_t *kid; + + STAILQ_FOREACH(kid, &vd->v_children, v_childlink) { + is->is_child[i++].ic_vdev = kid; + } + } else { + is->is_child[0].ic_vdev = vd; + } + + list_insert_tail(&iv->iv_splits, is); +} + +static void +vdev_indirect_remap(vdev_t *vd, uint64_t offset, uint64_t asize, void *arg) +{ + list_t stack; + spa_t *spa = vd->spa; + zio_t *zio = arg; + + list_create(&stack, sizeof (remap_segment_t), + offsetof(remap_segment_t, rs_node)); + + for (remap_segment_t *rs = rs_alloc(vd, offset, asize, 0); + rs != NULL; rs = list_remove_head(&stack)) { + vdev_t *v = rs->rs_vd; + uint64_t num_entries = 0; + /* vdev_indirect_mapping_t *vim = v->v_mapping; */ + vdev_indirect_mapping_entry_phys_t *mapping = + vdev_indirect_mapping_duplicate_adjacent_entries(v, + rs->rs_offset, rs->rs_asize, &num_entries); + + for (uint64_t i = 0; i < num_entries; i++) { + vdev_indirect_mapping_entry_phys_t *m = &mapping[i]; + uint64_t size = DVA_GET_ASIZE(&m->vimep_dst); + uint64_t dst_offset = DVA_GET_OFFSET(&m->vimep_dst); + uint64_t dst_vdev = DVA_GET_VDEV(&m->vimep_dst); + uint64_t inner_offset = rs->rs_offset - + DVA_MAPPING_GET_SRC_OFFSET(m); + uint64_t inner_size = + MIN(rs->rs_asize, size - inner_offset); + vdev_t *dst_v = vdev_lookup_top(spa, dst_vdev); + + if (dst_v->v_read == vdev_indirect_read) { + list_insert_head(&stack, + rs_alloc(dst_v, dst_offset + inner_offset, + inner_size, rs->rs_split_offset)); + } + vdev_indirect_gather_splits(rs->rs_split_offset, dst_v, + dst_offset + inner_offset, + inner_size, arg); + + /* + * vdev_indirect_gather_splits can have memory + * allocation error, we can not recover from it. + */ + if (zio->io_error != 0) + break; + + rs->rs_offset += inner_size; + rs->rs_asize -= inner_size; + rs->rs_split_offset += inner_size; + } + + free(mapping); + free(rs); + if (zio->io_error != 0) + break; + } + + list_destroy(&stack); +} + +static void +vdev_indirect_map_free(zio_t *zio) +{ + indirect_vsd_t *iv = zio->io_vsd; + indirect_split_t *is; + + while ((is = list_head(&iv->iv_splits)) != NULL) { + for (int c = 0; c < is->is_children; c++) { + indirect_child_t *ic = &is->is_child[c]; + free(ic->ic_data); + } + list_remove(&iv->iv_splits, is); + free(is); + } + free(iv); +} + +static int +vdev_indirect_read(vdev_t *vdev, const blkptr_t *bp, void *buf, + off_t offset, size_t bytes) +{ + zio_t zio = { 0 }; + spa_t *spa = vdev->spa; + indirect_vsd_t *iv = malloc(sizeof (*iv)); + indirect_split_t *first; + int rc = EIO; + + if (iv == NULL) + return (ENOMEM); + bzero(iv, sizeof (*iv)); + + list_create(&iv->iv_splits, + sizeof (indirect_split_t), offsetof(indirect_split_t, is_node)); + + zio.io_spa = spa; + zio.io_bp = (blkptr_t *)bp; + zio.io_data = buf; + zio.io_size = bytes; + zio.io_offset = offset; + zio.io_vd = vdev; + zio.io_vsd = iv; + + if (vdev->v_mapping == NULL) { + vdev_indirect_config_t *vic; + + vic = &vdev->vdev_indirect_config; + vdev->v_mapping = vdev_indirect_mapping_open(spa, + &spa->spa_mos, vic->vic_mapping_object); + } + + vdev_indirect_remap(vdev, offset, bytes, &zio); + if (zio.io_error != 0) + return (zio.io_error); + + first = list_head(&iv->iv_splits); + if (first->is_size == zio.io_size) { + /* + * This is not a split block; we are pointing to the entire + * data, which will checksum the same as the original data. + * Pass the BP down so that the child i/o can verify the + * checksum, and try a different location if available + * (e.g. on a mirror). + * + * While this special case could be handled the same as the + * general (split block) case, doing it this way ensures + * that the vast majority of blocks on indirect vdevs + * (which are not split) are handled identically to blocks + * on non-indirect vdevs. This allows us to be less strict + * about performance in the general (but rare) case. + */ + rc = first->is_vdev->v_read(first->is_vdev, zio.io_bp, + zio.io_data, first->is_target_offset, bytes); + } else { + iv->iv_split_block = B_TRUE; + /* + * Read one copy of each split segment, from the + * top-level vdev. Since we don't know the + * checksum of each split individually, the child + * zio can't ensure that we get the right data. + * E.g. if it's a mirror, it will just read from a + * random (healthy) leaf vdev. We have to verify + * the checksum in vdev_indirect_io_done(). + */ + for (indirect_split_t *is = list_head(&iv->iv_splits); + is != NULL; is = list_next(&iv->iv_splits, is)) { + char *ptr = zio.io_data; + + rc = is->is_vdev->v_read(is->is_vdev, zio.io_bp, + ptr + is->is_split_offset, is->is_target_offset, + is->is_size); + } + if (zio_checksum_verify(spa, zio.io_bp, zio.io_data)) + rc = ECKSUM; + else + rc = 0; + } + + vdev_indirect_map_free(&zio); + if (rc == 0) + rc = zio.io_error; + + return (rc); +} + +static int vdev_disk_read(vdev_t *vdev, const blkptr_t *bp, void *buf, off_t offset, size_t bytes) { @@ -499,6 +1065,7 @@ static vdev_t * vdev_create(uint64_t guid, vdev_read_t *_read) { vdev_t *vdev; + vdev_indirect_config_t *vic; vdev = malloc(sizeof(vdev_t)); memset(vdev, 0, sizeof(vdev_t)); @@ -506,8 +1073,9 @@ vdev_create(uint64_t guid, vdev_read_t *_read) vdev->v_guid = guid; vdev->v_state = VDEV_STATE_OFFLINE; vdev->v_read = _read; - vdev->v_phys_read = 0; - vdev->v_read_priv = 0; + + vic = &vdev->vdev_indirect_config; + vic->vic_prev_indirect_vdev = UINT64_MAX; STAILQ_INSERT_TAIL(&zfs_vdevs, vdev, v_alllink); return (vdev); @@ -541,6 +1109,7 @@ vdev_init_from_nvlist(const unsigned char *nvlist, vde && strcmp(type, VDEV_TYPE_FILE) #endif && strcmp(type, VDEV_TYPE_RAIDZ) + && strcmp(type, VDEV_TYPE_INDIRECT) && strcmp(type, VDEV_TYPE_REPLACING)) { printf("ZFS: can only boot from disk, mirror, raidz1, raidz2 and raidz3 vdevs\n"); return (EIO); @@ -569,7 +1138,23 @@ vdev_init_from_nvlist(const unsigned char *nvlist, vde vdev = vdev_create(guid, vdev_raidz_read); else if (!strcmp(type, VDEV_TYPE_REPLACING)) vdev = vdev_create(guid, vdev_replacing_read); - else + else if (!strcmp(type, VDEV_TYPE_INDIRECT)) { + vdev_indirect_config_t *vic; + + vdev = vdev_create(guid, vdev_indirect_read); + vdev->v_state = VDEV_STATE_HEALTHY; + vic = &vdev->vdev_indirect_config; + + nvlist_find(nvlist, + ZPOOL_CONFIG_INDIRECT_OBJECT, DATA_TYPE_UINT64, + NULL, &vic->vic_mapping_object); + nvlist_find(nvlist, + ZPOOL_CONFIG_INDIRECT_BIRTHS, DATA_TYPE_UINT64, + NULL, &vic->vic_births_object); + nvlist_find(nvlist, + ZPOOL_CONFIG_PREV_INDIRECT_VDEV, DATA_TYPE_UINT64, + NULL, &vic->vic_prev_indirect_vdev); + } else vdev = vdev_create(guid, vdev_disk_read); vdev->v_id = id; @@ -592,20 +1177,24 @@ vdev_init_from_nvlist(const unsigned char *nvlist, vde path += 5; vdev->v_name = strdup(path); } else { + char *name; + if (!strcmp(type, "raidz")) { - if (vdev->v_nparity == 1) - vdev->v_name = "raidz1"; - else if (vdev->v_nparity == 2) - vdev->v_name = "raidz2"; - else if (vdev->v_nparity == 3) - vdev->v_name = "raidz3"; - else { - printf("ZFS: can only boot from disk, mirror, raidz1, raidz2 and raidz3 vdevs\n"); + if (vdev->v_nparity < 1 || + vdev->v_nparity > 3) { + printf("ZFS: can only boot from disk, " + "mirror, raidz1, raidz2 and raidz3 " + "vdevs\n"); return (EIO); } + asprintf(&name, "%s%d-%jd", type, + vdev->v_nparity, id); } else { - vdev->v_name = strdup(type); + asprintf(&name, "%s-%jd", type, id); } + if (name == NULL) + return (ENOMEM); + vdev->v_name = name; } } else { is_new = 0; @@ -2229,11 +2818,49 @@ check_mos_features(const spa_t *spa) } static int -zfs_spa_init(spa_t *spa) +load_nvlist(spa_t *spa, uint64_t obj, unsigned char **value) { dnode_phys_t dir; + size_t size; int rc; + unsigned char *nv; + *value = NULL; + if ((rc = objset_get_dnode(spa, &spa->spa_mos, obj, &dir)) != 0) + return (rc); + if (dir.dn_type != DMU_OT_PACKED_NVLIST && + dir.dn_bonustype != DMU_OT_PACKED_NVLIST_SIZE) { + return (EIO); + } + + if (dir.dn_bonuslen != sizeof (uint64_t)) + return (EIO); + + size = *(uint64_t *)DN_BONUS(&dir); + nv = malloc(size); + if (nv == NULL) + return (ENOMEM); + + rc = dnode_read(spa, &dir, 0, nv, size); + if (rc != 0) { + free(nv); + nv = NULL; + return (rc); + } + *value = nv; + return (rc); +} + +static int +zfs_spa_init(spa_t *spa) +{ + dnode_phys_t dir; + uint64_t config_object; + unsigned char *nvlist; + char *type; + const unsigned char *nv; + int nkids, rc; + if (zio_read(spa, &spa->spa_uberblock.ub_rootbp, &spa->spa_mos)) { printf("ZFS: can't read MOS of pool %s\n", spa->spa_name); return (EIO); @@ -2257,8 +2884,77 @@ zfs_spa_init(spa_t *spa) rc = check_mos_features(spa); if (rc != 0) { printf("ZFS: pool %s is not supported\n", spa->spa_name); + return (rc); } + rc = zap_lookup(spa, &dir, DMU_POOL_CONFIG, + sizeof (config_object), 1, &config_object); + if (rc != 0) { + printf("ZFS: can not read MOS %s\n", DMU_POOL_CONFIG); + return (EIO); + } + rc = load_nvlist(spa, config_object, &nvlist); + if (rc != 0) + return (rc); + + /* Update vdevs from MOS config. */ + if (nvlist_find(nvlist + 4, ZPOOL_CONFIG_VDEV_TREE, DATA_TYPE_NVLIST, + NULL, &nv)) { + rc = EIO; + goto done; + } + + if (nvlist_find(nv, ZPOOL_CONFIG_TYPE, DATA_TYPE_STRING, + NULL, &type)) { + printf("ZFS: can't find vdev details\n"); + rc = ENOENT; + goto done; + } + if (strcmp(type, VDEV_TYPE_ROOT) != 0) { + rc = ENOENT; + goto done; + } + + rc = nvlist_find(nv, ZPOOL_CONFIG_CHILDREN, DATA_TYPE_NVLIST_ARRAY, + &nkids, &nv); + if (rc != 0) + goto done; + + for (int i = 0; i < nkids; i++) { + vdev_t *vd, *prev, *kid = NULL; + rc = vdev_init_from_nvlist(nv, NULL, &kid, 0); + if (rc != 0) { + printf("vdev_init_from_nvlist: %d\n", rc); + break; + } + kid->spa = spa; + prev = NULL; + STAILQ_FOREACH(vd, &spa->spa_vdevs, v_childlink) { + /* Already present? */ + if (kid->v_id == vd->v_id) { + kid = NULL; + break; + } + if (vd->v_id > kid->v_id) { + if (prev == NULL) { + STAILQ_INSERT_HEAD(&spa->spa_vdevs, + kid, v_childlink); + } else { + STAILQ_INSERT_AFTER(&spa->spa_vdevs, + prev, kid, v_childlink); + } + kid = NULL; + break; + } + prev = vd; + } + if (kid != NULL) + STAILQ_INSERT_TAIL(&spa->spa_vdevs, kid, v_childlink); + nv = nvlist_next(nv); + } + rc = 0; +done: + free(nvlist); return (rc); } Modified: stable/12/sys/cddl/boot/zfs/zfsimpl.h ============================================================================== --- stable/12/sys/cddl/boot/zfs/zfsimpl.h Thu Aug 22 07:17:49 2019 (r351383) +++ stable/12/sys/cddl/boot/zfs/zfsimpl.h Thu Aug 22 07:37:34 2019 (r351384) @@ -715,6 +715,9 @@ typedef enum { #define ZPOOL_CONFIG_CHILDREN "children" #define ZPOOL_CONFIG_ID "id" #define ZPOOL_CONFIG_GUID "guid" +#define ZPOOL_CONFIG_INDIRECT_OBJECT "com.delphix:indirect_object" +#define ZPOOL_CONFIG_INDIRECT_BIRTHS "com.delphix:indirect_births" +#define ZPOOL_CONFIG_PREV_INDIRECT_VDEV "com.delphix:prev_indirect_vdev" #define ZPOOL_CONFIG_PATH "path" #define ZPOOL_CONFIG_DEVID "devid" #define ZPOOL_CONFIG_METASLAB_ARRAY "metaslab_array" @@ -758,6 +761,7 @@ typedef enum { #define VDEV_TYPE_SPARE "spare" #define VDEV_TYPE_LOG "log" #define VDEV_TYPE_L2CACHE "l2cache" +#define VDEV_TYPE_INDIRECT "indirect" /* * This is needed in userland to report the minimum necessary device size. @@ -850,7 +854,7 @@ struct uberblock { */ #define DNODE_SHIFT 9 /* 512 bytes */ #define DN_MIN_INDBLKSHIFT 12 /* 4k */ -#define DN_MAX_INDBLKSHIFT 14 /* 16k */ +#define DN_MAX_INDBLKSHIFT 17 /* 128k */ #define DNODE_BLOCK_SHIFT 14 /* 16k */ #define DNODE_CORE_SIZE 64 /* 64 bytes for dnode sans blkptrs */ #define DN_MAX_OBJECT_SHIFT 48 /* 256 trillion (zfs_fid_t limit) */ @@ -1217,6 +1221,9 @@ typedef struct dsl_dataset_phys { #define DMU_POOL_HISTORY "history" #define DMU_POOL_PROPS "pool_props" #define DMU_POOL_CHECKSUM_SALT "org.illumos:checksum_salt" +#define DMU_POOL_REMOVING "com.delphix:removing" +#define DMU_POOL_OBSOLETE_BPOBJ "com.delphix:obsolete_bpobj" +#define DMU_POOL_CONDENSING_INDIRECT "com.delphix:condensing_indirect" #define ZAP_MAGIC 0x2F52AB2ABULL @@ -1530,6 +1537,116 @@ typedef int vdev_read_t(struct vdev *vdev, const blkpt typedef STAILQ_HEAD(vdev_list, vdev) vdev_list_t; +typedef struct vdev_indirect_mapping_entry_phys { + /* + * Decode with DVA_MAPPING_* macros. + * Contains: + * the source offset (low 63 bits) + * the one-bit "mark", used for garbage collection (by zdb) + */ + uint64_t vimep_src; + + /* + * Note: the DVA's asize is 24 bits, and can thus store ranges + * up to 8GB. + */ + dva_t vimep_dst; +} vdev_indirect_mapping_entry_phys_t; + +#define DVA_MAPPING_GET_SRC_OFFSET(vimep) \ + BF64_GET_SB((vimep)->vimep_src, 0, 63, SPA_MINBLOCKSHIFT, 0) +#define DVA_MAPPING_SET_SRC_OFFSET(vimep, x) \ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Aug 22 07:52:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C819FC0619; Thu, 22 Aug 2019 07:52:06 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DcF24yppz49Np; Thu, 22 Aug 2019 07:52:06 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8DB37E75; Thu, 22 Aug 2019 07:52:06 +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 x7M7q6wp048118; Thu, 22 Aug 2019 07:52:06 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M7q6Mq048117; Thu, 22 Aug 2019 07:52:06 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201908220752.x7M7q6Mq048117@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Thu, 22 Aug 2019 07:52:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351385 - head/usr.bin/w X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: head/usr.bin/w X-SVN-Commit-Revision: 351385 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 07:52:06 -0000 Author: bz Date: Thu Aug 22 07:52:06 2019 New Revision: 351385 URL: https://svnweb.freebsd.org/changeset/base/351385 Log: w: initialize save_p to silence 'may be used uninitilized' After r351379 save_p may be used uninitialized. Set it to NULL before first assignment so that a later NULL check will work correctly. Reported by: CI system for gcc platforms MFC after: 1 week X-MFC with: 351379 (karels) Modified: head/usr.bin/w/w.c Modified: head/usr.bin/w/w.c ============================================================================== --- head/usr.bin/w/w.c Thu Aug 22 07:37:34 2019 (r351384) +++ head/usr.bin/w/w.c Thu Aug 22 07:52:06 2019 (r351385) @@ -209,6 +209,7 @@ main(int argc, char *argv[]) if (*argv) sel_users = argv; + save_p = NULL; setutxent(); for (nusers = 0; (utmp = getutxent()) != NULL;) { struct addrinfo hints, *res; From owner-svn-src-all@freebsd.org Thu Aug 22 08:47:19 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4CAEAC23E9; Thu, 22 Aug 2019 08:47:19 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DdSl1KBGz4CnM; Thu, 22 Aug 2019 08:47:19 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0ECCA17E6; Thu, 22 Aug 2019 08:47:19 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M8lIIj078816; Thu, 22 Aug 2019 08:47:18 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M8lIAA078815; Thu, 22 Aug 2019 08:47:18 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201908220847.x7M8lIAA078815@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Thu, 22 Aug 2019 08:47:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351386 - stable/12/sys/netpfil/ipfw X-SVN-Group: stable-12 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/12/sys/netpfil/ipfw X-SVN-Commit-Revision: 351386 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 08:47:19 -0000 Author: ae Date: Thu Aug 22 08:47:18 2019 New Revision: 351386 URL: https://svnweb.freebsd.org/changeset/base/351386 Log: MFC r351071: Fix rule truncation on external action module unloading. Modified: stable/12/sys/netpfil/ipfw/ip_fw_eaction.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netpfil/ipfw/ip_fw_eaction.c ============================================================================== --- stable/12/sys/netpfil/ipfw/ip_fw_eaction.c Thu Aug 22 07:52:06 2019 (r351385) +++ stable/12/sys/netpfil/ipfw/ip_fw_eaction.c Thu Aug 22 08:47:18 2019 (r351386) @@ -391,19 +391,19 @@ ipfw_reset_eaction(struct ip_fw_chain *ch, struct ip_f cmd->arg1 != eaction_id) return (0); /* - * If instance_id is specified, we need to truncate the - * rule length. Check if there is O_EXTERNAL_INSTANCE opcode. + * Check if there is O_EXTERNAL_INSTANCE opcode, we need + * to truncate the rule length. * * NOTE: F_LEN(cmd) must be 1 for O_EXTERNAL_ACTION opcode, * and rule length should be enough to keep O_EXTERNAL_INSTANCE * opcode, thus we do check for l > 1. */ l = rule->cmd + rule->cmd_len - cmd; - if (instance_id != 0 && l > 1) { + if (l > 1) { MPASS(F_LEN(cmd) == 1); icmd = cmd + 1; - if (icmd->opcode != O_EXTERNAL_INSTANCE || - icmd->arg1 != instance_id) + if (icmd->opcode == O_EXTERNAL_INSTANCE && + instance_id != 0 && icmd->arg1 != instance_id) return (0); /* * Since named_object related to this instance will be From owner-svn-src-all@freebsd.org Thu Aug 22 08:49:22 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3648DC24E9; Thu, 22 Aug 2019 08:49:22 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DdW60ccXz4CwJ; Thu, 22 Aug 2019 08:49:22 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E7A0C17E8; Thu, 22 Aug 2019 08:49:21 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7M8nL9p078972; Thu, 22 Aug 2019 08:49:21 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M8nLLF078971; Thu, 22 Aug 2019 08:49:21 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201908220849.x7M8nLLF078971@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Thu, 22 Aug 2019 08:49:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351387 - stable/11/sys/netpfil/ipfw X-SVN-Group: stable-11 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/11/sys/netpfil/ipfw X-SVN-Commit-Revision: 351387 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 08:49:22 -0000 Author: ae Date: Thu Aug 22 08:49:21 2019 New Revision: 351387 URL: https://svnweb.freebsd.org/changeset/base/351387 Log: MFC r351071: Fix rule truncation on external action module unloading. Modified: stable/11/sys/netpfil/ipfw/ip_fw_eaction.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netpfil/ipfw/ip_fw_eaction.c ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw_eaction.c Thu Aug 22 08:47:18 2019 (r351386) +++ stable/11/sys/netpfil/ipfw/ip_fw_eaction.c Thu Aug 22 08:49:21 2019 (r351387) @@ -391,19 +391,19 @@ ipfw_reset_eaction(struct ip_fw_chain *ch, struct ip_f cmd->arg1 != eaction_id) return (0); /* - * If instance_id is specified, we need to truncate the - * rule length. Check if there is O_EXTERNAL_INSTANCE opcode. + * Check if there is O_EXTERNAL_INSTANCE opcode, we need + * to truncate the rule length. * * NOTE: F_LEN(cmd) must be 1 for O_EXTERNAL_ACTION opcode, * and rule length should be enough to keep O_EXTERNAL_INSTANCE * opcode, thus we do check for l > 1. */ l = rule->cmd + rule->cmd_len - cmd; - if (instance_id != 0 && l > 1) { + if (l > 1) { MPASS(F_LEN(cmd) == 1); icmd = cmd + 1; - if (icmd->opcode != O_EXTERNAL_INSTANCE || - icmd->arg1 != instance_id) + if (icmd->opcode == O_EXTERNAL_INSTANCE && + instance_id != 0 && icmd->arg1 != instance_id) return (0); /* * Since named_object related to this instance will be From owner-svn-src-all@freebsd.org Thu Aug 22 09:24:44 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 229A8C35A3; Thu, 22 Aug 2019 09:24:44 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DfHw093qz4G2Q; Thu, 22 Aug 2019 09:24:44 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D70091F2A; Thu, 22 Aug 2019 09:24:43 +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 x7M9Oh0Q003007; Thu, 22 Aug 2019 09:24:43 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7M9Ohda003006; Thu, 22 Aug 2019 09:24:43 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201908220924.x7M9Ohda003006@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Thu, 22 Aug 2019 09:24:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351388 - head/sys/dev/usb/net X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: head/sys/dev/usb/net X-SVN-Commit-Revision: 351388 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 09:24:44 -0000 Author: bz Date: Thu Aug 22 09:24:43 2019 New Revision: 351388 URL: https://svnweb.freebsd.org/changeset/base/351388 Log: usb: fix usb_fdt_support.c when altq enabled (usb_ehernet.h changes) After r351243 when ALTQ was enabled in the kernel, the inline functions in ifq.h would not have full type information as if_var.h was not included. Given usb_ethernet.h already includes all the various headers (which) is the cause of the problem here, add if_var.h to it. This fixes the builds again. Reported by: CI system, e.g. FreeBSD-head-aarch64-LINT Modified: head/sys/dev/usb/net/usb_ethernet.h Modified: head/sys/dev/usb/net/usb_ethernet.h ============================================================================== --- head/sys/dev/usb/net/usb_ethernet.h Thu Aug 22 08:49:21 2019 (r351387) +++ head/sys/dev/usb/net/usb_ethernet.h Thu Aug 22 09:24:43 2019 (r351388) @@ -41,6 +41,7 @@ #include #include +#include #include #include #include From owner-svn-src-all@freebsd.org Thu Aug 22 09:39:50 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C87FFC3896; Thu, 22 Aug 2019 09:39:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DfdL4h1Jz4GYh; Thu, 22 Aug 2019 09:39:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mx1.sbone.de (cross.sbone.de [195.201.62.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified)) (Authenticated sender: bz/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 6D94ED665; Thu, 22 Aug 2019 09:39:50 +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 6DC618D4A210; Thu, 22 Aug 2019 09:39:49 +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 E457FE7084B; Thu, 22 Aug 2019 09:39:48 +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 Q51KwTrJo8zM; Thu, 22 Aug 2019 09:39:46 +0000 (UTC) Received: from [127.0.0.1] (unknown [IPv6:fde9:577b:c1a9:31:b8c3:fcc4:54a6:5880]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id 5B081E70847; Thu, 22 Aug 2019 09:39:46 +0000 (UTC) From: "Bjoern A. Zeeb" To: "John Baldwin" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r351364 - in head/sys: crypto/blowfish crypto/chacha20 crypto/des opencrypto Date: Thu, 22 Aug 2019 09:39:45 +0000 X-Mailer: MailMate (2.0BETAr6137) Message-ID: In-Reply-To: <201908220002.x7M028Jh070116@repo.freebsd.org> References: <201908220002.x7M028Jh070116@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 09:39:50 -0000 On 22 Aug 2019, at 0:02, John Baldwin wrote: Hi, > Author: jhb > Date: Thu Aug 22 00:02:08 2019 > New Revision: 351364 > URL: https://svnweb.freebsd.org/changeset/base/351364 > > Log: > Use 'const' for keys and IVs passed to software encryption > algorithms. > > Specifically, use 'const' for the key passed to the 'setkey' method > and 'const' for the 'iv' passed to the 'reinit' method. > > Reviewed by: cem > Sponsored by: Chelsio Communications > Differential Revision: https://reviews.freebsd.org/D21347 can you please review and commit this one to make gcc platforms a bit more happy again (I tested a sparc64 GENERIC kernel build): Reported by: CI system (gcc) Index: sys/opencrypto/xform_des1.c =================================================================== --- sys/opencrypto/xform_des1.c (revision 351384) +++ sys/opencrypto/xform_des1.c (working copy) @@ -99,7 +99,7 @@ des1_setkey(u_int8_t **sched, const u_int8_t *key, p = KMALLOC(sizeof (des_key_schedule), M_CRYPTO_DATA, M_NOWAIT|M_ZERO); if (p != NULL) { - des_set_key((const des_cblock *) key, p[0]); + des_set_key(__DEQUALIFY(const des_cblock *, key), p[0]); err = 0; } else err = ENOMEM; Index: sys/opencrypto/xform_des3.c =================================================================== --- sys/opencrypto/xform_des3.c (revision 351384) +++ sys/opencrypto/xform_des3.c (working copy) @@ -100,9 +100,9 @@ des3_setkey(u_int8_t **sched, const u_int8_t *key, p = KMALLOC(3*sizeof (des_key_schedule), M_CRYPTO_DATA, M_NOWAIT|M_ZERO); if (p != NULL) { - des_set_key((const des_cblock *)(key + 0), p[0]); - des_set_key((const des_cblock *)(key + 8), p[1]); - des_set_key((const des_cblock *)(key + 16), p[2]); + des_set_key(__DEQUALIFY(const des_cblock *,(key + 0)), p[0]); + des_set_key(__DEQUALIFY(const des_cblock *,(key + 8)), p[1]); + des_set_key(__DEQUALIFY(const des_cblock *,(key + 16)), p[2]); err = 0; } else err = ENOMEM; Index: sys/netsmb/smb_crypt.c =================================================================== --- sys/netsmb/smb_crypt.c (revision 351384) +++ sys/netsmb/smb_crypt.c (working copy) @@ -83,7 +83,7 @@ smb_E(const u_char *key, u_char *data, u_char *des kk[6] = key[5] << 2 | (key[6] >> 6 & 0xfe); kk[7] = key[6] << 1; ksp = malloc(sizeof(des_key_schedule), M_SMBTEMP, M_WAITOK); - des_set_key((des_cblock *)kk, *ksp); + des_set_key((const des_cblock *)kk, *ksp); des_ecb_encrypt((des_cblock *)data, (des_cblock *)dest, *ksp, 1); free(ksp, M_SMBTEMP); } Index: sys/kgssapi/krb5/kcrypto_des.c =================================================================== --- sys/kgssapi/krb5/kcrypto_des.c (revision 351384) +++ sys/kgssapi/krb5/kcrypto_des.c (working copy) @@ -136,7 +136,7 @@ des1_random_to_key(struct krb5_key_state *ks, cons | ((inkey[5] & 1) << 6) | ((inkey[6] & 1) << 7)); des_set_odd_parity((des_cblock *) outkey); - if (des_is_weak_key((des_cblock *) outkey)) + if (des_is_weak_key((const des_cblock *) outkey)) outkey[7] ^= 0xf0; des1_set_key(ks, ks->ks_key); Index: sys/kgssapi/krb5/kcrypto_des3.c =================================================================== --- sys/kgssapi/krb5/kcrypto_des3.c (revision 351384) +++ sys/kgssapi/krb5/kcrypto_des3.c (working copy) @@ -145,7 +145,7 @@ des3_random_to_key(struct krb5_key_state *ks, cons | ((inkey[5] & 1) << 6) | ((inkey[6] & 1) << 7)); des_set_odd_parity((des_cblock *) outkey); - if (des_is_weak_key((des_cblock *) outkey)) + if (des_is_weak_key((const des_cblock *) outkey)) outkey[7] ^= 0xf0; } From owner-svn-src-all@freebsd.org Thu Aug 22 10:21:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CD6D7C4414; Thu, 22 Aug 2019 10:21:07 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DgXz57BGz4JBb; Thu, 22 Aug 2019 10:21:07 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 91BD12962; Thu, 22 Aug 2019 10:21:07 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7MAL747032378; Thu, 22 Aug 2019 10:21:07 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MAL7O2032377; Thu, 22 Aug 2019 10:21:07 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201908221021.x7MAL7O2032377@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Thu, 22 Aug 2019 10:21:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351389 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 351389 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 10:21:07 -0000 Author: brooks Date: Thu Aug 22 10:21:07 2019 New Revision: 351389 URL: https://svnweb.freebsd.org/changeset/base/351389 Log: Reorganise conditionals to reduce duplication. No functional change. Obtained from: CheriBSD MFC after: 3 days Sponsored by: DARPA, AFRL Modified: head/sys/kern/makesyscalls.sh Modified: head/sys/kern/makesyscalls.sh ============================================================================== --- head/sys/kern/makesyscalls.sh Thu Aug 22 09:24:43 2019 (r351388) +++ head/sys/kern/makesyscalls.sh Thu Aug 22 10:21:07 2019 (r351389) @@ -512,20 +512,20 @@ sed -e ' } printf("\t\t*n_args = %d;\n\t\tbreak;\n\t}\n", argc) > systrace printf("\t\tbreak;\n") > systracetmp - if (argc != 0 && !flag("NOARGS") && !flag("NOPROTO") && \ - !flag("NODEF")) { - printf("struct %s {\n", argalias) > sysarg - for (i = 1; i <= argc; i++) - printf("\tchar %s_l_[PADL_(%s)]; " \ - "%s %s; char %s_r_[PADR_(%s)];\n", - argname[i], argtype[i], - argtype[i], argname[i], - argname[i], argtype[i]) > sysarg - printf("};\n") > sysarg + if (!flag("NOARGS") && !flag("NOPROTO") && !flag("NODEF")) { + if (argc != 0) { + printf("struct %s {\n", argalias) > sysarg + for (i = 1; i <= argc; i++) + printf("\tchar %s_l_[PADL_(%s)]; " \ + "%s %s; char %s_r_[PADR_(%s)];\n", + argname[i], argtype[i], + argtype[i], argname[i], + argname[i], argtype[i]) > sysarg + printf("};\n") > sysarg + } else + printf("struct %s {\n\tregister_t dummy;\n};\n", + argalias) > sysarg } - else if (!flag("NOARGS") && !flag("NOPROTO") && !flag("NODEF")) - printf("struct %s {\n\tregister_t dummy;\n};\n", - argalias) > sysarg if (!flag("NOPROTO") && !flag("NODEF")) { if (funcname == "nosys" || funcname == "lkmnosys" || funcname == "sysarch" || funcname ~ /^freebsd/ || From owner-svn-src-all@freebsd.org Thu Aug 22 11:32:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BF710C5FEB; Thu, 22 Aug 2019 11:32:06 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Dj6t5Nmrz4MTY; Thu, 22 Aug 2019 11:32:06 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8006B3808; Thu, 22 Aug 2019 11:32:06 +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 x7MBW6cj078420; Thu, 22 Aug 2019 11:32:06 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MBW3Rk078405; Thu, 22 Aug 2019 11:32:03 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201908221132.x7MBW3Rk078405@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 22 Aug 2019 11:32:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351390 - stable/12/contrib/mandoc X-SVN-Group: stable-12 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: stable/12/contrib/mandoc X-SVN-Commit-Revision: 351390 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 11:32:06 -0000 Author: bapt Date: Thu Aug 22 11:32:03 2019 New Revision: 351390 URL: https://svnweb.freebsd.org/changeset/base/351390 Log: MFC r350351: Update mandoc to cvs snapshot 2019-07-23 This snapshot among other things includes a fix for a crash of mandoc with empty tbl reported by rea@ (his regression test has been incorporated upstream) Deleted: stable/12/contrib/mandoc/libroff.h Modified: stable/12/contrib/mandoc/Makefile.depend stable/12/contrib/mandoc/TODO stable/12/contrib/mandoc/arch.c stable/12/contrib/mandoc/cgi.c stable/12/contrib/mandoc/configure stable/12/contrib/mandoc/dbm.c stable/12/contrib/mandoc/dbm_map.h stable/12/contrib/mandoc/eqn.7 stable/12/contrib/mandoc/eqn_html.c stable/12/contrib/mandoc/html.c stable/12/contrib/mandoc/html.h stable/12/contrib/mandoc/lib.in stable/12/contrib/mandoc/main.c stable/12/contrib/mandoc/man.7 stable/12/contrib/mandoc/man_html.c stable/12/contrib/mandoc/man_term.c stable/12/contrib/mandoc/man_validate.c stable/12/contrib/mandoc/mandoc.1 stable/12/contrib/mandoc/mandoc.c stable/12/contrib/mandoc/mandoc.css stable/12/contrib/mandoc/mandoc.h stable/12/contrib/mandoc/mandoc_char.7 stable/12/contrib/mandoc/mandoc_headers.3 stable/12/contrib/mandoc/mandoc_msg.c stable/12/contrib/mandoc/mandocdb.c stable/12/contrib/mandoc/manpath.c stable/12/contrib/mandoc/mansearch.c stable/12/contrib/mandoc/mansearch.h stable/12/contrib/mandoc/mdoc.7 stable/12/contrib/mandoc/mdoc_argv.c stable/12/contrib/mandoc/mdoc_markdown.c stable/12/contrib/mandoc/mdoc_term.c stable/12/contrib/mandoc/mdoc_validate.c stable/12/contrib/mandoc/out.c stable/12/contrib/mandoc/read.c stable/12/contrib/mandoc/roff.7 stable/12/contrib/mandoc/roff.c stable/12/contrib/mandoc/roff_html.c stable/12/contrib/mandoc/tag.c stable/12/contrib/mandoc/tbl_html.c stable/12/contrib/mandoc/tbl_term.c stable/12/contrib/mandoc/term.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/mandoc/Makefile.depend ============================================================================== --- stable/12/contrib/mandoc/Makefile.depend Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/Makefile.depend Thu Aug 22 11:32:03 2019 (r351390) @@ -29,7 +29,7 @@ dbm.o: dbm.c config.h mansearch.h dbm_map.h dbm.h dbm_map.o: dbm_map.c config.h mansearch.h dbm_map.h dbm.h demandoc.o: demandoc.c config.h mandoc.h roff.h man.h mdoc.h mandoc_parse.h eqn.o: eqn.c config.h mandoc_aux.h mandoc.h roff.h eqn.h libmandoc.h eqn_parse.h -eqn_html.o: eqn_html.c config.h mandoc.h eqn.h out.h html.h +eqn_html.o: eqn_html.c config.h mandoc.h roff.h eqn.h out.h html.h eqn_term.o: eqn_term.c config.h eqn.h out.h term.h html.o: html.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc.h roff.h out.h html.h manconf.h main.h lib.o: lib.c config.h roff.h libmdoc.h lib.in @@ -37,16 +37,16 @@ main.o: main.c config.h mandoc_aux.h mandoc.h mandoc_x man.o: man.c config.h mandoc_aux.h mandoc.h roff.h man.h libmandoc.h roff_int.h libman.h man_html.o: man_html.c config.h mandoc_aux.h mandoc.h roff.h man.h out.h html.h main.h man_macro.o: man_macro.c config.h mandoc.h roff.h man.h libmandoc.h roff_int.h libman.h -man_term.o: man_term.c config.h mandoc_aux.h roff.h man.h out.h term.h main.h +man_term.o: man_term.c config.h mandoc_aux.h mandoc.h roff.h man.h out.h term.h tag.h main.h man_validate.o: man_validate.c config.h mandoc_aux.h mandoc.h roff.h man.h libmandoc.h roff_int.h libman.h mandoc.o: mandoc.c config.h mandoc_aux.h mandoc.h roff.h libmandoc.h roff_int.h mandoc_aux.o: mandoc_aux.c config.h mandoc.h mandoc_aux.h -mandoc_msg.o: mandoc_msg.c mandoc.h +mandoc_msg.o: mandoc_msg.c config.h mandoc.h mandoc_ohash.o: mandoc_ohash.c mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc_xr.o: mandoc_xr.c mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc_xr.h mandocd.o: mandocd.c config.h mandoc.h roff.h mdoc.h man.h mandoc_parse.h main.h manconf.h mandocdb.o: mandocdb.c config.h compat_fts.h mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc.h roff.h mdoc.h man.h mandoc_parse.h manconf.h mansearch.h dba_array.h dba.h -manpath.o: manpath.c config.h mandoc_aux.h manconf.h +manpath.o: manpath.c config.h mandoc_aux.h mandoc.h manconf.h mansearch.o: mansearch.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h manconf.h mansearch.h dbm.h mdoc.o: mdoc.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h libmandoc.h roff_int.h libmdoc.h mdoc_argv.o: mdoc_argv.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h libmandoc.h roff_int.h libmdoc.h @@ -67,10 +67,10 @@ roff_term.o: roff_term.c mandoc.h roff.h out.h term.h roff_validate.o: roff_validate.c mandoc.h roff.h libmandoc.h roff_int.h soelim.o: soelim.c config.h compat_stringlist.h st.o: st.c config.h mandoc.h roff.h libmdoc.h -tag.o: tag.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h tag.h +tag.o: tag.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc.h tag.h tbl.o: tbl.c config.h mandoc_aux.h mandoc.h tbl.h libmandoc.h tbl_parse.h tbl_int.h tbl_data.o: tbl_data.c config.h mandoc_aux.h mandoc.h tbl.h libmandoc.h tbl_int.h -tbl_html.o: tbl_html.c config.h mandoc.h tbl.h out.h html.h +tbl_html.o: tbl_html.c config.h mandoc.h roff.h tbl.h out.h html.h tbl_layout.o: tbl_layout.c config.h mandoc_aux.h mandoc.h tbl.h libmandoc.h tbl_int.h tbl_opts.o: tbl_opts.c config.h mandoc.h tbl.h libmandoc.h tbl_int.h tbl_term.o: tbl_term.c config.h mandoc.h tbl.h out.h term.h Modified: stable/12/contrib/mandoc/TODO ============================================================================== --- stable/12/contrib/mandoc/TODO Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/TODO Thu Aug 22 11:32:03 2019 (r351390) @@ -1,6 +1,6 @@ ************************************************************************ * Official mandoc TODO. -* $Id: TODO,v 1.289 2019/03/04 13:01:57 schwarze Exp $ +* $Id: TODO,v 1.295 2019/06/11 16:04:36 schwarze Exp $ ************************************************************************ Many issues are annotated for difficulty as follows: @@ -62,6 +62,27 @@ are mere guesses, and some may be wrong. needed for Tcl_NewStringObj(3) via wiz@ Wed, 5 Mar 2014 22:27:43 +0100 loc ** exist *** algo *** size * imp *** +- .als only works for macros in mandoc, not for user-defined strings. + Also, the "val" field in struct roffkv would have to be replaced + with a pointer to a reference-counted wrapper, and an alias + would have to point to the same wrapper as the original. + .als to undefined does nothing; the alias is not created. + .rm'ing the original leaves the alias to point to the old value. + .de .als .de changes both, but + .de .als .rm .de only changes the new value, not the alias. + Found in groffer(1) version 1.19 + Jan Stary 20 Apr 2019 20:16:54 +0200 + loc * exist ** algo ** size ** imp * + +- roff string condition comparisons fail when vars contain quotes: + .ds s ' + .if '\*s'' \&... + hard to fix because of the basic architecture (string replacement + happens before roff(7) syntax parsing) + Found in groffer(1) version 1.19 + Jan Stary 20 Apr 2019 20:16:54 +0200 + loc * exist *** algo *** size ** imp * + --- missing mdoc features ---------------------------------------------- - .Bl -column .Xo support is missing @@ -263,6 +284,9 @@ are mere guesses, and some may be wrong. http://ikiwiki.info/plugins/contrib/mandoc/ https://github.com/schmonz/ikiwiki/compare/mandoc Amitai Schlair Mon, 19 May 2014 14:05:53 -0400 + +- check compatibility with + https://git.sr.ht/~sircmpwn/scdoc - check features of the Slackware man.conf(5) format Carsten Kunze Wed, 11 Mar 2015 17:57:24 +0100 Modified: stable/12/contrib/mandoc/arch.c ============================================================================== --- stable/12/contrib/mandoc/arch.c Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/arch.c Thu Aug 22 11:32:03 2019 (r351390) @@ -1,4 +1,4 @@ -/* $Id: arch.c,v 1.14 2019/03/04 13:01:57 schwarze Exp $ */ +/* $Id: arch.c,v 1.15 2019/05/21 07:52:00 schwarze Exp $ */ /* * Copyright (c) 2017, 2019 Ingo Schwarze * @@ -26,7 +26,7 @@ arch_valid(const char *arch, enum mandoc_os os) const char *openbsd_arch[] = { "alpha", "amd64", "arm64", "armv7", "hppa", "i386", "landisk", "loongson", "luna88k", "macppc", "mips64", - "octeon", "sgi", "socppc", "sparc64", NULL + "octeon", "sgi", "sparc64", NULL }; const char *netbsd_arch[] = { "acorn26", "acorn32", "algor", "alpha", "amiga", Modified: stable/12/contrib/mandoc/cgi.c ============================================================================== --- stable/12/contrib/mandoc/cgi.c Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/cgi.c Thu Aug 22 11:32:03 2019 (r351390) @@ -1,4 +1,4 @@ -/* $Id: cgi.c,v 1.166 2019/03/06 12:32:41 schwarze Exp $ */ +/* $Id: cgi.c,v 1.167 2019/07/10 12:49:20 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons * Copyright (c) 2014, 2015, 2016, 2017, 2018 Ingo Schwarze @@ -869,7 +869,6 @@ resp_format(const struct req *req, const char *file) memset(&conf, 0, sizeof(conf)); conf.fragment = 1; conf.style = mandoc_strdup(CSS_DIR "/mandoc.css"); - conf.toc = 1; usepath = strcmp(req->q.manpath, req->p[0]); mandoc_asprintf(&conf.man, "/%s%s%s%s%%N.%%S", scriptname, *scriptname == '\0' ? "" : "/", Modified: stable/12/contrib/mandoc/configure ============================================================================== --- stable/12/contrib/mandoc/configure Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/configure Thu Aug 22 11:32:03 2019 (r351390) @@ -1,6 +1,6 @@ #!/bin/sh # -# $Id: configure,v 1.70 2019/03/06 16:04:31 schwarze Exp $ +# $Id: configure,v 1.71 2019/07/01 22:56:24 schwarze Exp $ # # Copyright (c) 2014-2019 Ingo Schwarze # @@ -529,7 +529,7 @@ fi echo "extern char *mkdtemp(char *);" if [ ${HAVE_PROGNAME} -eq 0 ]; then - echo "extern const char *getprogname(void);" + echo "extern const char *getprogname(void);" echo "extern void setprogname(const char *);" fi Modified: stable/12/contrib/mandoc/dbm.c ============================================================================== --- stable/12/contrib/mandoc/dbm.c Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/dbm.c Thu Aug 22 11:32:03 2019 (r351390) @@ -1,4 +1,4 @@ -/* $Id: dbm.c,v 1.6 2018/11/19 19:22:07 schwarze Exp $ */ +/* $Id: dbm.c,v 1.7 2019/07/01 22:56:24 schwarze Exp $ */ /* * Copyright (c) 2016 Ingo Schwarze * @@ -233,7 +233,7 @@ static struct dbm_res page_bytitle(enum iter arg_iter, const struct dbm_match *arg_match) { static const struct dbm_match *match; - static const char *cp; + static const char *cp; static int32_t ip; struct dbm_res res = {-1, 0}; @@ -315,7 +315,7 @@ page_byarch(const struct dbm_match *arg_match) static const struct dbm_match *match; struct dbm_res res = {-1, 0}; static int32_t ip; - const char *cp; + const char *cp; /* Initialize for a new iteration. */ Modified: stable/12/contrib/mandoc/dbm_map.h ============================================================================== --- stable/12/contrib/mandoc/dbm_map.h Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/dbm_map.h Thu Aug 22 11:32:03 2019 (r351390) @@ -1,4 +1,4 @@ -/* $Id: dbm_map.h,v 1.1 2016/07/19 21:31:55 schwarze Exp $ */ +/* $Id: dbm_map.h,v 1.2 2019/07/01 22:56:24 schwarze Exp $ */ /* * Copyright (c) 2016 Ingo Schwarze * @@ -14,7 +14,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * Private interface for low-level routines for the map-based version + * Private interface for low-level routines for the map-based version * of the mandoc database, for read-only access. * To be used by dbm*.c only. */ Modified: stable/12/contrib/mandoc/eqn.7 ============================================================================== --- stable/12/contrib/mandoc/eqn.7 Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/eqn.7 Thu Aug 22 11:32:03 2019 (r351390) @@ -1,4 +1,4 @@ -.\" $Id: eqn.7,v 1.37 2017/09/04 10:35:27 schwarze Exp $ +.\" $Id: eqn.7,v 1.38 2019/04/23 17:57:49 schwarze Exp $ .\" .\" Copyright (c) 2011 Kristaps Dzonsons .\" Copyright (c) 2014 Ingo Schwarze @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: September 4 2017 $ +.Dd $Mdocdate: April 23 2019 $ .Dt EQN 7 .Os .Sh NAME @@ -470,7 +470,7 @@ commands are also ignored. .%T System for Typesetting Mathematics .%J Communications of the ACM .%V 18 -.%P 151\(en157 +.%P pp. 151\(en157 .%D March, 1975 .Re .Rs Modified: stable/12/contrib/mandoc/eqn_html.c ============================================================================== --- stable/12/contrib/mandoc/eqn_html.c Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/eqn_html.c Thu Aug 22 11:32:03 2019 (r351390) @@ -1,4 +1,4 @@ -/* $Id: eqn_html.c,v 1.18 2018/12/13 05:23:38 schwarze Exp $ */ +/* $Id: eqn_html.c,v 1.19 2019/03/17 18:21:45 schwarze Exp $ */ /* * Copyright (c) 2011, 2014 Kristaps Dzonsons * Copyright (c) 2017 Ingo Schwarze @@ -26,6 +26,7 @@ #include #include "mandoc.h" +#include "roff.h" #include "eqn.h" #include "out.h" #include "html.h" Modified: stable/12/contrib/mandoc/html.c ============================================================================== --- stable/12/contrib/mandoc/html.c Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/html.c Thu Aug 22 11:32:03 2019 (r351390) @@ -1,4 +1,4 @@ -/* $Id: html.c,v 1.254 2019/03/03 13:02:11 schwarze Exp $ */ +/* $Id: html.c,v 1.255 2019/04/30 15:53:00 schwarze Exp $ */ /* * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons * Copyright (c) 2011-2015, 2017-2019 Ingo Schwarze @@ -120,6 +120,7 @@ static void print_ctag(struct html *, struct tag *); static int print_escape(struct html *, char); static int print_encode(struct html *, const char *, const char *, int); static void print_href(struct html *, const char *, const char *, int); +static void print_metaf(struct html *); void * @@ -222,55 +223,49 @@ print_gen_head(struct html *h) print_tagq(h, t); } -void -print_metaf(struct html *h, enum mandoc_esc deco) +int +html_setfont(struct html *h, enum mandoc_esc font) { - enum htmlfont font; - - switch (deco) { + switch (font) { case ESCAPE_FONTPREV: font = h->metal; break; case ESCAPE_FONTITALIC: - font = HTMLFONT_ITALIC; - break; case ESCAPE_FONTBOLD: - font = HTMLFONT_BOLD; - break; case ESCAPE_FONTBI: - font = HTMLFONT_BI; - break; case ESCAPE_FONTCW: - font = HTMLFONT_CW; + case ESCAPE_FONTROMAN: break; case ESCAPE_FONT: - case ESCAPE_FONTROMAN: - font = HTMLFONT_NONE; + font = ESCAPE_FONTROMAN; break; default: - return; + return 0; } + h->metal = h->metac; + h->metac = font; + return 1; +} +static void +print_metaf(struct html *h) +{ if (h->metaf) { print_tagq(h, h->metaf); h->metaf = NULL; } - - h->metal = h->metac; - h->metac = font; - - switch (font) { - case HTMLFONT_ITALIC: + switch (h->metac) { + case ESCAPE_FONTITALIC: h->metaf = print_otag(h, TAG_I, ""); break; - case HTMLFONT_BOLD: + case ESCAPE_FONTBOLD: h->metaf = print_otag(h, TAG_B, ""); break; - case HTMLFONT_BI: + case ESCAPE_FONTBI: h->metaf = print_otag(h, TAG_B, ""); print_otag(h, TAG_I, ""); break; - case HTMLFONT_CW: + case ESCAPE_FONTCW: h->metaf = print_otag(h, TAG_SPAN, "c", "Li"); break; default: @@ -479,7 +474,8 @@ print_encode(struct html *h, const char *p, const char case ESCAPE_FONTROMAN: if (0 == norecurse) { h->flags |= HTML_NOSPACE; - print_metaf(h, esc); + if (html_setfont(h, esc)) + print_metaf(h); h->flags &= ~HTML_NOSPACE; } continue; @@ -806,27 +802,9 @@ print_text(struct html *h, const char *word) print_word(h, " "); } - assert(NULL == h->metaf); - switch (h->metac) { - case HTMLFONT_ITALIC: - h->metaf = print_otag(h, TAG_I, ""); - break; - case HTMLFONT_BOLD: - h->metaf = print_otag(h, TAG_B, ""); - break; - case HTMLFONT_BI: - h->metaf = print_otag(h, TAG_B, ""); - print_otag(h, TAG_I, ""); - break; - case HTMLFONT_CW: - h->metaf = print_otag(h, TAG_SPAN, "c", "Li"); - break; - default: - print_indent(h); - break; - } - - assert(word); + assert(h->metaf == NULL); + print_metaf(h); + print_indent(h); if ( ! print_encode(h, word, NULL, 0)) { if ( ! (h->flags & HTML_NONOSPACE)) h->flags &= ~HTML_NOSPACE; @@ -834,7 +812,7 @@ print_text(struct html *h, const char *word) } else h->flags |= HTML_NOSPACE | HTML_NONEWLINE; - if (h->metaf) { + if (h->metaf != NULL) { print_tagq(h, h->metaf); h->metaf = NULL; } Modified: stable/12/contrib/mandoc/html.h ============================================================================== --- stable/12/contrib/mandoc/html.h Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/html.h Thu Aug 22 11:32:03 2019 (r351390) @@ -1,4 +1,4 @@ -/* $Id: html.h,v 1.102 2019/03/01 10:57:18 schwarze Exp $ */ +/* $Id: html.h,v 1.103 2019/04/30 15:53:00 schwarze Exp $ */ /* * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons * Copyright (c) 2017, 2018, 2019 Ingo Schwarze @@ -69,15 +69,6 @@ enum htmltag { TAG_MAX }; -enum htmlfont { - HTMLFONT_NONE = 0, - HTMLFONT_BOLD, - HTMLFONT_ITALIC, - HTMLFONT_BI, - HTMLFONT_CW, - HTMLFONT_MAX -}; - struct tag { struct tag *next; int refcnt; @@ -111,8 +102,8 @@ struct html { char *base_includes; /* base for include href */ char *style; /* style-sheet URI */ struct tag *metaf; /* current open font scope */ - enum htmlfont metal; /* last used font */ - enum htmlfont metac; /* current font mode */ + enum mandoc_esc metal; /* last used font */ + enum mandoc_esc metac; /* current font mode */ int oflags; /* output options */ #define HTML_FRAGMENT (1 << 0) /* don't emit HTML/HEAD/BODY */ #define HTML_TOC (1 << 1) /* emit a table of contents */ @@ -128,7 +119,6 @@ void roff_html_pre(struct html *, const struct roff void print_gen_comment(struct html *, struct roff_node *); void print_gen_decls(struct html *); void print_gen_head(struct html *); -void print_metaf(struct html *, enum mandoc_esc); struct tag *print_otag(struct html *, enum htmltag, const char *, ...); void print_tagq(struct html *, const struct tag *); void print_stagq(struct html *, const struct tag *); @@ -141,3 +131,4 @@ void print_endline(struct html *); void html_close_paragraph(struct html *); enum roff_tok html_fillmode(struct html *, enum roff_tok); char *html_make_id(const struct roff_node *, int); +int html_setfont(struct html *, enum mandoc_esc); Modified: stable/12/contrib/mandoc/lib.in ============================================================================== --- stable/12/contrib/mandoc/lib.in Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/lib.in Thu Aug 22 11:32:03 2019 (r351390) @@ -1,4 +1,4 @@ -/* $Id: lib.in,v 1.21 2019/03/04 17:35:21 schwarze Exp $ */ +/* $Id: lib.in,v 1.22 2019/07/01 22:56:24 schwarze Exp $ */ /* * Copyright (c) 2009 Kristaps Dzonsons * Copyright (c) 2009, 2012 Joerg Sonnenberger @@ -43,7 +43,7 @@ LINE("libcipher", "FreeSec Crypt Library (libcipher, \ LINE("libcompat", "Compatibility Library (libcompat, \\-lcompat)") LINE("libcrypt", "Crypt Library (libcrypt, \\-lcrypt)") LINE("libcurses", "Curses Library (libcurses, \\-lcurses)") -LINE("libcuse", "Userland Character Device Library (libcuse, \\-lcuse)") +LINE("libcuse", "Userland Character Device Library (libcuse, \\-lcuse)") LINE("libdevattr", "Device attribute and event library (libdevattr, \\-ldevattr)") LINE("libdevctl", "Device Control Library (libdevctl, \\-ldevctl)") LINE("libdevinfo", "Device and Resource Information Utility Library (libdevinfo, \\-ldevinfo)") Modified: stable/12/contrib/mandoc/main.c ============================================================================== --- stable/12/contrib/mandoc/main.c Thu Aug 22 10:21:07 2019 (r351389) +++ stable/12/contrib/mandoc/main.c Thu Aug 22 11:32:03 2019 (r351390) @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.322 2019/03/06 10:18:58 schwarze Exp $ */ +/* $Id: main.c,v 1.332 2019/07/19 20:27:25 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010-2012, 2014-2019 Ingo Schwarze @@ -21,6 +21,7 @@ #include #include #include /* MACHINE */ +#include #include #include @@ -97,13 +98,10 @@ static int fs_lookup(const struct manpaths *, static int fs_search(const struct mansearch *, const struct manpaths *, int, char**, struct manpage **, size_t *); -static int koptions(int *, char *); -static void moptions(int *, char *); static void outdata_alloc(struct curparse *); static void parse(struct curparse *, int, const char *); -static void passthrough(const char *, int, int); +static void passthrough(int, int); static pid_t spawn_pager(struct tag_files *); -static int toptions(struct curparse *, char *); static void usage(enum argmode) __attribute__((__noreturn__)); static int woptions(struct curparse *, char *); @@ -125,7 +123,7 @@ main(int argc, char *argv[]) char *conf_file, *defpaths, *auxpaths; char *oarg, *tagarg; unsigned char *uc; - size_t i, sz; + size_t i, sz, ssz; int prio, best_prio; enum outmode outmode; int fd, startdir; @@ -154,10 +152,11 @@ main(int argc, char *argv[]) return mandocdb(argc, argv); #if HAVE_PLEDGE - if (pledge("stdio rpath tmppath tty proc exec", NULL) == -1) - err((int)MANDOCLEVEL_SYSERR, "pledge"); + if (pledge("stdio rpath tmppath tty proc exec", NULL) == -1) { + mandoc_msg(MANDOCERR_PLEDGE, 0, 0, "%s", strerror(errno)); + return mandoc_msg_getrc(); + } #endif - #if HAVE_SANDBOX_INIT if (sandbox_init(kSBXProfileNoInternet, SANDBOX_NAMED, NULL) == -1) errx((int)MANDOCLEVEL_SYSERR, "sandbox_init"); @@ -221,19 +220,29 @@ main(int argc, char *argv[]) outmode = OUTMODE_ALL; break; case 'I': - if (strncmp(optarg, "os=", 3)) { - warnx("-I %s: Bad argument", optarg); - return (int)MANDOCLEVEL_BADARG; + if (strncmp(optarg, "os=", 3) != 0) { + mandoc_msg(MANDOCERR_BADARG_BAD, 0, 0, + "-I %s", optarg); + return mandoc_msg_getrc(); } if (curp.os_s != NULL) { - warnx("-I %s: Duplicate argument", optarg); - return (int)MANDOCLEVEL_BADARG; + mandoc_msg(MANDOCERR_BADARG_DUPE, 0, 0, + "-I %s", optarg); + return mandoc_msg_getrc(); } curp.os_s = mandoc_strdup(optarg + 3); break; case 'K': - if ( ! koptions(&options, optarg)) - return (int)MANDOCLEVEL_BADARG; + options &= ~(MPARSE_UTF8 | MPARSE_LATIN1); + if (strcmp(optarg, "utf-8") == 0) + options |= MPARSE_UTF8; + else if (strcmp(optarg, "iso-8859-1") == 0) + options |= MPARSE_LATIN1; + else if (strcmp(optarg, "us-ascii") != 0) { + mandoc_msg(MANDOCERR_BADARG_BAD, 0, 0, + "-K %s", optarg); + return mandoc_msg_getrc(); + } break; case 'k': search.argmode = ARG_EXPR; @@ -264,12 +273,37 @@ main(int argc, char *argv[]) search.sec = optarg; break; case 'T': - if ( ! toptions(&curp, optarg)) - return (int)MANDOCLEVEL_BADARG; + if (strcmp(optarg, "ascii") == 0) + curp.outtype = OUTT_ASCII; + else if (strcmp(optarg, "lint") == 0) { + curp.outtype = OUTT_LINT; + mandoc_msg_setoutfile(stdout); + mandoc_msg_setmin(MANDOCERR_BASE); + } else if (strcmp(optarg, "tree") == 0) + curp.outtype = OUTT_TREE; + else if (strcmp(optarg, "man") == 0) + curp.outtype = OUTT_MAN; + else if (strcmp(optarg, "html") == 0) + curp.outtype = OUTT_HTML; + else if (strcmp(optarg, "markdown") == 0) + curp.outtype = OUTT_MARKDOWN; + else if (strcmp(optarg, "utf8") == 0) + curp.outtype = OUTT_UTF8; + else if (strcmp(optarg, "locale") == 0) + curp.outtype = OUTT_LOCALE; + else if (strcmp(optarg, "ps") == 0) + curp.outtype = OUTT_PS; + else if (strcmp(optarg, "pdf") == 0) + curp.outtype = OUTT_PDF; + else { + mandoc_msg(MANDOCERR_BADARG_BAD, 0, 0, + "-T %s", optarg); + return mandoc_msg_getrc(); + } break; case 'W': - if ( ! woptions(&curp, optarg)) - return (int)MANDOCLEVEL_BADARG; + if (woptions(&curp, optarg) == -1) + return mandoc_msg_getrc(); break; case 'w': outmode = OUTMODE_FLN; @@ -305,12 +339,9 @@ main(int argc, char *argv[]) search.outkey = oarg; else { while (oarg != NULL) { - thisarg = oarg; if (manconf_output(&conf.output, - strsep(&oarg, ","), 0) == 0) - continue; - warnx("-O %s: Bad argument", thisarg); - return (int)MANDOCLEVEL_BADARG; + strsep(&oarg, ","), 0) == -1) + return mandoc_msg_getrc(); } } } @@ -334,9 +365,13 @@ main(int argc, char *argv[]) } #if HAVE_PLEDGE - if (!use_pager) - if (pledge("stdio rpath", NULL) == -1) - err((int)MANDOCLEVEL_SYSERR, "pledge"); + if (use_pager == 0) { + if (pledge("stdio rpath", NULL) == -1) { + mandoc_msg(MANDOCERR_PLEDGE, 0, 0, + "%s", strerror(errno)); + return mandoc_msg_getrc(); + } + } #endif /* Parse arguments. */ @@ -361,7 +396,7 @@ main(int argc, char *argv[]) } else if (argc > 1 && ((uc = (unsigned char *)argv[0]) != NULL) && ((isdigit(uc[0]) && (uc[1] == '\0' || - (isalpha(uc[1]) && uc[2] == '\0'))) || + isalpha(uc[1]))) || (uc[0] == 'n' && uc[1] == '\0'))) { search.sec = (char *)uc; argv++; @@ -426,7 +461,7 @@ main(int argc, char *argv[]) usage(search.argmode); if (sz == 0 && search.argmode == ARG_NAME) - fs_search(&search, &conf.manpath, + (void)fs_search(&search, &conf.manpath, argc, argv, &res, &sz); if (search.argmode == ARG_NAME) { @@ -434,7 +469,10 @@ main(int argc, char *argv[]) if (strchr(argv[c], '/') == NULL) continue; if (access(argv[c], R_OK) == -1) { - warn("%s", argv[c]); + mandoc_msg_setinfilename(argv[c]); + mandoc_msg(MANDOCERR_BADARG_BAD, + 0, 0, "%s", strerror(errno)); + mandoc_msg_setinfilename(NULL); continue; } res = mandoc_reallocarray(res, @@ -442,6 +480,7 @@ main(int argc, char *argv[]) res[sz].file = mandoc_strdup(argv[c]); res[sz].names = NULL; res[sz].output = NULL; + res[sz].bits = 0; res[sz].ipath = SIZE_MAX; res[sz].sec = 10; res[sz].form = FORM_SRC; @@ -464,7 +503,7 @@ main(int argc, char *argv[]) if (outmode == OUTMODE_ONE) { argc = 1; - best_prio = 20; + best_prio = 40; } else if (outmode == OUTMODE_ALL) argc = (int)sz; @@ -483,10 +522,21 @@ main(int argc, char *argv[]) sec = res[i].file; sec += strcspn(sec, "123456789"); if (sec[0] == '\0') - continue; + continue; /* No section at all. */ prio = sec_prios[sec[0] - '1']; - if (sec[1] != '/') - prio += 10; + if (search.sec != NULL) { + ssz = strlen(search.sec); + if (strncmp(sec, search.sec, ssz) == 0) + sec += ssz; + } else + sec++; /* Prefer without suffix. */ + if (*sec != '/') + prio += 10; /* Wrong dir name. */ + if (search.sec != NULL && + (strlen(sec) <= ssz + 3 || + strcmp(sec + strlen(sec) - ssz, + search.sec) != 0)) + prio += 20; /* Wrong file ext. */ if (prio >= best_prio) continue; best_prio = prio; @@ -508,16 +558,26 @@ main(int argc, char *argv[]) #if HAVE_PLEDGE if (use_pager) { - if (pledge("stdio rpath tmppath tty proc exec", NULL) == -1) - err((int)MANDOCLEVEL_SYSERR, "pledge"); + if (pledge("stdio rpath tmppath tty proc exec", NULL) == -1) { + mandoc_msg(MANDOCERR_PLEDGE, 0, 0, + "%s", strerror(errno)); + return mandoc_msg_getrc(); + } } else { - if (pledge("stdio rpath", NULL) == -1) - err((int)MANDOCLEVEL_SYSERR, "pledge"); + if (pledge("stdio rpath", NULL) == -1) { + mandoc_msg(MANDOCERR_PLEDGE, 0, 0, + "%s", strerror(errno)); + return mandoc_msg_getrc(); + } } #endif - if (search.argmode == ARG_FILE) - moptions(&options, auxpaths); + if (search.argmode == ARG_FILE && auxpaths != NULL) { + if (strcmp(auxpaths, "doc") == 0) + options |= MPARSE_MDOC; + else if (strcmp(auxpaths, "an") == 0) + options |= MPARSE_MAN; + } mchars_alloc(); curp.mp = mparse_alloc(options, curp.os_e, curp.os_s); @@ -525,7 +585,8 @@ main(int argc, char *argv[]) if (argc < 1) { if (use_pager) { tag_files = tag_init(); - tag_files->tagname = conf.output.tag; + if (tag_files != NULL) + tag_files->tagname = conf.output.tag; } thisarg = ""; mandoc_msg_setinfilename(thisarg); @@ -558,30 +619,31 @@ main(int argc, char *argv[]) } else thisarg = *argv; + mandoc_msg_setinfilename(thisarg); fd = mparse_open(curp.mp, thisarg); if (fd != -1) { if (use_pager) { use_pager = 0; tag_files = tag_init(); - tag_files->tagname = conf.output.tag; + if (tag_files != NULL) + tag_files->tagname = conf.output.tag; } - mandoc_msg_setinfilename(thisarg); if (resp == NULL || resp->form == FORM_SRC) parse(&curp, fd, thisarg); else - passthrough(resp->file, fd, - conf.output.synopsisonly); - mandoc_msg_setinfilename(NULL); + passthrough(fd, conf.output.synopsisonly); if (ferror(stdout)) { if (tag_files != NULL) { - warn("%s", tag_files->ofn); + mandoc_msg(MANDOCERR_WRITE, 0, 0, + "%s: %s", tag_files->ofn, + strerror(errno)); tag_unlink(); tag_files = NULL; } else - warn("stdout"); - mandoc_msg_setrc(MANDOCLEVEL_SYSERR); + mandoc_msg(MANDOCERR_WRITE, 0, 0, + "%s", strerror(errno)); break; } @@ -591,9 +653,11 @@ main(int argc, char *argv[]) terminal_sepline(curp.outdata); } } else - mandoc_msg(MANDOCERR_FILE, 0, 0, - "%s: %s", thisarg, strerror(errno)); + mandoc_msg(resp == NULL ? MANDOCERR_BADARG_BAD : + MANDOCERR_OPEN, 0, 0, "%s", strerror(errno)); + mandoc_msg_setinfilename(NULL); + if (curp.wstop && mandoc_msg_getrc() != MANDOCLEVEL_OK) break; @@ -684,8 +748,8 @@ out: continue; if (pid == -1) { - warn("wait"); - mandoc_msg_setrc(MANDOCLEVEL_SYSERR); + mandoc_msg(MANDOCERR_WAIT, 0, 0, + "%s", strerror(errno)); break; } if (!WIFSTOPPED(status)) @@ -694,14 +758,16 @@ out: signum = WSTOPSIG(status); } tag_unlink(); - } + } else if (curp.outtype != OUTT_LINT && + (search.argmode == ARG_FILE || sz > 0)) + mandoc_msg_summary(); + return (int)mandoc_msg_getrc(); } static void usage(enum argmode argmode) { - switch (argmode) { case ARG_FILE: fputs("usage: mandoc [-ac] [-I os=name] " @@ -732,6 +798,7 @@ fs_lookup(const struct manpaths *paths, size_t ipath, const char *sec, const char *arch, const char *name, struct manpage **res, size_t *ressz) { + struct stat sb; glob_t globinfo; struct manpage *page; char *file; @@ -741,13 +808,13 @@ fs_lookup(const struct manpaths *paths, size_t ipath, form = FORM_SRC; mandoc_asprintf(&file, "%s/man%s/%s.%s", paths->paths[ipath], sec, name, sec); - if (access(file, R_OK) != -1) + if (stat(file, &sb) != -1) goto found; free(file); mandoc_asprintf(&file, "%s/cat%s/%s.0", paths->paths[ipath], sec, name); - if (access(file, R_OK) != -1) { + if (stat(file, &sb) != -1) { form = FORM_CAT; goto found; } @@ -756,7 +823,7 @@ fs_lookup(const struct manpaths *paths, size_t ipath, if (arch != NULL) { mandoc_asprintf(&file, "%s/man%s/%s/%s.%s", paths->paths[ipath], sec, arch, name, sec); - if (access(file, R_OK) != -1) + if (stat(file, &sb) != -1) goto found; free(file); } @@ -765,37 +832,42 @@ fs_lookup(const struct manpaths *paths, size_t ipath, paths->paths[ipath], sec, name); globres = glob(file, 0, NULL, &globinfo); if (globres != 0 && globres != GLOB_NOMATCH) - warn("%s: glob", file); + mandoc_msg(MANDOCERR_GLOB, 0, 0, + "%s: %s", file, strerror(errno)); free(file); if (globres == 0) file = mandoc_strdup(*globinfo.gl_pathv); globfree(&globinfo); - if (globres == 0) - goto found; + if (globres == 0) { + if (stat(file, &sb) != -1) + goto found; + free(file); + } if (res != NULL || ipath + 1 != paths->sz) - return 0; + return -1; mandoc_asprintf(&file, "%s.%s", name, sec); - globres = access(file, R_OK); + globres = stat(file, &sb); free(file); - return globres != -1; + return globres; found: warnx("outdated mandoc.db lacks %s(%s) entry, run %s %s", name, sec, BINM_MAKEWHATIS, paths->paths[ipath]); if (res == NULL) { free(file); - return 1; + return 0; } - *res = mandoc_reallocarray(*res, ++*ressz, sizeof(struct manpage)); + *res = mandoc_reallocarray(*res, ++*ressz, sizeof(**res)); page = *res + (*ressz - 1); page->file = file; page->names = NULL; page->output = NULL; + page->bits = NAME_FILE & NAME_MASK; page->ipath = ipath; page->sec = (*sec >= '1' && *sec <= '9') ? *sec - '1' + 1 : 10; page->form = form; - return 1; + return 0; } static int @@ -817,14 +889,14 @@ fs_search(const struct mansearch *cfg, const struct ma for (ipath = 0; ipath < paths->sz; ipath++) { if (cfg->sec != NULL) { if (fs_lookup(paths, ipath, cfg->sec, - cfg->arch, *argv, res, ressz) && + cfg->arch, *argv, res, ressz) != -1 && cfg->firstmatch) - return 1; + return 0; } else for (isec = 0; isec < nsec; isec++) if (fs_lookup(paths, ipath, sections[isec], - cfg->arch, *argv, res, ressz) && + cfg->arch, *argv, res, ressz) != -1 && cfg->firstmatch) - return 1; + return 0; } if (res != NULL && *ressz == lastsz && strchr(*argv, '/') == NULL) { @@ -843,7 +915,7 @@ fs_search(const struct mansearch *cfg, const struct ma argv++; argc--; } - return 0; + return -1; } static void @@ -950,7 +1022,7 @@ check_xr(void) search.firstmatch = 1; if (mansearch(&search, &paths, 1, &xr->name, NULL, &sz)) continue; - if (fs_search(&search, &paths, 1, &xr->name, NULL, &sz)) + if (fs_search(&search, &paths, 1, &xr->name, NULL, &sz) != -1) continue; if (xr->count == 1) mandoc_msg(MANDOCERR_XR_BAD, xr->line, @@ -990,34 +1062,34 @@ outdata_alloc(struct curparse *curp) } static void -passthrough(const char *file, int fd, int synopsis_only) +passthrough(int fd, int synopsis_only) { const char synb[] = "S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS"; const char synr[] = "SYNOPSIS"; FILE *stream; - const char *syscall; char *line, *cp; size_t linesz; ssize_t len, written; - int print; + int lno, print; + stream = NULL; line = NULL; linesz = 0; if (fflush(stdout) == EOF) { - syscall = "fflush"; - goto fail; + mandoc_msg(MANDOCERR_FFLUSH, 0, 0, "%s", strerror(errno)); + goto done; } - if ((stream = fdopen(fd, "r")) == NULL) { close(fd); - syscall = "fdopen"; - goto fail; + mandoc_msg(MANDOCERR_FDOPEN, 0, 0, "%s", strerror(errno)); + goto done; } - print = 0; + lno = print = 0; while ((len = getline(&line, &linesz, stream)) != -1) { + lno++; cp = line; if (synopsis_only) { if (print) { @@ -1035,97 +1107,23 @@ passthrough(const char *file, int fd, int synopsis_onl } } for (; len > 0; len -= written) { - if ((written = write(STDOUT_FILENO, cp, len)) != -1) - continue; - fclose(stream); - syscall = "write"; - goto fail; + if ((written = write(STDOUT_FILENO, cp, len)) == -1) { + mandoc_msg(MANDOCERR_WRITE, 0, 0, + "%s", strerror(errno)); + goto done; + } } } + if (ferror(stream)) + mandoc_msg(MANDOCERR_GETLINE, lno, 0, "%s", strerror(errno)); - if (ferror(stream)) { - fclose(stream); - syscall = "getline"; - goto fail; - } - done: free(line); - fclose(stream); - return; - -fail: - free(line); - warn("%s: SYSERR: %s", file, syscall); - mandoc_msg_setrc(MANDOCLEVEL_SYSERR); + if (stream != NULL) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Aug 22 12:08:36 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C1794C7941; Thu, 22 Aug 2019 12:08:36 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Djx04khCz4PHG; Thu, 22 Aug 2019 12:08:36 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 843AD3E3B; Thu, 22 Aug 2019 12:08:36 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7MC8aNS097281; Thu, 22 Aug 2019 12:08:36 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MC8aFp097280; Thu, 22 Aug 2019 12:08:36 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <201908221208.x7MC8aFp097280@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Thu, 22 Aug 2019 12:08:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351391 - head/tests/sys/netpfil/pf X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: head/tests/sys/netpfil/pf X-SVN-Commit-Revision: 351391 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 12:08:36 -0000 Author: lwhsu Date: Thu Aug 22 12:08:35 2019 New Revision: 351391 URL: https://svnweb.freebsd.org/changeset/base/351391 Log: Fix path issues after r351212 This fixes sys.netpfil.pf.forward.v4 and sys.netpfil.pf.icmp.cve_2019_5598 failures in CI system. Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/netpfil/pf/forward.sh head/tests/sys/netpfil/pf/icmp.sh Modified: head/tests/sys/netpfil/pf/forward.sh ============================================================================== --- head/tests/sys/netpfil/pf/forward.sh Thu Aug 22 11:32:03 2019 (r351390) +++ head/tests/sys/netpfil/pf/forward.sh Thu Aug 22 12:08:35 2019 (r351391) @@ -36,7 +36,7 @@ v4_body() route add -net 198.51.100.0/24 192.0.2.2 # Sanity check, can we forward ICMP echo requests without pf? - atf_check -s exit:0 $(atf_get_srcdir)/pft_ping.py \ + atf_check -s exit:0 ${common_dir}/pft_ping.py \ --sendif ${epair_send}a \ --to 198.51.100.3 \ --recvif ${epair_recv}a Modified: head/tests/sys/netpfil/pf/icmp.sh ============================================================================== --- head/tests/sys/netpfil/pf/icmp.sh Thu Aug 22 11:32:03 2019 (r351390) +++ head/tests/sys/netpfil/pf/icmp.sh Thu Aug 22 12:08:35 2019 (r351391) @@ -2,6 +2,8 @@ . $(atf_get_srcdir)/utils.subr +common_dir=$(atf_get_srcdir)/../common + atf_test_case "cve_2019_5598" "cleanup" cve_2019_5598_head() { @@ -32,7 +34,8 @@ cve_2019_5598_body() "pass in proto udp to 198.51.100.3 port 53" \ "pass out proto udp to 198.51.100.3 port 53" - atf_check -s exit:0 $(atf_get_srcdir)/CVE-2019-5598.py \ + atf_check -s exit:0 env PYTHONPATH=${common_dir} \ + $(atf_get_srcdir)/CVE-2019-5598.py \ --sendif ${epair_in}a \ --recvif ${epair_out}a \ --src 192.0.2.1 \ From owner-svn-src-all@freebsd.org Thu Aug 22 12:09:35 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9BAACC79E6; Thu, 22 Aug 2019 12:09:35 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Djy73ZVkz4PQ3; Thu, 22 Aug 2019 12:09:35 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5C8FE3E3C; Thu, 22 Aug 2019 12:09:35 +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 x7MC9Zip097365; Thu, 22 Aug 2019 12:09:35 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MC9Z1o097364; Thu, 22 Aug 2019 12:09:35 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201908221209.x7MC9Z1o097364@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 22 Aug 2019 12:09:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351392 - stable/11 X-SVN-Group: stable-11 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: stable/11 X-SVN-Commit-Revision: 351392 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 12:09:35 -0000 Author: bapt Date: Thu Aug 22 12:09:34 2019 New Revision: 351392 URL: https://svnweb.freebsd.org/changeset/base/351392 Log: MFC r350351: Update mandoc to cvs snapshot 2019-07-23 This snapshot among other things includes a fix for a crash of mandoc with empty tbl reported by rea@ (his regression test has been incorporated upstream) Modified: Directory Properties: stable/11/ (props changed) From owner-svn-src-all@freebsd.org Thu Aug 22 12:14:38 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 595AAC7CBE; Thu, 22 Aug 2019 12:14:38 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Dk3y1mHRz4Ppt; Thu, 22 Aug 2019 12:14:38 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from ivaldir.etoilebsd.net (etoilebsd.net [178.32.217.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: bapt) by smtp.freebsd.org (Postfix) with ESMTPSA id 07905E94E; Thu, 22 Aug 2019 12:14:38 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: by ivaldir.etoilebsd.net (Postfix, from userid 1001) id 5929F978D5; Thu, 22 Aug 2019 14:14:36 +0200 (CEST) Date: Thu, 22 Aug 2019 14:14:36 +0200 From: Baptiste Daroussin To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r351392 - stable/11 Message-ID: <20190822121436.ossy6bfq2wazcr4k@ivaldir.net> References: <201908221209.x7MC9Z1o097364@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="x6bhevsppocrwznb" Content-Disposition: inline In-Reply-To: <201908221209.x7MC9Z1o097364@repo.freebsd.org> User-Agent: NeoMutt/20180716 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 12:14:38 -0000 --x6bhevsppocrwznb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Aug 22, 2019 at 12:09:35PM +0000, Baptiste Daroussin wrote: > Author: bapt > Date: Thu Aug 22 12:09:34 2019 > New Revision: 351392 > URL: https://svnweb.freebsd.org/changeset/base/351392 >=20 > Log: > MFC r350351: > =20 > Update mandoc to cvs snapshot 2019-07-23 > =20 > This snapshot among other things includes a fix for a crash of mandoc w= ith empty > tbl reported by rea@ (his regression test has been incorporated upstrea= m) >=20 > Modified: > Directory Properties: > stable/11/ (props changed) >=20 Interrestingly enough svn does not prevent from doing this... What I did was a svn merge of a revision which contains a directory that do= es not exists in contrib/mandoc (things are in contrib/mdocml in stable/11) resulting in no errors, allowing me to do this empty commit after that. I don't know how to fix that (if it is worth fixing). Sorry about the noise. Bapt --x6bhevsppocrwznb Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgOTj3suS2urGXVU3Y4mL3PG3PloFAl1ehykACgkQY4mL3PG3 Plqp3A/9HtkYIv1yrkrTlkp1RJrstTh/RIr/eC4iQJdYc0Q1yNMY1CPxPEB+PzLs fohVa7zEWG8xlIe/6xff5asenyPeL4f/SahH9kqiw7m2O7mANv37cY4zZk21xpwN G/3axZAY46c5cg2caeaiw7+6CUHjYc3BTNFcGNbEPJdnAAJE2TS5SYwgguTFrZT1 YHIykWu2sa5Bb0fHaaCus8ar36Zi45QPq1gBUl3utaO86+qk6o8NCpR7TeR87xEs nTVlwgrH68RcYb5EDyfQRusx/U/DUqSs8YluMY5Q8CpOSptTYJW1/mg+mfKDc26i 4lLfgttwfVLDhnPLfBX6i97Qk1LuLoRoA6YtPAPh6TM1NzGIKXFy/HV0bXtdHvEa 1GPMIvrRnxAnfGy3YpxzYlNVZdwvPrmXn2odTUSsBKJIlxf2bvk/+DvD5qB3lDyZ qk8+P/pN4s20YfofvbOtjTvpwuO/1XA+X4v5lKZFimBOswlkkWdvsQuYccAjsq3+ CqRe0hMKeEqRrMkoQ4D7De8LHBwY6TMO3ewBSMfTym5lsnoIw9KTBJ3zt0cpYT8z udrkKreJRo54avk6EYlZJ88gtDO6eQlluL4uNQoeptA3zuv49UTYehryAUUjZJDc Hii+YS0/PcIVtkIzxWBtaW57TDZLI5QIYOiPVRm4k/SIhEgAli8= =gmxa -----END PGP SIGNATURE----- --x6bhevsppocrwznb-- From owner-svn-src-all@freebsd.org Thu Aug 22 15:00:36 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F3893CABFA; Thu, 22 Aug 2019 15:00:36 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DnlS6B13z4XW4; Thu, 22 Aug 2019 15:00:36 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CF7F15D2B; Thu, 22 Aug 2019 15:00:36 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7MF0aOw097760; Thu, 22 Aug 2019 15:00:36 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MF0aHT097758; Thu, 22 Aug 2019 15:00:36 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908221500.x7MF0aHT097758@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Thu, 22 Aug 2019 15:00:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351393 - head/sbin/ping/tests X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/sbin/ping/tests X-SVN-Commit-Revision: 351393 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 15:00:37 -0000 Author: asomers Date: Thu Aug 22 15:00:36 2019 New Revision: 351393 URL: https://svnweb.freebsd.org/changeset/base/351393 Log: ping: add a basic functional test Submitted by: Ján Sučan MFC after: 2 weeks Sponsored by: Google, inc. (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21289 Added: head/sbin/ping/tests/ping_c1_s56_t1.out (contents, props changed) head/sbin/ping/tests/ping_test.sh (contents, props changed) Modified: head/sbin/ping/tests/Makefile Modified: head/sbin/ping/tests/Makefile ============================================================================== --- head/sbin/ping/tests/Makefile Thu Aug 22 12:09:34 2019 (r351392) +++ head/sbin/ping/tests/Makefile Thu Aug 22 15:00:36 2019 (r351393) @@ -5,4 +5,9 @@ WARNS?= 6 ATF_TESTS_C+= in_cksum_test SRCS.in_cksum_test= in_cksum_test.c ../utils.c +PACKAGE= tests + +ATF_TESTS_SH+= ping_test +${PACKAGE}FILES+= ping_c1_s56_t1.out + .include Added: head/sbin/ping/tests/ping_c1_s56_t1.out ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/ping/tests/ping_c1_s56_t1.out Thu Aug 22 15:00:36 2019 (r351393) @@ -0,0 +1,6 @@ +PING localhost: 56 data bytes +64 bytes from localhost: icmp_seq=0 ttl= time= ms + +--- localhost ping statistics --- +1 packets transmitted, 1 packets received, 0.0% packet loss +round-trip min/avg/max/stddev = /// ms Added: head/sbin/ping/tests/ping_test.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/ping/tests/ping_test.sh Thu Aug 22 15:00:36 2019 (r351393) @@ -0,0 +1,55 @@ +# +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright (C) 2019 Jan Sucan +# 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$ + +atf_test_case ping_c1_s56_t1 +ping_c1_s56_t1_head() { + atf_set "descr" "Stop after receiving 1 ECHO_RESPONSE packet" +} +ping_c1_s56_t1_body() { + if ! getaddrinfo -f inet localhost 1>/dev/null 2>&1; then + atf_skip "IPv4 is not configured" + fi + atf_check -s exit:0 -o save:std.out -e empty \ + ping -c 1 -s 56 -t 1 localhost + check_ping_statistics std.out $(atf_get_srcdir)/ping_c1_s56_t1.out +} + +atf_init_test_cases() { + atf_add_test_case ping_c1_s56_t1 +} + +check_ping_statistics() { + sed -e 's/0.[0-9]\{3\}//g' \ + -e 's/[1-9][0-9]*.[0-9]\{3\}//g' \ + -e 's/localhost ([0-9]\{1,3\}\(\.[0-9]\{1,3\}\)\{1,3\})/localhost/' \ + -e 's/from [0-9]\{1,3\}\(\.[0-9]\{1,3\}\)\{1,3\}/from/' \ + -e 's/ttl=[0-9][0-9]*/ttl=/' \ + "$1" >"$1".filtered + atf_check -s exit:0 diff -u "$1".filtered "$2" +} From owner-svn-src-all@freebsd.org Thu Aug 22 15:08:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 12355CB005; Thu, 22 Aug 2019 15:08:06 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Dnw56lscz4YDx; Thu, 22 Aug 2019 15:08:05 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C9AED5EE5; Thu, 22 Aug 2019 15:08:05 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7MF85cQ003713; Thu, 22 Aug 2019 15:08:05 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MF84bg003709; Thu, 22 Aug 2019 15:08:04 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908221508.x7MF84bg003709@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Thu, 22 Aug 2019 15:08:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351394 - in head: etc/mtree sbin/ping6 sbin/ping6/tests X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: in head: etc/mtree sbin/ping6 sbin/ping6/tests X-SVN-Commit-Revision: 351394 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 15:08:06 -0000 Author: asomers Date: Thu Aug 22 15:08:04 2019 New Revision: 351394 URL: https://svnweb.freebsd.org/changeset/base/351394 Log: ping6: add a basic functional test Submitted by: Ján Sučan MFC after: 2 weeks Sponsored by: Google, inc. (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21292 Added: head/sbin/ping6/tests/ head/sbin/ping6/tests/Makefile (contents, props changed) head/sbin/ping6/tests/ping6_c1_s8_X1.out (contents, props changed) head/sbin/ping6/tests/ping6_test.sh (contents, props changed) Modified: head/etc/mtree/BSD.tests.dist head/sbin/ping6/Makefile Modified: head/etc/mtree/BSD.tests.dist ============================================================================== --- head/etc/mtree/BSD.tests.dist Thu Aug 22 15:00:36 2019 (r351393) +++ head/etc/mtree/BSD.tests.dist Thu Aug 22 15:08:04 2019 (r351394) @@ -442,6 +442,8 @@ .. ping .. + ping6 + .. .. secure lib Modified: head/sbin/ping6/Makefile ============================================================================== --- head/sbin/ping6/Makefile Thu Aug 22 15:00:36 2019 (r351393) +++ head/sbin/ping6/Makefile Thu Aug 22 15:08:04 2019 (r351394) @@ -21,4 +21,7 @@ LIBADD+= cap_dns CFLAGS+=-DWITH_CASPER .endif +HAS_TESTS= +SUBDIR.${MK_TESTS}+= tests + .include Added: head/sbin/ping6/tests/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/ping6/tests/Makefile Thu Aug 22 15:08:04 2019 (r351394) @@ -0,0 +1,8 @@ +# $FreeBSD$ + +PACKAGE= tests + +ATF_TESTS_SH+= ping6_test +${PACKAGE}FILES+= ping6_c1_s8_X1.out + +.include Added: head/sbin/ping6/tests/ping6_c1_s8_X1.out ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/ping6/tests/ping6_c1_s8_X1.out Thu Aug 22 15:08:04 2019 (r351394) @@ -0,0 +1,6 @@ +PING6(56=40+8+8 bytes) ::1 --> ::1 +16 bytes from ::1, icmp_seq=0 hlim= time= ms + +--- localhost ping6 statistics --- +1 packets transmitted, 1 packets received, 0.0% packet loss +round-trip min/avg/max/std-dev = /// ms Added: head/sbin/ping6/tests/ping6_test.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/ping6/tests/ping6_test.sh Thu Aug 22 15:08:04 2019 (r351394) @@ -0,0 +1,53 @@ +# +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright (C) 2019 Jan Sucan +# 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$ + +atf_test_case ping6_c1_s8_X1 +ping6_c1_s8_X1_head() { + atf_set "descr" "Stop after receiving 1 ECHO_RESPONSE packet" +} +ping6_c1_s8_X1_body() { + if ! getaddrinfo -f inet6 localhost 1>/dev/null 2>&1; then + atf_skip "IPv6 is not configured" + fi + atf_check -s exit:0 -o save:std.out -e empty \ + ping6 -c 1 -s 8 -X 1 localhost + check_ping_statistics std.out $(atf_get_srcdir)/ping6_c1_s8_X1.out +} + +atf_init_test_cases() { + atf_add_test_case ping6_c1_s8_X1 +} + +check_ping_statistics() { + sed -e 's/0.[0-9]\{3\}//g' \ + -e 's/[1-9][0-9]*.[0-9]\{3\}//g' \ + -e 's/hlim=[0-9][0-9]*/hlim=/' \ + "$1" >"$1".filtered + atf_check -s exit:0 diff -u "$1".filtered "$2" +} From owner-svn-src-all@freebsd.org Thu Aug 22 16:06:53 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3597FCBDD8; Thu, 22 Aug 2019 16:06:53 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DqCx0Ph4z4bR6; Thu, 22 Aug 2019 16:06:53 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 04A4B69B6; Thu, 22 Aug 2019 16:06:53 +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 x7MG6qgh039057; Thu, 22 Aug 2019 16:06:52 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MG6qcQ039056; Thu, 22 Aug 2019 16:06:52 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908221606.x7MG6qcQ039056@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 22 Aug 2019 16:06:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351395 - head/sys/fs/msdosfs X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/sys/fs/msdosfs X-SVN-Commit-Revision: 351395 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 16:06:53 -0000 Author: emaste Date: Thu Aug 22 16:06:52 2019 New Revision: 351395 URL: https://svnweb.freebsd.org/changeset/base/351395 Log: msdosfs_fat: reduce diffs with NetBSD and makefs Use pointer arithmetic (as now done in makefs, and in NetBSD) instead of taking the address of array element. No functional change, but this makes it easier to compare different versions of this file. Reviewed by: kib MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21365 Modified: head/sys/fs/msdosfs/msdosfs_fat.c Modified: head/sys/fs/msdosfs/msdosfs_fat.c ============================================================================== --- head/sys/fs/msdosfs/msdosfs_fat.c Thu Aug 22 15:08:04 2019 (r351394) +++ head/sys/fs/msdosfs/msdosfs_fat.c Thu Aug 22 16:06:52 2019 (r351395) @@ -214,9 +214,9 @@ pcbmap(struct denode *dep, u_long findcn, daddr_t *bnp return (EIO); } if (FAT32(pmp)) - cn = getulong(&bp->b_data[bo]); + cn = getulong(bp->b_data + bo); else - cn = getushort(&bp->b_data[bo]); + cn = getushort(bp->b_data + bo); if (FAT12(pmp) && (prevcn & 1)) cn >>= 4; cn &= pmp->pm_fatmask; @@ -510,9 +510,9 @@ fatentry(int function, struct msdosfsmount *pmp, u_lon if (function & FAT_GET) { if (FAT32(pmp)) - readcn = getulong(&bp->b_data[bo]); + readcn = getulong(bp->b_data + bo); else - readcn = getushort(&bp->b_data[bo]); + readcn = getushort(bp->b_data + bo); if (FAT12(pmp) & (cn & 1)) readcn >>= 4; readcn &= pmp->pm_fatmask; @@ -524,7 +524,7 @@ fatentry(int function, struct msdosfsmount *pmp, u_lon if (function & FAT_SET) { switch (pmp->pm_fatmask) { case FAT12_MASK: - readcn = getushort(&bp->b_data[bo]); + readcn = getushort(bp->b_data + bo); if (cn & 1) { readcn &= 0x000f; readcn |= newcontents << 4; @@ -532,20 +532,20 @@ fatentry(int function, struct msdosfsmount *pmp, u_lon readcn &= 0xf000; readcn |= newcontents & 0xfff; } - putushort(&bp->b_data[bo], readcn); + putushort(bp->b_data + bo, readcn); break; case FAT16_MASK: - putushort(&bp->b_data[bo], newcontents); + putushort(bp->b_data + bo, newcontents); break; case FAT32_MASK: /* * According to spec we have to retain the * high order bits of the FAT entry. */ - readcn = getulong(&bp->b_data[bo]); + readcn = getulong(bp->b_data + bo); readcn &= ~FAT32_MASK; readcn |= newcontents & FAT32_MASK; - putulong(&bp->b_data[bo], readcn); + putulong(bp->b_data + bo, readcn); break; } updatefats(pmp, bp, bn); @@ -595,7 +595,7 @@ fatchain(struct msdosfsmount *pmp, u_long start, u_lon newc = --count > 0 ? start : fillwith; switch (pmp->pm_fatmask) { case FAT12_MASK: - readcn = getushort(&bp->b_data[bo]); + readcn = getushort(bp->b_data + bo); if (start & 1) { readcn &= 0xf000; readcn |= newc & 0xfff; @@ -603,20 +603,20 @@ fatchain(struct msdosfsmount *pmp, u_long start, u_lon readcn &= 0x000f; readcn |= newc << 4; } - putushort(&bp->b_data[bo], readcn); + putushort(bp->b_data + bo, readcn); bo++; if (!(start & 1)) bo++; break; case FAT16_MASK: - putushort(&bp->b_data[bo], newc); + putushort(bp->b_data + bo, newc); bo += 2; break; case FAT32_MASK: - readcn = getulong(&bp->b_data[bo]); + readcn = getulong(bp->b_data + bo); readcn &= ~pmp->pm_fatmask; readcn |= newc & pmp->pm_fatmask; - putulong(&bp->b_data[bo], readcn); + putulong(bp->b_data + bo, readcn); bo += 4; break; } @@ -852,7 +852,7 @@ freeclusterchain(struct msdosfsmount *pmp, u_long clus usemap_free(pmp, cluster); switch (pmp->pm_fatmask) { case FAT12_MASK: - readcn = getushort(&bp->b_data[bo]); + readcn = getushort(bp->b_data + bo); if (cluster & 1) { cluster = readcn >> 4; readcn &= 0x000f; @@ -862,15 +862,15 @@ freeclusterchain(struct msdosfsmount *pmp, u_long clus readcn &= 0xf000; readcn |= MSDOSFSFREE & 0xfff; } - putushort(&bp->b_data[bo], readcn); + putushort(bp->b_data + bo, readcn); break; case FAT16_MASK: - cluster = getushort(&bp->b_data[bo]); - putushort(&bp->b_data[bo], MSDOSFSFREE); + cluster = getushort(bp->b_data + bo); + putushort(bp->b_data + bo, MSDOSFSFREE); break; case FAT32_MASK: - cluster = getulong(&bp->b_data[bo]); - putulong(&bp->b_data[bo], + cluster = getulong(bp->b_data + bo); + putulong(bp->b_data + bo, (MSDOSFSFREE & FAT32_MASK) | (cluster & ~FAT32_MASK)); break; } @@ -924,9 +924,9 @@ fillinusemap(struct msdosfsmount *pmp) return (error); } if (FAT32(pmp)) - readcn = getulong(&bp->b_data[bo]); + readcn = getulong(bp->b_data + bo); else - readcn = getushort(&bp->b_data[bo]); + readcn = getushort(bp->b_data + bo); if (FAT12(pmp) && (cn & 1)) readcn >>= 4; readcn &= pmp->pm_fatmask; From owner-svn-src-all@freebsd.org Thu Aug 22 16:41:20 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CACF8CCC3E; Thu, 22 Aug 2019 16:41:20 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Dqzh53B7z4cx6; Thu, 22 Aug 2019 16:41:20 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-4.local (ralph.baldwin.cx [66.234.199.215]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id EBD10107D6; Thu, 22 Aug 2019 16:41:19 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r351368 - head/sys/gdb To: Conrad Meyer , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201908220034.x7M0YBOw088032@repo.freebsd.org> From: John Baldwin Openpgp: preference=signencrypt Autocrypt: addr=jhb@FreeBSD.org; keydata= mQGiBETQ+XcRBADMFybiq69u+fJRy/0wzqTNS8jFfWaBTs5/OfcV7wWezVmf9sgwn8TW0Dk0 c9MBl0pz+H01dA2ZSGZ5fXlmFIsee1WEzqeJzpiwd/pejPgSzXB9ijbLHZ2/E0jhGBcVy5Yo /Tw5+U/+laeYKu2xb0XPvM0zMNls1ah5OnP9a6Ql6wCgupaoMySb7DXm2LHD1Z9jTsHcAQMD /1jzh2BoHriy/Q2s4KzzjVp/mQO5DSm2z14BvbQRcXU48oAosHA1u3Wrov6LfPY+0U1tG47X 1BGfnQH+rNAaH0livoSBQ0IPI/8WfIW7ub4qV6HYwWKVqkDkqwcpmGNDbz3gfaDht6nsie5Z pcuCcul4M9CW7Md6zzyvktjnbz61BADGDCopfZC4of0Z3Ka0u8Wik6UJOuqShBt1WcFS8ya1 oB4rc4tXfSHyMF63aPUBMxHR5DXeH+EO2edoSwViDMqWk1jTnYza51rbGY+pebLQOVOxAY7k do5Ordl3wklBPMVEPWoZ61SdbcjhHVwaC5zfiskcxj5wwXd2E9qYlBqRg7QeSm9obiBCYWxk d2luIDxqaGJARnJlZUJTRC5vcmc+iGAEExECACAFAkTQ+awCGwMGCwkIBwMCBBUCCAMEFgID AQIeAQIXgAAKCRBy3lIGd+N/BI6RAJ9S97fvbME+3hxzE3JUyUZ6vTewDACdE1stFuSfqMvM jomvZdYxIYyTUpC5Ag0ERND5ghAIAPwsO0B7BL+bz8sLlLoQktGxXwXQfS5cInvL17Dsgnr3 1AKa94j9EnXQyPEj7u0d+LmEe6CGEGDh1OcGFTMVrof2ZzkSy4+FkZwMKJpTiqeaShMh+Goj XlwIMDxyADYvBIg3eN5YdFKaPQpfgSqhT+7El7w+wSZZD8pPQuLAnie5iz9C8iKy4/cMSOrH YUK/tO+Nhw8Jjlw94Ik0T80iEhI2t+XBVjwdfjbq3HrJ0ehqdBwukyeJRYKmbn298KOFQVHO EVbHA4rF/37jzaMadK43FgJ0SAhPPF5l4l89z5oPu0b/+5e2inA3b8J3iGZxywjM+Csq1tqz hltEc7Q+E08AAwUIAL+15XH8bPbjNJdVyg2CMl10JNW2wWg2Q6qdljeaRqeR6zFus7EZTwtX sNzs5bP8y51PSUDJbeiy2RNCNKWFMndM22TZnk3GNG45nQd4OwYK0RZVrikalmJY5Q6m7Z16 4yrZgIXFdKj2t8F+x613/SJW1lIr9/bDp4U9tw0V1g3l2dFtD3p3ZrQ3hpoDtoK70ioIAjjH aIXIAcm3FGZFXy503DOA0KaTWwvOVdYCFLm3zWuSOmrX/GsEc7ovasOWwjPn878qVjbUKWwx Q4QkF4OhUV9zPtf9tDSAZ3x7QSwoKbCoRCZ/xbyTUPyQ1VvNy/mYrBcYlzHodsaqUDjHuW+I SQQYEQIACQUCRND5ggIbDAAKCRBy3lIGd+N/BCO8AJ9j1dWVQWxw/YdTbEyrRKOY8YZNwwCf afMAg8QvmOWnHx3wl8WslCaXaE8= Message-ID: <718d767b-7bb3-8e10-f9b5-b696642ad24b@FreeBSD.org> Date: Thu, 22 Aug 2019 09:41:18 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.7.1 MIME-Version: 1.0 In-Reply-To: <201908220034.x7M0YBOw088032@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 16:41:20 -0000 On 8/21/19 5:34 PM, Conrad Meyer wrote: > Author: cem > Date: Thu Aug 22 00:34:11 2019 > New Revision: 351368 > URL: https://svnweb.freebsd.org/changeset/base/351368 > > Log: > gdb(4): Implement qXfer:threads:read > > This streams out an XML document over several GDB packets describing all > threads in the system; their ids, name, and any loosely defined "extra info" > we feel like including. For now, I have included a string version of the run > state, similar to some of the DDB logic to stringify thread state. > > The benefit of supporting this in addition to the qfThreadInfo/qsThreadInfo > packing is that in this mode, the host gdb does not ask for every thread's > "qThreadExtraInfo," saving per-thread round-trips on "info threads." > > To use this feature, (k)gdb needs to be built with the --with-expat option. > I would encourage enabling this option by default in our GDB port, if it is > not already. FYI, it is as the 'catch syscall' bits also depend on this. -- John Baldwin From owner-svn-src-all@freebsd.org Thu Aug 22 16:46:36 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BDB54CCDCB; Thu, 22 Aug 2019 16:46:36 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Dr5m3Qv9z4dLD; Thu, 22 Aug 2019 16:46:36 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-4.local (ralph.baldwin.cx [66.234.199.215]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id CE3BF108FE; Thu, 22 Aug 2019 16:46:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r351364 - in head/sys: crypto/blowfish crypto/chacha20 crypto/des opencrypto To: "Bjoern A. Zeeb" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201908220002.x7M028Jh070116@repo.freebsd.org> From: John Baldwin Openpgp: preference=signencrypt Autocrypt: addr=jhb@FreeBSD.org; keydata= mQGiBETQ+XcRBADMFybiq69u+fJRy/0wzqTNS8jFfWaBTs5/OfcV7wWezVmf9sgwn8TW0Dk0 c9MBl0pz+H01dA2ZSGZ5fXlmFIsee1WEzqeJzpiwd/pejPgSzXB9ijbLHZ2/E0jhGBcVy5Yo /Tw5+U/+laeYKu2xb0XPvM0zMNls1ah5OnP9a6Ql6wCgupaoMySb7DXm2LHD1Z9jTsHcAQMD /1jzh2BoHriy/Q2s4KzzjVp/mQO5DSm2z14BvbQRcXU48oAosHA1u3Wrov6LfPY+0U1tG47X 1BGfnQH+rNAaH0livoSBQ0IPI/8WfIW7ub4qV6HYwWKVqkDkqwcpmGNDbz3gfaDht6nsie5Z pcuCcul4M9CW7Md6zzyvktjnbz61BADGDCopfZC4of0Z3Ka0u8Wik6UJOuqShBt1WcFS8ya1 oB4rc4tXfSHyMF63aPUBMxHR5DXeH+EO2edoSwViDMqWk1jTnYza51rbGY+pebLQOVOxAY7k do5Ordl3wklBPMVEPWoZ61SdbcjhHVwaC5zfiskcxj5wwXd2E9qYlBqRg7QeSm9obiBCYWxk d2luIDxqaGJARnJlZUJTRC5vcmc+iGAEExECACAFAkTQ+awCGwMGCwkIBwMCBBUCCAMEFgID AQIeAQIXgAAKCRBy3lIGd+N/BI6RAJ9S97fvbME+3hxzE3JUyUZ6vTewDACdE1stFuSfqMvM jomvZdYxIYyTUpC5Ag0ERND5ghAIAPwsO0B7BL+bz8sLlLoQktGxXwXQfS5cInvL17Dsgnr3 1AKa94j9EnXQyPEj7u0d+LmEe6CGEGDh1OcGFTMVrof2ZzkSy4+FkZwMKJpTiqeaShMh+Goj XlwIMDxyADYvBIg3eN5YdFKaPQpfgSqhT+7El7w+wSZZD8pPQuLAnie5iz9C8iKy4/cMSOrH YUK/tO+Nhw8Jjlw94Ik0T80iEhI2t+XBVjwdfjbq3HrJ0ehqdBwukyeJRYKmbn298KOFQVHO EVbHA4rF/37jzaMadK43FgJ0SAhPPF5l4l89z5oPu0b/+5e2inA3b8J3iGZxywjM+Csq1tqz hltEc7Q+E08AAwUIAL+15XH8bPbjNJdVyg2CMl10JNW2wWg2Q6qdljeaRqeR6zFus7EZTwtX sNzs5bP8y51PSUDJbeiy2RNCNKWFMndM22TZnk3GNG45nQd4OwYK0RZVrikalmJY5Q6m7Z16 4yrZgIXFdKj2t8F+x613/SJW1lIr9/bDp4U9tw0V1g3l2dFtD3p3ZrQ3hpoDtoK70ioIAjjH aIXIAcm3FGZFXy503DOA0KaTWwvOVdYCFLm3zWuSOmrX/GsEc7ovasOWwjPn878qVjbUKWwx Q4QkF4OhUV9zPtf9tDSAZ3x7QSwoKbCoRCZ/xbyTUPyQ1VvNy/mYrBcYlzHodsaqUDjHuW+I SQQYEQIACQUCRND5ggIbDAAKCRBy3lIGd+N/BCO8AJ9j1dWVQWxw/YdTbEyrRKOY8YZNwwCf afMAg8QvmOWnHx3wl8WslCaXaE8= Message-ID: <0b9d1aa1-d328-30bc-b939-f1407e236855@FreeBSD.org> Date: Thu, 22 Aug 2019 09:46:33 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 16:46:36 -0000 On 8/22/19 2:39 AM, Bjoern A. Zeeb wrote: > On 22 Aug 2019, at 0:02, John Baldwin wrote: > > Hi, > >> Author: jhb >> Date: Thu Aug 22 00:02:08 2019 >> New Revision: 351364 >> URL: https://svnweb.freebsd.org/changeset/base/351364 >> >> Log: >> Use 'const' for keys and IVs passed to software encryption >> algorithms. >> >> Specifically, use 'const' for the key passed to the 'setkey' method >> and 'const' for the 'iv' passed to the 'reinit' method. >> >> Reviewed by: cem >> Sponsored by: Chelsio Communications >> Differential Revision: https://reviews.freebsd.org/D21347 > > can you please review and commit this one to make gcc platforms a bit > more happy again (I tested a sparc64 GENERIC kernel build): I will get tinderbox happy. > Index: sys/opencrypto/xform_des3.c > =================================================================== > --- sys/opencrypto/xform_des3.c (revision 351384) > +++ sys/opencrypto/xform_des3.c (working copy) > @@ -100,9 +100,9 @@ des3_setkey(u_int8_t **sched, const u_int8_t *key, > p = KMALLOC(3*sizeof (des_key_schedule), > M_CRYPTO_DATA, M_NOWAIT|M_ZERO); > if (p != NULL) { > - des_set_key((const des_cblock *)(key + 0), p[0]); > - des_set_key((const des_cblock *)(key + 8), p[1]); > - des_set_key((const des_cblock *)(key + 16), p[2]); > + des_set_key(__DEQUALIFY(const des_cblock *,(key + 0)), p[0]); > + des_set_key(__DEQUALIFY(const des_cblock *,(key + 8)), p[1]); > + des_set_key(__DEQUALIFY(const des_cblock *,(key + 16)), p[2]); This makes no sense. Why are you removing const only to add it back again? -- John Baldwin From owner-svn-src-all@freebsd.org Thu Aug 22 17:49:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 133D0CE0D0; Thu, 22 Aug 2019 17:49:37 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DsVS6kYpz3Dch; Thu, 22 Aug 2019 17:49:36 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C86E77BB0; Thu, 22 Aug 2019 17:49: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 x7MHnaMH099310; Thu, 22 Aug 2019 17:49:36 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MHnZfP099302; Thu, 22 Aug 2019 17:49:35 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908221749.x7MHnZfP099302@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 22 Aug 2019 17:49:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351396 - head/usr.sbin/makefs/msdos X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/usr.sbin/makefs/msdos X-SVN-Commit-Revision: 351396 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 17:49:37 -0000 Author: emaste Date: Thu Aug 22 17:49:34 2019 New Revision: 351396 URL: https://svnweb.freebsd.org/changeset/base/351396 Log: makefs: diff reduction to sys/fs/msdosfs No functional change. Modified: head/usr.sbin/makefs/msdos/direntry.h head/usr.sbin/makefs/msdos/msdosfs_conv.c head/usr.sbin/makefs/msdos/msdosfs_denode.c head/usr.sbin/makefs/msdos/msdosfs_fat.c head/usr.sbin/makefs/msdos/msdosfs_lookup.c head/usr.sbin/makefs/msdos/msdosfs_vfsops.c head/usr.sbin/makefs/msdos/msdosfs_vnops.c head/usr.sbin/makefs/msdos/msdosfsmount.h Modified: head/usr.sbin/makefs/msdos/direntry.h ============================================================================== --- head/usr.sbin/makefs/msdos/direntry.h Thu Aug 22 16:06:52 2019 (r351395) +++ head/usr.sbin/makefs/msdos/direntry.h Thu Aug 22 17:49:34 2019 (r351396) @@ -135,12 +135,12 @@ struct winentry { #define DD_YEAR_MASK 0xFE00 /* year - 1980 */ #define DD_YEAR_SHIFT 9 -uint8_t winChksum(uint8_t *name); -int winSlotCnt(const u_char *un, size_t unlen); -int unix2dosfn(const u_char *un, u_char dn[12], size_t unlen, u_int gen); -int winChkName(const u_char *un, size_t unlen, struct winentry *wep, - int chksum); -int unix2winfn(const u_char *un, size_t unlen, struct winentry *wep, int cnt, - int chksum); +int unix2dosfn(const u_char *un, u_char dn[12], size_t unlen, u_int gen); +int unix2winfn(const u_char *un, size_t unlen, struct winentry *wep, int cnt, + int chksum); +int winChkName(const u_char *un, size_t unlen, struct winentry *wep, + int chksum); +uint8_t winChksum(uint8_t *name); +int winSlotCnt(const u_char *un, size_t unlen); #endif /* !_FS_MSDOSFS_DIRENTRY_H_ */ Modified: head/usr.sbin/makefs/msdos/msdosfs_conv.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_conv.c Thu Aug 22 16:06:52 2019 (r351395) +++ head/usr.sbin/makefs/msdos/msdosfs_conv.c Thu Aug 22 17:49:34 2019 (r351396) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-4-Clause + * * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. * Copyright (C) 1994, 1995, 1997 TooLs GmbH. * All rights reserved. @@ -29,7 +31,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* +/*- * Written by Paul Popelka (paulp@uts.amdahl.com) * * You can do anything you want with this software, just don't say you wrote Modified: head/usr.sbin/makefs/msdos/msdosfs_denode.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_denode.c Thu Aug 22 16:06:52 2019 (r351395) +++ head/usr.sbin/makefs/msdos/msdosfs_denode.c Thu Aug 22 17:49:34 2019 (r351396) @@ -1,6 +1,8 @@ /* $NetBSD: msdosfs_denode.c,v 1.7 2015/03/29 05:52:59 agc Exp $ */ /*- + * SPDX-License-Identifier: BSD-4-Clause + * * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. * Copyright (C) 1994, 1995, 1997 TooLs GmbH. * All rights reserved. @@ -31,7 +33,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* +/*- * Written by Paul Popelka (paulp@uts.amdahl.com) * * You can do anything you want with this software, just don't say you wrote @@ -261,7 +263,7 @@ detrunc(struct denode *dep, u_long length, int flags, if (error) { MSDOSFS_DPRINTF(("detrunc(): pcbmap fails %d\n", error)); - return error; + return (error); } } @@ -282,10 +284,9 @@ detrunc(struct denode *dep, u_long length, int flags, MSDOSFS_DPRINTF(("detrunc(): bread fails %d\n", error)); - return error; + return (error); } - memset((char *)bp->b_data + boff, 0, - pmp->pm_bpcluster - boff); + memset(bp->b_data + boff, 0, pmp->pm_bpcluster - boff); if (flags & IO_SYNC) bwrite(bp); else @@ -326,7 +327,7 @@ detrunc(struct denode *dep, u_long length, int flags, if (chaintofree != 0 && !MSDOSFSEOF(pmp, chaintofree)) freeclusterchain(pmp, chaintofree); - return allerror; + return (allerror); } /* @@ -343,16 +344,16 @@ deextend(struct denode *dep, u_long length, struct ucr * The root of a DOS filesystem cannot be extended. */ if (dep->de_vnode != NULL && !FAT32(pmp)) - return EINVAL; + return (EINVAL); /* * Directories cannot be extended. */ if (dep->de_Attributes & ATTR_DIRECTORY) - return EISDIR; + return (EISDIR); if (length <= dep->de_FileSize) - return E2BIG; + return (E2BIG); /* * Compute the number of clusters to allocate. Modified: head/usr.sbin/makefs/msdos/msdosfs_fat.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_fat.c Thu Aug 22 16:06:52 2019 (r351395) +++ head/usr.sbin/makefs/msdos/msdosfs_fat.c Thu Aug 22 17:49:34 2019 (r351396) @@ -870,9 +870,11 @@ freeclusterchain(struct msdosfsmount *pmp, u_long clus int fillinusemap(struct msdosfsmount *pmp) { - struct buf *bp = NULL; + struct buf *bp; u_long bn, bo, bsize, byteoffset, cn, readcn; int error; + + bp = NULL; /* * Mark all clusters in use, we mark the free ones in the FAT scan Modified: head/usr.sbin/makefs/msdos/msdosfs_lookup.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_lookup.c Thu Aug 22 16:06:52 2019 (r351395) +++ head/usr.sbin/makefs/msdos/msdosfs_lookup.c Thu Aug 22 17:49:34 2019 (r351396) @@ -276,7 +276,7 @@ uniqdosname(struct denode *dep, struct componentname * return error; } for (dentp = (struct direntry *)bp->b_data; - (char *)dentp < (char *)bp->b_data + blsize; + (char *)dentp < bp->b_data + blsize; dentp++) { if (dentp->deName[0] == SLOT_EMPTY) { /* Modified: head/usr.sbin/makefs/msdos/msdosfs_vfsops.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_vfsops.c Thu Aug 22 16:06:52 2019 (r351395) +++ head/usr.sbin/makefs/msdos/msdosfs_vfsops.c Thu Aug 22 17:49:34 2019 (r351396) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-4-Clause + * * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. * Copyright (C) 1994, 1995, 1997 TooLs GmbH. * All rights reserved. @@ -29,7 +31,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* +/*- * Written by Paul Popelka (paulp@uts.amdahl.com) * * You can do anything you want with this software, just don't say you wrote Modified: head/usr.sbin/makefs/msdos/msdosfs_vnops.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_vnops.c Thu Aug 22 16:06:52 2019 (r351395) +++ head/usr.sbin/makefs/msdos/msdosfs_vnops.c Thu Aug 22 17:49:34 2019 (r351396) @@ -1,6 +1,8 @@ /* $NetBSD: msdosfs_vnops.c,v 1.19 2017/04/13 17:10:12 christos Exp $ */ /*- + * SPDX-License-Identifier: BSD-4-Clause + * * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. * Copyright (C) 1994, 1995, 1997 TooLs GmbH. * All rights reserved. @@ -31,7 +33,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* +/*- * Written by Paul Popelka (paulp@uts.amdahl.com) * * You can do anything you want with this software, just don't say you wrote @@ -217,7 +219,7 @@ msdosfs_findslot(struct denode *dp, struct componentna for (blkoff = 0; blkoff < blsize; blkoff += sizeof(struct direntry), diroff += sizeof(struct direntry)) { - dep = (struct direntry *)((char *)bp->b_data + blkoff); + dep = (struct direntry *)(bp->b_data + blkoff); /* * If the slot is empty and we are still looking * for an empty then remember this one. If the @@ -493,7 +495,7 @@ msdosfs_wfile(const char *path, struct denode *dep, fs goto out; } cpsize = MIN((nsize - offs), blsize - on); - memcpy((char *)bp->b_data + on, dat + offs, cpsize); + memcpy(bp->b_data + on, dat + offs, cpsize); bwrite(bp); offs += cpsize; } Modified: head/usr.sbin/makefs/msdos/msdosfsmount.h ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfsmount.h Thu Aug 22 16:06:52 2019 (r351395) +++ head/usr.sbin/makefs/msdos/msdosfsmount.h Thu Aug 22 17:49:34 2019 (r351396) @@ -51,7 +51,7 @@ */ #ifndef _MSDOSFS_MSDOSFSMOUNT_H_ -#define _MSDOSFS_MSDOSFSMOUNT_H_ +#define _MSDOSFS_MSDOSFSMOUNT_H_ #include From owner-svn-src-all@freebsd.org Thu Aug 22 18:52:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C4FF0CF00B; Thu, 22 Aug 2019 18:52:33 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Dtv55WM9z3HBH; Thu, 22 Aug 2019 18:52: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 86B28883C; Thu, 22 Aug 2019 18:52: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 x7MIqXgN040101; Thu, 22 Aug 2019 18:52:33 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MIqVba040089; Thu, 22 Aug 2019 18:52:31 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201908221852.x7MIqVba040089@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Thu, 22 Aug 2019 18:52:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351397 - in head/contrib/wpa: hostapd hs20/client src/ap src/common src/crypto src/drivers src/eap_common src/eap_peer src/eap_server src/eapol_auth src/eapol_supp src/p2p src/pae src/... X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in head/contrib/wpa: hostapd hs20/client src/ap src/common src/crypto src/drivers src/eap_common src/eap_peer src/eap_server src/eapol_auth src/eapol_supp src/p2p src/pae src/radius src/rsn_supp src/t... X-SVN-Commit-Revision: 351397 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 18:52:33 -0000 Author: cy Date: Thu Aug 22 18:52:30 2019 New Revision: 351397 URL: https://svnweb.freebsd.org/changeset/base/351397 Log: MFV r346563: Update wpa 2.8 --> 2.9 hostapd: * SAE changes - disable use of groups using Brainpool curves - improved protection against side channel attacks [https://w1.fi/security/2019-6/] * EAP-pwd changes - disable use of groups using Brainpool curves - improved protection against side channel attacks [https://w1.fi/security/2019-6/] * fixed FT-EAP initial mobility domain association using PMKSA caching * added configuration of airtime policy * fixed FILS to and RSNE into (Re)Association Response frames * fixed DPP bootstrapping URI parser of channel list * added support for regulatory WMM limitation (for ETSI) * added support for MACsec Key Agreement using IEEE 802.1X/PSK * added experimental support for EAP-TEAP server (RFC 7170) * added experimental support for EAP-TLS server with TLS v1.3 * added support for two server certificates/keys (RSA/ECC) * added AKMSuiteSelector into "STA " control interface data to determine with AKM was used for an association * added eap_sim_id parameter to allow EAP-SIM/AKA server pseudonym and fast reauthentication use to be disabled * fixed an ECDH operation corner case with OpenSSL wpa_supplicant: * SAE changes - disable use of groups using Brainpool curves - improved protection against side channel attacks [https://w1.fi/security/2019-6/] * EAP-pwd changes - disable use of groups using Brainpool curves - allow the set of groups to be configured (eap_pwd_groups) - improved protection against side channel attacks [https://w1.fi/security/2019-6/] * fixed FT-EAP initial mobility domain association using PMKSA caching (disabled by default for backwards compatibility; can be enabled with ft_eap_pmksa_caching=1) * fixed a regression in OpenSSL 1.1+ engine loading * added validation of RSNE in (Re)Association Response frames * fixed DPP bootstrapping URI parser of channel list * extended EAP-SIM/AKA fast re-authentication to allow use with FILS * extended ca_cert_blob to support PEM format * improved robustness of P2P Action frame scheduling * added support for EAP-SIM/AKA using anonymous@realm identity * fixed Hotspot 2.0 credential selection based on roaming consortium to ignore credentials without a specific EAP method * added experimental support for EAP-TEAP peer (RFC 7170) * added experimental support for EAP-TLS peer with TLS v1.3 * fixed a regression in WMM parameter configuration for a TDLS peer * fixed a regression in operation with drivers that offload 802.1X 4-way handshake * fixed an ECDH operation corner case with OpenSSL MFC after: 1 week Security: https://w1.fi/security/2019-6/\ sae-eap-pwd-side-channel-attack-update.txt Added: head/contrib/wpa/src/ap/airtime_policy.c - copied unchanged from r351378, vendor/wpa/dist/src/ap/airtime_policy.c head/contrib/wpa/src/ap/airtime_policy.h - copied unchanged from r351378, vendor/wpa/dist/src/ap/airtime_policy.h head/contrib/wpa/src/ap/wpa_auth_kay.c - copied unchanged from r351378, vendor/wpa/dist/src/ap/wpa_auth_kay.c head/contrib/wpa/src/ap/wpa_auth_kay.h - copied unchanged from r351378, vendor/wpa/dist/src/ap/wpa_auth_kay.h head/contrib/wpa/src/common/dragonfly.c - copied unchanged from r351378, vendor/wpa/dist/src/common/dragonfly.c head/contrib/wpa/src/common/dragonfly.h - copied unchanged from r351378, vendor/wpa/dist/src/common/dragonfly.h head/contrib/wpa/src/drivers/driver_atheros.c - copied unchanged from r351378, vendor/wpa/dist/src/drivers/driver_atheros.c head/contrib/wpa/src/drivers/driver_hostap.c - copied unchanged from r351378, vendor/wpa/dist/src/drivers/driver_hostap.c head/contrib/wpa/src/drivers/nl80211_copy.h - copied unchanged from r351378, vendor/wpa/dist/src/drivers/nl80211_copy.h head/contrib/wpa/src/eap_common/eap_teap_common.c - copied unchanged from r351378, vendor/wpa/dist/src/eap_common/eap_teap_common.c head/contrib/wpa/src/eap_common/eap_teap_common.h - copied unchanged from r351378, vendor/wpa/dist/src/eap_common/eap_teap_common.h head/contrib/wpa/src/eap_peer/eap_teap.c - copied unchanged from r351378, vendor/wpa/dist/src/eap_peer/eap_teap.c head/contrib/wpa/src/eap_peer/eap_teap_pac.c - copied unchanged from r351378, vendor/wpa/dist/src/eap_peer/eap_teap_pac.c head/contrib/wpa/src/eap_peer/eap_teap_pac.h - copied unchanged from r351378, vendor/wpa/dist/src/eap_peer/eap_teap_pac.h head/contrib/wpa/src/eap_server/eap_server_teap.c - copied unchanged from r351378, vendor/wpa/dist/src/eap_server/eap_server_teap.c Modified: head/contrib/wpa/hostapd/ChangeLog head/contrib/wpa/hostapd/config_file.c head/contrib/wpa/hostapd/ctrl_iface.c head/contrib/wpa/hostapd/defconfig head/contrib/wpa/hostapd/eap_register.c head/contrib/wpa/hostapd/hostapd.conf head/contrib/wpa/hostapd/hostapd_cli.c head/contrib/wpa/hostapd/main.c head/contrib/wpa/hs20/client/osu_client.c head/contrib/wpa/src/ap/accounting.c head/contrib/wpa/src/ap/acs.c head/contrib/wpa/src/ap/ap_config.c head/contrib/wpa/src/ap/ap_config.h head/contrib/wpa/src/ap/ap_drv_ops.c head/contrib/wpa/src/ap/ap_drv_ops.h head/contrib/wpa/src/ap/authsrv.c head/contrib/wpa/src/ap/beacon.c head/contrib/wpa/src/ap/ctrl_iface_ap.c head/contrib/wpa/src/ap/dfs.c head/contrib/wpa/src/ap/dpp_hostapd.c head/contrib/wpa/src/ap/dpp_hostapd.h head/contrib/wpa/src/ap/drv_callbacks.c head/contrib/wpa/src/ap/gas_serv.c head/contrib/wpa/src/ap/gas_serv.h head/contrib/wpa/src/ap/hostapd.c head/contrib/wpa/src/ap/hostapd.h head/contrib/wpa/src/ap/hw_features.c head/contrib/wpa/src/ap/ieee802_11.c head/contrib/wpa/src/ap/ieee802_11.h head/contrib/wpa/src/ap/ieee802_11_he.c head/contrib/wpa/src/ap/ieee802_11_vht.c head/contrib/wpa/src/ap/ieee802_1x.c head/contrib/wpa/src/ap/ieee802_1x.h head/contrib/wpa/src/ap/neighbor_db.c head/contrib/wpa/src/ap/sta_info.c head/contrib/wpa/src/ap/sta_info.h head/contrib/wpa/src/ap/wmm.c head/contrib/wpa/src/ap/wpa_auth.c head/contrib/wpa/src/ap/wpa_auth.h head/contrib/wpa/src/ap/wpa_auth_ft.c head/contrib/wpa/src/ap/wpa_auth_glue.c head/contrib/wpa/src/ap/wpa_auth_ie.c head/contrib/wpa/src/common/dpp.c head/contrib/wpa/src/common/dpp.h head/contrib/wpa/src/common/hw_features_common.c head/contrib/wpa/src/common/hw_features_common.h head/contrib/wpa/src/common/ieee802_11_common.c head/contrib/wpa/src/common/ieee802_11_common.h head/contrib/wpa/src/common/ieee802_11_defs.h head/contrib/wpa/src/common/qca-vendor.h head/contrib/wpa/src/common/sae.c head/contrib/wpa/src/common/sae.h head/contrib/wpa/src/common/version.h head/contrib/wpa/src/common/wpa_common.c head/contrib/wpa/src/common/wpa_ctrl.h head/contrib/wpa/src/crypto/aes_i.h head/contrib/wpa/src/crypto/crypto.h head/contrib/wpa/src/crypto/crypto_openssl.c head/contrib/wpa/src/crypto/crypto_wolfssl.c head/contrib/wpa/src/crypto/sha1-internal.c head/contrib/wpa/src/crypto/sha1-prf.c head/contrib/wpa/src/crypto/sha1-tlsprf.c head/contrib/wpa/src/crypto/sha1-tprf.c head/contrib/wpa/src/crypto/sha1.c head/contrib/wpa/src/crypto/sha256-kdf.c head/contrib/wpa/src/crypto/sha256-prf.c head/contrib/wpa/src/crypto/sha256-tlsprf.c head/contrib/wpa/src/crypto/sha256.h head/contrib/wpa/src/crypto/sha384-kdf.c head/contrib/wpa/src/crypto/sha384-prf.c head/contrib/wpa/src/crypto/sha512-kdf.c head/contrib/wpa/src/crypto/sha512-prf.c head/contrib/wpa/src/crypto/tls.h head/contrib/wpa/src/crypto/tls_openssl.c head/contrib/wpa/src/crypto/tls_wolfssl.c head/contrib/wpa/src/drivers/driver.h head/contrib/wpa/src/drivers/driver_bsd.c head/contrib/wpa/src/drivers/driver_common.c head/contrib/wpa/src/drivers/driver_macsec_linux.c head/contrib/wpa/src/drivers/driver_macsec_qca.c head/contrib/wpa/src/drivers/driver_ndis.c head/contrib/wpa/src/drivers/driver_nl80211.h head/contrib/wpa/src/drivers/driver_nl80211_capa.c head/contrib/wpa/src/drivers/driver_nl80211_event.c head/contrib/wpa/src/drivers/driver_privsep.c head/contrib/wpa/src/eap_common/eap_defs.h head/contrib/wpa/src/eap_common/eap_pwd_common.c head/contrib/wpa/src/eap_common/eap_sim_common.c head/contrib/wpa/src/eap_common/eap_sim_common.h head/contrib/wpa/src/eap_peer/eap.c head/contrib/wpa/src/eap_peer/eap.h head/contrib/wpa/src/eap_peer/eap_aka.c head/contrib/wpa/src/eap_peer/eap_config.h head/contrib/wpa/src/eap_peer/eap_eke.c head/contrib/wpa/src/eap_peer/eap_leap.c head/contrib/wpa/src/eap_peer/eap_methods.h head/contrib/wpa/src/eap_peer/eap_peap.c head/contrib/wpa/src/eap_peer/eap_pwd.c head/contrib/wpa/src/eap_peer/eap_sim.c head/contrib/wpa/src/eap_peer/eap_tls.c head/contrib/wpa/src/eap_peer/eap_tls_common.c head/contrib/wpa/src/eap_peer/eap_tls_common.h head/contrib/wpa/src/eap_server/eap.h head/contrib/wpa/src/eap_server/eap_i.h head/contrib/wpa/src/eap_server/eap_methods.h head/contrib/wpa/src/eap_server/eap_server.c head/contrib/wpa/src/eap_server/eap_server_aka.c head/contrib/wpa/src/eap_server/eap_server_pax.c head/contrib/wpa/src/eap_server/eap_server_peap.c head/contrib/wpa/src/eap_server/eap_server_pwd.c head/contrib/wpa/src/eap_server/eap_server_sim.c head/contrib/wpa/src/eap_server/eap_server_tls.c head/contrib/wpa/src/eap_server/eap_server_tls_common.c head/contrib/wpa/src/eap_server/eap_tls_common.h head/contrib/wpa/src/eapol_auth/eapol_auth_sm.c head/contrib/wpa/src/eapol_auth/eapol_auth_sm.h head/contrib/wpa/src/eapol_supp/eapol_supp_sm.c head/contrib/wpa/src/eapol_supp/eapol_supp_sm.h head/contrib/wpa/src/p2p/p2p.c head/contrib/wpa/src/p2p/p2p_go_neg.c head/contrib/wpa/src/p2p/p2p_i.h head/contrib/wpa/src/pae/ieee802_1x_kay.c head/contrib/wpa/src/radius/radius_server.c head/contrib/wpa/src/radius/radius_server.h head/contrib/wpa/src/rsn_supp/wpa.c head/contrib/wpa/src/rsn_supp/wpa.h head/contrib/wpa/src/rsn_supp/wpa_ft.c head/contrib/wpa/src/rsn_supp/wpa_i.h head/contrib/wpa/src/tls/asn1.c head/contrib/wpa/src/tls/libtommath.c head/contrib/wpa/src/tls/x509v3.c head/contrib/wpa/src/utils/common.c head/contrib/wpa/src/utils/common.h head/contrib/wpa/src/utils/trace.c head/contrib/wpa/src/utils/wpa_debug.c head/contrib/wpa/src/wps/wps.h head/contrib/wpa/wpa_supplicant/Android.mk head/contrib/wpa/wpa_supplicant/ChangeLog head/contrib/wpa/wpa_supplicant/README-DPP head/contrib/wpa/wpa_supplicant/ap.c head/contrib/wpa/wpa_supplicant/ap.h head/contrib/wpa/wpa_supplicant/bss.c head/contrib/wpa/wpa_supplicant/config.c head/contrib/wpa/wpa_supplicant/config.h head/contrib/wpa/wpa_supplicant/config_file.c head/contrib/wpa/wpa_supplicant/config_ssid.h head/contrib/wpa/wpa_supplicant/ctrl_iface.c head/contrib/wpa/wpa_supplicant/dbus/dbus_new_helpers.c head/contrib/wpa/wpa_supplicant/defconfig head/contrib/wpa/wpa_supplicant/dpp_supplicant.c head/contrib/wpa/wpa_supplicant/dpp_supplicant.h head/contrib/wpa/wpa_supplicant/driver_i.h head/contrib/wpa/wpa_supplicant/eap_register.c head/contrib/wpa/wpa_supplicant/eapol_test.c head/contrib/wpa/wpa_supplicant/events.c head/contrib/wpa/wpa_supplicant/ibss_rsn.c head/contrib/wpa/wpa_supplicant/interworking.c head/contrib/wpa/wpa_supplicant/mesh.c head/contrib/wpa/wpa_supplicant/mesh_mpm.c head/contrib/wpa/wpa_supplicant/notify.c head/contrib/wpa/wpa_supplicant/notify.h head/contrib/wpa/wpa_supplicant/op_classes.c head/contrib/wpa/wpa_supplicant/p2p_supplicant.c head/contrib/wpa/wpa_supplicant/preauth_test.c head/contrib/wpa/wpa_supplicant/rrm.c head/contrib/wpa/wpa_supplicant/sme.c head/contrib/wpa/wpa_supplicant/wnm_sta.c head/contrib/wpa/wpa_supplicant/wpa_cli.c head/contrib/wpa/wpa_supplicant/wpa_supplicant.c head/contrib/wpa/wpa_supplicant/wpa_supplicant.conf head/contrib/wpa/wpa_supplicant/wpa_supplicant_i.h head/contrib/wpa/wpa_supplicant/wpas_glue.c Directory Properties: head/contrib/wpa/ (props changed) Modified: head/contrib/wpa/hostapd/ChangeLog ============================================================================== --- head/contrib/wpa/hostapd/ChangeLog Thu Aug 22 17:49:34 2019 (r351396) +++ head/contrib/wpa/hostapd/ChangeLog Thu Aug 22 18:52:30 2019 (r351397) @@ -1,5 +1,29 @@ ChangeLog for hostapd +2019-08-07 - v2.9 + * SAE changes + - disable use of groups using Brainpool curves + - improved protection against side channel attacks + [https://w1.fi/security/2019-6/] + * EAP-pwd changes + - disable use of groups using Brainpool curves + - improved protection against side channel attacks + [https://w1.fi/security/2019-6/] + * fixed FT-EAP initial mobility domain association using PMKSA caching + * added configuration of airtime policy + * fixed FILS to and RSNE into (Re)Association Response frames + * fixed DPP bootstrapping URI parser of channel list + * added support for regulatory WMM limitation (for ETSI) + * added support for MACsec Key Agreement using IEEE 802.1X/PSK + * added experimental support for EAP-TEAP server (RFC 7170) + * added experimental support for EAP-TLS server with TLS v1.3 + * added support for two server certificates/keys (RSA/ECC) + * added AKMSuiteSelector into "STA " control interface data to + determine with AKM was used for an association + * added eap_sim_id parameter to allow EAP-SIM/AKA server pseudonym and + fast reauthentication use to be disabled + * fixed an ECDH operation corner case with OpenSSL + 2019-04-21 - v2.8 * SAE changes - added support for SAE Password Identifier Modified: head/contrib/wpa/hostapd/config_file.c ============================================================================== --- head/contrib/wpa/hostapd/config_file.c Thu Aug 22 17:49:34 2019 (r351396) +++ head/contrib/wpa/hostapd/config_file.c Thu Aug 22 18:52:30 2019 (r351397) @@ -24,14 +24,6 @@ #include "config_file.h" -#ifndef CONFIG_NO_RADIUS -#ifdef EAP_SERVER -static struct hostapd_radius_attr * -hostapd_parse_radius_attr(const char *value); -#endif /* EAP_SERVER */ -#endif /* CONFIG_NO_RADIUS */ - - #ifndef CONFIG_NO_VLAN static int hostapd_config_read_vlan_file(struct hostapd_bss_config *bss, const char *fname) @@ -660,76 +652,7 @@ hostapd_config_read_radius_addr(struct hostapd_radius_ } -static struct hostapd_radius_attr * -hostapd_parse_radius_attr(const char *value) -{ - const char *pos; - char syntax; - struct hostapd_radius_attr *attr; - size_t len; - attr = os_zalloc(sizeof(*attr)); - if (attr == NULL) - return NULL; - - attr->type = atoi(value); - - pos = os_strchr(value, ':'); - if (pos == NULL) { - attr->val = wpabuf_alloc(1); - if (attr->val == NULL) { - os_free(attr); - return NULL; - } - wpabuf_put_u8(attr->val, 0); - return attr; - } - - pos++; - if (pos[0] == '\0' || pos[1] != ':') { - os_free(attr); - return NULL; - } - syntax = *pos++; - pos++; - - switch (syntax) { - case 's': - attr->val = wpabuf_alloc_copy(pos, os_strlen(pos)); - break; - case 'x': - len = os_strlen(pos); - if (len & 1) - break; - len /= 2; - attr->val = wpabuf_alloc(len); - if (attr->val == NULL) - break; - if (hexstr2bin(pos, wpabuf_put(attr->val, len), len) < 0) { - wpabuf_free(attr->val); - os_free(attr); - return NULL; - } - break; - case 'd': - attr->val = wpabuf_alloc(4); - if (attr->val) - wpabuf_put_be32(attr->val, atoi(pos)); - break; - default: - os_free(attr); - return NULL; - } - - if (attr->val == NULL) { - os_free(attr); - return NULL; - } - - return attr; -} - - static int hostapd_parse_das_client(struct hostapd_bss_config *bss, char *val) { char *secret; @@ -2313,6 +2236,42 @@ static unsigned int parse_tls_flags(const char *val) #endif /* EAP_SERVER */ +#ifdef CONFIG_AIRTIME_POLICY +static int add_airtime_weight(struct hostapd_bss_config *bss, char *value) +{ + struct airtime_sta_weight *wt; + char *pos, *next; + + wt = os_zalloc(sizeof(*wt)); + if (!wt) + return -1; + + /* 02:01:02:03:04:05 10 */ + pos = value; + next = os_strchr(pos, ' '); + if (next) + *next++ = '\0'; + if (!next || hwaddr_aton(pos, wt->addr)) { + wpa_printf(MSG_ERROR, "Invalid station address: '%s'", pos); + os_free(wt); + return -1; + } + + pos = next; + wt->weight = atoi(pos); + if (!wt->weight) { + wpa_printf(MSG_ERROR, "Invalid weight: '%s'", pos); + os_free(wt); + return -1; + } + + wt->next = bss->airtime_weight_list; + bss->airtime_weight_list = wt; + return 0; +} +#endif /* CONFIG_AIRTIME_POLICY */ + + #ifdef CONFIG_SAE static int parse_sae_password(struct hostapd_bss_config *bss, const char *val) { @@ -2376,6 +2335,36 @@ fail: #endif /* CONFIG_SAE */ +#ifdef CONFIG_DPP2 +static int hostapd_dpp_controller_parse(struct hostapd_bss_config *bss, + const char *pos) +{ + struct dpp_controller_conf *conf; + char *val; + + conf = os_zalloc(sizeof(*conf)); + if (!conf) + return -1; + val = get_param(pos, "ipaddr="); + if (!val || hostapd_parse_ip_addr(val, &conf->ipaddr)) + goto fail; + os_free(val); + val = get_param(pos, "pkhash="); + if (!val || os_strlen(val) != 2 * SHA256_MAC_LEN || + hexstr2bin(val, conf->pkhash, SHA256_MAC_LEN) < 0) + goto fail; + os_free(val); + conf->next = bss->dpp_controller; + bss->dpp_controller = conf; + return 0; +fail: + os_free(val); + os_free(conf); + return -1; +} +#endif /* CONFIG_DPP2 */ + + static int hostapd_config_fill(struct hostapd_config *conf, struct hostapd_bss_config *bss, const char *buf, char *pos, int line) @@ -2496,7 +2485,11 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "eapol_version") == 0) { int eapol_version = atoi(pos); +#ifdef CONFIG_MACSEC + if (eapol_version < 1 || eapol_version > 3) { +#else /* CONFIG_MACSEC */ if (eapol_version < 1 || eapol_version > 2) { +#endif /* CONFIG_MACSEC */ wpa_printf(MSG_ERROR, "Line %d: invalid EAPOL version (%d): '%s'.", line, eapol_version, pos); @@ -2519,12 +2512,21 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "server_cert") == 0) { os_free(bss->server_cert); bss->server_cert = os_strdup(pos); + } else if (os_strcmp(buf, "server_cert2") == 0) { + os_free(bss->server_cert2); + bss->server_cert2 = os_strdup(pos); } else if (os_strcmp(buf, "private_key") == 0) { os_free(bss->private_key); bss->private_key = os_strdup(pos); + } else if (os_strcmp(buf, "private_key2") == 0) { + os_free(bss->private_key2); + bss->private_key2 = os_strdup(pos); } else if (os_strcmp(buf, "private_key_passwd") == 0) { os_free(bss->private_key_passwd); bss->private_key_passwd = os_strdup(pos); + } else if (os_strcmp(buf, "private_key_passwd2") == 0) { + os_free(bss->private_key_passwd2); + bss->private_key_passwd2 = os_strdup(pos); } else if (os_strcmp(buf, "check_cert_subject") == 0) { if (!pos[0]) { wpa_printf(MSG_ERROR, "Line %d: unknown check_cert_subject '%s'", @@ -2605,6 +2607,20 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "pac_key_refresh_time") == 0) { bss->pac_key_refresh_time = atoi(pos); #endif /* EAP_SERVER_FAST */ +#ifdef EAP_SERVER_TEAP + } else if (os_strcmp(buf, "eap_teap_auth") == 0) { + int val = atoi(pos); + + if (val < 0 || val > 1) { + wpa_printf(MSG_ERROR, + "Line %d: Invalid eap_teap_auth value", + line); + return 1; + } + bss->eap_teap_auth = val; + } else if (os_strcmp(buf, "eap_teap_pac_no_inner") == 0) { + bss->eap_teap_pac_no_inner = atoi(pos); +#endif /* EAP_SERVER_TEAP */ #ifdef EAP_SERVER_SIM } else if (os_strcmp(buf, "eap_sim_db") == 0) { os_free(bss->eap_sim_db); @@ -2613,6 +2629,8 @@ static int hostapd_config_fill(struct hostapd_config * bss->eap_sim_db_timeout = atoi(pos); } else if (os_strcmp(buf, "eap_sim_aka_result_ind") == 0) { bss->eap_sim_aka_result_ind = atoi(pos); + } else if (os_strcmp(buf, "eap_sim_id") == 0) { + bss->eap_sim_id = atoi(pos); #endif /* EAP_SERVER_SIM */ #ifdef EAP_SERVER_TNC } else if (os_strcmp(buf, "tnc") == 0) { @@ -2816,6 +2834,9 @@ static int hostapd_config_fill(struct hostapd_config * a = a->next; a->next = attr; } + } else if (os_strcmp(buf, "radius_req_attr_sqlite") == 0) { + os_free(bss->radius_req_attr_sqlite); + bss->radius_req_attr_sqlite = os_strdup(pos); } else if (os_strcmp(buf, "radius_das_port") == 0) { bss->radius_das_port = atoi(pos); } else if (os_strcmp(buf, "radius_das_client") == 0) { @@ -3442,6 +3463,8 @@ static int hostapd_config_fill(struct hostapd_config * conf->he_op.he_twt_required = atoi(pos); } else if (os_strcmp(buf, "he_rts_threshold") == 0) { conf->he_op.he_rts_threshold = atoi(pos); + } else if (os_strcmp(buf, "he_basic_mcs_nss_set") == 0) { + conf->he_op.he_basic_mcs_nss_set = atoi(pos); } else if (os_strcmp(buf, "he_mu_edca_qos_info_param_count") == 0) { conf->he_mu_edca.he_qos_info |= set_he_cap(atoi(pos), HE_QOS_INFO_EDCA_PARAM_SET_COUNT); @@ -3526,6 +3549,20 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "he_mu_edca_ac_vo_timer") == 0) { conf->he_mu_edca.he_mu_ac_vo_param[HE_MU_AC_PARAM_TIMER_IDX] = atoi(pos) & 0xff; + } else if (os_strcmp(buf, "he_spr_sr_control") == 0) { + conf->spr.sr_control = atoi(pos) & 0xff; + } else if (os_strcmp(buf, "he_spr_non_srg_obss_pd_max_offset") == 0) { + conf->spr.non_srg_obss_pd_max_offset = atoi(pos); + } else if (os_strcmp(buf, "he_spr_srg_obss_pd_min_offset") == 0) { + conf->spr.srg_obss_pd_min_offset = atoi(pos); + } else if (os_strcmp(buf, "he_spr_srg_obss_pd_max_offset") == 0) { + conf->spr.srg_obss_pd_max_offset = atoi(pos); + } else if (os_strcmp(buf, "he_oper_chwidth") == 0) { + conf->he_oper_chwidth = atoi(pos); + } else if (os_strcmp(buf, "he_oper_centr_freq_seg0_idx") == 0) { + conf->he_oper_centr_freq_seg0_idx = atoi(pos); + } else if (os_strcmp(buf, "he_oper_centr_freq_seg1_idx") == 0) { + conf->he_oper_centr_freq_seg1_idx = atoi(pos); #endif /* CONFIG_IEEE80211AX */ } else if (os_strcmp(buf, "max_listen_interval") == 0) { bss->max_listen_interval = atoi(pos); @@ -4298,6 +4335,11 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "dpp_csign") == 0) { if (parse_wpabuf_hex(line, buf, &bss->dpp_csign, pos)) return 1; +#ifdef CONFIG_DPP2 + } else if (os_strcmp(buf, "dpp_controller") == 0) { + if (hostapd_dpp_controller_parse(bss, pos)) + return 1; +#endif /* CONFIG_DPP2 */ #endif /* CONFIG_DPP */ #ifdef CONFIG_OWE } else if (os_strcmp(buf, "owe_transition_bssid") == 0) { @@ -4349,6 +4391,121 @@ static int hostapd_config_fill(struct hostapd_config * conf->rssi_reject_assoc_timeout = atoi(pos); } else if (os_strcmp(buf, "pbss") == 0) { bss->pbss = atoi(pos); +#ifdef CONFIG_AIRTIME_POLICY + } else if (os_strcmp(buf, "airtime_mode") == 0) { + int val = atoi(pos); + + if (val < 0 || val > AIRTIME_MODE_MAX) { + wpa_printf(MSG_ERROR, "Line %d: Unknown airtime_mode", + line); + return 1; + } + conf->airtime_mode = val; + } else if (os_strcmp(buf, "airtime_update_interval") == 0) { + conf->airtime_update_interval = atoi(pos); + } else if (os_strcmp(buf, "airtime_bss_weight") == 0) { + bss->airtime_weight = atoi(pos); + } else if (os_strcmp(buf, "airtime_bss_limit") == 0) { + int val = atoi(pos); + + if (val < 0 || val > 1) { + wpa_printf(MSG_ERROR, + "Line %d: Invalid airtime_bss_limit (must be 0 or 1)", + line); + return 1; + } + bss->airtime_limit = val; + } else if (os_strcmp(buf, "airtime_sta_weight") == 0) { + if (add_airtime_weight(bss, pos) < 0) { + wpa_printf(MSG_ERROR, + "Line %d: Invalid airtime weight '%s'", + line, pos); + return 1; + } +#endif /* CONFIG_AIRTIME_POLICY */ +#ifdef CONFIG_MACSEC + } else if (os_strcmp(buf, "macsec_policy") == 0) { + int macsec_policy = atoi(pos); + + if (macsec_policy < 0 || macsec_policy > 1) { + wpa_printf(MSG_ERROR, + "Line %d: invalid macsec_policy (%d): '%s'.", + line, macsec_policy, pos); + return 1; + } + bss->macsec_policy = macsec_policy; + } else if (os_strcmp(buf, "macsec_integ_only") == 0) { + int macsec_integ_only = atoi(pos); + + if (macsec_integ_only < 0 || macsec_integ_only > 1) { + wpa_printf(MSG_ERROR, + "Line %d: invalid macsec_integ_only (%d): '%s'.", + line, macsec_integ_only, pos); + return 1; + } + bss->macsec_integ_only = macsec_integ_only; + } else if (os_strcmp(buf, "macsec_replay_protect") == 0) { + int macsec_replay_protect = atoi(pos); + + if (macsec_replay_protect < 0 || macsec_replay_protect > 1) { + wpa_printf(MSG_ERROR, + "Line %d: invalid macsec_replay_protect (%d): '%s'.", + line, macsec_replay_protect, pos); + return 1; + } + bss->macsec_replay_protect = macsec_replay_protect; + } else if (os_strcmp(buf, "macsec_replay_window") == 0) { + bss->macsec_replay_window = atoi(pos); + } else if (os_strcmp(buf, "macsec_port") == 0) { + int macsec_port = atoi(pos); + + if (macsec_port < 1 || macsec_port > 65534) { + wpa_printf(MSG_ERROR, + "Line %d: invalid macsec_port (%d): '%s'.", + line, macsec_port, pos); + return 1; + } + bss->macsec_port = macsec_port; + } else if (os_strcmp(buf, "mka_priority") == 0) { + int mka_priority = atoi(pos); + + if (mka_priority < 0 || mka_priority > 255) { + wpa_printf(MSG_ERROR, + "Line %d: invalid mka_priority (%d): '%s'.", + line, mka_priority, pos); + return 1; + } + bss->mka_priority = mka_priority; + } else if (os_strcmp(buf, "mka_cak") == 0) { + size_t len = os_strlen(pos); + + if (len > 2 * MACSEC_CAK_MAX_LEN || + (len != 2 * 16 && len != 2 * 32) || + hexstr2bin(pos, bss->mka_cak, len / 2)) { + wpa_printf(MSG_ERROR, "Line %d: Invalid MKA-CAK '%s'.", + line, pos); + return 1; + } + bss->mka_cak_len = len / 2; + bss->mka_psk_set |= MKA_PSK_SET_CAK; + } else if (os_strcmp(buf, "mka_ckn") == 0) { + size_t len = os_strlen(pos); + + if (len > 2 * MACSEC_CKN_MAX_LEN || /* too long */ + len < 2 || /* too short */ + len % 2 != 0 /* not an integral number of bytes */) { + wpa_printf(MSG_ERROR, "Line %d: Invalid MKA-CKN '%s'.", + line, pos); + return 1; + } + bss->mka_ckn_len = len / 2; + if (hexstr2bin(pos, bss->mka_ckn, bss->mka_ckn_len)) { + wpa_printf(MSG_ERROR, "Line %d: Invalid MKA-CKN '%s'.", + line, pos); + return -1; + } + bss->mka_psk_set |= MKA_PSK_SET_CKN; +#endif /* CONFIG_MACSEC */ } else { wpa_printf(MSG_ERROR, "Line %d: unknown configuration item '%s'", Modified: head/contrib/wpa/hostapd/ctrl_iface.c ============================================================================== --- head/contrib/wpa/hostapd/ctrl_iface.c Thu Aug 22 17:49:34 2019 (r351396) +++ head/contrib/wpa/hostapd/ctrl_iface.c Thu Aug 22 18:52:30 2019 (r351397) @@ -1830,26 +1830,40 @@ static void hostapd_data_test_rx(void *ctx, const u8 * struct iphdr ip; const u8 *pos; unsigned int i; + char extra[30]; - if (len != HWSIM_PACKETLEN) + if (len < sizeof(*eth) + sizeof(ip) || len > HWSIM_PACKETLEN) { + wpa_printf(MSG_DEBUG, + "test data: RX - ignore unexpected length %d", + (int) len); return; + } eth = (const struct ether_header *) buf; os_memcpy(&ip, eth + 1, sizeof(ip)); pos = &buf[sizeof(*eth) + sizeof(ip)]; if (ip.ihl != 5 || ip.version != 4 || - ntohs(ip.tot_len) != HWSIM_IP_LEN) + ntohs(ip.tot_len) > HWSIM_IP_LEN) { + wpa_printf(MSG_DEBUG, + "test data: RX - ignore unexpect IP header"); return; + } - for (i = 0; i < HWSIM_IP_LEN - sizeof(ip); i++) { - if (*pos != (u8) i) + for (i = 0; i < ntohs(ip.tot_len) - sizeof(ip); i++) { + if (*pos != (u8) i) { + wpa_printf(MSG_DEBUG, + "test data: RX - ignore mismatching payload"); return; + } pos++; } - wpa_msg(hapd->msg_ctx, MSG_INFO, "DATA-TEST-RX " MACSTR " " MACSTR, - MAC2STR(eth->ether_dhost), MAC2STR(eth->ether_shost)); + extra[0] = '\0'; + if (ntohs(ip.tot_len) != HWSIM_IP_LEN) + os_snprintf(extra, sizeof(extra), " len=%d", ntohs(ip.tot_len)); + wpa_msg(hapd->msg_ctx, MSG_INFO, "DATA-TEST-RX " MACSTR " " MACSTR "%s", + MAC2STR(eth->ether_dhost), MAC2STR(eth->ether_shost), extra); } @@ -1894,7 +1908,7 @@ static int hostapd_ctrl_iface_data_test_config(struct static int hostapd_ctrl_iface_data_test_tx(struct hostapd_data *hapd, char *cmd) { u8 dst[ETH_ALEN], src[ETH_ALEN]; - char *pos; + char *pos, *pos2; int used; long int val; u8 tos; @@ -1903,11 +1917,12 @@ static int hostapd_ctrl_iface_data_test_tx(struct host struct iphdr *ip; u8 *dpos; unsigned int i; + size_t send_len = HWSIM_IP_LEN; if (hapd->l2_test == NULL) return -1; - /* format: */ + /* format: [len=] */ pos = cmd; used = hwaddr_aton2(pos, dst); @@ -1921,11 +1936,19 @@ static int hostapd_ctrl_iface_data_test_tx(struct host return -1; pos += used; - val = strtol(pos, NULL, 0); + val = strtol(pos, &pos2, 0); if (val < 0 || val > 0xff) return -1; tos = val; + pos = os_strstr(pos2, " len="); + if (pos) { + i = atoi(pos + 5); + if (i < sizeof(*ip) || i > HWSIM_IP_LEN) + return -1; + send_len = i; + } + eth = (struct ether_header *) &buf[2]; os_memcpy(eth->ether_dhost, dst, ETH_ALEN); os_memcpy(eth->ether_shost, src, ETH_ALEN); @@ -1936,17 +1959,17 @@ static int hostapd_ctrl_iface_data_test_tx(struct host ip->version = 4; ip->ttl = 64; ip->tos = tos; - ip->tot_len = htons(HWSIM_IP_LEN); + ip->tot_len = htons(send_len); ip->protocol = 1; ip->saddr = htonl(192U << 24 | 168 << 16 | 1 << 8 | 1); ip->daddr = htonl(192U << 24 | 168 << 16 | 1 << 8 | 2); ip->check = ipv4_hdr_checksum(ip, sizeof(*ip)); dpos = (u8 *) (ip + 1); - for (i = 0; i < HWSIM_IP_LEN - sizeof(*ip); i++) + for (i = 0; i < send_len - sizeof(*ip); i++) *dpos++ = i; if (l2_packet_send(hapd->l2_test, dst, ETHERTYPE_IP, &buf[2], - HWSIM_PACKETLEN) < 0) + sizeof(struct ether_header) + send_len) < 0) return -1; wpa_dbg(hapd->msg_ctx, MSG_DEBUG, "test data: TX dst=" MACSTR Modified: head/contrib/wpa/hostapd/defconfig ============================================================================== --- head/contrib/wpa/hostapd/defconfig Thu Aug 22 17:49:34 2019 (r351396) +++ head/contrib/wpa/hostapd/defconfig Thu Aug 22 18:52:30 2019 (r351397) @@ -108,11 +108,18 @@ CONFIG_EAP_TTLS=y #CONFIG_EAP_GPSK_SHA256=y # EAP-FAST for the integrated EAP server -# Note: If OpenSSL is used as the TLS library, OpenSSL 1.0 or newer is needed -# for EAP-FAST support. Older OpenSSL releases would need to be patched, e.g., -# with openssl-0.9.8x-tls-extensions.patch, to add the needed functions. #CONFIG_EAP_FAST=y +# EAP-TEAP for the integrated EAP server +# Note: The current EAP-TEAP implementation is experimental and should not be +# enabled for production use. The IETF RFC 7170 that defines EAP-TEAP has number +# of conflicting statements and missing details and the implementation has +# vendor specific workarounds for those and as such, may not interoperate with +# any other implementation. This should not be used for anything else than +# experimentation and interoperability testing until those issues has been +# resolved. +#CONFIG_EAP_TEAP=y + # Wi-Fi Protected Setup (WPS) #CONFIG_WPS=y # Enable UPnP support for external WPS Registrars @@ -375,6 +382,9 @@ CONFIG_IPV6=y # Opportunistic Wireless Encryption (OWE) # Experimental implementation of draft-harkins-owe-07.txt #CONFIG_OWE=y + +# Airtime policy support +#CONFIG_AIRTIME_POLICY=y # Override default value for the wpa_disable_eapol_key_retries configuration # parameter. See that parameter in hostapd.conf for more details. Modified: head/contrib/wpa/hostapd/eap_register.c ============================================================================== --- head/contrib/wpa/hostapd/eap_register.c Thu Aug 22 17:49:34 2019 (r351396) +++ head/contrib/wpa/hostapd/eap_register.c Thu Aug 22 18:52:30 2019 (r351397) @@ -121,6 +121,11 @@ int eap_server_register_methods(void) ret = eap_server_fast_register(); #endif /* EAP_SERVER_FAST */ +#ifdef EAP_SERVER_TEAP + if (ret == 0) + ret = eap_server_teap_register(); +#endif /* EAP_SERVER_TEAP */ + #ifdef EAP_SERVER_WSC if (ret == 0) ret = eap_server_wsc_register(); Modified: head/contrib/wpa/hostapd/hostapd.conf ============================================================================== --- head/contrib/wpa/hostapd/hostapd.conf Thu Aug 22 17:49:34 2019 (r351396) +++ head/contrib/wpa/hostapd/hostapd.conf Thu Aug 22 18:52:30 2019 (r351397) @@ -782,10 +782,8 @@ wmm_ac_vo_acm=0 # 1 = supported #he_mu_beamformer=1 -# he_bss_color: BSS color -# 0 = no BSS color (default) -# unsigned integer = BSS color -#he_bss_color=0 +# he_bss_color: BSS color (1-63) +#he_bss_color=1 #he_default_pe_duration: The duration of PE field in an HE PPDU in us # Possible values are 0 us (default), 4 us, 8 us, 12 us, and 16 us @@ -801,6 +799,17 @@ wmm_ac_vo_acm=0 # unsigned integer = duration in units of 16 us #he_rts_threshold=0 +# HE operating channel information; see matching vht_* parameters for details. +#he_oper_chwidth +#he_oper_centr_freq_seg0_idx +#he_oper_centr_freq_seg1_idx + +#he_basic_mcs_nss_set: Basic NSS/MCS set +# 16-bit combination of 2-bit values of Max HE-MCS For 1..8 SS; each 2-bit +# value having following meaning: +# 0 = HE-MCS 0-7, 1 = HE-MCS 0-9, 2 = HE-MCS 0-11, 3 = not supported +#he_basic_mcs_nss_set + #he_mu_edca_qos_info_param_count #he_mu_edca_qos_info_q_ack #he_mu_edca_qos_info_queue_request=1 @@ -825,6 +834,12 @@ wmm_ac_vo_acm=0 #he_mu_edca_ac_vo_ecwmax=15 #he_mu_edca_ac_vo_timer=255 +# Spatial Reuse Parameter Set +#he_spr_sr_control +#he_spr_non_srg_obss_pd_max_offset +#he_spr_srg_obss_pd_min_offset +#he_spr_srg_obss_pd_max_offset + ##### IEEE 802.1X-2004 related configuration ################################## # Require IEEE 802.1X authorization @@ -836,6 +851,8 @@ wmm_ac_vo_acm=0 # the new version number correctly (they seem to drop the frames completely). # In order to make hostapd interoperate with these clients, the version number # can be set to the older version (1) with this configuration value. +# Note: When using MACsec, eapol_version shall be set to 3, which is +# defined in IEEE Std 802.1X-2010. #eapol_version=2 # Optional displayable message sent with EAP Request-Identity. The first \0 @@ -879,6 +896,54 @@ eapol_key_index_workaround=0 # ERP is enabled (eap_server_erp=1). #erp_domain=example.com +##### MACsec ################################################################## + +# macsec_policy: IEEE 802.1X/MACsec options +# This determines how sessions are secured with MACsec (only for MACsec +# drivers). +# 0: MACsec not in use (default) +# 1: MACsec enabled - Should secure, accept key server's advice to +# determine whether to use a secure session or not. +# +# macsec_integ_only: IEEE 802.1X/MACsec transmit mode +# This setting applies only when MACsec is in use, i.e., +# - macsec_policy is enabled +# - the key server has decided to enable MACsec +# 0: Encrypt traffic (default) +# 1: Integrity only +# +# macsec_replay_protect: IEEE 802.1X/MACsec replay protection +# This setting applies only when MACsec is in use, i.e., +# - macsec_policy is enabled +# - the key server has decided to enable MACsec +# 0: Replay protection disabled (default) +# 1: Replay protection enabled +# +# macsec_replay_window: IEEE 802.1X/MACsec replay protection window +# This determines a window in which replay is tolerated, to allow receipt +# of frames that have been misordered by the network. +# This setting applies only when MACsec replay protection active, i.e., +# - macsec_replay_protect is enabled +# - the key server has decided to enable MACsec +# 0: No replay window, strict check (default) +# 1..2^32-1: number of packets that could be misordered +# +# macsec_port: IEEE 802.1X/MACsec port +# Port component of the SCI +# Range: 1-65534 (default: 1) +# +# mka_priority (Priority of MKA Actor) +# Range: 0..255 (default: 255) +# +# mka_cak, mka_ckn, and mka_priority: IEEE 802.1X/MACsec pre-shared key mode +# This allows to configure MACsec with a pre-shared key using a (CAK,CKN) pair. +# In this mode, instances of hostapd can act as MACsec peers. The peer +# with lower priority will become the key server and start distributing SAKs. +# mka_cak (CAK = Secure Connectivity Association Key) takes a 16-byte (128-bit) +# hex-string (32 hex-digits) or a 32-byte (256-bit) hex-string (64 hex-digits) +# mka_ckn (CKN = CAK Name) takes a 1..32-bytes (8..256 bit) hex-string +# (2..64 hex-digits) + ##### Integrated EAP server ################################################### # Optionally, hostapd can be configured to use an integrated EAP server @@ -912,6 +977,23 @@ eap_server=0 # Passphrase for private key #private_key_passwd=secret passphrase +# An alternative server certificate and private key can be configured with the +# following parameters (with values just like the parameters above without the +# '2' suffix). The ca_cert file (in PEM encoding) is used to add the trust roots +# for both server certificates and/or client certificates). +# +# The main use case for this alternative server certificate configuration is to +# enable both RSA and ECC public keys. The server will pick which one to use +# based on the client preferences for the cipher suite (in the TLS ClientHello +# message). It should be noted that number of deployed EAP peer implementations +# do not filter out the cipher suite list based on their local configuration and +# as such, configuration of alternative types of certificates on the server may +# result in interoperability issues. +#server_cert2=/etc/hostapd.server-ecc.pem +#private_key2=/etc/hostapd.server-ecc.prv +#private_key_passwd2=secret passphrase + + # Server identity # EAP methods that provide mechanism for authenticated server identity delivery # use this value. If not set, "hostapd" is used as a default. @@ -1109,10 +1191,27 @@ eap_server=0 # (or fewer) of the lifetime remains. #pac_key_refresh_time=86400 +# EAP-TEAP authentication type +# 0 = inner EAP (default) +# 1 = Basic-Password-Auth +#eap_teap_auth=0 + +# EAP-TEAP authentication behavior when using PAC +# 0 = perform inner authentication (default) +# 1 = skip inner authentication (inner EAP/Basic-Password-Auth) +#eap_teap_pac_no_inner=0 + # EAP-SIM and EAP-AKA protected success/failure indication using AT_RESULT_IND # (default: 0 = disabled). #eap_sim_aka_result_ind=1 +# EAP-SIM and EAP-AKA identity options +# 0 = do not use pseudonyms or fast reauthentication +# 1 = use pseudonyms, but not fast reauthentication +# 2 = do not use pseudonyms, but use fast reauthentication +# 3 = use pseudonyms and use fast reauthentication (default) +#eap_sim_id=3 + # Trusted Network Connect (TNC) # If enabled, TNC validation will be required before the peer is allowed to # connect. Note: This is only used with EAP-TTLS and EAP-FAST. If any other @@ -1292,6 +1391,17 @@ own_ip_addr=127.0.0.1 # Operator-Name = "Operator" #radius_acct_req_attr=126:s:Operator +# If SQLite support is included, path to a database from which additional +# RADIUS request attributes are extracted based on the station MAC address. +# +# The schema for the radius_attributes table is: +# id | sta | reqtype | attr : multi-key (sta, reqtype) +# id = autonumber +# sta = station MAC address in `11:22:33:44:55:66` format. +# type = `auth` | `acct` | NULL (match any) +# attr = existing config file format, e.g. `126:s:Test Operator` +#radius_req_attr_sqlite=radius_attr.sqlite + # Dynamic Authorization Extensions (RFC 5176) # This mechanism can be used to allow dynamic changes to user session based on # commands from a RADIUS server (or some other disconnect client that has the @@ -2491,6 +2601,42 @@ own_ip_addr=127.0.0.1 # as a radio measurement even if the request doesn't contain a max age element # that allows sending of such data. Default: 0. #stationary_ap=0 + +##### Airtime policy configuration ########################################### + +# Set the airtime policy operating mode: +# 0 = disabled (default) +# 1 = static config +# 2 = per-BSS dynamic config +# 3 = per-BSS limit mode +#airtime_mode=0 + +# Interval (in milliseconds) to poll the kernel for updated station activity in +# dynamic and limit modes +#airtime_update_interval=200 + +# Static configuration of station weights (when airtime_mode=1). Kernel default +# weight is 256; set higher for larger airtime share, lower for smaller share. +# Each entry is a MAC address followed by a weight. +#airtime_sta_weight=02:01:02:03:04:05 256 +#airtime_sta_weight=02:01:02:03:04:06 512 + +# Per-BSS airtime weight. In multi-BSS mode, set for each BSS and hostapd will +# configure station weights to enforce the correct ratio between BSS weights +# depending on the number of active stations. The *ratios* between different +# BSSes is what's important, not the absolute numbers. +# Must be set for all BSSes if airtime_mode=2 or 3, has no effect otherwise. +#airtime_bss_weight=1 + +# Whether the current BSS should be limited (when airtime_mode=3). +# +# If set, the BSS weight ratio will be applied in the case where the current BSS +# would exceed the share defined by the BSS weight ratio. E.g., if two BSSes are +# set to the same weights, and one is set to limited, the limited BSS will get +# no more than half the available airtime, but if the non-limited BSS has more +# stations active, that *will* be allowed to exceed its half of the available +# airtime. +#airtime_bss_limit=1 ##### TESTING OPTIONS ######################################################### # Modified: head/contrib/wpa/hostapd/hostapd_cli.c ============================================================================== --- head/contrib/wpa/hostapd/hostapd_cli.c Thu Aug 22 17:49:34 2019 (r351396) +++ head/contrib/wpa/hostapd/hostapd_cli.c Thu Aug 22 18:52:30 2019 (r351397) @@ -1214,6 +1214,13 @@ static int hostapd_cli_cmd_disable(struct wpa_ctrl *ct } +static int hostapd_cli_cmd_update_beacon(struct wpa_ctrl *ctrl, int argc, + char *argv[]) +{ + return wpa_ctrl_command(ctrl, "UPDATE_BEACON"); +} + + static int hostapd_cli_cmd_vendor(struct wpa_ctrl *ctrl, int argc, char *argv[]) { char cmd[256]; @@ -1617,6 +1624,8 @@ static const struct hostapd_cli_cmd hostapd_cli_comman "= reload configuration for current interface" }, { "disable", hostapd_cli_cmd_disable, NULL, "= disable hostapd on current interface" }, + { "update_beacon", hostapd_cli_cmd_update_beacon, NULL, + "= update Beacon frame contents\n"}, { "erp_flush", hostapd_cli_cmd_erp_flush, NULL, "= drop all ERP keys"}, { "log_level", hostapd_cli_cmd_log_level, NULL, Modified: head/contrib/wpa/hostapd/main.c ============================================================================== --- head/contrib/wpa/hostapd/main.c Thu Aug 22 17:49:34 2019 (r351396) +++ head/contrib/wpa/hostapd/main.c Thu Aug 22 18:52:30 2019 (r351397) @@ -653,6 +653,9 @@ int main(int argc, char *argv[]) int start_ifaces_in_sync = 0; char **if_names = NULL; size_t if_names_size = 0; +#ifdef CONFIG_DPP + struct dpp_global_config dpp_conf; +#endif /* CONFIG_DPP */ if (os_program_init()) return -1; @@ -672,7 +675,9 @@ int main(int argc, char *argv[]) dl_list_init(&interfaces.eth_p_oui); #endif /* CONFIG_ETH_P_OUI */ #ifdef CONFIG_DPP - interfaces.dpp = dpp_global_init(); + os_memset(&dpp_conf, 0, sizeof(dpp_conf)); + /* TODO: dpp_conf.msg_ctx? */ + interfaces.dpp = dpp_global_init(&dpp_conf); if (!interfaces.dpp) return -1; #endif /* CONFIG_DPP */ Modified: head/contrib/wpa/hs20/client/osu_client.c ============================================================================== --- head/contrib/wpa/hs20/client/osu_client.c Thu Aug 22 17:49:34 2019 (r351396) +++ head/contrib/wpa/hs20/client/osu_client.c Thu Aug 22 18:52:30 2019 (r351397) @@ -1588,6 +1588,7 @@ static void set_pps_cred_digital_cert(struct hs20_osu_ xml_node_t *node, const char *fqdn) { char buf[200], dir[200]; + int res; wpa_printf(MSG_INFO, "- Credential/DigitalCertificate"); @@ -1599,14 +1600,20 @@ static void set_pps_cred_digital_cert(struct hs20_osu_ wpa_printf(MSG_INFO, "Failed to set username"); } - snprintf(buf, sizeof(buf), "%s/SP/%s/client-cert.pem", dir, fqdn); + res = os_snprintf(buf, sizeof(buf), "%s/SP/%s/client-cert.pem", dir, + fqdn); + if (os_snprintf_error(sizeof(buf), res)) + return; if (os_file_exists(buf)) { if (set_cred_quoted(ctx->ifname, id, "client_cert", buf) < 0) { wpa_printf(MSG_INFO, "Failed to set client_cert"); } } - snprintf(buf, sizeof(buf), "%s/SP/%s/client-key.pem", dir, fqdn); + res = os_snprintf(buf, sizeof(buf), "%s/SP/%s/client-key.pem", dir, + fqdn); + if (os_snprintf_error(sizeof(buf), res)) + return; if (os_file_exists(buf)) { if (set_cred_quoted(ctx->ifname, id, "private_key", buf) < 0) { wpa_printf(MSG_INFO, "Failed to set private_key"); @@ -1620,6 +1627,7 @@ static void set_pps_cred_realm(struct hs20_osu_client { char *str = xml_node_get_text(ctx->xml, node); char buf[200], dir[200]; + int res; if (str == NULL) return; @@ -1634,7 +1642,9 @@ static void set_pps_cred_realm(struct hs20_osu_client if (getcwd(dir, sizeof(dir)) == NULL) return; - snprintf(buf, sizeof(buf), "%s/SP/%s/aaa-ca.pem", dir, fqdn); + res = os_snprintf(buf, sizeof(buf), "%s/SP/%s/aaa-ca.pem", dir, fqdn); + if (os_snprintf_error(sizeof(buf), res)) + return; if (os_file_exists(buf)) { if (set_cred_quoted(ctx->ifname, id, "ca_cert", buf) < 0) { wpa_printf(MSG_INFO, "Failed to set CA cert"); @@ -2717,6 +2727,8 @@ static int cmd_pol_upd(struct hs20_osu_client *ctx, co if (!pps_fname) { char buf[256]; + int res; + wpa_printf(MSG_INFO, "Determining PPS file based on Home SP information"); if (address && os_strncmp(address, "fqdn=", 5) == 0) { wpa_printf(MSG_INFO, "Use requested FQDN from command line"); @@ -2737,8 +2749,13 @@ static int cmd_pol_upd(struct hs20_osu_client *ctx, co "SP/%s/pps.xml", ctx->fqdn); pps_fname = pps_fname_buf; - os_snprintf(ca_fname_buf, sizeof(ca_fname_buf), "SP/%s/ca.pem", - buf); + res = os_snprintf(ca_fname_buf, sizeof(ca_fname_buf), + "SP/%s/ca.pem", buf); + if (os_snprintf_error(sizeof(ca_fname_buf), res)) { + os_free(ctx->fqdn); + ctx->fqdn = NULL; + return -1; + } ca_fname = ca_fname_buf; } Modified: head/contrib/wpa/src/ap/accounting.c ============================================================================== --- head/contrib/wpa/src/ap/accounting.c Thu Aug 22 17:49:34 2019 (r351396) +++ head/contrib/wpa/src/ap/accounting.c Thu Aug 22 18:52:30 2019 (r351397) @@ -97,6 +97,9 @@ static struct radius_msg * accounting_msg(struct hosta msg) < 0) goto fail; + if (sta && add_sqlite_radius_attr(hapd, sta, msg, 1) < 0) + goto fail; + if (sta) { for (i = 0; ; i++) { val = ieee802_1x_get_radius_class(sta->eapol_sm, &len, Modified: head/contrib/wpa/src/ap/acs.c ============================================================================== --- head/contrib/wpa/src/ap/acs.c Thu Aug 22 17:49:34 2019 (r351396) +++ head/contrib/wpa/src/ap/acs.c Thu Aug 22 18:52:30 2019 (r351397) @@ -594,12 +594,12 @@ acs_find_ideal_chan(struct hostapd_iface *iface) iface->conf->secondary_channel) n_chans = 2; - if (iface->conf->ieee80211ac) { - switch (iface->conf->vht_oper_chwidth) { - case VHT_CHANWIDTH_80MHZ: + if (iface->conf->ieee80211ac || iface->conf->ieee80211ax) { + switch (hostapd_get_oper_chwidth(iface->conf)) { + case CHANWIDTH_80MHZ: n_chans = 4; break; - case VHT_CHANWIDTH_160MHZ: + case CHANWIDTH_160MHZ: n_chans = 8; break; } @@ -607,7 +607,7 @@ acs_find_ideal_chan(struct hostapd_iface *iface) bw = num_chan_to_bw(n_chans); - /* TODO: VHT80+80. Update acs_adjust_vht_center_freq() too. */ + /* TODO: VHT/HE80+80. Update acs_adjust_center_freq() too. */ wpa_printf(MSG_DEBUG, "ACS: Survey analysis for selected bandwidth %d MHz", bw); @@ -647,9 +647,9 @@ acs_find_ideal_chan(struct hostapd_iface *iface) } if (iface->current_mode->mode == HOSTAPD_MODE_IEEE80211A && - iface->conf->ieee80211ac) { - if (iface->conf->vht_oper_chwidth == *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Aug 22 18:57:26 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 21726CF0C7; Thu, 22 Aug 2019 18:57:26 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Dv0k03ptz3HLr; Thu, 22 Aug 2019 18:57:26 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BDFE9884D; Thu, 22 Aug 2019 18:57:25 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7MIvPf9040378; Thu, 22 Aug 2019 18:57:25 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MIvPuN040376; Thu, 22 Aug 2019 18:57:25 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908221857.x7MIvPuN040376@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Thu, 22 Aug 2019 18:57:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351398 - in head/sbin/ping: . tests X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: in head/sbin/ping: . tests X-SVN-Commit-Revision: 351398 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 18:57:26 -0000 Author: asomers Date: Thu Aug 22 18:57:24 2019 New Revision: 351398 URL: https://svnweb.freebsd.org/changeset/base/351398 Log: ping: By default, don't reverse lookup IP addresses ping's default is now not to attempt reverse DNS lookups. The -H flag will enable them. This change is not quite a reversion of r351330. That change made the happy path and error path do reverse lookups consistently; this change changes the default for both paths. Submitted by: Ján Sučan Discussed with: cem MFC after: 2 weeks MFC-With: 351330 Sponsored by: Google LLC (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21364 Modified: head/sbin/ping/ping.8 head/sbin/ping/ping.c head/sbin/ping/tests/ping_c1_s56_t1.out Modified: head/sbin/ping/ping.8 ============================================================================== --- head/sbin/ping/ping.8 Thu Aug 22 18:52:30 2019 (r351397) +++ head/sbin/ping/ping.8 Thu Aug 22 18:57:24 2019 (r351398) @@ -28,7 +28,7 @@ .\" @(#)ping.8 8.2 (Berkeley) 12/11/93 .\" $FreeBSD$ .\" -.Dd August 21, 2019 +.Dd August 22, 2019 .Dt PING 8 .Os .Sh NAME @@ -160,11 +160,9 @@ The default value is 0. .It Fl H Hostname output. Try to do a reverse DNS lookup when displaying addresses. -This is the opposite of -.Fl n , -and it is the default behavior. -.Nm -utility tries reverse-lookup by default. +This is the opposite of the +.Fl n +option. .It Fl h Ar sweepincrsize Specify the number of bytes to increment the size of .Tn ICMP @@ -228,6 +226,9 @@ MIB variable. .It Fl n Numeric output only. No attempt will be made to lookup symbolic names for host addresses. +This is the opposite of +.Fl H , +and it is the default behavior. .It Fl o Exit successfully after receiving one reply packet. .It Fl P Ar policy Modified: head/sbin/ping/ping.c ============================================================================== --- head/sbin/ping/ping.c Thu Aug 22 18:52:30 2019 (r351397) +++ head/sbin/ping/ping.c Thu Aug 22 18:57:24 2019 (r351398) @@ -261,6 +261,8 @@ main(int argc, char *const *argv) #endif cap_rights_t rights; + options |= F_NUMERIC; + /* * Do the stuff that we need root priv's for *first*, and * then drop our setuid bit. Save error reporting for Modified: head/sbin/ping/tests/ping_c1_s56_t1.out ============================================================================== --- head/sbin/ping/tests/ping_c1_s56_t1.out Thu Aug 22 18:52:30 2019 (r351397) +++ head/sbin/ping/tests/ping_c1_s56_t1.out Thu Aug 22 18:57:24 2019 (r351398) @@ -1,5 +1,5 @@ PING localhost: 56 data bytes -64 bytes from localhost: icmp_seq=0 ttl= time= ms +64 bytes from: icmp_seq=0 ttl= time= ms --- localhost ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss From owner-svn-src-all@freebsd.org Thu Aug 22 19:10:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A5A5CCF326; Thu, 22 Aug 2019 19:10:32 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DvHr3lR0z3Htt; Thu, 22 Aug 2019 19:10:32 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 628B98A95; Thu, 22 Aug 2019 19:10:32 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7MJAWQx046407; Thu, 22 Aug 2019 19:10:32 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MJAWZe046406; Thu, 22 Aug 2019 19:10:32 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201908221910.x7MJAWZe046406@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 22 Aug 2019 19:10:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351399 - head/tests/sys/fs X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/tests/sys/fs X-SVN-Commit-Revision: 351399 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 19:10:32 -0000 Author: kevans Date: Thu Aug 22 19:10:31 2019 New Revision: 351399 URL: https://svnweb.freebsd.org/changeset/base/351399 Log: Fix the build with WITHOUT_GOOGLETEST Attempting to build the fusefs tests WITHOUT_GOOGLETEST will result in an error if the host system or sysroot doesn't already have googletest headers in /usr/include/private (e.g. host built/installed WITHOUT_GOOGLETEST, clean cross-buildworld WITHOUT_GOOGLETEST). Reviewed by: asomers Differential Revision: https://reviews.freebsd.org/D21367 Modified: head/tests/sys/fs/Makefile Modified: head/tests/sys/fs/Makefile ============================================================================== --- head/tests/sys/fs/Makefile Thu Aug 22 18:57:24 2019 (r351398) +++ head/tests/sys/fs/Makefile Thu Aug 22 19:10:31 2019 (r351399) @@ -1,5 +1,6 @@ # $FreeBSD$ +.include .include PACKAGE= tests @@ -9,7 +10,8 @@ TESTSDIR= ${TESTSBASE}/sys/fs TESTSRC= ${SRCTOP}/contrib/netbsd-tests/fs #TESTS_SUBDIRS+= nullfs # XXX: needs rump -.if ${COMPILER_FEATURES:Mc++14} +# fusefs tests cannot be compiled/used without the googletest infrastructure. +.if ${COMPILER_FEATURES:Mc++14} && ${MK_GOOGLETEST} != "no" TESTS_SUBDIRS+= fusefs .endif TESTS_SUBDIRS+= tmpfs From owner-svn-src-all@freebsd.org Thu Aug 22 20:09:33 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6AEC2D180C; Thu, 22 Aug 2019 20:09:33 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Dwbx269dz3N40; Thu, 22 Aug 2019 20:09:33 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2B1A6956B; Thu, 22 Aug 2019 20:09:33 +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 x7MK9WNh082882; Thu, 22 Aug 2019 20:09:32 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MK9W0j082881; Thu, 22 Aug 2019 20:09:32 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201908222009.x7MK9W0j082881@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 22 Aug 2019 20:09:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351403 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 351403 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 20:09:33 -0000 Author: imp Date: Thu Aug 22 20:09:32 2019 New Revision: 351403 URL: https://svnweb.freebsd.org/changeset/base/351403 Log: Move releasing of resources to later Turn off bus master after we detach the device (to match the prior order). Release MSI after we're done detaching and have turned off all the interrupts. Otherwise this may cause problems as other threads race nvme_detach. This more closely matches the old order. Reviewed by: mav@ Modified: head/sys/dev/nvme/nvme_pci.c Modified: head/sys/dev/nvme/nvme_pci.c ============================================================================== --- head/sys/dev/nvme/nvme_pci.c Thu Aug 22 19:49:51 2019 (r351402) +++ head/sys/dev/nvme/nvme_pci.c Thu Aug 22 20:09:32 2019 (r351403) @@ -215,11 +215,13 @@ static int nvme_pci_detach(device_t dev) { struct nvme_controller*ctrlr = DEVICE2SOFTC(dev); + int rv; + rv = nvme_detach(dev); if (ctrlr->msix_enabled) pci_release_msi(dev); pci_disable_busmaster(dev); - return (nvme_detach(dev)); + return (rv); } static int From owner-svn-src-all@freebsd.org Thu Aug 22 21:12:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9A5BED2C62; Thu, 22 Aug 2019 21:12:52 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Dy103Zglz3R6H; Thu, 22 Aug 2019 21:12:52 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5C587A259; Thu, 22 Aug 2019 21:12:52 +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 x7MLCqKT023649; Thu, 22 Aug 2019 21:12:52 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MLCpbt023647; Thu, 22 Aug 2019 21:12:51 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201908222112.x7MLCpbt023647@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 22 Aug 2019 21:12:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351406 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 351406 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 21:12:52 -0000 Author: imp Date: Thu Aug 22 21:12:51 2019 New Revision: 351406 URL: https://svnweb.freebsd.org/changeset/base/351406 Log: We need to define version 1 of nvme, not nvme_foo. Otherwise nvd won't load and people who pull in nvme/nvd from modules can't load nvd.ko since it depends on nvme, not nvme_foo. The duplicate doesn't matter since kldxref properly handles that case. Modified: head/sys/dev/nvme/nvme_ahci.c head/sys/dev/nvme/nvme_pci.c Modified: head/sys/dev/nvme/nvme_ahci.c ============================================================================== --- head/sys/dev/nvme/nvme_ahci.c Thu Aug 22 20:26:20 2019 (r351405) +++ head/sys/dev/nvme/nvme_ahci.c Thu Aug 22 21:12:51 2019 (r351406) @@ -55,7 +55,8 @@ static driver_t nvme_ahci_driver = { }; DRIVER_MODULE(nvme, ahci, nvme_ahci_driver, nvme_devclass, NULL, 0); -MODULE_VERSION(nvme_ahci, 1); +MODULE_VERSION(nvme, 1); +MODULE_DEPEND(nvme, cam, 1, 1, 1); static int nvme_ahci_probe (device_t device) Modified: head/sys/dev/nvme/nvme_pci.c ============================================================================== --- head/sys/dev/nvme/nvme_pci.c Thu Aug 22 20:26:20 2019 (r351405) +++ head/sys/dev/nvme/nvme_pci.c Thu Aug 22 21:12:51 2019 (r351406) @@ -62,7 +62,8 @@ static driver_t nvme_pci_driver = { }; DRIVER_MODULE(nvme, pci, nvme_pci_driver, nvme_devclass, NULL, 0); -MODULE_VERSION(nvme_pci, 1); +MODULE_VERSION(nvme, 1); +MODULE_DEPEND(nvme, cam, 1, 1, 1); static struct _pcsid { From owner-svn-src-all@freebsd.org Thu Aug 22 21:27:25 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 04734D30CE; Thu, 22 Aug 2019 21:27:25 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DyKm6Bcjz3wyQ; Thu, 22 Aug 2019 21:27:24 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-4.local (ralph.baldwin.cx [66.234.199.215]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 583DB12A12; Thu, 22 Aug 2019 21:27:22 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r351406 - head/sys/dev/nvme To: Warner Losh , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201908222112.x7MLCpbt023647@repo.freebsd.org> From: John Baldwin Openpgp: preference=signencrypt Autocrypt: addr=jhb@FreeBSD.org; keydata= mQGiBETQ+XcRBADMFybiq69u+fJRy/0wzqTNS8jFfWaBTs5/OfcV7wWezVmf9sgwn8TW0Dk0 c9MBl0pz+H01dA2ZSGZ5fXlmFIsee1WEzqeJzpiwd/pejPgSzXB9ijbLHZ2/E0jhGBcVy5Yo /Tw5+U/+laeYKu2xb0XPvM0zMNls1ah5OnP9a6Ql6wCgupaoMySb7DXm2LHD1Z9jTsHcAQMD /1jzh2BoHriy/Q2s4KzzjVp/mQO5DSm2z14BvbQRcXU48oAosHA1u3Wrov6LfPY+0U1tG47X 1BGfnQH+rNAaH0livoSBQ0IPI/8WfIW7ub4qV6HYwWKVqkDkqwcpmGNDbz3gfaDht6nsie5Z pcuCcul4M9CW7Md6zzyvktjnbz61BADGDCopfZC4of0Z3Ka0u8Wik6UJOuqShBt1WcFS8ya1 oB4rc4tXfSHyMF63aPUBMxHR5DXeH+EO2edoSwViDMqWk1jTnYza51rbGY+pebLQOVOxAY7k do5Ordl3wklBPMVEPWoZ61SdbcjhHVwaC5zfiskcxj5wwXd2E9qYlBqRg7QeSm9obiBCYWxk d2luIDxqaGJARnJlZUJTRC5vcmc+iGAEExECACAFAkTQ+awCGwMGCwkIBwMCBBUCCAMEFgID AQIeAQIXgAAKCRBy3lIGd+N/BI6RAJ9S97fvbME+3hxzE3JUyUZ6vTewDACdE1stFuSfqMvM jomvZdYxIYyTUpC5Ag0ERND5ghAIAPwsO0B7BL+bz8sLlLoQktGxXwXQfS5cInvL17Dsgnr3 1AKa94j9EnXQyPEj7u0d+LmEe6CGEGDh1OcGFTMVrof2ZzkSy4+FkZwMKJpTiqeaShMh+Goj XlwIMDxyADYvBIg3eN5YdFKaPQpfgSqhT+7El7w+wSZZD8pPQuLAnie5iz9C8iKy4/cMSOrH YUK/tO+Nhw8Jjlw94Ik0T80iEhI2t+XBVjwdfjbq3HrJ0ehqdBwukyeJRYKmbn298KOFQVHO EVbHA4rF/37jzaMadK43FgJ0SAhPPF5l4l89z5oPu0b/+5e2inA3b8J3iGZxywjM+Csq1tqz hltEc7Q+E08AAwUIAL+15XH8bPbjNJdVyg2CMl10JNW2wWg2Q6qdljeaRqeR6zFus7EZTwtX sNzs5bP8y51PSUDJbeiy2RNCNKWFMndM22TZnk3GNG45nQd4OwYK0RZVrikalmJY5Q6m7Z16 4yrZgIXFdKj2t8F+x613/SJW1lIr9/bDp4U9tw0V1g3l2dFtD3p3ZrQ3hpoDtoK70ioIAjjH aIXIAcm3FGZFXy503DOA0KaTWwvOVdYCFLm3zWuSOmrX/GsEc7ovasOWwjPn878qVjbUKWwx Q4QkF4OhUV9zPtf9tDSAZ3x7QSwoKbCoRCZ/xbyTUPyQ1VvNy/mYrBcYlzHodsaqUDjHuW+I SQQYEQIACQUCRND5ggIbDAAKCRBy3lIGd+N/BCO8AJ9j1dWVQWxw/YdTbEyrRKOY8YZNwwCf afMAg8QvmOWnHx3wl8WslCaXaE8= Message-ID: Date: Thu, 22 Aug 2019 14:27:20 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.7.1 MIME-Version: 1.0 In-Reply-To: <201908222112.x7MLCpbt023647@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 21:27:25 -0000 On 8/22/19 2:12 PM, Warner Losh wrote: > Author: imp > Date: Thu Aug 22 21:12:51 2019 > New Revision: 351406 > URL: https://svnweb.freebsd.org/changeset/base/351406 > > Log: > We need to define version 1 of nvme, not nvme_foo. Otherwise nvd won't > load and people who pull in nvme/nvd from modules can't load nvd.ko > since it depends on nvme, not nvme_foo. The duplicate doesn't matter > since kldxref properly handles that case. I would perhaps have put the MODULE_VERSION for nvme and its dependency on cam into nvme.c instead of duplicating it. I think that is more consistent with what we have done elsewhere in the tree. -- John Baldwin From owner-svn-src-all@freebsd.org Thu Aug 22 21:40:57 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 207FED33E0; Thu, 22 Aug 2019 21:40:57 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DydP01Lpz3xXg; Thu, 22 Aug 2019 21:40:57 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BEDEBA612; Thu, 22 Aug 2019 21:40:56 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7MLeuBe036695; Thu, 22 Aug 2019 21:40:56 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MLeuLY036694; Thu, 22 Aug 2019 21:40:56 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201908222140.x7MLeuLY036694@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 22 Aug 2019 21:40:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351407 - head/lib/libc/mips/gen X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/lib/libc/mips/gen X-SVN-Commit-Revision: 351407 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 21:40:57 -0000 Author: kevans Date: Thu Aug 22 21:40:56 2019 New Revision: 351407 URL: https://svnweb.freebsd.org/changeset/base/351407 Log: libc: mips: remove unused longjmp.c Reviewed by: imp, jhb MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D21330 Deleted: head/lib/libc/mips/gen/longjmp.c From owner-svn-src-all@freebsd.org Thu Aug 22 21:42:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B937CD367F; Thu, 22 Aug 2019 21:42:12 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Dyfr4WZdz3xvB; Thu, 22 Aug 2019 21:42:12 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 63DEAA684; Thu, 22 Aug 2019 21:42:12 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7MLgC12041420; Thu, 22 Aug 2019 21:42:12 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MLgCb6041419; Thu, 22 Aug 2019 21:42:12 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201908222142.x7MLgCb6041419@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 22 Aug 2019 21:42:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351408 - head/stand/libsa/mips X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/libsa/mips X-SVN-Commit-Revision: 351408 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 21:42:12 -0000 Author: kevans Date: Thu Aug 22 21:42:11 2019 New Revision: 351408 URL: https://svnweb.freebsd.org/changeset/base/351408 Log: libsa: mips: use _JB_* from machine/asm.h, remove regnum dep This brings the libsa/mips _setjmp implementation closer to parity with the libc version. Reviewed by: imp, jhb MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D21330 Modified: head/stand/libsa/mips/_setjmp.S Modified: head/stand/libsa/mips/_setjmp.S ============================================================================== --- head/stand/libsa/mips/_setjmp.S Thu Aug 22 21:40:56 2019 (r351407) +++ head/stand/libsa/mips/_setjmp.S Thu Aug 22 21:42:11 2019 (r351408) @@ -36,7 +36,6 @@ * $FreeBSD$ */ -#include #include #if 0 @@ -59,19 +58,19 @@ LEAF(_setjmp) .set noreorder - REG_LI v0, 0xACEDBADE # sigcontext magic number - REG_S ra, (2 * SZREG)(a0) # sc_pc = return address - REG_S v0, (3 * SZREG)(a0) # saved in sc_regs[0] - REG_S s0, ((S0 + 3) * SZREG)(a0) - REG_S s1, ((S1 + 3) * SZREG)(a0) - REG_S s2, ((S2 + 3) * SZREG)(a0) - REG_S s3, ((S3 + 3) * SZREG)(a0) - REG_S s4, ((S4 + 3) * SZREG)(a0) - REG_S s5, ((S5 + 3) * SZREG)(a0) - REG_S s6, ((S6 + 3) * SZREG)(a0) - REG_S s7, ((S7 + 3) * SZREG)(a0) - REG_S sp, ((SP + 3) * SZREG)(a0) - REG_S s8, ((S8 + 3) * SZREG)(a0) + REG_LI v0, _JB_MAGIC__SETJMP # sigcontext magic number + REG_S v0, (_JB_MAGIC * SZREG)(a0) # saved in sc_regs[0] + REG_S ra, (_JB_REG_RA * SZREG)(a0) # sc_pc = return address + REG_S s0, (_JB_REG_S0 * SZREG)(a0) + REG_S s1, (_JB_REG_S1 * SZREG)(a0) + REG_S s2, (_JB_REG_S2 * SZREG)(a0) + REG_S s3, (_JB_REG_S3 * SZREG)(a0) + REG_S s4, (_JB_REG_S4 * SZREG)(a0) + REG_S s5, (_JB_REG_S5 * SZREG)(a0) + REG_S s6, (_JG_REG_S6 * SZREG)(a0) + REG_S s7, (_JB_REG_S7 * SZREG)(a0) + REG_S sp, (_JB_REG_SP * SZREG)(a0) + REG_S s8, (_JB_REG_S8 * SZREG)(a0) j ra move v0, zero END(_setjmp) @@ -82,21 +81,21 @@ LEAF(_longjmp) .cprestore 16 #endif .set noreorder - REG_L v0, (3 * SZREG)(a0) # get magic number - REG_L ra, (2 * SZREG)(a0) - bne v0, 0xACEDBADE, botch # jump if error + REG_L v0, (_JB_MAGIC * SZREG)(a0) # get magic number + REG_L ra, (_JB_REG_RA * SZREG)(a0) + bne v0, _JB_MAGIC__SETJMP, botch # jump if error addu sp, sp, 32 # does not matter, sanity - REG_L s0, ((S0 + 3) * SZREG)(a0) - REG_L s1, ((S1 + 3) * SZREG)(a0) - REG_L s2, ((S2 + 3) * SZREG)(a0) - REG_L s3, ((S3 + 3) * SZREG)(a0) - REG_L s4, ((S4 + 3) * SZREG)(a0) - REG_L s5, ((S5 + 3) * SZREG)(a0) - REG_L s6, ((S6 + 3) * SZREG)(a0) - REG_L s7, ((S7 + 3) * SZREG)(a0) - REG_L sp, ((SP + 3) * SZREG)(a0) - REG_L s8, ((S8 + 3) * SZREG)(a0) + REG_L s0, (_JB_REG_S0 * SZREG)(a0) + REG_L s1, (_JB_REG_S1 * SZREG)(a0) + REG_L s2, (_JB_REG_S2 * SZREG)(a0) + REG_L s3, (_JB_REG_S3 * SZREG)(a0) + REG_L s4, (_JB_REG_S4 * SZREG)(a0) + REG_L s5, (_JB_REG_S5 * SZREG)(a0) + REG_L s6, (_JB_REG_S6 * SZREG)(a0) + REG_L s7, (_JB_REG_S7 * SZREG)(a0) + REG_L sp, (_JB_REG_SP * SZREG)(a0) + REG_L s8, (_JB_REG_S8 * SZREG)(a0) j ra move v0, a1 From owner-svn-src-all@freebsd.org Thu Aug 22 21:43:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 464EED370E; Thu, 22 Aug 2019 21:43:24 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46DyhD0HhTz3y5M; Thu, 22 Aug 2019 21:43:24 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B772CA7BC; Thu, 22 Aug 2019 21:43:23 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7MLhNOV041518; Thu, 22 Aug 2019 21:43:23 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MLhMhS041510; Thu, 22 Aug 2019 21:43:22 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201908222143.x7MLhMhS041510@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 22 Aug 2019 21:43:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351409 - in head: lib/libc/mips/gen lib/libproc lib/libthread_db/arch/mips sys/mips/include tests/sys/kern X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: lib/libc/mips/gen lib/libproc lib/libthread_db/arch/mips sys/mips/include tests/sys/kern X-SVN-Commit-Revision: 351409 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 21:43:24 -0000 Author: kevans Date: Thu Aug 22 21:43:21 2019 New Revision: 351409 URL: https://svnweb.freebsd.org/changeset/base/351409 Log: mips: hide regnum definitions behind _KERNEL/_WANT_MIPS_REGNUM machine/regnum.h ends up being included by sys/procfs.h and sys/ptrace.h via machine/reg.h. Many of the regnum definitions are too short and too generic to be exposing to any userland application including one of these two headers. Moreover, these actively cause build failures in googletest (template expanding to template ). Hide the definitions behind _KERNEL or _WANT_MIPS_REGNUM, and patch all of the userland consumers to define as needed. Discussed with: imp, jhb Reviewed by: imp, jhb MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D21330 Modified: head/lib/libc/mips/gen/_setjmp.S head/lib/libc/mips/gen/makecontext.c head/lib/libc/mips/gen/setjmp.S head/lib/libc/mips/gen/sigsetjmp.S head/lib/libproc/proc_regs.c head/lib/libthread_db/arch/mips/libpthread_md.c head/sys/mips/include/regnum.h head/tests/sys/kern/ptrace_test.c Modified: head/lib/libc/mips/gen/_setjmp.S ============================================================================== --- head/lib/libc/mips/gen/_setjmp.S Thu Aug 22 21:42:11 2019 (r351408) +++ head/lib/libc/mips/gen/_setjmp.S Thu Aug 22 21:43:21 2019 (r351409) @@ -34,7 +34,6 @@ #include __FBSDID("$FreeBSD$"); -#include #include "SYS.h" Modified: head/lib/libc/mips/gen/makecontext.c ============================================================================== --- head/lib/libc/mips/gen/makecontext.c Thu Aug 22 21:42:11 2019 (r351408) +++ head/lib/libc/mips/gen/makecontext.c Thu Aug 22 21:43:21 2019 (r351409) @@ -39,6 +39,7 @@ __RCSID("$NetBSD: makecontext.c,v 1.5 2009/12/14 01:07 #include #include +#define _WANT_MIPS_REGNUM #include #include Modified: head/lib/libc/mips/gen/setjmp.S ============================================================================== --- head/lib/libc/mips/gen/setjmp.S Thu Aug 22 21:42:11 2019 (r351408) +++ head/lib/libc/mips/gen/setjmp.S Thu Aug 22 21:43:21 2019 (r351409) @@ -34,7 +34,6 @@ #include __FBSDID("$FreeBSD$"); -#include #if defined(LIBC_SCCS) && !defined(lint) ASMSTR("from: @(#)setjmp.s 8.1 (Berkeley) 6/4/93") Modified: head/lib/libc/mips/gen/sigsetjmp.S ============================================================================== --- head/lib/libc/mips/gen/sigsetjmp.S Thu Aug 22 21:42:11 2019 (r351408) +++ head/lib/libc/mips/gen/sigsetjmp.S Thu Aug 22 21:43:21 2019 (r351409) @@ -34,7 +34,6 @@ #include __FBSDID("$FreeBSD$"); -#include #if defined(LIBC_SCCS) && !defined(lint) ASMSTR("from: @(#)setjmp.s 8.1 (Berkeley) 6/4/93") ASMSTR("$NetBSD: sigsetjmp.S,v 1.8 2005/09/17 11:49:39 tsutsui Exp $") Modified: head/lib/libproc/proc_regs.c ============================================================================== --- head/lib/libproc/proc_regs.c Thu Aug 22 21:42:11 2019 (r351408) +++ head/lib/libproc/proc_regs.c Thu Aug 22 21:43:21 2019 (r351409) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); #include +#define _WANT_MIPS_REGNUM #include #include Modified: head/lib/libthread_db/arch/mips/libpthread_md.c ============================================================================== --- head/lib/libthread_db/arch/mips/libpthread_md.c Thu Aug 22 21:42:11 2019 (r351408) +++ head/lib/libthread_db/arch/mips/libpthread_md.c Thu Aug 22 21:43:21 2019 (r351409) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); #include +#define _WANT_MIPS_REGNUM #include #include #include Modified: head/sys/mips/include/regnum.h ============================================================================== --- head/sys/mips/include/regnum.h Thu Aug 22 21:42:11 2019 (r351408) +++ head/sys/mips/include/regnum.h Thu Aug 22 21:43:21 2019 (r351409) @@ -44,11 +44,15 @@ #ifndef _MACHINE_REGNUM_H_ #define _MACHINE_REGNUM_H_ +#define NUMSAVEREGS 40 +#define NUMFPREGS 34 + /* * Location of the saved registers relative to ZERO. * This must match struct trapframe defined in frame.h exactly. * This must also match regdef.h. */ +#if defined(_KERNEL) || defined(_WANT_MIPS_REGNUM) #define ZERO 0 #define AST 1 #define V0 2 @@ -105,7 +109,6 @@ */ #define IC 38 #define DUMMY 39 /* for 8 byte alignment */ -#define NUMSAVEREGS 40 /* * Pseudo registers so we save a complete set of registers regardless of @@ -164,10 +167,6 @@ #define FSR (FPBASE+32) #define FIR (FPBASE+33) -#define NUMFPREGS 34 - -#define NREGS (NUMSAVEREGS + NUMFPREGS) - /* * Index of FP registers in 'struct frame', relative to the base * of the FP registers in frame (i.e., *not* including the general @@ -207,5 +206,7 @@ #define F31_NUM (31) #define FSR_NUM (32) #define FIR_NUM (33) + +#endif /* _KERNEL || _WANT_MIPS_REGNUM */ #endif /* !_MACHINE_REGNUM_H_ */ Modified: head/tests/sys/kern/ptrace_test.c ============================================================================== --- head/tests/sys/kern/ptrace_test.c Thu Aug 22 21:42:11 2019 (r351408) +++ head/tests/sys/kern/ptrace_test.c Thu Aug 22 21:43:21 2019 (r351409) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#define _WANT_MIPS_REGNUM #include #include #include From owner-svn-src-all@freebsd.org Thu Aug 22 21:49:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9CD51D38D4; Thu, 22 Aug 2019 21:49:14 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Dypy3WjDz3yHs; Thu, 22 Aug 2019 21:49:14 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5A962A7C4; Thu, 22 Aug 2019 21:49:14 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7MLnE6c041839; Thu, 22 Aug 2019 21:49:14 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MLnEfq041838; Thu, 22 Aug 2019 21:49:14 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201908222149.x7MLnEfq041838@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 22 Aug 2019 21:49:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351410 - head/stand/libsa/mips X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/libsa/mips X-SVN-Commit-Revision: 351410 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 21:49:14 -0000 Author: kevans Date: Thu Aug 22 21:49:13 2019 New Revision: 351410 URL: https://svnweb.freebsd.org/changeset/base/351410 Log: libsa: mips: fix typo that had slipped into the diff on local machine MFC after: 1 week X-MFC-With: r351408 Modified: head/stand/libsa/mips/_setjmp.S Modified: head/stand/libsa/mips/_setjmp.S ============================================================================== --- head/stand/libsa/mips/_setjmp.S Thu Aug 22 21:43:21 2019 (r351409) +++ head/stand/libsa/mips/_setjmp.S Thu Aug 22 21:49:13 2019 (r351410) @@ -67,7 +67,7 @@ LEAF(_setjmp) REG_S s3, (_JB_REG_S3 * SZREG)(a0) REG_S s4, (_JB_REG_S4 * SZREG)(a0) REG_S s5, (_JB_REG_S5 * SZREG)(a0) - REG_S s6, (_JG_REG_S6 * SZREG)(a0) + REG_S s6, (_JB_REG_S6 * SZREG)(a0) REG_S s7, (_JB_REG_S7 * SZREG)(a0) REG_S sp, (_JB_REG_SP * SZREG)(a0) REG_S s8, (_JB_REG_S8 * SZREG)(a0) From owner-svn-src-all@freebsd.org Thu Aug 22 21:56:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 08BA5D3B7D; Thu, 22 Aug 2019 21:56:12 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Dyyz6Nfnz3yhh; Thu, 22 Aug 2019 21:56:11 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BC3ADA988; Thu, 22 Aug 2019 21:56: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 x7MLuBZL047344; Thu, 22 Aug 2019 21:56:11 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7MLuBZH047343; Thu, 22 Aug 2019 21:56:11 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201908222156.x7MLuBZH047343@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 22 Aug 2019 21:56:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351411 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 351411 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 21:56:12 -0000 Author: imp Date: Thu Aug 22 21:56:11 2019 New Revision: 351411 URL: https://svnweb.freebsd.org/changeset/base/351411 Log: When we have errors resetting the device before we allocate the queues, don't try to tear them down in the ctrlr_destroy path. Otherwise, we dereference queue structures that are NULL and we trap. This fix is incomplete: we leak IRQ and MSI resources when this happens. That's preferable to a crash but still should be fixed. Modified: head/sys/dev/nvme/nvme_ctrlr.c Modified: head/sys/dev/nvme/nvme_ctrlr.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr.c Thu Aug 22 21:49:13 2019 (r351410) +++ head/sys/dev/nvme/nvme_ctrlr.c Thu Aug 22 21:56:11 2019 (r351411) @@ -1211,12 +1211,14 @@ nvme_ctrlr_destruct(struct nvme_controller *ctrlr, dev if (ctrlr->cdev) destroy_dev(ctrlr->cdev); - if (!gone) - nvme_ctrlr_destroy_qpairs(ctrlr); - for (i = 0; i < ctrlr->num_io_queues; i++) - nvme_io_qpair_destroy(&ctrlr->ioq[i]); - free(ctrlr->ioq, M_NVME); - nvme_admin_qpair_destroy(&ctrlr->adminq); + if (ctrlr->is_initialized) { + if (!gone) + nvme_ctrlr_destroy_qpairs(ctrlr); + for (i = 0; i < ctrlr->num_io_queues; i++) + nvme_io_qpair_destroy(&ctrlr->ioq[i]); + free(ctrlr->ioq, M_NVME); + nvme_admin_qpair_destroy(&ctrlr->adminq); + } /* * Notify the controller of a shutdown, even though this is due to From owner-svn-src-all@freebsd.org Thu Aug 22 23:54:36 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 086D8D56A1; Thu, 22 Aug 2019 23:54:36 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (glebi.us [162.251.186.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 46F1bb41h8z43tR; Thu, 22 Aug 2019 23:54:34 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id x7MNsQTP074840 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Thu, 22 Aug 2019 16:54:26 -0700 (PDT) (envelope-from glebius@freebsd.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id x7MNsP44074839; Thu, 22 Aug 2019 16:54:25 -0700 (PDT) (envelope-from glebius@freebsd.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@freebsd.org using -f Date: Thu, 22 Aug 2019 16:54:25 -0700 From: Gleb Smirnoff To: "Stephen J. Kiernan" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r351244 - head/sys/dev/usb/net Message-ID: <20190822235425.GP4556@FreeBSD.org> References: <201908200106.x7K16hWT067244@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MGYHOYXEY6WxJCY8" Content-Disposition: inline In-Reply-To: <201908200106.x7K16hWT067244@repo.freebsd.org> User-Agent: Mutt/1.12.1 (2019-06-15) X-Rspamd-Queue-Id: 46F1bb41h8z43tR X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-2.91 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.996,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.91)[-0.911,0]; ASN(0.00)[asn:27348, ipnet:162.251.186.0/24, country:US] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 23:54:36 -0000 --MGYHOYXEY6WxJCY8 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Stephen, On Tue, Aug 20, 2019 at 01:06:43AM +0000, Stephen J. Kiernan wrote: S> Author: stevek S> Date: Tue Aug 20 01:06:43 2019 S> New Revision: 351244 S> URL: https://svnweb.freebsd.org/changeset/base/351244 S> S> Log: S> usb_ethernet.h includes a number of mii headers, but only does so in S> order to have struct mii_data available. However, it only really needs S> a forward declaration of struct mii_data for use in pointer form for S> the return type of a function prototype. S> S> Custom kernel configuration that have usb and fdt enabled, but no miibus, S> end up with compilation failures because miibus_if.h will not get S> generated. S> S> Due to the above, the following changes have been made to usb_ethernet.h: S> * remove the inclusion of mii headers S> * forward-declare struct mii_data S> * include net/ifq.h to satify the need for complete struct ifqueue This is a header (and structure) that is on a kill list :) Polluting another header moves us a bit backwards. Can you please take a look at the attached patch? It substitutes it for mbufq, as already done for many other drivers. -- Gleb Smirnoff --MGYHOYXEY6WxJCY8 Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="ue_rxq-mbufq.diff" Index: sys/dev/usb/net/if_axe.c =================================================================== --- sys/dev/usb/net/if_axe.c (revision 351411) +++ sys/dev/usb/net/if_axe.c (working copy) @@ -1149,7 +1149,7 @@ axe_rxeof(struct usb_ether *ue, struct usb_page_ca } } - _IF_ENQUEUE(&ue->ue_rxq, m); + (void)mbufq_enqueue(&ue->ue_rxq, m); return (0); } Index: sys/dev/usb/net/if_axge.c =================================================================== --- sys/dev/usb/net/if_axge.c (revision 351411) +++ sys/dev/usb/net/if_axge.c (working copy) @@ -1041,7 +1041,7 @@ axge_rxeof(struct usb_ether *ue, struct usb_page_c } if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); - _IF_ENQUEUE(&ue->ue_rxq, m); + (void)mbufq_enqueue(&ue->ue_rxq, m); } static void Index: sys/dev/usb/net/usb_ethernet.c =================================================================== --- sys/dev/usb/net/usb_ethernet.c (revision 351411) +++ sys/dev/usb/net/usb_ethernet.c (working copy) @@ -598,7 +598,7 @@ uether_rxmbuf(struct usb_ether *ue, struct mbuf *m m->m_pkthdr.len = m->m_len = len; /* enqueue for later when the lock can be released */ - _IF_ENQUEUE(&ue->ue_rxq, m); + (void)mbufq_enqueue(&ue->ue_rxq, m); return (0); } @@ -628,7 +628,7 @@ uether_rxbuf(struct usb_ether *ue, struct usb_page m->m_pkthdr.len = m->m_len = len; /* enqueue for later when the lock can be released */ - _IF_ENQUEUE(&ue->ue_rxq, m); + (void)mbufq_enqueue(&ue->ue_rxq, m); return (0); } @@ -641,7 +641,7 @@ uether_rxflush(struct usb_ether *ue) UE_LOCK_ASSERT(ue, MA_OWNED); for (;;) { - _IF_DEQUEUE(&ue->ue_rxq, m); + m = mbufq_dequeue(&ue->ue_rxq); if (m == NULL) break; Index: sys/dev/usb/net/usb_ethernet.h =================================================================== --- sys/dev/usb/net/usb_ethernet.h (revision 351411) +++ sys/dev/usb/net/usb_ethernet.h (working copy) @@ -46,7 +46,6 @@ #include #include #include -#include #include #include @@ -89,7 +88,7 @@ struct usb_ether { struct usb_process ue_tq; struct sysctl_ctx_list ue_sysctl_ctx; - struct ifqueue ue_rxq; + struct mbufq ue_rxq; struct usb_callout ue_watchdog; struct usb_ether_cfg_task ue_sync_task[2]; struct usb_ether_cfg_task ue_media_task[2]; Index: sys/sys/mbuf.h =================================================================== --- sys/sys/mbuf.h (revision 351411) +++ sys/sys/mbuf.h (working copy) @@ -1432,7 +1432,7 @@ static inline int mbufq_full(const struct mbufq *mq) { - return (mq->mq_len >= mq->mq_maxlen); + return (mq->mq_maxlen > 0 && mq->mq_len >= mq->mq_maxlen); } static inline int --MGYHOYXEY6WxJCY8-- From owner-svn-src-all@freebsd.org Thu Aug 22 23:57:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3C537D5973 for ; Thu, 22 Aug 2019 23:57:46 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x731.google.com (mail-qk1-x731.google.com [IPv6:2607:f8b0:4864:20::731]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46F1gF3bXvz446c for ; Thu, 22 Aug 2019 23:57:45 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x731.google.com with SMTP id m2so6756402qki.12 for ; Thu, 22 Aug 2019 16:57:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=GNanXvTZBarcjme4+Gs9g+38Bam3f46t4/uSMBxwxvc=; b=n2KkZan0/GuthY+CxpMFNv29BIjyPNyVd6sppCYntRdcg7h4q70n2jtr/MRzx3ZJ3/ ivE3UppgKmLh6Ns+8c+9C00NUTW1y+fMAr/Y7heicyj1H9OuKowWmvIESpGmVMv1LXLs t1ibQkY0+OJUFnMXKVPMr/5tCnFd1uGBTo0m0o220I4/ExdmFu+hIi+p0XOv60PfYNu6 eqOOYotwBA6LBpEvZ0N5Cu7vvOwvhdg4Dx5UyiZXUPRMOjuvaEHYhJqKHuicBAzZax2I 95Qhjs3xzbxN5yj4hthA95CHxiJSz/5o/Nto3za6hkJw2UVz9Se3nMStr1nTucsLoTNb hefw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=GNanXvTZBarcjme4+Gs9g+38Bam3f46t4/uSMBxwxvc=; b=Dzqe8xLX6+Ndi6QywUmZJvjXg5H5T49Mc9leGj2oG5gaua535Lwf2Ac44bTikGJ41j POCnNOy1n0R+uo2aYfQvPf6JDkhx8Kf4dUOgDPPS/2HFiXQdjIO4ZtrFcYc6SpdVY60r S+HUpB75v7AtpJCjpAcD5T8v2tABTv3C99ywjUAHMIFJ300Xb18QK4UsRzKch0hrOXCp 4cz+cxVw1ufqSPsz22V/3HRBPlAOqueKnT0F2TbvpW5BNbS9KICruikCR5cfr3IZl26D fAxENiiekMmT6SHy1aoTR3ttArr7lMoBIVrumTaKd75MD65GncG3Hqypal9gLSx/iznd FThA== X-Gm-Message-State: APjAAAWiwAPehW9zSB0yzov/i1+H6esycdBDKU0OHpc58EpF8+B1R1wT TGAv7xQAsX9dZqrjujZfX7nQSXGUhXLI/TFn4TyWqA== X-Google-Smtp-Source: APXvYqxoZs7BMaesz+GXEDdyBoqiy3+Cq6xT4NeQn4n8/sMBZTOgNwVZVoBgui34Yxg1FgPEn3UOWBF3oxokxq79crQ= X-Received: by 2002:a05:620a:621:: with SMTP id 1mr1727018qkv.380.1566518263347; Thu, 22 Aug 2019 16:57:43 -0700 (PDT) MIME-Version: 1.0 References: <201908222112.x7MLCpbt023647@repo.freebsd.org> In-Reply-To: From: Warner Losh Date: Thu, 22 Aug 2019 17:57:32 -0600 Message-ID: Subject: Re: svn commit: r351406 - head/sys/dev/nvme To: John Baldwin Cc: Warner Losh , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Rspamd-Queue-Id: 46F1gF3bXvz446c X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=n2KkZan0; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::731) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-4.92 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; URI_COUNT_ODD(1.00)[3]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; NEURAL_HAM_SHORT(-0.99)[-0.991,0]; RCVD_IN_DNSWL_NONE(0.00)[1.3.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.93)[ip: (-9.35), ipnet: 2607:f8b0::/32(-2.90), asn: 15169(-2.35), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 22 Aug 2019 23:57:46 -0000 On Thu, Aug 22, 2019, 3:27 PM John Baldwin wrote: > On 8/22/19 2:12 PM, Warner Losh wrote: > > Author: imp > > Date: Thu Aug 22 21:12:51 2019 > > New Revision: 351406 > > URL: https://svnweb.freebsd.org/changeset/base/351406 > > > > Log: > > We need to define version 1 of nvme, not nvme_foo. Otherwise nvd won't > > load and people who pull in nvme/nvd from modules can't load nvd.ko > > since it depends on nvme, not nvme_foo. The duplicate doesn't matter > > since kldxref properly handles that case. > > I would perhaps have put the MODULE_VERSION for nvme and its dependency > on cam into nvme.c instead of duplicating it. I think that is more > consistent > with what we have done elsewhere in the tree. > That can't be true. Doing that doesn't work. We wind up dereferencing freed memory, as we discussed on IRC. Each DRIVER_MODULE needs its own MODULE_VERSION given the current code. I'd call that a bug, but not one I could dig into today... Warner > From owner-svn-src-all@freebsd.org Fri Aug 23 00:53:50 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 382F4D6878; Fri, 23 Aug 2019 00:53:50 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46F2vy0QqTz46Yx; Fri, 23 Aug 2019 00:53:50 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (static-71-168-218-4.cmdnnj.fios.verizon.net [71.168.218.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jkim/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id CF533142E2; Fri, 23 Aug 2019 00:53:49 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: svn commit: r351406 - head/sys/dev/nvme To: Warner Losh , John Baldwin Cc: Warner Losh , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201908222112.x7MLCpbt023647@repo.freebsd.org> From: Jung-uk Kim Autocrypt: addr=jkim@FreeBSD.org; prefer-encrypt=mutual; keydata= mQENBFJBztUBCAChqNyGqmFuNo0U7MBzsD+q/G6Cv0l7LGVrOAsgh34M8wIWhD+tztDWMVfn AhxNDd0ceCj2bYOe67sTQxAScEcbt2FfvPOLp9MEXb9qohZj172Gwkk7dnhOhZZKhVGVZKM4 NcsuBDUzgf4f3Vdzj4wg6WlqplnTZo8lPE4hZWvZHoFIyunPTJWenybeV1xnxK7JkUdSvQR0 fA59RfTTECMwTrSEfYGUnxIDBraxJ7Ecs/0hGQ7sljIj8WBvlRDU5fU1xfF35aw56T8POQRq F4E6RVJW3YGuTpSwgtGZOTfygcLRhAiq3dFC3JNLaTVTpM8PjOinJyt9AU6RoITGOKwDABEB AAG0Hkp1bmctdWsgS2ltIDxqa2ltQEZyZWVCU0Qub3JnPokBPQQTAQoAJwUCUkHO1QIbAwUJ E0/POwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRB8n5Ym/NvxRqyzB/wL7QtsIpeGfGIA ZPMtgXMucM3NWzomyQMln2j2efUkDKthzh9jBxgF53TjOr7imwIt0PT2k1bqctPrq5IRqnu9 mGroqaCLE3LG2/E3jEaao4k9PO6efwlioyivUo5NrqIQOQ4k3EAXw7d2y0Dk1VpTgdMrnUAB hj7lGlLqS4ydcrf24DdbCRGdEQwqd9DBeBgbWynxAJMgbZBhYVEyIHuQKkJ8qY0ibIPXXuF0 KYDeH0qUHtWV2K3srNyPtymUkBQD84Pl1GWRYx05XdUHDmnX0JV3lg0BfYJZgZv0ehPQrMfY Fd9abTkf9FHQYz1JtsC8wUuRgqElRd6+YAGf8Tt9uQENBFJBztUBCADLtSrP44El2VoJmH14 OFrlOgxzZnbn+Y/Gf1k12mJBiR+A+pBeRLD50p7AiTrjHRxO3cHcl9Dh0uf1VSbXgp8Or0ye iP/86fZPd4k5HXNmDTLL0HecPE08SCqGZ0W8vllQrokB1QxxRUB+fFMPJyMCjDAZ7P9fFTOS dTw1bJSTtOD8Sx8MpZUa9ti06bXFlVYDlaqSdgk181SSx+ZbSKkQR8CIMARlHwiLsa3Z9q9O EJr20HPyxe0AlTvwvFndH61hg7ds63eRvglwRnNON28VXO/lvKXq7Br/CiiyhFdKfINIx2Z5 htYq22tgGTW7mBURbIKoECFBTX9Lv6BXz6w9ABEBAAGJASUEGAEKAA8FAlJBztUCGwwFCRNP zzsACgkQfJ+WJvzb8UZcJQf+IsTCxUEqY7W/pT84sMg5/QD3s6ufTRncvq14fEOxCNq1Rf4Q 9P+tOFa8GZfKDGB2BFGIrW7uT5mlmKdK1vO6ZIA930y5kUsnCmBUEBJkE2ciSQk01aB/1o62 Q3Gk/F6BwtNY9OXiqF7AcAo+K/BMIaqb26QKeh+IIgK1NN9dQiq3ByTbl4zpGZa6MmsnnRTu mzGKt2nkz7vBzH6+hZp1OzGZikgjjhYWVFoJo1dvf/rv4obs0ZJEqFPQs/1Qa1dbkKBv6odB XJpPH0ssOluTY24d1XxTiKTwmWvHeQkOKRAIfD7VTtF4TesoZYkf7hsh3e3VwXhptSLFnEOi WwYofg== Message-ID: Date: Thu, 22 Aug 2019 20:53:49 -0400 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------A5AC9B068D6157EF15B1EC8F" Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 00:53:50 -0000 This is a multi-part message in MIME format. --------------A5AC9B068D6157EF15B1EC8F Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit On 19. 8. 22., Warner Losh wrote: > On Thu, Aug 22, 2019, 3:27 PM John Baldwin > wrote: > > On 8/22/19 2:12 PM, Warner Losh wrote: > > Author: imp > > Date: Thu Aug 22 21:12:51 2019 > > New Revision: 351406 > > URL: https://svnweb.freebsd.org/changeset/base/351406 > > > > Log: > >   We need to define version 1 of nvme, not nvme_foo. Otherwise nvd > won't > >   load and people who pull in nvme/nvd from modules can't load nvd.ko > >   since it depends on nvme, not nvme_foo. The duplicate doesn't matter > >   since kldxref properly handles that case. > > I would perhaps have put the MODULE_VERSION for nvme and its dependency > on cam into nvme.c instead of duplicating it.  I think that is more > consistent > with what we have done elsewhere in the tree. > > > That can't be true. Doing that doesn't work. We wind up dereferencing > freed memory, as we discussed on IRC. Each DRIVER_MODULE needs its own > MODULE_VERSION given the current code. I'd call that a bug, but not one > I could dig into today... FYI, the attached patch works for me. Jung-uk Kim --------------A5AC9B068D6157EF15B1EC8F Content-Type: text/x-patch; charset=UTF-8; name="nvme.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="nvme.diff" Index: sys/dev/nvme/nvme.c =================================================================== --- sys/dev/nvme/nvme.c (revision 351406) +++ sys/dev/nvme/nvme.c (working copy) @@ -57,6 +57,9 @@ MALLOC_DEFINE(M_NVME, "nvme", "nvme(4) memory allo devclass_t nvme_devclass; +MODULE_VERSION(nvme, 1); +MODULE_DEPEND(nvme, cam, 1, 1, 1); + static void nvme_init(void) { Index: sys/dev/nvme/nvme_ahci.c =================================================================== --- sys/dev/nvme/nvme_ahci.c (revision 351406) +++ sys/dev/nvme/nvme_ahci.c (working copy) @@ -54,9 +54,9 @@ static driver_t nvme_ahci_driver = { sizeof(struct nvme_controller), }; -DRIVER_MODULE(nvme, ahci, nvme_ahci_driver, nvme_devclass, NULL, 0); -MODULE_VERSION(nvme, 1); -MODULE_DEPEND(nvme, cam, 1, 1, 1); +DRIVER_MODULE(nvme_ahci, ahci, nvme_ahci_driver, nvme_devclass, NULL, 0); +MODULE_VERSION(nvme_ahci, 1); +MODULE_DEPEND(nvme_ahci, nvme, 1, 1, 1); static int nvme_ahci_probe (device_t device) Index: sys/dev/nvme/nvme_pci.c =================================================================== --- sys/dev/nvme/nvme_pci.c (revision 351406) +++ sys/dev/nvme/nvme_pci.c (working copy) @@ -61,9 +61,9 @@ static driver_t nvme_pci_driver = { sizeof(struct nvme_controller), }; -DRIVER_MODULE(nvme, pci, nvme_pci_driver, nvme_devclass, NULL, 0); -MODULE_VERSION(nvme, 1); -MODULE_DEPEND(nvme, cam, 1, 1, 1); +DRIVER_MODULE(nvme_pci, pci, nvme_pci_driver, nvme_devclass, NULL, 0); +MODULE_VERSION(nvme_pci, 1); +MODULE_DEPEND(nvme_pci, nvme, 1, 1, 1); static struct _pcsid { --------------A5AC9B068D6157EF15B1EC8F-- From owner-svn-src-all@freebsd.org Fri Aug 23 01:16:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F2DB8D6DDA; Fri, 23 Aug 2019 01:16:12 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46F3Pm5nymz47cw; Fri, 23 Aug 2019 01:16:12 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A8B60CF03; Fri, 23 Aug 2019 01:16:12 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7N1GCbO064821; Fri, 23 Aug 2019 01:16:12 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7N1GCHB064820; Fri, 23 Aug 2019 01:16:12 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201908230116.x7N1GCHB064820@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 23 Aug 2019 01:16:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351412 - head/stand/i386/boot2 X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/i386/boot2 X-SVN-Commit-Revision: 351412 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 01:16:13 -0000 Author: kevans Date: Fri Aug 23 01:16:12 2019 New Revision: 351412 URL: https://svnweb.freebsd.org/changeset/base/351412 Log: stand: boot2: fix amd64-xtoolchain-gcc build -Wno-missing-declarations is the GCC equivalent of -Wno-missing-prototypes... this was overlooked in r351135. MFC after: 3 days X-MFC-With: r351135 Modified: head/stand/i386/boot2/Makefile Modified: head/stand/i386/boot2/Makefile ============================================================================== --- head/stand/i386/boot2/Makefile Thu Aug 22 21:56:11 2019 (r351411) +++ head/stand/i386/boot2/Makefile Fri Aug 23 01:16:12 2019 (r351412) @@ -80,7 +80,7 @@ boot2.bin: boot2.out # For __ashldi3 .PATH: ${SRCTOP}/contrib/compiler-rt/lib/builtins -CFLAGS.ashldi3.c= -Wno-missing-prototypes +CFLAGS.ashldi3.c= -Wno-missing-prototypes -Wno-missing-declarations CLEANFILES+= ashldi3.o boot2.out: ${BTXCRT} boot2.o sio.o ashldi3.o From owner-svn-src-all@freebsd.org Fri Aug 23 01:25:39 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8361ED715F; Fri, 23 Aug 2019 01:25:39 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46F3cg2srcz48RV; Fri, 23 Aug 2019 01:25:39 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 44269D0CE; Fri, 23 Aug 2019 01:25:39 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7N1PdSO070891; Fri, 23 Aug 2019 01:25:39 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7N1PdTN070890; Fri, 23 Aug 2019 01:25:39 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <201908230125.x7N1PdTN070890@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Fri, 23 Aug 2019 01:25:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351413 - head/usr.bin/last X-SVN-Group: head X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: head/usr.bin/last X-SVN-Commit-Revision: 351413 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 01:25:39 -0000 Author: eugen Date: Fri Aug 23 01:25:38 2019 New Revision: 351413 URL: https://svnweb.freebsd.org/changeset/base/351413 Log: last(1): unbreak for 8-bit locales Ouput format of last(1) is broken for non UTF-8 locales since it got libxo(3) support. It uses strftime(3) that produces non UTF-8 strings passed to xo_emit(3) with wrong %s format - it should be %hs in this case, so xo_emit(3) produces empty output. This change is basically no-op when locale is of UTF-8 type, f.e. en_GB.UTF-8 or ru_RU.UTF-8 or sr_RS.UTF-8@latin. It fixes output for other locales. MFC after: 2 weeks Modified: head/usr.bin/last/last.c Modified: head/usr.bin/last/last.c ============================================================================== --- head/usr.bin/last/last.c Fri Aug 23 01:16:12 2019 (r351412) +++ head/usr.bin/last/last.c Fri Aug 23 01:25:38 2019 (r351413) @@ -93,6 +93,7 @@ static time_t currentout; /* current logout value */ static long maxrec; /* records to display */ static const char *file = NULL; /* utx.log file */ static int sflag = 0; /* show delta in seconds */ +static int utf8flag; /* current locale is UTF-8 */ static int width = 5; /* show seconds in delta */ static int yflag; /* show year */ static int d_first; @@ -103,6 +104,7 @@ static time_t snaptime; /* if != 0, we will only */ static void addarg(int, char *); +static const char *ctf(const char *); static time_t dateconv(char *); static void doentry(struct utmpx *); static void hostconv(char *); @@ -112,6 +114,31 @@ static int want(struct utmpx *); static void usage(void); static void wtmp(void); +static const char* +ctf(const char *fmt) { + static char buf[31]; + const char *src, *end; + char *dst; + + if (utf8flag) + return (fmt); + + end = buf + sizeof(buf); + for (src = fmt, dst = buf; dst < end; *dst++ = *src++) { + if (*src == '\0') { + *dst = '\0'; + break; + } else if (*src == '%' && *(src+1) == 's') { + *dst++ = '%'; + *dst++ = 'h'; + *dst++ = 's'; + strlcpy(dst, src+2, end - dst); + return (buf); + } + } + return (buf); +} + static void usage(void) { @@ -130,6 +157,9 @@ main(int argc, char *argv[]) (void) setlocale(LC_TIME, ""); d_first = (*nl_langinfo(D_MD_ORDER) == 'd'); + (void) setlocale(LC_CTYPE, ""); + utf8flag = (strcmp(nl_langinfo(CODESET), "UTF-8") == 0); + argc = xo_parse_args(argc, argv); if (argc < 0) exit(1); @@ -262,7 +292,7 @@ wtmp(void) (void) strftime(ct, sizeof(ct), "%+", tm); xo_emit("\n{:utxdb/%s}", (file == NULL) ? "utx.log" : file); xo_attr("seconds", "%lu", (unsigned long) t); - xo_emit(" begins {:begins/%s}\n", ct); + xo_emit(ctf(" begins {:begins/%s}\n"), ct); xo_close_container("last-information"); } @@ -379,7 +409,7 @@ printentry(struct utmpx *bp, struct idtab *tt) break; } xo_attr("seconds", "%lu", (unsigned long)t); - xo_emit(" {:login-time/%s%c/%s}", ct, tt == NULL ? '\n' : ' '); + xo_emit(ctf(" {:login-time/%s%c/%s}"), ct, tt == NULL ? '\n' : ' '); if (tt == NULL) goto end; if (!tt->logout) { @@ -393,7 +423,7 @@ printentry(struct utmpx *bp, struct idtab *tt) tm = localtime(&tt->logout); (void) strftime(ct, sizeof(ct), "%R", tm); xo_attr("seconds", "%lu", (unsigned long)tt->logout); - xo_emit("- {:logout-time/%s}", ct); + xo_emit(ctf("- {:logout-time/%s}"), ct); } delta = tt->logout - bp->ut_tv.tv_sec; xo_attr("seconds", "%ld", (long)delta); @@ -403,9 +433,9 @@ printentry(struct utmpx *bp, struct idtab *tt) tm = gmtime(&delta); (void) strftime(ct, sizeof(ct), width >= 8 ? "%T" : "%R", tm); if (delta < 86400) - xo_emit(" ({:session-length/%s})\n", ct); + xo_emit(ctf(" ({:session-length/%s})\n"), ct); else - xo_emit(" ({:session-length/%ld+%s})\n", + xo_emit(ctf(" ({:session-length/%ld+%s})\n"), (long)delta / 86400, ct); } From owner-svn-src-all@freebsd.org Fri Aug 23 03:01:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 15031D8790; Fri, 23 Aug 2019 03:01:32 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46F5lH6nfZz4D8J; Fri, 23 Aug 2019 03:01:31 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io1-f47.google.com with SMTP id t3so16629669ioj.12; Thu, 22 Aug 2019 20:01:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=Zs6o53r0D1JgdCUZjbl6pbzz+ScDhDPsptj3QBl0yD4=; b=TQPk24oJRoxZNzwCczYiRWuQt6rPrRGeM0i+QnEeIKWrl9O+7gdBo/zIMEFZQf6rv8 qoG4VLhA6hk3ZBOdCJWSs45W9MuJn08B/74iqqxqOTUQF/8Au5H6NOB1xy9wfqq6cOq8 PXpwbZCjP+WipHWkqTI2Xu0G/cSB9wMudALTVhLA1IZPqXrRtTq8xSm6DLL9tTnSX2qg d4bQEyQvJSApJhWA6crSFQbQdtzrgD5ZyW9LJ5sc7XavWEnW67VcPNZksNbdG7FSUiuq EbxR/KMvFNScQRrnDdrA8m0i6Ap0MZTrhHd/exbpovE+JF216ZzJQdUBEH3BB09zm7JA +otA== X-Gm-Message-State: APjAAAUAzm0623M2Z4WExsqmcn60SkZm2rPCJRZYzc5wiOlLd8EeGYdn FnelNrMG3pKz3pPR51XowF8HJuvq X-Google-Smtp-Source: APXvYqwCUhrB/vCnkFmNOCP0Onm41O7U8nu1xqO2sjhhqtoPPNQjwQ8KAetVU1lgunkC3emo7nR5Pw== X-Received: by 2002:a6b:761a:: with SMTP id g26mr3875763iom.71.1566529290235; Thu, 22 Aug 2019 20:01:30 -0700 (PDT) Received: from mail-io1-f41.google.com (mail-io1-f41.google.com. [209.85.166.41]) by smtp.gmail.com with ESMTPSA id q3sm1278938ios.70.2019.08.22.20.01.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 22 Aug 2019 20:01:29 -0700 (PDT) Received: by mail-io1-f41.google.com with SMTP id j5so16682993ioj.8; Thu, 22 Aug 2019 20:01:27 -0700 (PDT) X-Received: by 2002:a02:3745:: with SMTP id r66mr2855244jar.23.1566529287696; Thu, 22 Aug 2019 20:01:27 -0700 (PDT) MIME-Version: 1.0 References: <201908230125.x7N1PdTN070890@repo.freebsd.org> In-Reply-To: <201908230125.x7N1PdTN070890@repo.freebsd.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Thu, 22 Aug 2019 20:01:16 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r351413 - head/usr.bin/last To: Eugene Grosbein Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 46F5lH6nfZz4D8J X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.98)[-0.977,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 03:01:32 -0000 Hi Eugene, Should this be done more generally? Last time I looked it seemed like libxo was completely locale-unaware and just assumed all input was UTF-8. It might make more sense to have libxo take locale into account when formatting %s strings. Best, Conrad On Thu, Aug 22, 2019 at 6:25 PM Eugene Grosbein wrote: > > Author: eugen > Date: Fri Aug 23 01:25:38 2019 > New Revision: 351413 > URL: https://svnweb.freebsd.org/changeset/base/351413 > > Log: > last(1): unbreak for 8-bit locales > > Ouput format of last(1) is broken for non UTF-8 locales > since it got libxo(3) support. It uses strftime(3) that produces > non UTF-8 strings passed to xo_emit(3) with wrong %s format - > it should be %hs in this case, so xo_emit(3) produces empty output. > > This change is basically no-op when locale is of UTF-8 type, > f.e. en_GB.UTF-8 or ru_RU.UTF-8 or sr_RS.UTF-8@latin. > It fixes output for other locales. > > MFC after: 2 weeks > > Modified: > head/usr.bin/last/last.c > > Modified: head/usr.bin/last/last.c > ============================================================================== > --- head/usr.bin/last/last.c Fri Aug 23 01:16:12 2019 (r351412) > +++ head/usr.bin/last/last.c Fri Aug 23 01:25:38 2019 (r351413) > @@ -93,6 +93,7 @@ static time_t currentout; /* current logout value */ > static long maxrec; /* records to display */ > static const char *file = NULL; /* utx.log file */ > static int sflag = 0; /* show delta in seconds */ > +static int utf8flag; /* current locale is UTF-8 */ > static int width = 5; /* show seconds in delta */ > static int yflag; /* show year */ > static int d_first; > @@ -103,6 +104,7 @@ static time_t snaptime; /* if != 0, we will only > */ > > static void addarg(int, char *); > +static const char *ctf(const char *); > static time_t dateconv(char *); > static void doentry(struct utmpx *); > static void hostconv(char *); > @@ -112,6 +114,31 @@ static int want(struct utmpx *); > static void usage(void); > static void wtmp(void); > > +static const char* > +ctf(const char *fmt) { > + static char buf[31]; > + const char *src, *end; > + char *dst; > + > + if (utf8flag) > + return (fmt); > + > + end = buf + sizeof(buf); > + for (src = fmt, dst = buf; dst < end; *dst++ = *src++) { > + if (*src == '\0') { > + *dst = '\0'; > + break; > + } else if (*src == '%' && *(src+1) == 's') { > + *dst++ = '%'; > + *dst++ = 'h'; > + *dst++ = 's'; > + strlcpy(dst, src+2, end - dst); > + return (buf); > + } > + } > + return (buf); > +} > + > static void > usage(void) > { > @@ -130,6 +157,9 @@ main(int argc, char *argv[]) > (void) setlocale(LC_TIME, ""); > d_first = (*nl_langinfo(D_MD_ORDER) == 'd'); > > + (void) setlocale(LC_CTYPE, ""); > + utf8flag = (strcmp(nl_langinfo(CODESET), "UTF-8") == 0); > + > argc = xo_parse_args(argc, argv); > if (argc < 0) > exit(1); > @@ -262,7 +292,7 @@ wtmp(void) > (void) strftime(ct, sizeof(ct), "%+", tm); > xo_emit("\n{:utxdb/%s}", (file == NULL) ? "utx.log" : file); > xo_attr("seconds", "%lu", (unsigned long) t); > - xo_emit(" begins {:begins/%s}\n", ct); > + xo_emit(ctf(" begins {:begins/%s}\n"), ct); > xo_close_container("last-information"); > } > > @@ -379,7 +409,7 @@ printentry(struct utmpx *bp, struct idtab *tt) > break; > } > xo_attr("seconds", "%lu", (unsigned long)t); > - xo_emit(" {:login-time/%s%c/%s}", ct, tt == NULL ? '\n' : ' '); > + xo_emit(ctf(" {:login-time/%s%c/%s}"), ct, tt == NULL ? '\n' : ' '); > if (tt == NULL) > goto end; > if (!tt->logout) { > @@ -393,7 +423,7 @@ printentry(struct utmpx *bp, struct idtab *tt) > tm = localtime(&tt->logout); > (void) strftime(ct, sizeof(ct), "%R", tm); > xo_attr("seconds", "%lu", (unsigned long)tt->logout); > - xo_emit("- {:logout-time/%s}", ct); > + xo_emit(ctf("- {:logout-time/%s}"), ct); > } > delta = tt->logout - bp->ut_tv.tv_sec; > xo_attr("seconds", "%ld", (long)delta); > @@ -403,9 +433,9 @@ printentry(struct utmpx *bp, struct idtab *tt) > tm = gmtime(&delta); > (void) strftime(ct, sizeof(ct), width >= 8 ? "%T" : "%R", tm); > if (delta < 86400) > - xo_emit(" ({:session-length/%s})\n", ct); > + xo_emit(ctf(" ({:session-length/%s})\n"), ct); > else > - xo_emit(" ({:session-length/%ld+%s})\n", > + xo_emit(ctf(" ({:session-length/%ld+%s})\n"), > (long)delta / 86400, ct); > } > > From owner-svn-src-all@freebsd.org Fri Aug 23 05:23:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C1A5DDA948; Fri, 23 Aug 2019 05:23:46 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46F8vQ4gG7z4KTv; Fri, 23 Aug 2019 05:23:46 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 81E25FD47; Fri, 23 Aug 2019 05:23:46 +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 x7N5Nk91012289; Fri, 23 Aug 2019 05:23:46 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7N5Nk0M012287; Fri, 23 Aug 2019 05:23:46 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201908230523.x7N5Nk0M012287@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 23 Aug 2019 05:23:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351415 - in head/usr.sbin/makefs: . msdos X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: in head/usr.sbin/makefs: . msdos X-SVN-Commit-Revision: 351415 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 05:23:46 -0000 Author: delphij Date: Fri Aug 23 05:23:45 2019 New Revision: 351415 URL: https://svnweb.freebsd.org/changeset/base/351415 Log: Properly update FSInfo block after generation. After populating the filesystem, write a FSInfo block with proper information. Reviewed by: emaste, cem MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D21363 Modified: head/usr.sbin/makefs/msdos.c head/usr.sbin/makefs/msdos.h head/usr.sbin/makefs/msdos/msdosfs_vfsops.c Modified: head/usr.sbin/makefs/msdos.c ============================================================================== --- head/usr.sbin/makefs/msdos.c Fri Aug 23 05:04:41 2019 (r351414) +++ head/usr.sbin/makefs/msdos.c Fri Aug 23 05:23:45 2019 (r351415) @@ -203,6 +203,8 @@ msdos_makefs(const char *image, const char *dir, fsnod errx(1, "Image file `%s' not created.", image); TIMER_RESULTS(start, "msdos_populate_dir"); + if (msdosfs_fsiflush(pmp) != 0) + errx(1, "Unable to update FSInfo block."); if (debug & DEBUG_FS_MAKEFS) putchar('\n'); Modified: head/usr.sbin/makefs/msdos.h ============================================================================== --- head/usr.sbin/makefs/msdos.h Fri Aug 23 05:04:41 2019 (r351414) +++ head/usr.sbin/makefs/msdos.h Fri Aug 23 05:23:45 2019 (r351415) @@ -51,6 +51,7 @@ struct componentname { size_t cn_namelen; }; +int msdosfs_fsiflush(struct msdosfsmount *); struct msdosfsmount *msdosfs_mount(struct vnode *); int msdosfs_root(struct msdosfsmount *, struct vnode *); Modified: head/usr.sbin/makefs/msdos/msdosfs_vfsops.c ============================================================================== --- head/usr.sbin/makefs/msdos/msdosfs_vfsops.c Fri Aug 23 05:04:41 2019 (r351414) +++ head/usr.sbin/makefs/msdos/msdosfs_vfsops.c Fri Aug 23 05:23:45 2019 (r351415) @@ -359,3 +359,33 @@ msdosfs_root(struct msdosfsmount *pmp, struct vnode *v vp->v_data = ndep; return 0; } + +/* + * If we have an FSInfo block, update it. + */ +int +msdosfs_fsiflush(struct msdosfsmount *pmp) +{ + struct fsinfo *fp; + struct buf *bp; + int error; + + if (pmp->pm_fsinfo == 0 || (pmp->pm_flags & MSDOSFS_FSIMOD) == 0) { + error = 0; + goto out; + } + error = bread(pmp->pm_devvp, pmp->pm_fsinfo, pmp->pm_BytesPerSec, + NOCRED, &bp); + if (error != 0) { + brelse(bp); + goto out; + } + fp = (struct fsinfo *)bp->b_data; + putulong(fp->fsinfree, pmp->pm_freeclustercount); + putulong(fp->fsinxtfree, pmp->pm_nxtfree); + pmp->pm_flags &= ~MSDOSFS_FSIMOD; + error = bwrite(bp); + +out: + return (error); +} From owner-svn-src-all@freebsd.org Fri Aug 23 05:24:13 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BD821DA9AB for ; Fri, 23 Aug 2019 05:24:13 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x742.google.com (mail-qk1-x742.google.com [IPv6:2607:f8b0:4864:20::742]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46F8vw6Lbgz4Kcd for ; Fri, 23 Aug 2019 05:24:12 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x742.google.com with SMTP id s145so7237070qke.7 for ; Thu, 22 Aug 2019 22:24:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ATqVYdg7EiguXaEPQYsvuoKgDhS/Lt3lcixvB9uAK20=; b=Fvf30ftSqtj4iAz3iLLdTm4jc4lP7SlsdJyaUs5U8zDTe4ZQuUbdTG3uOOlM/k6l8M zOWQiAUct4vq/b2LPzZAsnCWR5OcxOemyhucK7MJdtLzY3Y49zf9NIBtHI5LZ9IoQ3LF P/9iBge888wav3a96UsoiSPQAOvkJDw+16JCPmhQnjUzxi9bD81EN5cP4RPjW00s/yG6 YOrWAeModEJ3BECe/UnKSI/txnut3E4webHeRnpA82edve3A1/av1Gqko/HAQKnkXZNc NQkGUSo9NO1R4FFlFrqSJ7eQTBYRZ6hI46hPZJ7fVzeWhrwxT0e6APCL86fj9RfOpYIO wVsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ATqVYdg7EiguXaEPQYsvuoKgDhS/Lt3lcixvB9uAK20=; b=s7gSSpQaaWyKQO9afELLKDH6G9NE1ZtVnvmhd+LpSpt0uEGX7oGMOTfMbCXDpZjjlj dl62O2kMDqNiQzfczxuNSHmmBUyMGsyJIG86sT+O1a/X4chcJaAc/EH9Hq9raNriaitA 2FPsPooDyDQpoMVrSMdbehwBNKqEcaOoJ4Dn+uNbdRFF2A8m81WZwfnL1u/iNm9gojI1 XtbPedwqAFns8aO9h4RYfeZmJ0IMiSTK6CK/mdwvoNDu/JiYiNj5XZ63uebgtayPfBtT HSSgL/NrmeVPhzMUESeZbws9eAGS5CNH/ZJxJDPRXwbIhJsF5dtIeGCjlsOf7VEAzOJ9 aj1Q== X-Gm-Message-State: APjAAAWcE7NDfkUBVLbClpMfLclh404GDFCoTX1CeVMlW6XQRnEVVshE BgeXQ3uEftoPXQVptuqwhnlagLl8rT0D9y7SvkRpWw== X-Google-Smtp-Source: APXvYqyotHCXAUBb/8jusMVsviPjCSOSFNJRNqATVXnR7tg+6RSIX4KCV1jDNDcmdF6/I4VruAWEzSCtuihUQS4kEe8= X-Received: by 2002:a37:4b03:: with SMTP id y3mr2506294qka.215.1566537851537; Thu, 22 Aug 2019 22:24:11 -0700 (PDT) MIME-Version: 1.0 References: <201908222112.x7MLCpbt023647@repo.freebsd.org> In-Reply-To: From: Warner Losh Date: Thu, 22 Aug 2019 23:24:00 -0600 Message-ID: Subject: Re: svn commit: r351406 - head/sys/dev/nvme To: Jung-uk Kim Cc: John Baldwin , Warner Losh , src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 46F8vw6Lbgz4Kcd X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=Fvf30ftS; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::742) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-2.33 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; URI_COUNT_ODD(1.00)[3]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; NEURAL_HAM_SHORT(-0.94)[-0.936,0]; RCVD_IN_DNSWL_NONE(0.00)[2.4.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-0.40)[ip: (3.29), ipnet: 2607:f8b0::/32(-2.90), asn: 15169(-2.35), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 05:24:13 -0000 This creates some funky names for the modules (like nvme_pci_pci)... I'd prefer we not do that. Here's a patch that I think will create the module in a way that avoids the bug that we're hitting. It's late here, and I've not had time to test it on all the cases yet. Does it work for you? It eliminates the duplicate module message in the kernel boot I failed to notice before. Warner diff --git a/sys/dev/nvme/nvme.c b/sys/dev/nvme/nvme.c index e694fcb7747..2963029fc06 100644 --- a/sys/dev/nvme/nvme.c +++ b/sys/dev/nvme/nvme.c @@ -364,3 +364,19 @@ nvme_completion_poll_cb(void *arg, const struct nvme_completion *cpl) memcpy(&status->cpl, cpl, sizeof(*cpl)); atomic_store_rel_int(&status->done, 1); } + +static int +nvme_modevent(module_t mod __unused, int type __unused, void *argp __unused) +{ + return (0); +} + +static moduledata_t nvme_mod = { + "nvme", + nvme_modevent, + 0 +}; + +DECLARE_MODULE(nvme, nvme_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); +MODULE_VERSION(nvme, 1); +MODULE_DEPEND(nvme, cam, 1, 1, 1); diff --git a/sys/dev/nvme/nvme_ahci.c b/sys/dev/nvme/nvme_ahci.c index 29c40d919a7..eae607bcce8 100644 --- a/sys/dev/nvme/nvme_ahci.c +++ b/sys/dev/nvme/nvme_ahci.c @@ -55,8 +55,6 @@ static driver_t nvme_ahci_driver = { }; DRIVER_MODULE(nvme, ahci, nvme_ahci_driver, nvme_devclass, NULL, 0); -MODULE_VERSION(nvme, 1); -MODULE_DEPEND(nvme, cam, 1, 1, 1); static int nvme_ahci_probe (device_t device) diff --git a/sys/dev/nvme/nvme_pci.c b/sys/dev/nvme/nvme_pci.c index 0d4923910ff..68142518404 100644 --- a/sys/dev/nvme/nvme_pci.c +++ b/sys/dev/nvme/nvme_pci.c @@ -62,8 +62,6 @@ static driver_t nvme_pci_driver = { }; DRIVER_MODULE(nvme, pci, nvme_pci_driver, nvme_devclass, NULL, 0); -MODULE_VERSION(nvme, 1); -MODULE_DEPEND(nvme, cam, 1, 1, 1); static struct _pcsid { On Thu, Aug 22, 2019 at 6:53 PM Jung-uk Kim wrote: > On 19. 8. 22., Warner Losh wrote: > > On Thu, Aug 22, 2019, 3:27 PM John Baldwin > > wrote: > > > > On 8/22/19 2:12 PM, Warner Losh wrote: > > > Author: imp > > > Date: Thu Aug 22 21:12:51 2019 > > > New Revision: 351406 > > > URL: https://svnweb.freebsd.org/changeset/base/351406 > > > > > > Log: > > > We need to define version 1 of nvme, not nvme_foo. Otherwise nvd > > won't > > > load and people who pull in nvme/nvd from modules can't load > nvd.ko > > > since it depends on nvme, not nvme_foo. The duplicate doesn't > matter > > > since kldxref properly handles that case. > > > > I would perhaps have put the MODULE_VERSION for nvme and its > dependency > > on cam into nvme.c instead of duplicating it. I think that is more > > consistent > > with what we have done elsewhere in the tree. > > > > > > That can't be true. Doing that doesn't work. We wind up dereferencing > > freed memory, as we discussed on IRC. Each DRIVER_MODULE needs its own > > MODULE_VERSION given the current code. I'd call that a bug, but not one > > I could dig into today... > > FYI, the attached patch works for me. > > Jung-uk Kim > From owner-svn-src-all@freebsd.org Fri Aug 23 05:25:22 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8F5AEDAA2F; Fri, 23 Aug 2019 05:25:22 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46F8xG3FTtz4KlQ; Fri, 23 Aug 2019 05:25:22 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 51DEEFD4B; Fri, 23 Aug 2019 05:25:22 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7N5PM0f012420; Fri, 23 Aug 2019 05:25:22 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7N5PMFa012419; Fri, 23 Aug 2019 05:25:22 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <201908230525.x7N5PMFa012419@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Fri, 23 Aug 2019 05:25:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351416 - head/lib/libc/tests/gen X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: head/lib/libc/tests/gen X-SVN-Commit-Revision: 351416 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 05:25:22 -0000 Author: lwhsu Date: Fri Aug 23 05:25:21 2019 New Revision: 351416 URL: https://svnweb.freebsd.org/changeset/base/351416 Log: lib.libc.gen.getmntinfo_test.getmntinfo_test is unstable since 8/20, skip it in CI env temporarily for more offline diagnosis PR: 240049 Sponsored by: The FreeBSD Foundation Modified: head/lib/libc/tests/gen/getmntinfo_test.c Modified: head/lib/libc/tests/gen/getmntinfo_test.c ============================================================================== --- head/lib/libc/tests/gen/getmntinfo_test.c Fri Aug 23 05:23:45 2019 (r351415) +++ head/lib/libc/tests/gen/getmntinfo_test.c Fri Aug 23 05:25:21 2019 (r351416) @@ -57,6 +57,9 @@ ATF_TC_BODY(getmntinfo_test, tc) int nmnts; struct statfs *mntinfo; + if (atf_tc_get_config_var_as_bool_wd(tc, "ci", false)) + atf_tc_skip("https://bugs.freebsd.org/240049"); + /* Test bogus mode */ nmnts = getmntinfo(&mntinfo, 199); ATF_REQUIRE_MSG(nmnts == 0 && errno == EINVAL, From owner-svn-src-all@freebsd.org Fri Aug 23 06:39:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C2648DBBB4; Fri, 23 Aug 2019 06:39:40 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FBb04kMrz4P28; Fri, 23 Aug 2019 06:39:40 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7F89C189E6; Fri, 23 Aug 2019 06:39:40 +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 x7N6deuQ054209; Fri, 23 Aug 2019 06:39:40 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7N6defT054208; Fri, 23 Aug 2019 06:39:40 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201908230639.x7N6defT054208@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 23 Aug 2019 06:39:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351417 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 351417 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 06:39:40 -0000 Author: delphij Date: Fri Aug 23 06:39:40 2019 New Revision: 351417 URL: https://svnweb.freebsd.org/changeset/base/351417 Log: INVARIANTS: treat LA_LOCKED as the same of LA_XLOCKED in mtx_assert. The Linux lockdep API assumes LA_LOCKED semantic in lockdep_assert_held(), meaning that either a shared lock or write lock is Ok. On the other hand, the timeout code uses lc_assert() with LA_XLOCKED, and we need both to work. For mutexes, because they can not be shared (this is unique among all lock classes, and it is unlikely that we would add new lock class anytime soon), it is easier to simply extend mtx_assert to handle LA_LOCKED there, despite the change itself can be viewed as a slight abstraction violation. Reviewed by: mjg, cem, jhb MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D21362 Modified: head/sys/kern/kern_mutex.c Modified: head/sys/kern/kern_mutex.c ============================================================================== --- head/sys/kern/kern_mutex.c Fri Aug 23 05:25:21 2019 (r351416) +++ head/sys/kern/kern_mutex.c Fri Aug 23 06:39:40 2019 (r351417) @@ -176,6 +176,21 @@ void assert_mtx(const struct lock_object *lock, int what) { + /* + * Treat LA_LOCKED as if LA_XLOCKED was asserted. + * + * Some callers of lc_assert uses LA_LOCKED to indicate that either + * a shared lock or write lock was held, while other callers uses + * the more strict LA_XLOCKED (used as MA_OWNED). + * + * Mutex is the only lock class that can not be shared, as a result, + * we can reasonably consider the caller really intends to assert + * LA_XLOCKED when they are asserting LA_LOCKED on a mutex object. + */ + if (what & LA_LOCKED) { + what &= ~LA_LOCKED; + what |= LA_XLOCKED; + } mtx_assert((const struct mtx *)lock, what); } From owner-svn-src-all@freebsd.org Fri Aug 23 07:24:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 947A8DC6D8; Fri, 23 Aug 2019 07:24:37 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FCZs3PVrz4R2T; Fri, 23 Aug 2019 07:24:37 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 52195192DF; Fri, 23 Aug 2019 07:24:37 +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 x7N7ObLG083198; Fri, 23 Aug 2019 07:24:37 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7N7Obpv083197; Fri, 23 Aug 2019 07:24:37 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201908230724.x7N7Obpv083197@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 23 Aug 2019 07:24:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351418 - head/sys/netgraph X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sys/netgraph X-SVN-Commit-Revision: 351418 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 07:24:37 -0000 Author: delphij Date: Fri Aug 23 07:24:36 2019 New Revision: 351418 URL: https://svnweb.freebsd.org/changeset/base/351418 Log: Convert ng_deflate to use new zlib. This removes the last consumer of the modified zlib originally bundled with Paul's PPP implementation, which will be removed in a follow up commit. PR: 229763 Differential Revision: https://reviews.freebsd.org/D21186 Modified: head/sys/netgraph/ng_deflate.c Modified: head/sys/netgraph/ng_deflate.c ============================================================================== --- head/sys/netgraph/ng_deflate.c Fri Aug 23 06:39:40 2019 (r351417) +++ head/sys/netgraph/ng_deflate.c Fri Aug 23 07:24:36 2019 (r351418) @@ -41,7 +41,7 @@ #include #include #include -#include +#include #include #include @@ -82,13 +82,9 @@ static ng_rcvdata_t ng_deflate_rcvdata; static ng_disconnect_t ng_deflate_disconnect; /* Helper functions */ -static void *z_alloc(void *, u_int items, u_int size); -static void z_free(void *, void *ptr); -static int ng_deflate_compress(node_p node, - struct mbuf *m, struct mbuf **resultp); -static int ng_deflate_decompress(node_p node, - struct mbuf *m, struct mbuf **resultp); -static void ng_deflate_reset_req(node_p node); +static int ng_deflate_compress(node_p, struct mbuf *, struct mbuf **); +static int ng_deflate_decompress(node_p, struct mbuf *, struct mbuf **); +static void ng_deflate_reset_req(node_p); /* Parse type for struct ng_deflate_config. */ static const struct ng_parse_struct_field ng_deflate_config_type_fields[] @@ -255,8 +251,6 @@ ng_deflate_rcvmsg(node_p node, item_p item, hook_p las if (priv->cfg.enable) { priv->cx.next_in = NULL; - priv->cx.zalloc = z_alloc; - priv->cx.zfree = z_free; int res; if (priv->compress) { if ((res = deflateInit2(&priv->cx, @@ -346,7 +340,6 @@ ng_deflate_rcvdata(hook_p hook, item_p item) log(LOG_NOTICE, "%s: error: %d\n", __func__, error); return (error); } - } else { /* Decompress */ if ((error = ng_deflate_decompress(node, m, &out)) != 0) { NG_FREE_ITEM(item); @@ -420,24 +413,6 @@ ng_deflate_disconnect(hook_p hook) ************************************************************************/ /* - * Space allocation and freeing routines for use by zlib routines. - */ - -static void * -z_alloc(void *notused, u_int items, u_int size) -{ - - return (malloc(items * size, M_NETGRAPH_DEFLATE, M_NOWAIT)); -} - -static void -z_free(void *notused, void *ptr) -{ - - free(ptr, M_NETGRAPH_DEFLATE); -} - -/* * Compress/encrypt a packet and put the result in a new mbuf at *resultp. * The original mbuf is not free'd. */ @@ -486,7 +461,7 @@ ng_deflate_compress(node_p node, struct mbuf *m, struc priv->cx.avail_out = outlen - 2 - DEFLATE_HDRLEN; /* Compress. */ - rtn = deflate(&priv->cx, Z_PACKET_FLUSH); + rtn = deflate(&priv->cx, Z_SYNC_FLUSH); /* Check return value. */ if (rtn != Z_OK) { @@ -499,6 +474,19 @@ ng_deflate_compress(node_p node, struct mbuf *m, struc /* Calculate resulting size. */ outlen -= priv->cx.avail_out; + /* + * Z_SYNC_FLUSH completes the current deflate block and follows + * it with an empty stored block that is three bits plus filler + * bits to the next byte, followed by four bytes (00 00 ff ff). + * RFC 1979 Section 2.1, "Data" requires the four bytes be + * removed before transmission. + */ + outlen -= 4; + MPASS(outlen > 0); + MPASS(priv->outbuf[outlen + 0] == 0x00); + MPASS(priv->outbuf[outlen + 1] == 0x00); + MPASS(priv->outbuf[outlen + 2] == 0xff); + MPASS(priv->outbuf[outlen + 3] == 0xff); /* If we can't compress this packet, send it as-is. */ if (outlen > inlen) { @@ -538,11 +526,13 @@ static int ng_deflate_decompress(node_p node, struct mbuf *m, struct mbuf **resultp) { const priv_p priv = NG_NODE_PRIVATE(node); - int outlen, inlen; + int outlen, inlen, datalen; int rtn; uint16_t proto; int offset; uint16_t rseqnum; + u_char headbuf[5]; + static u_char EMPTY_BLOCK[4] = { 0x00, 0x00, 0xff, 0xff }; /* Initialize. */ *resultp = NULL; @@ -604,7 +594,7 @@ ng_deflate_decompress(node_p node, struct mbuf *m, str priv->cx.avail_out = outlen - 1; /* Decompress. */ - rtn = inflate(&priv->cx, Z_PACKET_FLUSH); + rtn = inflate(&priv->cx, Z_SYNC_FLUSH); /* Check return value. */ if (rtn != Z_OK && rtn != Z_STREAM_END) { @@ -624,6 +614,13 @@ ng_deflate_decompress(node_p node, struct mbuf *m, str } } + /* Handle the EMPTY_BLOCK omitted by sender */ + if (inflateSyncPoint(&priv->cx)) { + priv->cx.avail_in = 4; + priv->cx.next_in = EMPTY_BLOCK; + inflate(&priv->cx, Z_SYNC_FLUSH); + } + /* Calculate resulting size. */ outlen -= priv->cx.avail_out; @@ -648,22 +645,44 @@ ng_deflate_decompress(node_p node, struct mbuf *m, str priv->stats.FramesPlain++; priv->stats.OutOctets+=outlen; - } else { /* Packet is not compressed, just update dictionary. */ + } else { + /* Packet is not compressed, just update dictionary. */ priv->stats.FramesUncomp++; + + /* + * Fake a header for uncompressed data block + */ + datalen = inlen - offset + 1; + headbuf[0] = 0x80; + headbuf[1] = datalen & 0xff; + headbuf[2] = datalen >> 8; + headbuf[3] = (~datalen) & 0xff; + headbuf[4] = (~datalen) >> 8; + + priv->cx.next_in = headbuf; + priv->cx.avail_in = sizeof(headbuf); + priv->cx.next_out = priv->outbuf; + priv->cx.avail_out = DEFLATE_BUF_SIZE; + + rtn = inflate(&priv->cx, Z_NO_FLUSH); + if (priv->inbuf[0] == 0) { - priv->cx.next_in = priv->inbuf + 1; /* compress protocol */ - priv->cx.avail_in = inlen - 1; + priv->cx.next_in = + priv->inbuf + 1; /* compress protocol */ + priv->cx.avail_in = inlen - 1; } else { - priv->cx.next_in = priv->inbuf; - priv->cx.avail_in = inlen; + priv->cx.next_in = priv->inbuf; + priv->cx.avail_in = inlen; } + priv->cx.next_out = priv->outbuf; + priv->cx.avail_out = DEFLATE_BUF_SIZE; - rtn = inflateIncomp(&priv->cx); + rtn = inflate(&priv->cx, Z_SYNC_FLUSH); /* Check return value */ if (rtn != Z_OK) { priv->stats.Errors++; - log(LOG_NOTICE, "%s: inflateIncomp error: %d (%s)\n", + log(LOG_NOTICE, "%s: inflate error: %d (%s)\n", __func__, rtn, priv->cx.msg); NG_FREE_M(m); priv->seqnum = 0; From owner-svn-src-all@freebsd.org Fri Aug 23 10:11:11 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 34485DFFAB; Fri, 23 Aug 2019 10:11:11 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FHH30gRpz4ZDs; Fri, 23 Aug 2019 10:11:11 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 124011B019; Fri, 23 Aug 2019 10:11:11 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7NABAxt083545; Fri, 23 Aug 2019 10:11:10 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NABA5D083544; Fri, 23 Aug 2019 10:11:10 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201908231011.x7NABA5D083544@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Fri, 23 Aug 2019 10:11:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351419 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 351419 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 10:11:11 -0000 Author: ae Date: Fri Aug 23 10:11:10 2019 New Revision: 351419 URL: https://svnweb.freebsd.org/changeset/base/351419 Log: MFC r350974: Since ipvoly is used for checksum calculation, part of original IP header is zeroed. This part includes ip_ttl field, that can be used later in IP_MINTTL socket option handling. PR: 239799 Modified: stable/12/sys/netinet/tcp_input.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/tcp_input.c ============================================================================== --- stable/12/sys/netinet/tcp_input.c Fri Aug 23 07:24:36 2019 (r351418) +++ stable/12/sys/netinet/tcp_input.c Fri Aug 23 10:11:10 2019 (r351419) @@ -576,6 +576,7 @@ tcp_input(struct mbuf **mp, int *offp, int proto) int optlen = 0; #ifdef INET int len; + uint8_t ipttl; #endif int tlen = 0, off; int drop_hdrlen; @@ -698,6 +699,7 @@ tcp_input(struct mbuf **mp, int *offp, int proto) * Checksum extended TCP header and data. */ len = off0 + tlen; + ipttl = ip->ip_ttl; bzero(ipov->ih_x1, sizeof(ipov->ih_x1)); ipov->ih_len = htons(tlen); th->th_sum = in_cksum(m, len); @@ -706,6 +708,7 @@ tcp_input(struct mbuf **mp, int *offp, int proto) /* Reset TOS bits */ ip->ip_tos = iptos; /* Re-initialization for later version check */ + ip->ip_ttl = ipttl; ip->ip_v = IPVERSION; ip->ip_hl = off0 >> 2; } From owner-svn-src-all@freebsd.org Fri Aug 23 10:12:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C51C2C0185; Fri, 23 Aug 2019 10:12:42 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FHJp4rnxz4Zdq; Fri, 23 Aug 2019 10:12:42 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 88B921B1A0; Fri, 23 Aug 2019 10:12:42 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7NACgPI084557; Fri, 23 Aug 2019 10:12:42 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NACgNC084556; Fri, 23 Aug 2019 10:12:42 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201908231012.x7NACgNC084556@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Fri, 23 Aug 2019 10:12:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351420 - stable/11/sys/netinet X-SVN-Group: stable-11 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/11/sys/netinet X-SVN-Commit-Revision: 351420 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 10:12:42 -0000 Author: ae Date: Fri Aug 23 10:12:42 2019 New Revision: 351420 URL: https://svnweb.freebsd.org/changeset/base/351420 Log: MFC r350974: Save ip_ttl value and restore it after checksum calculation. Since ipvoly is used for checksum calculation, part of original IP header is zeroed. This part includes ip_ttl field, that can be used later in IP_MINTTL socket option handling. PR: 239799 Modified: stable/11/sys/netinet/tcp_input.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netinet/tcp_input.c ============================================================================== --- stable/11/sys/netinet/tcp_input.c Fri Aug 23 10:11:10 2019 (r351419) +++ stable/11/sys/netinet/tcp_input.c Fri Aug 23 10:12:42 2019 (r351420) @@ -576,6 +576,7 @@ tcp_input(struct mbuf **mp, int *offp, int proto) int optlen = 0; #ifdef INET int len; + uint8_t ipttl; #endif int tlen = 0, off; int drop_hdrlen; @@ -697,6 +698,7 @@ tcp_input(struct mbuf **mp, int *offp, int proto) * Checksum extended TCP header and data. */ len = off0 + tlen; + ipttl = ip->ip_ttl; bzero(ipov->ih_x1, sizeof(ipov->ih_x1)); ipov->ih_len = htons(tlen); th->th_sum = in_cksum(m, len); @@ -705,6 +707,7 @@ tcp_input(struct mbuf **mp, int *offp, int proto) /* Reset TOS bits */ ip->ip_tos = iptos; /* Re-initialization for later version check */ + ip->ip_ttl = ipttl; ip->ip_v = IPVERSION; ip->ip_hl = off0 >> 2; } From owner-svn-src-all@freebsd.org Fri Aug 23 10:38:29 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B7E35C0BC5; Fri, 23 Aug 2019 10:38:29 +0000 (UTC) (envelope-from eugen@freebsd.org) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:c2c:26d8::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FHtY2VTXz4bdd; Fri, 23 Aug 2019 10:38:28 +0000 (UTC) (envelope-from eugen@freebsd.org) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id x7NAcGGj089425 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 23 Aug 2019 10:38:19 GMT (envelope-from eugen@freebsd.org) X-Envelope-From: eugen@freebsd.org X-Envelope-To: cem@freebsd.org Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id x7NAc7Cg029537 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 23 Aug 2019 17:38:07 +0700 (+07) (envelope-from eugen@freebsd.org) Subject: Re: svn commit: r351413 - head/usr.bin/last To: cem@freebsd.org References: <201908230125.x7N1PdTN070890@repo.freebsd.org> Cc: src-committers , svn-src-all , svn-src-head From: Eugene Grosbein Message-ID: <361cc2e7-fba5-d724-dcf0-3c4ae3a8ed6f@freebsd.org> Date: Fri, 23 Aug 2019 17:38:00 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_SOFTFAIL autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record * 0.7 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 46FHtY2VTXz4bdd X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-2.93 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.93)[-0.930,0]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 10:38:29 -0000 23.08.2019 10:01, Conrad Meyer wrote: > Should this be done more generally? Last time I looked it seemed like > libxo was completely locale-unaware and just assumed all input was > UTF-8. It might make more sense to have libxo take locale into > account when formatting %s strings. libxo is locale-aware but in its own quite peculiar way, as libxo(3) tells: > For strings, the 'h' and 'l' modifiers affect the interpretation of the > bytes pointed to argument. The default '%s' string is a 'char *' pointer > to a string encoded as UTF-8. Since UTF-8 is compatible with ASCII data, > a normal 7-bit ASCII string can be used. "%ls" expects a "wchar_t *" > pointer to a wide-character string, encoded as 32-bit Unicode values. > "%hs" expects a "char *" pointer to a multi-byte string encoded with the > current locale, as given by the LC_CTYPE, LANG, or LC_ALL environment > variables. I'd like it detect UTF-8 automatically instead with strcmp(nl_langinfo(CODESET), "UTF-8") but I'm not going to hack libxo code myself as I'm not familiar with its design. From owner-svn-src-all@freebsd.org Fri Aug 23 11:13:49 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C859FC15EB; Fri, 23 Aug 2019 11:13:49 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:c2c:26d8::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FJgJ5TXDz4d9m; Fri, 23 Aug 2019 11:13:48 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id x7NBDiau089852 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 23 Aug 2019 11:13:45 GMT (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: cem@freebsd.org Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id x7NBDaKk029892 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 23 Aug 2019 18:13:36 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: svn commit: r351413 - head/usr.bin/last To: cem@freebsd.org References: <201908230125.x7N1PdTN070890@repo.freebsd.org> <361cc2e7-fba5-d724-dcf0-3c4ae3a8ed6f@freebsd.org> Cc: src-committers , svn-src-all , svn-src-head From: Eugene Grosbein Message-ID: <6af6c95a-4978-6898-4191-01e734ccb298@grosbein.net> Date: Fri, 23 Aug 2019 18:13:30 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <361cc2e7-fba5-d724-dcf0-3c4ae3a8ed6f@freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 46FJgJ5TXDz4d9m X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=permerror (mx1.freebsd.org: domain of eugen@grosbein.net uses mechanism not recognized by this client) smtp.mailfrom=eugen@grosbein.net X-Spamd-Result: default: False [-4.25 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[grosbein.net]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCVD_COUNT_THREE(0.00)[3]; IP_SCORE(-1.24)[ip: (-2.36), ipnet: 2a01:4f8::/29(-1.96), asn: 24940(-1.86), country: DE(-0.01)]; R_SPF_PERMFAIL(0.00)[]; NEURAL_HAM_SHORT(-0.91)[-0.914,0]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 11:13:49 -0000 23.08.2019 17:38, Eugene Grosbein wrote: >> Should this be done more generally? Last time I looked it seemed like >> libxo was completely locale-unaware and just assumed all input was >> UTF-8. It might make more sense to have libxo take locale into >> account when formatting %s strings. > > libxo is locale-aware but in its own quite peculiar way, as libxo(3) tells: >> For strings, the 'h' and 'l' modifiers affect the interpretation of the >> bytes pointed to argument. The default '%s' string is a 'char *' pointer >> to a string encoded as UTF-8. Since UTF-8 is compatible with ASCII data, >> a normal 7-bit ASCII string can be used. "%ls" expects a "wchar_t *" >> pointer to a wide-character string, encoded as 32-bit Unicode values. >> "%hs" expects a "char *" pointer to a multi-byte string encoded with the >> current locale, as given by the LC_CTYPE, LANG, or LC_ALL environment >> variables. Sorry, this is from xo_format(5) actually. From owner-svn-src-all@freebsd.org Fri Aug 23 12:11:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CFCB3C33F5; Fri, 23 Aug 2019 12:11:46 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FKyB59wfz3Bwm; Fri, 23 Aug 2019 12:11:46 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 939E21C5CC; Fri, 23 Aug 2019 12:11:46 +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 x7NCBkIH055049; Fri, 23 Aug 2019 12:11:46 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NCBkZd055048; Fri, 23 Aug 2019 12:11:46 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201908231211.x7NCBkZd055048@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Fri, 23 Aug 2019 12:11:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351421 - head/tests/sys/netpfil/common X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/tests/sys/netpfil/common X-SVN-Commit-Revision: 351421 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 12:11:46 -0000 Author: kp Date: Fri Aug 23 12:11:46 2019 New Revision: 351421 URL: https://svnweb.freebsd.org/changeset/base/351421 Log: netpfil tests: Add forward test for the three firewalls Submitted by: Ahsan Barkati Reviewed by: kp Sponsored by: Google, Inc. (GSoC 2019) Differential Revision: https://reviews.freebsd.org/D21321 Added: head/tests/sys/netpfil/common/forward.sh (contents, props changed) Modified: head/tests/sys/netpfil/common/Makefile Modified: head/tests/sys/netpfil/common/Makefile ============================================================================== --- head/tests/sys/netpfil/common/Makefile Fri Aug 23 10:12:42 2019 (r351420) +++ head/tests/sys/netpfil/common/Makefile Fri Aug 23 12:11:46 2019 (r351421) @@ -9,7 +9,8 @@ ATF_TESTS_SH+= \ pass_block \ nat \ tos \ - fragments + fragments \ + forward ${PACKAGE}FILES+= \ utils.subr \ Added: head/tests/sys/netpfil/common/forward.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/netpfil/common/forward.sh Fri Aug 23 12:11:46 2019 (r351421) @@ -0,0 +1,101 @@ +#- +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright (c) 2019 Ahsan Barkati +# +# 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$ +# + +. $(atf_get_srcdir)/utils.subr +. $(atf_get_srcdir)/runner.subr + +v4_head() +{ + atf_set descr 'Basic forwarding test' + atf_set require.user root + atf_set require.progs scapy +} + +v4_body() +{ + firewall=$1 + firewall_init $firewall + + epair_send=$(vnet_mkepair) + ifconfig ${epair_send}a 192.0.2.1/24 up + + epair_recv=$(vnet_mkepair) + ifconfig ${epair_recv}a up + + vnet_mkjail iron ${epair_send}b ${epair_recv}b + jexec iron ifconfig ${epair_send}b 192.0.2.2/24 up + jexec iron ifconfig ${epair_recv}b 198.51.100.2/24 up + jexec iron sysctl net.inet.ip.forwarding=1 + jexec iron arp -s 198.51.100.3 00:01:02:03:04:05 + route add -net 198.51.100.0/24 192.0.2.2 + + + atf_check -s exit:0 $(atf_get_srcdir)/pft_ping.py \ + --sendif ${epair_send}a \ + --to 198.51.100.3 \ + --recvif ${epair_recv}a + + firewall_config "iron" ${firewall} \ + "pf" \ + "block in" \ + "ipfw" \ + "ipfw -q add 100 deny all from any to any in" \ + "ipf" \ + "block in all" \ + + atf_check -s exit:1 $(atf_get_srcdir)/pft_ping.py \ + --sendif ${epair_send}a \ + --to 198.51.100.3 \ + --recvif ${epair_recv}a + + firewall_config "iron" ${firewall} \ + "pf" \ + "block out" \ + "ipfw" \ + "ipfw -q add 100 deny all from any to any out" \ + "ipf" \ + "block out all" \ + + atf_check -s exit:1 $(atf_get_srcdir)/pft_ping.py \ + --sendif ${epair_send}a \ + --to 198.51.100.3 \ + --recv ${epair_recv}a +} + +v4_cleanup() +{ + firewall=$1 + firewall_cleanup $firewall +} + +setup_tests \ + v4 \ + pf \ + ipfw \ + ipf From owner-svn-src-all@freebsd.org Fri Aug 23 15:17:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 04061C79BB; Fri, 23 Aug 2019 15:17:05 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FQ406Jvkz3MyM; Fri, 23 Aug 2019 15:17:04 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BA6871E7AF; Fri, 23 Aug 2019 15:17:04 +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 x7NFH45P062256; Fri, 23 Aug 2019 15:17:04 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NFH4fG062255; Fri, 23 Aug 2019 15:17:04 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201908231517.x7NFH4fG062255@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 23 Aug 2019 15:17:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351422 - head/usr.sbin/pciconf X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/usr.sbin/pciconf X-SVN-Commit-Revision: 351422 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 15:17:05 -0000 Author: mav Date: Fri Aug 23 15:17:04 2019 New Revision: 351422 URL: https://svnweb.freebsd.org/changeset/base/351422 Log: Report Clock Power Management support and status. Since we already report ASPM, why not to go further. MFC after: 2 weeks Sponsored by: iXsystems, Inc. Modified: head/usr.sbin/pciconf/cap.c Modified: head/usr.sbin/pciconf/cap.c ============================================================================== --- head/usr.sbin/pciconf/cap.c Fri Aug 23 12:11:46 2019 (r351421) +++ head/usr.sbin/pciconf/cap.c Fri Aug 23 15:17:04 2019 (r351422) @@ -515,6 +515,11 @@ cap_express(int fd, struct pci_conf *p, uint8_t ptr) printf(" ASPM %s(%s)", aspm_string(ctl & PCIEM_LINK_CTL_ASPMC), aspm_string((cap & PCIEM_LINK_CAP_ASPM) >> 10)); } + if ((cap & PCIEM_LINK_CAP_CLOCK_PM) != 0) { + ctl = read_config(fd, &p->pc_sel, ptr + PCIER_LINK_CTL, 2); + printf(" ClockPM %s", (ctl & PCIEM_LINK_CTL_ECPM) ? + "enabled" : "disabled"); + } if (!(flags & PCIEM_FLAGS_SLOT)) return; cap = read_config(fd, &p->pc_sel, ptr + PCIER_SLOT_CAP, 4); From owner-svn-src-all@freebsd.org Fri Aug 23 15:22:22 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 88C9CC7B4A; Fri, 23 Aug 2019 15:22:22 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FQB635gqz3NRy; Fri, 23 Aug 2019 15:22:22 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4C1971E95B; Fri, 23 Aug 2019 15:22:22 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7NFMMH3068042; Fri, 23 Aug 2019 15:22:22 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NFMLuJ068037; Fri, 23 Aug 2019 15:22:21 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908231522.x7NFMLuJ068037@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Fri, 23 Aug 2019 15:22:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351423 - in head: . sbin/ping6 sbin/ping6/tests X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: in head: . sbin/ping6 sbin/ping6/tests X-SVN-Commit-Revision: 351423 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 15:22:22 -0000 Author: asomers Date: Fri Aug 23 15:22:20 2019 New Revision: 351423 URL: https://svnweb.freebsd.org/changeset/base/351423 Log: ping6: Rename options for better consistency with ping Now equivalent options have the same flags, and nonequivalent options have different flags. This is a prelude to merging the two commands. Submitted by: Ján Sučan MFC: Never Sponsored by: Google LLC (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21345 Added: head/sbin/ping6/tests/ping6_c1_s8_t1.out - copied unchanged from r351394, head/sbin/ping6/tests/ping6_c1_s8_X1.out Deleted: head/sbin/ping6/tests/ping6_c1_s8_X1.out Modified: head/UPDATING head/sbin/ping6/ping6.8 head/sbin/ping6/ping6.c head/sbin/ping6/tests/Makefile head/sbin/ping6/tests/ping6_test.sh Modified: head/UPDATING ============================================================================== --- head/UPDATING Fri Aug 23 15:17:04 2019 (r351422) +++ head/UPDATING Fri Aug 23 15:22:20 2019 (r351423) @@ -26,6 +26,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20190823: + Several of ping6's options have been renamed for better consistency + with ping. If you use any of -ARWXaghmrtwx, you must update your + scripts. See ping6(8) for details. + 20190727: The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls and the "-o sync_unmount" and "-o init_backgrounded" mount options have Modified: head/sbin/ping6/ping6.8 ============================================================================== --- head/sbin/ping6/ping6.8 Fri Aug 23 15:17:04 2019 (r351422) +++ head/sbin/ping6/ping6.8 Fri Aug 23 15:22:20 2019 (r351423) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 22, 2014 +.Dd August 22, 2019 .Dt PING6 8 .Os .Sh NAME @@ -40,38 +40,32 @@ packets to network hosts .Sh SYNOPSIS .Nm .\" without ipsec, or new ipsec -.Op Fl DdfHmnNoqrRtvwW +.Op Fl aAdDfHnNoOquvyY .\" old ipsec .\" .Op Fl ADdEfmnNqRtvwW .Bk -words -.Op Fl a Ar addrtype -.Ek -.Bk -words .Op Fl b Ar bufsiz .Ek .Bk -words .Op Fl c Ar count .Ek .Bk -words -.Op Fl g Ar gateway +.Op Fl e Ar gateway .Ek .Bk -words -.Op Fl h Ar hoplimit -.Ek -.Bk -words .Op Fl I Ar interface .Ek .Bk -words .Op Fl i Ar wait .Ek .Bk -words -.Op Fl x Ar waittime +.Op Fl k Ar addrtype .Ek .Bk -words -.Op Fl X Ar timeout +.Op Fl l Ar preload .Ek .Bk -words -.Op Fl l Ar preload +.Op Fl m Ar hoplimit .Ek .Bk -words .\" new ipsec @@ -87,6 +81,12 @@ packets to network hosts .Op Fl s Ar packetsize .Ek .Bk -words +.Op Fl t Ar timeout +.Ek +.Bk -words +.Op Fl W Ar waittime +.Ek +.Bk -words .Op Ar hops ... .Ek .Bk -words @@ -110,10 +110,10 @@ header formatted as documented in RFC2463. The options are as follows: .Bl -tag -width Ds .\" old ipsec -.\" .It Fl A +.\" .It Fl Z .\" Enables transport-mode IPsec authentication header .\" (experimental). -.It Fl a Ar addrtype +.It Fl k Ar addrtype Generate ICMPv6 Node Information Node Addresses query, rather than echo-request. .Ar addrtype must be a string constructed of the following characters. @@ -172,7 +172,7 @@ Only the super-user may use this option. .Bf -emphasis This can be very hard on a network and should be used with caution. .Ef -.It Fl g Ar gateway +.It Fl e Ar gateway Specifies to use .Ar gateway as the next hop to the destination. @@ -182,7 +182,7 @@ Specifies to try reverse-lookup of IPv6 addresses. The .Nm utility does not try reverse-lookup unless the option is specified. -.It Fl h Ar hoplimit +.It Fl m Ar hoplimit Set the IPv6 hoplimit. .It Fl I Ar interface Source packets with the given interface address. @@ -197,12 +197,12 @@ The default is to wait for one second between each pac This option is incompatible with the .Fl f option. -.It Fl x Ar waittime +.It Fl W Ar waittime Time in milliseconds to wait for a reply for each packet sent. If a reply arrives later, the packet is not printed as replied, but considered as replied when calculating statistics. -.It Fl X Ar timeout +.It Fl t Ar timeout Specify a timeout, in seconds, before ping exits regardless of how many packets have been received. @@ -214,12 +214,12 @@ is specified, sends that many packets as fast as possible before falling into its normal mode of behavior. Only the super-user may use this option. -.It Fl m +.It Fl u By default, .Nm asks the kernel to fragment packets to fit into the minimum IPv6 MTU. The -.Fl m +.Fl u option will suppress the behavior in the following two levels: when the option is specified once, the behavior will be disabled for @@ -270,13 +270,13 @@ specifies IPsec policy to be used for the probe. Quiet output. Nothing is displayed except the summary lines at startup time and when finished. -.It Fl r +.It Fl a Audible. Include a bell .Tn ( ASCII 0x07) character in the output when any packet is received. -.It Fl R +.It Fl A Audible. Output a bell .Tn ( ASCII @@ -301,12 +301,12 @@ header data. You may need to specify .Fl b as well to extend socket buffer size. -.It Fl t +.It Fl O Generate ICMPv6 Node Information supported query types query, rather than echo-request. .Fl s has no effect if -.Fl t +.Fl O is specified. .It Fl v Verbose output. @@ -314,20 +314,20 @@ Verbose output. packets other than .Tn ECHO_RESPONSE that are received are listed. -.It Fl w +.It Fl y Generate ICMPv6 Node Information DNS Name query, rather than echo-request. .Fl s has no effect if -.Fl w +.Fl y is specified. -.It Fl W +.It Fl Y Same as -.Fl w , +.Fl y , but with old packet format based on 03 draft. This option is present for backward compatibility. .Fl s has no effect if -.Fl w +.Fl y is specified. .It Ar hops IPv6 addresses for intermediate nodes, Modified: head/sbin/ping6/ping6.c ============================================================================== --- head/sbin/ping6/ping6.c Fri Aug 23 15:17:04 2019 (r351422) +++ head/sbin/ping6/ping6.c Fri Aug 23 15:22:20 2019 (r351423) @@ -347,14 +347,14 @@ main(int argc, char *argv[]) #ifdef IPSEC_POLICY_IPSEC #define ADDOPTS "P:" #else -#define ADDOPTS "AE" +#define ADDOPTS "ZE" #endif /*IPSEC_POLICY_IPSEC*/ #endif while ((ch = getopt(argc, argv, - "a:b:c:DdfHg:h:I:i:l:mnNop:qrRS:s:tvwWx:X:" ADDOPTS)) != -1) { + "k:b:c:DdfHe:m:I:i:l:unNop:qaAS:s:OvyYW:t:" ADDOPTS)) != -1) { #undef ADDOPTS switch (ch) { - case 'a': + case 'k': { char *cp; @@ -431,13 +431,13 @@ main(int argc, char *argv[]) options |= F_FLOOD; setbuf(stdout, (char *)NULL); break; - case 'g': + case 'e': gateway = optarg; break; case 'H': options |= F_HOSTNAME; break; - case 'h': /* hoplimit */ + case 'm': /* hoplimit */ hoplimit = strtol(optarg, &e, 10); if (*optarg == '\0' || *e != '\0') errx(1, "illegal hoplimit %s", optarg); @@ -481,7 +481,7 @@ main(int argc, char *argv[]) if (preload < 0 || *optarg == '\0' || *e != '\0') errx(1, "illegal preload value -- %s", optarg); break; - case 'm': + case 'u': #ifdef IPV6_USE_MIN_MTU mflag++; break; @@ -506,10 +506,10 @@ main(int argc, char *argv[]) case 'q': options |= F_QUIET; break; - case 'r': + case 'a': options |= F_AUDIBLE; break; - case 'R': + case 'A': options |= F_MISSED; break; case 'S': @@ -543,22 +543,22 @@ main(int argc, char *argv[]) MAXDATALEN); } break; - case 't': + case 'O': options &= ~F_NOUSERDATA; options |= F_SUPTYPES; break; case 'v': options |= F_VERBOSE; break; - case 'w': + case 'y': options &= ~F_NOUSERDATA; options |= F_FQDN; break; - case 'W': + case 'Y': options &= ~F_NOUSERDATA; options |= F_FQDNOLD; break; - case 'x': + case 'W': t = strtod(optarg, &e); if (*e || e == optarg || t > (double)INT_MAX) err(EX_USAGE, "invalid timing interval: `%s'", @@ -566,7 +566,7 @@ main(int argc, char *argv[]) options |= F_WAITTIME; waittime = (int)t; break; - case 'X': + case 't': alarmtimeout = strtoul(optarg, &e, 0); if ((alarmtimeout < 1) || (alarmtimeout == ULONG_MAX)) errx(EX_USAGE, "invalid timeout: `%s'", @@ -590,7 +590,7 @@ main(int argc, char *argv[]) errx(1, "invalid security policy"); break; #else - case 'A': + case 'Z': options |= F_AUTHHDR; break; case 'E': @@ -1835,7 +1835,7 @@ pr_exthdrs(struct msghdr *mhdr) bufsize = CONTROLLEN - ((caddr_t)CMSG_DATA(cm) - (caddr_t)bufp); if (bufsize <= 0) - continue; + continue; switch (cm->cmsg_type) { case IPV6_HOPOPTS: printf(" HbH Options: "); @@ -2783,7 +2783,7 @@ nigroup(char *name, int nig_oldmcprefix) } if (valid != 1) return NULL; /*XXX*/ - + if (nig_oldmcprefix) { /* draft-ietf-ipngwg-icmp-name-lookup */ bcopy(digest, &in6.s6_addr[12], 4); @@ -2803,27 +2803,27 @@ usage(void) { (void)fprintf(stderr, #if defined(IPSEC) && !defined(IPSEC_POLICY_IPSEC) - "A" + "Z" #endif "usage: ping6 [-" - "Dd" + "aADd" #if defined(IPSEC) && !defined(IPSEC_POLICY_IPSEC) "E" #endif - "fH" + "fHnNoOq" #ifdef IPV6_USE_MIN_MTU - "m" + "u" #endif - "nNoqrRtvwW] " - "[-a addrtype] [-b bufsiz] [-c count] [-g gateway]\n" - " [-h hoplimit] [-I interface] [-i wait] [-l preload]" + "vyY] " + "[-b bufsiz] [-c count] [-e gateway]\n" + " [-I interface] [-i wait] [-k addrtype] [-l preload] " + "[-m hoplimit]\n" + " [-p pattern]" #if defined(IPSEC) && defined(IPSEC_POLICY_IPSEC) " [-P policy]" #endif - "\n" - " [-p pattern] [-S sourceaddr] [-s packetsize] " - "[-x waittime]\n" - " [-X timeout] [hops ...] host\n"); + " [-S sourceaddr] [-s packetsize]\n" + " [-t timeout] [-W waittime] [hops ...] host\n"); exit(1); } Modified: head/sbin/ping6/tests/Makefile ============================================================================== --- head/sbin/ping6/tests/Makefile Fri Aug 23 15:17:04 2019 (r351422) +++ head/sbin/ping6/tests/Makefile Fri Aug 23 15:22:20 2019 (r351423) @@ -3,6 +3,6 @@ PACKAGE= tests ATF_TESTS_SH+= ping6_test -${PACKAGE}FILES+= ping6_c1_s8_X1.out +${PACKAGE}FILES+= ping6_c1_s8_t1.out .include Copied: head/sbin/ping6/tests/ping6_c1_s8_t1.out (from r351394, head/sbin/ping6/tests/ping6_c1_s8_X1.out) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/ping6/tests/ping6_c1_s8_t1.out Fri Aug 23 15:22:20 2019 (r351423, copy of r351394, head/sbin/ping6/tests/ping6_c1_s8_X1.out) @@ -0,0 +1,6 @@ +PING6(56=40+8+8 bytes) ::1 --> ::1 +16 bytes from ::1, icmp_seq=0 hlim= time= ms + +--- localhost ping6 statistics --- +1 packets transmitted, 1 packets received, 0.0% packet loss +round-trip min/avg/max/std-dev = /// ms Modified: head/sbin/ping6/tests/ping6_test.sh ============================================================================== --- head/sbin/ping6/tests/ping6_test.sh Fri Aug 23 15:17:04 2019 (r351422) +++ head/sbin/ping6/tests/ping6_test.sh Fri Aug 23 15:22:20 2019 (r351423) @@ -27,21 +27,21 @@ # # $FreeBSD$ -atf_test_case ping6_c1_s8_X1 -ping6_c1_s8_X1_head() { +atf_test_case ping6_c1_s8_t1 +ping6_c1_s8_t1_head() { atf_set "descr" "Stop after receiving 1 ECHO_RESPONSE packet" } -ping6_c1_s8_X1_body() { +ping6_c1_s8_t1_body() { if ! getaddrinfo -f inet6 localhost 1>/dev/null 2>&1; then atf_skip "IPv6 is not configured" fi atf_check -s exit:0 -o save:std.out -e empty \ - ping6 -c 1 -s 8 -X 1 localhost - check_ping_statistics std.out $(atf_get_srcdir)/ping6_c1_s8_X1.out + ping6 -c 1 -s 8 -t 1 localhost + check_ping_statistics std.out $(atf_get_srcdir)/ping6_c1_s8_t1.out } atf_init_test_cases() { - atf_add_test_case ping6_c1_s8_X1 + atf_add_test_case ping6_c1_s8_t1 } check_ping_statistics() { From owner-svn-src-all@freebsd.org Fri Aug 23 15:24:19 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5D763C7DDB; Fri, 23 Aug 2019 15:24:19 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FQDM1pmPz3NjF; Fri, 23 Aug 2019 15:24:19 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1FEB41E984; Fri, 23 Aug 2019 15:24:19 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7NFOJc9068284; Fri, 23 Aug 2019 15:24:19 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NFOJl4068283; Fri, 23 Aug 2019 15:24:19 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908231524.x7NFOJl4068283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Fri, 23 Aug 2019 15:24:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351424 - head/sbin/ping X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/sbin/ping X-SVN-Commit-Revision: 351424 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 15:24:19 -0000 Author: asomers Date: Fri Aug 23 15:24:18 2019 New Revision: 351424 URL: https://svnweb.freebsd.org/changeset/base/351424 Log: ping: fix include guard symbol name to reflect the header file name Submitted by: Ján Sučan MFC after: 2 weeks MFC-With: 351171 Sponsored by: Google LLC (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21374 Modified: head/sbin/ping/utils.h Modified: head/sbin/ping/utils.h ============================================================================== --- head/sbin/ping/utils.h Fri Aug 23 15:22:20 2019 (r351423) +++ head/sbin/ping/utils.h Fri Aug 23 15:24:18 2019 (r351424) @@ -28,8 +28,8 @@ * $FreeBSD$ */ -#ifndef PING_H -#define PING_H 1 +#ifndef UTILS_H +#define UTILS_H 1 #include From owner-svn-src-all@freebsd.org Fri Aug 23 15:53:19 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A5B53C853C for ; Fri, 23 Aug 2019 15:53:19 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x72b.google.com (mail-qk1-x72b.google.com [IPv6:2607:f8b0:4864:20::72b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FQsp3F5Kz3Pyk for ; Fri, 23 Aug 2019 15:53:18 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x72b.google.com with SMTP id 125so8562659qkl.6 for ; Fri, 23 Aug 2019 08:53:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=NxAVg8SucpmXbz7R3PsLE5rEjDtyo9+OVbunW7SATAM=; b=Mxcz9NPz8JOU2C75yzVkrEvz+TXAanNh2GWvDvFziUAumE5dh7ChOr76dA08tH6BJJ G2YwtmvF5PUJMBtH21kQW9mD1cz3FPR/nJcqCfOqbL4Ex+zM3x+4jIBt0ZT151h2T6dh uygIo2MysOcKiyq98emgZpWLGwLLnRBBElxKJIeo72BnqXE81EXHNJakgJoSx/+Y1Cuv iUAuPh91d+fzHXlGoBu0/WKTtNzjfIavCL1XXzZdER+5Je2WFghckAcs0rJhhSV6fUZm e9yZBh0ZO0GPcq4YT7M5Xft5e5BuixjPOgHJvSBDQw0qE1TtBft54behiCL29zFEna7H 82ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=NxAVg8SucpmXbz7R3PsLE5rEjDtyo9+OVbunW7SATAM=; b=ELSPGUQj5l6GpLAtXF1xm2s4UA3hMEnkVonQy3L6AYuBrLkZx9mjj7diMRVR1HpJe+ m/sbmroWsuBJwPVap/sAdSXEONqgW6SW6solWxLrI/Sj2YMZU6z9LVHbVu2JGiDdc6Kl t8qkKRwT5TCtd7mUnSJ8KkN8AfbsaeyAkifXG16VqB5JmXCBnuI8kSXUGw2B/AXLe3Ky QaOFm2admilFP+ktOQMXDOOJmyByevb9LrgcjWmmZ9lQ4CWTkICQ1kX31ovgENke49Gx 4hn9H/vcNQtTofYcmDlh2EtNVe5VJQG0oTwEdlD/Vn7NUPNvtxK/BOKxrwTQYChba6AX bNSg== X-Gm-Message-State: APjAAAW/vk0AFaXstQg/w3Bjd3h6FzfI0m/L9YweSbAzHwuLzs0TCFis v65qUCjVfDCWsbdJI2rDTOtqVqLPFNY7LyH5ds+Hwz5mZR+SqA== X-Google-Smtp-Source: APXvYqySP5pzFDFBttde27/CbSRXHHurZR80x42pgH3LjMqfahHmLW6YQG2sOE5FzeaNHoLcetFjDhXz+VF4RKbwQKo= X-Received: by 2002:a37:4804:: with SMTP id v4mr4928514qka.60.1566575596923; Fri, 23 Aug 2019 08:53:16 -0700 (PDT) MIME-Version: 1.0 References: <201908220002.x7M028Jh070116@repo.freebsd.org> <0b9d1aa1-d328-30bc-b939-f1407e236855@FreeBSD.org> In-Reply-To: <0b9d1aa1-d328-30bc-b939-f1407e236855@FreeBSD.org> From: Warner Losh Date: Fri, 23 Aug 2019 09:53:05 -0600 Message-ID: Subject: Re: svn commit: r351364 - in head/sys: crypto/blowfish crypto/chacha20 crypto/des opencrypto To: John Baldwin Cc: "Bjoern A. Zeeb" , src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 46FQsp3F5Kz3Pyk X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=Mxcz9NPz; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::72b) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-4.94 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; URI_COUNT_ODD(1.00)[9]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; NEURAL_HAM_SHORT(-0.99)[-0.992,0]; RCVD_IN_DNSWL_NONE(0.00)[b.2.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.95)[ip: (-9.48), ipnet: 2607:f8b0::/32(-2.88), asn: 15169(-2.34), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 15:53:19 -0000 Sorry for top posting... I had planned this for next week, but I think give this insanity of this patch, we should do it now: turn off -Werror for gcc 4.2.1 https://reviews.freebsd.org/D21378 has the review. There's no benefit to these head-scratcher changes when we can get the same benefit by ignoring gcc 4.2.1 errors as discussed on arch@. Warner On Thu, Aug 22, 2019 at 10:46 AM John Baldwin wrote: > On 8/22/19 2:39 AM, Bjoern A. Zeeb wrote: > > On 22 Aug 2019, at 0:02, John Baldwin wrote: > > > > Hi, > > > >> Author: jhb > >> Date: Thu Aug 22 00:02:08 2019 > >> New Revision: 351364 > >> URL: https://svnweb.freebsd.org/changeset/base/351364 > >> > >> Log: > >> Use 'const' for keys and IVs passed to software encryption > >> algorithms. > >> > >> Specifically, use 'const' for the key passed to the 'setkey' method > >> and 'const' for the 'iv' passed to the 'reinit' method. > >> > >> Reviewed by: cem > >> Sponsored by: Chelsio Communications > >> Differential Revision: https://reviews.freebsd.org/D21347 > > > > can you please review and commit this one to make gcc platforms a bit > > more happy again (I tested a sparc64 GENERIC kernel build): > > I will get tinderbox happy. > > > Index: sys/opencrypto/xform_des3.c > > =================================================================== > > --- sys/opencrypto/xform_des3.c (revision 351384) > > +++ sys/opencrypto/xform_des3.c (working copy) > > @@ -100,9 +100,9 @@ des3_setkey(u_int8_t **sched, const u_int8_t *key, > > p = KMALLOC(3*sizeof (des_key_schedule), > > M_CRYPTO_DATA, M_NOWAIT|M_ZERO); > > if (p != NULL) { > > - des_set_key((const des_cblock *)(key + 0), p[0]); > > - des_set_key((const des_cblock *)(key + 8), p[1]); > > - des_set_key((const des_cblock *)(key + 16), p[2]); > > + des_set_key(__DEQUALIFY(const des_cblock *,(key + 0)), > p[0]); > > + des_set_key(__DEQUALIFY(const des_cblock *,(key + 8)), > p[1]); > > + des_set_key(__DEQUALIFY(const des_cblock *,(key + 16)), > p[2]); > > This makes no sense. Why are you removing const only to add it back again? > > -- > John Baldwin > > From owner-svn-src-all@freebsd.org Fri Aug 23 16:03:24 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2C95BC88A5; Fri, 23 Aug 2019 16:03:24 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FR5S0MCzz3QWw; Fri, 23 Aug 2019 16:03:24 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E22011F0F0; Fri, 23 Aug 2019 16:03: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 x7NG3Nnv092182; Fri, 23 Aug 2019 16:03:23 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NG3Nwp092181; Fri, 23 Aug 2019 16:03:23 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908231603.x7NG3Nwp092181@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 23 Aug 2019 16:03:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351425 - head/usr.bin/vtfontcvt X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/usr.bin/vtfontcvt X-SVN-Commit-Revision: 351425 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 16:03:24 -0000 Author: emaste Date: Fri Aug 23 16:03:23 2019 New Revision: 351425 URL: https://svnweb.freebsd.org/changeset/base/351425 Log: vtfontcvt: simplify rshift_row We don't need to specify the buffer size in both bytes and bits. MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/usr.bin/vtfontcvt/vtfontcvt.c Modified: head/usr.bin/vtfontcvt/vtfontcvt.c ============================================================================== --- head/usr.bin/vtfontcvt/vtfontcvt.c Fri Aug 23 15:24:18 2019 (r351424) +++ head/usr.bin/vtfontcvt/vtfontcvt.c Fri Aug 23 16:03:23 2019 (r351425) @@ -224,38 +224,19 @@ add_char(unsigned curchar, unsigned map_idx, uint8_t * } /* - * Right-shift glyph row by _shift_ bits. Row _len_ bits wide, _size_ bytes. + * Right-shift glyph row. */ -static int -rshift_row(uint8_t *line, size_t size, size_t len, size_t shift) +static void +rshift_row(uint8_t *buf, size_t len, size_t shift) { - size_t d, s, i; - uint16_t t; + ssize_t i, off_byte = shift / 8; + size_t off_bit = shift % 8; - assert(size > 0 && len > 0); - assert(size * 8 >= len); - if (shift == 0) - return (0); - - d = shift / 8; - s = 8 - shift % 8; - i = howmany(len, 8); - - while (i > 0) { - i--; - - t = *(line + i); - *(line + i) = 0; - - t <<= s; - - if (i + d + 1 < size) - *(line + i + d + 1) |= (uint8_t)t; - if (i + d < size) - *(line + i + d) = t >> 8; - } - return (0); + return; + for (i = len - 1; i >= 0; i--) + buf[i] = (i >= off_byte ? buf[i - off_byte] >> off_bit : 0) | + (i > off_byte ? buf[i - off_byte - 1] << (8 - off_bit) : 0); } /* @@ -426,11 +407,7 @@ parse_bdf(FILE *fp, unsigned int map_idx) *(line + j) = (uint8_t)val; } - rv = rshift_row(line, wbytes * 2, bbw, - bbox - fbbox); - if (rv != 0) - goto out; - + rshift_row(line, wbytes * 2, bbox - fbbox); rv = split_row(bytes + i * wbytes, bytes_r + i * wbytes, line, dwidth); if (rv != 0) From owner-svn-src-all@freebsd.org Fri Aug 23 16:07:00 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 26B40C8B3E; Fri, 23 Aug 2019 16:07:00 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FR9c0Dhtz3Qms; Fri, 23 Aug 2019 16:07:00 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from venus.codepro.be (venus.codepro.be [5.9.86.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mx1.codepro.be", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: kp) by smtp.freebsd.org (Postfix) with ESMTPSA id C50D81AE09; Fri, 23 Aug 2019 16:06:59 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from [10.10.132.3] (ptr-8rh08k03k2b76lheime.18120a2.ip6.access.telenet.be [IPv6:2a02:1811:240e:402:85b6:5ec3:b20e:9ac6]) (Authenticated sender: kp) by venus.codepro.be (Postfix) with ESMTPSA id 09CBD3044B; Fri, 23 Aug 2019 18:06:57 +0200 (CEST) From: "Kristof Provost" To: "Li-Wen Hsu" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r351391 - head/tests/sys/netpfil/pf Date: Fri, 23 Aug 2019 18:06:55 +0200 X-Mailer: MailMate (2.0BETAr6137) Message-ID: <691F0645-8BF0-4486-B649-74E48B43F3AB@FreeBSD.org> In-Reply-To: <201908221208.x7MC8aFp097280@repo.freebsd.org> References: <201908221208.x7MC8aFp097280@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 16:07:00 -0000 On 22 Aug 2019, at 14:08, Li-Wen Hsu wrote: > Author: lwhsu > Date: Thu Aug 22 12:08:35 2019 > New Revision: 351391 > URL: https://svnweb.freebsd.org/changeset/base/351391 > > Log: > Fix path issues after r351212 > > This fixes sys.netpfil.pf.forward.v4 and > sys.netpfil.pf.icmp.cve_2019_5598 > failures in CI system. > Thanks! I must have missed those. Best regards, Kristof From owner-svn-src-all@freebsd.org Fri Aug 23 16:10:19 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9CEB0C8C1A; Fri, 23 Aug 2019 16:10:19 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FRFR3gC2z3QyH; Fri, 23 Aug 2019 16:10:19 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mx1.sbone.de (cross.sbone.de [195.201.62.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified)) (Authenticated sender: bz/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4699F1AE0A; Fri, 23 Aug 2019 16:10:19 +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 22F968D4A13E; Fri, 23 Aug 2019 16:10:17 +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 3551DE70846; Fri, 23 Aug 2019 16:10:16 +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 zqUarkOGSJGa; Fri, 23 Aug 2019 16:10:14 +0000 (UTC) Received: from [127.0.0.1] (unknown [IPv6:fde9:577b:c1a9:31:7466:a929:9e2f:a88e]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id 91543D21C68; Fri, 23 Aug 2019 16:10:14 +0000 (UTC) From: "Bjoern A. Zeeb" To: "Warner Losh" , "Li-Wen Hsu" Cc: "John Baldwin" , src-committers , svn-src-all , svn-src-head Subject: Re: svn commit: r351364 - in head/sys: crypto/blowfish crypto/chacha20 crypto/des opencrypto Date: Fri, 23 Aug 2019 16:10:13 +0000 X-Mailer: MailMate (2.0BETAr6137) Message-ID: <3EE09B22-254B-4415-8865-D9542122ACA5@FreeBSD.org> In-Reply-To: References: <201908220002.x7M028Jh070116@repo.freebsd.org> <0b9d1aa1-d328-30bc-b939-f1407e236855@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 16:10:19 -0000 On 23 Aug 2019, at 15:53, Warner Losh wrote: > Sorry for top posting... > > I had planned this for next week, but I think give this insanity of > this > patch, we should do it now: turn off -Werror for gcc 4.2.1 > > https://reviews.freebsd.org/D21378 > > has the review. There's no benefit to these head-scratcher changes > when we > can get the same benefit by ignoring gcc 4.2.1 errors as discussed on > arch@. That brings me to a different question: why does this build https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc/lastBuild/ not fail despite rendering the warnings? /bz From owner-svn-src-all@freebsd.org Fri Aug 23 16:18:25 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9BF1AC8F63; Fri, 23 Aug 2019 16:18:25 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FRQn4N6Lz3wdT; Fri, 23 Aug 2019 16:18:25 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5EA391F2DF; Fri, 23 Aug 2019 16:18:25 +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 x7NGIP07098254; Fri, 23 Aug 2019 16:18:25 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NGIPvQ098253; Fri, 23 Aug 2019 16:18:25 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908231618.x7NGIPvQ098253@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 23 Aug 2019 16:18:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351426 - stable/12/usr.bin/vtfontcvt X-SVN-Group: stable-12 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: stable/12/usr.bin/vtfontcvt X-SVN-Commit-Revision: 351426 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 16:18:25 -0000 Author: emaste Date: Fri Aug 23 16:18:25 2019 New Revision: 351426 URL: https://svnweb.freebsd.org/changeset/base/351426 Log: vtfontcvt: improve BDF and hex font parsing MFC r348661: vtfontcvt: rework height/width setting Introduce VFNT_MAXDIMENSION to replace bare 128, add set_height, and consistently use set_height and set_width. Submitted by: Dmitry Wagin MFC r348662: vtfontcvt: include width and height in verbose info Submitted by: Dmitry Wagin MFC r348668: vtfontcvt: zero memory allocated by xmalloc Submitted by: Dmitry Wagin MFC r348692: vtfontcvt: exit on error if the input font has too many glyphs The kernel has a limit of 131072 glyphs in a font; add the same check to vtfontcvt so that we won't create a font file that the kernel will not load. MFC r348796: vtfontcvt: allow out-of-order glyphs Reported by: mi MFC r349049: vtfontcvt: add comments in add_glyph MFC r349100: vtfontcvt: improve BDF and hex font parsing Support larger font sizes. Submitted by: Dmitry Wagin (original version) MFC r349101: vtfontcvt: initialize bbwbytes to avoid GCC 4.2.1 warning MFC r349105: vtfontcvt: initialize another variable to quiet GCC warning I believe this case could be triggered by a broken .bdf font. MFC r349107: vtfontcvt: improve .bdf verification Previously we would crash if the BBX y-offset was outside of the font bounding box. Reported by: afl fuzzer MFC r349108: vtfontcvt: improve .bdf validation Previously if we had a BBX entry that had invalid values (e.g. bounding box outside of font bounding box) and failed sscanf (e.g., because it had fewer than four values) we skipped the BBX value validation and then triggered an assertion failure. Reported by: afl fuzzer MFC r349111: vtfontcvt: correct typo in hex parsing update Submitted by: Dmitry Wagin MFC r349333: vtfontcvt: improve .bdf validation Previously if we had a FONTBOUNDINGBOX or DWIDTH entry that had missing or invalid values and and failed sscanf, we would proceeded with partially initialized bounding box / device width variables. Reported by: afl fuzzer (FONTBOUNDINGBOX) PR: 205707 Sponsored by: The FreeBSD Foundation Modified: stable/12/usr.bin/vtfontcvt/vtfontcvt.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/vtfontcvt/vtfontcvt.c ============================================================================== --- stable/12/usr.bin/vtfontcvt/vtfontcvt.c Fri Aug 23 16:03:23 2019 (r351425) +++ stable/12/usr.bin/vtfontcvt/vtfontcvt.c Fri Aug 23 16:18:25 2019 (r351426) @@ -49,6 +49,8 @@ __FBSDID("$FreeBSD$"); #define VFNT_MAP_NORMAL_RH 1 #define VFNT_MAP_BOLD 2 #define VFNT_MAP_BOLD_RH 3 +#define VFNT_MAXGLYPHS 131072 +#define VFNT_MAXDIMENSION 128 static unsigned int width = 8, wbytes, height = 16; @@ -101,7 +103,7 @@ xmalloc(size_t size) { void *m; - if ((m = malloc(size)) == NULL) + if ((m = calloc(1, size)) == NULL) errx(1, "memory allocation failure"); return (m); } @@ -109,7 +111,7 @@ xmalloc(size_t size) static int add_mapping(struct glyph *gl, unsigned int c, unsigned int map_idx) { - struct mapping *mp; + struct mapping *mp, *mp_temp; struct mapping_list *ml; mapping_total++; @@ -120,10 +122,19 @@ add_mapping(struct glyph *gl, unsigned int c, unsigned mp->m_length = 0; ml = &maps[map_idx]; - if (TAILQ_LAST(ml, mapping_list) != NULL && - TAILQ_LAST(ml, mapping_list)->m_char >= c) - errx(1, "Bad ordering at character %u", c); - TAILQ_INSERT_TAIL(ml, mp, m_list); + if (TAILQ_LAST(ml, mapping_list) == NULL || + TAILQ_LAST(ml, mapping_list)->m_char < c) { + /* Common case: empty list or new char at end of list. */ + TAILQ_INSERT_TAIL(ml, mp, m_list); + } else { + /* Find insertion point for char; cannot be at end. */ + TAILQ_FOREACH(mp_temp, ml, m_list) { + if (mp_temp->m_char >= c) { + TAILQ_INSERT_BEFORE(mp_temp, mp, m_list); + break; + } + } + } map_count[map_idx]++; mapping_unique++; @@ -165,6 +176,7 @@ add_glyph(const uint8_t *bytes, unsigned int map_idx, glyph_total++; glyph_count[map_idx]++; + /* Return existing glyph if we have an identical one. */ hash = fnv_32_buf(bytes, wbytes * height, FNV1_32_INIT) % FONTCVT_NHASH; SLIST_FOREACH(gl, &glyph_hash[hash], g_hash) { if (memcmp(gl->g_data, bytes, wbytes * height) == 0) { @@ -173,6 +185,7 @@ add_glyph(const uint8_t *bytes, unsigned int map_idx, } } + /* Allocate new glyph. */ gl = xmalloc(sizeof *gl); gl->g_data = xmalloc(wbytes * height); memcpy(gl->g_data, bytes, wbytes * height); @@ -183,6 +196,8 @@ add_glyph(const uint8_t *bytes, unsigned int map_idx, SLIST_INSERT_HEAD(&glyph_hash[hash], gl, g_hash); glyph_unique++; + if (glyph_unique > VFNT_MAXGLYPHS) + errx(1, "too many glyphs (%u)", glyph_unique); return (gl); } @@ -208,112 +223,243 @@ add_char(unsigned curchar, unsigned map_idx, uint8_t * return (0); } - +/* + * Right-shift glyph row by _shift_ bits. Row _len_ bits wide, _size_ bytes. + */ static int -parse_bitmap_line(uint8_t *left, uint8_t *right, unsigned int line, - unsigned int dwidth) +rshift_row(uint8_t *line, size_t size, size_t len, size_t shift) { - uint8_t *p; - unsigned int i, subline; + size_t d, s, i; + uint16_t t; - if (dwidth != width && dwidth != width * 2) - errx(1, "Bitmap with unsupported width %u!", dwidth); + assert(size > 0 && len > 0); + assert(size * 8 >= len); - /* Move pixel data right to simplify splitting double characters. */ - line >>= (howmany(dwidth, 8) * 8) - dwidth; + if (shift == 0) + return (0); - for (i = dwidth / width; i > 0; i--) { - p = (i == 2) ? right : left; + d = shift / 8; + s = 8 - shift % 8; + i = howmany(len, 8); - subline = line & ((1 << width) - 1); - subline <<= (howmany(width, 8) * 8) - width; + while (i > 0) { + i--; - if (wbytes == 1) { - *p = subline; - } else if (wbytes == 2) { - *p++ = subline >> 8; - *p = subline; - } else { - errx(1, "Unsupported wbytes %u!", wbytes); - } + t = *(line + i); + *(line + i) = 0; - line >>= width; + t <<= s; + + if (i + d + 1 < size) + *(line + i + d + 1) |= (uint8_t)t; + if (i + d < size) + *(line + i + d) = t >> 8; } + return (0); +} +/* + * Split double-width characters into left and right half. Single-width + * characters in _left_ only. + */ +static int +split_row(uint8_t *left, uint8_t *right, uint8_t *line, size_t w) +{ + size_t s, i; + + s = wbytes * 8 - width; + + memcpy(left, line, wbytes); + *(left + wbytes - 1) &= 0xFF << s; + + if (w > width) { /* Double-width character. */ + uint8_t t; + + for (i = 0; i < wbytes; i++) { + t = *(line + wbytes + i - 1); + t <<= 8 - s; + t |= *(line + wbytes + i) >> s; + *(right + i) = t; + } + *(right + wbytes - 1) &= 0xFF << s; + } return (0); } +static void +set_height(int h) +{ + if (h <= 0 || h > VFNT_MAXDIMENSION) + errx(1, "invalid height %d", h); + height = h; +} + +static void +set_width(int w) +{ + if (w <= 0 || w > VFNT_MAXDIMENSION) + errx(1, "invalid width %d", w); + width = w; + wbytes = howmany(width, 8); +} + static int parse_bdf(FILE *fp, unsigned int map_idx) { - char *ln; + char *line, *ln, *p; size_t length; - uint8_t bytes[wbytes * height], bytes_r[wbytes * height]; - unsigned int curchar = 0, dwidth = 0, i, line; + uint8_t *bytes, *bytes_r; + unsigned int curchar = 0, i, j, linenum = 0, bbwbytes; + int bbw, bbh, bbox, bboy; /* Glyph bounding box. */ + int fbbw = 0, fbbh, fbbox, fbboy; /* Font bounding box. */ + int dwidth = 0, dwy = 0; + int rv = -1; + char spc = '\0'; + /* + * Step 1: Parse FONT logical font descriptor and FONTBOUNDINGBOX + * bounding box. + */ while ((ln = fgetln(fp, &length)) != NULL) { + linenum++; ln[length - 1] = '\0'; - if (strncmp(ln, "ENCODING ", 9) == 0) { - curchar = atoi(ln + 9); + if (strncmp(ln, "FONT ", 5) == 0) { + p = ln + 5; + i = 0; + while ((p = strchr(p, '-')) != NULL) { + p++; + i++; + if (i == 11) { + spc = *p; + break; + } + } + } else if (strncmp(ln, "FONTBOUNDINGBOX ", 16) == 0) { + if (sscanf(ln + 16, "%d %d %d %d", &fbbw, &fbbh, &fbbox, + &fbboy) != 4) + errx(1, "invalid FONTBOUNDINGBOX at line %u", + linenum); + set_width(fbbw); + set_height(fbbh); + break; } + } + if (fbbw == 0) + errx(1, "broken font header"); + if (spc != 'c' && spc != 'C') + errx(1, "font spacing \"C\" (character cell) required"); + /* Step 2: Validate DWIDTH (Device Width) of all glyphs. */ + while ((ln = fgetln(fp, &length)) != NULL) { + linenum++; + ln[length - 1] = '\0'; + if (strncmp(ln, "DWIDTH ", 7) == 0) { - dwidth = atoi(ln + 7); + if (sscanf(ln + 7, "%d %d", &dwidth, &dwy) != 2) + errx(1, "invalid DWIDTH at line %u", linenum); + if (dwy != 0 || (dwidth != fbbw && dwidth * 2 != fbbw)) + errx(1, "bitmap with unsupported DWIDTH %d %d at line %u", + dwidth, dwy, linenum); + if (dwidth < fbbw) + set_width(dwidth); } + } - if (strncmp(ln, "BITMAP", 6) == 0 && + /* Step 3: Restart at the beginning of the file and read glyph data. */ + dwidth = bbw = bbh = 0; + rewind(fp); + linenum = 0; + bbwbytes = 0; /* GCC 4.2.1 "may be used uninitialized" workaround. */ + bytes = xmalloc(wbytes * height); + bytes_r = xmalloc(wbytes * height); + line = xmalloc(wbytes * 2); + while ((ln = fgetln(fp, &length)) != NULL) { + linenum++; + ln[length - 1] = '\0'; + + if (strncmp(ln, "ENCODING ", 9) == 0) { + curchar = atoi(ln + 9); + } else if (strncmp(ln, "DWIDTH ", 7) == 0) { + dwidth = atoi(ln + 7); + } else if (strncmp(ln, "BBX ", 4) == 0) { + if (sscanf(ln + 4, "%d %d %d %d", &bbw, &bbh, &bbox, + &bboy) != 4) + errx(1, "invalid BBX at line %u", linenum); + if (bbw < 1 || bbh < 1 || bbw > fbbw || bbh > fbbh || + bbox < fbbox || bboy < fbboy || + bbh + bboy > fbbh + fbboy) + errx(1, "broken bitmap with BBX %d %d %d %d at line %u", + bbw, bbh, bbox, bboy, linenum); + bbwbytes = howmany(bbw, 8); + } else if (strncmp(ln, "BITMAP", 6) == 0 && (ln[6] == ' ' || ln[6] == '\0')) { + if (dwidth == 0 || bbw == 0 || bbh == 0) + errx(1, "broken char header at line %u!", + linenum); + memset(bytes, 0, wbytes * height); + memset(bytes_r, 0, wbytes * height); + /* - * Assume that the next _height_ lines are bitmap - * data. ENDCHAR is allowed to terminate the bitmap + * Assume that the next _bbh_ lines are bitmap data. + * ENDCHAR is allowed to terminate the bitmap * early but is not otherwise checked; any extra data * is ignored. */ - for (i = 0; i < height; i++) { + for (i = (fbbh + fbboy) - (bbh + bboy); + i < (unsigned int)((fbbh + fbboy) - bboy); i++) { if ((ln = fgetln(fp, &length)) == NULL) - errx(1, "Unexpected EOF!"); + errx(1, "unexpected EOF"); + linenum++; ln[length - 1] = '\0'; - if (strcmp(ln, "ENDCHAR") == 0) { - memset(bytes + i * wbytes, 0, - (height - i) * wbytes); - memset(bytes_r + i * wbytes, 0, - (height - i) * wbytes); + if (strcmp(ln, "ENDCHAR") == 0) break; + if (strlen(ln) < bbwbytes * 2) + errx(1, "broken bitmap at line %u", + linenum); + memset(line, 0, wbytes * 2); + for (j = 0; j < bbwbytes; j++) { + unsigned int val; + if (sscanf(ln + j * 2, "%2x", &val) == + 0) + break; + *(line + j) = (uint8_t)val; } - sscanf(ln, "%x", &line); - if (parse_bitmap_line(bytes + i * wbytes, - bytes_r + i * wbytes, line, dwidth) != 0) - return (1); + + rv = rshift_row(line, wbytes * 2, bbw, + bbox - fbbox); + if (rv != 0) + goto out; + + rv = split_row(bytes + i * wbytes, + bytes_r + i * wbytes, line, dwidth); + if (rv != 0) + goto out; } - if (add_char(curchar, map_idx, bytes, - dwidth == width * 2 ? bytes_r : NULL) != 0) - return (1); + rv = add_char(curchar, map_idx, bytes, + dwidth > (int)width ? bytes_r : NULL); + if (rv != 0) + goto out; + + dwidth = bbw = bbh = 0; } } - return (0); +out: + free(bytes); + free(bytes_r); + free(line); + return (rv); } -static void -set_width(int w) -{ - - if (w <= 0 || w > 128) - errx(1, "invalid width %d", w); - width = w; - wbytes = howmany(width, 8); -} - static int parse_hex(FILE *fp, unsigned int map_idx) { char *ln, *p; - char fmt_str[8]; size_t length; - uint8_t *bytes = NULL, *bytes_r = NULL; - unsigned curchar = 0, i, line, chars_per_row, dwidth; + uint8_t *bytes = NULL, *bytes_r = NULL, *line = NULL; + unsigned curchar = 0, gwidth, gwbytes, i, j, chars_per_row; int rv = 0; while ((ln = fgetln(fp, &length)) != NULL) { @@ -322,7 +468,7 @@ parse_hex(FILE *fp, unsigned int map_idx) if (strncmp(ln, "# Height: ", 10) == 0) { if (bytes != NULL) errx(1, "malformed input: Height tag after font data"); - height = atoi(ln + 10); + set_height(atoi(ln + 10)); } else if (strncmp(ln, "# Width: ", 9) == 0) { if (bytes != NULL) errx(1, "malformed input: Width tag after font data"); @@ -331,36 +477,46 @@ parse_hex(FILE *fp, unsigned int map_idx) if (bytes == NULL) { bytes = xmalloc(wbytes * height); bytes_r = xmalloc(wbytes * height); + line = xmalloc(wbytes * 2); } /* ln is guaranteed to have a colon here. */ p = strchr(ln, ':') + 1; chars_per_row = strlen(p) / height; - dwidth = width; - if (chars_per_row / 2 > (width + 7) / 8) - dwidth *= 2; /* Double-width character. */ - snprintf(fmt_str, sizeof(fmt_str), "%%%ux", - chars_per_row); + if (chars_per_row < wbytes * 2) + errx(1, + "malformed input: broken bitmap, character %06x", + curchar); + gwidth = width * 2; + gwbytes = howmany(gwidth, 8); + if (chars_per_row < gwbytes * 2 || gwidth <= 8) { + gwidth = width; /* Single-width character. */ + gwbytes = wbytes; + } for (i = 0; i < height; i++) { - sscanf(p, fmt_str, &line); - p += chars_per_row; - if (parse_bitmap_line(bytes + i * wbytes, - bytes_r + i * wbytes, line, dwidth) != 0) { - rv = 1; - goto out; + for (j = 0; j < gwbytes; j++) { + unsigned int val; + if (sscanf(p + j * 2, "%2x", &val) == 0) + break; + *(line + j) = (uint8_t)val; } + rv = split_row(bytes + i * wbytes, + bytes_r + i * wbytes, line, gwidth); + if (rv != 0) + goto out; + p += gwbytes * 2; } - if (add_char(curchar, map_idx, bytes, - dwidth == width * 2 ? bytes_r : NULL) != 0) { - rv = 1; + rv = add_char(curchar, map_idx, bytes, + gwidth != width ? bytes_r : NULL); + if (rv != 0) goto out; - } } } out: free(bytes); free(bytes_r); + free(line); return (rv); } @@ -512,6 +668,8 @@ print_font_info(void) { printf( "Statistics:\n" +"- width: %6u\n" +"- height: %6u\n" "- glyph_total: %6u\n" "- glyph_normal: %6u\n" "- glyph_normal_right: %6u\n" @@ -530,6 +688,7 @@ print_font_info(void) "- mapping_bold_right_folded: %6u\n" "- mapping_unique: %6u\n" "- mapping_dupe: %6u\n", + width, height, glyph_total, glyph_count[0], glyph_count[1], @@ -547,7 +706,7 @@ print_font_info(void) int main(int argc, char *argv[]) { - int ch, val, verbose = 0; + int ch, verbose = 0; assert(sizeof(struct file_header) == 32); assert(sizeof(struct file_mapping) == 8); @@ -555,16 +714,13 @@ main(int argc, char *argv[]) while ((ch = getopt(argc, argv, "h:vw:")) != -1) { switch (ch) { case 'h': - val = atoi(optarg); - if (val <= 0 || val > 128) - errx(1, "Invalid height %d", val); - height = val; + height = atoi(optarg); break; case 'v': verbose = 1; break; case 'w': - set_width(atoi(optarg)); + width = atoi(optarg); break; case '?': default: @@ -577,7 +733,8 @@ main(int argc, char *argv[]) if (argc < 2 || argc > 3) usage(); - wbytes = howmany(width, 8); + set_width(width); + set_height(height); if (parse_file(argv[0], VFNT_MAP_NORMAL) != 0) return (1); From owner-svn-src-all@freebsd.org Fri Aug 23 16:19:59 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 178ABC8FDE; Fri, 23 Aug 2019 16:19:59 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FRSZ5TWsz3wmY; Fri, 23 Aug 2019 16:19:58 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9DBD91F2F0; Fri, 23 Aug 2019 16:19:58 +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 x7NGJwOr098397; Fri, 23 Aug 2019 16:19:58 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NGJwUt098396; Fri, 23 Aug 2019 16:19:58 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908231619.x7NGJwUt098396@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 23 Aug 2019 16:19:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351427 - stable/11/usr.bin/vtfontcvt X-SVN-Group: stable-11 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: stable/11/usr.bin/vtfontcvt X-SVN-Commit-Revision: 351427 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 16:19:59 -0000 Author: emaste Date: Fri Aug 23 16:19:58 2019 New Revision: 351427 URL: https://svnweb.freebsd.org/changeset/base/351427 Log: MFC r305815: vtfontcvt: remove superfluous newlines in errx messages Modified: stable/11/usr.bin/vtfontcvt/vtfontcvt.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.bin/vtfontcvt/vtfontcvt.c ============================================================================== --- stable/11/usr.bin/vtfontcvt/vtfontcvt.c Fri Aug 23 16:18:25 2019 (r351426) +++ stable/11/usr.bin/vtfontcvt/vtfontcvt.c Fri Aug 23 16:19:58 2019 (r351427) @@ -122,7 +122,7 @@ add_mapping(struct glyph *gl, unsigned int c, unsigned ml = &maps[map_idx]; if (TAILQ_LAST(ml, mapping_list) != NULL && TAILQ_LAST(ml, mapping_list)->m_char >= c) - errx(1, "Bad ordering at character %u\n", c); + errx(1, "Bad ordering at character %u", c); TAILQ_INSERT_TAIL(ml, mp, m_list); map_count[map_idx]++; @@ -143,7 +143,7 @@ dedup_mapping(unsigned int map_idx) while (mp_normal->m_char < mp_bold->m_char) mp_normal = TAILQ_NEXT(mp_normal, m_list); if (mp_bold->m_char != mp_normal->m_char) - errx(1, "Character %u not in normal font!\n", + errx(1, "Character %u not in normal font!", mp_bold->m_char); if (mp_bold->m_glyph != mp_normal->m_glyph) continue; @@ -217,7 +217,7 @@ parse_bitmap_line(uint8_t *left, uint8_t *right, unsig unsigned int i, subline; if (dwidth != width && dwidth != width * 2) - errx(1, "Bitmap with unsupported width %u!\n", dwidth); + errx(1, "Bitmap with unsupported width %u!", dwidth); /* Move pixel data right to simplify splitting double characters. */ line >>= (howmany(dwidth, 8) * 8) - dwidth; @@ -234,7 +234,7 @@ parse_bitmap_line(uint8_t *left, uint8_t *right, unsig *p++ = subline >> 8; *p = subline; } else { - errx(1, "Unsupported wbytes %u!\n", wbytes); + errx(1, "Unsupported wbytes %u!", wbytes); } line >>= width; @@ -272,7 +272,7 @@ parse_bdf(FILE *fp, unsigned int map_idx) */ for (i = 0; i < height; i++) { if ((ln = fgetln(fp, &length)) == NULL) - errx(1, "Unexpected EOF!\n"); + errx(1, "Unexpected EOF!"); ln[length - 1] = '\0'; if (strcmp(ln, "ENDCHAR") == 0) { memset(bytes + i * wbytes, 0, From owner-svn-src-all@freebsd.org Fri Aug 23 16:26:06 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ED434C9239; Fri, 23 Aug 2019 16:26:06 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FRbf6jsnz3xBK; Fri, 23 Aug 2019 16:26:06 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ADD151F4AC; Fri, 23 Aug 2019 16:26:06 +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 x7NGQ6KS004176; Fri, 23 Aug 2019 16:26:06 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NGQ6Zp004175; Fri, 23 Aug 2019 16:26:06 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908231626.x7NGQ6Zp004175@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 23 Aug 2019 16:26:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351428 - stable/11/usr.bin/vtfontcvt X-SVN-Group: stable-11 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: stable/11/usr.bin/vtfontcvt X-SVN-Commit-Revision: 351428 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 16:26:07 -0000 Author: emaste Date: Fri Aug 23 16:26:06 2019 New Revision: 351428 URL: https://svnweb.freebsd.org/changeset/base/351428 Log: vtfontcvt: improve BDF and hex font parsing MFC r348661: vtfontcvt: rework height/width setting Introduce VFNT_MAXDIMENSION to replace bare 128, add set_height, and consistently use set_height and set_width. Submitted by: Dmitry Wagin MFC r348662: vtfontcvt: include width and height in verbose info Submitted by: Dmitry Wagin MFC r348668: vtfontcvt: zero memory allocated by xmalloc Submitted by: Dmitry Wagin MFC r348692: vtfontcvt: exit on error if the input font has too many glyphs The kernel has a limit of 131072 glyphs in a font; add the same check to vtfontcvt so that we won't create a font file that the kernel will not load. MFC r348796: vtfontcvt: allow out-of-order glyphs Reported by: mi MFC r349049: vtfontcvt: add comments in add_glyph MFC r349100: vtfontcvt: improve BDF and hex font parsing Support larger font sizes. Submitted by: Dmitry Wagin (original version) MFC r349101: vtfontcvt: initialize bbwbytes to avoid GCC 4.2.1 warning MFC r349105: vtfontcvt: initialize another variable to quiet GCC warning I believe this case could be triggered by a broken .bdf font. MFC r349107: vtfontcvt: improve .bdf verification Previously we would crash if the BBX y-offset was outside of the font bounding box. Reported by: afl fuzzer MFC r349108: vtfontcvt: improve .bdf validation Previously if we had a BBX entry that had invalid values (e.g. bounding box outside of font bounding box) and failed sscanf (e.g., because it had fewer than four values) we skipped the BBX value validation and then triggered an assertion failure. Reported by: afl fuzzer MFC r349111: vtfontcvt: correct typo in hex parsing update Submitted by: Dmitry Wagin MFC r349333: vtfontcvt: improve .bdf validation Previously if we had a FONTBOUNDINGBOX or DWIDTH entry that had missing or invalid values and and failed sscanf, we would proceeded with partially initialized bounding box / device width variables. Reported by: afl fuzzer (FONTBOUNDINGBOX) PR: 205707 Sponsored by: The FreeBSD Foundation Modified: stable/11/usr.bin/vtfontcvt/vtfontcvt.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.bin/vtfontcvt/vtfontcvt.c ============================================================================== --- stable/11/usr.bin/vtfontcvt/vtfontcvt.c Fri Aug 23 16:19:58 2019 (r351427) +++ stable/11/usr.bin/vtfontcvt/vtfontcvt.c Fri Aug 23 16:26:06 2019 (r351428) @@ -49,6 +49,8 @@ __FBSDID("$FreeBSD$"); #define VFNT_MAP_NORMAL_RH 1 #define VFNT_MAP_BOLD 2 #define VFNT_MAP_BOLD_RH 3 +#define VFNT_MAXGLYPHS 131072 +#define VFNT_MAXDIMENSION 128 static unsigned int width = 8, wbytes, height = 16; @@ -101,7 +103,7 @@ xmalloc(size_t size) { void *m; - if ((m = malloc(size)) == NULL) + if ((m = calloc(1, size)) == NULL) errx(1, "memory allocation failure"); return (m); } @@ -109,7 +111,7 @@ xmalloc(size_t size) static int add_mapping(struct glyph *gl, unsigned int c, unsigned int map_idx) { - struct mapping *mp; + struct mapping *mp, *mp_temp; struct mapping_list *ml; mapping_total++; @@ -120,10 +122,19 @@ add_mapping(struct glyph *gl, unsigned int c, unsigned mp->m_length = 0; ml = &maps[map_idx]; - if (TAILQ_LAST(ml, mapping_list) != NULL && - TAILQ_LAST(ml, mapping_list)->m_char >= c) - errx(1, "Bad ordering at character %u", c); - TAILQ_INSERT_TAIL(ml, mp, m_list); + if (TAILQ_LAST(ml, mapping_list) == NULL || + TAILQ_LAST(ml, mapping_list)->m_char < c) { + /* Common case: empty list or new char at end of list. */ + TAILQ_INSERT_TAIL(ml, mp, m_list); + } else { + /* Find insertion point for char; cannot be at end. */ + TAILQ_FOREACH(mp_temp, ml, m_list) { + if (mp_temp->m_char >= c) { + TAILQ_INSERT_BEFORE(mp_temp, mp, m_list); + break; + } + } + } map_count[map_idx]++; mapping_unique++; @@ -165,6 +176,7 @@ add_glyph(const uint8_t *bytes, unsigned int map_idx, glyph_total++; glyph_count[map_idx]++; + /* Return existing glyph if we have an identical one. */ hash = fnv_32_buf(bytes, wbytes * height, FNV1_32_INIT) % FONTCVT_NHASH; SLIST_FOREACH(gl, &glyph_hash[hash], g_hash) { if (memcmp(gl->g_data, bytes, wbytes * height) == 0) { @@ -173,6 +185,7 @@ add_glyph(const uint8_t *bytes, unsigned int map_idx, } } + /* Allocate new glyph. */ gl = xmalloc(sizeof *gl); gl->g_data = xmalloc(wbytes * height); memcpy(gl->g_data, bytes, wbytes * height); @@ -183,6 +196,8 @@ add_glyph(const uint8_t *bytes, unsigned int map_idx, SLIST_INSERT_HEAD(&glyph_hash[hash], gl, g_hash); glyph_unique++; + if (glyph_unique > VFNT_MAXGLYPHS) + errx(1, "too many glyphs (%u)", glyph_unique); return (gl); } @@ -208,112 +223,243 @@ add_char(unsigned curchar, unsigned map_idx, uint8_t * return (0); } - +/* + * Right-shift glyph row by _shift_ bits. Row _len_ bits wide, _size_ bytes. + */ static int -parse_bitmap_line(uint8_t *left, uint8_t *right, unsigned int line, - unsigned int dwidth) +rshift_row(uint8_t *line, size_t size, size_t len, size_t shift) { - uint8_t *p; - unsigned int i, subline; + size_t d, s, i; + uint16_t t; - if (dwidth != width && dwidth != width * 2) - errx(1, "Bitmap with unsupported width %u!", dwidth); + assert(size > 0 && len > 0); + assert(size * 8 >= len); - /* Move pixel data right to simplify splitting double characters. */ - line >>= (howmany(dwidth, 8) * 8) - dwidth; + if (shift == 0) + return (0); - for (i = dwidth / width; i > 0; i--) { - p = (i == 2) ? right : left; + d = shift / 8; + s = 8 - shift % 8; + i = howmany(len, 8); - subline = line & ((1 << width) - 1); - subline <<= (howmany(width, 8) * 8) - width; + while (i > 0) { + i--; - if (wbytes == 1) { - *p = subline; - } else if (wbytes == 2) { - *p++ = subline >> 8; - *p = subline; - } else { - errx(1, "Unsupported wbytes %u!", wbytes); - } + t = *(line + i); + *(line + i) = 0; - line >>= width; + t <<= s; + + if (i + d + 1 < size) + *(line + i + d + 1) |= (uint8_t)t; + if (i + d < size) + *(line + i + d) = t >> 8; } + return (0); +} +/* + * Split double-width characters into left and right half. Single-width + * characters in _left_ only. + */ +static int +split_row(uint8_t *left, uint8_t *right, uint8_t *line, size_t w) +{ + size_t s, i; + + s = wbytes * 8 - width; + + memcpy(left, line, wbytes); + *(left + wbytes - 1) &= 0xFF << s; + + if (w > width) { /* Double-width character. */ + uint8_t t; + + for (i = 0; i < wbytes; i++) { + t = *(line + wbytes + i - 1); + t <<= 8 - s; + t |= *(line + wbytes + i) >> s; + *(right + i) = t; + } + *(right + wbytes - 1) &= 0xFF << s; + } return (0); } +static void +set_height(int h) +{ + if (h <= 0 || h > VFNT_MAXDIMENSION) + errx(1, "invalid height %d", h); + height = h; +} + +static void +set_width(int w) +{ + if (w <= 0 || w > VFNT_MAXDIMENSION) + errx(1, "invalid width %d", w); + width = w; + wbytes = howmany(width, 8); +} + static int parse_bdf(FILE *fp, unsigned int map_idx) { - char *ln; + char *line, *ln, *p; size_t length; - uint8_t bytes[wbytes * height], bytes_r[wbytes * height]; - unsigned int curchar = 0, dwidth = 0, i, line; + uint8_t *bytes, *bytes_r; + unsigned int curchar = 0, i, j, linenum = 0, bbwbytes; + int bbw, bbh, bbox, bboy; /* Glyph bounding box. */ + int fbbw = 0, fbbh, fbbox, fbboy; /* Font bounding box. */ + int dwidth = 0, dwy = 0; + int rv = -1; + char spc = '\0'; + /* + * Step 1: Parse FONT logical font descriptor and FONTBOUNDINGBOX + * bounding box. + */ while ((ln = fgetln(fp, &length)) != NULL) { + linenum++; ln[length - 1] = '\0'; - if (strncmp(ln, "ENCODING ", 9) == 0) { - curchar = atoi(ln + 9); + if (strncmp(ln, "FONT ", 5) == 0) { + p = ln + 5; + i = 0; + while ((p = strchr(p, '-')) != NULL) { + p++; + i++; + if (i == 11) { + spc = *p; + break; + } + } + } else if (strncmp(ln, "FONTBOUNDINGBOX ", 16) == 0) { + if (sscanf(ln + 16, "%d %d %d %d", &fbbw, &fbbh, &fbbox, + &fbboy) != 4) + errx(1, "invalid FONTBOUNDINGBOX at line %u", + linenum); + set_width(fbbw); + set_height(fbbh); + break; } + } + if (fbbw == 0) + errx(1, "broken font header"); + if (spc != 'c' && spc != 'C') + errx(1, "font spacing \"C\" (character cell) required"); + /* Step 2: Validate DWIDTH (Device Width) of all glyphs. */ + while ((ln = fgetln(fp, &length)) != NULL) { + linenum++; + ln[length - 1] = '\0'; + if (strncmp(ln, "DWIDTH ", 7) == 0) { - dwidth = atoi(ln + 7); + if (sscanf(ln + 7, "%d %d", &dwidth, &dwy) != 2) + errx(1, "invalid DWIDTH at line %u", linenum); + if (dwy != 0 || (dwidth != fbbw && dwidth * 2 != fbbw)) + errx(1, "bitmap with unsupported DWIDTH %d %d at line %u", + dwidth, dwy, linenum); + if (dwidth < fbbw) + set_width(dwidth); } + } - if (strncmp(ln, "BITMAP", 6) == 0 && + /* Step 3: Restart at the beginning of the file and read glyph data. */ + dwidth = bbw = bbh = 0; + rewind(fp); + linenum = 0; + bbwbytes = 0; /* GCC 4.2.1 "may be used uninitialized" workaround. */ + bytes = xmalloc(wbytes * height); + bytes_r = xmalloc(wbytes * height); + line = xmalloc(wbytes * 2); + while ((ln = fgetln(fp, &length)) != NULL) { + linenum++; + ln[length - 1] = '\0'; + + if (strncmp(ln, "ENCODING ", 9) == 0) { + curchar = atoi(ln + 9); + } else if (strncmp(ln, "DWIDTH ", 7) == 0) { + dwidth = atoi(ln + 7); + } else if (strncmp(ln, "BBX ", 4) == 0) { + if (sscanf(ln + 4, "%d %d %d %d", &bbw, &bbh, &bbox, + &bboy) != 4) + errx(1, "invalid BBX at line %u", linenum); + if (bbw < 1 || bbh < 1 || bbw > fbbw || bbh > fbbh || + bbox < fbbox || bboy < fbboy || + bbh + bboy > fbbh + fbboy) + errx(1, "broken bitmap with BBX %d %d %d %d at line %u", + bbw, bbh, bbox, bboy, linenum); + bbwbytes = howmany(bbw, 8); + } else if (strncmp(ln, "BITMAP", 6) == 0 && (ln[6] == ' ' || ln[6] == '\0')) { + if (dwidth == 0 || bbw == 0 || bbh == 0) + errx(1, "broken char header at line %u!", + linenum); + memset(bytes, 0, wbytes * height); + memset(bytes_r, 0, wbytes * height); + /* - * Assume that the next _height_ lines are bitmap - * data. ENDCHAR is allowed to terminate the bitmap + * Assume that the next _bbh_ lines are bitmap data. + * ENDCHAR is allowed to terminate the bitmap * early but is not otherwise checked; any extra data * is ignored. */ - for (i = 0; i < height; i++) { + for (i = (fbbh + fbboy) - (bbh + bboy); + i < (unsigned int)((fbbh + fbboy) - bboy); i++) { if ((ln = fgetln(fp, &length)) == NULL) - errx(1, "Unexpected EOF!"); + errx(1, "unexpected EOF"); + linenum++; ln[length - 1] = '\0'; - if (strcmp(ln, "ENDCHAR") == 0) { - memset(bytes + i * wbytes, 0, - (height - i) * wbytes); - memset(bytes_r + i * wbytes, 0, - (height - i) * wbytes); + if (strcmp(ln, "ENDCHAR") == 0) break; + if (strlen(ln) < bbwbytes * 2) + errx(1, "broken bitmap at line %u", + linenum); + memset(line, 0, wbytes * 2); + for (j = 0; j < bbwbytes; j++) { + unsigned int val; + if (sscanf(ln + j * 2, "%2x", &val) == + 0) + break; + *(line + j) = (uint8_t)val; } - sscanf(ln, "%x", &line); - if (parse_bitmap_line(bytes + i * wbytes, - bytes_r + i * wbytes, line, dwidth) != 0) - return (1); + + rv = rshift_row(line, wbytes * 2, bbw, + bbox - fbbox); + if (rv != 0) + goto out; + + rv = split_row(bytes + i * wbytes, + bytes_r + i * wbytes, line, dwidth); + if (rv != 0) + goto out; } - if (add_char(curchar, map_idx, bytes, - dwidth == width * 2 ? bytes_r : NULL) != 0) - return (1); + rv = add_char(curchar, map_idx, bytes, + dwidth > (int)width ? bytes_r : NULL); + if (rv != 0) + goto out; + + dwidth = bbw = bbh = 0; } } - return (0); +out: + free(bytes); + free(bytes_r); + free(line); + return (rv); } -static void -set_width(int w) -{ - - if (w <= 0 || w > 128) - errx(1, "invalid width %d", w); - width = w; - wbytes = howmany(width, 8); -} - static int parse_hex(FILE *fp, unsigned int map_idx) { char *ln, *p; - char fmt_str[8]; size_t length; - uint8_t *bytes = NULL, *bytes_r = NULL; - unsigned curchar = 0, i, line, chars_per_row, dwidth; + uint8_t *bytes = NULL, *bytes_r = NULL, *line = NULL; + unsigned curchar = 0, gwidth, gwbytes, i, j, chars_per_row; int rv = 0; while ((ln = fgetln(fp, &length)) != NULL) { @@ -322,7 +468,7 @@ parse_hex(FILE *fp, unsigned int map_idx) if (strncmp(ln, "# Height: ", 10) == 0) { if (bytes != NULL) errx(1, "malformed input: Height tag after font data"); - height = atoi(ln + 10); + set_height(atoi(ln + 10)); } else if (strncmp(ln, "# Width: ", 9) == 0) { if (bytes != NULL) errx(1, "malformed input: Width tag after font data"); @@ -331,36 +477,46 @@ parse_hex(FILE *fp, unsigned int map_idx) if (bytes == NULL) { bytes = xmalloc(wbytes * height); bytes_r = xmalloc(wbytes * height); + line = xmalloc(wbytes * 2); } /* ln is guaranteed to have a colon here. */ p = strchr(ln, ':') + 1; chars_per_row = strlen(p) / height; - dwidth = width; - if (chars_per_row / 2 > (width + 7) / 8) - dwidth *= 2; /* Double-width character. */ - snprintf(fmt_str, sizeof(fmt_str), "%%%ux", - chars_per_row); + if (chars_per_row < wbytes * 2) + errx(1, + "malformed input: broken bitmap, character %06x", + curchar); + gwidth = width * 2; + gwbytes = howmany(gwidth, 8); + if (chars_per_row < gwbytes * 2 || gwidth <= 8) { + gwidth = width; /* Single-width character. */ + gwbytes = wbytes; + } for (i = 0; i < height; i++) { - sscanf(p, fmt_str, &line); - p += chars_per_row; - if (parse_bitmap_line(bytes + i * wbytes, - bytes_r + i * wbytes, line, dwidth) != 0) { - rv = 1; - goto out; + for (j = 0; j < gwbytes; j++) { + unsigned int val; + if (sscanf(p + j * 2, "%2x", &val) == 0) + break; + *(line + j) = (uint8_t)val; } + rv = split_row(bytes + i * wbytes, + bytes_r + i * wbytes, line, gwidth); + if (rv != 0) + goto out; + p += gwbytes * 2; } - if (add_char(curchar, map_idx, bytes, - dwidth == width * 2 ? bytes_r : NULL) != 0) { - rv = 1; + rv = add_char(curchar, map_idx, bytes, + gwidth != width ? bytes_r : NULL); + if (rv != 0) goto out; - } } } out: free(bytes); free(bytes_r); + free(line); return (rv); } @@ -512,6 +668,8 @@ print_font_info(void) { printf( "Statistics:\n" +"- width: %6u\n" +"- height: %6u\n" "- glyph_total: %6u\n" "- glyph_normal: %6u\n" "- glyph_normal_right: %6u\n" @@ -530,6 +688,7 @@ print_font_info(void) "- mapping_bold_right_folded: %6u\n" "- mapping_unique: %6u\n" "- mapping_dupe: %6u\n", + width, height, glyph_total, glyph_count[0], glyph_count[1], @@ -547,7 +706,7 @@ print_font_info(void) int main(int argc, char *argv[]) { - int ch, val, verbose = 0; + int ch, verbose = 0; assert(sizeof(struct file_header) == 32); assert(sizeof(struct file_mapping) == 8); @@ -555,16 +714,13 @@ main(int argc, char *argv[]) while ((ch = getopt(argc, argv, "h:vw:")) != -1) { switch (ch) { case 'h': - val = atoi(optarg); - if (val <= 0 || val > 128) - errx(1, "Invalid height %d", val); - height = val; + height = atoi(optarg); break; case 'v': verbose = 1; break; case 'w': - set_width(atoi(optarg)); + width = atoi(optarg); break; case '?': default: @@ -577,7 +733,8 @@ main(int argc, char *argv[]) if (argc < 2 || argc > 3) usage(); - wbytes = howmany(width, 8); + set_width(width); + set_height(height); if (parse_file(argv[0], VFNT_MAP_NORMAL) != 0) return (1); From owner-svn-src-all@freebsd.org Fri Aug 23 16:42:05 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D4149C95AC; Fri, 23 Aug 2019 16:42:05 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FRy55CSNz3xw7; Fri, 23 Aug 2019 16:42:05 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 946A41F81B; Fri, 23 Aug 2019 16:42:05 +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 x7NGg5GS015392; Fri, 23 Aug 2019 16:42:05 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NGg5GU015390; Fri, 23 Aug 2019 16:42:05 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201908231642.x7NGg5GU015390@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 23 Aug 2019 16:42:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351429 - head/sys/conf X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/conf X-SVN-Commit-Revision: 351429 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 16:42:05 -0000 Author: imp Date: Fri Aug 23 16:42:04 2019 New Revision: 351429 URL: https://svnweb.freebsd.org/changeset/base/351429 Log: Turn off -Werror for gcc 4.2.1 As part of marching gcc 4.2.1 out of the tree, turn off -Werror on gcc 4.2.1 compiles by default. It generates too many false positives and breaks CI for no benefit. Discussed on: arch@ Reviewed by: jhb@, emaste@, pfg@ Differential Revision: https://reviews.freebsd.org/D21378 Modified: head/sys/conf/kern.pre.mk head/sys/conf/kmod.mk Modified: head/sys/conf/kern.pre.mk ============================================================================== --- head/sys/conf/kern.pre.mk Fri Aug 23 16:26:06 2019 (r351428) +++ head/sys/conf/kern.pre.mk Fri Aug 23 16:42:04 2019 (r351429) @@ -93,7 +93,11 @@ CFLAGS.gcc+= -fms-extensions .if defined(CFLAGS_ARCH_PARAMS) CFLAGS.gcc+=${CFLAGS_ARCH_PARAMS} .endif -WERROR?= -Werror +.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} < 50000 +WERROR?= -Wno-error +.else +WERROR?= -Werror +.endif # XXX LOCORE means "don't declare C stuff" not "for locore.s". ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS} ${ASM_CFLAGS.${.IMPSRC:T}} Modified: head/sys/conf/kmod.mk ============================================================================== --- head/sys/conf/kmod.mk Fri Aug 23 16:26:06 2019 (r351428) +++ head/sys/conf/kmod.mk Fri Aug 23 16:42:04 2019 (r351429) @@ -107,7 +107,12 @@ __KLD_SHARED=no .if !empty(CFLAGS:M-O[23s]) && empty(CFLAGS:M-fno-strict-aliasing) CFLAGS+= -fno-strict-aliasing .endif +.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} < 50000 +WERROR?= -Wno-error +.else WERROR?= -Werror +.endif + CFLAGS+= ${WERROR} CFLAGS+= -D_KERNEL CFLAGS+= -DKLD_MODULE From owner-svn-src-all@freebsd.org Fri Aug 23 16:42:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 174F6C9785; Fri, 23 Aug 2019 16:42:40 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FRyl6vT4z3y5P; Fri, 23 Aug 2019 16:42:39 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CE75E1F851; Fri, 23 Aug 2019 16:42:39 +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 x7NGgdFV016099; Fri, 23 Aug 2019 16:42:39 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NGgd2j016098; Fri, 23 Aug 2019 16:42:39 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201908231642.x7NGgd2j016098@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 23 Aug 2019 16:42:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351430 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 351430 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 16:42:40 -0000 Author: imp Date: Fri Aug 23 16:42:39 2019 New Revision: 351430 URL: https://svnweb.freebsd.org/changeset/base/351430 Log: Turn off -Werror for gcc 4.2.1 for userland As discussed on arch@, gcc 4.2.1 is on its way out. Turn off Werror on gcc versions < 5.0 permantly. This will allow older platforms to continue to compile w/o new errors once we take them out of universe by default. This will also free developers from chasing down obsolete warnings that produce no beneficial changes to the source. Discussed on: arch@ Reviewed by: jhb@, emaste@, pfg@ Differential Revision: https://reviews.freebsd.org/D21378 Modified: head/share/mk/bsd.sys.mk Modified: head/share/mk/bsd.sys.mk ============================================================================== --- head/share/mk/bsd.sys.mk Fri Aug 23 16:42:04 2019 (r351429) +++ head/share/mk/bsd.sys.mk Fri Aug 23 16:42:39 2019 (r351430) @@ -29,6 +29,15 @@ CFLAGS+= -std=${CSTD} CXXFLAGS+= -std=${CXXSTD} .endif +# +# Turn off -Werror for gcc 4.2.1. The compiler is on the glide path out of the +# system, and any warnings specific to it are no longer relevant as there are +# too many false positives. +# +.if ${COMPILER_VERSION} < 50000 +NO_WERROR.gcc= yes +.endif + # -pedantic is problematic because it also imposes namespace restrictions #CFLAGS+= -pedantic .if defined(WARNS) From owner-svn-src-all@freebsd.org Fri Aug 23 16:46:03 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 567C0C9836; Fri, 23 Aug 2019 16:46:03 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FS2g1bd7z3yFp; Fri, 23 Aug 2019 16:46:02 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pl1-x62e.google.com with SMTP id go14so5867223plb.0; Fri, 23 Aug 2019 09:46:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=unyL4BVTQ+kiLdztht2PYGTHt5speQknhpXzYtA5AkM=; b=roju8LPxXFJhSdIsgInC06FVTXXCCYs5OVLB17LCG605t4Dei92veCuPUZGl1IdbNd 3fiQdUmC/6uiohwtNu+OP3/dkQ3wk+e27I28UJHQVUF0YgoJ0hOfA8xXbUmacpFuVob2 sJGvBrjd1AP84lkYMKk4w5VIOkRHpCDl9YEdCKb9N+WiI/mzgZPe5Rr0OuJaAKsJi74G gcXh6cRfomURU3tHPu4NFAoQ27il0fdGfSd5KWj8ICHdEX+v1gU//NbTw5j82Gutr7Tj GieIRvKEtvQagGOiSXihzZD8ruBXUK1/+ChNVgx+ew7SaCilrNDopSzRhclAHSjVvu51 Anpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=unyL4BVTQ+kiLdztht2PYGTHt5speQknhpXzYtA5AkM=; b=tKLcb9X40IpM1PgAZD/MQcoT9lG7YoRgwN9f19o2hao4jq02E6tPw7xo4sx6d9MCfM 0wL5CPq7Izpw+1Nz2T01Tfsdeawj58Hv7jzrA+w2+Z1MrLJVDEvIEb18AKB9USZt3Vak abG6Ku3G02rlQ0tBRs7p8LOn51n8zUtr5n2GtpduKDaTab9qvTkyCdH2AQWos1cGsWz1 B/hlH6JcjeAS25Pk5Dc64LM044il05WLHpxngMDH/jxyoe1zOzazpxuFNVCUhk7Mdzn/ 9bgBM3ETB6LligX0P4phu8BYMUZPH0gMHXUNHb+bUI0zQuYu3m1WZdtkDkuMZBMs2Edg y3mg== X-Gm-Message-State: APjAAAXdQbyHPDXDdco4/vPbDvBhOjcEEBkY08qKg+OnezlYNofg6XNm dZ3w/ITXFOT22sQWiVYoFi7C1wrj X-Google-Smtp-Source: APXvYqy7tjQgVQsPefQOJDQ1jVIA0/82mDwX4BlWrZCPnNfoXwu0Osfop4s1wypY4DT8wg6hOE6Wag== X-Received: by 2002:a17:902:1aa:: with SMTP id b39mr5986032plb.333.1566578761314; Fri, 23 Aug 2019 09:46:01 -0700 (PDT) Received: from ?IPv6:2607:fb90:b2d3:19f6:b487:84a4:26ea:3f17? ([2607:fb90:b2d3:19f6:b487:84a4:26ea:3f17]) by smtp.gmail.com with ESMTPSA id e2sm3299956pff.49.2019.08.23.09.46.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 23 Aug 2019 09:46:00 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r351429 - head/sys/conf From: Enji Cooper X-Mailer: iPhone Mail (16G77) In-Reply-To: <201908231642.x7NGg5GU015390@repo.freebsd.org> Date: Fri, 23 Aug 2019 09:45:59 -0700 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <82FC5ED8-79C9-480A-A40D-116AC9222112@gmail.com> References: <201908231642.x7NGg5GU015390@repo.freebsd.org> To: Warner Losh X-Rspamd-Queue-Id: 46FS2g1bd7z3yFp X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.97 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.97)[-0.969,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 16:46:03 -0000 > On Aug 23, 2019, at 09:42, Warner Losh wrote: >=20 > Author: imp > Date: Fri Aug 23 16:42:04 2019 > New Revision: 351429 > URL: https://svnweb.freebsd.org/changeset/base/351429 >=20 > Log: > Turn off -Werror for gcc 4.2.1 >=20 > As part of marching gcc 4.2.1 out of the tree, turn off -Werror on gcc 4.= 2.1 > compiles by default. It generates too many false positives and breaks CI > for no benefit. >=20 > Discussed on: arch@ > Reviewed by: jhb@, emaste@, pfg@ > Differential Revision: https://reviews.freebsd.org/D21378 >=20 > Modified: > head/sys/conf/kern.pre.mk > head/sys/conf/kmod.mk >=20 Uhhhhh... this change and the other one now turn off -Werror with non-gcc co= mpilers. This needs to be fixed. -Enji= From owner-svn-src-all@freebsd.org Fri Aug 23 16:47:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BE279C98C9; Fri, 23 Aug 2019 16:47:27 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com [IPv6:2607:f8b0:4864:20::434]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FS4G5Ss3z3yNt; Fri, 23 Aug 2019 16:47:26 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pf1-x434.google.com with SMTP id i30so6802054pfk.9; Fri, 23 Aug 2019 09:47:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=T3twd439MUjjvdl/HONVlYzLoy7goWBgCHLMowgIV14=; b=fQv2Yfc/h/SMjXMlRlKte5xnc7yl7ZItyY3nG4OyjnWznc0EA7JV2SzwwIy15A+S7D K6iPwolAHdiDDQEJByrApoKYtGTxKk0s0kXcwcUd/t/lIx+VNsBT03a/pZkVssqntLb2 oQkozoEyCXCDuGj/lkXTfPOl9YVZps4ZOC4wjxigvE+sJW3X/jl7eAgVBrmeiHZdpFjp leEisOVOQR2S9wTZgB5+XQM4Whd8UYEzj0Qwbw7v4B0BSO8YHij+zjg0qUcx12pv0nAU b9GXeEPaMwFanaIDvuToc6GQOdYVYq+wUodAtXlBj3wfQy01FciUWBOiR6R3fhUlE//e BoqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=T3twd439MUjjvdl/HONVlYzLoy7goWBgCHLMowgIV14=; b=lhUsg2OWfUBch6/oDAqyepKP7+W6HVKGw7UYeMoCVjYp3aqOS2kv1tD0hQfN0O2CcA zOiEFFmx+IcWUAtqsY9dJYJWsV5XsFfU864EntsCDPbp57RFDO6SANMyulPPccBKivd/ eAOqaaCdmaiND0h1CnRpiFeBhN726Kukk0TqtedW1M5Q/tGRIB5HIHCihKzaJz7fjZR6 0UCYYjVQd8c6V8qlv/b7YWCpMvxyU9YjwgG5HEKH8wEwlD9fiXPLcK2uuJc6PY3aFzOi 1FYYyeB8XHMWxzs/c5sW+5hbNEVN5ubDTvZx3bmZIZDbBiLx8/m3GR4d2dNX+YC4nL59 SroA== X-Gm-Message-State: APjAAAWmYWTKRawodyQPKl9WYhJu8Tj0CaheXMN+PGCyEGDg0BFlg653 /QlnXelNhQMs0L4fiu8xveGpGoDR X-Google-Smtp-Source: APXvYqxcRBCQBl1xRVQvRBbUBi2MCC8RdKJr42sd4Uf2J1AzrDUpqOCODhEQ7M6fP/Tp3eG9Xyhq3A== X-Received: by 2002:a63:714a:: with SMTP id b10mr4996434pgn.25.1566578844613; Fri, 23 Aug 2019 09:47:24 -0700 (PDT) Received: from ?IPv6:2607:fb90:b2d3:19f6:b487:84a4:26ea:3f17? ([2607:fb90:b2d3:19f6:b487:84a4:26ea:3f17]) by smtp.gmail.com with ESMTPSA id p8sm7766056pfq.129.2019.08.23.09.47.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 23 Aug 2019 09:47:24 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r351429 - head/sys/conf From: Enji Cooper X-Mailer: iPhone Mail (16G77) In-Reply-To: <82FC5ED8-79C9-480A-A40D-116AC9222112@gmail.com> Date: Fri, 23 Aug 2019 09:47:23 -0700 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <1BA7357A-B339-4A11-A62A-55FB67319AC6@gmail.com> References: <201908231642.x7NGg5GU015390@repo.freebsd.org> <82FC5ED8-79C9-480A-A40D-116AC9222112@gmail.com> To: Warner Losh X-Rspamd-Queue-Id: 46FS4G5Ss3z3yNt X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=fQv2Yfc/; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of yaneurabeya@gmail.com designates 2607:f8b0:4864:20::434 as permitted sender) smtp.mailfrom=yaneurabeya@gmail.com X-Spamd-Result: default: False [-3.49 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; MV_CASE(0.50)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; NEURAL_HAM_SHORT(-0.99)[-0.987,0]; FROM_EQ_ENVFROM(0.00)[]; IP_SCORE(0.00)[ip: (-8.96), ipnet: 2607:f8b0::/32(-2.88), asn: 15169(-2.34), country: US(-0.05)]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE_FREEMAIL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[4.3.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 16:47:27 -0000 > On Aug 23, 2019, at 09:45, Enji Cooper wrote: >=20 >=20 >> On Aug 23, 2019, at 09:42, Warner Losh wrote: >>=20 >> Author: imp >> Date: Fri Aug 23 16:42:04 2019 >> New Revision: 351429 >> URL: https://svnweb.freebsd.org/changeset/base/351429 >>=20 >> Log: >> Turn off -Werror for gcc 4.2.1 >>=20 >> As part of marching gcc 4.2.1 out of the tree, turn off -Werror on gcc 4.= 2.1 >> compiles by default. It generates too many false positives and breaks CI >> for no benefit. >>=20 >> Discussed on: arch@ >> Reviewed by: jhb@, emaste@, pfg@ >> Differential Revision: https://reviews.freebsd.org/D21378 >>=20 >> Modified: >> head/sys/conf/kern.pre.mk >> head/sys/conf/kmod.mk >>=20 >=20 > Uhhhhh... this change and the other one now turn off -Werror with non-gcc c= ompilers. This needs to be fixed. Nm. I totally misread the diff :(.. Sorry for the noise! -Enji= From owner-svn-src-all@freebsd.org Fri Aug 23 16:48:21 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1425BC99B7 for ; Fri, 23 Aug 2019 16:48:21 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x831.google.com (mail-qt1-x831.google.com [IPv6:2607:f8b0:4864:20::831]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FS5H5pFGz3yWx for ; Fri, 23 Aug 2019 16:48:19 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x831.google.com with SMTP id k13so11763279qtm.12 for ; Fri, 23 Aug 2019 09:48:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=IC68LVdpMR0Yro0lFdUjiuijwgzpquDdti2+hEmj7rQ=; b=D73JCq0d81rYy41rZNGPGJd8+e17GecKLa8erG1X2NhIcp+p0+B4lWXczRq+ufg3cQ cG+VuKAhWF1A1Wq5PoipSc3Zk3NZVrRIC2POJJ72SbOKCK/WhtW1acU9nrnyz4FC+xoj y+gu7Ujm6szldRbz4AOtl7g9vn2yDDrda3kPGD5DHR9TSpE8LXIz5ChoPoZn2YCdpWTd 99oWApyQ4YRQ88M+ExhoB2W1EqPDIrpQHWXpYvVq2o/goB7IDzfaDHPLL5EbuBrg4TvO 1Oc4OdngIr/LmPDEYheoWAyMG3K311fjDOBLilfdn5FJRgP/8pqKFRLs6VYGxXZw2elI kTMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=IC68LVdpMR0Yro0lFdUjiuijwgzpquDdti2+hEmj7rQ=; b=mm4qWqLCQwnBfWWY6XtsRS6J7dOdd2YtN8mLtUN9lTffwXQMPt1KQ6JM0XwK0PSh8Y XTENSjjPg8S3Za2i8TEofoguz0okWE1YI/PvFwBmx9iYdqG4ZhnzmHSyihcLEekXpISe pUXCDYCAWYCq14DarEIomJT0yglG+tIIwMX/ne3rgFLFsVQyBCvMs/hXqYfPDhmIw5Lj GoPc+JX8ewCS+m6iwDZWzouYoeaQEfxQY8kX/JqtC0XyyaXSbcnM26fd2zKWtV1kgwKi Wl/rcLM8AUn4Xzhvg56EbtZxdwAn1bJDCB7JxyUAlVpyLLytdxaJbhiplsJ6JWoOu4AW IAMw== X-Gm-Message-State: APjAAAVCgZwY8vISv+uCWfcg2XEDHqDDBd0bJUF2VrHOeO0twRZyljg7 GMiJL2cZZg50223k9JnIEnWWVl9dFUCQsRsx3pQyvw== X-Google-Smtp-Source: APXvYqwQuLehHRz8Qhhmg+aaUR0DMtnnJO5+kAtasHKsFLmHKWtwa+MtLsgwf7p05lj3O1S58P7pbJuVQmuoK7cuDLg= X-Received: by 2002:aed:3c45:: with SMTP id u5mr5642267qte.175.1566578898198; Fri, 23 Aug 2019 09:48:18 -0700 (PDT) MIME-Version: 1.0 References: <201908220002.x7M028Jh070116@repo.freebsd.org> <0b9d1aa1-d328-30bc-b939-f1407e236855@FreeBSD.org> <3EE09B22-254B-4415-8865-D9542122ACA5@FreeBSD.org> In-Reply-To: <3EE09B22-254B-4415-8865-D9542122ACA5@FreeBSD.org> From: Warner Losh Date: Fri, 23 Aug 2019 10:48:06 -0600 Message-ID: Subject: Re: svn commit: r351364 - in head/sys: crypto/blowfish crypto/chacha20 crypto/des opencrypto To: "Bjoern A. Zeeb" Cc: Li-Wen Hsu , John Baldwin , src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 46FS5H5pFGz3yWx X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=D73JCq0d; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::831) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-5.92 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; NEURAL_HAM_SHORT(-1.00)[-0.996,0]; RCVD_IN_DNSWL_NONE(0.00)[1.3.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.92)[ip: (-9.35), ipnet: 2607:f8b0::/32(-2.88), asn: 15169(-2.34), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 16:48:21 -0000 On Fri, Aug 23, 2019 at 10:10 AM Bjoern A. Zeeb wrote: > On 23 Aug 2019, at 15:53, Warner Losh wrote: > > > Sorry for top posting... > > > > I had planned this for next week, but I think give this insanity of > > this > > patch, we should do it now: turn off -Werror for gcc 4.2.1 > > > > https://reviews.freebsd.org/D21378 > > > > has the review. There's no benefit to these head-scratcher changes > > when we > > can get the same benefit by ignoring gcc 4.2.1 errors as discussed on > > arch@. > > That brings me to a different question: why does this build > https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc/lastBuild/ not fail > despite rendering the warnings > There's a lot of -Wno-error and -Wno-error=XXX sprinkled in our build for gcc 4.2.1 today, so we see the warnings but aren't stopped by them. My changes take a big hammer and add a global -Wno-error to CFLAGS last to make this the behavior on gcc 4.2.1 platforms. Warner From owner-svn-src-all@freebsd.org Fri Aug 23 16:59:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F002DC9C1C; Fri, 23 Aug 2019 16:59:41 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FSLP5mm1z3yw9; Fri, 23 Aug 2019 16:59:41 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mx1.sbone.de (mx1.sbone.de [IPv6:2a01:4f8:13b:39f::9f:25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified)) (Authenticated sender: bz/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 7810B1B412; Fri, 23 Aug 2019 16:59: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 180818D4A166; Fri, 23 Aug 2019 16:59:39 +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 2519FE70849; Fri, 23 Aug 2019 16:59: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 HRsKSSNaNLtb; Fri, 23 Aug 2019 16:59:34 +0000 (UTC) Received: from [127.0.0.1] (unknown [IPv6:fde9:577b:c1a9:31:7466:a929:9e2f:a88e]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id BC3AED21C68; Fri, 23 Aug 2019 16:59:33 +0000 (UTC) From: "Bjoern A. Zeeb" To: "Warner Losh" Cc: "Li-Wen Hsu" , "John Baldwin" , src-committers , svn-src-all , svn-src-head Subject: Re: svn commit: r351364 - in head/sys: crypto/blowfish crypto/chacha20 crypto/des opencrypto Date: Fri, 23 Aug 2019 16:59:32 +0000 X-Mailer: MailMate (2.0BETAr6137) Message-ID: In-Reply-To: References: <201908220002.x7M028Jh070116@repo.freebsd.org> <0b9d1aa1-d328-30bc-b939-f1407e236855@FreeBSD.org> <3EE09B22-254B-4415-8865-D9542122ACA5@FreeBSD.org> MIME-Version: 1.0 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.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 16:59:42 -0000 On 23 Aug 2019, at 16:48, Warner Losh wrote: > On Fri, Aug 23, 2019 at 10:10 AM Bjoern A. Zeeb > wrote: > >> On 23 Aug 2019, at 15:53, Warner Losh wrote: >> >>> Sorry for top posting... >>> >>> I had planned this for next week, but I think give this insanity of >>> this >>> patch, we should do it now: turn off -Werror for gcc 4.2.1 >>> >>> https://reviews.freebsd.org/D21378 >>> >>> has the review. There's no benefit to these head-scratcher changes >>> when we >>> can get the same benefit by ignoring gcc 4.2.1 errors as discussed >>> on >>> arch@. >> >> That brings me to a different question: why does this build >> https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc/lastBuild/ not fail >> despite rendering the warnings >> > > There's a lot of -Wno-error and -Wno-error=XXX sprinkled in our build > for > gcc 4.2.1 today, so we see the warnings but aren't stopped by them. My > changes take a big hammer and add a global -Wno-error to CFLAGS last > to > make this the behavior on gcc 4.2.1 platforms. Yes, but that didn’t answer my questions. It doesn’t help to try to avoid undefined C behaviour. That jenkins build seems to use the toolchain from ports and with that gcc 6.4.0. We see the same warning but it didn’t error as it seems to have done for other architectures with the in-tree gcc with the same warnings: In file included from /workspace/src/sys/opencrypto/xform.c:94:0: /workspace/src/sys/opencrypto/xform_des1.c: In function 'des1_setkey': /workspace/src/sys/opencrypto/xform_des1.c:102:15: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual] des_set_key((const des_cblock *) key, p[0]); ^ In file included from /workspace/src/sys/opencrypto/xform.c:95:0: /workspace/src/sys/opencrypto/xform_des3.c: In function 'des3_setkey': /workspace/src/sys/opencrypto/xform_des3.c:103:15: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual] des_set_key((const des_cblock *)(key + 0), p[0]); ^ /workspace/src/sys/opencrypto/xform_des3.c:104:15: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual] des_set_key((const des_cblock *)(key + 8), p[1]); ^ /workspace/src/sys/opencrypto/xform_des3.c:105:15: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual] des_set_key((const des_cblock *)(key + 16), p[2]); ^ -- To me this means that we treat different versions of compilers (in-tree and out-of-tree, gcc vs. clang) too different. If two versions of gcc (before your commit) gave the same warning I would have expected them to equally fail and not one fail and one pass? My question was: why was that the case? /bz From owner-svn-src-all@freebsd.org Fri Aug 23 17:40:10 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 706AACA9C5; Fri, 23 Aug 2019 17:40:10 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FTF634rPz41lx; Fri, 23 Aug 2019 17:40:10 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4B96720147; Fri, 23 Aug 2019 17:40:10 +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 x7NHeAmZ045657; Fri, 23 Aug 2019 17:40:10 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NHdxIl045565; Fri, 23 Aug 2019 17:39:59 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908231739.x7NHdxIl045565@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 23 Aug 2019 17:39:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351431 - in stable/12/contrib/telnet: arpa libtelnet telnet telnetd X-SVN-Group: stable-12 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in stable/12/contrib/telnet: arpa libtelnet telnet telnetd X-SVN-Commit-Revision: 351431 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 17:40:10 -0000 Author: emaste Date: Fri Aug 23 17:39:59 2019 New Revision: 351431 URL: https://svnweb.freebsd.org/changeset/base/351431 Log: MFC r351070: telnet: remove 3rd clause from Berkeley copyrights Per the July 22, 1999 letter (in /COPYRIGHT) from William Hoskins Director, Office of Technology Licensing University of California, Berkeley Modified: stable/12/contrib/telnet/arpa/telnet.h stable/12/contrib/telnet/libtelnet/auth-proto.h stable/12/contrib/telnet/libtelnet/auth.c stable/12/contrib/telnet/libtelnet/auth.h stable/12/contrib/telnet/libtelnet/enc-proto.h stable/12/contrib/telnet/libtelnet/enc_des.c stable/12/contrib/telnet/libtelnet/encrypt.c stable/12/contrib/telnet/libtelnet/encrypt.h stable/12/contrib/telnet/libtelnet/genget.c stable/12/contrib/telnet/libtelnet/getent.c stable/12/contrib/telnet/libtelnet/kerberos.c stable/12/contrib/telnet/libtelnet/kerberos5.c stable/12/contrib/telnet/libtelnet/key-proto.h stable/12/contrib/telnet/libtelnet/krb4encpwd.c stable/12/contrib/telnet/libtelnet/misc-proto.h stable/12/contrib/telnet/libtelnet/misc.c stable/12/contrib/telnet/libtelnet/misc.h stable/12/contrib/telnet/libtelnet/read_password.c stable/12/contrib/telnet/libtelnet/rsaencpwd.c stable/12/contrib/telnet/telnet/authenc.c stable/12/contrib/telnet/telnet/commands.c stable/12/contrib/telnet/telnet/defines.h stable/12/contrib/telnet/telnet/externs.h stable/12/contrib/telnet/telnet/fdset.h stable/12/contrib/telnet/telnet/general.h stable/12/contrib/telnet/telnet/main.c stable/12/contrib/telnet/telnet/network.c stable/12/contrib/telnet/telnet/ring.c stable/12/contrib/telnet/telnet/ring.h stable/12/contrib/telnet/telnet/sys_bsd.c stable/12/contrib/telnet/telnet/telnet.1 stable/12/contrib/telnet/telnet/telnet.c stable/12/contrib/telnet/telnet/terminal.c stable/12/contrib/telnet/telnet/types.h stable/12/contrib/telnet/telnet/utilities.c stable/12/contrib/telnet/telnetd/authenc.c stable/12/contrib/telnet/telnetd/defs.h stable/12/contrib/telnet/telnetd/ext.h stable/12/contrib/telnet/telnetd/global.c stable/12/contrib/telnet/telnetd/pathnames.h stable/12/contrib/telnet/telnetd/slc.c stable/12/contrib/telnet/telnetd/state.c stable/12/contrib/telnet/telnetd/sys_term.c stable/12/contrib/telnet/telnetd/telnetd.8 stable/12/contrib/telnet/telnetd/telnetd.c stable/12/contrib/telnet/telnetd/telnetd.h stable/12/contrib/telnet/telnetd/termstat.c stable/12/contrib/telnet/telnetd/utility.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/telnet/arpa/telnet.h ============================================================================== --- stable/12/contrib/telnet/arpa/telnet.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/arpa/telnet.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/auth-proto.h ============================================================================== --- stable/12/contrib/telnet/libtelnet/auth-proto.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/auth-proto.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/auth.c ============================================================================== --- stable/12/contrib/telnet/libtelnet/auth.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/auth.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/auth.h ============================================================================== --- stable/12/contrib/telnet/libtelnet/auth.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/auth.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/enc-proto.h ============================================================================== --- stable/12/contrib/telnet/libtelnet/enc-proto.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/enc-proto.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/enc_des.c ============================================================================== --- stable/12/contrib/telnet/libtelnet/enc_des.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/enc_des.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/encrypt.c ============================================================================== --- stable/12/contrib/telnet/libtelnet/encrypt.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/encrypt.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/encrypt.h ============================================================================== --- stable/12/contrib/telnet/libtelnet/encrypt.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/encrypt.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/genget.c ============================================================================== --- stable/12/contrib/telnet/libtelnet/genget.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/genget.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/getent.c ============================================================================== --- stable/12/contrib/telnet/libtelnet/getent.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/getent.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/kerberos.c ============================================================================== --- stable/12/contrib/telnet/libtelnet/kerberos.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/kerberos.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/kerberos5.c ============================================================================== --- stable/12/contrib/telnet/libtelnet/kerberos5.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/kerberos5.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/key-proto.h ============================================================================== --- stable/12/contrib/telnet/libtelnet/key-proto.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/key-proto.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/krb4encpwd.c ============================================================================== --- stable/12/contrib/telnet/libtelnet/krb4encpwd.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/krb4encpwd.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/misc-proto.h ============================================================================== --- stable/12/contrib/telnet/libtelnet/misc-proto.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/misc-proto.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/misc.c ============================================================================== --- stable/12/contrib/telnet/libtelnet/misc.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/misc.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/misc.h ============================================================================== --- stable/12/contrib/telnet/libtelnet/misc.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/misc.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/read_password.c ============================================================================== --- stable/12/contrib/telnet/libtelnet/read_password.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/read_password.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/libtelnet/rsaencpwd.c ============================================================================== --- stable/12/contrib/telnet/libtelnet/rsaencpwd.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/libtelnet/rsaencpwd.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/authenc.c ============================================================================== --- stable/12/contrib/telnet/telnet/authenc.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/authenc.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/commands.c ============================================================================== --- stable/12/contrib/telnet/telnet/commands.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/commands.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/defines.h ============================================================================== --- stable/12/contrib/telnet/telnet/defines.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/defines.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/externs.h ============================================================================== --- stable/12/contrib/telnet/telnet/externs.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/externs.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/fdset.h ============================================================================== --- stable/12/contrib/telnet/telnet/fdset.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/fdset.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/general.h ============================================================================== --- stable/12/contrib/telnet/telnet/general.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/general.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/main.c ============================================================================== --- stable/12/contrib/telnet/telnet/main.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/main.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/network.c ============================================================================== --- stable/12/contrib/telnet/telnet/network.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/network.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/ring.c ============================================================================== --- stable/12/contrib/telnet/telnet/ring.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/ring.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/ring.h ============================================================================== --- stable/12/contrib/telnet/telnet/ring.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/ring.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/sys_bsd.c ============================================================================== --- stable/12/contrib/telnet/telnet/sys_bsd.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/sys_bsd.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/telnet.1 ============================================================================== --- stable/12/contrib/telnet/telnet/telnet.1 Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/telnet.1 Fri Aug 23 17:39:59 2019 (r351431) @@ -9,11 +9,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" Modified: stable/12/contrib/telnet/telnet/telnet.c ============================================================================== --- stable/12/contrib/telnet/telnet/telnet.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/telnet.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/terminal.c ============================================================================== --- stable/12/contrib/telnet/telnet/terminal.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/terminal.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/types.h ============================================================================== --- stable/12/contrib/telnet/telnet/types.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/types.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnet/utilities.c ============================================================================== --- stable/12/contrib/telnet/telnet/utilities.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnet/utilities.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnetd/authenc.c ============================================================================== --- stable/12/contrib/telnet/telnetd/authenc.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/authenc.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnetd/defs.h ============================================================================== --- stable/12/contrib/telnet/telnetd/defs.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/defs.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnetd/ext.h ============================================================================== --- stable/12/contrib/telnet/telnetd/ext.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/ext.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnetd/global.c ============================================================================== --- stable/12/contrib/telnet/telnetd/global.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/global.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnetd/pathnames.h ============================================================================== --- stable/12/contrib/telnet/telnetd/pathnames.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/pathnames.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnetd/slc.c ============================================================================== --- stable/12/contrib/telnet/telnetd/slc.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/slc.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnetd/state.c ============================================================================== --- stable/12/contrib/telnet/telnetd/state.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/state.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnetd/sys_term.c ============================================================================== --- stable/12/contrib/telnet/telnetd/sys_term.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/sys_term.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnetd/telnetd.8 ============================================================================== --- stable/12/contrib/telnet/telnetd/telnetd.8 Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/telnetd.8 Fri Aug 23 17:39:59 2019 (r351431) @@ -9,11 +9,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" Modified: stable/12/contrib/telnet/telnetd/telnetd.c ============================================================================== --- stable/12/contrib/telnet/telnetd/telnetd.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/telnetd.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnetd/telnetd.h ============================================================================== --- stable/12/contrib/telnet/telnetd/telnetd.h Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/telnetd.h Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnetd/termstat.c ============================================================================== --- stable/12/contrib/telnet/telnetd/termstat.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/termstat.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/12/contrib/telnet/telnetd/utility.c ============================================================================== --- stable/12/contrib/telnet/telnetd/utility.c Fri Aug 23 16:42:39 2019 (r351430) +++ stable/12/contrib/telnet/telnetd/utility.c Fri Aug 23 17:39:59 2019 (r351431) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * From owner-svn-src-all@freebsd.org Fri Aug 23 17:40:58 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9E149CAA48; Fri, 23 Aug 2019 17:40:58 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FTG24S8Rz41v8; Fri, 23 Aug 2019 17:40:58 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7A4A920165; Fri, 23 Aug 2019 17:40:58 +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 x7NHewpe048978; Fri, 23 Aug 2019 17:40:58 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NHemrf047983; Fri, 23 Aug 2019 17:40:48 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908231740.x7NHemrf047983@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 23 Aug 2019 17:40:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351432 - in stable/11/contrib/telnet: arpa libtelnet telnet telnetd X-SVN-Group: stable-11 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in stable/11/contrib/telnet: arpa libtelnet telnet telnetd X-SVN-Commit-Revision: 351432 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 17:40:58 -0000 Author: emaste Date: Fri Aug 23 17:40:47 2019 New Revision: 351432 URL: https://svnweb.freebsd.org/changeset/base/351432 Log: MFC r351070: telnet: remove 3rd clause from Berkeley copyrights Per the July 22, 1999 letter (in /COPYRIGHT) from William Hoskins Director, Office of Technology Licensing University of California, Berkeley Modified: stable/11/contrib/telnet/arpa/telnet.h stable/11/contrib/telnet/libtelnet/auth-proto.h stable/11/contrib/telnet/libtelnet/auth.c stable/11/contrib/telnet/libtelnet/auth.h stable/11/contrib/telnet/libtelnet/enc-proto.h stable/11/contrib/telnet/libtelnet/enc_des.c stable/11/contrib/telnet/libtelnet/encrypt.c stable/11/contrib/telnet/libtelnet/encrypt.h stable/11/contrib/telnet/libtelnet/genget.c stable/11/contrib/telnet/libtelnet/getent.c stable/11/contrib/telnet/libtelnet/kerberos.c stable/11/contrib/telnet/libtelnet/kerberos5.c stable/11/contrib/telnet/libtelnet/key-proto.h stable/11/contrib/telnet/libtelnet/krb4encpwd.c stable/11/contrib/telnet/libtelnet/misc-proto.h stable/11/contrib/telnet/libtelnet/misc.c stable/11/contrib/telnet/libtelnet/misc.h stable/11/contrib/telnet/libtelnet/read_password.c stable/11/contrib/telnet/libtelnet/rsaencpwd.c stable/11/contrib/telnet/telnet/authenc.c stable/11/contrib/telnet/telnet/commands.c stable/11/contrib/telnet/telnet/defines.h stable/11/contrib/telnet/telnet/externs.h stable/11/contrib/telnet/telnet/fdset.h stable/11/contrib/telnet/telnet/general.h stable/11/contrib/telnet/telnet/main.c stable/11/contrib/telnet/telnet/network.c stable/11/contrib/telnet/telnet/ring.c stable/11/contrib/telnet/telnet/ring.h stable/11/contrib/telnet/telnet/sys_bsd.c stable/11/contrib/telnet/telnet/telnet.1 stable/11/contrib/telnet/telnet/telnet.c stable/11/contrib/telnet/telnet/terminal.c stable/11/contrib/telnet/telnet/types.h stable/11/contrib/telnet/telnet/utilities.c stable/11/contrib/telnet/telnetd/authenc.c stable/11/contrib/telnet/telnetd/defs.h stable/11/contrib/telnet/telnetd/ext.h stable/11/contrib/telnet/telnetd/global.c stable/11/contrib/telnet/telnetd/pathnames.h stable/11/contrib/telnet/telnetd/slc.c stable/11/contrib/telnet/telnetd/state.c stable/11/contrib/telnet/telnetd/sys_term.c stable/11/contrib/telnet/telnetd/telnetd.8 stable/11/contrib/telnet/telnetd/telnetd.c stable/11/contrib/telnet/telnetd/telnetd.h stable/11/contrib/telnet/telnetd/termstat.c stable/11/contrib/telnet/telnetd/utility.c Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/telnet/arpa/telnet.h ============================================================================== --- stable/11/contrib/telnet/arpa/telnet.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/arpa/telnet.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/auth-proto.h ============================================================================== --- stable/11/contrib/telnet/libtelnet/auth-proto.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/auth-proto.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/auth.c ============================================================================== --- stable/11/contrib/telnet/libtelnet/auth.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/auth.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/auth.h ============================================================================== --- stable/11/contrib/telnet/libtelnet/auth.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/auth.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/enc-proto.h ============================================================================== --- stable/11/contrib/telnet/libtelnet/enc-proto.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/enc-proto.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/enc_des.c ============================================================================== --- stable/11/contrib/telnet/libtelnet/enc_des.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/enc_des.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/encrypt.c ============================================================================== --- stable/11/contrib/telnet/libtelnet/encrypt.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/encrypt.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/encrypt.h ============================================================================== --- stable/11/contrib/telnet/libtelnet/encrypt.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/encrypt.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/genget.c ============================================================================== --- stable/11/contrib/telnet/libtelnet/genget.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/genget.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/getent.c ============================================================================== --- stable/11/contrib/telnet/libtelnet/getent.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/getent.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/kerberos.c ============================================================================== --- stable/11/contrib/telnet/libtelnet/kerberos.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/kerberos.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/kerberos5.c ============================================================================== --- stable/11/contrib/telnet/libtelnet/kerberos5.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/kerberos5.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/key-proto.h ============================================================================== --- stable/11/contrib/telnet/libtelnet/key-proto.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/key-proto.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/krb4encpwd.c ============================================================================== --- stable/11/contrib/telnet/libtelnet/krb4encpwd.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/krb4encpwd.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/misc-proto.h ============================================================================== --- stable/11/contrib/telnet/libtelnet/misc-proto.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/misc-proto.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/misc.c ============================================================================== --- stable/11/contrib/telnet/libtelnet/misc.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/misc.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/misc.h ============================================================================== --- stable/11/contrib/telnet/libtelnet/misc.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/misc.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/read_password.c ============================================================================== --- stable/11/contrib/telnet/libtelnet/read_password.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/read_password.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/libtelnet/rsaencpwd.c ============================================================================== --- stable/11/contrib/telnet/libtelnet/rsaencpwd.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/libtelnet/rsaencpwd.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/authenc.c ============================================================================== --- stable/11/contrib/telnet/telnet/authenc.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/authenc.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/commands.c ============================================================================== --- stable/11/contrib/telnet/telnet/commands.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/commands.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/defines.h ============================================================================== --- stable/11/contrib/telnet/telnet/defines.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/defines.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/externs.h ============================================================================== --- stable/11/contrib/telnet/telnet/externs.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/externs.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/fdset.h ============================================================================== --- stable/11/contrib/telnet/telnet/fdset.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/fdset.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/general.h ============================================================================== --- stable/11/contrib/telnet/telnet/general.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/general.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/main.c ============================================================================== --- stable/11/contrib/telnet/telnet/main.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/main.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/network.c ============================================================================== --- stable/11/contrib/telnet/telnet/network.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/network.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/ring.c ============================================================================== --- stable/11/contrib/telnet/telnet/ring.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/ring.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/ring.h ============================================================================== --- stable/11/contrib/telnet/telnet/ring.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/ring.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/sys_bsd.c ============================================================================== --- stable/11/contrib/telnet/telnet/sys_bsd.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/sys_bsd.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/telnet.1 ============================================================================== --- stable/11/contrib/telnet/telnet/telnet.1 Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/telnet.1 Fri Aug 23 17:40:47 2019 (r351432) @@ -9,11 +9,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" Modified: stable/11/contrib/telnet/telnet/telnet.c ============================================================================== --- stable/11/contrib/telnet/telnet/telnet.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/telnet.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/terminal.c ============================================================================== --- stable/11/contrib/telnet/telnet/terminal.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/terminal.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/types.h ============================================================================== --- stable/11/contrib/telnet/telnet/types.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/types.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnet/utilities.c ============================================================================== --- stable/11/contrib/telnet/telnet/utilities.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnet/utilities.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnetd/authenc.c ============================================================================== --- stable/11/contrib/telnet/telnetd/authenc.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/authenc.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnetd/defs.h ============================================================================== --- stable/11/contrib/telnet/telnetd/defs.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/defs.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnetd/ext.h ============================================================================== --- stable/11/contrib/telnet/telnetd/ext.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/ext.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnetd/global.c ============================================================================== --- stable/11/contrib/telnet/telnetd/global.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/global.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnetd/pathnames.h ============================================================================== --- stable/11/contrib/telnet/telnetd/pathnames.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/pathnames.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnetd/slc.c ============================================================================== --- stable/11/contrib/telnet/telnetd/slc.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/slc.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnetd/state.c ============================================================================== --- stable/11/contrib/telnet/telnetd/state.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/state.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnetd/sys_term.c ============================================================================== --- stable/11/contrib/telnet/telnetd/sys_term.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/sys_term.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnetd/telnetd.8 ============================================================================== --- stable/11/contrib/telnet/telnetd/telnetd.8 Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/telnetd.8 Fri Aug 23 17:40:47 2019 (r351432) @@ -9,11 +9,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors +.\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" Modified: stable/11/contrib/telnet/telnetd/telnetd.c ============================================================================== --- stable/11/contrib/telnet/telnetd/telnetd.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/telnetd.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnetd/telnetd.h ============================================================================== --- stable/11/contrib/telnet/telnetd/telnetd.h Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/telnetd.h Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnetd/termstat.c ============================================================================== --- stable/11/contrib/telnet/telnetd/termstat.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/termstat.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: stable/11/contrib/telnet/telnetd/utility.c ============================================================================== --- stable/11/contrib/telnet/telnetd/utility.c Fri Aug 23 17:39:59 2019 (r351431) +++ stable/11/contrib/telnet/telnetd/utility.c Fri Aug 23 17:40:47 2019 (r351432) @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * From owner-svn-src-all@freebsd.org Fri Aug 23 17:43:42 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9E670CAC60; Fri, 23 Aug 2019 17:43:42 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FTKB3fgwz42F8; Fri, 23 Aug 2019 17:43:42 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5F0E020301; Fri, 23 Aug 2019 17:43:42 +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 x7NHhg5d051612; Fri, 23 Aug 2019 17:43:42 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NHhgvM051611; Fri, 23 Aug 2019 17:43:42 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201908231743.x7NHhgvM051611@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 23 Aug 2019 17:43:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351433 - stable/11/contrib/telnet/telnetd X-SVN-Group: stable-11 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: stable/11/contrib/telnet/telnetd X-SVN-Commit-Revision: 351433 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 17:43:42 -0000 Author: emaste Date: Fri Aug 23 17:43:41 2019 New Revision: 351433 URL: https://svnweb.freebsd.org/changeset/base/351433 Log: MFC r331074 (cem): telnetd(8): Fix dereference of uninitialized value 'IF' Reported by: Coverity Modified: stable/11/contrib/telnet/telnetd/telnetd.c Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/telnet/telnetd/telnetd.c ============================================================================== --- stable/11/contrib/telnet/telnetd/telnetd.c Fri Aug 23 17:40:47 2019 (r351432) +++ stable/11/contrib/telnet/telnetd/telnetd.c Fri Aug 23 17:43:41 2019 (r351433) @@ -921,7 +921,7 @@ telnet(int f, int p, char *host) edithost(HE, host_name); if (hostinfo && *IM) putf(IM, ptyibuf2); - if (IF && if_fd != -1) { + if (if_fd != -1) { if (fstat(if_fd, &statbuf) != -1 && statbuf.st_size > 0) { if_buf = (char *) mmap (0, statbuf.st_size, PROT_READ, 0, if_fd, 0); From owner-svn-src-all@freebsd.org Fri Aug 23 18:26:21 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D437ACB48B; Fri, 23 Aug 2019 18:26:21 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io1-f66.google.com (mail-io1-f66.google.com [209.85.166.66]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FVGP4tS9z43Z7; Fri, 23 Aug 2019 18:26:21 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io1-f66.google.com with SMTP id j5so22193312ioj.8; Fri, 23 Aug 2019 11:26:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc:content-transfer-encoding; bh=E1Yqkly/AW5C/cUEgM3+cPpBdRAikXNNitRGsxCpkHg=; b=qlaLPOYR6Fd5yHUHAF791d1bYksk0kB0HguiXjWrihn2+4hE3JnO+qyYmzAgseWSpy WJ2D1YsE3OCiNpW/4OJipbuBFscVxqvdLx/UVkVJTeNCEfDSVHkzCWCA7hubgEDRhed9 SDGHZQToY4RXZRGZZXhsL8Pt6+SCeU0UjAUKP7Rhul7D1j4mRKNeNvJgzUr6+zmbOi7O MNbs3bB/Q/36Ls1pzdmk8R4zhkmAlcdhZoct7yuEy166scq99zBIP2nyQxC3qiyl3WoB AxfI6GJsCp2VGC/HYtXYWTWFDg6Lknp8NJZR71H69E+Sk+ArIbZMg0OdNJ5l3iUFFuQI A+7g== X-Gm-Message-State: APjAAAV+YajyaZPtm3nGHiajvexBOwcT73Q7d8Ze9giMYDyXSEaEziIi 6bMiGY2zt2paOVZx62eeuor5GGOl X-Google-Smtp-Source: APXvYqxBPcS4+GuoCyKA8Psn+K4fuExNqWgPHagzyE2s6qkSJNlDjHInNNLwhEadwW8y0aF6Dvr48Q== X-Received: by 2002:a6b:f910:: with SMTP id j16mr7868234iog.305.1566584779691; Fri, 23 Aug 2019 11:26:19 -0700 (PDT) Received: from mail-io1-f48.google.com (mail-io1-f48.google.com. [209.85.166.48]) by smtp.gmail.com with ESMTPSA id a7sm2691088iok.41.2019.08.23.11.26.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 23 Aug 2019 11:26:19 -0700 (PDT) Received: by mail-io1-f48.google.com with SMTP id z3so22287609iog.0; Fri, 23 Aug 2019 11:26:19 -0700 (PDT) X-Received: by 2002:a5e:c101:: with SMTP id v1mr7462317iol.231.1566584778871; Fri, 23 Aug 2019 11:26:18 -0700 (PDT) MIME-Version: 1.0 References: <201908220002.x7M028Jh070116@repo.freebsd.org> <0b9d1aa1-d328-30bc-b939-f1407e236855@FreeBSD.org> <3EE09B22-254B-4415-8865-D9542122ACA5@FreeBSD.org> In-Reply-To: Reply-To: cem@freebsd.org From: Conrad Meyer Date: Fri, 23 Aug 2019 11:26:07 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r351364 - in head/sys: crypto/blowfish crypto/chacha20 crypto/des opencrypto To: "Bjoern A. Zeeb" Cc: Warner Losh , Li-Wen Hsu , John Baldwin , src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 46FVGP4tS9z43Z7 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.97 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.973,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 18:26:21 -0000 At expected peril of wading into a thread >4 emails deep, @Warner, modern GCC reports a similar warning; it just doesn't become an error (at least in CI?). I'm not sure of the mechanism. Maybe CI-specific? Old GCC didn't have a -Wno-error for -Wcast-qual, so -Wcast-qual + -Werror there produced an error; that's why $NO_WCAST_QUAL in conf/kern.mk is defined to -Wno-cast-qual for old GCC but -Wno-error=3Dcast-qual for newer compilers. That said, this file does not appear to be compiled with ${NO_WCAST_QUAL} either way. @Bjoern, So... why does GCC warn about this? key is const uint8_t*. The cast is to const des_cblock *. I think the problem is that des_cblock is defined as 'unsigned char [8]', so a 'const des cblock *' is actually a 'const unsigned char**'? So... I think basically the entire des subsystem may be accidentally using the wrong pointer level throughout? The constify change just exposes that because correct const-preserving cast of 'const foo*' to 'foo**' would be 'foo * const *' (if I'm understanding this correctly). Maybe one more reason to excise des from the tree. Best, Conrad On Fri, Aug 23, 2019 at 9:59 AM Bjoern A. Zeeb wrote: > > On 23 Aug 2019, at 16:48, Warner Losh wrote: > > There's a lot of -Wno-error and -Wno-error=3DXXX sprinkled in our build > > for > > gcc 4.2.1 today, so we see the warnings but aren't stopped by them. My > > changes take a big hammer and add a global -Wno-error to CFLAGS last > > to > > make this the behavior on gcc 4.2.1 platforms. > > > Yes, but that didn=E2=80=99t answer my questions. It doesn=E2=80=99t hel= p to try to > avoid undefined C behaviour. > > That jenkins build seems to use the toolchain from ports and with that > gcc 6.4.0. > > We see the same warning but it didn=E2=80=99t error as it seems to have d= one > for other architectures with the in-tree gcc with the same warnings: > > In file included from /workspace/src/sys/opencrypto/xform.c:94:0: > /workspace/src/sys/opencrypto/xform_des1.c: In function 'des1_setkey': > /workspace/src/sys/opencrypto/xform_des1.c:102:15: warning: cast > discards 'const' qualifier from pointer target type [-Wcast-qual] > des_set_key((const des_cblock *) key, p[0]); > ^ > In file included from /workspace/src/sys/opencrypto/xform.c:95:0: > /workspace/src/sys/opencrypto/xform_des3.c: In function 'des3_setkey': > /workspace/src/sys/opencrypto/xform_des3.c:103:15: warning: cast > discards 'const' qualifier from pointer target type [-Wcast-qual] > des_set_key((const des_cblock *)(key + 0), p[0]); > ^ > /workspace/src/sys/opencrypto/xform_des3.c:104:15: warning: cast > discards 'const' qualifier from pointer target type [-Wcast-qual] > des_set_key((const des_cblock *)(key + 8), p[1]); > ^ > /workspace/src/sys/opencrypto/xform_des3.c:105:15: warning: cast > discards 'const' qualifier from pointer target type [-Wcast-qual] > des_set_key((const des_cblock *)(key + 16), p[2]); > ^ > -- > > > > To me this means that we treat different versions of compilers (in-tree > and out-of-tree, gcc vs. clang) too different. > > If two versions of gcc (before your commit) gave the same warning I > would have expected them to equally fail and not one fail and one pass? > > My question was: why was that the case? > > /bz > From owner-svn-src-all@freebsd.org Fri Aug 23 18:26:35 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A02C9CB4EF; Fri, 23 Aug 2019 18:26:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FVGg3Vbqz43j6; Fri, 23 Aug 2019 18:26:35 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5277B20A25; Fri, 23 Aug 2019 18:26:35 +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 x7NIQZrJ075089; Fri, 23 Aug 2019 18:26:35 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NIQZNj075088; Fri, 23 Aug 2019 18:26:35 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908231826.x7NIQZNj075088@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 23 Aug 2019 18:26:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351434 - head/sys/conf X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/conf X-SVN-Commit-Revision: 351434 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 18:26:35 -0000 Author: jhb Date: Fri Aug 23 18:26:34 2019 New Revision: 351434 URL: https://svnweb.freebsd.org/changeset/base/351434 Log: Fix universe to include arm LINT kernel configs. Strip comments from the NOTES.armv[57] files as is done for other NOTES files when building the corresponding LINT configs. Without this, the LINT configs contained the NO_UNIVERSE comment from the NOTES.armv[57] files. Reviewed by: imp MFC after: 1 week Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21264 Modified: head/sys/conf/makeLINT.mk Modified: head/sys/conf/makeLINT.mk ============================================================================== --- head/sys/conf/makeLINT.mk Fri Aug 23 17:43:41 2019 (r351433) +++ head/sys/conf/makeLINT.mk Fri Aug 23 18:26:34 2019 (r351434) @@ -48,8 +48,10 @@ LINT: ${NOTES} ${MAKELINT_SED} echo "nodevice netmap" >> ${.TARGET}-NOIP .endif .if ${TARGET} == "arm" - cat ${.TARGET} ${.CURDIR}/NOTES.armv5 > ${.TARGET}-V5 - cat ${.TARGET} ${.CURDIR}/NOTES.armv7 > ${.TARGET}-V7 + cat ${NOTES} ${.CURDIR}/NOTES.armv5 | sed -E -n -f ${MAKELINT_SED} > \ + ${.TARGET}-V5 + cat ${NOTES} ${.CURDIR}/NOTES.armv7 | sed -E -n -f ${MAKELINT_SED} > \ + ${.TARGET}-V7 rm ${.TARGET} .endif .if ${TARGET} == "mips" From owner-svn-src-all@freebsd.org Fri Aug 23 19:40:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 21549CCC7A; Fri, 23 Aug 2019 19:40:12 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FWvc05s8z472N; Fri, 23 Aug 2019 19:40:12 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D9AF3216B2; Fri, 23 Aug 2019 19:40:11 +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 x7NJeBet016367; Fri, 23 Aug 2019 19:40:11 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NJeBLt016364; Fri, 23 Aug 2019 19:40:11 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908231940.x7NJeBLt016364@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 23 Aug 2019 19:40:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351435 - in head/sys: kern sys ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head/sys: kern sys ufs/ffs X-SVN-Commit-Revision: 351435 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 19:40:12 -0000 Author: kib Date: Fri Aug 23 19:40:10 2019 New Revision: 351435 URL: https://svnweb.freebsd.org/changeset/base/351435 Log: De-commision the MNTK_NOINSMNTQ kernel mount flag. After all the changes, its dynamic scope is same as for MNTK_UNMOUNT, but to allow the syncer vnode to be re-installed on unmount failure. But the case of syncer was already handled by using the VV_FORCEINSMQ flag for quite some time. Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/kern/vfs_mount.c head/sys/kern/vfs_subr.c head/sys/sys/mount.h head/sys/ufs/ffs/ffs_softdep.c Modified: head/sys/kern/vfs_mount.c ============================================================================== --- head/sys/kern/vfs_mount.c Fri Aug 23 18:26:34 2019 (r351434) +++ head/sys/kern/vfs_mount.c Fri Aug 23 19:40:10 2019 (r351435) @@ -1387,14 +1387,13 @@ dounmount(struct mount *mp, int flags, struct thread * dounmount_cleanup(mp, coveredvp, 0); return (EBUSY); } - mp->mnt_kern_flag |= MNTK_UNMOUNT | MNTK_NOINSMNTQ; + mp->mnt_kern_flag |= MNTK_UNMOUNT; if (flags & MNT_NONBUSY) { MNT_IUNLOCK(mp); error = vfs_check_usecounts(mp); MNT_ILOCK(mp); if (error != 0) { - dounmount_cleanup(mp, coveredvp, MNTK_UNMOUNT | - MNTK_NOINSMNTQ); + dounmount_cleanup(mp, coveredvp, MNTK_UNMOUNT); return (error); } } @@ -1456,7 +1455,6 @@ dounmount(struct mount *mp, int flags, struct thread * */ if (error && error != ENXIO) { MNT_ILOCK(mp); - mp->mnt_kern_flag &= ~MNTK_NOINSMNTQ; if ((mp->mnt_flag & MNT_RDONLY) == 0) { MNT_IUNLOCK(mp); vfs_allocate_syncvnode(mp); Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Fri Aug 23 18:26:34 2019 (r351434) +++ head/sys/kern/vfs_subr.c Fri Aug 23 19:40:10 2019 (r351435) @@ -1698,7 +1698,7 @@ insmntque1(struct vnode *vp, struct mount *mp, */ MNT_ILOCK(mp); VI_LOCK(vp); - if (((mp->mnt_kern_flag & MNTK_NOINSMNTQ) != 0 && + if (((mp->mnt_kern_flag & MNTK_UNMOUNT) != 0 && ((mp->mnt_kern_flag & MNTK_UNMOUNTF) != 0 || mp->mnt_nvnodelistsize == 0)) && (vp->v_vflag & VV_FORCEINSMQ) == 0) { @@ -3818,7 +3818,6 @@ DB_SHOW_COMMAND(mount, db_show_mount) MNT_KERN_FLAG(MNTK_UNMOUNTF); MNT_KERN_FLAG(MNTK_ASYNC); MNT_KERN_FLAG(MNTK_SOFTDEP); - MNT_KERN_FLAG(MNTK_NOINSMNTQ); MNT_KERN_FLAG(MNTK_DRAINING); MNT_KERN_FLAG(MNTK_REFEXPIRE); MNT_KERN_FLAG(MNTK_EXTENDED_SHARED); Modified: head/sys/sys/mount.h ============================================================================== --- head/sys/sys/mount.h Fri Aug 23 18:26:34 2019 (r351434) +++ head/sys/sys/mount.h Fri Aug 23 19:40:10 2019 (r351435) @@ -368,23 +368,20 @@ void __mnt_vnode_markerfree_active(struct vno /* * Internal filesystem control flags stored in mnt_kern_flag. * - * MNTK_UNMOUNT locks the mount entry so that name lookup cannot proceed - * past the mount point. This keeps the subtree stable during mounts - * and unmounts. + * MNTK_UNMOUNT locks the mount entry so that name lookup cannot + * proceed past the mount point. This keeps the subtree stable during + * mounts and unmounts. When non-forced unmount flushes all vnodes + * from the mp queue, the MNTK_UNMOUNT flag prevents insmntque() from + * queueing new vnodes. * * MNTK_UNMOUNTF permits filesystems to detect a forced unmount while * dounmount() is still waiting to lock the mountpoint. This allows * the filesystem to cancel operations that might otherwise deadlock * with the unmount attempt (used by NFS). - * - * MNTK_NOINSMNTQ is strict subset of MNTK_UNMOUNT. They are separated - * to allow for failed unmount attempt to restore the syncer vnode for - * the mount. */ #define MNTK_UNMOUNTF 0x00000001 /* forced unmount in progress */ #define MNTK_ASYNC 0x00000002 /* filtered async flag */ #define MNTK_SOFTDEP 0x00000004 /* async disabled by softdep */ -#define MNTK_NOINSMNTQ 0x00000008 /* insmntque is not allowed */ #define MNTK_DRAINING 0x00000010 /* lock draining is happening */ #define MNTK_REFEXPIRE 0x00000020 /* refcount expiring is happening */ #define MNTK_EXTENDED_SHARED 0x00000040 /* Allow shared locking for more ops */ Modified: head/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- head/sys/ufs/ffs/ffs_softdep.c Fri Aug 23 18:26:34 2019 (r351434) +++ head/sys/ufs/ffs/ffs_softdep.c Fri Aug 23 19:40:10 2019 (r351435) @@ -2028,8 +2028,6 @@ retry_flush: if (oldmnt->mnt_kern_flag & MNTK_UNMOUNT) { retry = 0; MNT_ILOCK(oldmnt); - KASSERT((oldmnt->mnt_kern_flag & MNTK_NOINSMNTQ) != 0, - ("softdep_flushfiles: !MNTK_NOINSMNTQ")); morework = oldmnt->mnt_nvnodelistsize > 0; #ifdef QUOTA ump = VFSTOUFS(oldmnt); From owner-svn-src-all@freebsd.org Fri Aug 23 19:49:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6BDD9CCF47; Fri, 23 Aug 2019 19:49:30 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FX6L1KZQz47Y0; Fri, 23 Aug 2019 19:49:30 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0FE072189D; Fri, 23 Aug 2019 19:49:30 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7NJnTpC022551; Fri, 23 Aug 2019 19:49:29 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NJnTTE022549; Fri, 23 Aug 2019 19:49:29 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908231949.x7NJnTTE022549@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 23 Aug 2019 19:49:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351436 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 351436 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 19:49:30 -0000 Author: markj Date: Fri Aug 23 19:49:29 2019 New Revision: 351436 URL: https://svnweb.freebsd.org/changeset/base/351436 Log: Make vm_pqbatch_submit_page() externally visible. It will become useful for the page daemon to be able to directly create a batch queue entry for a page, and without modifying the page structure. Rename vm_pqbatch_submit_page() to vm_page_pqbatch_submit() to keep the namespace consistent. No functional change intended. Reviewed by: alc, kib MFC after: 1 week Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21369 Modified: head/sys/vm/vm_page.c head/sys/vm/vm_page.h head/sys/vm/vm_swapout.c Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Fri Aug 23 19:40:10 2019 (r351435) +++ head/sys/vm/vm_page.c Fri Aug 23 19:49:29 2019 (r351436) @@ -3130,8 +3130,8 @@ vm_pqbatch_process(struct vm_pagequeue *pq, struct vm_ vm_batchqueue_init(bq); } -static void -vm_pqbatch_submit_page(vm_page_t m, uint8_t queue) +void +vm_page_pqbatch_submit(vm_page_t m, uint8_t queue) { struct vm_batchqueue *bq; struct vm_pagequeue *pq; @@ -3181,14 +3181,14 @@ vm_pqbatch_submit_page(vm_page_t m, uint8_t queue) } /* - * vm_page_drain_pqbatch: [ internal use only ] + * vm_page_pqbatch_drain: [ internal use only ] * * Force all per-CPU page queue batch queues to be drained. This is * intended for use in severe memory shortages, to ensure that pages * do not remain stuck in the batch queues. */ void -vm_page_drain_pqbatch(void) +vm_page_pqbatch_drain(void) { struct thread *td; struct vm_domain *vmd; @@ -3253,7 +3253,7 @@ vm_page_dequeue_deferred(vm_page_t m) if ((queue = vm_page_queue(m)) == PQ_NONE) return; vm_page_aflag_set(m, PGA_DEQUEUE); - vm_pqbatch_submit_page(m, queue); + vm_page_pqbatch_submit(m, queue); } /* @@ -3277,7 +3277,7 @@ vm_page_dequeue_deferred_free(vm_page_t m) if ((queue = m->queue) == PQ_NONE) return; vm_page_aflag_set(m, PGA_DEQUEUE); - vm_pqbatch_submit_page(m, queue); + vm_page_pqbatch_submit(m, queue); } /* @@ -3352,7 +3352,7 @@ vm_page_enqueue(vm_page_t m, uint8_t queue) m->queue = queue; if ((m->aflags & PGA_REQUEUE) == 0) vm_page_aflag_set(m, PGA_REQUEUE); - vm_pqbatch_submit_page(m, queue); + vm_page_pqbatch_submit(m, queue); } /* @@ -3372,7 +3372,7 @@ vm_page_requeue(vm_page_t m) if ((m->aflags & PGA_REQUEUE) == 0) vm_page_aflag_set(m, PGA_REQUEUE); - vm_pqbatch_submit_page(m, atomic_load_8(&m->queue)); + vm_page_pqbatch_submit(m, atomic_load_8(&m->queue)); } /* @@ -3700,7 +3700,7 @@ vm_page_deactivate_noreuse(vm_page_t m) } if ((m->aflags & PGA_REQUEUE_HEAD) == 0) vm_page_aflag_set(m, PGA_REQUEUE_HEAD); - vm_pqbatch_submit_page(m, PQ_INACTIVE); + vm_page_pqbatch_submit(m, PQ_INACTIVE); } /* Modified: head/sys/vm/vm_page.h ============================================================================== --- head/sys/vm/vm_page.h Fri Aug 23 19:40:10 2019 (r351435) +++ head/sys/vm/vm_page.h Fri Aug 23 19:49:29 2019 (r351436) @@ -542,7 +542,6 @@ void vm_page_deactivate(vm_page_t); void vm_page_deactivate_noreuse(vm_page_t); void vm_page_dequeue(vm_page_t m); void vm_page_dequeue_deferred(vm_page_t m); -void vm_page_drain_pqbatch(void); vm_page_t vm_page_find_least(vm_object_t, vm_pindex_t); bool vm_page_free_prep(vm_page_t m); vm_page_t vm_page_getfake(vm_paddr_t paddr, vm_memattr_t memattr); @@ -552,6 +551,8 @@ void vm_page_launder(vm_page_t m); vm_page_t vm_page_lookup (vm_object_t, vm_pindex_t); vm_page_t vm_page_next(vm_page_t m); int vm_page_pa_tryrelock(pmap_t, vm_paddr_t, vm_paddr_t *); +void vm_page_pqbatch_drain(void); +void vm_page_pqbatch_submit(vm_page_t m, uint8_t queue); vm_page_t vm_page_prev(vm_page_t m); bool vm_page_ps_test(vm_page_t m, int flags, vm_page_t skip_m); void vm_page_putfake(vm_page_t m); Modified: head/sys/vm/vm_swapout.c ============================================================================== --- head/sys/vm/vm_swapout.c Fri Aug 23 19:40:10 2019 (r351435) +++ head/sys/vm/vm_swapout.c Fri Aug 23 19:49:29 2019 (r351436) @@ -409,7 +409,7 @@ vm_daemon(void) * avoidance measure. */ if ((swapout_flags & VM_SWAP_NORMAL) != 0) - vm_page_drain_pqbatch(); + vm_page_pqbatch_drain(); swapout_procs(swapout_flags); } From owner-svn-src-all@freebsd.org Fri Aug 23 19:53:12 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0F218CD1CE; Fri, 23 Aug 2019 19:53:12 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FXBb6Y9gz486j; Fri, 23 Aug 2019 19:53:11 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C2B2321A71; Fri, 23 Aug 2019 19:53:11 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7NJrBJj028019; Fri, 23 Aug 2019 19:53:11 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NJrBKr028018; Fri, 23 Aug 2019 19:53:11 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201908231953.x7NJrBKr028018@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 23 Aug 2019 19:53:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351437 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 351437 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 19:53:12 -0000 Author: markj Date: Fri Aug 23 19:53:11 2019 New Revision: 351437 URL: https://svnweb.freebsd.org/changeset/base/351437 Log: Stop clearing page flags in vm_page_pqbatch_submit(). All existing callers guarantee that the page does not have a pre-existing dequeue pending. Thus, if the page is dequeued before pqbatch_submit() acquires the page queue lock, we do not need to do anything since vm_page_dequeue_complete() takes care of clearing all page queue state flags for us. With this change, vm_page_pqbatch_submit() has the nice property that it does not directly modify any fields in the page structure. Reviewed by: alc, kib Tested by: pho (part of a larger change) MFC after: 1 week Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21372 Modified: head/sys/vm/vm_page.c Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Fri Aug 23 19:49:29 2019 (r351436) +++ head/sys/vm/vm_page.c Fri Aug 23 19:53:11 2019 (r351437) @@ -3174,7 +3174,6 @@ vm_page_pqbatch_submit(vm_page_t m, uint8_t queue) ("invalid queue transition for page %p", m)); KASSERT((m->aflags & PGA_ENQUEUED) == 0, ("page %p is enqueued with invalid queue index", m)); - vm_page_aflag_clear(m, PGA_QUEUE_STATE_MASK); } vm_pagequeue_unlock(pq); critical_exit(); From owner-svn-src-all@freebsd.org Fri Aug 23 21:05:37 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E1D8CCE33B; Fri, 23 Aug 2019 21:05:37 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FYp95f76z4BdC; Fri, 23 Aug 2019 21:05:37 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A3B8122719; Fri, 23 Aug 2019 21:05:37 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7NL5bSs069279; Fri, 23 Aug 2019 21:05:37 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NL5bFT069278; Fri, 23 Aug 2019 21:05:37 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201908232105.x7NL5bFT069278@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 23 Aug 2019 21:05:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351438 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 351438 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 21:05:37 -0000 Author: mjg Date: Fri Aug 23 21:05:37 2019 New Revision: 351438 URL: https://svnweb.freebsd.org/changeset/base/351438 Log: vfs: assert the lock held in MNT_REF/MNT_REL Sponsored by: The FreeBSD Foundation Modified: head/sys/sys/mount.h Modified: head/sys/sys/mount.h ============================================================================== --- head/sys/sys/mount.h Fri Aug 23 19:53:11 2019 (r351437) +++ head/sys/sys/mount.h Fri Aug 23 21:05:37 2019 (r351438) @@ -265,8 +265,12 @@ void __mnt_vnode_markerfree_active(struct vno #define MNT_ITRYLOCK(mp) mtx_trylock(&(mp)->mnt_mtx) #define MNT_IUNLOCK(mp) mtx_unlock(&(mp)->mnt_mtx) #define MNT_MTX(mp) (&(mp)->mnt_mtx) -#define MNT_REF(mp) (mp)->mnt_ref++ +#define MNT_REF(mp) do { \ + mtx_assert(MNT_MTX(mp), MA_OWNED); \ + (mp)->mnt_ref++; \ +} while (0) #define MNT_REL(mp) do { \ + mtx_assert(MNT_MTX(mp), MA_OWNED); \ KASSERT((mp)->mnt_ref > 0, ("negative mnt_ref")); \ (mp)->mnt_ref--; \ if ((mp)->mnt_ref == 0) \ From owner-svn-src-all@freebsd.org Fri Aug 23 22:03:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 42D8ACF7A8; Fri, 23 Aug 2019 22:03:52 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Fb5M6yFyz4FJC; Fri, 23 Aug 2019 22:03:51 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D067423216; Fri, 23 Aug 2019 22:03:51 +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 x7NM3pD5005272; Fri, 23 Aug 2019 22:03:51 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NM3pRp005269; Fri, 23 Aug 2019 22:03:51 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908232203.x7NM3pRp005269@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 23 Aug 2019 22:03:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351439 - in stable/11/sys/amd64: amd64 include pci X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable/11/sys/amd64: amd64 include pci X-SVN-Commit-Revision: 351439 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 22:03:52 -0000 Author: jhb Date: Fri Aug 23 22:03:50 2019 New Revision: 351439 URL: https://svnweb.freebsd.org/changeset/base/351439 Log: MFC 339432: Do not flush cache for PCIe config window. Apparently AMD machines cannot tolerate this. This was uncovered by r339386, where cache flush started really flushing the requested range. Introduce pmap_mapdev_pciecfg(), which simply does not flush cache comparing with pmap_mapdev(). It assumes that the MCFG region was never accessed through the cacheable mapping, which is most likely true for machine to boot at all. Note that i386 does not need the change, since the architecture handles access per-page due to the KVA shortage, and page remapping already does not flush the cache. MFC note: 339386 has not been MFC'd to 11, but merging this change should still be fine for 11 and reduces conflicts in MFCs of other changes. Modified: stable/11/sys/amd64/amd64/pmap.c stable/11/sys/amd64/include/pmap.h stable/11/sys/amd64/pci/pci_cfgreg.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/amd64/amd64/pmap.c ============================================================================== --- stable/11/sys/amd64/amd64/pmap.c Fri Aug 23 21:05:37 2019 (r351438) +++ stable/11/sys/amd64/amd64/pmap.c Fri Aug 23 22:03:50 2019 (r351439) @@ -634,7 +634,8 @@ static void pmap_pvh_free(struct md_page *pvh, pmap_t static pv_entry_t pmap_pvh_remove(struct md_page *pvh, pmap_t pmap, vm_offset_t va); -static int pmap_change_attr_locked(vm_offset_t va, vm_size_t size, int mode); +static int pmap_change_attr_locked(vm_offset_t va, vm_size_t size, int mode, + bool noflush); static boolean_t pmap_demote_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t va); static boolean_t pmap_demote_pde_locked(pmap_t pmap, pd_entry_t *pde, vm_offset_t va, struct rwlock **lockp); @@ -6834,8 +6835,8 @@ pmap_pde_attr(pd_entry_t *pde, int cache_bits, int mas * routine is intended to be used for mapping device memory, * NOT real memory. */ -void * -pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) +static void * +pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, bool noflush) { struct pmap_preinit_mapping *ppim; vm_offset_t va, offset; @@ -6878,7 +6879,10 @@ pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mo */ if (pa < dmaplimit && pa + size <= dmaplimit) { va = PHYS_TO_DMAP(pa); - if (!pmap_change_attr(va, size, mode)) + PMAP_LOCK(kernel_pmap); + i = pmap_change_attr_locked(va, size, mode, noflush); + PMAP_UNLOCK(kernel_pmap); + if (!i) return ((void *)(va + offset)); } va = kva_alloc(size); @@ -6888,22 +6892,37 @@ pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mo for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode); pmap_invalidate_range(kernel_pmap, va, va + tmpsize); - pmap_invalidate_cache_range(va, va + tmpsize, FALSE); + if (!noflush) + pmap_invalidate_cache_range(va, va + tmpsize, FALSE); return ((void *)(va + offset)); } void * +pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) +{ + + return (pmap_mapdev_internal(pa, size, mode, false)); +} + +void * pmap_mapdev(vm_paddr_t pa, vm_size_t size) { - return (pmap_mapdev_attr(pa, size, PAT_UNCACHEABLE)); + return (pmap_mapdev_internal(pa, size, PAT_UNCACHEABLE, false)); } void * +pmap_mapdev_pciecfg(vm_paddr_t pa, vm_size_t size) +{ + + return (pmap_mapdev_internal(pa, size, PAT_UNCACHEABLE, true)); +} + +void * pmap_mapbios(vm_paddr_t pa, vm_size_t size) { - return (pmap_mapdev_attr(pa, size, PAT_WRITE_BACK)); + return (pmap_mapdev_internal(pa, size, PAT_WRITE_BACK, false)); } void @@ -7042,13 +7061,13 @@ pmap_change_attr(vm_offset_t va, vm_size_t size, int m int error; PMAP_LOCK(kernel_pmap); - error = pmap_change_attr_locked(va, size, mode); + error = pmap_change_attr_locked(va, size, mode, false); PMAP_UNLOCK(kernel_pmap); return (error); } static int -pmap_change_attr_locked(vm_offset_t va, vm_size_t size, int mode) +pmap_change_attr_locked(vm_offset_t va, vm_size_t size, int mode, bool noflush) { vm_offset_t base, offset, tmpva; vm_paddr_t pa_start, pa_end, pa_end1; @@ -7165,7 +7184,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size /* Run ended, update direct map. */ error = pmap_change_attr_locked( PHYS_TO_DMAP(pa_start), - pa_end - pa_start, mode); + pa_end - pa_start, mode, noflush); if (error != 0) break; /* Start physical address run. */ @@ -7195,7 +7214,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size /* Run ended, update direct map. */ error = pmap_change_attr_locked( PHYS_TO_DMAP(pa_start), - pa_end - pa_start, mode); + pa_end - pa_start, mode, noflush); if (error != 0) break; /* Start physical address run. */ @@ -7223,7 +7242,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size /* Run ended, update direct map. */ error = pmap_change_attr_locked( PHYS_TO_DMAP(pa_start), - pa_end - pa_start, mode); + pa_end - pa_start, mode, noflush); if (error != 0) break; /* Start physical address run. */ @@ -7238,7 +7257,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size pa_end1 = MIN(pa_end, dmaplimit); if (pa_start != pa_end1) error = pmap_change_attr_locked(PHYS_TO_DMAP(pa_start), - pa_end1 - pa_start, mode); + pa_end1 - pa_start, mode, noflush); } /* @@ -7247,7 +7266,8 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size */ if (changed) { pmap_invalidate_range(kernel_pmap, base, tmpva); - pmap_invalidate_cache_range(base, tmpva, FALSE); + if (!noflush) + pmap_invalidate_cache_range(base, tmpva, FALSE); } return (error); } Modified: stable/11/sys/amd64/include/pmap.h ============================================================================== --- stable/11/sys/amd64/include/pmap.h Fri Aug 23 21:05:37 2019 (r351438) +++ stable/11/sys/amd64/include/pmap.h Fri Aug 23 22:03:50 2019 (r351439) @@ -419,6 +419,7 @@ void pmap_kremove(vm_offset_t); void *pmap_mapbios(vm_paddr_t, vm_size_t); void *pmap_mapdev(vm_paddr_t, vm_size_t); void *pmap_mapdev_attr(vm_paddr_t, vm_size_t, int); +void *pmap_mapdev_pciecfg(vm_paddr_t pa, vm_size_t size); boolean_t pmap_page_is_mapped(vm_page_t m); void pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma); void pmap_pinit_pml4(vm_page_t); Modified: stable/11/sys/amd64/pci/pci_cfgreg.c ============================================================================== --- stable/11/sys/amd64/pci/pci_cfgreg.c Fri Aug 23 21:05:37 2019 (r351438) +++ stable/11/sys/amd64/pci/pci_cfgreg.c Fri Aug 23 22:03:50 2019 (r351439) @@ -269,7 +269,7 @@ pcie_cfgregopen(uint64_t base, uint8_t minbus, uint8_t base); /* XXX: We should make sure this really fits into the direct map. */ - pcie_base = (vm_offset_t)pmap_mapdev(base, (maxbus + 1) << 20); + pcie_base = (vm_offset_t)pmap_mapdev_pciecfg(base, (maxbus + 1) << 20); pcie_minbus = minbus; pcie_maxbus = maxbus; cfgmech = CFGMECH_PCIE; From owner-svn-src-all@freebsd.org Fri Aug 23 22:04:27 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8256BCF822; Fri, 23 Aug 2019 22:04:27 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Fb632YDpz4FQ6; Fri, 23 Aug 2019 22:04:27 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 38D1323217; Fri, 23 Aug 2019 22:04:27 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7NM4RRd005351; Fri, 23 Aug 2019 22:04:27 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NM4RI9005350; Fri, 23 Aug 2019 22:04:27 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908232204.x7NM4RI9005350@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Fri, 23 Aug 2019 22:04:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351440 - head/sbin/ping X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/sbin/ping X-SVN-Commit-Revision: 351440 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 22:04:27 -0000 Author: asomers Date: Fri Aug 23 22:04:26 2019 New Revision: 351440 URL: https://svnweb.freebsd.org/changeset/base/351440 Log: ping: Fix alignment errors This fixes -Wcast-align errors when compiled with WARNS=6. Submitted by: Ján Sučan MFC after: 2 weeks Sponsored by: Google LLC (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21327 Modified: head/sbin/ping/ping.c Modified: head/sbin/ping/ping.c ============================================================================== --- head/sbin/ping/ping.c Fri Aug 23 22:03:50 2019 (r351439) +++ head/sbin/ping/ping.c Fri Aug 23 22:04:26 2019 (r351440) @@ -91,6 +91,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -217,10 +218,10 @@ static void finish(void) __dead2; static void pinger(void); static char *pr_addr(struct in_addr); static char *pr_ntime(n_time); -static void pr_icmph(struct icmp *); +static void pr_icmph(struct icmp *, struct ip *, const u_char *const); static void pr_iph(struct ip *); -static void pr_pack(char *, int, struct sockaddr_in *, struct timespec *); -static void pr_retip(struct ip *); +static void pr_pack(char *, ssize_t, struct sockaddr_in *, struct timespec *); +static void pr_retip(struct ip *, const u_char *); static void status(int); static void stopit(int); static void usage(void) __dead2; @@ -232,7 +233,6 @@ main(int argc, char *const *argv) struct in_addr ifaddr; struct timespec last, intvl; struct iovec iov; - struct ip *ip; struct msghdr msg; struct sigaction si_sa; size_t sz; @@ -687,7 +687,9 @@ main(int argc, char *const *argv) #endif /*IPSEC*/ if (options & F_HDRINCL) { - ip = (struct ip*)outpackhdr; + struct ip ip; + + memcpy(&ip, outpackhdr, sizeof(ip)); if (!(options & (F_TTL | F_MTTL))) { mib[0] = CTL_NET; mib[1] = PF_INET; @@ -698,15 +700,16 @@ main(int argc, char *const *argv) err(1, "sysctl(net.inet.ip.ttl)"); } setsockopt(ssend, IPPROTO_IP, IP_HDRINCL, &hold, sizeof(hold)); - ip->ip_v = IPVERSION; - ip->ip_hl = sizeof(struct ip) >> 2; - ip->ip_tos = tos; - ip->ip_id = 0; - ip->ip_off = htons(df ? IP_DF : 0); - ip->ip_ttl = ttl; - ip->ip_p = IPPROTO_ICMP; - ip->ip_src.s_addr = source ? sock_in.sin_addr.s_addr : INADDR_ANY; - ip->ip_dst = to->sin_addr; + ip.ip_v = IPVERSION; + ip.ip_hl = sizeof(struct ip) >> 2; + ip.ip_tos = tos; + ip.ip_id = 0; + ip.ip_off = htons(df ? IP_DF : 0); + ip.ip_ttl = ttl; + ip.ip_p = IPPROTO_ICMP; + ip.ip_src.s_addr = source ? sock_in.sin_addr.s_addr : INADDR_ANY; + ip.ip_dst = to->sin_addr; + memcpy(outpackhdr, &ip, sizeof(ip)); } /* @@ -898,7 +901,8 @@ main(int argc, char *const *argv) while (!finish_up) { struct timespec now, timeout; fd_set rfds; - int cc, n; + int n; + ssize_t cc; check_status(); if ((unsigned)srecv >= FD_SETSIZE) @@ -1016,18 +1020,17 @@ pinger(void) { struct timespec now; struct tv32 tv32; - struct ip *ip; - struct icmp *icp; + struct icmp icp; int cc, i; u_char *packet; packet = outpack; - icp = (struct icmp *)outpack; - icp->icmp_type = icmp_type; - icp->icmp_code = 0; - icp->icmp_cksum = 0; - icp->icmp_seq = htons(ntransmitted); - icp->icmp_id = ident; /* ID */ + memcpy(&icp, outpack, ICMP_MINLEN + phdr_len); + icp.icmp_type = icmp_type; + icp.icmp_code = 0; + icp.icmp_cksum = 0; + icp.icmp_seq = htons(ntransmitted); + icp.icmp_id = ident; /* ID */ CLR(ntransmitted % mx_dup_ck); @@ -1042,7 +1045,7 @@ pinger(void) tv32.tv32_sec = (uint32_t)htonl(now.tv_sec); tv32.tv32_nsec = (uint32_t)htonl(now.tv_nsec); if (options & F_TIME) - icp->icmp_otime = htonl((now.tv_sec % (24*60*60)) + icp.icmp_otime = htonl((now.tv_sec % (24*60*60)) * 1000 + now.tv_nsec / 1000000); if (timing) bcopy((void *)&tv32, @@ -1050,16 +1053,28 @@ pinger(void) sizeof(tv32)); } + memcpy(outpack, &icp, ICMP_MINLEN + phdr_len); + cc = ICMP_MINLEN + phdr_len + datalen; /* compute ICMP checksum here */ - icp->icmp_cksum = in_cksum((u_char *)icp, cc); + icp.icmp_cksum = in_cksum(outpack, cc); + /* Update icmp_cksum in the raw packet data buffer. */ + memcpy(outpack + offsetof(struct icmp, icmp_cksum), &icp.icmp_cksum, + sizeof(icp.icmp_cksum)); if (options & F_HDRINCL) { + struct ip ip; + cc += sizeof(struct ip); - ip = (struct ip *)outpackhdr; - ip->ip_len = htons(cc); - ip->ip_sum = in_cksum(outpackhdr, cc); + ip.ip_len = htons(cc); + /* Update ip_len in the raw packet data buffer. */ + memcpy(outpackhdr + offsetof(struct ip, ip_len), &ip.ip_len, + sizeof(ip.ip_len)); + ip.ip_sum = in_cksum(outpackhdr, cc); + /* Update ip_sum in the raw packet data buffer. */ + memcpy(outpackhdr + offsetof(struct ip, ip_sum), &ip.ip_sum, + sizeof(ip.ip_sum)); packet = outpackhdr; } i = send(ssend, (char *)packet, cc, 0); @@ -1089,48 +1104,62 @@ pinger(void) * program to be run without having intermingled output (or statistics!). */ static void -pr_pack(char *buf, int cc, struct sockaddr_in *from, struct timespec *tv) +pr_pack(char *buf, ssize_t cc, struct sockaddr_in *from, struct timespec *tv) { struct in_addr ina; - u_char *cp, *dp; - struct icmp *icp; - struct ip *ip; - const void *tp; + u_char *cp, *dp, l; + struct icmp icp; + struct ip ip; + const u_char *icmp_data_raw; double triptime; int dupflag, hlen, i, j, recv_len; uint16_t seq; static int old_rrlen; static char old_rr[MAX_IPOPTLEN]; + struct ip oip; + u_char oip_header_len; + struct icmp oicmp; + const u_char *oicmp_raw; + /* + * Get size of IP header of the received packet. The + * information is contained in the lower four bits of the + * first byte. + */ + memcpy(&l, buf, sizeof(l)); + hlen = (l & 0x0f) << 2; + memcpy(&ip, buf, hlen); + /* Check the IP header */ - ip = (struct ip *)buf; - hlen = ip->ip_hl << 2; recv_len = cc; if (cc < hlen + ICMP_MINLEN) { if (options & F_VERBOSE) - warn("packet too short (%d bytes) from %s", cc, + warn("packet too short (%zd bytes) from %s", cc, inet_ntoa(from->sin_addr)); return; } +#ifndef icmp_data + icmp_data_raw = buf + hlen + offsetof(struct icmp, icmp_ip); +#else + icmp_data_raw = buf + hlen + offsetof(struct icmp, icmp_data); +#endif + /* Now the ICMP part */ cc -= hlen; - icp = (struct icmp *)(buf + hlen); - if (icp->icmp_type == icmp_type_rsp) { - if (icp->icmp_id != ident) + memcpy(&icp, buf + hlen, MIN((ssize_t)sizeof(icp), cc)); + if (icp.icmp_type == icmp_type_rsp) { + if (icp.icmp_id != ident) return; /* 'Twas not our ECHO */ ++nreceived; triptime = 0.0; if (timing) { struct timespec tv1; struct tv32 tv32; -#ifndef icmp_data - tp = &icp->icmp_ip; -#else - tp = icp->icmp_data; -#endif - tp = (const char *)tp + phdr_len; + const u_char *tp; + tp = icmp_data_raw + phdr_len; + if ((size_t)(cc - ICMP_MINLEN - phdr_len) >= sizeof(tv1)) { /* Copy to avoid alignment problems: */ @@ -1150,7 +1179,7 @@ pr_pack(char *buf, int cc, struct sockaddr_in *from, s timing = 0; } - seq = ntohs(icp->icmp_seq); + seq = ntohs(icp.icmp_seq); if (TST(seq % mx_dup_ck)) { ++nrepeats; @@ -1172,9 +1201,9 @@ pr_pack(char *buf, int cc, struct sockaddr_in *from, s if (options & F_FLOOD) (void)write(STDOUT_FILENO, &BSPACE, 1); else { - (void)printf("%d bytes from %s: icmp_seq=%u", cc, + (void)printf("%zd bytes from %s: icmp_seq=%u", cc, pr_addr(from->sin_addr), seq); - (void)printf(" ttl=%d", ip->ip_ttl); + (void)printf(" ttl=%d", ip.ip_ttl); if (timing) (void)printf(" time=%.3f ms", triptime); if (dupflag) @@ -1184,12 +1213,12 @@ pr_pack(char *buf, int cc, struct sockaddr_in *from, s if (options & F_MASK) { /* Just prentend this cast isn't ugly */ (void)printf(" mask=%s", - inet_ntoa(*(struct in_addr *)&(icp->icmp_mask))); + inet_ntoa(*(struct in_addr *)&(icp.icmp_mask))); } if (options & F_TIME) { - (void)printf(" tso=%s", pr_ntime(icp->icmp_otime)); - (void)printf(" tsr=%s", pr_ntime(icp->icmp_rtime)); - (void)printf(" tst=%s", pr_ntime(icp->icmp_ttime)); + (void)printf(" tso=%s", pr_ntime(icp.icmp_otime)); + (void)printf(" tsr=%s", pr_ntime(icp.icmp_rtime)); + (void)printf(" tst=%s", pr_ntime(icp.icmp_ttime)); } if (recv_len != send_len) { (void)printf( @@ -1197,7 +1226,8 @@ pr_pack(char *buf, int cc, struct sockaddr_in *from, s recv_len, send_len); } /* check the data */ - cp = (u_char*)&icp->icmp_data[phdr_len]; + cp = (u_char*)(buf + hlen + offsetof(struct icmp, + icmp_data) + phdr_len); dp = &outpack[ICMP_MINLEN + phdr_len]; cc -= ICMP_MINLEN + phdr_len; i = 0; @@ -1212,7 +1242,8 @@ pr_pack(char *buf, int cc, struct sockaddr_in *from, s (void)printf("\nwrong data byte #%d should be 0x%x but was 0x%x", i, *dp, *cp); (void)printf("\ncp:"); - cp = (u_char*)&icp->icmp_data[0]; + cp = (u_char*)(buf + hlen + + offsetof(struct icmp, icmp_data)); for (i = 0; i < datalen; ++i, ++cp) { if ((i % 16) == 8) (void)printf("\n\t"); @@ -1240,22 +1271,22 @@ pr_pack(char *buf, int cc, struct sockaddr_in *from, s * as root to avoid leaking information not normally * available to those not running as root. */ -#ifndef icmp_data - struct ip *oip = &icp->icmp_ip; -#else - struct ip *oip = (struct ip *)icp->icmp_data; -#endif - struct icmp *oicmp = (struct icmp *)(oip + 1); + memcpy(&oip_header_len, icmp_data_raw, sizeof(oip_header_len)); + oip_header_len = (oip_header_len & 0x0f) << 2; + memcpy(&oip, icmp_data_raw, oip_header_len); + oicmp_raw = icmp_data_raw + oip_header_len; + memcpy(&oicmp, oicmp_raw, offsetof(struct icmp, icmp_id) + + sizeof(oicmp.icmp_id)); if (((options & F_VERBOSE) && uid == 0) || (!(options & F_QUIET2) && - (oip->ip_dst.s_addr == whereto.sin_addr.s_addr) && - (oip->ip_p == IPPROTO_ICMP) && - (oicmp->icmp_type == ICMP_ECHO) && - (oicmp->icmp_id == ident))) { - (void)printf("%d bytes from %s: ", cc, + (oip.ip_dst.s_addr == whereto.sin_addr.s_addr) && + (oip.ip_p == IPPROTO_ICMP) && + (oicmp.icmp_type == ICMP_ECHO) && + (oicmp.icmp_id == ident))) { + (void)printf("%zd bytes from %s: ", cc, pr_addr(from->sin_addr)); - pr_icmph(icp); + pr_icmph(&icp, &oip, oicmp_raw); } else return; } @@ -1441,7 +1472,7 @@ static char *ttab[] = { * Print a descriptive string about an ICMP header. */ static void -pr_icmph(struct icmp *icp) +pr_icmph(struct icmp *icp, struct ip *oip, const u_char *const oicmp_raw) { switch(icp->icmp_type) { @@ -1479,19 +1510,11 @@ pr_icmph(struct icmp *icp) break; } /* Print returned IP header information */ -#ifndef icmp_data - pr_retip(&icp->icmp_ip); -#else - pr_retip((struct ip *)icp->icmp_data); -#endif + pr_retip(oip, oicmp_raw); break; case ICMP_SOURCEQUENCH: (void)printf("Source Quench\n"); -#ifndef icmp_data - pr_retip(&icp->icmp_ip); -#else - pr_retip((struct ip *)icp->icmp_data); -#endif + pr_retip(oip, oicmp_raw); break; case ICMP_REDIRECT: switch(icp->icmp_code) { @@ -1512,11 +1535,7 @@ pr_icmph(struct icmp *icp) break; } (void)printf("(New addr: %s)\n", inet_ntoa(icp->icmp_gwaddr)); -#ifndef icmp_data - pr_retip(&icp->icmp_ip); -#else - pr_retip((struct ip *)icp->icmp_data); -#endif + pr_retip(oip, oicmp_raw); break; case ICMP_ECHO: (void)printf("Echo Request\n"); @@ -1535,20 +1554,12 @@ pr_icmph(struct icmp *icp) icp->icmp_code); break; } -#ifndef icmp_data - pr_retip(&icp->icmp_ip); -#else - pr_retip((struct ip *)icp->icmp_data); -#endif + pr_retip(oip, oicmp_raw); break; case ICMP_PARAMPROB: (void)printf("Parameter problem: pointer = 0x%02x\n", icp->icmp_hun.ih_pptr); -#ifndef icmp_data - pr_retip(&icp->icmp_ip); -#else - pr_retip((struct ip *)icp->icmp_data); -#endif + pr_retip(oip, oicmp_raw); break; case ICMP_TSTAMP: (void)printf("Timestamp\n"); @@ -1646,14 +1657,9 @@ pr_addr(struct in_addr ina) * Dump some info on a returned (via ICMP) IP packet. */ static void -pr_retip(struct ip *ip) +pr_retip(struct ip *ip, const u_char *cp) { - u_char *cp; - int hlen; - pr_iph(ip); - hlen = ip->ip_hl << 2; - cp = (u_char *)ip + hlen; if (ip->ip_p == 6) (void)printf("TCP: from port %u, to port %u (decimal)\n", From owner-svn-src-all@freebsd.org Fri Aug 23 22:05:39 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 826F5CF8E1 for ; Fri, 23 Aug 2019 22:05:39 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com [IPv6:2607:f8b0:4864:20::72c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Fb7Q40dYz4FYg for ; Fri, 23 Aug 2019 22:05:38 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x72c.google.com with SMTP id s14so9558674qkm.4 for ; Fri, 23 Aug 2019 15:05:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=KzMGq7lpQxwmhW5C/IZVGmln+AiogLi0Dj1KvKeE29s=; b=ltRHLJTXDC+Cvw2LlXK0Tndc9bASn0ZTGQ0XdrREBVr1In/xROdmJ53yfaOhLR10rG gMQHYnDjpUlnpAlmgoSQGZIUmDnvLbA7cOuUB5tvgW1GIasW/TGqvBr2l2H0kz5XoMEY HiMzEOZusIeyJK/RqCWjb+cTylouchxb5zv0Wmy+YjhWsVwIUtTOw5vOUuv0HAQSVcps mK4QNIJ1g2i2KDLn1Dk7DigqFWMTyxjS2FHwdtzxAPkgBr6JG72O/aeXt1/4lMsjmPwF P2sV9mprK7Yv2aWVCoOp2GcX1Uk7bG9VegonvhDiAh6INTL5PTwvJVyTsFQYyqUY/FKM FKMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=KzMGq7lpQxwmhW5C/IZVGmln+AiogLi0Dj1KvKeE29s=; b=Tgqb0w68Yl+G+m4F8bbgQ1L+m+IHE82avxpV92KbWyQ5KzJuvBkpK2CGYVlvBH6lPS VaUa06HneAgen22M9YoLu//RRVg0QFqdfN9DbTQ6B2vxAJVAZpRlrLlQfmzmzTWRCmRK Xqj2u47JUOJUScy4Wa1MEJbj7lzRqj2z1KNXRrQj8VUeZLbqHA9VCb6N3+DYhluU6AsC Ok/3Lt1811EfY9qoopQCCZO1jlyMSQYguTLq4+OyBdbEAo0BspoTI2bCZcwqp7b7JIbw OOHDWRVjWjX53528h/e1Ll8w4ot9cb+uBtlhoh1ywQv8ZSeNTMACICePFJdsYvjRMhty 4HkQ== X-Gm-Message-State: APjAAAXTKXaTzxHPMGX1lrVcbNrk5k02AqD1vKDNujwuJGOG5wQiDuFH 3QgPGsG3Y8Yf+MYOveBJR0EEFjbr/Uo5ZnhJGDbTVQ== X-Google-Smtp-Source: APXvYqzHLjmNW0awVbjp203tRNPg2ccexaqjwTbCl2oA8zda7jzd4BT4BWV7x2+elNZ3E4CMYrNUkapUMuZ4pQ9jGMU= X-Received: by 2002:a37:4b03:: with SMTP id y3mr6498895qka.215.1566597937184; Fri, 23 Aug 2019 15:05:37 -0700 (PDT) MIME-Version: 1.0 References: <201908220002.x7M028Jh070116@repo.freebsd.org> <0b9d1aa1-d328-30bc-b939-f1407e236855@FreeBSD.org> <3EE09B22-254B-4415-8865-D9542122ACA5@FreeBSD.org> In-Reply-To: From: Warner Losh Date: Fri, 23 Aug 2019 16:05:26 -0600 Message-ID: Subject: Re: svn commit: r351364 - in head/sys: crypto/blowfish crypto/chacha20 crypto/des opencrypto To: "Conrad E. Meyer" Cc: "Bjoern A. Zeeb" , Li-Wen Hsu , John Baldwin , src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 46Fb7Q40dYz4FYg X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=ltRHLJTX; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::72c) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-5.92 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; NEURAL_HAM_SHORT(-1.00)[-0.996,0]; RCVD_IN_DNSWL_NONE(0.00)[c.2.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; RCPT_COUNT_SEVEN(0.00)[7]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.92)[ip: (-9.34), ipnet: 2607:f8b0::/32(-2.87), asn: 15169(-2.34), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 22:05:39 -0000 On Fri, Aug 23, 2019 at 12:26 PM Conrad Meyer wrote: > At expected peril of wading into a thread >4 emails deep, > > @Warner, modern GCC reports a similar warning; it just doesn't become > an error (at least in CI?). I'm not sure of the mechanism. Maybe > CI-specific? Old GCC didn't have a -Wno-error for -Wcast-qual, so > -Wcast-qual + -Werror there produced an error; that's why > $NO_WCAST_QUAL in conf/kern.mk is defined to -Wno-cast-qual for old > GCC but -Wno-error=3Dcast-qual for newer compilers. That said, this > file does not appear to be compiled with ${NO_WCAST_QUAL} either way. > Yea. I'm unsure. It's an odd warning, and an odd way to get around it. In general, nobody cares about gcc 4.2.1, so pinning implementing that belief to this specific bug may have been unwise. I just assumed newer versions wouldn't warn on this, but I saw on IRC that the types are stupidly different... > @Bjoern, > > So... why does GCC warn about this? key is const uint8_t*. The cast > is to const des_cblock *. I think the problem is that des_cblock is > defined as 'unsigned char [8]', so a 'const des cblock *' is actually > a 'const unsigned char**'? So... I think basically the entire des > subsystem may be accidentally using the wrong pointer level > throughout? The constify change just exposes that because correct > const-preserving cast of 'const foo*' to 'foo**' would be 'foo * const > *' (if I'm understanding this correctly). > > Maybe one more reason to excise des from the tree. Ha! No comment :) Warner > Best, > Conrad > > > On Fri, Aug 23, 2019 at 9:59 AM Bjoern A. Zeeb wrote: > > > > On 23 Aug 2019, at 16:48, Warner Losh wrote: > > > There's a lot of -Wno-error and -Wno-error=3DXXX sprinkled in our bui= ld > > > for > > > gcc 4.2.1 today, so we see the warnings but aren't stopped by them. M= y > > > changes take a big hammer and add a global -Wno-error to CFLAGS last > > > to > > > make this the behavior on gcc 4.2.1 platforms. > > > > > > Yes, but that didn=E2=80=99t answer my questions. It doesn=E2=80=99t h= elp to try to > > avoid undefined C behaviour. > > > > That jenkins build seems to use the toolchain from ports and with that > > gcc 6.4.0. > > > > We see the same warning but it didn=E2=80=99t error as it seems to have= done > > for other architectures with the in-tree gcc with the same warnings: > > > > In file included from /workspace/src/sys/opencrypto/xform.c:94:0: > > /workspace/src/sys/opencrypto/xform_des1.c: In function 'des1_setkey': > > /workspace/src/sys/opencrypto/xform_des1.c:102:15: warning: cast > > discards 'const' qualifier from pointer target type [-Wcast-qual] > > des_set_key((const des_cblock *) key, p[0]); > > ^ > > In file included from /workspace/src/sys/opencrypto/xform.c:95:0: > > /workspace/src/sys/opencrypto/xform_des3.c: In function 'des3_setkey': > > /workspace/src/sys/opencrypto/xform_des3.c:103:15: warning: cast > > discards 'const' qualifier from pointer target type [-Wcast-qual] > > des_set_key((const des_cblock *)(key + 0), p[0]); > > ^ > > /workspace/src/sys/opencrypto/xform_des3.c:104:15: warning: cast > > discards 'const' qualifier from pointer target type [-Wcast-qual] > > des_set_key((const des_cblock *)(key + 8), p[1]); > > ^ > > /workspace/src/sys/opencrypto/xform_des3.c:105:15: warning: cast > > discards 'const' qualifier from pointer target type [-Wcast-qual] > > des_set_key((const des_cblock *)(key + 16), p[2]); > > ^ > > -- > > > > > > > > To me this means that we treat different versions of compilers (in-tree > > and out-of-tree, gcc vs. clang) too different. > > > > If two versions of gcc (before your commit) gave the same warning I > > would have expected them to equally fail and not one fail and one pass? > > > > My question was: why was that the case? > > > > /bz > > > From owner-svn-src-all@freebsd.org Fri Aug 23 22:22:34 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EC29FCFE21; Fri, 23 Aug 2019 22:22:34 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FbVy60M5z4GTt; Fri, 23 Aug 2019 22:22:34 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AEEC5235B3; Fri, 23 Aug 2019 22:22:34 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7NMMYjT017215; Fri, 23 Aug 2019 22:22:34 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NMMYwm017214; Fri, 23 Aug 2019 22:22:34 GMT (envelope-from np@FreeBSD.org) Message-Id: <201908232222.x7NMMYwm017214@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Fri, 23 Aug 2019 22:22:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351444 - head/sys/dev/cxgbe X-SVN-Group: head X-SVN-Commit-Author: np X-SVN-Commit-Paths: head/sys/dev/cxgbe X-SVN-Commit-Revision: 351444 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 22:22:35 -0000 Author: np Date: Fri Aug 23 22:22:34 2019 New Revision: 351444 URL: https://svnweb.freebsd.org/changeset/base/351444 Log: cxgbe(4): Use the same buffer size for TOE rx queues as the NIC rx queues. This is a minor simplification. MFC after: 1 week Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/t4_sge.c Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Fri Aug 23 22:17:36 2019 (r351443) +++ head/sys/dev/cxgbe/t4_sge.c Fri Aug 23 22:22:34 2019 (r351444) @@ -1112,26 +1112,12 @@ t4_teardown_adapter_queues(struct adapter *sc) /* Maximum payload that can be delivered with a single iq descriptor */ static inline int -mtu_to_max_payload(struct adapter *sc, int mtu, const int toe) +mtu_to_max_payload(struct adapter *sc, int mtu) { - int payload; -#ifdef TCP_OFFLOAD - if (toe) { - int rxcs = G_RXCOALESCESIZE(t4_read_reg(sc, A_TP_PARA_REG2)); - - /* Note that COP can set rx_coalesce on/off per connection. */ - payload = max(mtu, rxcs); - } else { -#endif - /* large enough even when hw VLAN extraction is disabled */ - payload = sc->params.sge.fl_pktshift + ETHER_HDR_LEN + - ETHER_VLAN_ENCAP_LEN + mtu; -#ifdef TCP_OFFLOAD - } -#endif - - return (payload); + /* large enough even when hw VLAN extraction is disabled */ + return (sc->params.sge.fl_pktshift + ETHER_HDR_LEN + + ETHER_VLAN_ENCAP_LEN + mtu); } int @@ -1201,7 +1187,7 @@ t4_setup_vi_queues(struct vi_info *vi) * Allocate rx queues first because a default iqid is required when * creating a tx queue. */ - maxp = mtu_to_max_payload(sc, mtu, 0); + maxp = mtu_to_max_payload(sc, mtu); oid = SYSCTL_ADD_NODE(&vi->ctx, children, OID_AUTO, "rxq", CTLFLAG_RD, NULL, "rx queues"); for_each_rxq(vi, i, rxq) { @@ -1223,7 +1209,6 @@ t4_setup_vi_queues(struct vi_info *vi) intr_idx = saved_idx + max(vi->nrxq, vi->nnmrxq); #endif #ifdef TCP_OFFLOAD - maxp = mtu_to_max_payload(sc, mtu, 1); oid = SYSCTL_ADD_NODE(&vi->ctx, children, OID_AUTO, "ofld_rxq", CTLFLAG_RD, NULL, "rx queues for offloaded TCP connections"); for_each_ofld_rxq(vi, i, ofld_rxq) { @@ -2194,7 +2179,7 @@ t4_update_fl_bufsize(struct ifnet *ifp) struct sge_fl *fl; int i, maxp, mtu = ifp->if_mtu; - maxp = mtu_to_max_payload(sc, mtu, 0); + maxp = mtu_to_max_payload(sc, mtu); for_each_rxq(vi, i, rxq) { fl = &rxq->fl; @@ -2203,7 +2188,6 @@ t4_update_fl_bufsize(struct ifnet *ifp) FL_UNLOCK(fl); } #ifdef TCP_OFFLOAD - maxp = mtu_to_max_payload(sc, mtu, 1); for_each_ofld_rxq(vi, i, ofld_rxq) { fl = &ofld_rxq->fl; From owner-svn-src-all@freebsd.org Fri Aug 23 22:34:15 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 974DCD00FC; Fri, 23 Aug 2019 22:34:15 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FbmR3M77z4Gw8; Fri, 23 Aug 2019 22:34:15 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 55A752377B; Fri, 23 Aug 2019 22:34:15 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7NMYFVE023285; Fri, 23 Aug 2019 22:34:15 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NMYF1L023283; Fri, 23 Aug 2019 22:34:15 GMT (envelope-from np@FreeBSD.org) Message-Id: <201908232234.x7NMYF1L023283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Fri, 23 Aug 2019 22:34:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351445 - head/sys/dev/cxgbe/tom X-SVN-Group: head X-SVN-Commit-Author: np X-SVN-Commit-Paths: head/sys/dev/cxgbe/tom X-SVN-Commit-Revision: 351445 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 22:34:15 -0000 Author: np Date: Fri Aug 23 22:34:14 2019 New Revision: 351445 URL: https://svnweb.freebsd.org/changeset/base/351445 Log: whitespace nit. Modified: head/sys/dev/cxgbe/tom/t4_listen.c Modified: head/sys/dev/cxgbe/tom/t4_listen.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_listen.c Fri Aug 23 22:22:34 2019 (r351444) +++ head/sys/dev/cxgbe/tom/t4_listen.c Fri Aug 23 22:34:14 2019 (r351445) @@ -1145,7 +1145,7 @@ get_l2te_for_nexthop(struct port_info *pi, struct ifne struct l2t_entry *e; struct sockaddr_in6 sin6; struct sockaddr *dst = (void *)&sin6; - + if (inc->inc_flags & INC_ISIPV6) { struct nhop6_basic nh6; From owner-svn-src-all@freebsd.org Fri Aug 23 22:41:17 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A9815D01B8; Fri, 23 Aug 2019 22:41:17 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FbwY41WCz4HHv; Fri, 23 Aug 2019 22:41:17 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6BB05237B8; Fri, 23 Aug 2019 22:41:17 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7NMfHik026828; Fri, 23 Aug 2019 22:41:17 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NMfHT3026809; Fri, 23 Aug 2019 22:41:17 GMT (envelope-from np@FreeBSD.org) Message-Id: <201908232241.x7NMfHT3026809@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Fri, 23 Aug 2019 22:41:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351446 - head/sys/dev/cxgbe/tom X-SVN-Group: head X-SVN-Commit-Author: np X-SVN-Commit-Paths: head/sys/dev/cxgbe/tom X-SVN-Commit-Revision: 351446 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 22:41:17 -0000 Author: np Date: Fri Aug 23 22:41:16 2019 New Revision: 351446 URL: https://svnweb.freebsd.org/changeset/base/351446 Log: cxgbe/t4_tom: Any invalid scaling factor in the hardware's wsf field implies that window scaling is not in use. MFC after: 3 days Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/tom/t4_listen.c Modified: head/sys/dev/cxgbe/tom/t4_listen.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_listen.c Fri Aug 23 22:34:14 2019 (r351445) +++ head/sys/dev/cxgbe/tom/t4_listen.c Fri Aug 23 22:41:16 2019 (r351446) @@ -994,7 +994,7 @@ t4opt_to_tcpopt(const struct tcp_options *t4opt, struc to->to_mss = be16toh(t4opt->mss); } - if (t4opt->wsf) { + if (t4opt->wsf > 0 && t4opt->wsf < 15) { to->to_flags |= TOF_SCALE; to->to_wscale = t4opt->wsf; } From owner-svn-src-all@freebsd.org Fri Aug 23 22:52:59 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A3DBDD04E2; Fri, 23 Aug 2019 22:52:59 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FcB33m8Xz4HsT; Fri, 23 Aug 2019 22:52:59 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 62A8023B0B; Fri, 23 Aug 2019 22:52:59 +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 x7NMqxbh034761; Fri, 23 Aug 2019 22:52:59 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7NMqwLq034758; Fri, 23 Aug 2019 22:52:58 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201908232252.x7NMqwLq034758@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 23 Aug 2019 22:52:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351447 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 351447 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 23 Aug 2019 22:52:59 -0000 Author: imp Date: Fri Aug 23 22:52:58 2019 New Revision: 351447 URL: https://svnweb.freebsd.org/changeset/base/351447 Log: It turns out the duplication is only mostly harmless. While it worked with the kenrel, it wasn't working with the loader. It failed to handle dependencies correctly. The reason for that is that we never created a nvme module with the DRIVER_MODULE, but instead a nvme_pci and nvme_ahci module. Create a real nvme module that nvd can be dependent on so it can import the nvme symbols it needs from there. Arguably, nvd should just be a simple child of nvme, but transitioning to that (and winning that argument given why it was done this way) is beyond the scope of this change. Reviewed by: jhb@ Differential Revision: https://reviews.freebsd.org/D21382 Modified: head/sys/dev/nvme/nvme.c head/sys/dev/nvme/nvme_ahci.c head/sys/dev/nvme/nvme_pci.c Modified: head/sys/dev/nvme/nvme.c ============================================================================== --- head/sys/dev/nvme/nvme.c Fri Aug 23 22:41:16 2019 (r351446) +++ head/sys/dev/nvme/nvme.c Fri Aug 23 22:52:58 2019 (r351447) @@ -364,3 +364,19 @@ nvme_completion_poll_cb(void *arg, const struct nvme_c memcpy(&status->cpl, cpl, sizeof(*cpl)); atomic_store_rel_int(&status->done, 1); } + +static int +nvme_modevent(module_t mod __unused, int type __unused, void *argp __unused) +{ + return (0); +} + +static moduledata_t nvme_mod = { + "nvme", + nvme_modevent, + 0 +}; + +DECLARE_MODULE(nvme, nvme_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); +MODULE_VERSION(nvme, 1); +MODULE_DEPEND(nvme, cam, 1, 1, 1); Modified: head/sys/dev/nvme/nvme_ahci.c ============================================================================== --- head/sys/dev/nvme/nvme_ahci.c Fri Aug 23 22:41:16 2019 (r351446) +++ head/sys/dev/nvme/nvme_ahci.c Fri Aug 23 22:52:58 2019 (r351447) @@ -55,8 +55,6 @@ static driver_t nvme_ahci_driver = { }; DRIVER_MODULE(nvme, ahci, nvme_ahci_driver, nvme_devclass, NULL, 0); -MODULE_VERSION(nvme, 1); -MODULE_DEPEND(nvme, cam, 1, 1, 1); static int nvme_ahci_probe (device_t device) Modified: head/sys/dev/nvme/nvme_pci.c ============================================================================== --- head/sys/dev/nvme/nvme_pci.c Fri Aug 23 22:41:16 2019 (r351446) +++ head/sys/dev/nvme/nvme_pci.c Fri Aug 23 22:52:58 2019 (r351447) @@ -62,8 +62,6 @@ static driver_t nvme_pci_driver = { }; DRIVER_MODULE(nvme, pci, nvme_pci_driver, nvme_devclass, NULL, 0); -MODULE_VERSION(nvme, 1); -MODULE_DEPEND(nvme, cam, 1, 1, 1); static struct _pcsid { From owner-svn-src-all@freebsd.org Sat Aug 24 00:01:20 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8A00FD1673; Sat, 24 Aug 2019 00:01:20 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Fdhw396Rz4L6p; Sat, 24 Aug 2019 00:01:20 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4856124784; Sat, 24 Aug 2019 00:01:20 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7O01KC9072801; Sat, 24 Aug 2019 00:01:20 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7O01Jcs072799; Sat, 24 Aug 2019 00:01:19 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201908240001.x7O01Jcs072799@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sat, 24 Aug 2019 00:01:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351448 - in head/sys: kern vm X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: kern vm X-SVN-Commit-Revision: 351448 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 00:01:20 -0000 Author: mjg Date: Sat Aug 24 00:01:19 2019 New Revision: 351448 URL: https://svnweb.freebsd.org/changeset/base/351448 Log: Remove the obsolete pcpu_zone_ptr zone. It was only used by flowtable (removed in r321618). Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/subr_pcpu.c head/sys/vm/uma.h Modified: head/sys/kern/subr_pcpu.c ============================================================================== --- head/sys/kern/subr_pcpu.c Fri Aug 23 22:52:58 2019 (r351447) +++ head/sys/kern/subr_pcpu.c Sat Aug 24 00:01:19 2019 (r351448) @@ -131,12 +131,10 @@ SYSINIT(dpcpu, SI_SUB_KLD, SI_ORDER_FIRST, dpcpu_start /* * UMA_PCPU_ZONE zones, that are available for all kernel - * consumers. Right now 64 bit zone is used for counter(9) - * and pointer zone is used by flowtable. + * consumers. Right now 64 bit zone is used for counter(9). */ uma_zone_t pcpu_zone_64; -uma_zone_t pcpu_zone_ptr; static void pcpu_zones_startup(void) @@ -144,12 +142,6 @@ pcpu_zones_startup(void) pcpu_zone_64 = uma_zcreate("64 pcpu", sizeof(uint64_t), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_PCPU); - - if (sizeof(uint64_t) == sizeof(void *)) - pcpu_zone_ptr = pcpu_zone_64; - else - pcpu_zone_ptr = uma_zcreate("ptr pcpu", sizeof(void *), - NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_PCPU); } SYSINIT(pcpu_zones, SI_SUB_VM, SI_ORDER_ANY, pcpu_zones_startup, NULL); Modified: head/sys/vm/uma.h ============================================================================== --- head/sys/vm/uma.h Fri Aug 23 22:52:58 2019 (r351447) +++ head/sys/vm/uma.h Sat Aug 24 00:01:19 2019 (r351448) @@ -650,7 +650,6 @@ int uma_zone_exhausted_nolock(uma_zone_t zone); * Common UMA_ZONE_PCPU zones. */ extern uma_zone_t pcpu_zone_64; -extern uma_zone_t pcpu_zone_ptr; /* * Exported statistics structures to be used by user space monitoring tools. From owner-svn-src-all@freebsd.org Sat Aug 24 00:36:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5ADE2D2A12; Sat, 24 Aug 2019 00:36:01 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FfSx1nfsz4RD2; Sat, 24 Aug 2019 00:36:01 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2054324D93; Sat, 24 Aug 2019 00:36:01 +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 x7O0a0w8099184; Sat, 24 Aug 2019 00:36:00 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7O0a0Tn099182; Sat, 24 Aug 2019 00:36:00 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908240036.x7O0a0Tn099182@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 24 Aug 2019 00:36:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r351449 - in stable: 11/sys/amd64/amd64 11/sys/i386/i386 12/sys/amd64/amd64 12/sys/i386/i386 X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/amd64/amd64 11/sys/i386/i386 12/sys/amd64/amd64 12/sys/i386/i386 X-SVN-Commit-Revision: 351449 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 00:36:01 -0000 Author: jhb Date: Sat Aug 24 00:35:59 2019 New Revision: 351449 URL: https://svnweb.freebsd.org/changeset/base/351449 Log: MFC 350551: Don't reset memory attributes when mapping physical addresses for ACPI. Previously, AcpiOsMemory was using pmap_mapbios which would always map the requested address Write-Back (WB). For several AMD Ryzen laptops, the BIOS uses AcpiOsMemory to directly access the PCI MCFG region in order to access PCI config registers. This has the side effect of remapping the MCFG region in the direct map as WB instead of UC hanging the laptops during boot. On the one laptop I examined in detail, the _PIC global method used to switch from 8259A PICs to I/O APICs uses a pair of PCI config space registers at offset 0x84 in the device at 0:0:0 to as a pair of address/data registers to access an indirect register in the chipset and clear a single bit to switch modes. To fix, alter the semantics of pmap_mapbios() such that it does not modify the attributes of any existing mappings and instead uses the existing attributes. If a new mapping is created, this new mapping uses WB (the default memory attribute). Special thanks to the gentleman whose name I don't have who brought two affected laptops to the hacker lounge at BSDCan. Direct access to the affected systems permitted finding the root cause within an hour or so. PR: 231760, 236899 Modified: stable/11/sys/amd64/amd64/pmap.c stable/11/sys/i386/i386/pmap.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/amd64/amd64/pmap.c stable/12/sys/i386/i386/pmap.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/amd64/amd64/pmap.c ============================================================================== --- stable/11/sys/amd64/amd64/pmap.c Sat Aug 24 00:01:19 2019 (r351448) +++ stable/11/sys/amd64/amd64/pmap.c Sat Aug 24 00:35:59 2019 (r351449) @@ -615,6 +615,13 @@ static caddr_t crashdumpmap; #define PMAP_ENTER_NORECLAIM 0x1000000 /* Don't reclaim PV entries. */ #define PMAP_ENTER_NOREPLACE 0x2000000 /* Don't replace mappings. */ +/* + * Internal flags for pmap_mapdev_internal() and + * pmap_change_attr_locked(). + */ +#define MAPDEV_FLUSHCACHE 0x0000001 /* Flush cache after mapping. */ +#define MAPDEV_SETATTR 0x0000002 /* Modify existing attrs. */ + static void free_pv_chunk(struct pv_chunk *pc); static void free_pv_entry(pmap_t pmap, pv_entry_t pv); static pv_entry_t get_pv_entry(pmap_t pmap, struct rwlock **lockp); @@ -635,7 +642,7 @@ static pv_entry_t pmap_pvh_remove(struct md_page *pvh, vm_offset_t va); static int pmap_change_attr_locked(vm_offset_t va, vm_size_t size, int mode, - bool noflush); + int flags); static boolean_t pmap_demote_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t va); static boolean_t pmap_demote_pde_locked(pmap_t pmap, pd_entry_t *pde, vm_offset_t va, struct rwlock **lockp); @@ -6836,7 +6843,7 @@ pmap_pde_attr(pd_entry_t *pde, int cache_bits, int mas * NOT real memory. */ static void * -pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, bool noflush) +pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, int flags) { struct pmap_preinit_mapping *ppim; vm_offset_t va, offset; @@ -6870,7 +6877,8 @@ pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, in for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { ppim = pmap_preinit_mapping + i; if (ppim->pa == pa && ppim->sz == size && - ppim->mode == mode) + (ppim->mode == mode || + (flags & MAPDEV_SETATTR) == 0)) return ((void *)(ppim->va + offset)); } /* @@ -6879,9 +6887,12 @@ pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, in */ if (pa < dmaplimit && pa + size <= dmaplimit) { va = PHYS_TO_DMAP(pa); - PMAP_LOCK(kernel_pmap); - i = pmap_change_attr_locked(va, size, mode, noflush); - PMAP_UNLOCK(kernel_pmap); + if ((flags & MAPDEV_SETATTR) != 0) { + PMAP_LOCK(kernel_pmap); + i = pmap_change_attr_locked(va, size, mode, flags); + PMAP_UNLOCK(kernel_pmap); + } else + i = 0; if (!i) return ((void *)(va + offset)); } @@ -6892,7 +6903,7 @@ pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, in for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode); pmap_invalidate_range(kernel_pmap, va, va + tmpsize); - if (!noflush) + if ((flags & MAPDEV_FLUSHCACHE) != 0) pmap_invalidate_cache_range(va, va + tmpsize, FALSE); return ((void *)(va + offset)); } @@ -6901,28 +6912,31 @@ void * pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) { - return (pmap_mapdev_internal(pa, size, mode, false)); + return (pmap_mapdev_internal(pa, size, mode, MAPDEV_FLUSHCACHE | + MAPDEV_SETATTR)); } void * pmap_mapdev(vm_paddr_t pa, vm_size_t size) { - return (pmap_mapdev_internal(pa, size, PAT_UNCACHEABLE, false)); + return (pmap_mapdev_attr(pa, size, PAT_UNCACHEABLE)); } void * pmap_mapdev_pciecfg(vm_paddr_t pa, vm_size_t size) { - return (pmap_mapdev_internal(pa, size, PAT_UNCACHEABLE, true)); + return (pmap_mapdev_internal(pa, size, PAT_UNCACHEABLE, + MAPDEV_SETATTR)); } void * pmap_mapbios(vm_paddr_t pa, vm_size_t size) { - return (pmap_mapdev_internal(pa, size, PAT_WRITE_BACK, false)); + return (pmap_mapdev_internal(pa, size, PAT_WRITE_BACK, + MAPDEV_FLUSHCACHE)); } void @@ -7061,13 +7075,13 @@ pmap_change_attr(vm_offset_t va, vm_size_t size, int m int error; PMAP_LOCK(kernel_pmap); - error = pmap_change_attr_locked(va, size, mode, false); + error = pmap_change_attr_locked(va, size, mode, MAPDEV_FLUSHCACHE); PMAP_UNLOCK(kernel_pmap); return (error); } static int -pmap_change_attr_locked(vm_offset_t va, vm_size_t size, int mode, bool noflush) +pmap_change_attr_locked(vm_offset_t va, vm_size_t size, int mode, int flags) { vm_offset_t base, offset, tmpva; vm_paddr_t pa_start, pa_end, pa_end1; @@ -7184,7 +7198,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size /* Run ended, update direct map. */ error = pmap_change_attr_locked( PHYS_TO_DMAP(pa_start), - pa_end - pa_start, mode, noflush); + pa_end - pa_start, mode, flags); if (error != 0) break; /* Start physical address run. */ @@ -7214,7 +7228,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size /* Run ended, update direct map. */ error = pmap_change_attr_locked( PHYS_TO_DMAP(pa_start), - pa_end - pa_start, mode, noflush); + pa_end - pa_start, mode, flags); if (error != 0) break; /* Start physical address run. */ @@ -7242,7 +7256,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size /* Run ended, update direct map. */ error = pmap_change_attr_locked( PHYS_TO_DMAP(pa_start), - pa_end - pa_start, mode, noflush); + pa_end - pa_start, mode, flags); if (error != 0) break; /* Start physical address run. */ @@ -7257,7 +7271,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size pa_end1 = MIN(pa_end, dmaplimit); if (pa_start != pa_end1) error = pmap_change_attr_locked(PHYS_TO_DMAP(pa_start), - pa_end1 - pa_start, mode, noflush); + pa_end1 - pa_start, mode, flags); } /* @@ -7266,7 +7280,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size */ if (changed) { pmap_invalidate_range(kernel_pmap, base, tmpva); - if (!noflush) + if ((flags & MAPDEV_FLUSHCACHE) != 0) pmap_invalidate_cache_range(base, tmpva, FALSE); } return (error); Modified: stable/11/sys/i386/i386/pmap.c ============================================================================== --- stable/11/sys/i386/i386/pmap.c Sat Aug 24 00:01:19 2019 (r351448) +++ stable/11/sys/i386/i386/pmap.c Sat Aug 24 00:35:59 2019 (r351449) @@ -286,6 +286,11 @@ static struct mtx PMAP2mutex; int pti; +/* + * Internal flags for pmap_mapdev_internal(). + */ +#define MAPDEV_SETATTR 0x0000001 /* Modify existing attrs. */ + static void free_pv_chunk(struct pv_chunk *pc); static void free_pv_entry(pmap_t pmap, pv_entry_t pv); static pv_entry_t get_pv_entry(pmap_t pmap, boolean_t try); @@ -5225,11 +5230,12 @@ pmap_pde_attr(pd_entry_t *pde, int cache_bits) * routine is intended to be used for mapping device memory, * NOT real memory. */ -void * -pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) +static void * +pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, int flags) { struct pmap_preinit_mapping *ppim; vm_offset_t va, offset; + vm_page_t m; vm_size_t tmpsize; int i; @@ -5237,9 +5243,11 @@ pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mo size = round_page(offset + size); pa = pa & PG_FRAME; - if (pa < KERNLOAD && pa + size <= KERNLOAD) + if (pa < KERNLOAD && pa + size <= KERNLOAD) { va = KERNBASE + pa; - else if (!pmap_initialized) { + if ((flags & MAPDEV_SETATTR) == 0) + return ((void *)(va + offset)); + } else if (!pmap_initialized) { va = 0; for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { ppim = pmap_preinit_mapping + i; @@ -5262,21 +5270,38 @@ pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mo for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { ppim = pmap_preinit_mapping + i; if (ppim->pa == pa && ppim->sz == size && - ppim->mode == mode) + (ppim->mode == mode || + (flags & MAPDEV_SETATTR) == 0)) return ((void *)(ppim->va + offset)); } va = kva_alloc(size); if (va == 0) panic("%s: Couldn't allocate KVA", __func__); } - for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) + for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) { + if ((flags & MAPDEV_SETATTR) == 0 && pmap_initialized) { + m = PHYS_TO_VM_PAGE(pa); + if (m != NULL && VM_PAGE_TO_PHYS(m) == pa) { + pmap_kenter_attr(va + tmpsize, pa + tmpsize, + m->md.pat_mode); + continue; + } + } pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode); + } pmap_invalidate_range(kernel_pmap, va, va + tmpsize); pmap_invalidate_cache_range(va, va + size, FALSE); return ((void *)(va + offset)); } void * +pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) +{ + + return (pmap_mapdev_internal(pa, size, mode, MAPDEV_SETATTR)); +} + +void * pmap_mapdev(vm_paddr_t pa, vm_size_t size) { @@ -5287,7 +5312,7 @@ void * pmap_mapbios(vm_paddr_t pa, vm_size_t size) { - return (pmap_mapdev_attr(pa, size, PAT_WRITE_BACK)); + return (pmap_mapdev_internal(pa, size, PAT_WRITE_BACK, 0)); } void From owner-svn-src-all@freebsd.org Sat Aug 24 00:36:00 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B0707D2A0A; Sat, 24 Aug 2019 00:36:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FfSw49Qpz4RD0; Sat, 24 Aug 2019 00:36:00 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 70E1F24D92; Sat, 24 Aug 2019 00:36:00 +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 x7O0a0aB099177; Sat, 24 Aug 2019 00:36:00 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7O0a0CV099175; Sat, 24 Aug 2019 00:36:00 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201908240036.x7O0a0CV099175@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 24 Aug 2019 00:36:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351449 - in stable: 11/sys/amd64/amd64 11/sys/i386/i386 12/sys/amd64/amd64 12/sys/i386/i386 X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable: 11/sys/amd64/amd64 11/sys/i386/i386 12/sys/amd64/amd64 12/sys/i386/i386 X-SVN-Commit-Revision: 351449 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 00:36:00 -0000 Author: jhb Date: Sat Aug 24 00:35:59 2019 New Revision: 351449 URL: https://svnweb.freebsd.org/changeset/base/351449 Log: MFC 350551: Don't reset memory attributes when mapping physical addresses for ACPI. Previously, AcpiOsMemory was using pmap_mapbios which would always map the requested address Write-Back (WB). For several AMD Ryzen laptops, the BIOS uses AcpiOsMemory to directly access the PCI MCFG region in order to access PCI config registers. This has the side effect of remapping the MCFG region in the direct map as WB instead of UC hanging the laptops during boot. On the one laptop I examined in detail, the _PIC global method used to switch from 8259A PICs to I/O APICs uses a pair of PCI config space registers at offset 0x84 in the device at 0:0:0 to as a pair of address/data registers to access an indirect register in the chipset and clear a single bit to switch modes. To fix, alter the semantics of pmap_mapbios() such that it does not modify the attributes of any existing mappings and instead uses the existing attributes. If a new mapping is created, this new mapping uses WB (the default memory attribute). Special thanks to the gentleman whose name I don't have who brought two affected laptops to the hacker lounge at BSDCan. Direct access to the affected systems permitted finding the root cause within an hour or so. PR: 231760, 236899 Modified: stable/12/sys/amd64/amd64/pmap.c stable/12/sys/i386/i386/pmap.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/amd64/amd64/pmap.c stable/11/sys/i386/i386/pmap.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/amd64/amd64/pmap.c ============================================================================== --- stable/12/sys/amd64/amd64/pmap.c Sat Aug 24 00:01:19 2019 (r351448) +++ stable/12/sys/amd64/amd64/pmap.c Sat Aug 24 00:35:59 2019 (r351449) @@ -1102,6 +1102,13 @@ static caddr_t crashdumpmap; #define PMAP_ENTER_NORECLAIM 0x1000000 /* Don't reclaim PV entries. */ #define PMAP_ENTER_NOREPLACE 0x2000000 /* Don't replace mappings. */ +/* + * Internal flags for pmap_mapdev_internal() and + * pmap_change_attr_locked(). + */ +#define MAPDEV_FLUSHCACHE 0x0000001 /* Flush cache after mapping. */ +#define MAPDEV_SETATTR 0x0000002 /* Modify existing attrs. */ + static void free_pv_chunk(struct pv_chunk *pc); static void free_pv_entry(pmap_t pmap, pv_entry_t pv); static pv_entry_t get_pv_entry(pmap_t pmap, struct rwlock **lockp); @@ -1122,7 +1129,7 @@ static pv_entry_t pmap_pvh_remove(struct md_page *pvh, vm_offset_t va); static int pmap_change_attr_locked(vm_offset_t va, vm_size_t size, int mode, - bool noflush); + int flags); static boolean_t pmap_demote_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t va); static boolean_t pmap_demote_pde_locked(pmap_t pmap, pd_entry_t *pde, vm_offset_t va, struct rwlock **lockp); @@ -7713,7 +7720,7 @@ pmap_pde_attr(pd_entry_t *pde, int cache_bits, int mas * NOT real memory. */ static void * -pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, bool noflush) +pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, int flags) { struct pmap_preinit_mapping *ppim; vm_offset_t va, offset; @@ -7747,7 +7754,8 @@ pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, in for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { ppim = pmap_preinit_mapping + i; if (ppim->pa == pa && ppim->sz == size && - ppim->mode == mode) + (ppim->mode == mode || + (flags & MAPDEV_SETATTR) == 0)) return ((void *)(ppim->va + offset)); } /* @@ -7756,9 +7764,12 @@ pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, in */ if (pa < dmaplimit && pa + size <= dmaplimit) { va = PHYS_TO_DMAP(pa); - PMAP_LOCK(kernel_pmap); - i = pmap_change_attr_locked(va, size, mode, noflush); - PMAP_UNLOCK(kernel_pmap); + if ((flags & MAPDEV_SETATTR) != 0) { + PMAP_LOCK(kernel_pmap); + i = pmap_change_attr_locked(va, size, mode, flags); + PMAP_UNLOCK(kernel_pmap); + } else + i = 0; if (!i) return ((void *)(va + offset)); } @@ -7769,7 +7780,7 @@ pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, in for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode); pmap_invalidate_range(kernel_pmap, va, va + tmpsize); - if (!noflush) + if ((flags & MAPDEV_FLUSHCACHE) != 0) pmap_invalidate_cache_range(va, va + tmpsize); return ((void *)(va + offset)); } @@ -7778,28 +7789,31 @@ void * pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) { - return (pmap_mapdev_internal(pa, size, mode, false)); + return (pmap_mapdev_internal(pa, size, mode, MAPDEV_FLUSHCACHE | + MAPDEV_SETATTR)); } void * pmap_mapdev(vm_paddr_t pa, vm_size_t size) { - return (pmap_mapdev_internal(pa, size, PAT_UNCACHEABLE, false)); + return (pmap_mapdev_attr(pa, size, PAT_UNCACHEABLE)); } void * pmap_mapdev_pciecfg(vm_paddr_t pa, vm_size_t size) { - return (pmap_mapdev_internal(pa, size, PAT_UNCACHEABLE, true)); + return (pmap_mapdev_internal(pa, size, PAT_UNCACHEABLE, + MAPDEV_SETATTR)); } void * pmap_mapbios(vm_paddr_t pa, vm_size_t size) { - return (pmap_mapdev_internal(pa, size, PAT_WRITE_BACK, false)); + return (pmap_mapdev_internal(pa, size, PAT_WRITE_BACK, + MAPDEV_FLUSHCACHE)); } void @@ -7938,13 +7952,13 @@ pmap_change_attr(vm_offset_t va, vm_size_t size, int m int error; PMAP_LOCK(kernel_pmap); - error = pmap_change_attr_locked(va, size, mode, false); + error = pmap_change_attr_locked(va, size, mode, MAPDEV_FLUSHCACHE); PMAP_UNLOCK(kernel_pmap); return (error); } static int -pmap_change_attr_locked(vm_offset_t va, vm_size_t size, int mode, bool noflush) +pmap_change_attr_locked(vm_offset_t va, vm_size_t size, int mode, int flags) { vm_offset_t base, offset, tmpva; vm_paddr_t pa_start, pa_end, pa_end1; @@ -8061,7 +8075,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size /* Run ended, update direct map. */ error = pmap_change_attr_locked( PHYS_TO_DMAP(pa_start), - pa_end - pa_start, mode, noflush); + pa_end - pa_start, mode, flags); if (error != 0) break; /* Start physical address run. */ @@ -8091,7 +8105,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size /* Run ended, update direct map. */ error = pmap_change_attr_locked( PHYS_TO_DMAP(pa_start), - pa_end - pa_start, mode, noflush); + pa_end - pa_start, mode, flags); if (error != 0) break; /* Start physical address run. */ @@ -8119,7 +8133,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size /* Run ended, update direct map. */ error = pmap_change_attr_locked( PHYS_TO_DMAP(pa_start), - pa_end - pa_start, mode, noflush); + pa_end - pa_start, mode, flags); if (error != 0) break; /* Start physical address run. */ @@ -8134,7 +8148,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size pa_end1 = MIN(pa_end, dmaplimit); if (pa_start != pa_end1) error = pmap_change_attr_locked(PHYS_TO_DMAP(pa_start), - pa_end1 - pa_start, mode, noflush); + pa_end1 - pa_start, mode, flags); } /* @@ -8143,7 +8157,7 @@ pmap_change_attr_locked(vm_offset_t va, vm_size_t size */ if (changed) { pmap_invalidate_range(kernel_pmap, base, tmpva); - if (!noflush) + if ((flags & MAPDEV_FLUSHCACHE) != 0) pmap_invalidate_cache_range(base, tmpva); } return (error); Modified: stable/12/sys/i386/i386/pmap.c ============================================================================== --- stable/12/sys/i386/i386/pmap.c Sat Aug 24 00:01:19 2019 (r351448) +++ stable/12/sys/i386/i386/pmap.c Sat Aug 24 00:35:59 2019 (r351449) @@ -292,6 +292,11 @@ int pti; #define PMAP_ENTER_NORECLAIM 0x1000000 /* Don't reclaim PV entries. */ #define PMAP_ENTER_NOREPLACE 0x2000000 /* Don't replace mappings. */ +/* + * Internal flags for pmap_mapdev_internal(). + */ +#define MAPDEV_SETATTR 0x0000001 /* Modify existing attrs. */ + static void free_pv_chunk(struct pv_chunk *pc); static void free_pv_entry(pmap_t pmap, pv_entry_t pv); static pv_entry_t get_pv_entry(pmap_t pmap, boolean_t try); @@ -5466,11 +5471,12 @@ pmap_pde_attr(pd_entry_t *pde, int cache_bits) * routine is intended to be used for mapping device memory, * NOT real memory. */ -void * -pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) +static void * +pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, int flags) { struct pmap_preinit_mapping *ppim; vm_offset_t va, offset; + vm_page_t m; vm_size_t tmpsize; int i; @@ -5478,9 +5484,11 @@ pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mo size = round_page(offset + size); pa = pa & PG_FRAME; - if (pa < PMAP_MAP_LOW && pa + size <= PMAP_MAP_LOW) + if (pa < PMAP_MAP_LOW && pa + size <= PMAP_MAP_LOW) { va = pa + PMAP_MAP_LOW; - else if (!pmap_initialized) { + if ((flags & MAPDEV_SETATTR) == 0) + return ((void *)(va + offset)); + } else if (!pmap_initialized) { va = 0; for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { ppim = pmap_preinit_mapping + i; @@ -5503,21 +5511,38 @@ pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mo for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { ppim = pmap_preinit_mapping + i; if (ppim->pa == pa && ppim->sz == size && - ppim->mode == mode) + (ppim->mode == mode || + (flags & MAPDEV_SETATTR) == 0)) return ((void *)(ppim->va + offset)); } va = kva_alloc(size); if (va == 0) panic("%s: Couldn't allocate KVA", __func__); } - for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) + for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) { + if ((flags & MAPDEV_SETATTR) == 0 && pmap_initialized) { + m = PHYS_TO_VM_PAGE(pa); + if (m != NULL && VM_PAGE_TO_PHYS(m) == pa) { + pmap_kenter_attr(va + tmpsize, pa + tmpsize, + m->md.pat_mode); + continue; + } + } pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode); + } pmap_invalidate_range(kernel_pmap, va, va + tmpsize); pmap_invalidate_cache_range(va, va + size); return ((void *)(va + offset)); } void * +pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) +{ + + return (pmap_mapdev_internal(pa, size, mode, MAPDEV_SETATTR)); +} + +void * pmap_mapdev(vm_paddr_t pa, vm_size_t size) { @@ -5528,7 +5553,7 @@ void * pmap_mapbios(vm_paddr_t pa, vm_size_t size) { - return (pmap_mapdev_attr(pa, size, PAT_WRITE_BACK)); + return (pmap_mapdev_internal(pa, size, PAT_WRITE_BACK, 0)); } void From owner-svn-src-all@freebsd.org Sat Aug 24 01:28:40 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 06735D3EAF; Sat, 24 Aug 2019 01:28:40 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Fgdg65zYz4TWT; Sat, 24 Aug 2019 01:28:39 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C83F1256AA; Sat, 24 Aug 2019 01:28:39 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7O1Sdo1028850; Sat, 24 Aug 2019 01:28:39 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7O1SdSD028848; Sat, 24 Aug 2019 01:28:39 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <201908240128.x7O1SdSD028848@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Sat, 24 Aug 2019 01:28:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351450 - in head/tests/sys/netpfil: common pf X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: in head/tests/sys/netpfil: common pf X-SVN-Commit-Revision: 351450 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 01:28:40 -0000 Author: lwhsu Date: Sat Aug 24 01:28:39 2019 New Revision: 351450 URL: https://svnweb.freebsd.org/changeset/base/351450 Log: Fix failure test cases after r351423 due to ping6(8) options changed Failure test cases: sys.netpfil.common.pass_block.pf_v6 sys.netpfil.pf.pass_block.noalias sys.netpfil.pf.pass_block.v6 Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/netpfil/common/pass_block.sh head/tests/sys/netpfil/pf/pass_block.sh Modified: head/tests/sys/netpfil/common/pass_block.sh ============================================================================== --- head/tests/sys/netpfil/common/pass_block.sh Sat Aug 24 00:35:59 2019 (r351449) +++ head/tests/sys/netpfil/common/pass_block.sh Sat Aug 24 01:28:39 2019 (r351450) @@ -99,7 +99,7 @@ v6_body() "ipf" \ "block in all" - atf_check -s exit:2 -o ignore ping6 -c 1 -x 1 fd7a:803f:cc4b::2 + atf_check -s exit:2 -o ignore ping6 -c 1 -W 1 fd7a:803f:cc4b::2 # Pass All firewall_config "iron" ${firewall} \ @@ -110,7 +110,7 @@ v6_body() "ipf" \ "pass in all" - atf_check -s exit:0 -o ignore ping6 -c 1 -x 1 fd7a:803f:cc4b::2 + atf_check -s exit:0 -o ignore ping6 -c 1 -W 1 fd7a:803f:cc4b::2 } v6_cleanup() @@ -126,4 +126,4 @@ setup_tests "v4" \ "v6" \ "pf" \ "ipfw" \ - "ipf" \ No newline at end of file + "ipf" Modified: head/tests/sys/netpfil/pf/pass_block.sh ============================================================================== --- head/tests/sys/netpfil/pf/pass_block.sh Sat Aug 24 00:35:59 2019 (r351449) +++ head/tests/sys/netpfil/pf/pass_block.sh Sat Aug 24 01:28:39 2019 (r351450) @@ -60,23 +60,23 @@ v6_body() jexec alcatraz ifconfig ${epair}b inet6 2001:db8:42::2/64 up no_dad # Trivial ping to the jail, without pf - atf_check -s exit:0 -o ignore ping6 -c 1 -x 1 2001:db8:42::2 + atf_check -s exit:0 -o ignore ping6 -c 1 -W 1 2001:db8:42::2 # pf without policy will let us ping jexec alcatraz pfctl -e - atf_check -s exit:0 -o ignore ping6 -c 1 -x 1 2001:db8:42::2 + atf_check -s exit:0 -o ignore ping6 -c 1 -W 1 2001:db8:42::2 # Block everything pft_set_rules alcatraz "block in" - atf_check -s exit:2 -o ignore ping6 -c 1 -x 1 2001:db8:42::2 + atf_check -s exit:2 -o ignore ping6 -c 1 -W 1 2001:db8:42::2 # Block everything but ICMP pft_set_rules alcatraz "block in" "pass in proto icmp6" - atf_check -s exit:0 -o ignore ping6 -c 1 -x 1 2001:db8:42::2 + atf_check -s exit:0 -o ignore ping6 -c 1 -W 1 2001:db8:42::2 # Allowing ICMPv4 does not allow ICMPv6 pft_set_rules alcatraz "block in" "pass in proto icmp" - atf_check -s exit:2 -o ignore ping6 -c 1 -x 1 2001:db8:42::2 + atf_check -s exit:2 -o ignore ping6 -c 1 -W 1 2001:db8:42::2 } v6_cleanup() @@ -107,21 +107,21 @@ noalias_body() | cut -d % -f 1) # Sanity check - atf_check -s exit:0 -o ignore ping6 -c 3 -x 1 2001:db8:42::2 - atf_check -s exit:0 -o ignore ping6 -c 3 -x 1 ${linklocaladdr}%${epair}a + atf_check -s exit:0 -o ignore ping6 -c 3 -W 1 2001:db8:42::2 + atf_check -s exit:0 -o ignore ping6 -c 3 -W 1 ${linklocaladdr}%${epair}a jexec alcatraz pfctl -e pft_set_rules alcatraz "block out inet6 from (${epair}b:0) to any" - atf_check -s exit:2 -o ignore ping6 -c 3 -x 1 2001:db8:42::2 + atf_check -s exit:2 -o ignore ping6 -c 3 -W 1 2001:db8:42::2 # We should still be able to ping the link-local address - atf_check -s exit:0 -o ignore ping6 -c 3 -x 1 ${linklocaladdr}%${epair}a + atf_check -s exit:0 -o ignore ping6 -c 3 -W 1 ${linklocaladdr}%${epair}a pft_set_rules alcatraz "block out inet6 from (${epair}b) to any" # We cannot ping to the link-local address - atf_check -s exit:2 -o ignore ping6 -c 3 -x 1 ${linklocaladdr}%${epair}a + atf_check -s exit:2 -o ignore ping6 -c 3 -W 1 ${linklocaladdr}%${epair}a } noalias_cleanup() From owner-svn-src-all@freebsd.org Sat Aug 24 12:51:47 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8DFB4DF592; Sat, 24 Aug 2019 12:51:47 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Fynv3Bn4z3D57; Sat, 24 Aug 2019 12:51:47 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4F6465557; Sat, 24 Aug 2019 12:51:47 +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 x7OCpljV034130; Sat, 24 Aug 2019 12:51:47 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7OCpkJF034125; Sat, 24 Aug 2019 12:51:46 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908241251.x7OCpkJF034125@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 24 Aug 2019 12:51:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r351451 - stable/12/lib/libthr/thread X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/lib/libthr/thread X-SVN-Commit-Revision: 351451 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 12:51:47 -0000 Author: kib Date: Sat Aug 24 12:51:46 2019 New Revision: 351451 URL: https://svnweb.freebsd.org/changeset/base/351451 Log: MFC r351349: Fix _pthread_cancel_enter() and _pthread_cancel_leave() jmptable entries. PR: 240022 Modified: stable/12/lib/libthr/thread/thr_cancel.c stable/12/lib/libthr/thread/thr_init.c stable/12/lib/libthr/thread/thr_private.h Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libthr/thread/thr_cancel.c ============================================================================== --- stable/12/lib/libthr/thread/thr_cancel.c Sat Aug 24 01:28:39 2019 (r351450) +++ stable/12/lib/libthr/thread/thr_cancel.c Sat Aug 24 12:51:46 2019 (r351451) @@ -43,6 +43,8 @@ __weak_reference(_thr_setcanceltype, pthread_setcancel __weak_reference(_thr_setcanceltype, _pthread_setcanceltype); __weak_reference(_Tthr_testcancel, pthread_testcancel); __weak_reference(_Tthr_testcancel, _pthread_testcancel); +__weak_reference(_Tthr_cancel_enter, _pthread_cancel_enter); +__weak_reference(_Tthr_cancel_leave, _pthread_cancel_leave); static inline void testcancel(struct pthread *curthread) @@ -173,13 +175,13 @@ _thr_cancel_leave(struct pthread *curthread, int mayca } void -_pthread_cancel_enter(int maycancel) +_Tthr_cancel_enter(int maycancel) { _thr_cancel_enter2(_get_curthread(), maycancel); } void -_pthread_cancel_leave(int maycancel) +_Tthr_cancel_leave(int maycancel) { _thr_cancel_leave(_get_curthread(), maycancel); } Modified: stable/12/lib/libthr/thread/thr_init.c ============================================================================== --- stable/12/lib/libthr/thread/thr_init.c Sat Aug 24 01:28:39 2019 (r351450) +++ stable/12/lib/libthr/thread/thr_init.c Sat Aug 24 12:51:46 2019 (r351451) @@ -265,8 +265,8 @@ static pthread_func_t jmp_table[][2] = { [PJT_TESTCANCEL] = {DUAL_ENTRY(_Tthr_testcancel)}, [PJT_CLEANUP_POP_IMP] = {DUAL_ENTRY(__thr_cleanup_pop_imp)}, [PJT_CLEANUP_PUSH_IMP] = {DUAL_ENTRY(__thr_cleanup_push_imp)}, - [PJT_CANCEL_ENTER] = {DUAL_ENTRY(_thr_cancel_enter)}, - [PJT_CANCEL_LEAVE] = {DUAL_ENTRY(_thr_cancel_leave)}, + [PJT_CANCEL_ENTER] = {DUAL_ENTRY(_Tthr_cancel_enter)}, + [PJT_CANCEL_LEAVE] = {DUAL_ENTRY(_Tthr_cancel_leave)}, [PJT_MUTEX_CONSISTENT] = {DUAL_ENTRY(_Tthr_mutex_consistent)}, [PJT_MUTEXATTR_GETROBUST] = {DUAL_ENTRY(_thr_mutexattr_getrobust)}, [PJT_MUTEXATTR_SETROBUST] = {DUAL_ENTRY(_thr_mutexattr_setrobust)}, Modified: stable/12/lib/libthr/thread/thr_private.h ============================================================================== --- stable/12/lib/libthr/thread/thr_private.h Sat Aug 24 01:28:39 2019 (r351450) +++ stable/12/lib/libthr/thread/thr_private.h Sat Aug 24 12:51:46 2019 (r351451) @@ -1028,6 +1028,8 @@ void __thr_cleanup_pop_imp(int); void _thr_cleanup_push(void (*)(void *), void *); void _thr_cleanup_pop(int); void _Tthr_testcancel(void); +void _Tthr_cancel_enter(int); +void _Tthr_cancel_leave(int); int _thr_cancel(pthread_t); int _thr_atfork(void (*)(void), void (*)(void), void (*)(void)); int _thr_attr_destroy(pthread_attr_t *); From owner-svn-src-all@freebsd.org Sat Aug 24 13:26:36 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0BDA1C0329; Sat, 24 Aug 2019 13:26:36 +0000 (UTC) (envelope-from ganbold@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46FzZ36WdCz3Fm3; Sat, 24 Aug 2019 13:26:35 +0000 (UTC) (envelope-from ganbold@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BB6115C40; Sat, 24 Aug 2019 13:26:35 +0000 (UTC) (envelope-from ganbold@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7ODQZ4A055339; Sat, 24 Aug 2019 13:26:35 GMT (envelope-from ganbold@FreeBSD.org) Received: (from ganbold@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7ODQZjm055336; Sat, 24 Aug 2019 13:26:35 GMT (envelope-from ganbold@FreeBSD.org) Message-Id: <201908241326.x7ODQZjm055336@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ganbold set sender to ganbold@FreeBSD.org using -f From: Ganbold Tsagaankhuu Date: Sat, 24 Aug 2019 13:26:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351452 - in head/sys: dts/arm/overlays modules/dtb/allwinner X-SVN-Group: head X-SVN-Commit-Author: ganbold X-SVN-Commit-Paths: in head/sys: dts/arm/overlays modules/dtb/allwinner X-SVN-Commit-Revision: 351452 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 13:26:36 -0000 Author: ganbold Date: Sat Aug 24 13:26:34 2019 New Revision: 351452 URL: https://svnweb.freebsd.org/changeset/base/351452 Log: dtso: allwinner: Add an overlay for H3 thermal node Reviewed by: manu Added: head/sys/dts/arm/overlays/sun8i-h3-ths.dtso (contents, props changed) Modified: head/sys/dts/arm/overlays/sun8i-h3-sid.dtso head/sys/modules/dtb/allwinner/Makefile Modified: head/sys/dts/arm/overlays/sun8i-h3-sid.dtso ============================================================================== --- head/sys/dts/arm/overlays/sun8i-h3-sid.dtso Sat Aug 24 12:51:46 2019 (r351451) +++ head/sys/dts/arm/overlays/sun8i-h3-sid.dtso Sat Aug 24 13:26:34 2019 (r351452) @@ -10,5 +10,10 @@ compatible = "allwinner,sun8i-h3-sid"; reg = <0x1c14000 0x400>; status = "okay"; + + /* Data cells */ + ths_calib: calib@234 { + reg = <0x234 0x2>; + }; }; }; Added: head/sys/dts/arm/overlays/sun8i-h3-ths.dtso ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dts/arm/overlays/sun8i-h3-ths.dtso Sat Aug 24 13:26:34 2019 (r351452) @@ -0,0 +1,27 @@ +/dts-v1/; +/plugin/; + +#include +#include +#include + +/ { + compatible = "allwinner,sun8i-h3"; +}; + +&{/soc} { + ths: thermal_sensor@1c25000 { + compatible = "allwinner,sun8i-h3-ths"; + reg = <0x01c25000 0x100>; + interrupts = ; + clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>; + clock-names = "apb", "ths"; + resets = <&ccu RST_BUS_THS>; + reset-names = "apb"; + #thermal-sensor-cells = <0>; + status = "okay"; + + nvmem-cells = <&ths_calib>; + nvmem-cell-names = "ths-calib"; + }; +}; Modified: head/sys/modules/dtb/allwinner/Makefile ============================================================================== --- head/sys/modules/dtb/allwinner/Makefile Sat Aug 24 12:51:46 2019 (r351451) +++ head/sys/modules/dtb/allwinner/Makefile Sat Aug 24 13:26:34 2019 (r351452) @@ -25,7 +25,8 @@ DTS= \ DTSO= sun8i-a83t-sid.dtso \ sun8i-h3-i2c0.dtso \ - sun8i-h3-sid.dtso + sun8i-h3-sid.dtso \ + sun8i-h3-ths.dtso LINKS= \ ${DTBDIR}/sun4i-a10-cubieboard.dtb ${DTBDIR}/cubieboard.dtb \ From owner-svn-src-all@freebsd.org Sat Aug 24 14:29:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 06EE7C1648; Sat, 24 Aug 2019 14:29:14 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46G0yK6M3bz3Hsd; Sat, 24 Aug 2019 14:29:13 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BBC92671E; Sat, 24 Aug 2019 14:29:13 +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 x7OETDqq090608; Sat, 24 Aug 2019 14:29:13 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7OETDMA090607; Sat, 24 Aug 2019 14:29:13 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908241429.x7OETDMA090607@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 24 Aug 2019 14:29:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351453 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 351453 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 14:29:14 -0000 Author: kib Date: Sat Aug 24 14:29:13 2019 New Revision: 351453 URL: https://svnweb.freebsd.org/changeset/base/351453 Log: Make stack grow use the same gap as stack create. Store stack_guard_page * PAGE_SIZE into the gap->next_read field at the time of the stack creation. This makes the used guard size consistent between stack creation and stack grow time. Suggested by: alc Reviewed by: alc, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D21384 Modified: head/sys/vm/vm_map.c Modified: head/sys/vm/vm_map.c ============================================================================== --- head/sys/vm/vm_map.c Sat Aug 24 13:26:34 2019 (r351452) +++ head/sys/vm/vm_map.c Sat Aug 24 14:29:13 2019 (r351453) @@ -4189,8 +4189,20 @@ vm_map_stack_locked(vm_map_t map, vm_offset_t addrbos, rv = vm_map_insert(map, NULL, 0, gap_bot, gap_top, VM_PROT_NONE, VM_PROT_NONE, MAP_CREATE_GUARD | (orient == MAP_STACK_GROWS_DOWN ? MAP_CREATE_STACK_GAP_DN : MAP_CREATE_STACK_GAP_UP)); - if (rv != KERN_SUCCESS) + if (rv == KERN_SUCCESS) { + /* + * Gap can never successfully handle a fault, so + * read-ahead logic is never used for it. Re-use + * next_read of the gap entry to store + * stack_guard_page for vm_map_growstack(). + */ + if (orient == MAP_STACK_GROWS_DOWN) + new_entry->prev->next_read = sgp; + else + new_entry->next->next_read = sgp; + } else { (void)vm_map_delete(map, bot, top); + } return (rv); } @@ -4231,7 +4243,6 @@ vm_map_growstack(vm_map_t map, vm_offset_t addr, vm_ma MPASS(!map->system_map); - guard = stack_guard_page * PAGE_SIZE; lmemlim = lim_cur(curthread, RLIMIT_MEMLOCK); stacklim = lim_cur(curthread, RLIMIT_STACK); vmemlim = lim_cur(curthread, RLIMIT_VMEM); @@ -4258,6 +4269,7 @@ retry: } else { return (KERN_FAILURE); } + guard = gap_entry->next_read; max_grow = gap_entry->end - gap_entry->start; if (guard > max_grow) return (KERN_NO_SPACE); From owner-svn-src-all@freebsd.org Sat Aug 24 15:22:19 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 768CFC2734; Sat, 24 Aug 2019 15:22:19 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46G27b2ZNvz3Kx3; Sat, 24 Aug 2019 15:22:19 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3A07B71DF; Sat, 24 Aug 2019 15:22:19 +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 x7OFMJjN024838; Sat, 24 Aug 2019 15:22:19 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7OFMJD3024837; Sat, 24 Aug 2019 15:22:19 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908241522.x7OFMJD3024837@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 24 Aug 2019 15:22:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351454 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 351454 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 15:22:19 -0000 Author: kib Date: Sat Aug 24 15:22:18 2019 New Revision: 351454 URL: https://svnweb.freebsd.org/changeset/base/351454 Log: Remove unecessary VM_ALLOC_ZERO from allocation of the domain-local page for pcpu. Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D21320 Modified: head/sys/amd64/amd64/mp_machdep.c Modified: head/sys/amd64/amd64/mp_machdep.c ============================================================================== --- head/sys/amd64/amd64/mp_machdep.c Sat Aug 24 14:29:13 2019 (r351453) +++ head/sys/amd64/amd64/mp_machdep.c Sat Aug 24 15:22:18 2019 (r351454) @@ -401,7 +401,7 @@ mp_realloc_pcpu(int cpuid, int domain) if (_vm_phys_domain(pmap_kextract(oa)) == domain) return; m = vm_page_alloc_domain(NULL, 0, domain, - VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ | VM_ALLOC_ZERO); + VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); na = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)); pagecopy((void *)oa, (void *)na); pmap_enter(kernel_pmap, oa, m, VM_PROT_READ | VM_PROT_WRITE, 0, 0); From owner-svn-src-all@freebsd.org Sat Aug 24 15:25:54 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EDC36C282A; Sat, 24 Aug 2019 15:25:54 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46G2Ck53djz3L7X; Sat, 24 Aug 2019 15:25:54 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8BB657205; Sat, 24 Aug 2019 15:25:54 +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 x7OFPsjD026011; Sat, 24 Aug 2019 15:25:54 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7OFPss0026010; Sat, 24 Aug 2019 15:25:54 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908241525.x7OFPss0026010@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 24 Aug 2019 15:25:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351455 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 351455 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 15:25:55 -0000 Author: kib Date: Sat Aug 24 15:25:53 2019 New Revision: 351455 URL: https://svnweb.freebsd.org/changeset/base/351455 Log: Style. Modified: head/sys/amd64/amd64/mp_machdep.c Modified: head/sys/amd64/amd64/mp_machdep.c ============================================================================== --- head/sys/amd64/amd64/mp_machdep.c Sat Aug 24 15:22:18 2019 (r351454) +++ head/sys/amd64/amd64/mp_machdep.c Sat Aug 24 15:25:53 2019 (r351455) @@ -510,7 +510,7 @@ native_start_all_aps(void) outb(CMOS_DATA, mpbiosreason); /* number of APs actually started */ - return mp_naps; + return (mp_naps); } From owner-svn-src-all@freebsd.org Sat Aug 24 15:28:41 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 66042C28EA; Sat, 24 Aug 2019 15:28:41 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46G2Gx1l0vz3LGR; Sat, 24 Aug 2019 15:28: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 18F8B7206; Sat, 24 Aug 2019 15:28:41 +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 x7OFSeMF026183; Sat, 24 Aug 2019 15:28:40 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7OFSemm026182; Sat, 24 Aug 2019 15:28:40 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908241528.x7OFSemm026182@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 24 Aug 2019 15:28:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351456 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 351456 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 15:28:41 -0000 Author: kib Date: Sat Aug 24 15:28:40 2019 New Revision: 351456 URL: https://svnweb.freebsd.org/changeset/base/351456 Log: Do not constrain allocations for doublefault, boot, and mce stacks. All these stacks are used only once (doublefault, boot) or very rare (mce). Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D21320 Modified: head/sys/amd64/amd64/mp_machdep.c Modified: head/sys/amd64/amd64/mp_machdep.c ============================================================================== --- head/sys/amd64/amd64/mp_machdep.c Sat Aug 24 15:25:53 2019 (r351455) +++ head/sys/amd64/amd64/mp_machdep.c Sat Aug 24 15:28:40 2019 (r351456) @@ -475,13 +475,11 @@ native_start_all_aps(void) domain = acpi_pxm_get_cpu_locality(apic_id); #endif /* allocate and set up an idle stack data page */ - bootstacks[cpu] = (void *)kmem_malloc_domainset( - DOMAINSET_FIXED(domain), kstack_pages * PAGE_SIZE, + bootstacks[cpu] = (void *)kmem_malloc(kstack_pages * PAGE_SIZE, M_WAITOK | M_ZERO); - doublefault_stack = (char *)kmem_malloc_domainset( - DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); - mce_stack = (char *)kmem_malloc_domainset( - DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); + doublefault_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | + M_ZERO); + mce_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | M_ZERO); nmi_stack = (char *)kmem_malloc_domainset( DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); dbg_stack = (char *)kmem_malloc_domainset( From owner-svn-src-all@freebsd.org Sat Aug 24 15:31:32 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E332C2A1D; Sat, 24 Aug 2019 15:31:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46G2LD2pYJz3LSV; Sat, 24 Aug 2019 15:31:32 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 41DF47251; Sat, 24 Aug 2019 15:31:32 +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 x7OFVWIC028539; Sat, 24 Aug 2019 15:31:32 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7OFVVOs028533; Sat, 24 Aug 2019 15:31:31 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908241531.x7OFVVOs028533@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 24 Aug 2019 15:31:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351457 - in head/sys/amd64: amd64 include X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head/sys/amd64: amd64 include X-SVN-Commit-Revision: 351457 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 15:31:32 -0000 Author: kib Date: Sat Aug 24 15:31:31 2019 New Revision: 351457 URL: https://svnweb.freebsd.org/changeset/base/351457 Log: amd64: rework PCPU allocation Move pcpu KVA out of .bss into dynamically allocated VA at pmap_bootstrap(). This avoids demoting superpage mapping .data/.bss. Also it makes possible to use pmap_qenter() for installation of domain-local pcpu page on NUMA configs. Refactor pcpu and IST initialization by moving it to helper functions. Reviewed by: markj Tested by: pho Discussed with: jeff Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D21320 Modified: head/sys/amd64/amd64/machdep.c head/sys/amd64/amd64/mp_machdep.c head/sys/amd64/amd64/pmap.c head/sys/amd64/include/counter.h head/sys/amd64/include/md_var.h Modified: head/sys/amd64/amd64/machdep.c ============================================================================== --- head/sys/amd64/amd64/machdep.c Sat Aug 24 15:28:40 2019 (r351456) +++ head/sys/amd64/amd64/machdep.c Sat Aug 24 15:31:31 2019 (r351457) @@ -215,7 +215,8 @@ struct kva_md_info kmi; static struct trapframe proc0_tf; struct region_descriptor r_gdt, r_idt; -struct pcpu __pcpu[MAXCPU]; +struct pcpu *__pcpu; +struct pcpu temp_bsp_pcpu; struct mtx icu_lock; @@ -1543,13 +1544,68 @@ amd64_conf_fast_syscall(void) wrmsr(MSR_SF_MASK, PSL_NT | PSL_T | PSL_I | PSL_C | PSL_D | PSL_AC); } +void +amd64_bsp_pcpu_init1(struct pcpu *pc) +{ + + PCPU_SET(prvspace, pc); + PCPU_SET(curthread, &thread0); + PCPU_SET(tssp, &common_tss[0]); + PCPU_SET(commontssp, &common_tss[0]); + PCPU_SET(tss, (struct system_segment_descriptor *)&gdt[GPROC0_SEL]); + PCPU_SET(ldt, (struct system_segment_descriptor *)&gdt[GUSERLDT_SEL]); + PCPU_SET(fs32p, &gdt[GUFS32_SEL]); + PCPU_SET(gs32p, &gdt[GUGS32_SEL]); +} + +void +amd64_bsp_pcpu_init2(uint64_t rsp0) +{ + + PCPU_SET(rsp0, rsp0); + PCPU_SET(pti_rsp0, ((vm_offset_t)PCPU_PTR(pti_stack) + + PC_PTI_STACK_SZ * sizeof(uint64_t)) & ~0xful); + PCPU_SET(curpcb, thread0.td_pcb); +} + +void +amd64_bsp_ist_init(struct pcpu *pc) +{ + struct nmi_pcpu *np; + + /* doublefault stack space, runs on ist1 */ + common_tss[0].tss_ist1 = (long)&dblfault_stack[sizeof(dblfault_stack)]; + + /* + * NMI stack, runs on ist2. The pcpu pointer is stored just + * above the start of the ist2 stack. + */ + np = ((struct nmi_pcpu *)&nmi0_stack[sizeof(nmi0_stack)]) - 1; + np->np_pcpu = (register_t)pc; + common_tss[0].tss_ist2 = (long)np; + + /* + * MC# stack, runs on ist3. The pcpu pointer is stored just + * above the start of the ist3 stack. + */ + np = ((struct nmi_pcpu *)&mce0_stack[sizeof(mce0_stack)]) - 1; + np->np_pcpu = (register_t)pc; + common_tss[0].tss_ist3 = (long)np; + + /* + * DB# stack, runs on ist4. + */ + np = ((struct nmi_pcpu *)&dbg0_stack[sizeof(dbg0_stack)]) - 1; + np->np_pcpu = (register_t)pc; + common_tss[0].tss_ist4 = (long)np; +} + u_int64_t hammer_time(u_int64_t modulep, u_int64_t physfree) { caddr_t kmdp; int gsel_tss, x; struct pcpu *pc; - struct nmi_pcpu *np; struct xstate_hdr *xhdr; u_int64_t rsp0; char *env; @@ -1623,7 +1679,7 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) r_gdt.rd_limit = NGDT * sizeof(gdt[0]) - 1; r_gdt.rd_base = (long) gdt; lgdt(&r_gdt); - pc = &__pcpu[0]; + pc = &temp_bsp_pcpu; wrmsr(MSR_FSBASE, 0); /* User value */ wrmsr(MSR_GSBASE, (u_int64_t)pc); @@ -1632,15 +1688,8 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) pcpu_init(pc, 0, sizeof(struct pcpu)); dpcpu_init((void *)(physfree + KERNBASE), 0); physfree += DPCPU_SIZE; - PCPU_SET(prvspace, pc); - PCPU_SET(curthread, &thread0); + amd64_bsp_pcpu_init1(pc); /* Non-late cninit() and printf() can be moved up to here. */ - PCPU_SET(tssp, &common_tss[0]); - PCPU_SET(commontssp, &common_tss[0]); - PCPU_SET(tss, (struct system_segment_descriptor *)&gdt[GPROC0_SEL]); - PCPU_SET(ldt, (struct system_segment_descriptor *)&gdt[GUSERLDT_SEL]); - PCPU_SET(fs32p, &gdt[GUFS32_SEL]); - PCPU_SET(gs32p, &gdt[GUGS32_SEL]); /* * Initialize mutexes. @@ -1729,31 +1778,7 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) finishidentcpu(); /* Final stage of CPU initialization */ initializecpu(); /* Initialize CPU registers */ - /* doublefault stack space, runs on ist1 */ - common_tss[0].tss_ist1 = (long)&dblfault_stack[sizeof(dblfault_stack)]; - - /* - * NMI stack, runs on ist2. The pcpu pointer is stored just - * above the start of the ist2 stack. - */ - np = ((struct nmi_pcpu *) &nmi0_stack[sizeof(nmi0_stack)]) - 1; - np->np_pcpu = (register_t) pc; - common_tss[0].tss_ist2 = (long) np; - - /* - * MC# stack, runs on ist3. The pcpu pointer is stored just - * above the start of the ist3 stack. - */ - np = ((struct nmi_pcpu *) &mce0_stack[sizeof(mce0_stack)]) - 1; - np->np_pcpu = (register_t) pc; - common_tss[0].tss_ist3 = (long) np; - - /* - * DB# stack, runs on ist4. - */ - np = ((struct nmi_pcpu *) &dbg0_stack[sizeof(dbg0_stack)]) - 1; - np->np_pcpu = (register_t) pc; - common_tss[0].tss_ist4 = (long) np; + amd64_bsp_ist_init(pc); /* Set the IO permission bitmap (empty due to tss seg limit) */ common_tss[0].tss_iobase = sizeof(struct amd64tss) + IOPERM_BITMAP_SIZE; @@ -1842,10 +1867,7 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) /* Ensure the stack is aligned to 16 bytes */ rsp0 &= ~0xFul; common_tss[0].tss_rsp0 = rsp0; - PCPU_SET(rsp0, rsp0); - PCPU_SET(pti_rsp0, ((vm_offset_t)PCPU_PTR(pti_stack) + - PC_PTI_STACK_SZ * sizeof(uint64_t)) & ~0xful); - PCPU_SET(curpcb, thread0.td_pcb); + amd64_bsp_pcpu_init2(rsp0); /* transfer to user mode */ Modified: head/sys/amd64/amd64/mp_machdep.c ============================================================================== --- head/sys/amd64/amd64/mp_machdep.c Sat Aug 24 15:28:40 2019 (r351456) +++ head/sys/amd64/amd64/mp_machdep.c Sat Aug 24 15:31:31 2019 (r351457) @@ -94,7 +94,7 @@ __FBSDID("$FreeBSD$"); #define AP_BOOTPT_SZ (PAGE_SIZE * 3) -extern struct pcpu __pcpu[]; +extern struct pcpu *__pcpu; /* Temporary variables for init_secondary() */ char *doublefault_stack; @@ -404,7 +404,7 @@ mp_realloc_pcpu(int cpuid, int domain) VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); na = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)); pagecopy((void *)oa, (void *)na); - pmap_enter(kernel_pmap, oa, m, VM_PROT_READ | VM_PROT_WRITE, 0, 0); + pmap_qenter((vm_offset_t)&__pcpu[cpuid], &m, 1); /* XXX old pcpu page leaked. */ } #endif Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Sat Aug 24 15:28:40 2019 (r351456) +++ head/sys/amd64/amd64/pmap.c Sat Aug 24 15:31:31 2019 (r351457) @@ -443,6 +443,10 @@ static pml4_entry_t *pti_pml4; static vm_pindex_t pti_pg_idx; static bool pti_finalized; +extern struct pcpu *__pcpu; +extern struct pcpu temp_bsp_pcpu; +extern pt_entry_t *pcpu_pte; + struct pmap_pkru_range { struct rs_el pkru_rs_el; u_int pkru_keyidx; @@ -1608,8 +1612,8 @@ void pmap_bootstrap(vm_paddr_t *firstaddr) { vm_offset_t va; - pt_entry_t *pte; - uint64_t cr4; + pt_entry_t *pte, *pcpu_pte; + uint64_t cr4, pcpu_phys; u_long res; int i; @@ -1624,6 +1628,8 @@ pmap_bootstrap(vm_paddr_t *firstaddr) */ create_pagetables(firstaddr); + pcpu_phys = allocpages(firstaddr, MAXCPU); + /* * Add a physical memory segment (vm_phys_seg) corresponding to the * preallocated kernel page table pages so that vm_page structures @@ -1691,7 +1697,20 @@ pmap_bootstrap(vm_paddr_t *firstaddr) SYSMAP(caddr_t, CMAP1, crashdumpmap, MAXDUMPPGS) CADDR1 = crashdumpmap; + SYSMAP(struct pcpu *, pcpu_pte, __pcpu, MAXCPU); virtual_avail = va; + + for (i = 0; i < MAXCPU; i++) { + pcpu_pte[i] = (pcpu_phys + ptoa(i)) | X86_PG_V | X86_PG_RW | + pg_g | pg_nx | X86_PG_M | X86_PG_A; + } + STAILQ_INIT(&cpuhead); + wrmsr(MSR_GSBASE, (uint64_t)&__pcpu[0]); + pcpu_init(&__pcpu[0], 0, sizeof(struct pcpu)); + amd64_bsp_pcpu_init1(&__pcpu[0]); + amd64_bsp_ist_init(&__pcpu[0]); + __pcpu[0].pc_dynamic = temp_bsp_pcpu.pc_dynamic; + __pcpu[0].pc_acpi_id = temp_bsp_pcpu.pc_acpi_id; /* * Initialize the PAT MSR. Modified: head/sys/amd64/include/counter.h ============================================================================== --- head/sys/amd64/include/counter.h Sat Aug 24 15:28:40 2019 (r351456) +++ head/sys/amd64/include/counter.h Sat Aug 24 15:31:31 2019 (r351457) @@ -33,9 +33,10 @@ #include -extern struct pcpu __pcpu[]; +extern struct pcpu *__pcpu; +extern struct pcpu temp_bsp_pcpu; -#define EARLY_COUNTER &__pcpu[0].pc_early_dummy_counter +#define EARLY_COUNTER &temp_bsp_pcpu.pc_early_dummy_counter #define counter_enter() do {} while (0) #define counter_exit() do {} while (0) Modified: head/sys/amd64/include/md_var.h ============================================================================== --- head/sys/amd64/include/md_var.h Sat Aug 24 15:28:40 2019 (r351456) +++ head/sys/amd64/include/md_var.h Sat Aug 24 15:31:31 2019 (r351457) @@ -58,6 +58,9 @@ struct sysentvec; void amd64_conf_fast_syscall(void); void amd64_db_resume_dbreg(void); void amd64_lower_shared_page(struct sysentvec *); +void amd64_bsp_pcpu_init1(struct pcpu *pc); +void amd64_bsp_pcpu_init2(uint64_t rsp0); +void amd64_bsp_ist_init(struct pcpu *pc); void amd64_syscall(struct thread *td, int traced); void amd64_syscall_ret_flush_l1d(int error); void amd64_syscall_ret_flush_l1d_recalc(void); From owner-svn-src-all@freebsd.org Sat Aug 24 15:38:08 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 00C11C2D0C; Sat, 24 Aug 2019 15:38:07 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46G2Tq63pzz3Lp8; Sat, 24 Aug 2019 15:38:07 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ADBDC73C3; Sat, 24 Aug 2019 15:38:07 +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 x7OFc7uu032061; Sat, 24 Aug 2019 15:38:07 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7OFc7Uf032059; Sat, 24 Aug 2019 15:38:07 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201908241538.x7OFc7Uf032059@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 24 Aug 2019 15:38:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351458 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 351458 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 15:38:08 -0000 Author: kib Date: Sat Aug 24 15:38:07 2019 New Revision: 351458 URL: https://svnweb.freebsd.org/changeset/base/351458 Log: Add nvdimm(4) man page. Reviewed by: emaste Discussed with: scottl, scottph Sponsored by: The FreeBSD Foundation MFC after: 3 days Differential revision: https://reviews.freebsd.org/D21386 Added: head/share/man/man4/nvdimm.4 (contents, props changed) Modified: head/share/man/man4/Makefile Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Sat Aug 24 15:31:31 2019 (r351457) +++ head/share/man/man4/Makefile Sat Aug 24 15:38:07 2019 (r351458) @@ -379,6 +379,7 @@ MAN= aac.4 \ null.4 \ numa.4 \ ${_nvd.4} \ + ${_nvdimm.4} \ ${_nvme.4} \ ${_nvram.4} \ ${_nvram2env.4} \ @@ -825,6 +826,7 @@ _xnb.4= xnb.4 .if ${MACHINE_CPUARCH} == "amd64" _ioat.4= ioat.4 +_nvdimm.4= nvdimm.4 _qlxge.4= qlxge.4 _qlxgb.4= qlxgb.4 _qlxgbe.4= qlxgbe.4 Added: head/share/man/man4/nvdimm.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/nvdimm.4 Sat Aug 24 15:38:07 2019 (r351458) @@ -0,0 +1,122 @@ +.\" Copyright (c) 2019 The FreeBSD Foundation, Inc. +.\" +.\" This documentation was written by +.\" Konstantin Belousov under sponsorship +.\" from the FreeBSD Foundation. +.\" +.\" 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 AUTHORS 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 AUTHORS 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$ +.\" +.Dd August 23, 2019 +.Dt NVDIMM 4 +.Os +.Sh NAME +.Nm nvdimm +.Nd ACPI NVDIMM driver +.Sh SYNOPSIS +To load the driver as a module at boot, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +nvdimm_load="YES" +.Ed +.Sh DESCRIPTION +.Bf -symbolic +Note: +The +.Nm +driver is under development and has some important limitations +described below. +.Ef +.Pp +The +.Nm +driver provides access to Non-Volatile DIMM (NVDIMM) persistent memory +devices, which are ACPI-enumerated under the root NVDIMM device +with a +.Va _HID +of +.Dv ACPI0012 +and in the +.Dv NFIT +table. +.Pp +For each System Physical Address (SPA) Range described by NFIT, a +device node +.Pa /dev/nvdimm_spaNNN +is created, where +.Dv NNN +is the SPA position in the table. +The node can be used to +.Xr read 2 , +.Xr write 2 , +or +.Xr mmap 2 +the device. +.Pp +Also, for each SPA, the geom provider +.Pa spaNNN +is created, which can be used to create a conventional filesystem (e.g. +by +.Xr newfs 8 ) +and +.Xr mount 8 +it as any storage volume. +Content accessible by +.Pa /dev/nvdimm_spaNNN +and +.Pa /dev/spaNNN +is coherent. +.Sh SEE ALSO +.Xr ACPI 4 , +.Xr GEOM 4 , +.Xr geom 8 , +.Xr mount 8 , +.Xr newfs 8 , +.Xr disk 9 +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 12.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was originally written by +.An Konstantin Belousov Aq Mt kib@FreeBSD.org , +and then updated by +.An D. Scott Phillips Aq Mt scottph@FreeBSD.org . +.Sh BUGS +The +.Nm +driver does not utilize the Block Window interface, so if the write to +NVDIMM was interrupted due to a system crash or power outage, +the corresponding page might be left in partially updated state. +.Pp +There is no support for Device-Specific Methods (DSM), used to report and +control the device health and wearing. +.Pp +The driver depends on the +.Xr pmap_largemap 9 +pmap interface, which is currently only implemented on amd64. +The interface can be only reasonable implemented on 64bit architectures. From owner-svn-src-all@freebsd.org Sat Aug 24 15:49:55 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8FF70C3059; Sat, 24 Aug 2019 15:49:55 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46G2lR33dzz3MH5; Sat, 24 Aug 2019 15:49:55 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io1-f47.google.com with SMTP id z3so27286372iog.0; Sat, 24 Aug 2019 08:49:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=gmg/nTQ5GrmqYIumAX4MvQzmqy52LKIF2gYgIeuPnII=; b=InJIhVsp2q7Uug+pDfiOpOLNQmfdLMW+4TioJ/k4pv5ilF/DkTsqvq81wdkBYTaN0I 8d7hp+JpIize7Y/TGCVZ5fdBKwhGzW8mTKUeL4LRNzF2pQ2qtlcogxcnwZuJdgrRnMQk 9nIkp7YYB+uZfMAnLbQGHidxtBvJXkXy8IzcOdIw0dEsKr+bfQ+9h1N8RyECp4k4vbxn fbMlTdJjqtKNNtFO9iiteQhNo6SNuU+9LAHl3zC031uUCo49+PSC62GaD55EXQLM8vMf CoAPcL2Bs0G6gn4+EKjCZ0ZZlGe41+h4zsUYtduCeHSN7lV9C3j5Jm9HVmsScP0PnBt+ M/+g== X-Gm-Message-State: APjAAAW/YAzKXHStVbMAov7aKSGr+80A3q79ZmQrRk2dM2AEtAW4WexR 1yt6SqQlrm/dVZxR6kEKGHWzEAkz X-Google-Smtp-Source: APXvYqzSaa1PVWFtuRaUSFsqZK58eSmnBDyIX+30xF2+sLTssMHXSKbVTrKSQuOrRVo38++/G74ZVw== X-Received: by 2002:a05:6638:3af:: with SMTP id z15mr10156907jap.39.1566661793913; Sat, 24 Aug 2019 08:49:53 -0700 (PDT) Received: from mail-io1-f50.google.com (mail-io1-f50.google.com. [209.85.166.50]) by smtp.gmail.com with ESMTPSA id w6sm5040912iob.29.2019.08.24.08.49.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 24 Aug 2019 08:49:53 -0700 (PDT) Received: by mail-io1-f50.google.com with SMTP id p12so27274111iog.5; Sat, 24 Aug 2019 08:49:53 -0700 (PDT) X-Received: by 2002:a6b:f216:: with SMTP id q22mr2637356ioh.65.1566661793111; Sat, 24 Aug 2019 08:49:53 -0700 (PDT) MIME-Version: 1.0 References: <201908241528.x7OFSemm026182@repo.freebsd.org> In-Reply-To: <201908241528.x7OFSemm026182@repo.freebsd.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Sat, 24 Aug 2019 08:49:42 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r351456 - head/sys/amd64/amd64 To: Konstantin Belousov Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 46G2lR33dzz3MH5 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.977,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 15:49:55 -0000 Hi Konstantin, What is the motivation for this change? The commit message doesn't really describe why it was done. Thanks, Conrad On Sat, Aug 24, 2019 at 8:28 AM Konstantin Belousov wrote: > > Author: kib > Date: Sat Aug 24 15:28:40 2019 > New Revision: 351456 > URL: https://svnweb.freebsd.org/changeset/base/351456 > > Log: > Do not constrain allocations for doublefault, boot, and mce stacks. > > All these stacks are used only once (doublefault, boot) or very rare > (mce). > > Reviewed by: markj > Tested by: pho > Sponsored by: The FreeBSD Foundation > Differential revision: https://reviews.freebsd.org/D21320 > > Modified: > head/sys/amd64/amd64/mp_machdep.c > > Modified: head/sys/amd64/amd64/mp_machdep.c > ============================================================================== > --- head/sys/amd64/amd64/mp_machdep.c Sat Aug 24 15:25:53 2019 (r351455) > +++ head/sys/amd64/amd64/mp_machdep.c Sat Aug 24 15:28:40 2019 (r351456) > @@ -475,13 +475,11 @@ native_start_all_aps(void) > domain = acpi_pxm_get_cpu_locality(apic_id); > #endif > /* allocate and set up an idle stack data page */ > - bootstacks[cpu] = (void *)kmem_malloc_domainset( > - DOMAINSET_FIXED(domain), kstack_pages * PAGE_SIZE, > + bootstacks[cpu] = (void *)kmem_malloc(kstack_pages * PAGE_SIZE, > M_WAITOK | M_ZERO); > - doublefault_stack = (char *)kmem_malloc_domainset( > - DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); > - mce_stack = (char *)kmem_malloc_domainset( > - DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); > + doublefault_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | > + M_ZERO); > + mce_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | M_ZERO); > nmi_stack = (char *)kmem_malloc_domainset( > DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); > dbg_stack = (char *)kmem_malloc_domainset( > From owner-svn-src-all@freebsd.org Sat Aug 24 15:50:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5D538C30C6; Sat, 24 Aug 2019 15:50:14 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46G2lp1Qn6z3MPY; Sat, 24 Aug 2019 15:50:14 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 128C2759A; Sat, 24 Aug 2019 15:50:14 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7OFoDQE037927; Sat, 24 Aug 2019 15:50:13 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7OFoD80037926; Sat, 24 Aug 2019 15:50:13 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <201908241550.x7OFoD80037926@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Sat, 24 Aug 2019 15:50:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351459 - head/usr.bin/last X-SVN-Group: head X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: head/usr.bin/last X-SVN-Commit-Revision: 351459 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 15:50:14 -0000 Author: eugen Date: Sat Aug 24 15:50:13 2019 New Revision: 351459 URL: https://svnweb.freebsd.org/changeset/base/351459 Log: last(1): correction after r351413 Make that change no-op for C/POSIX locale just like for UTF-8 that it superset of US-ASCII. MFC after: 2 weeks X-MFC-With: r351413 Modified: head/usr.bin/last/last.c Modified: head/usr.bin/last/last.c ============================================================================== --- head/usr.bin/last/last.c Sat Aug 24 15:38:07 2019 (r351458) +++ head/usr.bin/last/last.c Sat Aug 24 15:50:13 2019 (r351459) @@ -92,8 +92,8 @@ static const char *crmsg; /* cause of last reboot */ static time_t currentout; /* current logout value */ static long maxrec; /* records to display */ static const char *file = NULL; /* utx.log file */ +static int noctfix = 0; /* locale is C or UTF-8 */ static int sflag = 0; /* show delta in seconds */ -static int utf8flag; /* current locale is UTF-8 */ static int width = 5; /* show seconds in delta */ static int yflag; /* show year */ static int d_first; @@ -120,7 +120,7 @@ ctf(const char *fmt) { const char *src, *end; char *dst; - if (utf8flag) + if (noctfix) return (fmt); end = buf + sizeof(buf); @@ -158,7 +158,9 @@ main(int argc, char *argv[]) d_first = (*nl_langinfo(D_MD_ORDER) == 'd'); (void) setlocale(LC_CTYPE, ""); - utf8flag = (strcmp(nl_langinfo(CODESET), "UTF-8") == 0); + p = nl_langinfo(CODESET); + if (strcmp (p, "UTF-8") == 0 || strcmp (p, "US-ASCII") == 0) + noctfix = 1; argc = xo_parse_args(argc, argv); if (argc < 0) From owner-svn-src-all@freebsd.org Sat Aug 24 16:15:19 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 11E75C39D4; Sat, 24 Aug 2019 16:15:19 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46G3Jk5tqmz3NTV; Sat, 24 Aug 2019 16:15:18 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id x7OGF4gp011064 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Sat, 24 Aug 2019 19:15:07 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua x7OGF4gp011064 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id x7OGF3rU011063; Sat, 24 Aug 2019 19:15:03 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 24 Aug 2019 19:15:03 +0300 From: Konstantin Belousov To: Conrad Meyer Cc: src-committers , svn-src-all , svn-src-head Subject: Re: svn commit: r351456 - head/sys/amd64/amd64 Message-ID: <20190824161503.GA71821@kib.kiev.ua> References: <201908241528.x7OFSemm026182@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.12.1 (2019-06-15) X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tom.home X-Rspamd-Queue-Id: 46G3Jk5tqmz3NTV X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.91 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.91)[-0.910,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 16:15:19 -0000 On Sat, Aug 24, 2019 at 08:49:42AM -0700, Conrad Meyer wrote: > Hi Konstantin, > > What is the motivation for this change? The commit message doesn't > really describe why it was done. Really it does. There is no point to request allocations for e.g. doublefault stack to be at the local domain, because this stack is only used once. Doublefault is definitely a machine halt situation, it does not matter if it generates inter-socket traffic to handle. Same for boot stacks, and for mce. The change avoids unnecessary constraints. > > Thanks, > Conrad > > On Sat, Aug 24, 2019 at 8:28 AM Konstantin Belousov wrote: > > > > Author: kib > > Date: Sat Aug 24 15:28:40 2019 > > New Revision: 351456 > > URL: https://svnweb.freebsd.org/changeset/base/351456 > > > > Log: > > Do not constrain allocations for doublefault, boot, and mce stacks. > > > > All these stacks are used only once (doublefault, boot) or very rare > > (mce). > > > > Reviewed by: markj > > Tested by: pho > > Sponsored by: The FreeBSD Foundation > > Differential revision: https://reviews.freebsd.org/D21320 > > > > Modified: > > head/sys/amd64/amd64/mp_machdep.c > > > > Modified: head/sys/amd64/amd64/mp_machdep.c > > ============================================================================== > > --- head/sys/amd64/amd64/mp_machdep.c Sat Aug 24 15:25:53 2019 (r351455) > > +++ head/sys/amd64/amd64/mp_machdep.c Sat Aug 24 15:28:40 2019 (r351456) > > @@ -475,13 +475,11 @@ native_start_all_aps(void) > > domain = acpi_pxm_get_cpu_locality(apic_id); > > #endif > > /* allocate and set up an idle stack data page */ > > - bootstacks[cpu] = (void *)kmem_malloc_domainset( > > - DOMAINSET_FIXED(domain), kstack_pages * PAGE_SIZE, > > + bootstacks[cpu] = (void *)kmem_malloc(kstack_pages * PAGE_SIZE, > > M_WAITOK | M_ZERO); > > - doublefault_stack = (char *)kmem_malloc_domainset( > > - DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); > > - mce_stack = (char *)kmem_malloc_domainset( > > - DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); > > + doublefault_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | > > + M_ZERO); > > + mce_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | M_ZERO); > > nmi_stack = (char *)kmem_malloc_domainset( > > DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO); > > dbg_stack = (char *)kmem_malloc_domainset( > > From owner-svn-src-all@freebsd.org Sat Aug 24 18:00:19 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 22B70C6010; Sat, 24 Aug 2019 18:00:19 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46G5dv06y7z3xb0; Sat, 24 Aug 2019 18:00:19 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D9F8A8CF3; Sat, 24 Aug 2019 18:00:18 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7OI0IGr014563; Sat, 24 Aug 2019 18:00:18 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7OI0I7X014562; Sat, 24 Aug 2019 18:00:18 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201908241800.x7OI0I7X014562@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Sat, 24 Aug 2019 18:00:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351461 - head/sbin/ping X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/sbin/ping X-SVN-Commit-Revision: 351461 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 18:00:19 -0000 Author: asomers Date: Sat Aug 24 18:00:18 2019 New Revision: 351461 URL: https://svnweb.freebsd.org/changeset/base/351461 Log: ping: fix unaligned access to ancillary data Use CMSG_FIRSTHDR rather than assume that an array is correctly aligned. Fixes warnings on sparc64 and powerpcspe. Submitted by: Ján Sučan MFH: 2 weeks Sponsored by: Google LLC (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21406 Modified: head/sbin/ping/ping.c Modified: head/sbin/ping/ping.c ============================================================================== --- head/sbin/ping/ping.c Sat Aug 24 16:44:47 2019 (r351460) +++ head/sbin/ping/ping.c Sat Aug 24 18:00:18 2019 (r351461) @@ -875,6 +875,7 @@ main(int argc, char *const *argv) msg.msg_iovlen = 1; #ifdef SO_TIMESTAMP msg.msg_control = (caddr_t)ctrl; + msg.msg_controllen = sizeof(ctrl); #endif iov.iov_base = packet; iov.iov_len = IP_MAXPACKET; @@ -920,9 +921,7 @@ main(int argc, char *const *argv) if (n == 1) { struct timespec *tv = NULL; #ifdef SO_TIMESTAMP - struct cmsghdr *cmsg = (struct cmsghdr *)&ctrl; - - msg.msg_controllen = sizeof(ctrl); + struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg); #endif msg.msg_namelen = sizeof(from); if ((cc = recvmsg(srecv, &msg, 0)) < 0) { From owner-svn-src-all@freebsd.org Sat Aug 24 18:48:07 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 87981C6F1D; Sat, 24 Aug 2019 18:48:07 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46G6j16FlYz40N8; Sat, 24 Aug 2019 18:48:05 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io1-f50.google.com with SMTP id x4so27724879iog.13; Sat, 24 Aug 2019 11:48:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=gEaEQQFDg8fw+igFGufqpJQTuIvryn+/S9XTO8Pmhjg=; b=cHRvTSJUrK9ygK3sKvwjLIjd/arJD0d6BrfaH62TKnC7QKXimMj4L3DxVcfpZgWdRD pf9pkpGjMcbOONqiC1Gzs21vmF5o7bvnguDq00vPn1Ygv6VMRyiUz31lpb03jzMX842R mdWudqyI3awPu1/n0devE2ccbADwDmTgR3MFjbpnX1DkXkKSk0uUol8O3+rF4bk5pMbc wh8k0WosL3G7vdAmSmC1DD2njCpwj+R0mAxREIK344IEcqrQA+HGlp06gh2NcYeiiHS3 IrDPHHs971Qk3p76MDydtDH0iIrrhw1egr67xHG0O49g70XeP9tVKzVNJ86AqqYzz4br 53ng== X-Gm-Message-State: APjAAAUji4rUHzH9VQMygCap5vcc5klV0X/NpAPLttgYhkuBrWmoMVvU WFPA/wmMqQxxF25rEDcWP8am9E06 X-Google-Smtp-Source: APXvYqzmQzAm7caKERZSNhT8LOI1Cg+2mx0ImkzSivS+LTcCKc2L4QUEV6/hypF4K+U3co3i8vwpWw== X-Received: by 2002:a5d:8484:: with SMTP id t4mr14100586iom.5.1566672484222; Sat, 24 Aug 2019 11:48:04 -0700 (PDT) Received: from mail-io1-f51.google.com (mail-io1-f51.google.com. [209.85.166.51]) by smtp.gmail.com with ESMTPSA id c11sm10062377ioq.63.2019.08.24.11.48.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 24 Aug 2019 11:48:03 -0700 (PDT) Received: by mail-io1-f51.google.com with SMTP id 18so27798955ioe.10; Sat, 24 Aug 2019 11:48:03 -0700 (PDT) X-Received: by 2002:a5e:a80f:: with SMTP id c15mr10057618ioa.270.1566672483659; Sat, 24 Aug 2019 11:48:03 -0700 (PDT) MIME-Version: 1.0 References: <201908241528.x7OFSemm026182@repo.freebsd.org> <20190824161503.GA71821@kib.kiev.ua> In-Reply-To: <20190824161503.GA71821@kib.kiev.ua> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Sat, 24 Aug 2019 11:47:52 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r351456 - head/sys/amd64/amd64 To: Konstantin Belousov Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 46G6j16FlYz40N8 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of csecem@gmail.com designates 209.85.166.50 as permitted sender) smtp.mailfrom=csecem@gmail.com X-Spamd-Result: default: False [-5.61 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[cem@freebsd.org]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; REPLYTO_ADDR_EQ_FROM(0.00)[]; RCVD_COUNT_THREE(0.00)[4]; TO_DN_ALL(0.00)[]; NEURAL_HAM_SHORT(-0.99)[-0.988,0]; FORGED_SENDER(0.30)[cem@freebsd.org,csecem@gmail.com]; FREEMAIL_TO(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; TAGGED_FROM(0.00)[]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_NEQ_ENVFROM(0.00)[cem@freebsd.org,csecem@gmail.com]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[50.166.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-2.62)[ip: (-7.35), ipnet: 209.85.128.0/17(-3.35), asn: 15169(-2.34), country: US(-0.05)]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 18:48:07 -0000 On Sat, Aug 24, 2019 at 9:15 AM Konstantin Belousov wrote: > > On Sat, Aug 24, 2019 at 08:49:42AM -0700, Conrad Meyer wrote: > > Hi Konstantin, > > > > What is the motivation for this change? The commit message doesn't > > really describe why it was done. > > Really it does. There is no point to request allocations for e.g. > doublefault stack to be at the local domain, because this stack is only > used once. Doublefault is definitely a machine halt situation, it does > not matter if it generates inter-socket traffic to handle. > > Same for boot stacks, and for mce. > > The change avoids unnecessary constraints. Sure, but what is the harm of the unnecessary constraints? Does this change fix an actual bug, or is it just a stylistic preference to avoid domain-specific allocations for infrequently used objects? Thanks, Conrad From owner-svn-src-all@freebsd.org Sat Aug 24 18:50:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C5D7EC7042; Sat, 24 Aug 2019 18:50:30 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46G6lp4ry0z40XC; Sat, 24 Aug 2019 18:50:30 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io1-f44.google.com with SMTP id s21so27940254ioa.1; Sat, 24 Aug 2019 11:50:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=9l6eI3fzdgyA6+MNnAPvMTchwPsf5g/z+V8G19T6h0I=; b=QUtqTELPCMzmZaDad5HvkOOytB/YivysvRdpuphhpumbnLaAe97uxSvfl7dWX+UMHi wag1JfK2FF/fkAloBq27V2pcyt6uCr0N+Wq722eg6aLplgFKETiRx7Sr4SIlVjQCtMyM D7dDF7gHMQkdsxdiorT3pFMtScUtveOUiSSaXUg6S3dDxHOEt6c7tLFLFvsSINRkWpua MxuuE2zYPSd7fUG37/FEHS6N8EqRdPBvtKUCh16sToBNhFYQofYV/Rzmk3cmCvRPLn2Q X84sdiZQUftF2mFotq+hqe9KE7TZAmPIJR/GKwxO8cAB4ZjD+xra03sbDbWKuM/K1PkO xPeA== X-Gm-Message-State: APjAAAVZGwl1Ivy1dvSa+xJr/f2Bxz0rDPqre/mor22jNWe8NSaTQKQK o/tGIJk4NDDf2h7A3JKQZlLS7PdG X-Google-Smtp-Source: APXvYqyJ5q+2d8NC55MgBeBBtqg/NR/Boe5YlZbPq+gGzT5yr+3/L40y5obx7GTIKJAM2WXtnK9YJw== X-Received: by 2002:a5e:d911:: with SMTP id n17mr2384509iop.32.1566672629496; Sat, 24 Aug 2019 11:50:29 -0700 (PDT) Received: from mail-io1-f49.google.com (mail-io1-f49.google.com. [209.85.166.49]) by smtp.gmail.com with ESMTPSA id l6sm4677845ioc.15.2019.08.24.11.50.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 24 Aug 2019 11:50:29 -0700 (PDT) Received: by mail-io1-f49.google.com with SMTP id t3so27770128ioj.12; Sat, 24 Aug 2019 11:50:29 -0700 (PDT) X-Received: by 2002:a5d:93c4:: with SMTP id j4mr4567964ioo.80.1566672628950; Sat, 24 Aug 2019 11:50:28 -0700 (PDT) MIME-Version: 1.0 References: <201908241550.x7OFoD80037926@repo.freebsd.org> In-Reply-To: <201908241550.x7OFoD80037926@repo.freebsd.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Sat, 24 Aug 2019 11:50:18 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r351459 - head/usr.bin/last To: Eugene Grosbein Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 46G6lp4ry0z40XC X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 18:50:30 -0000 Hi Eugene, This change introduced some style(9) violations. On Sat, Aug 24, 2019 at 8:50 AM Eugene Grosbein wrote: > > Author: eugen > Date: Sat Aug 24 15:50:13 2019 > New Revision: 351459 > URL: https://svnweb.freebsd.org/changeset/base/351459 > ... > --- head/usr.bin/last/last.c Sat Aug 24 15:38:07 2019 (r351458) > +++ head/usr.bin/last/last.c Sat Aug 24 15:50:13 2019 (r351459) > ... > @@ -158,7 +158,9 @@ main(int argc, char *argv[]) > d_first = (*nl_langinfo(D_MD_ORDER) == 'd'); > > (void) setlocale(LC_CTYPE, ""); > - utf8flag = (strcmp(nl_langinfo(CODESET), "UTF-8") == 0); > + p = nl_langinfo(CODESET); > + if (strcmp (p, "UTF-8") == 0 || strcmp (p, "US-ASCII") == 0) > + noctfix = 1; There are extraneous spaces between strcmp and '('. Best, Conrad From owner-svn-src-all@freebsd.org Sat Aug 24 19:19:26 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 66411C7D30; Sat, 24 Aug 2019 19:19:26 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from wout2-smtp.messagingengine.com (wout2-smtp.messagingengine.com [64.147.123.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46G7PB1f4Kz41vg; Sat, 24 Aug 2019 19:19:25 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id BEF2F3A2; Sat, 24 Aug 2019 15:19:23 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Sat, 24 Aug 2019 15:19:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsco.org; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm1; bh=T QkDgyhzJycGXVjkA49lPJw8yjJnNR9p8ZD6cF2RBRg=; b=FAppKdNcp1QwS/y72 p2UYPbuSNeBju4tYy5HO8Bs2B4j3zTxAPFk0yRhrmVgzYf2h+hqkG1J/zYiuAdSN mNUenNHEvVkdiqeJ4AZPcSuj4TNxKcg+KVWVY+sNd5tpRYIvYMmIjsGc+BDckLv5 Ymwpz7Imj1BqN/woeGFSUA1cLjMUl/Z4554nNVWiKOxl6MYHoF0YCMjAmnnWZudj L/RmKoAY/+lyuT9xR7wmgFiy6/4vGp04tngsMjajpZd1vVN1C5H186Db3pjyr/lO LLO64geQs5BilQLWtsGqsm98HX2Mkeez8yh5lb15cEPPS0kaCywBAm5px2AG7FkP XjmlQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=TQkDgyhzJycGXVjkA49lPJw8yjJnNR9p8ZD6cF2RB Rg=; b=zYBvaMDsi4KAgC7fBisSoTQyFJfROkML6lxgQXW5nJ2LTEnwGjE++Endx 8TcqoyEddf7G5O2niHUXjJS6IZ0kGMkGYpGIFDGaVy5n6HMlelmxysjh7tGL5E2g tPaNXdGeyNBHKRfsnSVTCzQqlRW2kM4c0KQMO8JXV+hOVjHUBs5yD2Rw6A7IJ163 dFsDpbksjPDz5Ao0P4PdMVzfVSsvIKzwibcvM9Mwcw7EcEEkBS/aBfY1BLuHdql2 UT1OObPnO6Rm1jlWvVBuFfjBbSgf/ebElpLEDev5aZZ0idnaNUaiVmyJcvH65+/+ 02vxXx+dnZn4ywIEoPweVFxkqyawQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduvddrudehtddgudeflecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurheptggguffhjgffgffkfhfvofesth hqmhdthhdtvdenucfhrhhomhepufgtohhtthcunfhonhhguceoshgtohhtthhlsehsrghm shgtohdrohhrgheqnecuffhomhgrihhnpehfrhgvvggsshgurdhorhhgpdgrnhgurdhprg dpnhhouggvrdhprgenucfkphepkedrgeeirdekledrvddufeenucfrrghrrghmpehmrghi lhhfrhhomhepshgtohhtthhlsehsrghmshgtohdrohhrghenucevlhhushhtvghrufhiii gvpedt X-ME-Proxy: Received: from [192.168.0.126] (unknown [8.46.89.213]) by mail.messagingengine.com (Postfix) with ESMTPA id A135780059; Sat, 24 Aug 2019 15:19:22 -0400 (EDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: svn commit: r351458 - head/share/man/man4 From: Scott Long In-Reply-To: <201908241538.x7OFc7Uf032059@repo.freebsd.org> Date: Sat, 24 Aug 2019 13:19:21 -0600 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201908241538.x7OFc7Uf032059@repo.freebsd.org> To: Konstantin Belousov X-Mailer: Apple Mail (2.3445.104.11) X-Rspamd-Queue-Id: 46G7PB1f4Kz41vg X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.95 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.95)[-0.949,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 19:19:26 -0000 Thank you! Scott > On Aug 24, 2019, at 9:38 AM, Konstantin Belousov = wrote: >=20 > Author: kib > Date: Sat Aug 24 15:38:07 2019 > New Revision: 351458 > URL: https://svnweb.freebsd.org/changeset/base/351458 >=20 > Log: > Add nvdimm(4) man page. >=20 > Reviewed by: emaste > Discussed with: scottl, scottph > Sponsored by: The FreeBSD Foundation > MFC after: 3 days > Differential revision: https://reviews.freebsd.org/D21386 >=20 > Added: > head/share/man/man4/nvdimm.4 (contents, props changed) > Modified: > head/share/man/man4/Makefile >=20 > Modified: head/share/man/man4/Makefile > = =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/share/man/man4/Makefile Sat Aug 24 15:31:31 2019 = (r351457) > +++ head/share/man/man4/Makefile Sat Aug 24 15:38:07 2019 = (r351458) > @@ -379,6 +379,7 @@ MAN=3D aac.4 \ > null.4 \ > numa.4 \ > ${_nvd.4} \ > + ${_nvdimm.4} \ > ${_nvme.4} \ > ${_nvram.4} \ > ${_nvram2env.4} \ > @@ -825,6 +826,7 @@ _xnb.4=3D xnb.4 >=20 > .if ${MACHINE_CPUARCH} =3D=3D "amd64" > _ioat.4=3D ioat.4 > +_nvdimm.4=3D nvdimm.4 > _qlxge.4=3D qlxge.4 > _qlxgb.4=3D qlxgb.4 > _qlxgbe.4=3D qlxgbe.4 >=20 > Added: head/share/man/man4/nvdimm.4 > = =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 > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/share/man/man4/nvdimm.4 Sat Aug 24 15:38:07 2019 = (r351458) > @@ -0,0 +1,122 @@ > +.\" Copyright (c) 2019 The FreeBSD Foundation, Inc. > +.\" > +.\" This documentation was written by > +.\" Konstantin Belousov under sponsorship > +.\" from the FreeBSD Foundation. > +.\" > +.\" 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 AUTHORS 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 AUTHORS 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$ > +.\" > +.Dd August 23, 2019 > +.Dt NVDIMM 4 > +.Os > +.Sh NAME > +.Nm nvdimm > +.Nd ACPI NVDIMM driver > +.Sh SYNOPSIS > +To load the driver as a module at boot, place the following line in > +.Xr loader.conf 5 : > +.Bd -literal -offset indent > +nvdimm_load=3D"YES" > +.Ed > +.Sh DESCRIPTION > +.Bf -symbolic > +Note: > +The > +.Nm > +driver is under development and has some important limitations > +described below. > +.Ef > +.Pp > +The > +.Nm > +driver provides access to Non-Volatile DIMM (NVDIMM) persistent = memory > +devices, which are ACPI-enumerated under the root NVDIMM device > +with a > +.Va _HID > +of > +.Dv ACPI0012 > +and in the > +.Dv NFIT > +table. > +.Pp > +For each System Physical Address (SPA) Range described by NFIT, a > +device node > +.Pa /dev/nvdimm_spaNNN > +is created, where > +.Dv NNN > +is the SPA position in the table. > +The node can be used to > +.Xr read 2 , > +.Xr write 2 , > +or > +.Xr mmap 2 > +the device. > +.Pp > +Also, for each SPA, the geom provider > +.Pa spaNNN > +is created, which can be used to create a conventional filesystem = (e.g. > +by > +.Xr newfs 8 ) > +and > +.Xr mount 8 > +it as any storage volume. > +Content accessible by > +.Pa /dev/nvdimm_spaNNN > +and > +.Pa /dev/spaNNN > +is coherent. > +.Sh SEE ALSO > +.Xr ACPI 4 , > +.Xr GEOM 4 , > +.Xr geom 8 , > +.Xr mount 8 , > +.Xr newfs 8 , > +.Xr disk 9 > +.Sh HISTORY > +The > +.Nm > +driver first appeared in > +.Fx 12.0 . > +.Sh AUTHORS > +.An -nosplit > +The > +.Nm > +driver was originally written by > +.An Konstantin Belousov Aq Mt kib@FreeBSD.org , > +and then updated by > +.An D. Scott Phillips Aq Mt scottph@FreeBSD.org . > +.Sh BUGS > +The > +.Nm > +driver does not utilize the Block Window interface, so if the write = to > +NVDIMM was interrupted due to a system crash or power outage, > +the corresponding page might be left in partially updated state. > +.Pp > +There is no support for Device-Specific Methods (DSM), used to report = and > +control the device health and wearing. > +.Pp > +The driver depends on the > +.Xr pmap_largemap 9 > +pmap interface, which is currently only implemented on amd64. > +The interface can be only reasonable implemented on 64bit = architectures. >=20 From owner-svn-src-all@freebsd.org Sat Aug 24 20:44:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C8569CAB2D; Sat, 24 Aug 2019 20:44:01 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46G9Gn3BYGz48Gr; Sat, 24 Aug 2019 20:44:00 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id x7OKhrLO084883 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Sat, 24 Aug 2019 23:43:56 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua x7OKhrLO084883 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id x7OKhrVL084882; Sat, 24 Aug 2019 23:43:53 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 24 Aug 2019 23:43:53 +0300 From: Konstantin Belousov To: Conrad Meyer Cc: src-committers , svn-src-all , svn-src-head Subject: Re: svn commit: r351456 - head/sys/amd64/amd64 Message-ID: <20190824204353.GH71821@kib.kiev.ua> References: <201908241528.x7OFSemm026182@repo.freebsd.org> <20190824161503.GA71821@kib.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.12.1 (2019-06-15) X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tom.home X-Rspamd-Queue-Id: 46G9Gn3BYGz48Gr X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.90 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.91)[-0.906,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages 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, 24 Aug 2019 20:44:01 -0000 On Sat, Aug 24, 2019 at 11:47:52AM -0700, Conrad Meyer wrote: > On Sat, Aug 24, 2019 at 9:15 AM Konstantin Belousov wrote: > > > > On Sat, Aug 24, 2019 at 08:49:42AM -0700, Conrad Meyer wrote: > > > Hi Konstantin, > > > > > > What is the motivation for this change? The commit message doesn't > > > really describe why it was done. > > > > Really it does. There is no point to request allocations for e.g. > > doublefault stack to be at the local domain, because this stack is only > > used once. Doublefault is definitely a machine halt situation, it does > > not matter if it generates inter-socket traffic to handle. > > > > Same for boot stacks, and for mce. > > > > The change avoids unnecessary constraints. > > Sure, but what is the harm of the unnecessary constraints? Does this > change fix an actual bug, or is it just a stylistic preference to > avoid domain-specific allocations for infrequently used objects? I am not sure about this being a stylistic preference. We usually write code to express the required actions. I removed constraints which did not added anything neither to code correctness nor to the performance.