From owner-svn-src-head@freebsd.org Sat Mar 2 23:20:48 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9F99C15159DD; Sat, 2 Mar 2019 23:20:48 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 442C7895BB; Sat, 2 Mar 2019 23:20:48 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 37AD2BCC9; Sat, 2 Mar 2019 23:20:48 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x22NKmAl092293; Sat, 2 Mar 2019 23:20:48 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x22NKl5F092272; Sat, 2 Mar 2019 23:20:47 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201903022320.x22NKl5F092272@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 2 Mar 2019 23:20:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344734 - in head: share/man/man4 sys/dev/flash X-SVN-Group: head X-SVN-Commit-Author: ian X-SVN-Commit-Paths: in head: share/man/man4 sys/dev/flash X-SVN-Commit-Revision: 344734 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 442C7895BB X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.968,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2019 23:20:48 -0000 Author: ian Date: Sat Mar 2 23:20:47 2019 New Revision: 344734 URL: https://svnweb.freebsd.org/changeset/base/344734 Log: Allow the sector size of the disk device to be configured using hints or FDT data. The sector size must be a multiple of the device's page size. If not configured, use the historical default of the device page size. Setting the disk sector size to 512 or 4096 allows a variety of standard filesystems to be used on the device. Of course you wouldn't want to be writing frequently to a SPI flash chip like it was a disk drive, but for data that gets written once (or rarely) and read often, using a standard filesystem is a nice convenient thing. Modified: head/share/man/man4/at45d.4 head/sys/dev/flash/at45d.c Modified: head/share/man/man4/at45d.4 ============================================================================== --- head/share/man/man4/at45d.4 Sat Mar 2 22:28:43 2019 (r344733) +++ head/share/man/man4/at45d.4 Sat Mar 2 23:20:47 2019 (r344734) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 26, 2019 +.Dd March 2, 2019 .Dt AT45D 4 .Os .Sh NAME @@ -126,6 +126,10 @@ The following properties are optional for the .Nm device subnode: .Bl -tag -width indent +.It Va freebsd,sectorsize +The sector size of the disk created for this storage device. +It must be a multiple of the device's page size. +The default is the device page size. .It Va spi-cpha Empty property indicating the slave device requires shifted clock phase (CPHA) mode. @@ -156,6 +160,10 @@ The chip-select number to assert when performing I/O f Set the high bit (1 << 31) to invert the logic level of the chip select line. .It Va hint.at45d.%d.mode The SPI mode (0-3) to use when communicating with this device. +.It Va hint.at45d.%d.sectorsize +The sector size of the disk created for this storage device. +It must be a multiple of the device's page size. +The default is the device page size. .El .Sh FILES .Bl -tag -width /dev/flash/at45d? Modified: head/sys/dev/flash/at45d.c ============================================================================== --- head/sys/dev/flash/at45d.c Sat Mar 2 22:28:43 2019 (r344733) +++ head/sys/dev/flash/at45d.c Sat Mar 2 23:20:47 2019 (r344734) @@ -288,9 +288,11 @@ at45d_detach(device_t dev) AT45D_UNLOCK(sc); if (err == 0 && sc->taskstate == TSTATE_STOPPED) { - disk_destroy(sc->disk); - bioq_flush(&sc->bio_queue, NULL, ENXIO); - free(sc->dummybuf, M_DEVBUF); + if (sc->disk) { + disk_destroy(sc->disk); + bioq_flush(&sc->bio_queue, NULL, ENXIO); + free(sc->dummybuf, M_DEVBUF); + } AT45D_LOCK_DESTROY(sc); } return (err); @@ -303,6 +305,7 @@ at45d_delayed_attach(void *xsc) struct at45d_mfg_info mfginfo; const struct at45d_flash_ident *ident; u_int i; + int sectorsize; uint32_t jedec; uint16_t pagesize; uint8_t status; @@ -340,6 +343,30 @@ at45d_delayed_attach(void *xsc) pagesize = ident->pagesize; sc->pagesize = pagesize; + /* + * By default we set up a disk with a sector size that matches the + * device page size. If there is a device hint or fdt property + * requesting a different size, use that, as long as it is a multiple of + * the device page size). + */ + sectorsize = pagesize; +#ifdef FDT + { + pcell_t size; + if (OF_getencprop(ofw_bus_get_node(sc->dev), + "freebsd,sectorsize", &size, sizeof(size)) > 0) + sectorsize = size; + } +#endif + resource_int_value(device_get_name(sc->dev), device_get_unit(sc->dev), + "sectorsize", §orsize); + + if ((sectorsize % pagesize) != 0) { + device_printf(sc->dev, "Invalid sectorsize %d, " + "must be a multiple of %d\n", sectorsize, pagesize); + return; + } + sc->dummybuf = malloc(pagesize, M_DEVBUF, M_WAITOK | M_ZERO); sc->disk = disk_alloc(); @@ -350,7 +377,7 @@ at45d_delayed_attach(void *xsc) sc->disk->d_name = "flash/at45d"; sc->disk->d_drv1 = sc; sc->disk->d_maxsize = DFLTPHYS; - sc->disk->d_sectorsize = pagesize; + sc->disk->d_sectorsize = sectorsize; sc->disk->d_mediasize = pagesize * ident->pagecount; sc->disk->d_unit = device_get_unit(sc->dev); disk_create(sc->disk, DISK_VERSION); @@ -358,9 +385,10 @@ at45d_delayed_attach(void *xsc) bioq_init(&sc->bio_queue); kproc_create(&at45d_task, sc, &sc->p, 0, 0, "task: at45d flash"); sc->taskstate = TSTATE_RUNNING; - device_printf(sc->dev, "%s, %d bytes per page, %d pages; %d KBytes\n", + device_printf(sc->dev, + "%s, %d bytes per page, %d pages; %d KBytes; disk sector size %d\n", ident->name, pagesize, ident->pagecount, - (pagesize * ident->pagecount) / 1024); + (pagesize * ident->pagecount) / 1024, sectorsize); } static int From owner-svn-src-head@freebsd.org Sun Mar 3 05:30:16 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5810A15247C2; Sun, 3 Mar 2019 05:30:16 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F0CF66F1EA; Sun, 3 Mar 2019 05:30:15 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C543218232; Sun, 3 Mar 2019 05:30:15 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x235UFTS087152; Sun, 3 Mar 2019 05:30:15 GMT (envelope-from hrs@FreeBSD.org) Received: (from hrs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x235UFpB087151; Sun, 3 Mar 2019 05:30:15 GMT (envelope-from hrs@FreeBSD.org) Message-Id: <201903030530.x235UFpB087151@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hrs set sender to hrs@FreeBSD.org using -f From: Hiroki Sato Date: Sun, 3 Mar 2019 05:30:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344739 - head/usr.sbin/syslogd X-SVN-Group: head X-SVN-Commit-Author: hrs X-SVN-Commit-Paths: head/usr.sbin/syslogd X-SVN-Commit-Revision: 344739 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: F0CF66F1EA X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.92 / 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]; NEURAL_HAM_SHORT(-0.93)[-0.925,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Mar 2019 05:30:16 -0000 Author: hrs Date: Sun Mar 3 05:30:15 2019 New Revision: 344739 URL: https://svnweb.freebsd.org/changeset/base/344739 Log: Use struct addrinfo instead of struct sockaddr_storage to store peer addresses. Modified: head/usr.sbin/syslogd/syslogd.c Modified: head/usr.sbin/syslogd/syslogd.c ============================================================================== --- head/usr.sbin/syslogd/syslogd.c Sun Mar 3 03:42:51 2019 (r344738) +++ head/usr.sbin/syslogd/syslogd.c Sun Mar 3 05:30:15 2019 (r344739) @@ -187,7 +187,10 @@ struct peer { static STAILQ_HEAD(, peer) pqueue = STAILQ_HEAD_INITIALIZER(pqueue); struct socklist { - struct sockaddr_storage sl_ss; + struct addrinfo sl_ai; +#define sl_sa sl_ai.ai_addr +#define sl_salen sl_ai.ai_addrlen +#define sl_family sl_ai.ai_family int sl_socket; struct peer *sl_peer; int (*sl_recv)(struct socklist *); @@ -377,7 +380,7 @@ struct iovlist; static int allowaddr(char *); static int addfile(struct filed *); static int addpeer(struct peer *); -static int addsock(struct sockaddr *, socklen_t, struct socklist *); +static int addsock(struct addrinfo *, struct socklist *); static struct filed *cfline(const char *, const char *, const char *); static const char *cvthname(struct sockaddr *); static void deadq_enter(pid_t, const char *); @@ -426,9 +429,9 @@ close_filed(struct filed *f) switch (f->f_type) { case F_FORW: - if (f->f_un.f_forw.f_addr) { - freeaddrinfo(f->f_un.f_forw.f_addr); - f->f_un.f_forw.f_addr = NULL; + if (f->fu_forw_addr != NULL) { + freeaddrinfo(f->fu_forw_addr); + f->fu_forw_addr = NULL; } /* FALLTHROUGH */ @@ -474,16 +477,23 @@ addpeer(struct peer *pe0) } static int -addsock(struct sockaddr *sa, socklen_t sa_len, struct socklist *sl0) +addsock(struct addrinfo *ai, struct socklist *sl0) { struct socklist *sl; - sl = calloc(1, sizeof(*sl)); + /* Copy *ai->ai_addr to the tail of struct socklist if any. */ + sl = calloc(1, sizeof(*sl) + ((ai != NULL) ? ai->ai_addrlen : 0)); if (sl == NULL) err(1, "malloc failed"); *sl = *sl0; - if (sa != NULL && sa_len > 0) - memcpy(&sl->sl_ss, sa, sa_len); + if (ai != NULL) { + memcpy(&sl->sl_ai, ai, sizeof(*ai)); + if (ai->ai_addrlen > 0) { + memcpy((sl + 1), ai->ai_addr, ai->ai_addrlen); + sl->sl_sa = (struct sockaddr *)(sl + 1); + } else + sl->sl_sa = NULL; + } STAILQ_INSERT_TAIL(&shead, sl, next); return (0); @@ -665,7 +675,7 @@ main(int argc, char *argv[]) if (s < 0) { err(1, "cannot open a pipe for signals"); } else { - addsock(NULL, 0, &(struct socklist){ + addsock(NULL, &(struct socklist){ .sl_socket = sigpipe[0], .sl_recv = socklist_recv_signal }); @@ -676,7 +686,7 @@ main(int argc, char *argv[]) if (s < 0) { dprintf("can't open %s (%d)\n", _PATH_KLOG, errno); } else { - addsock(NULL, 0, &(struct socklist){ + addsock(NULL, &(struct socklist){ .sl_socket = s, .sl_recv = socklist_recv_file, }); @@ -848,7 +858,7 @@ socklist_recv_sock(struct socklist *sl) } /* Received valid data. */ line[len] = '\0'; - if (sl->sl_ss.ss_family == AF_LOCAL) + if (sl->sl_sa != NULL && sl->sl_family == AF_LOCAL) hname = LocalHostName; else { hname = cvthname(sa); @@ -1643,7 +1653,7 @@ fprintlog_write(struct filed *f, struct iovlist *il, i case F_FORW: /* Truncate messages to RFC 5426 recommended size. */ dprintf(" %s", f->fu_forw_hname); - switch (f->fu_forw_addr->ai_addr->sa_family) { + switch (f->fu_forw_addr->ai_family) { #ifdef INET case AF_INET: dprintf(":%d\n", @@ -1670,10 +1680,12 @@ fprintlog_write(struct filed *f, struct iovlist *il, i msghdr.msg_iov = il->iov; msghdr.msg_iovlen = il->iovcnt; STAILQ_FOREACH(sl, &shead, next) { - if (sl->sl_ss.ss_family == AF_LOCAL || - sl->sl_ss.ss_family == AF_UNSPEC || - sl->sl_socket < 0) + if (sl->sl_socket < 0) continue; + if (sl->sl_sa != NULL && + (sl->sl_family == AF_LOCAL || + sl->sl_family == AF_UNSPEC)) + continue; lsent = sendmsg(sl->sl_socket, &msghdr, 0); if (lsent == (ssize_t)il->totalsize) break; @@ -2163,7 +2175,7 @@ die(int signo) logerror(buf); } STAILQ_FOREACH(sl, &shead, next) { - if (sl->sl_ss.ss_family == AF_LOCAL) + if (sl->sl_sa != NULL && sl->sl_family == AF_LOCAL) unlink(sl->sl_peer->pe_name); } pidfile_remove(pfh); @@ -2450,7 +2462,7 @@ init(int signo) break; case F_FORW: - switch (f->fu_forw_addr->ai_addr->sa_family) { + switch (f->fu_forw_addr->ai_family) { #ifdef INET case AF_INET: port = ntohs(satosin(f->fu_forw_addr->ai_addr)->sin_port); @@ -3527,8 +3539,7 @@ socksetup(struct peer *pe) #endif dprintf("listening on socket\n"); dprintf("sending on socket\n"); - addsock(res->ai_addr, res->ai_addrlen, - &(struct socklist){ + addsock(res, &(struct socklist){ .sl_socket = s, .sl_peer = pe, .sl_recv = sl_recv From owner-svn-src-head@freebsd.org Sun Mar 3 03:36:35 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5371C1521EA2; Sun, 3 Mar 2019 03:36:35 +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 2109C6C3D0; Sun, 3 Mar 2019 03:36:34 +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 0FE06EF8F; Sun, 3 Mar 2019 03:36:34 +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 x233aXcK028525; Sun, 3 Mar 2019 03:36:33 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x233aXQn028524; Sun, 3 Mar 2019 03:36:33 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201903030336.x233aXQn028524@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sun, 3 Mar 2019 03:36:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344736 - 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: 344736 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 2109C6C3D0 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.96)[-0.961,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Mar 2019 03:36:35 -0000 Author: imp Date: Sun Mar 3 03:36:33 2019 New Revision: 344736 URL: https://svnweb.freebsd.org/changeset/base/344736 Log: Add ABORTED_BY_REQUEST to the list of things we look at DNR bit and tell why to comment (code already does this) Modified: head/sys/dev/nvme/nvme_qpair.c Modified: head/sys/dev/nvme/nvme_qpair.c ============================================================================== --- head/sys/dev/nvme/nvme_qpair.c Sun Mar 3 03:09:43 2019 (r344735) +++ head/sys/dev/nvme/nvme_qpair.c Sun Mar 3 03:36:33 2019 (r344736) @@ -331,7 +331,8 @@ nvme_completion_is_retry(const struct nvme_completion * TODO: spec is not clear how commands that are aborted due * to TLER will be marked. So for now, it seems * NAMESPACE_NOT_READY is the only case where we should - * look at the DNR bit. + * look at the DNR bit. Requests failed with ABORTED_BY_REQUEST + * set the DNR bit correctly since the driver controls that. */ switch (sct) { case NVME_SCT_GENERIC: From owner-svn-src-head@freebsd.org Sun Mar 3 19:55:07 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB2B415169DF; Sun, 3 Mar 2019 19:55:07 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6C82869B80; Sun, 3 Mar 2019 19:55:07 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5AA9C215A3; Sun, 3 Mar 2019 19:55:07 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x23Jt79i040050; Sun, 3 Mar 2019 19:55:07 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x23Jt73E040049; Sun, 3 Mar 2019 19:55:07 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201903031955.x23Jt73E040049@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 3 Mar 2019 19:55:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344742 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 344742 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6C82869B80 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.96)[-0.960,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-0.999,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Mar 2019 19:55:08 -0000 Author: tuexen Date: Sun Mar 3 19:55:06 2019 New Revision: 344742 URL: https://svnweb.freebsd.org/changeset/base/344742 Log: Allocate an assocition id and register the stcb with holding the lock. This avoids a race where stcbs can be found, which are not completely initialized. This was found by running syzkaller. MFC after: 3 days Modified: head/sys/netinet/sctp_pcb.c Modified: head/sys/netinet/sctp_pcb.c ============================================================================== --- head/sys/netinet/sctp_pcb.c Sun Mar 3 18:57:48 2019 (r344741) +++ head/sys/netinet/sctp_pcb.c Sun Mar 3 19:55:06 2019 (r344742) @@ -4157,11 +4157,9 @@ sctp_aloc_a_assoc_id(struct sctp_inpcb *inp, struct sc struct sctpasochead *head; struct sctp_tcb *lstcb; - SCTP_INP_WLOCK(inp); try_again: if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) { /* TSNH */ - SCTP_INP_WUNLOCK(inp); return (0); } /* @@ -4180,8 +4178,7 @@ try_again: head = &inp->sctp_asocidhash[SCTP_PCBHASH_ASOC(id, inp->hashasocidmark)]; LIST_INSERT_HEAD(head, stcb, sctp_tcbasocidhash); stcb->asoc.in_asocid_hash = 1; - SCTP_INP_WUNLOCK(inp); - return id; + return (id); } /* @@ -4344,7 +4341,6 @@ sctp_aloc_assoc(struct sctp_inpcb *inp, struct sockadd memset(stcb, 0, sizeof(*stcb)); asoc = &stcb->asoc; - asoc->assoc_id = sctp_aloc_a_assoc_id(inp, stcb); SCTP_TCB_LOCK_INIT(stcb); SCTP_TCB_SEND_LOCK_INIT(stcb); stcb->rport = rport; @@ -4355,7 +4351,6 @@ sctp_aloc_assoc(struct sctp_inpcb *inp, struct sockadd /* failed */ SCTP_TCB_LOCK_DESTROY(stcb); SCTP_TCB_SEND_LOCK_DESTROY(stcb); - LIST_REMOVE(stcb, sctp_tcbasocidhash); SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_asoc), stcb); SCTP_DECR_ASOC_COUNT(); *error = err; @@ -4368,7 +4363,6 @@ sctp_aloc_assoc(struct sctp_inpcb *inp, struct sockadd /* inpcb freed while alloc going on */ SCTP_TCB_LOCK_DESTROY(stcb); SCTP_TCB_SEND_LOCK_DESTROY(stcb); - LIST_REMOVE(stcb, sctp_tcbasocidhash); SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_asoc), stcb); SCTP_INP_WUNLOCK(inp); SCTP_INP_INFO_WUNLOCK(); @@ -4379,6 +4373,7 @@ sctp_aloc_assoc(struct sctp_inpcb *inp, struct sockadd } SCTP_TCB_LOCK(stcb); + asoc->assoc_id = sctp_aloc_a_assoc_id(inp, stcb); /* now that my_vtag is set, add it to the hash */ head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(stcb->asoc.my_vtag, SCTP_BASE_INFO(hashasocmark))]; /* put it in the bucket in the vtag hash of assoc's for the system */ From owner-svn-src-head@freebsd.org Sun Mar 3 10:00:28 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E14DF1504823; Sun, 3 Mar 2019 10:00:27 +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 86FFB76548; Sun, 3 Mar 2019 10:00:27 +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 77E4B1B0A6; Sun, 3 Mar 2019 10:00:27 +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 x23A0RE1027060; Sun, 3 Mar 2019 10:00:27 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x23A0RkN027059; Sun, 3 Mar 2019 10:00:27 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201903031000.x23A0RkN027059@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sun, 3 Mar 2019 10:00:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344740 - in head: usr.bin/netstat usr.sbin/syslogd X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in head: usr.bin/netstat usr.sbin/syslogd X-SVN-Commit-Revision: 344740 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 86FFB76548 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 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]; NEURAL_HAM_SHORT(-0.95)[-0.949,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Mar 2019 10:00:28 -0000 Author: bz Date: Sun Mar 3 10:00:26 2019 New Revision: 344740 URL: https://svnweb.freebsd.org/changeset/base/344740 Log: Fix compilation of world with WITHOUT_{INET,INET6}_SUPPORT or both set. Buildworld failed when both WITHOUT_INET6_SUPPORT and INET equivalent were set. Fix netstat and syslogd by applying appropriate #ifdef INET/INET6 to make world compile again. Reviewed by: ngie, hrs, ume Welcomed by: Michael Dexter (D17040) MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D19418 Modified: head/usr.bin/netstat/inet.c head/usr.sbin/syslogd/syslogd.c Modified: head/usr.bin/netstat/inet.c ============================================================================== --- head/usr.bin/netstat/inet.c Sun Mar 3 05:30:15 2019 (r344739) +++ head/usr.bin/netstat/inet.c Sun Mar 3 10:00:26 2019 (r344740) @@ -85,8 +85,10 @@ __FBSDID("$FreeBSD$"); #include "netstat.h" #include "nl_defs.h" -void inetprint(const char *, struct in_addr *, int, const char *, int, +#ifdef INET +static void inetprint(const char *, struct in_addr *, int, const char *, int, const int); +#endif #ifdef INET6 static int udp_done, tcp_done, sdp_done; #endif /* INET6 */ @@ -390,6 +392,7 @@ protopr(u_long off, const char *name, int af1, int pro so->so_rcv.sb_cc, so->so_snd.sb_cc); } if (numeric_port) { +#ifdef INET if (inp->inp_vflag & INP_IPV4) { inetprint("local", &inp->inp_laddr, (int)inp->inp_lport, name, 1, af1); @@ -397,8 +400,12 @@ protopr(u_long off, const char *name, int af1, int pro inetprint("remote", &inp->inp_faddr, (int)inp->inp_fport, name, 1, af1); } +#endif +#if defined(INET) && defined(INET6) + else +#endif #ifdef INET6 - else if (inp->inp_vflag & INP_IPV6) { + if (inp->inp_vflag & INP_IPV6) { inet6print("local", &inp->in6p_laddr, (int)inp->inp_lport, name, 1); if (!Lflag) @@ -407,6 +414,7 @@ protopr(u_long off, const char *name, int af1, int pro } /* else nothing printed now */ #endif /* INET6 */ } else if (inp->inp_flags & INP_ANONPORT) { +#ifdef INET if (inp->inp_vflag & INP_IPV4) { inetprint("local", &inp->inp_laddr, (int)inp->inp_lport, name, 1, af1); @@ -414,8 +422,12 @@ protopr(u_long off, const char *name, int af1, int pro inetprint("remote", &inp->inp_faddr, (int)inp->inp_fport, name, 0, af1); } +#endif +#if defined(INET) && defined(INET6) + else +#endif #ifdef INET6 - else if (inp->inp_vflag & INP_IPV6) { + if (inp->inp_vflag & INP_IPV6) { inet6print("local", &inp->in6p_laddr, (int)inp->inp_lport, name, 1); if (!Lflag) @@ -424,6 +436,7 @@ protopr(u_long off, const char *name, int af1, int pro } /* else nothing printed now */ #endif /* INET6 */ } else { +#ifdef INET if (inp->inp_vflag & INP_IPV4) { inetprint("local", &inp->inp_laddr, (int)inp->inp_lport, name, 0, af1); @@ -433,8 +446,12 @@ protopr(u_long off, const char *name, int af1, int pro inp->inp_lport != inp->inp_fport, af1); } +#endif +#if defined(INET) && defined(INET6) + else +#endif #ifdef INET6 - else if (inp->inp_vflag & INP_IPV6) { + if (inp->inp_vflag & INP_IPV6) { inet6print("local", &inp->in6p_laddr, (int)inp->inp_lport, name, 0); if (!Lflag) @@ -1314,10 +1331,11 @@ pim_stats(u_long off __unused, const char *name, int a xo_close_container(name); } +#ifdef INET /* * Pretty print an Internet address (net address + port). */ -void +static void inetprint(const char *container, struct in_addr *in, int port, const char *proto, int num_port, const int af1) { @@ -1404,3 +1422,4 @@ inetname(struct in_addr *inp) } return (line); } +#endif Modified: head/usr.sbin/syslogd/syslogd.c ============================================================================== --- head/usr.sbin/syslogd/syslogd.c Sun Mar 3 05:30:15 2019 (r344739) +++ head/usr.sbin/syslogd/syslogd.c Sun Mar 3 10:00:26 2019 (r344740) @@ -1619,6 +1619,7 @@ iovlist_append(struct iovlist *il, const char *str) } } +#if defined(INET) || defined(INET6) static void iovlist_truncate(struct iovlist *il, size_t size) { @@ -1639,6 +1640,7 @@ iovlist_truncate(struct iovlist *il, size_t size) } } } +#endif static void fprintlog_write(struct filed *f, struct iovlist *il, int flags) @@ -2959,7 +2961,11 @@ timedout(int sig __unused) * Returns -1 on error, 0 if the argument was valid. */ static int +#if defined(INET) || defined(INET6) allowaddr(char *s) +#else +allowaddr(char *s __unused) +#endif { #if defined(INET) || defined(INET6) char *cp1, *cp2; @@ -3121,13 +3127,13 @@ allowaddr(char *s) } printf("port = %d\n", ap->port); } -#endif return (0); err: if (res != NULL) freeaddrinfo(res); free(ap); +#endif return (-1); } From owner-svn-src-head@freebsd.org Sun Mar 3 20:20:46 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 49D631518589; Sun, 3 Mar 2019 20:20:46 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com [IPv6:2607:f8b0:4864:20::52a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C17D76A6DA; Sun, 3 Mar 2019 20:20:44 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pg1-x52a.google.com with SMTP id m2so1491286pgl.5; Sun, 03 Mar 2019 12:20:44 -0800 (PST) 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=qF+2EQ+8ILLXVS4zZoCPsqtAXTwi42drjYhBkdhAQVE=; b=egUCfkxlqUH+03SlFQ89kq17vlLOwUmEDhZ4smLU76ysxQbzGZQalnFnhGaDlM6u9h BNifyVVghM4SSJcTdJ6P5mKWpOLQKpHliHtwNj8AIsYgN499cVn6qlDQwechbglVxxvy 880jcHkvOoWq7nGqGxB9z+XainMJU67Gz1eG/sSGpmtyV76zmFw2g80K7tJQzYOGdU69 5+RWehbJao80pu+nteGWFYrz/if6sXIofBMIV2ojsZDs7sjYAJdEz309Ik5ExCBpHsaG EyUPt6LuYXv2ihMqjk0G+LIgHb2+rtTmNJ/gwmzMoffJu1zJ7jU/Bj/N+r4cR3vz1Hjq 4CMQ== 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=qF+2EQ+8ILLXVS4zZoCPsqtAXTwi42drjYhBkdhAQVE=; b=AnKTFHWnNrSgalsPaaMhABhn2UMeRVOKfpGd/4gomX9tauvx2p38UAKFHXtAvSFNo4 xlGHsrbtsDVViucvAHucSg0zK4rhpSmSzL6JQi1tobxMZsrUd8gypHIAlVuFJgP44h1f kEFCQAFp5pyqeNcKDtHs9SLmgBGxxkjtbBjIIILWnHrvcHvIVebCoudqAfrIxASUGKdW yR1SQeWuunU73CDBRSGGgCgyX+l89DBSocuEice83CDUsAbxOwmKde2zBiWuRO/VpncC py7bEs0QDUiZ52NziKxCntP7V+4riu+aW3940G7W2tG0BHlHdF3WLl4Aqx5qPtn/U07+ Bkdw== X-Gm-Message-State: APjAAAWumBEO/6GzCYoQm7rGuF4AiEQxh3l8nEAqqs138Wtm2ef5C1sh wzKDCV+r/KGDT5YTA7HTQ/IQBnI6 X-Google-Smtp-Source: APXvYqz1E2AtVZp7natXjP9EubzI80PXCr0CRrDqO3GCK30n0q4usUe01w1567UrKPjDKSVl5r6pYw== X-Received: by 2002:a17:902:7b90:: with SMTP id w16mr7166143pll.228.1551644443504; Sun, 03 Mar 2019 12:20:43 -0800 (PST) Received: from ?IPv6:2607:fb90:f81:127d:5d4a:dde8:4735:347b? ([2607:fb90:f81:127d:5d4a:dde8:4735:347b]) by smtp.gmail.com with ESMTPSA id s80sm7263705pgs.4.2019.03.03.12.20.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Mar 2019 12:20:42 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r344701 - head/sbin/camcontrol From: Enji Cooper X-Mailer: iPhone Mail (16D57) In-Reply-To: Date: Sun, 3 Mar 2019 12:20:40 -0800 Cc: Alexey Dokuchaev , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <64CCD099-1916-4ACC-B1B6-3F22BDE55C7C@gmail.com> References: <201903011439.x21EdFlH055596@repo.freebsd.org> <20190302104909.GA25217@FreeBSD.org> To: Steven Hartland X-Rspamd-Queue-Id: C17D76A6DA X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=egUCfkxl; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of yaneurabeya@gmail.com designates 2607:f8b0:4864:20::52a as permitted sender) smtp.mailfrom=yaneurabeya@gmail.com X-Spamd-Result: default: False [-6.16 / 15.00]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; MV_CASE(0.50)[]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[3]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; NEURAL_HAM_SHORT(-0.87)[-0.870,0]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; 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)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(-2.78)[ip: (-9.11), ipnet: 2607:f8b0::/32(-2.70), asn: 15169(-2.04), country: US(-0.07)]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[a.2.5.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] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Mar 2019 20:20:46 -0000 > On Mar 3, 2019, at 11:12, Steven Hartland wrote: >=20 > Not really much more to say that isn't explained by that and the code. >=20 > Sure I could have used a different sentence structure for the body but it w= ouldn't add anything IMO, thoughts? Why the previous sector size was wrong isn=E2=80=99t clear from the comm= it message. Why switch from a sizeof to 0? Cheers! -Enji= From owner-svn-src-head@freebsd.org Sun Mar 3 20:56:46 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3F1AA1519CDB for ; Sun, 3 Mar 2019 20:56:46 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x841.google.com (mail-qt1-x841.google.com [IPv6:2607:f8b0:4864:20::841]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9AFAD6BD2B for ; Sun, 3 Mar 2019 20:56:44 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x841.google.com with SMTP id o6so3162849qtk.6 for ; Sun, 03 Mar 2019 12:56:44 -0800 (PST) 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=wMMpYwIeF+dwhUN+ek3t0+0gKJo4o2dXAEVTjZRzj/k=; b=D6/2/wV7ZkPTNkF7qb8pMjEr6AO9M1cOb9wRNxgAzeJTAJrWVl+D560jN2qjqesLkC 8JOHy6edP+aZoEqrGKWMJ1JvwNtlAWfBeGHQ+kjnBbkl/M1X6hHDKFFldJHNYP6pTWRX BQq+iRiVQWHoohyUqjInrmHXqVxZZ6aq9vW7CZRqGBj5gPM3ynBNWzRT+ofzny0bLSf9 BxU79cekBAQnlocZgkWdYqNTDssjUoBstVVE3/y3M8f7DRBOb7e6oeQzZ6+BaTG6lRvI yhvZjZoQpLtCqZnHfjc+I28jnMxGplofUqA7p6QwkamzO2DLBqJ9HAb9yQxn9SKd3MA1 Tg9g== 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=wMMpYwIeF+dwhUN+ek3t0+0gKJo4o2dXAEVTjZRzj/k=; b=BsrI8nX/djFEVeWWen0uG87P9qQ4j7f18jzlk1h/97moOj9XAfDvVbtRDYBbgQff9Y WXN3FzKGFZHGQt5QhMp1z/zt1WMrB4ntg2w56WMDkiqVEVWeOTNSa5VQ0ZreFIIcyC2E djxESq2HSHPuJ+DsSd+fPHAQeydZLAT0apuMgUcg8ps9kH5IahMj9oVCGsPB80rcS6WS durXM4fsmpGFuge4UhCo5hBGOb+jFSLzTradBHuj34LmkxYLUwi7v9muUzQ6UPU61vgt BrcE0UTJCFHaUCZ6rOm3UsIw2frB6gjJvnCu13F2OiFsnVm6kLCY8/FmhEratEYRevjC n5Gw== X-Gm-Message-State: APjAAAUhs2twbxmo3G8xIoRJkN6MYH0PSvlllVBMj51EeLuklZas7xe5 8N38Aa3adnfoQJCe8RV0FISEzumYKH3T1Zy6uPjiLA== X-Google-Smtp-Source: APXvYqx1gcFAwZnXVjwqnYW/HNGquupqqNVmSQiDXSOSCRxHC4ZOKabB9IYsnhbtwq1fLjH1VPlGhQs5FTWoPmS/D4E= X-Received: by 2002:ac8:3974:: with SMTP id t49mr12568487qtb.118.1551646603760; Sun, 03 Mar 2019 12:56:43 -0800 (PST) MIME-Version: 1.0 References: <201903011439.x21EdFlH055596@repo.freebsd.org> <20190302104909.GA25217@FreeBSD.org> <64CCD099-1916-4ACC-B1B6-3F22BDE55C7C@gmail.com> <06d7e6402ad6f673b15873a9d99c9382f21e64b9.camel@freebsd.org> In-Reply-To: <06d7e6402ad6f673b15873a9d99c9382f21e64b9.camel@freebsd.org> From: Warner Losh Date: Sun, 3 Mar 2019 13:56:32 -0700 Message-ID: Subject: Re: svn commit: r344701 - head/sbin/camcontrol To: Ian Lepore Cc: Garrett Cooper , Steven Hartland , Alexey Dokuchaev , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Rspamd-Queue-Id: 9AFAD6BD2B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=D6/2/wV7 X-Spamd-Result: default: False [-2.73 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.97)[-0.968,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; NEURAL_HAM_LONG(-1.00)[-0.996,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; NEURAL_HAM_SHORT(-0.32)[-0.322,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; MX_GOOD(-0.01)[cached: ALT1.aspmx.l.google.com]; RCPT_COUNT_SEVEN(0.00)[7]; RCVD_IN_DNSWL_NONE(0.00)[1.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]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; IP_SCORE(-0.43)[ip: (2.64), ipnet: 2607:f8b0::/32(-2.70), asn: 15169(-2.04), country: US(-0.07)]; FREEMAIL_CC(0.00)[gmail.com] 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-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Mar 2019 20:56:46 -0000 On Sun, Mar 3, 2019, 1:29 PM Ian Lepore wrote: > On Sun, 2019-03-03 at 12:20 -0800, Enji Cooper wrote: > > > On Mar 3, 2019, at 11:12, Steven Hartland > > > wrote: > > > > > > Not really much more to say that isn't explained by that and the > > > code. > > > > > > Sure I could have used a different sentence structure for the body > > > but it wouldn't add anything IMO, thoughts? > > > > Why the previous sector size was wrong isn=E2=80=99t clear from the > > commit message. Why switch from a sizeof to 0? > > Cheers! > > -Enji > > > > The commit message said it was "incorrect / unused". While a bit terse, > it does communicate that the old value was incorrect (by being there at > all) because the value is unused (so zero more clearly expresses that). > Correct. The standard also encourages that for future proofing the code. Though in this case this opcode is so old, there is almost zero chance it will change. Warner It's not completely a joke that most English-speaking software > engineers have English as a second language. :) > > -- Ian > > > > From owner-svn-src-head@freebsd.org Sun Mar 3 18:57:49 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 608B01514AA6; Sun, 3 Mar 2019 18:57:49 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0283A8EA7A; Sun, 3 Mar 2019 18:57:49 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E3CFB20BB8; Sun, 3 Mar 2019 18:57:48 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x23IvmN3009287; Sun, 3 Mar 2019 18:57:48 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x23IvmuS009286; Sun, 3 Mar 2019 18:57:48 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201903031857.x23IvmuS009286@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 3 Mar 2019 18:57:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344741 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 344741 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 0283A8EA7A X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.96)[-0.960,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Mar 2019 18:57:49 -0000 Author: glebius Date: Sun Mar 3 18:57:48 2019 New Revision: 344741 URL: https://svnweb.freebsd.org/changeset/base/344741 Log: Remove bogus assert that I added in r319722. It is a legitimate case to call soabort() on a newborn socket created by sonewconn() in case if further setup of PCB failed. Code in sofree() handles such socket correctly. Submitted by: jtl, rrs MFC after: 3 weeks Modified: head/sys/kern/uipc_socket.c Modified: head/sys/kern/uipc_socket.c ============================================================================== --- head/sys/kern/uipc_socket.c Sun Mar 3 10:00:26 2019 (r344740) +++ head/sys/kern/uipc_socket.c Sun Mar 3 18:57:48 2019 (r344741) @@ -1174,7 +1174,6 @@ soabort(struct socket *so) KASSERT(so->so_count == 0, ("soabort: so_count")); KASSERT((so->so_state & SS_PROTOREF) == 0, ("soabort: SS_PROTOREF")); KASSERT(so->so_state & SS_NOFDREF, ("soabort: !SS_NOFDREF")); - KASSERT(so->so_qstate == SQ_NONE, ("soabort: !SQ_NONE")); VNET_SO_ASSERT(so); if (so->so_proto->pr_usrreqs->pru_abort != NULL) From owner-svn-src-head@freebsd.org Sun Mar 3 19:12:27 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EA5D815152E6 for ; Sun, 3 Mar 2019 19:12:26 +0000 (UTC) (envelope-from steven@multiplay.co.uk) Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B45208F37D for ; Sun, 3 Mar 2019 19:12:24 +0000 (UTC) (envelope-from steven@multiplay.co.uk) Received: by mail-ed1-x52d.google.com with SMTP id f2so2463113edy.13 for ; Sun, 03 Mar 2019 11:12:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=multiplay-co-uk.20150623.gappssmtp.com; s=20150623; h=from:subject:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=d/tAVQpwLOJPN0y9NsV2K1F6e3/VXv2eQu1E+Jf1bpo=; b=wx904Uh8/5ey+2IY0HtYjlcHJdyg5VJnH87PlkR7thu5raAAyupmy/mpOPk6/njL+M LHpRGkop0xNNh+ImGP99b+y6WEVCcFOOC62MV8EwcpmrXUwZPFdvS0UECPiwMuwHash+ iNAgT4UARJxxpcRal6L5GeKjL/WtzWWa/XS2ZBn5P+cAvp4q1beLA1JEuIqf6dgFjr3D vg6vMf+LZ1G5sgEd0dHe5GGmRikOmPPUwHqMAwROoK6RIJAZzFQwbVeS9IqHLSOLdgib dj8SZ6DZ3xHgUI0Y+uRqxNs7FIR3RVKBkySXX+mOVY4vEBrhFDbgoeilDWYjWfGk+u7N 3OWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=d/tAVQpwLOJPN0y9NsV2K1F6e3/VXv2eQu1E+Jf1bpo=; b=UTf40JDW1xQDNPKsUInmx9SJvtkomggkoMvKk9ex/47FapL9WZBWMZegRhXH8O7ja4 vP23ugUGl31rfAMcs0Y27AtAvzNROjvklMJduH59H9D+Bon9Zo1lftb0ht7f0N4NVU8s eWwKcOjcNCvWKBKuyRYhRxp42c4Dsntt+nEae3kfsiJ4NDzH+WcwJDm9JM8aM6L7kQCk JM4ikqZ6pWzqZnQG1O3G2s+h/9HkNAf5n2weKldDnqEz6Gk9b2gvHQyufpb08EO4pRoo 8n3nOxG8JMBL9cSvx005VipWXDC9ZRtIe+lD5D6fdEYZ+yAHt1Ekb0Vtzie29Y7s4yGK /xaw== X-Gm-Message-State: APjAAAXpYnpZ5VksCVBBji8i8rJ6NooeZIKIa6iSgGqec50iucA07Hxw 0vvxo+lkpOJ4aqG9iIx0BTFU4nxupcm1Bw== X-Google-Smtp-Source: APXvYqyw6pPnetQwRspCd00/31wxlBMFyQkZ7p7NSlJfLniioStaL48TBH8FQqJqN95f2bRYqk9YUw== X-Received: by 2002:a05:6402:171a:: with SMTP id y26mr12842718edu.72.1551640343324; Sun, 03 Mar 2019 11:12:23 -0800 (PST) Received: from [10.44.128.75] ([161.12.40.153]) by smtp.gmail.com with ESMTPSA id y45sm1407472edd.33.2019.03.03.11.12.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Mar 2019 11:12:22 -0800 (PST) From: Steven Hartland X-Google-Original-From: Steven Hartland Subject: Re: svn commit: r344701 - head/sbin/camcontrol To: Alexey Dokuchaev Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201903011439.x21EdFlH055596@repo.freebsd.org> <20190302104909.GA25217@FreeBSD.org> Message-ID: Date: Sun, 3 Mar 2019 19:12:23 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <20190302104909.GA25217@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Rspamd-Queue-Id: B45208F37D X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=multiplay-co-uk.20150623.gappssmtp.com header.s=20150623 header.b=wx904Uh8; spf=pass (mx1.freebsd.org: domain of steven@multiplay.co.uk designates 2a00:1450:4864:20::52d as permitted sender) smtp.mailfrom=steven@multiplay.co.uk X-Spamd-Result: default: False [-5.19 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[multiplay-co-uk.20150623.gappssmtp.com:s=20150623]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[multiplay.co.uk]; TO_DN_SOME(0.00)[]; MID_RHS_MATCH_TO(1.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: ASPMX.L.GOOGLE.COM]; DKIM_TRACE(0.00)[multiplay-co-uk.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[d.2.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.5.4.1.0.0.a.2.list.dnswl.org : 127.0.5.0]; RCVD_COUNT_THREE(0.00)[3]; NEURAL_HAM_SHORT(-0.98)[-0.983,0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; IP_SCORE(-2.70)[ip: (-9.11), ipnet: 2a00:1450::/32(-2.29), asn: 15169(-2.04), country: US(-0.07)] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Mar 2019 19:12:27 -0000 Not really much more to say that isn't explained by that and the code. Sure I could have used a different sentence structure for the body but it wouldn't add anything IMO, thoughts? On 02/03/2019 10:49, Alexey Dokuchaev wrote: > On Fri, Mar 01, 2019 at 02:39:15PM +0000, Steven Hartland wrote: >> New Revision: 344701 >> URL: https://svnweb.freebsd.org/changeset/base/344701 >> >> Log: >> Fix incorrect / unused sector_count for identify requests >> >> Fix incorrect / unused sector_count for identify requests from camcontrol. >> >> Submitted by: Alexey Dokuchaev > Thanks, although commit message is a bit scarce. Also, for some reason, > it consists of two nearly identical lines -- unnoticed copy paste error? > > ./danfe From owner-svn-src-head@freebsd.org Sun Mar 3 20:28:58 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D19D8151885C for ; Sun, 3 Mar 2019 20:28:57 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1a.eu.mailhop.org (outbound1a.eu.mailhop.org [52.58.109.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 17CE56AAC6 for ; Sun, 3 Mar 2019 20:28:56 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1551644925; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=Bbb9slN/obZFX03nvnWgXUWiMcECcsKL91NXiLzXvUE4+JpjRGIp9/RXasSjHtZ38sXizj4wDJKMQ hbcCdMHlapH5nQShZyXq6Lt7KOgCQYxRuJdT8iXBjGAJYmsaw+INOOusnPcZYijDFqU8imU69589Wm cxMz5u9JGEWBxbLHOMIALE3ybR8hxHmlg2uLvW0bBZcKk3obPkU3/Mif/U2o4C/OTe8hTq/iZ8WUD8 Mh0N0MhocBaNVpI0Y2OerD9hIZCuY644ZMx2NkYmgyvVJ8ciBkbo2ocWIFhcIgd5ndO37A4eXz4Nks ogjX/mkjgOpDYFF8kHE26MbubbBbzhw== 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=LTrd0UHBRe0R54jRXV2nNnmuEfMClrJnrJHvo4y6JyA=; b=JoUeo69J1NcegtCUkOu/EeeDfDW3axykoufm6mrxB+kSNpmhlr9DV8fa5a2zcYRBD3HIFm/OmtqVq Fet3uRiIwjg9TjZ2kwBpcYXMp919sGHvtuHqFywlNnnvvRu3dHV5iAn63aeTZAx9IYYK17HMPnJVjt 2WEzH3HVU2GxHRHWJOH9kIjmkn0+2xto3C2O7JoTNUtoE1T6GtkZsNwOwEQw7xGpM19NEzlgk2uYg4 nVnsEqODw5vYGfDt8Ejm3UXr4jFAqm2QfPXswjd82TLdeiX+SleaPZwsOkA4tanKLm09vG6j/i5FB5 MN3mKSqsOJvF3x34bdTsRlSdJLFvyYg== ARC-Authentication-Results: i=1; outbound2.eu.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=LTrd0UHBRe0R54jRXV2nNnmuEfMClrJnrJHvo4y6JyA=; b=fvQzb1DwaHwpIesVf22yZ8BumwVj3tdOa9xhyCrTxv+jIkViP9E6N86OcA2JaL8fi4A4hYanennmD F1u1ompuK25w1QM/IBX/9o7UXvURf9vMn6GPLAD1PRnz60tK+t/nxlgXKjKhEBR8tdwH+y57EpPGpY sqxn4ZCUai0mFT/t8dyAKWyaiPHHAN18C0OPyB+yUSFqA4crHtPF4MtxxvbOfCUob5sA9zNzfifQlP ZV1inCmxJzOWfubjYK/xuqHQyLiddCj76Rs3lpl8fJe+PLJLT96lxW0ZPRISGCrgXlU5DgWsaO7BX+ NEGFdv7gD2/teA/efK/ykqA7mmYvMeQ== X-MHO-RoutePath: aGlwcGll X-MHO-User: ef4d79e9-3df2-11e9-803b-31925da7267c 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 outbound2.eu.mailhop.org (Halon) with ESMTPSA id ef4d79e9-3df2-11e9-803b-31925da7267c; Sun, 03 Mar 2019 20:28:43 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id x23KSfwi017449; Sun, 3 Mar 2019 13:28:41 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <06d7e6402ad6f673b15873a9d99c9382f21e64b9.camel@freebsd.org> Subject: Re: svn commit: r344701 - head/sbin/camcontrol From: Ian Lepore To: Enji Cooper , Steven Hartland Cc: Alexey Dokuchaev , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Sun, 03 Mar 2019 13:28:41 -0700 In-Reply-To: <64CCD099-1916-4ACC-B1B6-3F22BDE55C7C@gmail.com> References: <201903011439.x21EdFlH055596@repo.freebsd.org> <20190302104909.GA25217@FreeBSD.org> <64CCD099-1916-4ACC-B1B6-3F22BDE55C7C@gmail.com> 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: 17CE56AAC6 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.977,0]; ASN(0.00)[asn:16509, ipnet:52.58.0.0/15, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Mar 2019 20:28:58 -0000 On Sun, 2019-03-03 at 12:20 -0800, Enji Cooper wrote: > > On Mar 3, 2019, at 11:12, Steven Hartland > > wrote: > > > > Not really much more to say that isn't explained by that and the > > code. > > > > Sure I could have used a different sentence structure for the body > > but it wouldn't add anything IMO, thoughts? > > Why the previous sector size was wrong isn’t clear from the > commit message. Why switch from a sizeof to 0? > Cheers! > -Enji > The commit message said it was "incorrect / unused". While a bit terse, it does communicate that the old value was incorrect (by being there at all) because the value is unused (so zero more clearly expresses that). It's not completely a joke that most English-speaking software engineers have English as a second language. :) -- Ian From owner-svn-src-head@freebsd.org Sun Mar 3 21:42:21 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7557151D9AA; Sun, 3 Mar 2019 21:42:20 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.139]) (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 459006F1E6; Sun, 3 Mar 2019 21:42:18 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id 0Ys4htSCThfkP0Ys5hUeTJ; Sun, 03 Mar 2019 14:42:10 -0700 X-Authority-Analysis: v=2.3 cv=RKLN4Lq+ c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=8nJEP1OIZ-IA:10 a=NTGMnVQrEZIA:10 a=6I5d2MoRAAAA:8 a=ASrO2z8EAAAA:8 a=YxBL1-UpAAAA:8 a=GRRj7yhdenHdc00NboEA:9 a=wPNLvfGTeEIA:10 a=IjZwj45LgO3ly-622nXo:22 a=hMlqHZxbFqNCaWTKXPQf:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 55CE3410; Sun, 3 Mar 2019 13:42:07 -0800 (PST) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id x23Lg635087505; Sun, 3 Mar 2019 13:42:06 -0800 (PST) (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 x23Lg6Xf087501; Sun, 3 Mar 2019 13:42:06 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201903032142.x23Lg6Xf087501@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.8.0 04/21/2012 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: Ian Lepore cc: Enji Cooper , Steven Hartland , Alexey Dokuchaev , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r344701 - head/sbin/camcontrol In-Reply-To: Message from Ian Lepore of "Sun, 03 Mar 2019 13:28:41 -0700." <06d7e6402ad6f673b15873a9d99c9382f21e64b9.camel@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Date: Sun, 03 Mar 2019 13:42:06 -0800 X-CMAE-Envelope: MS4wfF2yxYOVI2z2Yp47k5itcuK4Ug9tJD01CNGXK9C1cSd7/arg8xuv+fLmOUmjPYZtOsuA7/EH3yQkLySw45gDUZjo/fN7lDiLvzn/8F2vgP48sEnC74fX Xj8V1xwnr4j2O5Vab2DCN1DnbODrpyls0VBOLzclEkpQN9I7fkKs3iQoKRgJQqhtEJzYIeUqS30yLwF8IaK/88osxeLZBbYOBnnKTOn2GH9CDbGmzIR9o0s3 jJBXKSMvW0PXz1LoS45XRpw3RTa634fogKbNZO/1/KLO4rwseLttRmoxUNOJBPDDJQX+v5zXl9DcoPYUr95b2cvg2xZ2Z9y+Z1iJTLkeCqjI2Gg/MgjY3wua Y2bwwOLN7SAguJ1PoVSXrOYFhEp+rA== X-Rspamd-Queue-Id: 459006F1E6 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-4.41 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; TO_DN_SOME(0.00)[]; MV_CASE(0.50)[]; HAS_XAW(0.00)[]; MX_GOOD(-0.01)[spqr.komquats.com]; NEURAL_HAM_SHORT(-0.69)[-0.691,0]; RCPT_COUNT_SEVEN(0.00)[7]; RCVD_IN_DNSWL_LOW(-0.10)[139.136.59.64.list.dnswl.org : 127.0.5.1]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; ASN(0.00)[asn:6327, ipnet:64.59.128.0/20, country:CA]; MIME_TRACE(0.00)[0:+]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.zen.spamhaus.org : 127.0.0.11]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; RCVD_COUNT_FIVE(0.00)[5]; REPLYTO_EQ_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(-2.01)[ip: (-5.03), ipnet: 64.59.128.0/20(-2.75), asn: 6327(-2.16), country: CA(-0.09)]; TO_MATCH_ENVRCPT_SOME(0.00)[]; R_SPF_NA(0.00)[]; FREEMAIL_CC(0.00)[gmail.com]; RCVD_TLS_LAST(0.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Mar 2019 21:42:21 -0000 In message <06d7e6402ad6f673b15873a9d99c9382f21e64b9.camel@freebsd.org> , Ian Le pore writes: > On Sun, 2019-03-03 at 12:20 -0800, Enji Cooper wrote: > > > On Mar 3, 2019, at 11:12, Steven Hartland > > > wrote: > > > > > > Not really much more to say that isn't explained by that and the > > > code. > > > > > > Sure I could have used a different sentence structure for the body > > > but it wouldn't add anything IMO, thoughts? > > > > Why the previous sector size was wrong isn’t clear from the > > commit message. Why switch from a sizeof to 0? > > Cheers! > > -Enji > > > > The commit message said it was "incorrect / unused". While a bit terse, > it does communicate that the old value was incorrect (by being there at > all) because the value is unused (so zero more clearly expresses that). > > It's not completely a joke that most English-speaking software > engineers have English as a second language. :) This is one of those profound quotes that should be in fortune(1). -- 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-head@freebsd.org Mon Mar 4 00:49:08 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AA2FD1523B0F; Mon, 4 Mar 2019 00:49:08 +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 4CA0376668; Mon, 4 Mar 2019 00:49:08 +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 3388124754; Mon, 4 Mar 2019 00:49:08 +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 x240n7jV092139; Mon, 4 Mar 2019 00:49:07 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x240n7JV092136; Mon, 4 Mar 2019 00:49:07 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201903040049.x240n7JV092136@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 4 Mar 2019 00:49:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344743 - head/sys/cam/ctl X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/sys/cam/ctl X-SVN-Commit-Revision: 344743 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4CA0376668 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.96)[-0.958,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 00:49:08 -0000 Author: mav Date: Mon Mar 4 00:49:07 2019 New Revision: 344743 URL: https://svnweb.freebsd.org/changeset/base/344743 Log: Reduce CTL threads priority to about PUSER. Since in most configurations CTL serves as network service, we found that this change improves local system interactivity under heavy load. Priority of main threads is set slightly higher then worker taskqueues to make them quickly sort incoming requests not creating bottlenecks, while plenty of worker taskqueues should be less sensitive to latency. MFC after: 1 week Sponsored by: iXsystems, Inc. Modified: head/sys/cam/ctl/ctl.c head/sys/cam/ctl/ctl_backend_block.c head/sys/cam/ctl/ctl_backend_ramdisk.c Modified: head/sys/cam/ctl/ctl.c ============================================================================== --- head/sys/cam/ctl/ctl.c Sun Mar 3 19:55:06 2019 (r344742) +++ head/sys/cam/ctl/ctl.c Mon Mar 4 00:49:07 2019 (r344743) @@ -66,6 +66,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include #include @@ -13191,6 +13193,9 @@ ctl_work_thread(void *arg) int retval; CTL_DEBUG_PRINT(("ctl_work_thread starting\n")); + thread_lock(curthread); + sched_prio(curthread, PUSER - 1); + thread_unlock(curthread); while (!softc->shutdown) { /* @@ -13240,7 +13245,7 @@ ctl_work_thread(void *arg) } /* Sleep until we have something to do. */ - mtx_sleep(thr, &thr->queue_lock, PDROP | PRIBIO, "-", 0); + mtx_sleep(thr, &thr->queue_lock, PDROP, "-", 0); } thr->thread = NULL; kthread_exit(); @@ -13253,6 +13258,9 @@ ctl_lun_thread(void *arg) struct ctl_be_lun *be_lun; CTL_DEBUG_PRINT(("ctl_lun_thread starting\n")); + thread_lock(curthread); + sched_prio(curthread, PUSER - 1); + thread_unlock(curthread); while (!softc->shutdown) { mtx_lock(&softc->ctl_lock); @@ -13266,7 +13274,7 @@ ctl_lun_thread(void *arg) /* Sleep until we have something to do. */ mtx_sleep(&softc->pending_lun_queue, &softc->ctl_lock, - PDROP | PRIBIO, "-", 0); + PDROP, "-", 0); } softc->lun_thread = NULL; kthread_exit(); @@ -13284,6 +13292,9 @@ ctl_thresh_thread(void *arg) int i, e, set; CTL_DEBUG_PRINT(("ctl_thresh_thread starting\n")); + thread_lock(curthread); + sched_prio(curthread, PUSER - 1); + thread_unlock(curthread); while (!softc->shutdown) { mtx_lock(&softc->ctl_lock); @@ -13371,7 +13382,7 @@ ctl_thresh_thread(void *arg) } } mtx_sleep(&softc->thresh_thread, &softc->ctl_lock, - PDROP | PRIBIO, "-", CTL_LBP_PERIOD * hz); + PDROP, "-", CTL_LBP_PERIOD * hz); } softc->thresh_thread = NULL; kthread_exit(); Modified: head/sys/cam/ctl/ctl_backend_block.c ============================================================================== --- head/sys/cam/ctl/ctl_backend_block.c Sun Mar 3 19:55:06 2019 (r344742) +++ head/sys/cam/ctl/ctl_backend_block.c Mon Mar 4 00:49:07 2019 (r344743) @@ -2381,7 +2381,7 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, */ retval = taskqueue_start_threads(&be_lun->io_taskqueue, /*num threads*/num_threads, - /*priority*/PWAIT, + /*priority*/PUSER, /*thread name*/ "%s taskq", be_lun->lunname); Modified: head/sys/cam/ctl/ctl_backend_ramdisk.c ============================================================================== --- head/sys/cam/ctl/ctl_backend_ramdisk.c Sun Mar 3 19:55:06 2019 (r344742) +++ head/sys/cam/ctl/ctl_backend_ramdisk.c Mon Mar 4 00:49:07 2019 (r344743) @@ -1149,7 +1149,7 @@ ctl_backend_ramdisk_create(struct ctl_be_ramdisk_softc retval = taskqueue_start_threads(&be_lun->io_taskqueue, /*num threads*/1, - /*priority*/PWAIT, + /*priority*/PUSER, /*thread name*/ "%s taskq", be_lun->lunname); if (retval != 0) From owner-svn-src-head@freebsd.org Mon Mar 4 01:54:29 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B80B115253E4; Mon, 4 Mar 2019 01:54:29 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5DEB580844; Mon, 4 Mar 2019 01:54:29 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5251F2531E; Mon, 4 Mar 2019 01:54:29 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x241sTrB028000; Mon, 4 Mar 2019 01:54:29 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x241sTpj027998; Mon, 4 Mar 2019 01:54:29 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201903040154.x241sTpj027998@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 4 Mar 2019 01:54:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344744 - head/sys/dev/rtwn/rtl8192c X-SVN-Group: head X-SVN-Commit-Author: avos X-SVN-Commit-Paths: head/sys/dev/rtwn/rtl8192c X-SVN-Commit-Revision: 344744 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5DEB580844 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.96)[-0.960,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 01:54:29 -0000 Author: avos Date: Mon Mar 4 01:54:28 2019 New Revision: 344744 URL: https://svnweb.freebsd.org/changeset/base/344744 Log: rtwn_usb(4): fix LED blinking for RTL8192CU during scanning Tested with RTL8188CUS, STA mode. MFC after: 5 days Modified: head/sys/dev/rtwn/rtl8192c/r92c_init.c Modified: head/sys/dev/rtwn/rtl8192c/r92c_init.c ============================================================================== --- head/sys/dev/rtwn/rtl8192c/r92c_init.c Mon Mar 4 00:49:07 2019 (r344743) +++ head/sys/dev/rtwn/rtl8192c/r92c_init.c Mon Mar 4 01:54:28 2019 (r344744) @@ -322,6 +322,7 @@ r92c_init_antsel(struct rtwn_softc *sc) rtwn_bb_setbits(sc, R92C_FPGA0_RFPARAM(0), 0, 0x2000); reg = rtwn_bb_read(sc, R92C_FPGA0_RFIFACEOE(0)); sc->sc_ant = MS(reg, R92C_FPGA0_RFIFACEOE0_ANT); /* XXX */ + rtwn_setbits_1(sc, R92C_LEDCFG2, 0x80, 0); } void From owner-svn-src-head@freebsd.org Mon Mar 4 03:02:16 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 456381526539; Mon, 4 Mar 2019 03:02:16 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DC26182B86; Mon, 4 Mar 2019 03:02:15 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B4FC625F28; Mon, 4 Mar 2019 03:02:15 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x2432Fk9065056; Mon, 4 Mar 2019 03:02:15 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x2432FAY065052; Mon, 4 Mar 2019 03:02:15 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201903040302.x2432FAY065052@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 4 Mar 2019 03:02:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344745 - in head/sys/dev/rtwn/rtl8192c: . usb X-SVN-Group: head X-SVN-Commit-Author: avos X-SVN-Commit-Paths: in head/sys/dev/rtwn/rtl8192c: . usb X-SVN-Commit-Revision: 344745 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: DC26182B86 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.971,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 03:02:16 -0000 Author: avos Date: Mon Mar 4 03:02:14 2019 New Revision: 344745 URL: https://svnweb.freebsd.org/changeset/base/344745 Log: rtwn_usb(4): fix Tx instability with RTL8192CU chipsets - Fix data frames transmission via POWER_STATUS register setup - it seems to be set by MACID_CONFIG firmware command, which was broken* in r290439 and later disabled in r307529. We can re-enable it later if / when firmware rate adaptation will be ready; however, this step will be required anyway - for firmware-less builds. - Force RTS / CTS protection frame rate to CCK1 (this rate works fine without any additional setup; no better workaround is known yet). The problem was not observed on the channel 1 or with CCK1 rate enforced ('ifconfig wlan0 ucastrate 1' for 11 b/g; not possible for 11n networks due to ifconfig(8) bug). * I'm not sure if it works before r290439 because - AFAIR - I never seen firmware rate adaptation working for 10-STABLE urtwn(4) (It needs EN_BCN bit set and RSSI updates at least). Tested with RTL8188CUS in STA mode (in regular mode and with disabled MRR - DARFRC*8 is set to 0) PR: 233949 MFC after: 2 weeks Modified: head/sys/dev/rtwn/rtl8192c/r92c_reg.h head/sys/dev/rtwn/rtl8192c/r92c_tx.c head/sys/dev/rtwn/rtl8192c/usb/r92cu_init.c Modified: head/sys/dev/rtwn/rtl8192c/r92c_reg.h ============================================================================== --- head/sys/dev/rtwn/rtl8192c/r92c_reg.h Mon Mar 4 01:54:28 2019 (r344744) +++ head/sys/dev/rtwn/rtl8192c/r92c_reg.h Mon Mar 4 03:02:14 2019 (r344745) @@ -148,6 +148,7 @@ #define R92C_RD_RESP_PKT_TH 0x463 #define R92C_INIRTS_RATE_SEL 0x480 #define R92C_INIDATA_RATE_SEL(macid) (0x484 + (macid)) +#define R92C_POWER_STATUS 0x4a4 #define R92C_QUEUE_CTRL 0x4c6 #define R92C_MAX_AGGR_NUM 0x4ca #define R92C_BAR_MODE_CTRL 0x4cc Modified: head/sys/dev/rtwn/rtl8192c/r92c_tx.c ============================================================================== --- head/sys/dev/rtwn/rtl8192c/r92c_tx.c Mon Mar 4 01:54:28 2019 (r344744) +++ head/sys/dev/rtwn/rtl8192c/r92c_tx.c Mon Mar 4 03:02:14 2019 (r344745) @@ -211,6 +211,12 @@ r92c_tx_setup_macid(void *buf, int id) struct r92c_tx_desc *txd = (struct r92c_tx_desc *)buf; txd->txdw1 |= htole32(SM(R92C_TXDW1_MACID, id)); + + /* XXX does not belong here */ + /* XXX temporary (I hope) */ + /* Force CCK1 for RTS / CTS frames (driver bug) */ + txd->txdw4 &= ~htole32(SM(R92C_TXDW4_RTSRATE, R92C_TXDW4_RTSRATE_M)); + txd->txdw4 &= ~htole32(R92C_TXDW4_RTS_SHORT); } void Modified: head/sys/dev/rtwn/rtl8192c/usb/r92cu_init.c ============================================================================== --- head/sys/dev/rtwn/rtl8192c/usb/r92cu_init.c Mon Mar 4 01:54:28 2019 (r344744) +++ head/sys/dev/rtwn/rtl8192c/usb/r92cu_init.c Mon Mar 4 03:02:14 2019 (r344745) @@ -357,6 +357,8 @@ void r92cu_post_init(struct rtwn_softc *sc) { + rtwn_write_4(sc, R92C_POWER_STATUS, 0x5); + /* Perform LO and IQ calibrations. */ r92c_iq_calib(sc); /* Perform LC calibration. */ From owner-svn-src-head@freebsd.org Mon Mar 4 03:47:07 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC9071500AE0; Mon, 4 Mar 2019 03:47:06 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8BD3684C8B; Mon, 4 Mar 2019 03:47:06 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7FC012662D; Mon, 4 Mar 2019 03:47:06 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x243l6cc087445; Mon, 4 Mar 2019 03:47:06 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x243l6ZX087444; Mon, 4 Mar 2019 03:47:06 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201903040347.x243l6ZX087444@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 4 Mar 2019 03:47:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344748 - head/sbin/ifconfig X-SVN-Group: head X-SVN-Commit-Author: avos X-SVN-Commit-Paths: head/sbin/ifconfig X-SVN-Commit-Revision: 344748 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8BD3684C8B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.92 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.92)[-0.923,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 03:47:07 -0000 Author: avos Date: Mon Mar 4 03:47:06 2019 New Revision: 344748 URL: https://svnweb.freebsd.org/changeset/base/344748 Log: Allow to build ifconfig(8) without wireless support The change removes SIOC[GS]IEEE80211 handling from ifconfig(8) if WITHOUT_WIRELESS_SUPPORT=yes is set in src.conf(5). Reviewed by: bz MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D19289 Modified: head/sbin/ifconfig/Makefile Modified: head/sbin/ifconfig/Makefile ============================================================================== --- head/sbin/ifconfig/Makefile Mon Mar 4 03:38:43 2019 (r344747) +++ head/sbin/ifconfig/Makefile Mon Mar 4 03:47:06 2019 (r344748) @@ -39,8 +39,10 @@ SRCS+= ifipsec.c # IPsec VTI SRCS+= sfp.c # SFP/SFP+ information LIBADD+= m +.if ${MK_WIRELESS_SUPPORT} != "no" SRCS+= ifieee80211.c # SIOC[GS]IEEE80211 support LIBADD+= 80211 +.endif SRCS+= carp.c # SIOC[GS]VH support SRCS+= ifgroup.c # ... From owner-svn-src-head@freebsd.org Mon Mar 4 06:42:07 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9F631505703; Mon, 4 Mar 2019 06:42:06 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 930788A862; Mon, 4 Mar 2019 06:42:06 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 873794E5; Mon, 4 Mar 2019 06:42:06 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x246g6uq079887; Mon, 4 Mar 2019 06:42:06 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x246g60I079886; Mon, 4 Mar 2019 06:42:06 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201903040642.x246g60I079886@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Mon, 4 Mar 2019 06:42:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344749 - head/sys/dev/ath/ath_hal X-SVN-Group: head X-SVN-Commit-Author: adrian X-SVN-Commit-Paths: head/sys/dev/ath/ath_hal X-SVN-Commit-Revision: 344749 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 930788A862 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.94 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.94)[-0.940,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-0.999,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 06:42:07 -0000 Author: adrian Date: Mon Mar 4 06:42:06 2019 New Revision: 344749 URL: https://svnweb.freebsd.org/changeset/base/344749 Log: [ath_hal] add extra ANI fields for the AR9300 HAL. I'm trying to debug why reception upstairs here is so terrible and it turns out ANI is buggy. (Which is no surprise, ANI is always buggy.) Tested: * Carambola2 (AR9331), STA/AP modes Modified: head/sys/dev/ath/ath_hal/ah.h Modified: head/sys/dev/ath/ath_hal/ah.h ============================================================================== --- head/sys/dev/ath/ath_hal/ah.h Mon Mar 4 03:47:06 2019 (r344748) +++ head/sys/dev/ath/ath_hal/ah.h Mon Mar 4 06:42:06 2019 (r344749) @@ -893,11 +893,13 @@ typedef struct { } HAL_ANI_STATS; typedef struct { - uint8_t noiseImmunityLevel; + uint8_t noiseImmunityLevel; /* OFDM */ + uint8_t cckNoiseImmunityLevel; uint8_t spurImmunityLevel; uint8_t firstepLevel; uint8_t ofdmWeakSigDetectOff; uint8_t cckWeakSigThreshold; + uint8_t mrcCckOff; uint32_t listenTime; /* NB: intentionally ordered so data exported to user space is first */ From owner-svn-src-head@freebsd.org Mon Mar 4 06:43:01 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8910E15057A2; Mon, 4 Mar 2019 06:43:01 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 28F398AA23; Mon, 4 Mar 2019 06:43:01 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1CF4850D; Mon, 4 Mar 2019 06:43:01 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x246h1Ln080689; Mon, 4 Mar 2019 06:43:01 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x246h13m080688; Mon, 4 Mar 2019 06:43:01 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201903040643.x246h13m080688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Mon, 4 Mar 2019 06:43:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344750 - head/sys/contrib/dev/ath/ath_hal/ar9300 X-SVN-Group: head X-SVN-Commit-Author: adrian X-SVN-Commit-Paths: head/sys/contrib/dev/ath/ath_hal/ar9300 X-SVN-Commit-Revision: 344750 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 28F398AA23 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.94 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.94)[-0.940,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 06:43:01 -0000 Author: adrian Date: Mon Mar 4 06:43:00 2019 New Revision: 344750 URL: https://svnweb.freebsd.org/changeset/base/344750 Log: [ath_hal_ar9300] Add the extra ANI configuration fields for the AR93xx HAL. Tested: * Carambola2 (Ar9331), STA/AP modes Modified: head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_misc.c Modified: head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_misc.c ============================================================================== --- head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_misc.c Mon Mar 4 06:42:06 2019 (r344749) +++ head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_misc.c Mon Mar 4 06:43:00 2019 (r344750) @@ -1263,15 +1263,13 @@ ar9300_get_diag_state(struct ath_hal *ah, int request, if (ani == AH_NULL) return AH_FALSE; /* Convert ar9300 HAL to FreeBSD HAL ANI state */ - /* XXX TODO: add all of these to the HAL ANI state structure */ bzero(&ahp->ext_ani_state, sizeof(ahp->ext_ani_state)); - /* XXX should this be OFDM or CCK noise immunity level? */ ahp->ext_ani_state.noiseImmunityLevel = ani->ofdm_noise_immunity_level; ahp->ext_ani_state.spurImmunityLevel = ani->spur_immunity_level; ahp->ext_ani_state.firstepLevel = ani->firstep_level; ahp->ext_ani_state.ofdmWeakSigDetectOff = ani->ofdm_weak_sig_detect_off; - /* mrc_cck_off */ - /* cck_noise_immunity_level */ + ahp->ext_ani_state.mrcCckOff = ani->mrc_cck_off; + ahp->ext_ani_state.cckNoiseImmunityLevel = ani->cck_noise_immunity_level; ahp->ext_ani_state.listenTime = ani->listen_time; From owner-svn-src-head@freebsd.org Mon Mar 4 06:51:29 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C36F11505962; Mon, 4 Mar 2019 06:51:29 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 513FA8AEDD; Mon, 4 Mar 2019 06:51:28 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id x246pJCB075171; Sun, 3 Mar 2019 22:51:19 -0800 (PST) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id x246pJDu075170; Sun, 3 Mar 2019 22:51:19 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201903040651.x246pJDu075170@ gndrsh.dnsmgr.net> Subject: Re: svn commit: r344748 - head/sbin/ifconfig In-Reply-To: <201903040347.x243l6ZX087444@repo.freebsd.org> To: Andriy Voskoboinyk Date: Sun, 3 Mar 2019 22:51:19 -0800 (PST) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 513FA8AEDD X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.95 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.946,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 06:51:29 -0000 > Author: avos > Date: Mon Mar 4 03:47:06 2019 > New Revision: 344748 > URL: https://svnweb.freebsd.org/changeset/base/344748 > > Log: > Allow to build ifconfig(8) without wireless support > > The change removes SIOC[GS]IEEE80211 handling from ifconfig(8) > if WITHOUT_WIRELESS_SUPPORT=yes is set in src.conf(5). > > Reviewed by: bz > MFC after: 1 week > Differential Revision: https://reviews.freebsd.org/D19289 Thank you, this should help dexter@ with the build option survey stuff that phk@ wrote he has been running. > Modified: > head/sbin/ifconfig/Makefile > > Modified: head/sbin/ifconfig/Makefile > ============================================================================== > --- head/sbin/ifconfig/Makefile Mon Mar 4 03:38:43 2019 (r344747) > +++ head/sbin/ifconfig/Makefile Mon Mar 4 03:47:06 2019 (r344748) > @@ -39,8 +39,10 @@ SRCS+= ifipsec.c # IPsec VTI > SRCS+= sfp.c # SFP/SFP+ information > LIBADD+= m > > +.if ${MK_WIRELESS_SUPPORT} != "no" > SRCS+= ifieee80211.c # SIOC[GS]IEEE80211 support > LIBADD+= 80211 > +.endif > > SRCS+= carp.c # SIOC[GS]VH support > SRCS+= ifgroup.c # ... > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Mon Mar 4 10:42:26 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8CF24150BAC3; Mon, 4 Mar 2019 10:42:26 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3CB3092889; Mon, 4 Mar 2019 10:42:26 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 313202D6D; Mon, 4 Mar 2019 10:42:26 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24AgQAD007677; Mon, 4 Mar 2019 10:42:26 GMT (envelope-from fsu@FreeBSD.org) Received: (from fsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24AgPmq007674; Mon, 4 Mar 2019 10:42:25 GMT (envelope-from fsu@FreeBSD.org) Message-Id: <201903041042.x24AgPmq007674@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: fsu set sender to fsu@FreeBSD.org using -f From: Fedor Uporov Date: Mon, 4 Mar 2019 10:42:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344751 - head/sys/fs/ext2fs X-SVN-Group: head X-SVN-Commit-Author: fsu X-SVN-Commit-Paths: head/sys/fs/ext2fs X-SVN-Commit-Revision: 344751 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 3CB3092889 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.981,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 10:42:26 -0000 Author: fsu Date: Mon Mar 4 10:42:25 2019 New Revision: 344751 URL: https://svnweb.freebsd.org/changeset/base/344751 Log: Make superblock reading logic more strict. Add more on-disk superblock consistency checks to ext2_compute_sb_data() function. It should decrease the probability of mounting filesystems with corrupted superblock data. Reviewed by: pfg MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D19322 Modified: head/sys/fs/ext2fs/ext2_alloc.c head/sys/fs/ext2fs/ext2_extern.h head/sys/fs/ext2fs/ext2_vfsops.c head/sys/fs/ext2fs/ext2fs.h Modified: head/sys/fs/ext2fs/ext2_alloc.c ============================================================================== --- head/sys/fs/ext2fs/ext2_alloc.c Mon Mar 4 06:43:00 2019 (r344750) +++ head/sys/fs/ext2fs/ext2_alloc.c Mon Mar 4 10:42:25 2019 (r344751) @@ -457,7 +457,7 @@ noinodes: /* * 64-bit compatible getters and setters for struct ext2_gd from ext2fs.h */ -static uint64_t +uint64_t e2fs_gd_get_b_bitmap(struct ext2_gd *gd) { @@ -465,7 +465,7 @@ e2fs_gd_get_b_bitmap(struct ext2_gd *gd) gd->ext2bgd_b_bitmap); } -static uint64_t +uint64_t e2fs_gd_get_i_bitmap(struct ext2_gd *gd) { @@ -754,7 +754,7 @@ ext2_hashalloc(struct inode *ip, int cg, long pref, in return (0); } -static unsigned long +static uint64_t ext2_cg_number_gdb_nometa(struct m_ext2fs *fs, int cg) { @@ -768,7 +768,7 @@ ext2_cg_number_gdb_nometa(struct m_ext2fs *fs, int cg) EXT2_DESCS_PER_BLOCK(fs)); } -static unsigned long +static uint64_t ext2_cg_number_gdb_meta(struct m_ext2fs *fs, int cg) { unsigned long metagroup; @@ -784,7 +784,7 @@ ext2_cg_number_gdb_meta(struct m_ext2fs *fs, int cg) return (0); } -static unsigned long +uint64_t ext2_cg_number_gdb(struct m_ext2fs *fs, int cg) { unsigned long first_meta_bg, metagroup; Modified: head/sys/fs/ext2fs/ext2_extern.h ============================================================================== --- head/sys/fs/ext2fs/ext2_extern.h Mon Mar 4 06:43:00 2019 (r344750) +++ head/sys/fs/ext2fs/ext2_extern.h Mon Mar 4 10:42:25 2019 (r344751) @@ -91,6 +91,7 @@ int ext2_dirrewrite(struct inode *, int ext2_dirempty(struct inode *, ino_t, struct ucred *); int ext2_checkpath(struct inode *, struct inode *, struct ucred *); int ext2_cg_has_sb(struct m_ext2fs *fs, int cg); +uint64_t ext2_cg_number_gdb(struct m_ext2fs *fs, int cg); int ext2_inactive(struct vop_inactive_args *); int ext2_htree_add_entry(struct vnode *, struct ext2fs_direct_2 *, struct componentname *); @@ -104,6 +105,8 @@ int ext2_htree_lookup(struct inode *, const char *, in int ext2_search_dirblock(struct inode *, void *, int *, const char *, int, int *, doff_t *, doff_t *, doff_t *, struct ext2fs_searchslot *); uint32_t e2fs_gd_get_ndirs(struct ext2_gd *gd); +uint64_t e2fs_gd_get_b_bitmap(struct ext2_gd *); +uint64_t e2fs_gd_get_i_bitmap(struct ext2_gd *); uint64_t e2fs_gd_get_i_tables(struct ext2_gd *); void ext2_sb_csum_set_seed(struct m_ext2fs *); int ext2_sb_csum_verify(struct m_ext2fs *); Modified: head/sys/fs/ext2fs/ext2_vfsops.c ============================================================================== --- head/sys/fs/ext2fs/ext2_vfsops.c Mon Mar 4 06:43:00 2019 (r344750) +++ head/sys/fs/ext2fs/ext2_vfsops.c Mon Mar 4 10:42:25 2019 (r344751) @@ -98,7 +98,7 @@ VFS_SET(ext2fs_vfsops, ext2fs, 0); static int ext2_check_sb_compat(struct ext2fs *es, struct cdev *dev, int ronly); -static int compute_sb_data(struct vnode * devvp, +static int ext2_compute_sb_data(struct vnode * devvp, struct ext2fs * es, struct m_ext2fs * fs); static const char *ext2_opts[] = { "acls", "async", "noatime", "noclusterr", @@ -321,7 +321,7 @@ ext2_check_sb_compat(struct ext2fs *es, struct cdev *d } static e4fs_daddr_t -cg_location(struct m_ext2fs *fs, int number) +ext2_cg_location(struct m_ext2fs *fs, int number) { int cg, descpb, logical_sb, has_super = 0; @@ -350,82 +350,196 @@ cg_location(struct m_ext2fs *fs, int number) fs->e2fs->e2fs_first_dblock); } +static int +ext2_cg_validate(struct m_ext2fs *fs) +{ + uint64_t b_bitmap; + uint64_t i_bitmap; + uint64_t i_tables; + uint64_t first_block, last_block, last_cg_block; + struct ext2_gd *gd; + unsigned int i, cg_count; + + first_block = fs->e2fs->e2fs_first_dblock; + last_cg_block = ext2_cg_number_gdb(fs, 0); + cg_count = fs->e2fs_gcount; + + for (i = 0; i < fs->e2fs_gcount; i++) { + gd = &fs->e2fs_gd[i]; + + if (EXT2_HAS_INCOMPAT_FEATURE(fs, EXT2F_INCOMPAT_FLEX_BG) || + i == fs->e2fs_gcount - 1) { + last_block = fs->e2fs_bcount - 1; + } else { + last_block = first_block + + (EXT2_BLOCKS_PER_GROUP(fs) - 1); + } + + if ((cg_count == fs->e2fs_gcount) && + !(gd->ext4bgd_flags & EXT2_BG_INODE_ZEROED)) + cg_count = i; + + b_bitmap = e2fs_gd_get_b_bitmap(gd); + if (b_bitmap == 0) { + printf("ext2fs: cg %u: block bitmap is zero\n", i); + return (EINVAL); + + } + if (b_bitmap <= last_cg_block) { + printf("ext2fs: cg %u: block bitmap overlaps gds\n", i); + return (EINVAL); + } + if (b_bitmap < first_block || b_bitmap > last_block) { + printf("ext2fs: cg %u: block bitmap not in group, blk=%ju\n", + i, b_bitmap); + return (EINVAL); + } + + i_bitmap = e2fs_gd_get_i_bitmap(gd); + if (i_bitmap == 0) { + printf("ext2fs: cg %u: inode bitmap is zero\n", i); + return (EINVAL); + } + if (i_bitmap <= last_cg_block) { + printf("ext2fs: cg %u: inode bitmap overlaps gds\n", i); + return (EINVAL); + } + if (i_bitmap < first_block || i_bitmap > last_block) { + printf("ext2fs: cg %u: inode bitmap not in group blk=%ju\n", + i, i_bitmap); + return (EINVAL); + } + + i_tables = e2fs_gd_get_i_tables(gd); + if (i_tables == 0) { + printf("ext2fs: cg %u: inode table is zero\n", i); + return (EINVAL); + } + if (i_tables <= last_cg_block) { + printf("ext2fs: cg %u: inode talbes overlaps gds\n", i); + return (EINVAL); + } + if (i_tables < first_block || + i_tables + fs->e2fs_itpg - 1 > last_block) { + printf("ext2fs: cg %u: inode tables not in group blk=%ju\n", + i, i_tables); + return (EINVAL); + } + + if (!EXT2_HAS_INCOMPAT_FEATURE(fs, EXT2F_INCOMPAT_FLEX_BG)) + first_block += EXT2_BLOCKS_PER_GROUP(fs); + } + + return (0); +} + /* * This computes the fields of the m_ext2fs structure from the * data in the ext2fs structure read in. */ static int -compute_sb_data(struct vnode *devvp, struct ext2fs *es, +ext2_compute_sb_data(struct vnode *devvp, struct ext2fs *es, struct m_ext2fs *fs) { - int g_count = 0, error; - int i, j; struct buf *bp; uint32_t e2fs_descpb, e2fs_gdbcount_alloc; + int i, j; + int g_count = 0; + int error; - fs->e2fs_bcount = es->e2fs_bcount; - fs->e2fs_rbcount = es->e2fs_rbcount; - fs->e2fs_fbcount = es->e2fs_fbcount; - if (EXT2_HAS_INCOMPAT_FEATURE(fs, EXT2F_INCOMPAT_64BIT)) { - fs->e2fs_bcount |= (uint64_t)(es->e4fs_bcount_hi) << 32; - fs->e2fs_rbcount |= (uint64_t)(es->e4fs_rbcount_hi) << 32; - fs->e2fs_fbcount |= (uint64_t)(es->e4fs_fbcount_hi) << 32; + /* Check checksum features */ + if (EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_GDT_CSUM) && + EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_METADATA_CKSUM)) { + printf("ext2fs: incorrect checksum features combination\n"); + return (EINVAL); } + + /* Precompute checksum seed for all metadata */ + ext2_sb_csum_set_seed(fs); + + /* Verify sb csum if possible */ + if (EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_METADATA_CKSUM)) { + error = ext2_sb_csum_verify(fs); + if (error) { + return (error); + } + } + + /* Check for block size = 1K|2K|4K */ + if (es->e2fs_log_bsize > 2) { + printf("ext2fs: bad block size: %d\n", es->e2fs_log_bsize); + return (EINVAL); + } + fs->e2fs_bshift = EXT2_MIN_BLOCK_LOG_SIZE + es->e2fs_log_bsize; fs->e2fs_bsize = 1U << fs->e2fs_bshift; fs->e2fs_fsbtodb = es->e2fs_log_bsize + 1; fs->e2fs_qbmask = fs->e2fs_bsize - 1; + + /* Check for fragment size */ + if (es->e2fs_log_fsize > + (EXT2_MAX_FRAG_LOG_SIZE - EXT2_MIN_BLOCK_LOG_SIZE)) { + printf("ext2fs: invalid log cluster size: %u\n", + es->e2fs_log_fsize); + return (EINVAL); + } + fs->e2fs_fsize = EXT2_MIN_FRAG_SIZE << es->e2fs_log_fsize; - if (fs->e2fs_fsize) - fs->e2fs_fpb = fs->e2fs_bsize / fs->e2fs_fsize; - fs->e2fs_bpg = es->e2fs_bpg; - fs->e2fs_fpg = es->e2fs_fpg; - fs->e2fs_ipg = es->e2fs_ipg; + if (fs->e2fs_fsize != fs->e2fs_bsize) { + printf("ext2fs: fragment size (%u) != block size %u\n", + fs->e2fs_fsize, fs->e2fs_bsize); + return (EINVAL); + } + + fs->e2fs_fpb = fs->e2fs_bsize / fs->e2fs_fsize; + + /* Check reserved gdt blocks for future filesystem expansion */ + if (es->e2fs_reserved_ngdb > (fs->e2fs_bsize / 4)) { + printf("ext2fs: number of reserved GDT blocks too large: %u\n", + es->e2fs_reserved_ngdb); + return (EINVAL); + } + if (es->e2fs_rev == E2FS_REV0) { fs->e2fs_isize = E2FS_REV0_INODE_SIZE; } else { fs->e2fs_isize = es->e2fs_inode_size; /* + * Check first ino. + */ + if (es->e2fs_first_ino < EXT2_FIRSTINO) { + printf("ext2fs: invalid first ino: %u\n", + es->e2fs_first_ino); + return (EINVAL); + } + + /* * Simple sanity check for superblock inode size value. */ if (EXT2_INODE_SIZE(fs) < E2FS_REV0_INODE_SIZE || EXT2_INODE_SIZE(fs) > fs->e2fs_bsize || (fs->e2fs_isize & (fs->e2fs_isize - 1)) != 0) { - printf("ext2fs: invalid inode size %d\n", + printf("ext2fs: invalid inode size %u\n", fs->e2fs_isize); - return (EIO); + return (EINVAL); } } - /* Check for extra isize in big inodes. */ - if (EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_EXTRA_ISIZE) && - EXT2_INODE_SIZE(fs) < sizeof(struct ext2fs_dinode)) { - printf("ext2fs: no space for extra inode timestamps\n"); - return (EINVAL); - } - /* Check checksum features */ - if (EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_GDT_CSUM) && - EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_METADATA_CKSUM)) { - printf("ext2fs: incorrect checksum features combination\n"); - return (EINVAL); - } - /* Check for group descriptor size */ + + /* Check group descriptors */ if (EXT2_HAS_INCOMPAT_FEATURE(fs, EXT2F_INCOMPAT_64BIT) && - (es->e3fs_desc_size != sizeof(struct ext2_gd))) { - printf("ext2fs: group descriptor size unsupported %d\n", - es->e3fs_desc_size); - return (EINVAL); + es->e3fs_desc_size != E2FS_64BIT_GD_SIZE) { + printf("ext2fs: unsupported 64bit descriptor size %u\n", + es->e3fs_desc_size); + return (EINVAL); } - /* Check for block size = 1K|2K|4K */ - if (es->e2fs_log_bsize > 2) { - printf("ext2fs: bad block size: %d\n", es->e2fs_log_bsize); + + fs->e2fs_bpg = es->e2fs_bpg; + fs->e2fs_fpg = es->e2fs_fpg; + if (fs->e2fs_bpg == 0 || fs->e2fs_fpg == 0) { + printf("ext2fs: zero blocks/fragments per group\n"); return (EINVAL); } - /* Check for group size */ - if (fs->e2fs_bpg == 0) { - printf("ext2fs: zero blocks per group\n"); - return (EINVAL); - } if (fs->e2fs_bpg != fs->e2fs_bsize * 8) { printf("ext2fs: non-standard group size unsupported %d\n", fs->e2fs_bpg); @@ -433,26 +547,56 @@ compute_sb_data(struct vnode *devvp, struct ext2fs *es } fs->e2fs_ipb = fs->e2fs_bsize / EXT2_INODE_SIZE(fs); - if (fs->e2fs_ipg == 0) { - printf("ext2fs: zero inodes per group\n"); + if (fs->e2fs_ipb == 0 || + fs->e2fs_ipb > fs->e2fs_bsize / E2FS_REV0_INODE_SIZE) { + printf("ext2fs: bad inodes per block size\n"); return (EINVAL); } - fs->e2fs_itpg = fs->e2fs_ipg / fs->e2fs_ipb; - /* Check for block consistency */ - if (es->e2fs_first_dblock >= fs->e2fs_bcount) { - printf("ext2fs: invalid first data block\n"); + + fs->e2fs_ipg = es->e2fs_ipg; + if (fs->e2fs_ipg < fs->e2fs_ipb || fs->e2fs_ipg > fs->e2fs_bsize * 8) { + printf("ext2fs: invalid inodes per group: %u\n", fs->e2fs_ipb); return (EINVAL); } + + fs->e2fs_itpg = fs->e2fs_ipg / fs->e2fs_ipb; + + fs->e2fs_bcount = es->e2fs_bcount; + fs->e2fs_rbcount = es->e2fs_rbcount; + fs->e2fs_fbcount = es->e2fs_fbcount; + if (EXT2_HAS_INCOMPAT_FEATURE(fs, EXT2F_INCOMPAT_64BIT)) { + fs->e2fs_bcount |= (uint64_t)(es->e4fs_bcount_hi) << 32; + fs->e2fs_rbcount |= (uint64_t)(es->e4fs_rbcount_hi) << 32; + fs->e2fs_fbcount |= (uint64_t)(es->e4fs_fbcount_hi) << 32; + } if (fs->e2fs_rbcount > fs->e2fs_bcount || fs->e2fs_fbcount > fs->e2fs_bcount) { printf("ext2fs: invalid block count\n"); return (EINVAL); } - /* s_resuid / s_resgid ? */ + if (es->e2fs_first_dblock >= fs->e2fs_bcount) { + printf("ext2fs: first data block out of range\n"); + return (EINVAL); + } + fs->e2fs_gcount = howmany(fs->e2fs_bcount - es->e2fs_first_dblock, EXT2_BLOCKS_PER_GROUP(fs)); + if (fs->e2fs_gcount > ((uint64_t)1 << 32) - EXT2_DESCS_PER_BLOCK(fs)) { + printf("ext2fs: groups count too large: %u\n", fs->e2fs_gcount); + return (EINVAL); + } + + /* Check for extra isize in big inodes. */ + if (EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_EXTRA_ISIZE) && + EXT2_INODE_SIZE(fs) < sizeof(struct ext2fs_dinode)) { + printf("ext2fs: no space for extra inode timestamps\n"); + return (EINVAL); + } + + /* s_resuid / s_resgid ? */ + if (EXT2_HAS_INCOMPAT_FEATURE(fs, EXT2F_INCOMPAT_64BIT)) { - e2fs_descpb = fs->e2fs_bsize / sizeof(struct ext2_gd); + e2fs_descpb = fs->e2fs_bsize / E2FS_64BIT_GD_SIZE; e2fs_gdbcount_alloc = howmany(fs->e2fs_gcount, e2fs_descpb); } else { e2fs_descpb = fs->e2fs_bsize / E2FS_REV0_GD_SIZE; @@ -467,7 +611,7 @@ compute_sb_data(struct vnode *devvp, struct ext2fs *es for (i = 0; i < fs->e2fs_gdbcount; i++) { error = bread(devvp, - fsbtodb(fs, cg_location(fs, i)), + fsbtodb(fs, ext2_cg_location(fs, i)), fs->e2fs_bsize, NOCRED, &bp); if (error) { free(fs->e2fs_contigdirs, M_EXT2MNT); @@ -489,9 +633,13 @@ compute_sb_data(struct vnode *devvp, struct ext2fs *es brelse(bp); bp = NULL; } - /* Precompute checksum seed for all metadata */ - ext2_sb_csum_set_seed(fs); - /* Verfy cg csum */ + + /* Validate cgs consistency */ + error = ext2_cg_validate(fs); + if (error) + return (error); + + /* Verfy cgs csum */ if (EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_GDT_CSUM) || EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_METADATA_CKSUM)) { error = ext2_gd_csum_verify(fs, devvp->v_rdev); @@ -578,7 +726,7 @@ ext2_reload(struct mount *mp, struct thread *td) fs = VFSTOEXT2(mp)->um_e2fs; bcopy(bp->b_data, fs->e2fs, sizeof(struct ext2fs)); - if ((error = compute_sb_data(devvp, es, fs)) != 0) { + if ((error = ext2_compute_sb_data(devvp, es, fs)) != 0) { brelse(bp); return (error); } @@ -715,7 +863,7 @@ ext2_mountfs(struct vnode *devvp, struct mount *mp) M_EXT2MNT, M_WAITOK); mtx_init(EXT2_MTX(ump), "EXT2FS", "EXT2FS Lock", MTX_DEF); bcopy(es, ump->um_e2fs->e2fs, (u_int)sizeof(struct ext2fs)); - if ((error = compute_sb_data(devvp, ump->um_e2fs->e2fs, ump->um_e2fs))) + if ((error = ext2_compute_sb_data(devvp, ump->um_e2fs->e2fs, ump->um_e2fs))) goto out; /* @@ -1204,7 +1352,7 @@ ext2_cgupdate(struct ext2mount *mp, int waitfor) for (i = 0; i < fs->e2fs_gdbcount; i++) { bp = getblk(mp->um_devvp, fsbtodb(fs, - cg_location(fs, i)), + ext2_cg_location(fs, i)), fs->e2fs_bsize, 0, 0, 0); if (EXT2_HAS_INCOMPAT_FEATURE(fs, EXT2F_INCOMPAT_64BIT)) { memcpy(bp->b_data, &fs->e2fs_gd[ Modified: head/sys/fs/ext2fs/ext2fs.h ============================================================================== --- head/sys/fs/ext2fs/ext2fs.h Mon Mar 4 06:43:00 2019 (r344750) +++ head/sys/fs/ext2fs/ext2fs.h Mon Mar 4 10:42:25 2019 (r344751) @@ -395,6 +395,7 @@ struct ext2_gd { }; #define E2FS_REV0_GD_SIZE (sizeof(struct ext2_gd) / 2) +#define E2FS_64BIT_GD_SIZE (sizeof(struct ext2_gd)) /* * Macro-instructions used to manage several block sizes @@ -408,8 +409,8 @@ struct ext2_gd { * Macro-instructions used to manage fragments */ #define EXT2_MIN_FRAG_SIZE 1024 -#define EXT2_MAX_FRAG_SIZE 4096 -#define EXT2_MIN_FRAG_LOG_SIZE 10 +#define EXT2_MIN_FRAG_LOG_SIZE 10 +#define EXT2_MAX_FRAG_LOG_SIZE 30 #define EXT2_FRAG_SIZE(s) (EXT2_SB(s)->e2fs_fsize) #define EXT2_FRAGS_PER_BLOCK(s) (EXT2_SB(s)->e2fs_fpb) From owner-svn-src-head@freebsd.org Mon Mar 4 10:55:03 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C363150C48C; Mon, 4 Mar 2019 10:55:03 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BF17393781; Mon, 4 Mar 2019 10:55:02 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 994DD2F2A; Mon, 4 Mar 2019 10:55:02 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24At2EU013203; Mon, 4 Mar 2019 10:55:02 GMT (envelope-from fsu@FreeBSD.org) Received: (from fsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24At19c013199; Mon, 4 Mar 2019 10:55:01 GMT (envelope-from fsu@FreeBSD.org) Message-Id: <201903041055.x24At19c013199@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: fsu set sender to fsu@FreeBSD.org using -f From: Fedor Uporov Date: Mon, 4 Mar 2019 10:55:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344752 - head/sys/fs/ext2fs X-SVN-Group: head X-SVN-Commit-Author: fsu X-SVN-Commit-Paths: head/sys/fs/ext2fs X-SVN-Commit-Revision: 344752 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: BF17393781 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org 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]; NEURAL_HAM_SHORT(-0.98)[-0.981,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 10:55:03 -0000 Author: fsu Date: Mon Mar 4 10:55:01 2019 New Revision: 344752 URL: https://svnweb.freebsd.org/changeset/base/344752 Log: Add additional on-disk inode checks. Reviewed by: pfg MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D19323 Modified: head/sys/fs/ext2fs/ext2_csum.c head/sys/fs/ext2fs/ext2_inode_cnv.c head/sys/fs/ext2fs/ext2_vfsops.c head/sys/fs/ext2fs/ext2fs.h Modified: head/sys/fs/ext2fs/ext2_csum.c ============================================================================== --- head/sys/fs/ext2fs/ext2_csum.c Mon Mar 4 10:42:25 2019 (r344751) +++ head/sys/fs/ext2fs/ext2_csum.c Mon Mar 4 10:55:01 2019 (r344752) @@ -629,6 +629,8 @@ ext2_ei_csum_verify(struct inode *ip, struct ext2fs_di if (!memcmp(ei, &ei_zero, sizeof(struct ext2fs_dinode))) return (0); + printf("WARNING: Bad inode %ju csum - run fsck\n", ip->i_number); + return (EIO); } Modified: head/sys/fs/ext2fs/ext2_inode_cnv.c ============================================================================== --- head/sys/fs/ext2fs/ext2_inode_cnv.c Mon Mar 4 10:42:25 2019 (r344751) +++ head/sys/fs/ext2fs/ext2_inode_cnv.c Mon Mar 4 10:55:01 2019 (r344752) @@ -34,7 +34,6 @@ #include #include -#include #include #include #include @@ -92,8 +91,31 @@ ext2_print_inode(struct inode *in) int ext2_ei2i(struct ext2fs_dinode *ei, struct inode *ip) { + struct m_ext2fs *fs = ip->i_e2fs; + if ((ip->i_number < EXT2_FIRST_INO(fs) && ip->i_number != EXT2_ROOTINO) || + (ip->i_number < EXT2_ROOTINO) || + (ip->i_number > fs->e2fs->e2fs_icount)) { + printf("ext2fs: bad inode number %ju\n", ip->i_number); + return (EINVAL); + } + + if (ip->i_number == EXT2_ROOTINO && ei->e2di_nlink == 0) { + printf("ext2fs: root inode unallocated\n"); + return (EINVAL); + } ip->i_nlink = ei->e2di_nlink; + + /* Check extra inode size */ + if (EXT2_INODE_SIZE(fs) > E2FS_REV0_INODE_SIZE) { + if (E2FS_REV0_INODE_SIZE + ei->e2di_extra_isize > + EXT2_INODE_SIZE(fs) || (ei->e2di_extra_isize & 3)) { + printf("ext2fs: bad extra inode size %u, inode size=%u\n", + ei->e2di_extra_isize, EXT2_INODE_SIZE(fs)); + return (EINVAL); + } + } + /* * Godmar thinks - if the link count is zero, then the inode is * unused - according to ext2 standards. Ufs marks this fact by Modified: head/sys/fs/ext2fs/ext2_vfsops.c ============================================================================== --- head/sys/fs/ext2fs/ext2_vfsops.c Mon Mar 4 10:42:25 2019 (r344751) +++ head/sys/fs/ext2fs/ext2_vfsops.c Mon Mar 4 10:55:01 2019 (r344752) @@ -773,11 +773,18 @@ loop: MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); return (error); } - ext2_ei2i((struct ext2fs_dinode *)((char *)bp->b_data + + + error = ext2_ei2i((struct ext2fs_dinode *)((char *)bp->b_data + EXT2_INODE_SIZE(fs) * ino_to_fsbo(fs, ip->i_number)), ip); + brelse(bp); VOP_UNLOCK(vp, 0); vrele(vp); + + if (error) { + MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); + return (error); + } } return (0); } @@ -1208,8 +1215,6 @@ ext2_vget(struct mount *mp, ino_t ino, int flags, stru error = ext2_ei2i((struct ext2fs_dinode *)((char *)bp->b_data + EXT2_INODE_SIZE(fs) * ino_to_fsbo(fs, ino)), ip); if (error) { - printf("ext2fs: Bad inode %lu csum - run fsck\n", - (unsigned long)ino); brelse(bp); vput(vp); *vpp = NULL; Modified: head/sys/fs/ext2fs/ext2fs.h ============================================================================== --- head/sys/fs/ext2fs/ext2fs.h Mon Mar 4 10:42:25 2019 (r344751) +++ head/sys/fs/ext2fs/ext2fs.h Mon Mar 4 10:55:01 2019 (r344752) @@ -422,4 +422,11 @@ struct ext2_gd { EXT2F_INCOMPAT_64BIT) ? ((s)->e2fs_bsize / sizeof(struct ext2_gd)) : \ ((s)->e2fs_bsize / E2FS_REV0_GD_SIZE)) +/* + * Macro-instructions used to manage inodes + */ +#define EXT2_FIRST_INO(s) ((EXT2_SB(s)->e2fs->e2fs_rev == E2FS_REV0) ? \ + EXT2_FIRSTINO : \ + EXT2_SB(s)->e2fs->e2fs_first_ino) + #endif /* !_FS_EXT2FS_EXT2FS_H_ */ From owner-svn-src-head@freebsd.org Mon Mar 4 11:01:24 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4AA79150C768; Mon, 4 Mar 2019 11:01:24 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E15EF93BE2; Mon, 4 Mar 2019 11:01:23 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BCEF23093; Mon, 4 Mar 2019 11:01:23 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24B1NpM017902; Mon, 4 Mar 2019 11:01:23 GMT (envelope-from fsu@FreeBSD.org) Received: (from fsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24B1NZk017901; Mon, 4 Mar 2019 11:01:23 GMT (envelope-from fsu@FreeBSD.org) Message-Id: <201903041101.x24B1NZk017901@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: fsu set sender to fsu@FreeBSD.org using -f From: Fedor Uporov Date: Mon, 4 Mar 2019 11:01:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344753 - head/sys/fs/ext2fs X-SVN-Group: head X-SVN-Commit-Author: fsu X-SVN-Commit-Paths: head/sys/fs/ext2fs X-SVN-Commit-Revision: 344753 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E15EF93BE2 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org 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_SHORT(-0.98)[-0.981,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 11:01:24 -0000 Author: fsu Date: Mon Mar 4 11:01:23 2019 New Revision: 344753 URL: https://svnweb.freebsd.org/changeset/base/344753 Log: Validate block bitmaps. Reviewed by: pfg MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D19324 Modified: head/sys/fs/ext2fs/ext2_alloc.c Modified: head/sys/fs/ext2fs/ext2_alloc.c ============================================================================== --- head/sys/fs/ext2fs/ext2_alloc.c Mon Mar 4 10:55:01 2019 (r344752) +++ head/sys/fs/ext2fs/ext2_alloc.c Mon Mar 4 11:01:23 2019 (r344753) @@ -902,6 +902,52 @@ ext2_cg_block_bitmap_init(struct m_ext2fs *fs, int cg, return (0); } +static int +ext2_b_bitmap_validate(struct m_ext2fs *fs, struct buf *bp, int cg) +{ + struct ext2_gd *gd; + uint64_t group_first_block; + unsigned int offset, max_bit; + + if (EXT2_HAS_INCOMPAT_FEATURE(fs, EXT2F_INCOMPAT_FLEX_BG)) { + /* + * It is not possible to check block bitmap in case of this feature, + * because the inode and block bitmaps and inode table + * blocks may not be in the group at all. + * So, skip check in this case. + */ + return (0); + } + + gd = &fs->e2fs_gd[cg]; + max_bit = fs->e2fs_fpg; + group_first_block = ((uint64_t)cg) * fs->e2fs->e2fs_fpg + + fs->e2fs->e2fs_first_dblock; + + /* Check block bitmap block number */ + offset = e2fs_gd_get_b_bitmap(gd) - group_first_block; + if (offset >= max_bit || !isset(bp->b_data, offset)) { + printf("ext2fs: bad block bitmap, group %d\n", cg); + return (EINVAL); + } + + /* Check inode bitmap block number */ + offset = e2fs_gd_get_i_bitmap(gd) - group_first_block; + if (offset >= max_bit || !isset(bp->b_data, offset)) { + printf("ext2fs: bad inode bitmap, group %d\n", cg); + return (EINVAL); + } + + /* Check inode table */ + offset = e2fs_gd_get_i_tables(gd) - group_first_block; + if (offset >= max_bit || offset + fs->e2fs_itpg >= max_bit) { + printf("ext2fs: bad inode table, group %d\n", cg); + return (EINVAL); + } + + return (0); +} + /* * Determine whether a block can be allocated. * @@ -922,40 +968,37 @@ ext2_alloccg(struct inode *ip, int cg, daddr_t bpref, ump = ip->i_ump; if (e2fs_gd_get_nbfree(&fs->e2fs_gd[cg]) == 0) return (0); + EXT2_UNLOCK(ump); error = bread(ip->i_devvp, fsbtodb(fs, e2fs_gd_get_b_bitmap(&fs->e2fs_gd[cg])), (int)fs->e2fs_bsize, NOCRED, &bp); - if (error) { - brelse(bp); - EXT2_LOCK(ump); - return (0); - } + if (error) + goto fail; + if (EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_GDT_CSUM) || EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_METADATA_CKSUM)) { error = ext2_cg_block_bitmap_init(fs, cg, bp); - if (error) { - brelse(bp); - EXT2_LOCK(ump); - return (0); - } + if (error) + goto fail; + ext2_gd_b_bitmap_csum_set(fs, cg, bp); } error = ext2_gd_b_bitmap_csum_verify(fs, cg, bp); - if (error) { - brelse(bp); - EXT2_LOCK(ump); - return (0); - } - if (e2fs_gd_get_nbfree(&fs->e2fs_gd[cg]) == 0) { - /* - * Another thread allocated the last block in this - * group while we were waiting for the buffer. - */ - brelse(bp); - EXT2_LOCK(ump); - return (0); - } + if (error) + goto fail; + + error = ext2_b_bitmap_validate(fs,bp, cg); + if (error) + goto fail; + + /* + * Check, that another thread did not not allocate the last block in this + * group while we were waiting for the buffer. + */ + if (e2fs_gd_get_nbfree(&fs->e2fs_gd[cg]) == 0) + goto fail; + bbp = (char *)bp->b_data; if (dtog(fs, bpref) != cg) @@ -1028,11 +1071,9 @@ retry: goto retry; } bno = ext2_mapsearch(fs, bbp, bpref); - if (bno < 0) { - brelse(bp); - EXT2_LOCK(ump); - return (0); - } + if (bno < 0) + goto fail; + gotit: #ifdef INVARIANTS if (isset(bbp, bno)) { @@ -1052,6 +1093,11 @@ gotit: ext2_gd_b_bitmap_csum_set(fs, cg, bp); bdwrite(bp); return (((uint64_t)cg) * fs->e2fs->e2fs_fpg + fs->e2fs->e2fs_first_dblock + bno); + +fail: + brelse(bp); + EXT2_LOCK(ump); + return (0); } /* From owner-svn-src-head@freebsd.org Mon Mar 4 11:12:20 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9BC3B150CD71; Mon, 4 Mar 2019 11:12:20 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 38D5B94331; Mon, 4 Mar 2019 11:12:20 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 27C353283; Mon, 4 Mar 2019 11:12:20 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24BCKiv021180; Mon, 4 Mar 2019 11:12:20 GMT (envelope-from fsu@FreeBSD.org) Received: (from fsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24BCKbR021179; Mon, 4 Mar 2019 11:12:20 GMT (envelope-from fsu@FreeBSD.org) Message-Id: <201903041112.x24BCKbR021179@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: fsu set sender to fsu@FreeBSD.org using -f From: Fedor Uporov Date: Mon, 4 Mar 2019 11:12:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344754 - head/sys/fs/ext2fs X-SVN-Group: head X-SVN-Commit-Author: fsu X-SVN-Commit-Paths: head/sys/fs/ext2fs X-SVN-Commit-Revision: 344754 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 38D5B94331 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org 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_SHORT(-0.98)[-0.981,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 11:12:20 -0000 Author: fsu Date: Mon Mar 4 11:12:19 2019 New Revision: 344754 URL: https://svnweb.freebsd.org/changeset/base/344754 Log: Do not panic if inode bitmap is corrupted. admbug: 804 Reported by: Ilja Van Sprundel Reviewed by: pfg MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D19325 Modified: head/sys/fs/ext2fs/ext2_alloc.c Modified: head/sys/fs/ext2fs/ext2_alloc.c ============================================================================== --- head/sys/fs/ext2fs/ext2_alloc.c Mon Mar 4 11:01:23 2019 (r344753) +++ head/sys/fs/ext2fs/ext2_alloc.c Mon Mar 4 11:12:19 2019 (r344754) @@ -1318,10 +1318,12 @@ ext2_nodealloccg(struct inode *ip, int cg, daddr_t ipr start = 0; loc = memcchr(&ibp[start], 0xff, len); if (loc == NULL) { - printf("cg = %d, ipref = %lld, fs = %s\n", + printf("ext2fs: inode bitmap corrupted: " + "cg = %d, ipref = %lld, fs = %s - run fsck\n", cg, (long long)ipref, fs->e2fs_fsmnt); - panic("ext2fs_nodealloccg: map corrupted"); - /* NOTREACHED */ + brelse(bp); + EXT2_LOCK(ump); + return (0); } } ipref = (loc - ibp) * NBBY + ffs(~*loc) - 1; From owner-svn-src-head@freebsd.org Mon Mar 4 11:19:22 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92F92150D0D5; Mon, 4 Mar 2019 11:19:22 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 326B4946F4; Mon, 4 Mar 2019 11:19:22 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 27E12329C; Mon, 4 Mar 2019 11:19:22 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24BJM65024479; Mon, 4 Mar 2019 11:19:22 GMT (envelope-from fsu@FreeBSD.org) Received: (from fsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24BJM53024478; Mon, 4 Mar 2019 11:19:22 GMT (envelope-from fsu@FreeBSD.org) Message-Id: <201903041119.x24BJM53024478@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: fsu set sender to fsu@FreeBSD.org using -f From: Fedor Uporov Date: Mon, 4 Mar 2019 11:19:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344755 - head/sys/fs/ext2fs X-SVN-Group: head X-SVN-Commit-Author: fsu X-SVN-Commit-Paths: head/sys/fs/ext2fs X-SVN-Commit-Revision: 344755 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 326B4946F4 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org 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]; NEURAL_HAM_SHORT(-0.98)[-0.981,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 11:19:22 -0000 Author: fsu Date: Mon Mar 4 11:19:21 2019 New Revision: 344755 URL: https://svnweb.freebsd.org/changeset/base/344755 Log: Fix integer overflow possibility. Reported by: Christopher Krah Reported as: FS-2-EXT2-1: Out-of-Bounds Write in nmount (ext2_vget) Reviewed by: pfg MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D19326 Modified: head/sys/fs/ext2fs/ext2_vfsops.c Modified: head/sys/fs/ext2fs/ext2_vfsops.c ============================================================================== --- head/sys/fs/ext2fs/ext2_vfsops.c Mon Mar 4 11:12:19 2019 (r344754) +++ head/sys/fs/ext2fs/ext2_vfsops.c Mon Mar 4 11:19:21 2019 (r344755) @@ -1163,8 +1163,8 @@ ext2_vget(struct mount *mp, ino_t ino, int flags, stru struct buf *bp; struct vnode *vp; struct thread *td; - int i, error; - int used_blocks; + unsigned int i, used_blocks; + int error; td = curthread; error = vfs_hash_get(mp, ino, flags, td, vpp, NULL, NULL); From owner-svn-src-head@freebsd.org Mon Mar 4 11:27:48 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F3C0E150D4EB; Mon, 4 Mar 2019 11:27:47 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9249994D57; Mon, 4 Mar 2019 11:27:47 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7D2DD3446; Mon, 4 Mar 2019 11:27:47 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24BRlXY030205; Mon, 4 Mar 2019 11:27:47 GMT (envelope-from fsu@FreeBSD.org) Received: (from fsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24BRlRF030204; Mon, 4 Mar 2019 11:27:47 GMT (envelope-from fsu@FreeBSD.org) Message-Id: <201903041127.x24BRlRF030204@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: fsu set sender to fsu@FreeBSD.org using -f From: Fedor Uporov Date: Mon, 4 Mar 2019 11:27:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344756 - head/sys/fs/ext2fs X-SVN-Group: head X-SVN-Commit-Author: fsu X-SVN-Commit-Paths: head/sys/fs/ext2fs X-SVN-Commit-Revision: 344756 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9249994D57 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org 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_SHORT(-0.98)[-0.981,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 11:27:48 -0000 Author: fsu Date: Mon Mar 4 11:27:47 2019 New Revision: 344756 URL: https://svnweb.freebsd.org/changeset/base/344756 Log: Do not read the on-disk inode in case of vnode allocation. Reported by: Christopher Krah Reported as: FS-6-EXT2-4: Denial Of Service in mkdir-0 (ext2_mkdir/vn_rdwr) Reviewed by: pfg MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D19327 Modified: head/sys/fs/ext2fs/ext2_alloc.c Modified: head/sys/fs/ext2fs/ext2_alloc.c ============================================================================== --- head/sys/fs/ext2fs/ext2_alloc.c Mon Mar 4 11:19:21 2019 (r344755) +++ head/sys/fs/ext2fs/ext2_alloc.c Mon Mar 4 11:27:47 2019 (r344756) @@ -373,10 +373,12 @@ int ext2_valloc(struct vnode *pvp, int mode, struct ucred *cred, struct vnode **vpp) { struct timespec ts; - struct inode *pip; struct m_ext2fs *fs; - struct inode *ip; struct ext2mount *ump; + struct inode *pip; + struct inode *ip; + struct vnode *vp; + struct thread *td; ino_t ino, ipref; int error, cg; @@ -404,33 +406,69 @@ ext2_valloc(struct vnode *pvp, int mode, struct ucred } ipref = cg * fs->e2fs->e2fs_ipg + 1; ino = (ino_t)ext2_hashalloc(pip, cg, (long)ipref, mode, ext2_nodealloccg); - if (ino == 0) goto noinodes; - error = VFS_VGET(pvp->v_mount, ino, LK_EXCLUSIVE, vpp); + + td = curthread; + error = vfs_hash_get(ump->um_mountp, ino, LK_EXCLUSIVE, td, vpp, NULL, NULL); + if (error || *vpp != NULL) { + EXT2_UNLOCK(ump); + return (error); + } + + ip = malloc(sizeof(struct inode), M_EXT2NODE, M_WAITOK | M_ZERO); + if (ip == NULL) { + EXT2_UNLOCK(ump); + return (ENOMEM); + } + + /* Allocate a new vnode/inode. */ + if ((error = getnewvnode("ext2fs", ump->um_mountp, &ext2_vnodeops, &vp)) != 0) { + free(ip, M_EXT2NODE); + EXT2_UNLOCK(ump); + return (error); + } + + vp->v_data = ip; + ip->i_vnode = vp; + ip->i_e2fs = fs = ump->um_e2fs; + ip->i_ump = ump; + ip->i_number = ino; + ip->i_block_group = ino_to_cg(fs, ino); + ip->i_next_alloc_block = 0; + ip->i_next_alloc_goal = 0; + + lockmgr(vp->v_vnlock, LK_EXCLUSIVE, NULL); + error = insmntque(vp, ump->um_mountp); if (error) { - ext2_vfree(pvp, ino, mode); + free(ip, M_EXT2NODE); + EXT2_UNLOCK(ump); return (error); } - ip = VTOI(*vpp); - /* - * The question is whether using VGET was such good idea at all: - * Linux doesn't read the old inode in when it is allocating a - * new one. I will set at least i_size and i_blocks to zero. - */ - ip->i_flag = 0; - ip->i_size = 0; - ip->i_blocks = 0; - ip->i_mode = 0; - ip->i_flags = 0; + error = vfs_hash_insert(vp, ino, LK_EXCLUSIVE, td, vpp, NULL, NULL); + if (error || *vpp != NULL) { + *vpp = NULL; + free(ip, M_EXT2NODE); + EXT2_UNLOCK(ump); + return (error); + } + + if ((error = ext2_vinit(ump->um_mountp, &ext2_fifoops, &vp)) != 0) { + vput(vp); + *vpp = NULL; + free(ip, M_EXT2NODE); + EXT2_UNLOCK(ump); + return (error); + } + if (EXT2_HAS_INCOMPAT_FEATURE(fs, EXT2F_INCOMPAT_EXTENTS) && (S_ISREG(mode) || S_ISDIR(mode))) ext4_ext_tree_init(ip); else memset(ip->i_data, 0, sizeof(ip->i_data)); - + /* * Set up a new generation number for this inode. * Avoid zero values. @@ -443,10 +481,10 @@ ext2_valloc(struct vnode *pvp, int mode, struct ucred ip->i_birthtime = ts.tv_sec; ip->i_birthnsec = ts.tv_nsec; -/* -printf("ext2_valloc: allocated inode %d\n", ino); -*/ + *vpp = vp; + return (0); + noinodes: EXT2_UNLOCK(ump); ext2_fserr(fs, cred->cr_uid, "out of inodes"); From owner-svn-src-head@freebsd.org Mon Mar 4 11:33:52 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5729A150D7C7; Mon, 4 Mar 2019 11:33:52 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E7A1695292; Mon, 4 Mar 2019 11:33:51 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B3BEA37B9; Mon, 4 Mar 2019 11:33:49 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24BXnjf035957; Mon, 4 Mar 2019 11:33:49 GMT (envelope-from fsu@FreeBSD.org) Received: (from fsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24BXnuY035956; Mon, 4 Mar 2019 11:33:49 GMT (envelope-from fsu@FreeBSD.org) Message-Id: <201903041133.x24BXnuY035956@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: fsu set sender to fsu@FreeBSD.org using -f From: Fedor Uporov Date: Mon, 4 Mar 2019 11:33:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344757 - head/sys/fs/ext2fs X-SVN-Group: head X-SVN-Commit-Author: fsu X-SVN-Commit-Paths: head/sys/fs/ext2fs X-SVN-Commit-Revision: 344757 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E7A1695292 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.968,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 11:33:52 -0000 Author: fsu Date: Mon Mar 4 11:33:49 2019 New Revision: 344757 URL: https://svnweb.freebsd.org/changeset/base/344757 Log: Fix double free in case of mount error. Reported by: Christopher Krah Reported as: FS-9-EXT3-2: Denial Of Service in nmount-5 (vm_fault_hold) Reviewed by: pfg MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D19385 Modified: head/sys/fs/ext2fs/ext2_vfsops.c Modified: head/sys/fs/ext2fs/ext2_vfsops.c ============================================================================== --- head/sys/fs/ext2fs/ext2_vfsops.c Mon Mar 4 11:27:47 2019 (r344756) +++ head/sys/fs/ext2fs/ext2_vfsops.c Mon Mar 4 11:33:49 2019 (r344757) @@ -614,8 +614,12 @@ ext2_compute_sb_data(struct vnode *devvp, struct ext2f fsbtodb(fs, ext2_cg_location(fs, i)), fs->e2fs_bsize, NOCRED, &bp); if (error) { - free(fs->e2fs_contigdirs, M_EXT2MNT); - free(fs->e2fs_gd, M_EXT2MNT); + /* + * fs->e2fs_gd and fs->e2fs_contigdirs + * will be freed later by the caller, + * because this function could be called from + * MNT_UPDATE path. + */ brelse(bp); return (error); } From owner-svn-src-head@freebsd.org Mon Mar 4 13:02:37 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8DCB51510CF5; Mon, 4 Mar 2019 13:02:37 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3529A69B7B; Mon, 4 Mar 2019 13:02:37 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2975847DF; Mon, 4 Mar 2019 13:02:37 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24D2bbP093622; Mon, 4 Mar 2019 13:02:37 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24D2aG0093620; Mon, 4 Mar 2019 13:02:36 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201903041302.x24D2aG0093620@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 4 Mar 2019 13:02:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344758 - in head/sys/fs: nfs nfsserver X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: in head/sys/fs: nfs nfsserver X-SVN-Commit-Revision: 344758 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 3529A69B7B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org 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_SHORT(-0.98)[-0.978,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 13:02:37 -0000 Author: trasz Date: Mon Mar 4 13:02:36 2019 New Revision: 344758 URL: https://svnweb.freebsd.org/changeset/base/344758 Log: Push down td in nfsrvd_dorpc() - make it use curthread instead of it being explicitly passed as an argument. No functional changes. The big picture here is that I want to get rid of the 'td' argument being passed everywhere, and this is the first piece that affects the NFS server. Reviewed by: rmacklem MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D19417 Modified: head/sys/fs/nfs/nfs_var.h head/sys/fs/nfsserver/nfs_nfsdkrpc.c head/sys/fs/nfsserver/nfs_nfsdsocket.c Modified: head/sys/fs/nfs/nfs_var.h ============================================================================== --- head/sys/fs/nfs/nfs_var.h Mon Mar 4 11:33:49 2019 (r344757) +++ head/sys/fs/nfs/nfs_var.h Mon Mar 4 13:02:36 2019 (r344758) @@ -283,8 +283,7 @@ int nfsrvd_notsupp(struct nfsrv_descript *, int, /* nfs_nfsdsocket.c */ void nfsrvd_rephead(struct nfsrv_descript *); -void nfsrvd_dorpc(struct nfsrv_descript *, int, u_char *, int, u_int32_t, - NFSPROC_T *); +void nfsrvd_dorpc(struct nfsrv_descript *, int, u_char *, int, u_int32_t); /* nfs_nfsdcache.c */ void nfsrvd_initcache(void); Modified: head/sys/fs/nfsserver/nfs_nfsdkrpc.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdkrpc.c Mon Mar 4 11:33:49 2019 (r344757) +++ head/sys/fs/nfsserver/nfs_nfsdkrpc.c Mon Mar 4 13:02:36 2019 (r344758) @@ -323,7 +323,6 @@ static int nfs_proc(struct nfsrv_descript *nd, u_int32_t xid, SVCXPRT *xprt, struct nfsrvcache **rpp) { - struct thread *td = curthread; int cacherep = RC_DOIT, isdgram, taglen = -1; struct mbuf *m; u_char tag[NFSV4_SMALLSTR + 1], *tagstr = NULL; @@ -384,7 +383,7 @@ nfs_proc(struct nfsrv_descript *nd, u_int32_t xid, SVC if (cacherep == RC_DOIT) { if ((nd->nd_flag & ND_NFSV41) != 0) nd->nd_xprt = xprt; - nfsrvd_dorpc(nd, isdgram, tagstr, taglen, minorvers, td); + nfsrvd_dorpc(nd, isdgram, tagstr, taglen, minorvers); if ((nd->nd_flag & ND_NFSV41) != 0) { if (nd->nd_repstat != NFSERR_REPLYFROMCACHE && (nd->nd_flag & ND_SAVEREPLY) != 0) { Modified: head/sys/fs/nfsserver/nfs_nfsdsocket.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 11:33:49 2019 (r344757) +++ head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 13:02:36 2019 (r344758) @@ -367,7 +367,7 @@ int nfsrv_writerpc[NFS_NPROCS] = { 0, 0, 1, 0, 0, 0, 0 /* local functions */ static void nfsrvd_compound(struct nfsrv_descript *nd, int isdgram, - u_char *tag, int taglen, u_int32_t minorvers, NFSPROC_T *p); + u_char *tag, int taglen, u_int32_t minorvers); /* @@ -475,14 +475,17 @@ nfsrvd_statend(int op, uint64_t bytes, struct bintime */ APPLESTATIC void nfsrvd_dorpc(struct nfsrv_descript *nd, int isdgram, u_char *tag, int taglen, - u_int32_t minorvers, NFSPROC_T *p) + u_int32_t minorvers) { int error = 0, lktype; vnode_t vp; mount_t mp = NULL; struct nfsrvfh fh; struct nfsexstuff nes; + struct thread *p; + p = curthread; + /* * Get a locked vnode for the first file handle */ @@ -557,7 +560,7 @@ nfsrvd_dorpc(struct nfsrv_descript *nd, int isdgram, u * The group is indicated by the value in nfs_retfh[]. */ if (nd->nd_flag & ND_NFSV4) { - nfsrvd_compound(nd, isdgram, tag, taglen, minorvers, p); + nfsrvd_compound(nd, isdgram, tag, taglen, minorvers); } else { struct bintime start_time; @@ -620,7 +623,7 @@ out: */ static void nfsrvd_compound(struct nfsrv_descript *nd, int isdgram, u_char *tag, - int taglen, u_int32_t minorvers, NFSPROC_T *p) + int taglen, u_int32_t minorvers) { int i, lktype, op, op0 = 0, statsinprog = 0; u_int32_t *tl; @@ -635,6 +638,9 @@ nfsrvd_compound(struct nfsrv_descript *nd, int isdgram fsid_t cur_fsid, save_fsid; static u_int64_t compref = 0; struct bintime start_time; + struct thread *p; + + p = curthread; NFSVNO_EXINIT(&vpnes); NFSVNO_EXINIT(&savevpnes); From owner-svn-src-head@freebsd.org Mon Mar 4 13:12:24 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 495801511235; Mon, 4 Mar 2019 13:12:24 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ECA4E6A38A; Mon, 4 Mar 2019 13:12:23 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E0F0A4988; Mon, 4 Mar 2019 13:12:23 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24DCNR6099860; Mon, 4 Mar 2019 13:12:23 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24DCNo8099855; Mon, 4 Mar 2019 13:12:23 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201903041312.x24DCNo8099855@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 4 Mar 2019 13:12:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344759 - in head/sys/fs: nfs nfsserver X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: in head/sys/fs: nfs nfsserver X-SVN-Commit-Revision: 344759 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: ECA4E6A38A X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.980,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 13:12:24 -0000 Author: trasz Date: Mon Mar 4 13:12:23 2019 New Revision: 344759 URL: https://svnweb.freebsd.org/changeset/base/344759 Log: Push down the thread argument in NFS server code, using curthread instead of passing it explicitly. No functional changes Reviewed by: rmacklem (earlier version) MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D19419 Modified: head/sys/fs/nfs/nfs_var.h head/sys/fs/nfsserver/nfs_nfsdport.c head/sys/fs/nfsserver/nfs_nfsdserv.c head/sys/fs/nfsserver/nfs_nfsdsocket.c Modified: head/sys/fs/nfs/nfs_var.h ============================================================================== --- head/sys/fs/nfs/nfs_var.h Mon Mar 4 13:02:36 2019 (r344758) +++ head/sys/fs/nfs/nfs_var.h Mon Mar 4 13:12:23 2019 (r344759) @@ -171,115 +171,107 @@ int nfsrv_mdscopymr(char *, char *, char *, char *, in /* nfs_nfsdserv.c */ int nfsrvd_access(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_getattr(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_setattr(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_lookup(struct nfsrv_descript *, int, - vnode_t, vnode_t *, fhandle_t *, NFSPROC_T *, - struct nfsexstuff *); + vnode_t, vnode_t *, fhandle_t *, struct nfsexstuff *); int nfsrvd_readlink(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_read(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_write(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_create(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_mknod(struct nfsrv_descript *, int, - vnode_t, vnode_t *, fhandle_t *, NFSPROC_T *, - struct nfsexstuff *); + vnode_t, vnode_t *, fhandle_t *, struct nfsexstuff *); int nfsrvd_remove(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_rename(struct nfsrv_descript *, int, - vnode_t, vnode_t, NFSPROC_T *, struct nfsexstuff *, - struct nfsexstuff *); + vnode_t, vnode_t, struct nfsexstuff *, struct nfsexstuff *); int nfsrvd_link(struct nfsrv_descript *, int, - vnode_t, vnode_t, NFSPROC_T *, struct nfsexstuff *, - struct nfsexstuff *); + vnode_t, vnode_t, struct nfsexstuff *, struct nfsexstuff *); int nfsrvd_symlink(struct nfsrv_descript *, int, - vnode_t, vnode_t *, fhandle_t *, NFSPROC_T *, - struct nfsexstuff *); + vnode_t, vnode_t *, fhandle_t *, struct nfsexstuff *); int nfsrvd_mkdir(struct nfsrv_descript *, int, - vnode_t, vnode_t *, fhandle_t *, NFSPROC_T *, - struct nfsexstuff *); + vnode_t, vnode_t *, fhandle_t *, struct nfsexstuff *); int nfsrvd_readdir(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_readdirplus(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_commit(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_statfs(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_fsinfo(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_close(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_delegpurge(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_delegreturn(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_getfh(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_lock(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_lockt(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_locku(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_openconfirm(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_opendowngrade(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_renew(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_secinfo(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_setclientid(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_setclientidcfrm(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_verify(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_open(struct nfsrv_descript *, int, - vnode_t, vnode_t *, fhandle_t *, NFSPROC_T *, - struct nfsexstuff *); + vnode_t, vnode_t *, fhandle_t *, struct nfsexstuff *); int nfsrvd_openattr(struct nfsrv_descript *, int, - vnode_t, vnode_t *, fhandle_t *, NFSPROC_T *, - struct nfsexstuff *); + vnode_t, vnode_t *, fhandle_t *, struct nfsexstuff *); int nfsrvd_releaselckown(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_pathconf(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_exchangeid(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_createsession(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_sequence(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_reclaimcomplete(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_destroyclientid(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_bindconnsess(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_destroysession(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_freestateid(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_layoutget(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_getdevinfo(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_layoutcommit(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_layoutreturn(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_teststateid(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); int nfsrvd_notsupp(struct nfsrv_descript *, int, - vnode_t, NFSPROC_T *, struct nfsexstuff *); + vnode_t, struct nfsexstuff *); /* nfs_nfsdsocket.c */ void nfsrvd_rephead(struct nfsrv_descript *); Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Mon Mar 4 13:02:36 2019 (r344758) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Mon Mar 4 13:12:23 2019 (r344759) @@ -1813,7 +1813,7 @@ nfsvno_fillattr(struct nfsrv_descript *nd, struct moun */ int nfsrvd_readdir(struct nfsrv_descript *nd, int isdgram, - struct vnode *vp, struct thread *p, struct nfsexstuff *exp) + struct vnode *vp, struct nfsexstuff *exp) { struct dirent *dp; u_int32_t *tl; @@ -1827,6 +1827,7 @@ nfsrvd_readdir(struct nfsrv_descript *nd, int isdgram, struct uio io; struct iovec iv; int is_ufs; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_postopattr(nd, getret, &at); @@ -2057,7 +2058,7 @@ nfsmout: */ int nfsrvd_readdirplus(struct nfsrv_descript *nd, int isdgram, - struct vnode *vp, struct thread *p, struct nfsexstuff *exp) + struct vnode *vp, struct nfsexstuff *exp) { struct dirent *dp; u_int32_t *tl; @@ -2080,6 +2081,7 @@ nfsrvd_readdirplus(struct nfsrv_descript *nd, int isdg int at_root, is_ufs, is_zfs, needs_unbusy, supports_nfsv4acls; struct mount *mp, *new_mp; uint64_t mounted_on_fileno; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_postopattr(nd, getret, &at); Modified: head/sys/fs/nfsserver/nfs_nfsdserv.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdserv.c Mon Mar 4 13:02:36 2019 (r344758) +++ head/sys/fs/nfsserver/nfs_nfsdserv.c Mon Mar 4 13:12:23 2019 (r344759) @@ -101,13 +101,14 @@ static void nfsrvd_mkdirsub(struct nfsrv_descript *nd, */ APPLESTATIC int nfsrvd_access(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t vp, struct nfsexstuff *exp) { u_int32_t *tl; int getret, error = 0; struct nfsvattr nva; u_int32_t testmode, nfsmode, supported = 0; accmode_t deletebit; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_postopattr(nd, 1, &nva); @@ -188,7 +189,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_getattr(struct nfsrv_descript *nd, int isdgram, - vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + vnode_t vp, __unused struct nfsexstuff *exp) { struct nfsvattr nva; fhandle_t fh; @@ -200,6 +201,7 @@ nfsrvd_getattr(struct nfsrv_descript *nd, int isdgram, struct vattr va; uint64_t mounted_on_fileno = 0; accmode_t accmode; + struct thread *p = curthread; if (nd->nd_repstat) goto out; @@ -314,7 +316,7 @@ out: */ APPLESTATIC int nfsrvd_setattr(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t vp, struct nfsexstuff *exp) { struct nfsvattr nva, nva2; u_int32_t *tl; @@ -324,6 +326,7 @@ nfsrvd_setattr(struct nfsrv_descript *nd, __unused int nfsattrbit_t attrbits, retbits; nfsv4stateid_t stateid; NFSACL_T *aclp = NULL; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_wcc(nd, preat_ret, &nva2, postat_ret, &nva); @@ -522,8 +525,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_lookup(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t dp, vnode_t *vpp, fhandle_t *fhp, NFSPROC_T *p, - struct nfsexstuff *exp) + vnode_t dp, vnode_t *vpp, fhandle_t *fhp, struct nfsexstuff *exp) { struct nameidata named; vnode_t vp, dirp = NULL; @@ -531,6 +533,7 @@ nfsrvd_lookup(struct nfsrv_descript *nd, __unused int struct nfsvattr nva, dattr; char *bufp; u_long *hashp; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_postopattr(nd, dattr_ret, &dattr); @@ -622,12 +625,13 @@ out: */ APPLESTATIC int nfsrvd_readlink(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + vnode_t vp, __unused struct nfsexstuff *exp) { u_int32_t *tl; mbuf_t mp = NULL, mpend = NULL; int getret = 1, len; struct nfsvattr nva; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_postopattr(nd, getret, &nva); @@ -665,7 +669,7 @@ out: */ APPLESTATIC int nfsrvd_read(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t vp, struct nfsexstuff *exp) { u_int32_t *tl; int error = 0, cnt, getret = 1, gotproxystateid, reqlen, eof = 0; @@ -676,6 +680,7 @@ nfsrvd_read(struct nfsrv_descript *nd, __unused int is struct nfslock lo, *lop = &lo; nfsv4stateid_t stateid; nfsquad_t clientid; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_postopattr(nd, getret, &nva); @@ -850,7 +855,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_write(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t vp, struct nfsexstuff *exp) { int i, cnt; u_int32_t *tl; @@ -864,6 +869,7 @@ nfsrvd_write(struct nfsrv_descript *nd, __unused int i nfsv4stateid_t stateid; nfsquad_t clientid; nfsattrbit_t attrbits; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_wcc(nd, forat_ret, &forat, aftat_ret, &nva); @@ -1055,7 +1061,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_create(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t dp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t dp, struct nfsexstuff *exp) { struct nfsvattr nva, dirfor, diraft; struct nfsv2_sattr *sp; @@ -1070,6 +1076,7 @@ nfsrvd_create(struct nfsrv_descript *nd, __unused int u_long *hashp; enum vtype vtyp; int32_t cverf[2], tverf[2] = { 0, 0 }; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_wcc(nd, dirfor_ret, &dirfor, diraft_ret, &diraft); @@ -1224,8 +1231,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_mknod(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t dp, vnode_t *vpp, fhandle_t *fhp, NFSPROC_T *p, - struct nfsexstuff *exp) + vnode_t dp, vnode_t *vpp, fhandle_t *fhp, struct nfsexstuff *exp) { struct nfsvattr nva, dirfor, diraft; u_int32_t *tl; @@ -1239,6 +1245,7 @@ nfsrvd_mknod(struct nfsrv_descript *nd, __unused int i char *bufp = NULL, *pathcp = NULL; u_long *hashp, cnflags; NFSACL_T *aclp = NULL; + struct thread *p = curthread; NFSVNO_ATTRINIT(&nva); cnflags = (LOCKPARENT | SAVESTART); @@ -1442,7 +1449,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_remove(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t dp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t dp, struct nfsexstuff *exp) { struct nameidata named; u_int32_t *tl; @@ -1451,6 +1458,7 @@ nfsrvd_remove(struct nfsrv_descript *nd, __unused int struct nfsvattr dirfor, diraft; char *bufp; u_long *hashp; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_wcc(nd, dirfor_ret, &dirfor, diraft_ret, &diraft); @@ -1524,8 +1532,7 @@ out: */ APPLESTATIC int nfsrvd_rename(struct nfsrv_descript *nd, int isdgram, - vnode_t dp, vnode_t todp, NFSPROC_T *p, struct nfsexstuff *exp, - struct nfsexstuff *toexp) + vnode_t dp, vnode_t todp, struct nfsexstuff *exp, struct nfsexstuff *toexp) { u_int32_t *tl; int error = 0, fdirfor_ret = 1, fdiraft_ret = 1; @@ -1538,6 +1545,7 @@ nfsrvd_rename(struct nfsrv_descript *nd, int isdgram, char *bufp, *tbufp = NULL; u_long *hashp; fhandle_t fh; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_wcc(nd, fdirfor_ret, &fdirfor, fdiraft_ret, &fdiraft); @@ -1694,8 +1702,7 @@ out: */ APPLESTATIC int nfsrvd_link(struct nfsrv_descript *nd, int isdgram, - vnode_t vp, vnode_t tovp, NFSPROC_T *p, struct nfsexstuff *exp, - struct nfsexstuff *toexp) + vnode_t vp, vnode_t tovp, struct nfsexstuff *exp, struct nfsexstuff *toexp) { struct nameidata named; u_int32_t *tl; @@ -1706,6 +1713,7 @@ nfsrvd_link(struct nfsrv_descript *nd, int isdgram, struct nfsrvfh dfh; char *bufp; u_long *hashp; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_postopattr(nd, getret, &at); @@ -1798,8 +1806,7 @@ out: */ APPLESTATIC int nfsrvd_symlink(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t dp, vnode_t *vpp, fhandle_t *fhp, NFSPROC_T *p, - struct nfsexstuff *exp) + vnode_t dp, vnode_t *vpp, fhandle_t *fhp, struct nfsexstuff *exp) { struct nfsvattr nva, dirfor, diraft; struct nameidata named; @@ -1807,6 +1814,7 @@ nfsrvd_symlink(struct nfsrv_descript *nd, __unused int vnode_t dirp = NULL; char *bufp, *pathcp = NULL; u_long *hashp; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_wcc(nd, dirfor_ret, &dirfor, diraft_ret, &diraft); @@ -1918,8 +1926,7 @@ nfsrvd_symlinksub(struct nfsrv_descript *nd, struct na */ APPLESTATIC int nfsrvd_mkdir(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t dp, vnode_t *vpp, fhandle_t *fhp, NFSPROC_T *p, - struct nfsexstuff *exp) + vnode_t dp, vnode_t *vpp, fhandle_t *fhp, struct nfsexstuff *exp) { struct nfsvattr nva, dirfor, diraft; struct nameidata named; @@ -1928,6 +1935,7 @@ nfsrvd_mkdir(struct nfsrv_descript *nd, __unused int i vnode_t dirp = NULL; char *bufp; u_long *hashp; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_wcc(nd, dirfor_ret, &dirfor, diraft_ret, &diraft); @@ -2052,12 +2060,13 @@ nfsrvd_mkdirsub(struct nfsrv_descript *nd, struct name */ APPLESTATIC int nfsrvd_commit(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + vnode_t vp, __unused struct nfsexstuff *exp) { struct nfsvattr bfor, aft; u_int32_t *tl; int error = 0, for_ret = 1, aft_ret = 1, cnt; u_int64_t off; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_wcc(nd, for_ret, &bfor, aft_ret, &aft); @@ -2109,13 +2118,14 @@ nfsmout: */ APPLESTATIC int nfsrvd_statfs(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + vnode_t vp, __unused struct nfsexstuff *exp) { struct statfs *sf; u_int32_t *tl; int getret = 1; struct nfsvattr at; u_quad_t tval; + struct thread *p = curthread; sf = NULL; if (nd->nd_repstat) { @@ -2168,12 +2178,13 @@ out: */ APPLESTATIC int nfsrvd_fsinfo(struct nfsrv_descript *nd, int isdgram, - vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + vnode_t vp, __unused struct nfsexstuff *exp) { u_int32_t *tl; struct nfsfsinfo fs; int getret = 1; struct nfsvattr at; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_postopattr(nd, getret, &at); @@ -2207,12 +2218,13 @@ out: */ APPLESTATIC int nfsrvd_pathconf(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + vnode_t vp, __unused struct nfsexstuff *exp) { struct nfsv3_pathconf *pc; int getret = 1; long linkmax, namemax, chownres, notrunc; struct nfsvattr at; + struct thread *p = curthread; if (nd->nd_repstat) { nfsrv_postopattr(nd, getret, &at); @@ -2258,7 +2270,7 @@ out: */ APPLESTATIC int nfsrvd_lock(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t vp, struct nfsexstuff *exp) { u_int32_t *tl; int i; @@ -2270,6 +2282,7 @@ nfsrvd_lock(struct nfsrv_descript *nd, __unused int is u_int64_t offset, len; nfsv4stateid_t stateid; nfsquad_t clientid; + struct thread *p = curthread; NFSM_DISSECT(tl, u_int32_t *, 7 * NFSX_UNSIGNED); i = fxdr_unsigned(int, *tl++); @@ -2485,7 +2498,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_lockt(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t vp, struct nfsexstuff *exp) { u_int32_t *tl; int i; @@ -2496,6 +2509,7 @@ nfsrvd_lockt(struct nfsrv_descript *nd, __unused int i nfsv4stateid_t stateid; nfsquad_t clientid; u_int64_t len; + struct thread *p = curthread; NFSM_DISSECT(tl, u_int32_t *, 8 * NFSX_UNSIGNED); i = fxdr_unsigned(int, *(tl + 7)); @@ -2599,7 +2613,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_locku(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t vp, struct nfsexstuff *exp) { u_int32_t *tl; int i; @@ -2609,6 +2623,7 @@ nfsrvd_locku(struct nfsrv_descript *nd, __unused int i nfsv4stateid_t stateid; nfsquad_t clientid; u_int64_t len; + struct thread *p = curthread; NFSM_DISSECT(tl, u_int32_t *, 6 * NFSX_UNSIGNED + NFSX_STATEID); stp = malloc(sizeof (struct nfsstate), @@ -2714,8 +2729,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_open(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t dp, vnode_t *vpp, __unused fhandle_t *fhp, NFSPROC_T *p, - struct nfsexstuff *exp) + vnode_t dp, vnode_t *vpp, __unused fhandle_t *fhp, struct nfsexstuff *exp) { u_int32_t *tl; int i, retext; @@ -2733,6 +2747,7 @@ nfsrvd_open(struct nfsrv_descript *nd, __unused int is char *bufp = NULL; u_long *hashp; NFSACL_T *aclp = NULL; + struct thread *p = curthread; #ifdef NFS4_ACL_EXTATTR_NAME aclp = acl_alloc(M_WAITOK); @@ -3170,7 +3185,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_close(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + vnode_t vp, __unused struct nfsexstuff *exp) { u_int32_t *tl; struct nfsstate st, *stp = &st; @@ -3178,6 +3193,7 @@ nfsrvd_close(struct nfsrv_descript *nd, __unused int i nfsv4stateid_t stateid; nfsquad_t clientid; struct nfsvattr na; + struct thread *p = curthread; NFSM_DISSECT(tl, u_int32_t *, NFSX_UNSIGNED + NFSX_STATEID); stp->ls_seq = fxdr_unsigned(u_int32_t, *tl++); @@ -3250,11 +3266,12 @@ nfsmout: */ APPLESTATIC int nfsrvd_delegpurge(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, __unused NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { u_int32_t *tl; int error = 0; nfsquad_t clientid; + struct thread *p = curthread; if (nfs_rootfhset == 0 || nfsd_checkrootexp(nd) != 0) { nd->nd_repstat = NFSERR_WRONGSEC; @@ -3286,13 +3303,14 @@ nfsmout: */ APPLESTATIC int nfsrvd_delegreturn(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + vnode_t vp, __unused struct nfsexstuff *exp) { u_int32_t *tl; int error = 0, writeacc; nfsv4stateid_t stateid; nfsquad_t clientid; struct nfsvattr na; + struct thread *p = curthread; NFSM_DISSECT(tl, u_int32_t *, NFSX_STATEID); stateid.seqid = fxdr_unsigned(u_int32_t, *tl++); @@ -3326,9 +3344,10 @@ nfsmout: */ APPLESTATIC int nfsrvd_getfh(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + vnode_t vp, __unused struct nfsexstuff *exp) { fhandle_t fh; + struct thread *p = curthread; nd->nd_repstat = nfsvno_getfh(vp, &fh, p); vput(vp); @@ -3343,13 +3362,14 @@ nfsrvd_getfh(struct nfsrv_descript *nd, __unused int i */ APPLESTATIC int nfsrvd_openconfirm(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + vnode_t vp, __unused struct nfsexstuff *exp) { u_int32_t *tl; struct nfsstate st, *stp = &st; int error = 0; nfsv4stateid_t stateid; nfsquad_t clientid; + struct thread *p = curthread; if ((nd->nd_flag & ND_NFSV41) != 0) { nd->nd_repstat = NFSERR_NOTSUPP; @@ -3396,7 +3416,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_opendowngrade(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + vnode_t vp, __unused struct nfsexstuff *exp) { u_int32_t *tl; int i; @@ -3404,6 +3424,7 @@ nfsrvd_opendowngrade(struct nfsrv_descript *nd, __unus int error = 0; nfsv4stateid_t stateid; nfsquad_t clientid; + struct thread *p = curthread; /* opendowngrade can only work on a file object.*/ if (vp->v_type != VREG) { @@ -3506,11 +3527,12 @@ nfsmout: */ APPLESTATIC int nfsrvd_renew(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { u_int32_t *tl; int error = 0; nfsquad_t clientid; + struct thread *p = curthread; if ((nd->nd_flag & ND_NFSV41) != 0) { nd->nd_repstat = NFSERR_NOTSUPP; @@ -3546,7 +3568,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_secinfo(struct nfsrv_descript *nd, int isdgram, - vnode_t dp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t dp, struct nfsexstuff *exp) { u_int32_t *tl; int len; @@ -3558,6 +3580,7 @@ nfsrvd_secinfo(struct nfsrv_descript *nd, int isdgram, int error = 0, savflag, i; char *bufp; u_long *hashp; + struct thread *p = curthread; /* * All this just to get the export flags for the name. @@ -3649,7 +3672,7 @@ out: */ APPLESTATIC int nfsrvd_setclientid(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { u_int32_t *tl; int i; @@ -3658,6 +3681,7 @@ nfsrvd_setclientid(struct nfsrv_descript *nd, __unused struct sockaddr_in *rad; u_char *verf, *ucp, *ucp2, addrbuf[24]; nfsquad_t clientid, confirm; + struct thread *p = curthread; if ((nd->nd_flag & ND_NFSV41) != 0) { nd->nd_repstat = NFSERR_NOTSUPP; @@ -3772,12 +3796,13 @@ nfsmout: */ APPLESTATIC int nfsrvd_setclientidcfrm(struct nfsrv_descript *nd, - __unused int isdgram, __unused vnode_t vp, NFSPROC_T *p, + __unused int isdgram, __unused vnode_t vp, __unused struct nfsexstuff *exp) { u_int32_t *tl; int error = 0; nfsquad_t clientid, confirm; + struct thread *p = curthread; if ((nd->nd_flag & ND_NFSV41) != 0) { nd->nd_repstat = NFSERR_NOTSUPP; @@ -3809,13 +3834,14 @@ nfsmout: */ APPLESTATIC int nfsrvd_verify(struct nfsrv_descript *nd, int isdgram, - vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + vnode_t vp, __unused struct nfsexstuff *exp) { int error = 0, ret, fhsize = NFSX_MYFH; struct nfsvattr nva; struct statfs *sf; struct nfsfsinfo fs; fhandle_t fh; + struct thread *p = curthread; sf = malloc(sizeof(struct statfs), M_STATFS, M_WAITOK); nd->nd_repstat = nfsvno_getattr(vp, &nva, nd, p, 1, NULL); @@ -3849,7 +3875,7 @@ nfsrvd_verify(struct nfsrv_descript *nd, int isdgram, APPLESTATIC int nfsrvd_openattr(struct nfsrv_descript *nd, __unused int isdgram, vnode_t dp, __unused vnode_t *vpp, __unused fhandle_t *fhp, - __unused NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused struct nfsexstuff *exp) { u_int32_t *tl; int error = 0, createdir __unused; @@ -3868,12 +3894,13 @@ nfsmout: */ APPLESTATIC int nfsrvd_releaselckown(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { u_int32_t *tl; struct nfsstate *stp = NULL; int error = 0, len; nfsquad_t clientid; + struct thread *p = curthread; if ((nd->nd_flag & ND_NFSV41) != 0) { nd->nd_repstat = NFSERR_NOTSUPP; @@ -3928,7 +3955,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_exchangeid(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { uint32_t *tl; int error = 0, i, idlen; @@ -3939,6 +3966,7 @@ nfsrvd_exchangeid(struct nfsrv_descript *nd, __unused uint64_t owner_minor; struct timespec verstime; struct sockaddr_in *sad, *rad; + struct thread *p = curthread; if (nfs_rootfhset == 0 || nfsd_checkrootexp(nd) != 0) { nd->nd_repstat = NFSERR_WRONGSEC; @@ -4071,13 +4099,14 @@ nfsmout: */ APPLESTATIC int nfsrvd_createsession(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { uint32_t *tl; int error = 0; nfsquad_t clientid, confirm; struct nfsdsession *sep = NULL; uint32_t rdmacnt; + struct thread *p = curthread; if (nfs_rootfhset == 0 || nfsd_checkrootexp(nd) != 0) { nd->nd_repstat = NFSERR_WRONGSEC; @@ -4183,11 +4212,12 @@ nfsmout: */ APPLESTATIC int nfsrvd_sequence(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, __unused NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { uint32_t *tl; uint32_t highest_slotid, sequenceid, sflags, target_highest_slotid; int cache_this, error = 0; + struct thread *p = curthread; if (nfs_rootfhset == 0 || nfsd_checkrootexp(nd) != 0) { nd->nd_repstat = NFSERR_WRONGSEC; @@ -4226,7 +4256,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_reclaimcomplete(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, __unused NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { uint32_t *tl; int error = 0, onefs; @@ -4259,11 +4289,12 @@ nfsmout: */ APPLESTATIC int nfsrvd_destroyclientid(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { uint32_t *tl; nfsquad_t clientid; int error = 0; + struct thread *p = curthread; if (nfs_rootfhset == 0 || nfsd_checkrootexp(nd) != 0) { nd->nd_repstat = NFSERR_WRONGSEC; @@ -4283,7 +4314,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_bindconnsess(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { uint32_t *tl; uint8_t sessid[NFSX_V4SESSIONID]; @@ -4322,7 +4353,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_destroysession(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, __unused NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { uint8_t *cp, sessid[NFSX_V4SESSIONID]; int error = 0; @@ -4344,11 +4375,12 @@ nfsmout: */ APPLESTATIC int nfsrvd_freestateid(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { uint32_t *tl; nfsv4stateid_t stateid; int error = 0; + struct thread *p = curthread; if (nfs_rootfhset == 0 || nfsd_checkrootexp(nd) != 0) { nd->nd_repstat = NFSERR_WRONGSEC; @@ -4391,13 +4423,14 @@ nfsmout: */ APPLESTATIC int nfsrvd_layoutget(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t vp, struct nfsexstuff *exp) { uint32_t *tl; nfsv4stateid_t stateid; int error = 0, layoutlen, layouttype, iomode, maxcnt, retonclose; uint64_t offset, len, minlen; char *layp; + struct thread *p = curthread; if (nfs_rootfhset == 0 || nfsd_checkrootexp(nd) != 0) { nd->nd_repstat = NFSERR_WRONGSEC; @@ -4488,7 +4521,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_layoutcommit(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t vp, struct nfsexstuff *exp) { uint32_t *tl; nfsv4stateid_t stateid; @@ -4497,6 +4530,7 @@ nfsrvd_layoutcommit(struct nfsrv_descript *nd, __unuse uint64_t offset, len, newoff, newsize; struct timespec newmtime; char *layp; + struct thread *p = curthread; layp = NULL; if (nfs_rootfhset == 0 || nfsd_checkrootexp(nd) != 0) { @@ -4573,12 +4607,13 @@ nfsmout: */ APPLESTATIC int nfsrvd_layoutreturn(struct nfsrv_descript *nd, __unused int isdgram, - vnode_t vp, NFSPROC_T *p, struct nfsexstuff *exp) + vnode_t vp, struct nfsexstuff *exp) { uint32_t *tl, *layp; nfsv4stateid_t stateid; int error = 0, fnd, kind, layouttype, iomode, maxcnt, reclaim; uint64_t offset, len; + struct thread *p = curthread; layp = NULL; if (nfs_rootfhset == 0 || nfsd_checkrootexp(nd) != 0) { @@ -4658,7 +4693,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_getdevinfo(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { uint32_t *tl, maxcnt, notify[NFSV4_NOTIFYBITMAP]; int cnt, devaddrlen, error = 0, i, layouttype; @@ -4730,11 +4765,12 @@ nfsmout: */ APPLESTATIC int nfsrvd_teststateid(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { uint32_t *tl; nfsv4stateid_t *stateidp = NULL, *tstateidp; int cnt, error = 0, i, ret; + struct thread *p = curthread; if (nfs_rootfhset == 0 || nfsd_checkrootexp(nd) != 0) { nd->nd_repstat = NFSERR_WRONGSEC; @@ -4774,7 +4810,7 @@ nfsmout: */ APPLESTATIC int nfsrvd_notsupp(struct nfsrv_descript *nd, __unused int isdgram, - __unused vnode_t vp, __unused NFSPROC_T *p, __unused struct nfsexstuff *exp) + __unused vnode_t vp, __unused struct nfsexstuff *exp) { nd->nd_repstat = NFSERR_NOTSUPP; Modified: head/sys/fs/nfsserver/nfs_nfsdsocket.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 13:02:36 2019 (r344758) +++ head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 13:12:23 2019 (r344759) @@ -58,23 +58,23 @@ NFSV4ROOTLOCKMUTEX; NFSSTATESPINLOCK; int (*nfsrv3_procs0[NFS_V3NPROCS])(struct nfsrv_descript *, - int, vnode_t , NFSPROC_T *, struct nfsexstuff *) = { - (int (*)(struct nfsrv_descript *, int, vnode_t , NFSPROC_T *, struct nfsexstuff *))0, + int, vnode_t , struct nfsexstuff *) = { + (int (*)(struct nfsrv_descript *, int, vnode_t , struct nfsexstuff *))0, nfsrvd_getattr, nfsrvd_setattr, - (int (*)(struct nfsrv_descript *, int, vnode_t , NFSPROC_T *, struct nfsexstuff *))0, + (int (*)(struct nfsrv_descript *, int, vnode_t , struct nfsexstuff *))0, nfsrvd_access, nfsrvd_readlink, nfsrvd_read, nfsrvd_write, nfsrvd_create, - (int (*)(struct nfsrv_descript *, int, vnode_t , NFSPROC_T *, struct nfsexstuff *))0, - (int (*)(struct nfsrv_descript *, int, vnode_t , NFSPROC_T *, struct nfsexstuff *))0, - (int (*)(struct nfsrv_descript *, int, vnode_t , NFSPROC_T *, struct nfsexstuff *))0, + (int (*)(struct nfsrv_descript *, int, vnode_t , struct nfsexstuff *))0, + (int (*)(struct nfsrv_descript *, int, vnode_t , struct nfsexstuff *))0, + (int (*)(struct nfsrv_descript *, int, vnode_t , struct nfsexstuff *))0, nfsrvd_remove, nfsrvd_remove, - (int (*)(struct nfsrv_descript *, int, vnode_t , NFSPROC_T *, struct nfsexstuff *))0, - (int (*)(struct nfsrv_descript *, int, vnode_t , NFSPROC_T *, struct nfsexstuff *))0, + (int (*)(struct nfsrv_descript *, int, vnode_t , struct nfsexstuff *))0, + (int (*)(struct nfsrv_descript *, int, vnode_t , struct nfsexstuff *))0, nfsrvd_readdir, nfsrvd_readdirplus, nfsrvd_statfs, @@ -84,94 +84,92 @@ int (*nfsrv3_procs0[NFS_V3NPROCS])(struct nfsrv_descri }; int (*nfsrv3_procs1[NFS_V3NPROCS])(struct nfsrv_descript *, - int, vnode_t , vnode_t *, fhandle_t *, - NFSPROC_T *, struct nfsexstuff *) = { - (int (*)(struct nfsrv_descript *, int, vnode_t , vnode_t *, fhandle_t *, NFSPROC_T *, struct nfsexstuff *))0, - (int (*)(struct nfsrv_descript *, int, vnode_t , vnode_t *, fhandle_t *, NFSPROC_T *, struct nfsexstuff *))0, - (int (*)(struct nfsrv_descript *, int, vnode_t , vnode_t *, fhandle_t *, NFSPROC_T *, struct nfsexstuff *))0, + int, vnode_t , vnode_t *, fhandle_t *, struct nfsexstuff *) = { + (int (*)(struct nfsrv_descript *, int, vnode_t , vnode_t *, fhandle_t *, struct nfsexstuff *))0, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Mon Mar 4 13:18:05 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8DCE215113FE; Mon, 4 Mar 2019 13:18:05 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2E79D6A6B4; Mon, 4 Mar 2019 13:18:05 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1FC234994; Mon, 4 Mar 2019 13:18:05 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24DI4Xw000882; Mon, 4 Mar 2019 13:18:04 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24DI4Vo000877; Mon, 4 Mar 2019 13:18:04 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201903041318.x24DI4Vo000877@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 4 Mar 2019 13:18:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344760 - in head/sys/fs: nfs nfsserver X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: in head/sys/fs: nfs nfsserver X-SVN-Commit-Revision: 344760 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 2E79D6A6B4 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org 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_SHORT(-0.98)[-0.978,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 13:18:05 -0000 Author: trasz Date: Mon Mar 4 13:18:04 2019 New Revision: 344760 URL: https://svnweb.freebsd.org/changeset/base/344760 Log: Don't pass td to nfsd_fhtovp(), it's unused. Reviewed by: rmacklem (earlier version) MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D19421 Modified: head/sys/fs/nfs/nfs_var.h head/sys/fs/nfsserver/nfs_nfsdport.c head/sys/fs/nfsserver/nfs_nfsdserv.c head/sys/fs/nfsserver/nfs_nfsdsocket.c Modified: head/sys/fs/nfs/nfs_var.h ============================================================================== --- head/sys/fs/nfs/nfs_var.h Mon Mar 4 13:12:23 2019 (r344759) +++ head/sys/fs/nfs/nfs_var.h Mon Mar 4 13:18:04 2019 (r344760) @@ -358,8 +358,7 @@ int nfscl_request(struct nfsrv_descript *, vnode_t, /* nfs_nfsdsubs.c */ void nfsd_fhtovp(struct nfsrv_descript *, struct nfsrvfh *, int, - vnode_t *, struct nfsexstuff *, - mount_t *, int, NFSPROC_T *); + vnode_t *, struct nfsexstuff *, mount_t *, int); int nfsd_excred(struct nfsrv_descript *, struct nfsexstuff *, struct ucred *); int nfsrv_mtofh(struct nfsrv_descript *, struct nfsrvfh *); int nfsrv_putattrbit(struct nfsrv_descript *, nfsattrbit_t *); Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Mon Mar 4 13:12:23 2019 (r344759) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Mon Mar 4 13:18:04 2019 (r344760) @@ -3041,7 +3041,7 @@ nfsvno_fhtovp(struct mount *mp, fhandle_t *fhp, struct void nfsd_fhtovp(struct nfsrv_descript *nd, struct nfsrvfh *nfp, int lktype, struct vnode **vpp, struct nfsexstuff *exp, - struct mount **mpp, int startwrite, struct thread *p) + struct mount **mpp, int startwrite) { struct mount *mp; struct ucred *credanon; Modified: head/sys/fs/nfsserver/nfs_nfsdserv.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdserv.c Mon Mar 4 13:12:23 2019 (r344759) +++ head/sys/fs/nfsserver/nfs_nfsdserv.c Mon Mar 4 13:18:04 2019 (r344760) @@ -1609,7 +1609,7 @@ nfsrvd_rename(struct nfsrv_descript *nd, int isdgram, NFSVOPUNLOCK(dp, 0); nd->nd_cred->cr_uid = nd->nd_saveduid; nfsd_fhtovp(nd, &tfh, LK_EXCLUSIVE, &tdp, &tnes, NULL, - 0, p); /* Locks tdp. */ + 0); /* Locks tdp. */ if (tdp) { tdirfor_ret = nfsvno_getattr(tdp, &tdirfor, nd, p, 1, NULL); @@ -1740,8 +1740,7 @@ nfsrvd_link(struct nfsrv_descript *nd, int isdgram, /* tovp is always NULL unless NFSv4 */ goto out; } - nfsd_fhtovp(nd, &dfh, LK_EXCLUSIVE, &dp, &tnes, NULL, 0, - p); + nfsd_fhtovp(nd, &dfh, LK_EXCLUSIVE, &dp, &tnes, NULL, 0); if (dp) NFSVOPUNLOCK(dp, 0); } @@ -3612,7 +3611,7 @@ nfsrvd_secinfo(struct nfsrv_descript *nd, int isdgram, vput(vp); savflag = nd->nd_flag; if (!nd->nd_repstat) { - nfsd_fhtovp(nd, &fh, LK_SHARED, &vp, &retnes, NULL, 0, p); + nfsd_fhtovp(nd, &fh, LK_SHARED, &vp, &retnes, NULL, 0); if (vp) vput(vp); } Modified: head/sys/fs/nfsserver/nfs_nfsdsocket.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 13:12:23 2019 (r344759) +++ head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 13:18:04 2019 (r344760) @@ -478,10 +478,7 @@ nfsrvd_dorpc(struct nfsrv_descript *nd, int isdgram, u mount_t mp = NULL; struct nfsrvfh fh; struct nfsexstuff nes; - struct thread *p; - p = curthread; - /* * Get a locked vnode for the first file handle */ @@ -516,10 +513,10 @@ nfsrvd_dorpc(struct nfsrv_descript *nd, int isdgram, u lktype = LK_EXCLUSIVE; if (nd->nd_flag & ND_PUBLOOKUP) nfsd_fhtovp(nd, &nfs_pubfh, lktype, &vp, &nes, - &mp, nfsrv_writerpc[nd->nd_procnum], p); + &mp, nfsrv_writerpc[nd->nd_procnum]); else nfsd_fhtovp(nd, &fh, lktype, &vp, &nes, - &mp, nfsrv_writerpc[nd->nd_procnum], p); + &mp, nfsrv_writerpc[nd->nd_procnum]); if (nd->nd_repstat == NFSERR_PROGNOTV4) goto out; } @@ -865,7 +862,7 @@ nfsrvd_compound(struct nfsrv_descript *nd, int isdgram goto nfsmout; if (!nd->nd_repstat) nfsd_fhtovp(nd, &fh, LK_SHARED, &nvp, &nes, - NULL, 0, p); + NULL, 0); /* For now, allow this for non-export FHs */ if (!nd->nd_repstat) { if (vp) @@ -879,7 +876,7 @@ nfsrvd_compound(struct nfsrv_descript *nd, int isdgram case NFSV4OP_PUTPUBFH: if (nfs_pubfhset) nfsd_fhtovp(nd, &nfs_pubfh, LK_SHARED, &nvp, - &nes, NULL, 0, p); + &nes, NULL, 0); else nd->nd_repstat = NFSERR_NOFILEHANDLE; if (!nd->nd_repstat) { @@ -894,7 +891,7 @@ nfsrvd_compound(struct nfsrv_descript *nd, int isdgram case NFSV4OP_PUTROOTFH: if (nfs_rootfhset) { nfsd_fhtovp(nd, &nfs_rootfh, LK_SHARED, &nvp, - &nes, NULL, 0, p); + &nes, NULL, 0); if (!nd->nd_repstat) { if (vp) vrele(vp); From owner-svn-src-head@freebsd.org Mon Mar 4 13:20:30 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54185151158D; Mon, 4 Mar 2019 13:20:30 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::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 8458C6A943; Mon, 4 Mar 2019 13:20:29 +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 x24DKMn2026407 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 4 Mar 2019 15:20:25 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua x24DKMn2026407 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id x24DKLQf026403; Mon, 4 Mar 2019 15:20:21 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 4 Mar 2019 15:20:21 +0200 From: Konstantin Belousov To: Edward Tomasz Napierala Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver Message-ID: <20190304132021.GN68879@kib.kiev.ua> References: <201903041302.x24D2aG0093620@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201903041302.x24D2aG0093620@repo.freebsd.org> User-Agent: Mutt/1.11.3 (2019-02-01) 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 13:20:30 -0000 On Mon, Mar 04, 2019 at 01:02:36PM +0000, Edward Tomasz Napierala wrote: > Author: trasz > Date: Mon Mar 4 13:02:36 2019 > New Revision: 344758 > URL: https://svnweb.freebsd.org/changeset/base/344758 > > Log: > Push down td in nfsrvd_dorpc() - make it use curthread instead > of it being explicitly passed as an argument. No functional changes. > > The big picture here is that I want to get rid of the 'td' argument > being passed everywhere, and this is the first piece that affects > the NFS server. > > Reviewed by: rmacklem > MFC after: 2 weeks > Sponsored by: DARPA, AFRL > Differential Revision: https://reviews.freebsd.org/D19417 > > Modified: > head/sys/fs/nfs/nfs_var.h > head/sys/fs/nfsserver/nfs_nfsdkrpc.c > head/sys/fs/nfsserver/nfs_nfsdsocket.c > > Modified: head/sys/fs/nfs/nfs_var.h > ============================================================================== > --- head/sys/fs/nfs/nfs_var.h Mon Mar 4 11:33:49 2019 (r344757) > +++ head/sys/fs/nfs/nfs_var.h Mon Mar 4 13:02:36 2019 (r344758) > @@ -283,8 +283,7 @@ int nfsrvd_notsupp(struct nfsrv_descript *, int, > > /* nfs_nfsdsocket.c */ > void nfsrvd_rephead(struct nfsrv_descript *); > -void nfsrvd_dorpc(struct nfsrv_descript *, int, u_char *, int, u_int32_t, > - NFSPROC_T *); > +void nfsrvd_dorpc(struct nfsrv_descript *, int, u_char *, int, u_int32_t); > > /* nfs_nfsdcache.c */ > void nfsrvd_initcache(void); > > Modified: head/sys/fs/nfsserver/nfs_nfsdkrpc.c > ============================================================================== > --- head/sys/fs/nfsserver/nfs_nfsdkrpc.c Mon Mar 4 11:33:49 2019 (r344757) > +++ head/sys/fs/nfsserver/nfs_nfsdkrpc.c Mon Mar 4 13:02:36 2019 (r344758) > @@ -323,7 +323,6 @@ static int > nfs_proc(struct nfsrv_descript *nd, u_int32_t xid, SVCXPRT *xprt, > struct nfsrvcache **rpp) > { > - struct thread *td = curthread; > int cacherep = RC_DOIT, isdgram, taglen = -1; > struct mbuf *m; > u_char tag[NFSV4_SMALLSTR + 1], *tagstr = NULL; > @@ -384,7 +383,7 @@ nfs_proc(struct nfsrv_descript *nd, u_int32_t xid, SVC > if (cacherep == RC_DOIT) { > if ((nd->nd_flag & ND_NFSV41) != 0) > nd->nd_xprt = xprt; > - nfsrvd_dorpc(nd, isdgram, tagstr, taglen, minorvers, td); > + nfsrvd_dorpc(nd, isdgram, tagstr, taglen, minorvers); > if ((nd->nd_flag & ND_NFSV41) != 0) { > if (nd->nd_repstat != NFSERR_REPLYFROMCACHE && > (nd->nd_flag & ND_SAVEREPLY) != 0) { > > Modified: head/sys/fs/nfsserver/nfs_nfsdsocket.c > ============================================================================== > --- head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 11:33:49 2019 (r344757) > +++ head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 13:02:36 2019 (r344758) > @@ -367,7 +367,7 @@ int nfsrv_writerpc[NFS_NPROCS] = { 0, 0, 1, 0, 0, 0, 0 > > /* local functions */ > static void nfsrvd_compound(struct nfsrv_descript *nd, int isdgram, > - u_char *tag, int taglen, u_int32_t minorvers, NFSPROC_T *p); > + u_char *tag, int taglen, u_int32_t minorvers); > > > /* > @@ -475,14 +475,17 @@ nfsrvd_statend(int op, uint64_t bytes, struct bintime > */ > APPLESTATIC void > nfsrvd_dorpc(struct nfsrv_descript *nd, int isdgram, u_char *tag, int taglen, > - u_int32_t minorvers, NFSPROC_T *p) > + u_int32_t minorvers) > { > int error = 0, lktype; > vnode_t vp; > mount_t mp = NULL; > struct nfsrvfh fh; > struct nfsexstuff nes; > + struct thread *p; > > + p = curthread; > + > /* > * Get a locked vnode for the first file handle > */ > @@ -557,7 +560,7 @@ nfsrvd_dorpc(struct nfsrv_descript *nd, int isdgram, u > * The group is indicated by the value in nfs_retfh[]. > */ > if (nd->nd_flag & ND_NFSV4) { > - nfsrvd_compound(nd, isdgram, tag, taglen, minorvers, p); > + nfsrvd_compound(nd, isdgram, tag, taglen, minorvers); > } else { > struct bintime start_time; > > @@ -620,7 +623,7 @@ out: > */ > static void > nfsrvd_compound(struct nfsrv_descript *nd, int isdgram, u_char *tag, > - int taglen, u_int32_t minorvers, NFSPROC_T *p) > + int taglen, u_int32_t minorvers) > { > int i, lktype, op, op0 = 0, statsinprog = 0; > u_int32_t *tl; > @@ -635,6 +638,9 @@ nfsrvd_compound(struct nfsrv_descript *nd, int isdgram > fsid_t cur_fsid, save_fsid; > static u_int64_t compref = 0; > struct bintime start_time; > + struct thread *p; > + > + p = curthread; Why do you name it 'p', which is typical for process, and not 'td', you are changing most of the code anyway. Also I am curious why. It is certainly fine to remove td when it is used as a formal placeholder argument only. But when the first action in the function is evaluation of curthread() it becomes less obvious. curthread() become very cheap on modern amd64, I am not so sure about older machines or non-x86 cases. > > NFSVNO_EXINIT(&vpnes); > NFSVNO_EXINIT(&savevpnes); From owner-svn-src-head@freebsd.org Mon Mar 4 14:01:38 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F187615127AC; Mon, 4 Mar 2019 14:01:37 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: from mail-oi1-f196.google.com (mail-oi1-f196.google.com [209.85.167.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 946D46C021; Mon, 4 Mar 2019 14:01:37 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: by mail-oi1-f196.google.com with SMTP id z14so3902578oid.0; Mon, 04 Mar 2019 06:01:37 -0800 (PST) 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:content-transfer-encoding; bh=JrmA+6FqOlXDsqqZR15yvYTw9axKiuKUF5hFxDHiqKg=; b=av3+ZfvOxSoQKfggHIGXnnte32dVofewkXx0/LFFI11oaFAmdBynh6AHgDwK9KhE0n xHI5nb2NIZqMDlxxUAXoi5b+xonfPTjuq/119T1UslCt4gE2BO9HmHbWzVquPpYngtgX dpfMGADmbv2T1OdR0+YCe0FvhN1T7a2H6XSkrRzDejbgDtJLSfhJH+kGti7F8dxfQsZb zFBBO87e6BJtI/UT0G0jMeU1lkCflAwFe+1frf3yMtBac6FG5xwTGPrdbGJt52rDXYxQ ckDIRub5Klvsv67h5W1iTAr+59vZMOu9m6noShQhb3+9aq0rPmpMpoDfoJlwGua90Tqp QRdg== X-Gm-Message-State: AHQUAuZCjakQjUv1lXjg0ZoZ0k0lLysOYtWpOqPqJEQoSVYk8x2r2qrX 8xQwjEVWnnRZcDk7EsIgdNpFodgGD9wKTuyFMXaB0Q== X-Google-Smtp-Source: APXvYqwhTaDCzsuLDGVKqkEg2q/hCpyZG5dO5iHSNkBXSumIjcIcoHTAxKHwEjFAyJ2ztlcQzWqiwsOxItCt1I8CNHw= X-Received: by 2002:aca:5652:: with SMTP id k79mr12079646oib.19.1551706308446; Mon, 04 Mar 2019 05:31:48 -0800 (PST) MIME-Version: 1.0 References: <201903041302.x24D2aG0093620@repo.freebsd.org> <20190304132021.GN68879@kib.kiev.ua> In-Reply-To: <20190304132021.GN68879@kib.kiev.ua> From: Edward Napierala Date: Mon, 4 Mar 2019 13:31:37 +0000 Message-ID: Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver To: Konstantin Belousov Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 946D46C021 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.97 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.968,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 14:01:38 -0000 pon., 4 mar 2019 o 13:20 Konstantin Belousov napisa= =C5=82(a): > > On Mon, Mar 04, 2019 at 01:02:36PM +0000, Edward Tomasz Napierala wrote: > > Author: trasz > > Date: Mon Mar 4 13:02:36 2019 > > New Revision: 344758 > > URL: https://svnweb.freebsd.org/changeset/base/344758 > > > > Log: > > Push down td in nfsrvd_dorpc() - make it use curthread instead > > of it being explicitly passed as an argument. No functional changes. > > > > The big picture here is that I want to get rid of the 'td' argument > > being passed everywhere, and this is the first piece that affects > > the NFS server. > > > > Reviewed by: rmacklem > > MFC after: 2 weeks > > Sponsored by: DARPA, AFRL > > Differential Revision: https://reviews.freebsd.org/D19417 > > > > Modified: > > head/sys/fs/nfs/nfs_var.h > > head/sys/fs/nfsserver/nfs_nfsdkrpc.c > > head/sys/fs/nfsserver/nfs_nfsdsocket.c > > > > Modified: head/sys/fs/nfs/nfs_var.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/fs/nfs/nfs_var.h Mon Mar 4 11:33:49 2019 (r344757) > > +++ head/sys/fs/nfs/nfs_var.h Mon Mar 4 13:02:36 2019 (r344758) > > @@ -283,8 +283,7 @@ int nfsrvd_notsupp(struct nfsrv_descript *, int, > > > > /* nfs_nfsdsocket.c */ > > void nfsrvd_rephead(struct nfsrv_descript *); > > -void nfsrvd_dorpc(struct nfsrv_descript *, int, u_char *, int, u_int32= _t, > > - NFSPROC_T *); > > +void nfsrvd_dorpc(struct nfsrv_descript *, int, u_char *, int, u_int32= _t); > > > > /* nfs_nfsdcache.c */ > > void nfsrvd_initcache(void); > > > > Modified: head/sys/fs/nfsserver/nfs_nfsdkrpc.c > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=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/fs/nfsserver/nfs_nfsdkrpc.c Mon Mar 4 11:33:49 2019 = (r344757) > > +++ head/sys/fs/nfsserver/nfs_nfsdkrpc.c Mon Mar 4 13:02:36 2019 = (r344758) > > @@ -323,7 +323,6 @@ static int > > nfs_proc(struct nfsrv_descript *nd, u_int32_t xid, SVCXPRT *xprt, > > struct nfsrvcache **rpp) > > { > > - struct thread *td =3D curthread; > > int cacherep =3D RC_DOIT, isdgram, taglen =3D -1; > > struct mbuf *m; > > u_char tag[NFSV4_SMALLSTR + 1], *tagstr =3D NULL; > > @@ -384,7 +383,7 @@ nfs_proc(struct nfsrv_descript *nd, u_int32_t xid, = SVC > > if (cacherep =3D=3D RC_DOIT) { > > if ((nd->nd_flag & ND_NFSV41) !=3D 0) > > nd->nd_xprt =3D xprt; > > - nfsrvd_dorpc(nd, isdgram, tagstr, taglen, minorvers, td); > > + nfsrvd_dorpc(nd, isdgram, tagstr, taglen, minorvers); > > if ((nd->nd_flag & ND_NFSV41) !=3D 0) { > > if (nd->nd_repstat !=3D NFSERR_REPLYFROMCACHE && > > (nd->nd_flag & ND_SAVEREPLY) !=3D 0) { > > > > Modified: head/sys/fs/nfsserver/nfs_nfsdsocket.c > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=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/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 11:33:49 2019 = (r344757) > > +++ head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 13:02:36 2019 = (r344758) > > @@ -367,7 +367,7 @@ int nfsrv_writerpc[NFS_NPROCS] =3D { 0, 0, 1, 0, 0,= 0, 0 > > > > /* local functions */ > > static void nfsrvd_compound(struct nfsrv_descript *nd, int isdgram, > > - u_char *tag, int taglen, u_int32_t minorvers, NFSPROC_T *p); > > + u_char *tag, int taglen, u_int32_t minorvers); > > > > > > /* > > @@ -475,14 +475,17 @@ nfsrvd_statend(int op, uint64_t bytes, struct bin= time > > */ > > APPLESTATIC void > > nfsrvd_dorpc(struct nfsrv_descript *nd, int isdgram, u_char *tag, int = taglen, > > - u_int32_t minorvers, NFSPROC_T *p) > > + u_int32_t minorvers) > > { > > int error =3D 0, lktype; > > vnode_t vp; > > mount_t mp =3D NULL; > > struct nfsrvfh fh; > > struct nfsexstuff nes; > > + struct thread *p; > > > > + p =3D curthread; > > + > > /* > > * Get a locked vnode for the first file handle > > */ > > @@ -557,7 +560,7 @@ nfsrvd_dorpc(struct nfsrv_descript *nd, int isdgram= , u > > * The group is indicated by the value in nfs_retfh[]. > > */ > > if (nd->nd_flag & ND_NFSV4) { > > - nfsrvd_compound(nd, isdgram, tag, taglen, minorvers, p); > > + nfsrvd_compound(nd, isdgram, tag, taglen, minorvers); > > } else { > > struct bintime start_time; > > > > @@ -620,7 +623,7 @@ out: > > */ > > static void > > nfsrvd_compound(struct nfsrv_descript *nd, int isdgram, u_char *tag, > > - int taglen, u_int32_t minorvers, NFSPROC_T *p) > > + int taglen, u_int32_t minorvers) > > { > > int i, lktype, op, op0 =3D 0, statsinprog =3D 0; > > u_int32_t *tl; > > @@ -635,6 +638,9 @@ nfsrvd_compound(struct nfsrv_descript *nd, int isdg= ram > > fsid_t cur_fsid, save_fsid; > > static u_int64_t compref =3D 0; > > struct bintime start_time; > > + struct thread *p; > > + > > + p =3D curthread; > Why do you name it 'p', which is typical for process, and not 'td', you a= re > changing most of the code anyway. To keep the diff size smaller. You're right, this touches a lot of stuff, but most of those added lines are temporary anyway - they will be removed later, when the td is pushed down even more. > Also I am curious why. It is certainly fine to remove td when it is used > as a formal placeholder argument only. But when the first action in the > function is evaluation of curthread() it becomes less obvious. Again, many/most of those are temporary. I'm trying to push td down in small steps, "layer by layer", so it's easy to review. > curthread() become very cheap on modern amd64, I am not so sure about > older machines or non-x86 cases. The main reason is readability. Right now there's no easy way to tell whet= her a function can be passed any td, or if it must be curthread. From owner-svn-src-head@freebsd.org Mon Mar 4 14:30:33 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5FB3A1513422; Mon, 4 Mar 2019 14:30:33 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::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 84AE46CBD1; Mon, 4 Mar 2019 14:30:32 +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 x24EULwP043485 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 4 Mar 2019 16:30:24 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua x24EULwP043485 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id x24EULJ9043483; Mon, 4 Mar 2019 16:30:21 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 4 Mar 2019 16:30:21 +0200 From: Konstantin Belousov To: Edward Napierala Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver Message-ID: <20190304143021.GO68879@kib.kiev.ua> References: <201903041302.x24D2aG0093620@repo.freebsd.org> <20190304132021.GN68879@kib.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.11.3 (2019-02-01) 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 14:30:33 -0000 On Mon, Mar 04, 2019 at 01:31:37PM +0000, Edward Napierala wrote: > pon., 4 mar 2019 o 13:20 Konstantin Belousov napisaĹ‚(a): > > > + p = curthread; > > Why do you name it 'p', which is typical for process, and not 'td', you are > > changing most of the code anyway. > > To keep the diff size smaller. You're right, this touches a lot of stuff, > but most of those added lines are temporary anyway - they will be > removed later, when the td is pushed down even more. But if you create code churn, doing it only half way is worse. > > > Also I am curious why. It is certainly fine to remove td when it is used > > as a formal placeholder argument only. But when the first action in the > > function is evaluation of curthread() it becomes less obvious. > > Again, many/most of those are temporary. I'm trying to push td down > in small steps, "layer by layer", so it's easy to review. > > > curthread() become very cheap on modern amd64, I am not so sure about > > older machines or non-x86 cases. > > The main reason is readability. Right now there's no easy way to tell whether > a function can be passed any td, or if it must be curthread. I must admit that this is the weirdnest argument against 'td' that I ever heard. I saw more or less reasonable argumentation - that using less arguments make one more register for argument passing (amd64 has 6 input arg regs), - that less arguments make smaller call code. But trust me, in all cases where function can take td != curthread, it is either obvious or well-known for anybody who works with that code. Before you start doing a lot of small changes (AKA continous churn) please formulate your goals and get some public feedback. My immediate question that I want answered before you ever start touching the code, is what you plan to do with sys_syscall(struct thread *td, uap) From owner-svn-src-head@freebsd.org Mon Mar 4 14:30:41 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E52881513443; Mon, 4 Mar 2019 14:30:40 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 896446CC59; Mon, 4 Mar 2019 14:30:40 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 84B175553; Mon, 4 Mar 2019 14:30:38 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24EUcxe045594; Mon, 4 Mar 2019 14:30:38 GMT (envelope-from ken@FreeBSD.org) Received: (from ken@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24EUcPP045592; Mon, 4 Mar 2019 14:30:38 GMT (envelope-from ken@FreeBSD.org) Message-Id: <201903041430.x24EUcPP045592@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ken set sender to ken@FreeBSD.org using -f From: "Kenneth D. Merry" Date: Mon, 4 Mar 2019 14:30:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344761 - in head: lib/libmt usr.bin/mt X-SVN-Group: head X-SVN-Commit-Author: ken X-SVN-Commit-Paths: in head: lib/libmt usr.bin/mt X-SVN-Commit-Revision: 344761 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 896446CC59 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.95)[-0.953,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 14:30:41 -0000 Author: ken Date: Mon Mar 4 14:30:37 2019 New Revision: 344761 URL: https://svnweb.freebsd.org/changeset/base/344761 Log: Add IBM TS1160 density codes to libmt and the mt(1) man page. These are taken directly from the density report from a TS1160 tape drive. (Using mt getdensity) A TS1160 drive stores 20TB raw (60TB with compression) on a JE tape. lib/libmt/mtlib.c: Add 3592A6 encrypted/unencrypted density codes, and bpmm/bpi values. usr.bin/mt/mt.1: Add 3592B5 encrypted/unencrypted density codes, bpmm/bpi values and number of tracks. Bump the man page date. MFC after: 3 days Sponsored by: Spectra Logic Modified: head/lib/libmt/mtlib.c head/usr.bin/mt/mt.1 Modified: head/lib/libmt/mtlib.c ============================================================================== --- head/lib/libmt/mtlib.c Mon Mar 4 13:18:04 2019 (r344760) +++ head/lib/libmt/mtlib.c Mon Mar 4 14:30:37 2019 (r344761) @@ -642,6 +642,7 @@ static struct densities { { 0x54, 19686, 500024, "3592A4 (unencrypted)" }, { 0x55, 20670, 525018, "3592A5 (unencrypted)" }, { 0x56, 20670, 525018, "3592B5 (unencrypted)" }, + { 0x57, 21850, 554990, "3592A6 (unencrypted)" }, { 0x58, 15142, 384607, "LTO-5" }, { 0x5A, 15142, 384607, "LTO-6" }, { 0x5C, 19107, 485318, "LTO-7" }, @@ -653,6 +654,7 @@ static struct densities { { 0x74, 19686, 500024, "3592A4 (encrypted)" }, { 0x75, 20670, 525018, "3592A5 (encrypted)" }, { 0x76, 20670, 525018, "3592B5 (encrypted)" }, + { 0x77, 21850, 554990, "3592A6 (encrypted)" }, { 0x8c, 1789, 45434, "EXB-8500c" }, { 0x90, 1703, 43245, "EXB-8200c" }, { 0, 0, 0, NULL } Modified: head/usr.bin/mt/mt.1 ============================================================================== --- head/usr.bin/mt/mt.1 Mon Mar 4 13:18:04 2019 (r344760) +++ head/usr.bin/mt/mt.1 Mon Mar 4 14:30:37 2019 (r344761) @@ -29,7 +29,7 @@ .\" @(#)mt.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd November 3, 2017 +.Dd March 4, 2019 .Dt MT 1 .Os .Sh NAME @@ -519,6 +519,7 @@ Value Width Tracks Density Code Typ 0x54 12.7 (0.5) 2560 19,686 (500,024) C 3592A4 (unencrypted) 0x55 12.7 (0.5) 5120 20,670 (525,018) C 3592A5 (unencrypted) 0x56 12.7 (0.5) 7680 20,670 (525,018) C 3592B5 (unencrypted) +0x57 12.7 (0.5) 8704 21,850 (554,990) C 3592A6 (unencrypted) 0x58 12.7 (0.5) 1280 15,142 (384,607) C LTO-5 0x5A 12.7 (0.5) 2176 15,142 (384,607) C LTO-6 0x5C 12.7 (0.5) 3584 19,107 (485,318) C LTO-7 @@ -530,6 +531,7 @@ Value Width Tracks Density Code Typ 0x74 12.7 (0.5) 2560 19,686 (500,024) C 3592A4 (encrypted) 0x75 12.7 (0.5) 5120 20,670 (525,018) C 3592A5 (encrypted) 0x76 12.7 (0.5) 7680 20,670 (525,018) C 3592B5 (encrypted) +0x77 12.7 (0.5) 8704 21,850 (554,990) C 3592A6 (encrypted) 0x8c 8.0 (0.315) 1 1,789 (45,434) RLL CS EXB-8500c 5,9 0x90 8.0 (0.315) 1 1,703 (43,245) RLL CS EXB-8200c 5,9 .Ed From owner-svn-src-head@freebsd.org Mon Mar 4 14:30:57 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C6D06151347A; Mon, 4 Mar 2019 14:30:57 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 666956CE38; Mon, 4 Mar 2019 14:30:57 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C97C2566D; Mon, 4 Mar 2019 14:30:54 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24EUseM045685; Mon, 4 Mar 2019 14:30:54 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24EUsrZ045681; Mon, 4 Mar 2019 14:30:54 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201903041430.x24EUsrZ045681@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 4 Mar 2019 14:30:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344762 - in head/sys/fs: nfs nfsserver X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: in head/sys/fs: nfs nfsserver X-SVN-Commit-Revision: 344762 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 666956CE38 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.95)[-0.950,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 14:30:58 -0000 Author: trasz Date: Mon Mar 4 14:30:53 2019 New Revision: 344762 URL: https://svnweb.freebsd.org/changeset/base/344762 Log: Don't pass td to nfsvno_createsub(). MFC after: 2 weeks Sponsored by: DARPA, AFRL Modified: head/sys/fs/nfs/nfs_var.h head/sys/fs/nfsserver/nfs_nfsdport.c head/sys/fs/nfsserver/nfs_nfsdserv.c Modified: head/sys/fs/nfs/nfs_var.h ============================================================================== --- head/sys/fs/nfs/nfs_var.h Mon Mar 4 14:30:37 2019 (r344761) +++ head/sys/fs/nfs/nfs_var.h Mon Mar 4 14:30:53 2019 (r344762) @@ -649,7 +649,7 @@ int nfsvno_read(vnode_t, off_t, int, struct ucred *, N int nfsvno_write(vnode_t, off_t, int, int, int *, mbuf_t, char *, struct ucred *, NFSPROC_T *); int nfsvno_createsub(struct nfsrv_descript *, struct nameidata *, - vnode_t *, struct nfsvattr *, int *, int32_t *, NFSDEV_T, NFSPROC_T *, + vnode_t *, struct nfsvattr *, int *, int32_t *, NFSDEV_T, struct nfsexstuff *); int nfsvno_mknod(struct nameidata *, struct nfsvattr *, struct ucred *, NFSPROC_T *); Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Mon Mar 4 14:30:37 2019 (r344761) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Mon Mar 4 14:30:53 2019 (r344762) @@ -949,10 +949,11 @@ nfsvno_write(struct vnode *vp, off_t off, int retlen, int nfsvno_createsub(struct nfsrv_descript *nd, struct nameidata *ndp, struct vnode **vpp, struct nfsvattr *nvap, int *exclusive_flagp, - int32_t *cverf, NFSDEV_T rdev, struct thread *p, struct nfsexstuff *exp) + int32_t *cverf, NFSDEV_T rdev, struct nfsexstuff *exp) { u_quad_t tempsize; int error; + struct thread *p = curthread; error = nd->nd_repstat; if (!error && ndp->ni_vp == NULL) { Modified: head/sys/fs/nfsserver/nfs_nfsdserv.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdserv.c Mon Mar 4 14:30:37 2019 (r344761) +++ head/sys/fs/nfsserver/nfs_nfsdserv.c Mon Mar 4 14:30:53 2019 (r344762) @@ -1185,7 +1185,7 @@ nfsrvd_create(struct nfsrv_descript *nd, __unused int * should I set the mode too ? */ nd->nd_repstat = nfsvno_createsub(nd, &named, &vp, &nva, - &exclusive_flag, cverf, rdev, p, exp); + &exclusive_flag, cverf, rdev, exp); if (!nd->nd_repstat) { nd->nd_repstat = nfsvno_getfh(vp, &fh, p); From owner-svn-src-head@freebsd.org Mon Mar 4 14:50:02 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CD7011513E06; Mon, 4 Mar 2019 14:50:01 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6D1706D95B; Mon, 4 Mar 2019 14:50:01 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5C8D258B6; Mon, 4 Mar 2019 14:50:01 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24Eo134058403; Mon, 4 Mar 2019 14:50:01 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24Eo0xM058399; Mon, 4 Mar 2019 14:50:00 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201903041450.x24Eo0xM058399@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 4 Mar 2019 14:50:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344763 - in head/sys/fs: nfs nfsserver X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: in head/sys/fs: nfs nfsserver X-SVN-Commit-Revision: 344763 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6D1706D95B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.95)[-0.953,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 14:50:02 -0000 Author: trasz Date: Mon Mar 4 14:50:00 2019 New Revision: 344763 URL: https://svnweb.freebsd.org/changeset/base/344763 Log: Don't pass td to nfsvno_open(). MFC after: 2 weeks Sponsored by: DARPA, AFRL Modified: head/sys/fs/nfs/nfs_var.h head/sys/fs/nfsserver/nfs_nfsdport.c head/sys/fs/nfsserver/nfs_nfsdserv.c Modified: head/sys/fs/nfs/nfs_var.h ============================================================================== --- head/sys/fs/nfs/nfs_var.h Mon Mar 4 14:30:53 2019 (r344762) +++ head/sys/fs/nfs/nfs_var.h Mon Mar 4 14:50:00 2019 (r344763) @@ -673,7 +673,7 @@ int nfsvno_statfs(vnode_t, struct statfs *); void nfsvno_getfs(struct nfsfsinfo *, int); void nfsvno_open(struct nfsrv_descript *, struct nameidata *, nfsquad_t, nfsv4stateid_t *, struct nfsstate *, int *, struct nfsvattr *, int32_t *, - int, NFSACL_T *, nfsattrbit_t *, struct ucred *, NFSPROC_T *, + int, NFSACL_T *, nfsattrbit_t *, struct ucred *, struct nfsexstuff *, vnode_t *); int nfsvno_updfilerev(vnode_t, struct nfsvattr *, struct nfsrv_descript *, NFSPROC_T *); Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Mon Mar 4 14:30:53 2019 (r344762) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Mon Mar 4 14:50:00 2019 (r344763) @@ -1632,12 +1632,13 @@ void nfsvno_open(struct nfsrv_descript *nd, struct nameidata *ndp, nfsquad_t clientid, nfsv4stateid_t *stateidp, struct nfsstate *stp, int *exclusive_flagp, struct nfsvattr *nvap, int32_t *cverf, int create, - NFSACL_T *aclp, nfsattrbit_t *attrbitp, struct ucred *cred, struct thread *p, + NFSACL_T *aclp, nfsattrbit_t *attrbitp, struct ucred *cred, struct nfsexstuff *exp, struct vnode **vpp) { struct vnode *vp = NULL; u_quad_t tempsize; struct nfsexstuff nes; + struct thread *p = curthread; if (ndp->ni_vp == NULL) nd->nd_repstat = nfsrv_opencheck(clientid, Modified: head/sys/fs/nfsserver/nfs_nfsdserv.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdserv.c Mon Mar 4 14:30:53 2019 (r344762) +++ head/sys/fs/nfsserver/nfs_nfsdserv.c Mon Mar 4 14:50:00 2019 (r344763) @@ -2991,7 +2991,7 @@ nfsrvd_open(struct nfsrv_descript *nd, __unused int is } nfsvno_open(nd, &named, clientid, &stateid, stp, &exclusive_flag, &nva, cverf, create, aclp, &attrbits, - nd->nd_cred, p, exp, &vp); + nd->nd_cred, exp, &vp); } else if (claim == NFSV4OPEN_CLAIMPREVIOUS || claim == NFSV4OPEN_CLAIMFH) { if (claim == NFSV4OPEN_CLAIMPREVIOUS) { From owner-svn-src-head@freebsd.org Mon Mar 4 15:12:24 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 401DC1514949; Mon, 4 Mar 2019 15:12:24 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: from mail-oi1-f196.google.com (mail-oi1-f196.google.com [209.85.167.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D0CAF6E936; Mon, 4 Mar 2019 15:12:23 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: by mail-oi1-f196.google.com with SMTP id x187so4073888oia.7; Mon, 04 Mar 2019 07:12:23 -0800 (PST) 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:content-transfer-encoding; bh=L2D0dWS3e/ZUseK0XtiWI0z/IubyOFG7EJUCRHTAAmw=; b=VZJ88KIQVmUDw6Wb4z5ZO6LBQukmHZ1MRIsIbj2SBbC1PMCtldJoS7csM7aCNDi1JS XHhVEO+ThAiOBjEMHi/MLUey46KNrlrq+kSeJIAYnoEDNot2hmNV/BL+kztCg3wzVptO ONyFEsfHKd+uBiepNSwyktZxGPk4kYHYMNhBqAkGIMbYda18q8ewDRNaa+XZR+zcN3hU eRN4M27wapUnSMPNs8mo1MT+kNpZaII7NoXSCLSy8/UerDuQb8OaUYHOFgGAIS1ED62S 2dUKIM/RdWYpbVa8rG22yRIZdv7xSAGIk1vAyluFg1uMkz7rY8EydcG+8QxSK/jfU+KY KdmA== X-Gm-Message-State: AHQUAuZ1p8GdwR4q2dHBuD1qcIwb5yMV2evDJOmi8/lzHlSpqkz4GF4f B0OpLUdxG0JuBrVW1h4cwp5SZf/A+Hg2h1igUFQ= X-Google-Smtp-Source: APXvYqzVc/CiN/TZJkBHrTF1GO8ku1Hz5Di00RV2Z/7PgOl/8CuTFIDo2JDfCwGi8mw/CNwHaUqEW3t7CKwAlX9Dsjw= X-Received: by 2002:aca:4d3:: with SMTP id 202mr11884022oie.31.1551712342564; Mon, 04 Mar 2019 07:12:22 -0800 (PST) MIME-Version: 1.0 References: <201903041302.x24D2aG0093620@repo.freebsd.org> <20190304132021.GN68879@kib.kiev.ua> <20190304143021.GO68879@kib.kiev.ua> In-Reply-To: <20190304143021.GO68879@kib.kiev.ua> From: Edward Napierala Date: Mon, 4 Mar 2019 15:12:11 +0000 Message-ID: Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver To: Konstantin Belousov Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: D0CAF6E936 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.99)[-0.987,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 15:12:24 -0000 pon., 4 mar 2019 o 14:30 Konstantin Belousov napisa= =C5=82(a): > > On Mon, Mar 04, 2019 at 01:31:37PM +0000, Edward Napierala wrote: > > pon., 4 mar 2019 o 13:20 Konstantin Belousov napi= sa=C5=82(a): > > > > + p =3D curthread; > > > Why do you name it 'p', which is typical for process, and not 'td', y= ou are > > > changing most of the code anyway. > > > > To keep the diff size smaller. You're right, this touches a lot of stu= ff, > > but most of those added lines are temporary anyway - they will be > > removed later, when the td is pushed down even more. > But if you create code churn, doing it only half way is worse. But this way I create less churn - if I renamed it to 'td', then first I'd change the calls to other functions to take 'td' instead of 'p', and then I'd remo= ve this argument altogether in subsequent commit. This would make diffs larger for no good reason. > > > Also I am curious why. It is certainly fine to remove td when it is u= sed > > > as a formal placeholder argument only. But when the first action in t= he > > > function is evaluation of curthread() it becomes less obvious. > > > > Again, many/most of those are temporary. I'm trying to push td down > > in small steps, "layer by layer", so it's easy to review. > > > > > curthread() become very cheap on modern amd64, I am not so sure about > > > older machines or non-x86 cases. > > > > The main reason is readability. Right now there's no easy way to tell = whether > > a function can be passed any td, or if it must be curthread. > I must admit that this is the weirdnest argument against 'td' that I ever > heard. I saw more or less reasonable argumentation > - that using less arguments make one more register for argument passing > (amd64 has 6 input arg regs), > - that less arguments make smaller call code. > But trust me, in all cases where function can take td !=3D curthread, it = is > either obvious or well-known for anybody who works with that code. Ah, ok. So, yes, you are right that from a high level point of view it's a poor argument. But at this point I'm not trying to change stuff throughout the kernel; just the NFS server. And the reason for doing this is to make it obvious that the 'td' argument it passes to VOPs and other kernel APIs is always equal to curthread. Doing it layer by layer makes it easy to review. > Before you start doing a lot of small changes (AKA continous churn) > please formulate your goals and get some public feedback. I'll do that; I won't go changing kernel APIs like that. But I'd like to untangle things that complicate the picture, and the NFS server code is one of them. > My immediate > question that I want answered before you ever start touching the code, > is what you plan to do with > sys_syscall(struct thread *td, uap) Probably nothing; those things pretty much always actually use the thread pointer. From owner-svn-src-head@freebsd.org Mon Mar 4 15:17:09 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 66E301514C93; Mon, 4 Mar 2019 15:17:09 +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 8A8FF6EC6F; Mon, 4 Mar 2019 15:17:08 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id 0pKyhBnqI11ZC0pKzhKvPr; Mon, 04 Mar 2019 08:17:06 -0700 X-Authority-Analysis: v=2.3 cv=ctflbGwi c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=IkcTkHD0fZMA:10 a=NTGMnVQrEZIA:10 a=pGLkceISAAAA:8 a=YxBL1-UpAAAA:8 a=6I5d2MoRAAAA:8 a=7Unlge_febPNYF3M47wA:9 a=naNX69SWAkzDNZm_:21 a=QSeD0WeDasypmQEK:21 a=QEXdDO2ut3YA:10 a=Ia-lj3WSrqcvXOmTRaiG:22 a=IjZwj45LgO3ly-622nXo:22 Received: from android-68f84e02b5988183.esitwifi.local (S0106788a207e2972.gv.shawcable.net [70.66.154.233]) by spqr.komquats.com (Postfix) with ESMTPSA id 4CA261F6; Mon, 4 Mar 2019 07:17:03 -0800 (PST) Date: Mon, 04 Mar 2019 07:16:38 -0800 User-Agent: K-9 Mail for Android In-Reply-To: <20190304143021.GO68879@kib.kiev.ua> References: <201903041302.x24D2aG0093620@repo.freebsd.org> <20190304132021.GN68879@kib.kiev.ua> <20190304143021.GO68879@kib.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver To: Konstantin Belousov , Edward Napierala CC: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Cy Schubert Message-ID: X-CMAE-Envelope: MS4wfP73L2ORxJ60/8mU6p7jncXOiR3FIc3UGzU2THVrGqyDkGPzy+tARlL/nqHYT5dJdNsLvU5NsCn0JYquieUviESmFWjbSaapBUOQMP99aZsSSdO7aDwY DS+Jzl/LbpyxSLuWx8s8cOZVvnrF/3BtHfsywXK1Pux0G6iOQTNL5AzC12wmF0piwGIjYXGFMV9D/pHkmgbQt0++7IUbQk35FCWqPW0q5BaDTPzV2ITCMLUz GMHWi4Zt4NKQ4i1D0BUO8z/9v4nxG9tHr/cslt+cEYAPAzkr7lnAo7iHo1TlYvnsJ9GTCvCe2qNfbUv6tVUu6g== X-Rspamd-Queue-Id: 8A8FF6EC6F X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.95 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.954,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 15:17:09 -0000 On March 4, 2019 6:30:21 AM PST, Konstantin Belousov wrote: >On Mon, Mar 04, 2019 at 01:31:37PM +0000, Edward Napierala wrote: >> pon=2E, 4 mar 2019 o 13:20 Konstantin Belousov >napisa=C5=82(a): >> > > + p =3D curthread; >> > Why do you name it 'p', which is typical for process, and not 'td', >you are >> > changing most of the code anyway=2E >>=20 >> To keep the diff size smaller=2E You're right, this touches a lot of >stuff, >> but most of those added lines are temporary anyway - they will be >> removed later, when the td is pushed down even more=2E >But if you create code churn, doing it only half way is worse=2E > >>=20 >> > Also I am curious why=2E It is certainly fine to remove td when it is >used >> > as a formal placeholder argument only=2E But when the first action in >the >> > function is evaluation of curthread() it becomes less obvious=2E >>=20 >> Again, many/most of those are temporary=2E I'm trying to push td down >> in small steps, "layer by layer", so it's easy to review=2E >>=20 >> > curthread() become very cheap on modern amd64, I am not so sure >about >> > older machines or non-x86 cases=2E >>=20 >> The main reason is readability=2E Right now there's no easy way to >tell whether >> a function can be passed any td, or if it must be curthread=2E >I must admit that this is the weirdnest argument against 'td' that I >ever >heard=2E I saw more or less reasonable argumentation >- that using less arguments make one more register for argument passing > (amd64 has 6 input arg regs), >- that less arguments make smaller call code=2E >But trust me, in all cases where function can take td !=3D curthread, it >is >either obvious or well-known for anybody who works with that code=2E > >Before you start doing a lot of small changes (AKA continous churn) >please formulate your goals and get some public feedback=2E My immediate >question that I want answered before you ever start touching the code, >is what you plan to do with > sys_syscall(struct thread *td, uap) Agreed on all points=2E At the very least this group of commits should be = reviewed on phabricator=2E Can we back all these commits out until there is a proper review, please? --=20 Pardon the typos and autocorrect, small keyboard in use=2E Cheers, Cy Schubert FreeBSD UNIX: Web: http://www=2EFreeBSD=2Eorg The need of the many outweighs the greed of the few=2E From owner-svn-src-head@freebsd.org Mon Mar 4 18:15:10 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 59D69151D93B; Mon, 4 Mar 2019 18:15:10 +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 D97BC77536; Mon, 4 Mar 2019 18:15:09 +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 CD3A07C5C; Mon, 4 Mar 2019 18:15:09 +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 x24IF9kd075172; Mon, 4 Mar 2019 18:15:09 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24IF6aY075152; Mon, 4 Mar 2019 18:15:06 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201903041815.x24IF6aY075152@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Mon, 4 Mar 2019 18:15:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344764 - in head/tests/sys: . common netipsec/tunnel netpfil/pf X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: in head/tests/sys: . common netipsec/tunnel netpfil/pf X-SVN-Commit-Revision: 344764 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D97BC77536 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.977,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 18:15:10 -0000 Author: kp Date: Mon Mar 4 18:15:06 2019 New Revision: 344764 URL: https://svnweb.freebsd.org/changeset/base/344764 Log: tests: Move common (vnet) test functions into a common file The netipsec and pf tests have a number of common test functions. These used to be duplicated, but it makes more sense for them to re-use the common functions. PR: 236223 Added: head/tests/sys/common/ head/tests/sys/common/Makefile (contents, props changed) head/tests/sys/common/vnet.subr (contents, props changed) Modified: head/tests/sys/Makefile head/tests/sys/netipsec/tunnel/utils.subr head/tests/sys/netpfil/pf/anchor.sh head/tests/sys/netpfil/pf/forward.sh head/tests/sys/netpfil/pf/fragmentation.sh head/tests/sys/netpfil/pf/names.sh head/tests/sys/netpfil/pf/nat.sh head/tests/sys/netpfil/pf/pass_block.sh head/tests/sys/netpfil/pf/pfsync.sh head/tests/sys/netpfil/pf/rdr.sh head/tests/sys/netpfil/pf/route_to.sh head/tests/sys/netpfil/pf/set_skip.sh head/tests/sys/netpfil/pf/set_tos.sh head/tests/sys/netpfil/pf/synproxy.sh head/tests/sys/netpfil/pf/utils.subr Modified: head/tests/sys/Makefile ============================================================================== --- head/tests/sys/Makefile Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/Makefile Mon Mar 4 18:15:06 2019 (r344764) @@ -39,4 +39,6 @@ _cddl= cddl # Items not integrated into kyua runs by default SUBDIR+= pjdfstest +SUBDIR+= common + .include Added: head/tests/sys/common/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/common/Makefile Mon Mar 4 18:15:06 2019 (r344764) @@ -0,0 +1,7 @@ +# $FreeBSD$ + +PACKAGE= common +TESTSDIR= ${TESTSBASE}/sys/common +${PACKAGE}FILES+= vnet.subr + +.include Added: head/tests/sys/common/vnet.subr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/common/vnet.subr Mon Mar 4 18:15:06 2019 (r344764) @@ -0,0 +1,51 @@ +# $FreeBSD$ +# VNAT/jail utility functions +## + +vnet_init() +{ + if [ "`sysctl -i -n kern.features.vimage`" != 1 ]; then + atf_skip "This test requires VIMAGE" + fi +} + +vnet_mkepair() +{ + ifname=$(ifconfig epair create) + echo $ifname >> created_interfaces.lst + echo ${ifname%a} +} + +vnet_mkjail() +{ + jailname=$1 + shift + + vnet_interfaces= + for ifname in $@ + do + vnet_interfaces="${vnet_interfaces} vnet.interface=${ifname}" + done + jail -c name=${jailname} persist vnet ${vnet_interfaces} + + echo $jailname >> created_jails.lst +} + +vnet_cleanup() +{ + if [ -f created_jails.lst ]; then + for jailname in `cat created_jails.lst` + do + jail -r ${jailname} + done + rm created_jails.lst + fi + + if [ -f created_interfaces.lst ]; then + for ifname in `cat created_interfaces.lst` + do + ifconfig ${ifname} destroy + done + rm created_interfaces.lst + fi +} Modified: head/tests/sys/netipsec/tunnel/utils.subr ============================================================================== --- head/tests/sys/netipsec/tunnel/utils.subr Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netipsec/tunnel/utils.subr Mon Mar 4 18:15:06 2019 (r344764) @@ -4,51 +4,29 @@ : ${TMPDIR=/tmp} +. $(atf_get_srcdir)/../../common/vnet.subr + ist_init() { - if [ "$(sysctl -i -n kern.features.vimage)" != 1 ]; then - atf_skip "This test requires VIMAGE" - fi + vnet_init } -pft_mkepair() -{ - ifname=$(ifconfig epair create) - echo $ifname >> created_interfaces.lst - echo ${ifname%a} -} - -pft_mkjail() -{ - jailname=$1 - shift - - vnet_interfaces= - for ifname in $@ - do - vnet_interfaces="${vnet_interfaces} vnet.interface=${ifname}" - done - jail -c name=${jailname} persist vnet ${vnet_interfaces} - - echo $jailname >> created_jails.lst -} - ist_labsetup () { - epair_LAN_A=$(pft_mkepair) + epair_LAN_A=$(vnet_mkepair) ifconfig ${epair_LAN_A}a up - epair_PUB_A=$(pft_mkepair) + epair_PUB_A=$(vnet_mkepair) ifconfig ${epair_PUB_A}a up - epair_LAN_B=$(pft_mkepair) + epair_LAN_B=$(vnet_mkepair) ifconfig ${epair_LAN_B}a up - epair_PUB_B=$(pft_mkepair) + epair_PUB_B=$(vnet_mkepair) ifconfig ${epair_PUB_B}a up - pft_mkjail hostA ${epair_LAN_A}a - pft_mkjail ipsecA ${epair_LAN_A}b ${epair_PUB_A}a - pft_mkjail router ${epair_PUB_A}b ${epair_PUB_B}b - pft_mkjail ipsecB ${epair_LAN_B}b ${epair_PUB_B}a - pft_mkjail hostB ${epair_LAN_B}a + vnet_mkjail hostA ${epair_LAN_A}a + vnet_mkjail ipsecA ${epair_LAN_A}b ${epair_PUB_A}a + vnet_mkjail router ${epair_PUB_A}b ${epair_PUB_B}b + vnet_mkjail ipsecB ${epair_LAN_B}b ${epair_PUB_B}a + vnet_mkjail hostB ${epair_LAN_B}a } ist_v4_setup () @@ -147,20 +125,5 @@ ist_test() } ist_cleanup() { - if [ -f created_jails.lst ]; then - for jailname in $(cat created_jails.lst) - do - jail -r ${jailname} - rm -f ${TMPDIR}/ipsec.${jailname}.conf - done - rm created_jails.lst - fi - - if [ -f created_interfaces.lst ]; then - for ifname in $(cat created_interfaces.lst) - do - ifconfig ${ifname} destroy - done - rm created_interfaces.lst - fi + vnet_cleanup } Modified: head/tests/sys/netpfil/pf/anchor.sh ============================================================================== --- head/tests/sys/netpfil/pf/anchor.sh Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/anchor.sh Mon Mar 4 18:15:06 2019 (r344764) @@ -13,8 +13,8 @@ pr183198_body() { pft_init - epair=$(pft_mkepair) - pft_mkjail alcatraz ${epair}b + epair=$(vnet_mkepair) + vnet_mkjail alcatraz ${epair}b jexec alcatraz pfctl -e # Forward with pf enabled Modified: head/tests/sys/netpfil/pf/forward.sh ============================================================================== --- head/tests/sys/netpfil/pf/forward.sh Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/forward.sh Mon Mar 4 18:15:06 2019 (r344764) @@ -16,13 +16,13 @@ v4_body() { pft_init - epair_send=$(pft_mkepair) + epair_send=$(vnet_mkepair) ifconfig ${epair_send}a 192.0.2.1/24 up - epair_recv=$(pft_mkepair) + epair_recv=$(vnet_mkepair) ifconfig ${epair_recv}a up - pft_mkjail alcatraz ${epair_send}b ${epair_recv}b + vnet_mkjail alcatraz ${epair_send}b ${epair_recv}b jexec alcatraz ifconfig ${epair_send}b 192.0.2.2/24 up jexec alcatraz ifconfig ${epair_recv}b 198.51.100.2/24 up jexec alcatraz sysctl net.inet.ip.forwarding=1 @@ -75,13 +75,13 @@ v6_body() { pft_init - epair_send=$(pft_mkepair) - epair_recv=$(pft_mkepair) + epair_send=$(vnet_mkepair) + epair_recv=$(vnet_mkepair) ifconfig ${epair_send}a inet6 2001:db8:42::1/64 up no_dad -ifdisabled ifconfig ${epair_recv}a up - pft_mkjail alcatraz ${epair_send}b ${epair_recv}b + vnet_mkjail alcatraz ${epair_send}b ${epair_recv}b jexec alcatraz ifconfig ${epair_send}b inet6 2001:db8:42::2/64 up no_dad jexec alcatraz ifconfig ${epair_recv}b inet6 2001:db8:43::2/64 up no_dad Modified: head/tests/sys/netpfil/pf/fragmentation.sh ============================================================================== --- head/tests/sys/netpfil/pf/fragmentation.sh Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/fragmentation.sh Mon Mar 4 18:15:06 2019 (r344764) @@ -14,8 +14,8 @@ too_many_fragments_body() { pft_init - epair=$(pft_mkepair) - pft_mkjail alcatraz ${epair}a + epair=$(vnet_mkepair) + vnet_mkjail alcatraz ${epair}a ifconfig ${epair}b inet 192.0.2.1/24 up jexec alcatraz ifconfig ${epair}a 192.0.2.2/24 up @@ -57,11 +57,11 @@ v6_body() { pft_init - epair_send=$(pft_mkepair) - epair_link=$(pft_mkepair) + epair_send=$(vnet_mkepair) + epair_link=$(vnet_mkepair) - pft_mkjail alcatraz ${epair_send}b ${epair_link}a - pft_mkjail singsing ${epair_link}b + vnet_mkjail alcatraz ${epair_send}b ${epair_link}a + vnet_mkjail singsing ${epair_link}b ifconfig ${epair_send}a inet6 2001:db8:42::1/64 no_dad up Modified: head/tests/sys/netpfil/pf/names.sh ============================================================================== --- head/tests/sys/netpfil/pf/names.sh Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/names.sh Mon Mar 4 18:15:06 2019 (r344764) @@ -13,9 +13,9 @@ names_body() { pft_init - epair=$(pft_mkepair) + epair=$(vnet_mkepair) - pft_mkjail alcatraz ${epair}b + vnet_mkjail alcatraz ${epair}b ifconfig ${epair}a name foo jexec alcatraz ifconfig ${epair}b name foo Modified: head/tests/sys/netpfil/pf/nat.sh ============================================================================== --- head/tests/sys/netpfil/pf/nat.sh Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/nat.sh Mon Mar 4 18:15:06 2019 (r344764) @@ -13,11 +13,11 @@ exhaust_body() { pft_init - epair_nat=$(pft_mkepair) - epair_echo=$(pft_mkepair) + epair_nat=$(vnet_mkepair) + epair_echo=$(vnet_mkepair) - pft_mkjail nat ${epair_nat}b ${epair_echo}a - pft_mkjail echo ${epair_echo}b + vnet_mkjail nat ${epair_nat}b ${epair_echo}a + vnet_mkjail echo ${epair_echo}b ifconfig ${epair_nat}a 192.0.2.2/24 up route add -net 198.51.100.0/24 192.0.2.1 Modified: head/tests/sys/netpfil/pf/pass_block.sh ============================================================================== --- head/tests/sys/netpfil/pf/pass_block.sh Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/pass_block.sh Mon Mar 4 18:15:06 2019 (r344764) @@ -13,11 +13,11 @@ v4_body() { pft_init - epair=$(pft_mkepair) + epair=$(vnet_mkepair) ifconfig ${epair}a 192.0.2.1/24 up # Set up a simple jail with one interface - pft_mkjail alcatraz ${epair}b + vnet_mkjail alcatraz ${epair}b jexec alcatraz ifconfig ${epair}b 192.0.2.2/24 up # Trivial ping to the jail, without pf @@ -52,11 +52,11 @@ v6_body() { pft_init - epair=$(pft_mkepair) + epair=$(vnet_mkepair) ifconfig ${epair}a inet6 2001:db8:42::1/64 up no_dad # Set up a simple jail with one interface - pft_mkjail alcatraz ${epair}b + vnet_mkjail alcatraz ${epair}b jexec alcatraz ifconfig ${epair}b inet6 2001:db8:42::2/64 up no_dad # Trivial ping to the jail, without pf @@ -95,10 +95,10 @@ noalias_body() { pft_init - epair=$(pft_mkepair) + epair=$(vnet_mkepair) ifconfig ${epair}a inet6 2001:db8:42::1/64 up no_dad - pft_mkjail alcatraz ${epair}b + vnet_mkjail alcatraz ${epair}b jexec alcatraz ifconfig ${epair}b inet6 2001:db8:42::2/64 up no_dad linklocaladdr=$(jexec alcatraz ifconfig ${epair}b inet6 \ Modified: head/tests/sys/netpfil/pf/pfsync.sh ============================================================================== --- head/tests/sys/netpfil/pf/pfsync.sh Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/pfsync.sh Mon Mar 4 18:15:06 2019 (r344764) @@ -19,12 +19,12 @@ common_body() defer=$1 pfsynct_init - epair_sync=$(pft_mkepair) - epair_one=$(pft_mkepair) - epair_two=$(pft_mkepair) + epair_sync=$(vnet_mkepair) + epair_one=$(vnet_mkepair) + epair_two=$(vnet_mkepair) - pft_mkjail one ${epair_one}a ${epair_sync}a - pft_mkjail two ${epair_two}a ${epair_sync}b + vnet_mkjail one ${epair_one}a ${epair_sync}a + vnet_mkjail two ${epair_two}a ${epair_sync}b # pfsync interface jexec one ifconfig ${epair_sync}a 192.0.2.1/24 up Modified: head/tests/sys/netpfil/pf/rdr.sh ============================================================================== --- head/tests/sys/netpfil/pf/rdr.sh Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/rdr.sh Mon Mar 4 18:15:06 2019 (r344764) @@ -13,9 +13,9 @@ basic_body() { pft_init - epair=$(pft_mkepair) + epair=$(vnet_mkepair) - pft_mkjail alcatraz ${epair}b + vnet_mkjail alcatraz ${epair}b ifconfig ${epair}a 192.0.2.2/24 up route add -net 198.51.100.0/24 192.0.2.1 Modified: head/tests/sys/netpfil/pf/route_to.sh ============================================================================== --- head/tests/sys/netpfil/pf/route_to.sh Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/route_to.sh Mon Mar 4 18:15:06 2019 (r344764) @@ -13,12 +13,12 @@ v4_body() { pft_init - epair_send=$(pft_mkepair) + epair_send=$(vnet_mkepair) ifconfig ${epair_send}a 192.0.2.1/24 up - epair_route=$(pft_mkepair) + epair_route=$(vnet_mkepair) ifconfig ${epair_route}a 203.0.113.1/24 up - pft_mkjail alcatraz ${epair_send}b ${epair_route}b + vnet_mkjail alcatraz ${epair_send}b ${epair_route}b jexec alcatraz ifconfig ${epair_send}b 192.0.2.2/24 up jexec alcatraz ifconfig ${epair_route}b 203.0.113.2/24 up jexec alcatraz route add -net 198.51.100.0/24 192.0.2.1 @@ -49,12 +49,12 @@ v6_body() { pft_init - epair_send=$(pft_mkepair) + epair_send=$(vnet_mkepair) ifconfig ${epair_send}a inet6 2001:db8:42::1/64 up no_dad -ifdisabled - epair_route=$(pft_mkepair) + epair_route=$(vnet_mkepair) ifconfig ${epair_route}a inet6 2001:db8:43::1/64 up no_dad -ifdisabled - pft_mkjail alcatraz ${epair_send}b ${epair_route}b + vnet_mkjail alcatraz ${epair_send}b ${epair_route}b jexec alcatraz ifconfig ${epair_send}b inet6 2001:db8:42::2/64 up no_dad jexec alcatraz ifconfig ${epair_route}b inet6 2001:db8:43::2/64 up no_dad jexec alcatraz route add -6 2001:db8:666::/64 2001:db8:42::2 Modified: head/tests/sys/netpfil/pf/set_skip.sh ============================================================================== --- head/tests/sys/netpfil/pf/set_skip.sh Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/set_skip.sh Mon Mar 4 18:15:06 2019 (r344764) @@ -14,7 +14,7 @@ set_skip_group_body() # See PR 229241 pft_init - pft_mkjail alcatraz + vnet_mkjail alcatraz jexec alcatraz ifconfig lo0 127.0.0.1/8 up jexec alcatraz ifconfig lo0 group foo jexec alcatraz pfctl -e @@ -42,7 +42,7 @@ set_skip_group_lo_body() # See PR 229241 pft_init - pft_mkjail alcatraz + vnet_mkjail alcatraz jexec alcatraz ifconfig lo0 127.0.0.1/8 up jexec alcatraz pfctl -e pft_set_rules alcatraz "set skip on lo" \ Modified: head/tests/sys/netpfil/pf/set_tos.sh ============================================================================== --- head/tests/sys/netpfil/pf/set_tos.sh Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/set_tos.sh Mon Mar 4 18:15:06 2019 (r344764) @@ -16,13 +16,13 @@ v4_body() { pft_init - epair_send=$(pft_mkepair) + epair_send=$(vnet_mkepair) ifconfig ${epair_send}a 192.0.2.1/24 up - epair_recv=$(pft_mkepair) + epair_recv=$(vnet_mkepair) ifconfig ${epair_recv}a up - pft_mkjail alcatraz ${epair_send}b ${epair_recv}b + vnet_mkjail alcatraz ${epair_send}b ${epair_recv}b jexec alcatraz ifconfig ${epair_send}b 192.0.2.2/24 up jexec alcatraz ifconfig ${epair_recv}b 198.51.100.2/24 up jexec alcatraz sysctl net.inet.ip.forwarding=1 Modified: head/tests/sys/netpfil/pf/synproxy.sh ============================================================================== --- head/tests/sys/netpfil/pf/synproxy.sh Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/synproxy.sh Mon Mar 4 18:15:06 2019 (r344764) @@ -13,18 +13,18 @@ synproxy_body() { pft_init - epair=$(pft_mkepair) + epair=$(vnet_mkepair) ifconfig ${epair}a 192.0.2.1/24 up route add -net 198.51.100.0/24 192.0.2.2 - link=$(pft_mkepair) + link=$(vnet_mkepair) - pft_mkjail alcatraz ${epair}b ${link}a + vnet_mkjail alcatraz ${epair}b ${link}a jexec alcatraz ifconfig ${epair}b 192.0.2.2/24 up jexec alcatraz ifconfig ${link}a 198.51.100.1/24 up jexec alcatraz sysctl net.inet.ip.forwarding=1 - pft_mkjail singsing ${link}b + vnet_mkjail singsing ${link}b jexec singsing ifconfig ${link}b 198.51.100.2/24 up jexec singsing route add default 198.51.100.1 Modified: head/tests/sys/netpfil/pf/utils.subr ============================================================================== --- head/tests/sys/netpfil/pf/utils.subr Mon Mar 4 14:50:00 2019 (r344763) +++ head/tests/sys/netpfil/pf/utils.subr Mon Mar 4 18:15:06 2019 (r344764) @@ -2,15 +2,15 @@ # Utility functions ## +. $(atf_get_srcdir)/../../common/vnet.subr + pft_init() { + vnet_init + if [ ! -c /dev/pf ]; then atf_skip "This test requires pf" fi - - if [ "`sysctl -i -n kern.features.vimage`" != 1 ]; then - atf_skip "This test requires VIMAGE" - fi } pfsynct_init() @@ -22,28 +22,6 @@ pfsynct_init() fi } -pft_mkepair() -{ - ifname=$(ifconfig epair create) - echo $ifname >> created_interfaces.lst - echo ${ifname%a} -} - -pft_mkjail() -{ - jailname=$1 - shift - - vnet_interfaces= - for ifname in $@ - do - vnet_interfaces="${vnet_interfaces} vnet.interface=${ifname}" - done - jail -c name=${jailname} persist vnet ${vnet_interfaces} - - echo $jailname >> created_jails.lst -} - pft_set_rules() { jname=$1 @@ -66,21 +44,7 @@ pft_set_rules() pft_cleanup() { - if [ -f created_jails.lst ]; then - for jailname in `cat created_jails.lst` - do - jail -r ${jailname} - done - rm created_jails.lst - fi - - if [ -f created_interfaces.lst ]; then - for ifname in `cat created_interfaces.lst` - do - ifconfig ${ifname} destroy - done - rm created_interfaces.lst - fi + vnet_cleanup } pfsynct_cleanup() From owner-svn-src-head@freebsd.org Mon Mar 4 19:24:03 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70DC6151FEAB; Mon, 4 Mar 2019 19:24:03 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: from mail-ot1-f47.google.com (mail-ot1-f47.google.com [209.85.210.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0244D833A9; Mon, 4 Mar 2019 19:24:02 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: by mail-ot1-f47.google.com with SMTP id q24so5237984otk.0; Mon, 04 Mar 2019 11:24:02 -0800 (PST) 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:content-transfer-encoding; bh=Rpc3+qJDe1k+uwfQYKyN0DdeG5qDN52frZis2ZZ8dkY=; b=kpjjCM+Um7vMGAuKUNMPZw9PsASpLomH7w6iCNrMRQuH8AQqPLVbTh0Z/O0Xw2t3eE zRFzvZU6zv5t0nGc/++0zCyOxg9DOXyN/LVZPz0xGiwi27RDYxLeYk2PXdasZ2ceBWb0 ij5aofK2CpX18ETZzk2O2vKk6XS1cNl4WvdoElLoXDtsv1rV2kwxjBOMORgqFHez58vP 7sm83eGEEpyH6suKmtRP4WHueakEOdo+EH8bWH8kqvj3THthYxqxP+pi+Sw75MnCwcaF bgIHraMFxazkoIK4u3FrnZQ/X41utz0P2cJ8zi+Fpyera7C8ex+GJ4jCpuOvATgH/pB9 ysfw== X-Gm-Message-State: APjAAAWsbCg0AcW3sfds/hypJofz6OedzRYaviTEWHkRHRjxJY0HIVL5 oXxQ4x8Mp1cR9mZJ39uy0t5Lg/EyD7/3E0gfviqSEw== X-Google-Smtp-Source: APXvYqy19rf0pIPheNXhJFmzlxnyOfl8bqIOzCI191/abmW0q7nShYriqXXgZY0W/3bTjSAC6xZVmf86VYreFTKskGs= X-Received: by 2002:a9d:7dcd:: with SMTP id k13mr12096043otn.205.1551713210293; Mon, 04 Mar 2019 07:26:50 -0800 (PST) MIME-Version: 1.0 References: <201903041302.x24D2aG0093620@repo.freebsd.org> <20190304132021.GN68879@kib.kiev.ua> <20190304143021.GO68879@kib.kiev.ua> In-Reply-To: From: Edward Napierala Date: Mon, 4 Mar 2019 15:26:39 +0000 Message-ID: Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver To: Cy Schubert Cc: Konstantin Belousov , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 0244D833A9 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.99)[-0.989,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 19:24:03 -0000 pon., 4 mar 2019 o 15:17 Cy Schubert napisa=C5= =82(a): > > On March 4, 2019 6:30:21 AM PST, Konstantin Belousov wrote: > >On Mon, Mar 04, 2019 at 01:31:37PM +0000, Edward Napierala wrote: > >> pon., 4 mar 2019 o 13:20 Konstantin Belousov > >napisa=C5=82(a): > >> > > + p =3D curthread; > >> > Why do you name it 'p', which is typical for process, and not 'td', > >you are > >> > changing most of the code anyway. > >> > >> To keep the diff size smaller. You're right, this touches a lot of > >stuff, > >> but most of those added lines are temporary anyway - they will be > >> removed later, when the td is pushed down even more. > >But if you create code churn, doing it only half way is worse. > > > >> > >> > Also I am curious why. It is certainly fine to remove td when it is > >used > >> > as a formal placeholder argument only. But when the first action in > >the > >> > function is evaluation of curthread() it becomes less obvious. > >> > >> Again, many/most of those are temporary. I'm trying to push td down > >> in small steps, "layer by layer", so it's easy to review. > >> > >> > curthread() become very cheap on modern amd64, I am not so sure > >about > >> > older machines or non-x86 cases. > >> > >> The main reason is readability. Right now there's no easy way to > >tell whether > >> a function can be passed any td, or if it must be curthread. > >I must admit that this is the weirdnest argument against 'td' that I > >ever > >heard. I saw more or less reasonable argumentation > >- that using less arguments make one more register for argument passing > > (amd64 has 6 input arg regs), > >- that less arguments make smaller call code. > >But trust me, in all cases where function can take td !=3D curthread, it > >is > >either obvious or well-known for anybody who works with that code. > > > >Before you start doing a lot of small changes (AKA continous churn) > >please formulate your goals and get some public feedback. My immediate > >question that I want answered before you ever start touching the code, > >is what you plan to do with > > sys_syscall(struct thread *td, uap) > > Agreed on all points. At the very least this group of commits should be r= eviewed on phabricator. It has been, even though they are pretty much mechanical changes. > Can we back all these commits out until there is a proper review, please? The review from the NFS maintainer is not enough? From owner-svn-src-head@freebsd.org Mon Mar 4 19:40:12 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06B8215205B2; Mon, 4 Mar 2019 19:40: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 A57F883CCD; Mon, 4 Mar 2019 19:40:10 +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 880A88A5A; Mon, 4 Mar 2019 19:40:10 +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 x24JeAne019066; Mon, 4 Mar 2019 19:40:10 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24Je3bg019034; Mon, 4 Mar 2019 19:40:03 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201903041940.x24Je3bg019034@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 4 Mar 2019 19:40:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344779 - in head: . contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/com... X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in head: . contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/builtins/arm... X-SVN-Commit-Revision: 344779 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A57F883CCD X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.96)[-0.965,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 19:40:12 -0000 Author: dim Date: Mon Mar 4 19:39:59 2019 New Revision: 344779 URL: https://svnweb.freebsd.org/changeset/base/344779 Log: Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to the upstream release_80 branch r355313 (effectively, 8.0.0 rc3). The release will follow very soon, but no more functional changes are expected. Release notes for llvm, clang and lld 8.0.0 will soon be available here: PR: 236062 Relnotes: yes MFC after: 1 month Added: head/contrib/compiler-rt/lib/builtins/ppc/fixunstfti.c - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/builtins/ppc/fixunstfti.c head/contrib/compiler-rt/lib/builtins/ppc/floattitf.c - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/builtins/ppc/floattitf.c head/contrib/compiler-rt/lib/esan/esan_sideline_bsd.cpp - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/esan/esan_sideline_bsd.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltins.h - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltins.h head/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltinsMsvc.h - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltinsMsvc.h head/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWindows.cpp - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWindows.cpp head/contrib/compiler-rt/lib/hwasan/hwasan_checks.h - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/hwasan/hwasan_checks.h head/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cc - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cc head/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cc - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cc head/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.h - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_local_address_space_view.h - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_local_address_space_view.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_netbsd.cc - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_netbsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cc - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_ring_buffer.h - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_ring_buffer.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.cc - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.h - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.h head/contrib/compiler-rt/lib/xray/xray_fdr_controller.h - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/xray/xray_fdr_controller.h head/contrib/compiler-rt/lib/xray/xray_fdr_log_writer.h - copied unchanged from r344778, projects/clang800-import/contrib/compiler-rt/lib/xray/xray_fdr_log_writer.h head/contrib/libc++/include/bit - copied unchanged from r344778, projects/clang800-import/contrib/libc++/include/bit head/contrib/llvm/include/llvm-c/Error.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm-c/Error.h head/contrib/llvm/include/llvm-c/OptRemarks.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm-c/OptRemarks.h head/contrib/llvm/include/llvm-c/Transforms/AggressiveInstCombine.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm-c/Transforms/AggressiveInstCombine.h head/contrib/llvm/include/llvm-c/Transforms/Coroutines.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm-c/Transforms/Coroutines.h head/contrib/llvm/include/llvm/ADT/bit.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/ADT/bit.h head/contrib/llvm/include/llvm/Analysis/GuardUtils.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Analysis/GuardUtils.h head/contrib/llvm/include/llvm/Analysis/IVDescriptors.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Analysis/IVDescriptors.h head/contrib/llvm/include/llvm/Analysis/IndirectCallVisitor.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Analysis/IndirectCallVisitor.h head/contrib/llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h head/contrib/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/OrderedInstructions.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Analysis/OrderedInstructions.h head/contrib/llvm/include/llvm/Analysis/StackSafetyAnalysis.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Analysis/StackSafetyAnalysis.h head/contrib/llvm/include/llvm/Analysis/SyncDependenceAnalysis.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Analysis/SyncDependenceAnalysis.h head/contrib/llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h head/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/MSP430.def - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/MSP430.def head/contrib/llvm/include/llvm/BinaryFormat/MsgPack.def - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/BinaryFormat/MsgPack.def head/contrib/llvm/include/llvm/BinaryFormat/MsgPack.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/BinaryFormat/MsgPack.h head/contrib/llvm/include/llvm/BinaryFormat/MsgPackReader.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/BinaryFormat/MsgPackReader.h head/contrib/llvm/include/llvm/BinaryFormat/MsgPackTypes.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/BinaryFormat/MsgPackTypes.h head/contrib/llvm/include/llvm/BinaryFormat/MsgPackWriter.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/BinaryFormat/MsgPackWriter.h head/contrib/llvm/include/llvm/CodeGen/AsmPrinterHandler.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/CodeGen/AsmPrinterHandler.h head/contrib/llvm/include/llvm/CodeGen/BuiltinGCs.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/CodeGen/BuiltinGCs.h head/contrib/llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h head/contrib/llvm/include/llvm/CodeGen/DebugHandlerBase.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/CodeGen/DebugHandlerBase.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h head/contrib/llvm/include/llvm/CodeGen/MachinePipeliner.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/CodeGen/MachinePipeliner.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAFrameData.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAFrameData.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBFrameData.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBFrameData.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h head/contrib/llvm/include/llvm/Demangle/Compiler.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Demangle/Compiler.h head/contrib/llvm/include/llvm/Demangle/ItaniumDemangle.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Demangle/ItaniumDemangle.h head/contrib/llvm/include/llvm/Demangle/MicrosoftDemangle.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Demangle/MicrosoftDemangle.h head/contrib/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h head/contrib/llvm/include/llvm/Demangle/StringView.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Demangle/StringView.h head/contrib/llvm/include/llvm/Demangle/Utility.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Demangle/Utility.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h head/contrib/llvm/include/llvm/IR/CFGDiff.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/IR/CFGDiff.h head/contrib/llvm/include/llvm/IR/IntrinsicsRISCV.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/IR/IntrinsicsRISCV.td head/contrib/llvm/include/llvm/IR/PassInstrumentation.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/IR/PassInstrumentation.h head/contrib/llvm/include/llvm/IR/PassTimingInfo.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/IR/PassTimingInfo.h head/contrib/llvm/include/llvm/LTO/SummaryBasedOptimizations.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/LTO/SummaryBasedOptimizations.h head/contrib/llvm/include/llvm/MCA/ - copied from r344778, projects/clang800-import/contrib/llvm/include/llvm/MCA/ head/contrib/llvm/include/llvm/Passes/StandardInstrumentations.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Passes/StandardInstrumentations.h head/contrib/llvm/include/llvm/Support/AArch64TargetParser.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Support/AArch64TargetParser.h head/contrib/llvm/include/llvm/Support/ARMTargetParser.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Support/ARMTargetParser.h head/contrib/llvm/include/llvm/Support/BuryPointer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Support/BuryPointer.h head/contrib/llvm/include/llvm/Support/CFGUpdate.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Support/CFGUpdate.h head/contrib/llvm/include/llvm/Support/FileCheck.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Support/FileCheck.h head/contrib/llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h head/contrib/llvm/include/llvm/Support/MSVCErrorWorkarounds.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Support/MSVCErrorWorkarounds.h head/contrib/llvm/include/llvm/Support/SymbolRemappingReader.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Support/SymbolRemappingReader.h head/contrib/llvm/include/llvm/Support/VirtualFileSystem.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Support/VirtualFileSystem.h head/contrib/llvm/include/llvm/Target/TargetPfmCounters.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Target/TargetPfmCounters.td head/contrib/llvm/include/llvm/TextAPI/ - copied from r344778, projects/clang800-import/contrib/llvm/include/llvm/TextAPI/ head/contrib/llvm/include/llvm/Transforms/IPO/HotColdSplitting.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Transforms/IPO/HotColdSplitting.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h head/contrib/llvm/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h head/contrib/llvm/include/llvm/Transforms/Scalar/Scalarizer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Transforms/Scalar/Scalarizer.h head/contrib/llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h head/contrib/llvm/include/llvm/Transforms/Utils/CanonicalizeAliases.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Transforms/Utils/CanonicalizeAliases.h head/contrib/llvm/include/llvm/Transforms/Utils/GuardUtils.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Transforms/Utils/GuardUtils.h head/contrib/llvm/include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h head/contrib/llvm/include/llvm/XRay/BlockIndexer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/XRay/BlockIndexer.h head/contrib/llvm/include/llvm/XRay/BlockPrinter.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/XRay/BlockPrinter.h head/contrib/llvm/include/llvm/XRay/BlockVerifier.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/XRay/BlockVerifier.h head/contrib/llvm/include/llvm/XRay/FDRLogBuilder.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/XRay/FDRLogBuilder.h head/contrib/llvm/include/llvm/XRay/FDRRecordConsumer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/XRay/FDRRecordConsumer.h head/contrib/llvm/include/llvm/XRay/FDRRecordProducer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/XRay/FDRRecordProducer.h head/contrib/llvm/include/llvm/XRay/FDRRecords.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/XRay/FDRRecords.h head/contrib/llvm/include/llvm/XRay/FDRTraceExpander.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/XRay/FDRTraceExpander.h head/contrib/llvm/include/llvm/XRay/FDRTraceWriter.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/XRay/FDRTraceWriter.h head/contrib/llvm/include/llvm/XRay/FileHeaderReader.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/XRay/FileHeaderReader.h head/contrib/llvm/include/llvm/XRay/Profile.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/XRay/Profile.h head/contrib/llvm/include/llvm/XRay/RecordPrinter.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/XRay/RecordPrinter.h head/contrib/llvm/include/llvm/module.extern.modulemap - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/module.extern.modulemap head/contrib/llvm/include/llvm/module.install.modulemap - copied unchanged from r344778, projects/clang800-import/contrib/llvm/include/llvm/module.install.modulemap head/contrib/llvm/lib/Analysis/GuardUtils.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Analysis/GuardUtils.cpp head/contrib/llvm/lib/Analysis/IVDescriptors.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Analysis/IVDescriptors.cpp head/contrib/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp head/contrib/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp head/contrib/llvm/lib/Analysis/OrderedInstructions.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Analysis/OrderedInstructions.cpp head/contrib/llvm/lib/Analysis/StackSafetyAnalysis.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Analysis/StackSafetyAnalysis.cpp head/contrib/llvm/lib/Analysis/SyncDependenceAnalysis.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Analysis/SyncDependenceAnalysis.cpp head/contrib/llvm/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp head/contrib/llvm/lib/BinaryFormat/MsgPackReader.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/BinaryFormat/MsgPackReader.cpp head/contrib/llvm/lib/BinaryFormat/MsgPackTypes.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/BinaryFormat/MsgPackTypes.cpp head/contrib/llvm/lib/BinaryFormat/MsgPackWriter.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/BinaryFormat/MsgPackWriter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.h head/contrib/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp head/contrib/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp head/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp head/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumFrameData.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumFrameData.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAFrameData.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAFrameData.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumGlobals.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumGlobals.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeArray.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeArray.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeBuiltin.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeBuiltin.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypePointer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypePointer.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeTypedef.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeTypedef.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeVTShape.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeVTShape.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/SymbolCache.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/DebugInfo/PDB/Native/SymbolCache.cpp head/contrib/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp head/contrib/llvm/lib/IR/PassInstrumentation.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/IR/PassInstrumentation.cpp head/contrib/llvm/lib/IR/PassTimingInfo.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/IR/PassTimingInfo.cpp head/contrib/llvm/lib/LTO/SummaryBasedOptimizations.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/LTO/SummaryBasedOptimizations.cpp head/contrib/llvm/lib/MC/MCParser/WasmAsmParser.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/MC/MCParser/WasmAsmParser.cpp head/contrib/llvm/lib/MCA/ - copied from r344778, projects/clang800-import/contrib/llvm/lib/MCA/ head/contrib/llvm/lib/OptRemarks/ - copied from r344778, projects/clang800-import/contrib/llvm/lib/OptRemarks/ head/contrib/llvm/lib/Passes/StandardInstrumentations.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Passes/StandardInstrumentations.cpp head/contrib/llvm/lib/Support/AArch64TargetParser.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Support/AArch64TargetParser.cpp head/contrib/llvm/lib/Support/ARMTargetParser.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Support/ARMTargetParser.cpp head/contrib/llvm/lib/Support/BuryPointer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Support/BuryPointer.cpp head/contrib/llvm/lib/Support/FileCheck.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Support/FileCheck.cpp head/contrib/llvm/lib/Support/ItaniumManglingCanonicalizer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Support/ItaniumManglingCanonicalizer.cpp head/contrib/llvm/lib/Support/SymbolRemappingReader.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Support/SymbolRemappingReader.cpp head/contrib/llvm/lib/Support/VirtualFileSystem.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Support/VirtualFileSystem.cpp head/contrib/llvm/lib/Target/AArch64/AArch64BranchTargets.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AArch64/AArch64BranchTargets.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp head/contrib/llvm/lib/Target/AArch64/AArch64PfmCounters.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AArch64/AArch64PfmCounters.td head/contrib/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp head/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM4.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM4.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedPredicates.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AArch64/AArch64SchedPredicates.td head/contrib/llvm/lib/Target/AArch64/AArch64SpeculationHardening.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AArch64/AArch64SpeculationHardening.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUFixFunctionBitcasts.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUFixFunctionBitcasts.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp head/contrib/llvm/lib/Target/AMDGPU/SIAddIMGInit.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AMDGPU/SIAddIMGInit.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFixupVectorISel.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AMDGPU/SIFixupVectorISel.cpp head/contrib/llvm/lib/Target/AMDGPU/SIModeRegister.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/AMDGPU/SIModeRegister.cpp head/contrib/llvm/lib/Target/BPF/BPFMIChecking.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/BPF/BPFMIChecking.cpp head/contrib/llvm/lib/Target/BPF/BTF.def - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/BPF/BTF.def head/contrib/llvm/lib/Target/BPF/BTF.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/BPF/BTF.h head/contrib/llvm/lib/Target/BPF/BTFDebug.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/BPF/BTFDebug.cpp head/contrib/llvm/lib/Target/BPF/BTFDebug.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/BPF/BTFDebug.h head/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.h head/contrib/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV5.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV5.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV5.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV5.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV66.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV66.td head/contrib/llvm/lib/Target/MSP430/AsmParser/ - copied from r344778, projects/clang800-import/contrib/llvm/lib/Target/MSP430/AsmParser/ head/contrib/llvm/lib/Target/MSP430/Disassembler/ - copied from r344778, projects/clang800-import/contrib/llvm/lib/Target/MSP430/Disassembler/ head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFObjectWriter.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFObjectWriter.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFStreamer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFStreamer.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430FixupKinds.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430FixupKinds.h head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp head/contrib/llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXProxyRegErasure.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/NVPTX/NVPTXProxyRegErasure.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h head/contrib/llvm/lib/Target/PowerPC/PPCPfmCounters.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/PowerPC/PPCPfmCounters.td head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h head/contrib/llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/RISCV/RISCVSystemOperands.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/RISCV/RISCVSystemOperands.td head/contrib/llvm/lib/Target/RISCV/Utils/ - copied from r344778, projects/clang800-import/contrib/llvm/lib/Target/RISCV/Utils/ head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyEHRestoreStackPointer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyEHRestoreStackPointer.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp head/contrib/llvm/lib/Target/X86/X86CondBrFolding.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/X86/X86CondBrFolding.cpp head/contrib/llvm/lib/Target/X86/X86DiscriminateMemOps.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/X86/X86DiscriminateMemOps.cpp head/contrib/llvm/lib/Target/X86/X86InsertPrefetch.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/X86/X86InsertPrefetch.cpp head/contrib/llvm/lib/Target/X86/X86ScheduleBdVer2.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Target/X86/X86ScheduleBdVer2.td head/contrib/llvm/lib/Testing/Support/SupportHelpers.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Testing/Support/SupportHelpers.cpp head/contrib/llvm/lib/TextAPI/ - copied from r344778, projects/clang800-import/contrib/llvm/lib/TextAPI/ head/contrib/llvm/lib/Transforms/IPO/HotColdSplitting.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Transforms/IPO/HotColdSplitting.cpp head/contrib/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp head/contrib/llvm/lib/Transforms/Scalar/MakeGuardsExplicit.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Transforms/Scalar/MakeGuardsExplicit.cpp head/contrib/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp head/contrib/llvm/lib/Transforms/Utils/CanonicalizeAliases.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Transforms/Utils/CanonicalizeAliases.cpp head/contrib/llvm/lib/Transforms/Utils/GuardUtils.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Transforms/Utils/GuardUtils.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp head/contrib/llvm/lib/XRay/BlockIndexer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/XRay/BlockIndexer.cpp head/contrib/llvm/lib/XRay/BlockPrinter.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/XRay/BlockPrinter.cpp head/contrib/llvm/lib/XRay/BlockVerifier.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/XRay/BlockVerifier.cpp head/contrib/llvm/lib/XRay/FDRRecordProducer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/XRay/FDRRecordProducer.cpp head/contrib/llvm/lib/XRay/FDRRecords.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/XRay/FDRRecords.cpp head/contrib/llvm/lib/XRay/FDRTraceExpander.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/XRay/FDRTraceExpander.cpp head/contrib/llvm/lib/XRay/FDRTraceWriter.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/XRay/FDRTraceWriter.cpp head/contrib/llvm/lib/XRay/FileHeaderReader.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/XRay/FileHeaderReader.cpp head/contrib/llvm/lib/XRay/LogBuilderConsumer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/XRay/LogBuilderConsumer.cpp head/contrib/llvm/lib/XRay/Profile.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/XRay/Profile.cpp head/contrib/llvm/lib/XRay/RecordInitializer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/XRay/RecordInitializer.cpp head/contrib/llvm/lib/XRay/RecordPrinter.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/lib/XRay/RecordPrinter.cpp head/contrib/llvm/tools/clang/include/clang/AST/ASTContextAllocate.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/AST/ASTContextAllocate.h head/contrib/llvm/tools/clang/include/clang/AST/ASTDumperUtils.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/AST/ASTDumperUtils.h head/contrib/llvm/tools/clang/include/clang/AST/ASTImporterLookupTable.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/AST/ASTImporterLookupTable.h head/contrib/llvm/tools/clang/include/clang/AST/AttrVisitor.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/AST/AttrVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/FormatString.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/AST/FormatString.h head/contrib/llvm/tools/clang/include/clang/AST/OSLog.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/AST/OSLog.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateArgumentVisitor.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/AST/TemplateArgumentVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/TextNodeDumper.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/AST/TextNodeDumper.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h head/contrib/llvm/tools/clang/include/clang/Analysis/SelectorExtras.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Analysis/SelectorExtras.h head/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.def - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.def head/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAST.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAST.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAnalysis.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAnalysis.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticComment.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticComment.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTU.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTU.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriver.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriver.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontend.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontend.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLex.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLex.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParse.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParse.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoring.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoring.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSema.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSema.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerialization.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerialization.h head/contrib/llvm/tools/clang/include/clang/Basic/FixedPoint.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/FixedPoint.h head/contrib/llvm/tools/clang/include/clang/Basic/MSP430Target.def - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/MSP430Target.def head/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensionTypes.def - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensionTypes.def head/contrib/llvm/tools/clang/include/clang/Driver/DarwinSDKInfo.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Driver/DarwinSDKInfo.h head/contrib/llvm/tools/clang/include/clang/Parse/LoopHint.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Parse/LoopHint.h head/contrib/llvm/tools/clang/include/clang/Serialization/PCHContainerOperations.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/Serialization/PCHContainerOperations.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/BuiltinCheckerRegistration.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/BuiltinCheckerRegistration.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/RetainSummaryManager.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/RetainSummaryManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistry.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistry.h head/contrib/llvm/tools/clang/lib/AST/ASTImporterLookupTable.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/AST/ASTImporterLookupTable.cpp head/contrib/llvm/tools/clang/lib/AST/FormatString.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/AST/FormatString.cpp head/contrib/llvm/tools/clang/lib/AST/FormatStringParsing.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/AST/FormatStringParsing.h head/contrib/llvm/tools/clang/lib/AST/OSLog.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/AST/OSLog.cpp head/contrib/llvm/tools/clang/lib/AST/PrintfFormatString.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/AST/PrintfFormatString.cpp head/contrib/llvm/tools/clang/lib/AST/ScanfFormatString.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/AST/ScanfFormatString.cpp head/contrib/llvm/tools/clang/lib/AST/TextNodeDumper.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/AST/TextNodeDumper.cpp head/contrib/llvm/tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp head/contrib/llvm/tools/clang/lib/Basic/CodeGenOptions.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Basic/CodeGenOptions.cpp head/contrib/llvm/tools/clang/lib/Basic/FixedPoint.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Basic/FixedPoint.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.h head/contrib/llvm/tools/clang/lib/Driver/DarwinSDKInfo.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/DarwinSDKInfo.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.h head/contrib/llvm/tools/clang/lib/Serialization/PCHContainerOperations.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/Serialization/PCHContainerOperations.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/ head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/ head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/TaintManager.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/TaintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp head/contrib/llvm/tools/lld/ELF/Arch/MSP430.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lld/ELF/Arch/MSP430.cpp head/contrib/llvm/tools/lld/ELF/Arch/RISCV.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lld/ELF/Arch/RISCV.cpp head/contrib/llvm/tools/lld/ELF/DWARF.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lld/ELF/DWARF.cpp head/contrib/llvm/tools/lld/ELF/DWARF.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lld/ELF/DWARF.h head/contrib/llvm/tools/lld/docs/missingkeyfunction.rst - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lld/docs/missingkeyfunction.rst head/contrib/llvm/tools/lldb/include/lldb/API/SBInitializerOptions.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/API/SBInitializerOptions.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverScripted.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverScripted.h head/contrib/llvm/tools/lldb/include/lldb/Core/Highlighter.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Core/Highlighter.h head/contrib/llvm/tools/lldb/include/lldb/Core/RichManglingContext.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Core/RichManglingContext.h head/contrib/llvm/tools/lldb/include/lldb/Host/SafeMachO.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Host/SafeMachO.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameRecognizer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameRecognizer.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Broadcaster.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Utility/Broadcaster.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Event.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Utility/Event.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Listener.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Utility/Listener.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Predicate.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Utility/Predicate.h head/contrib/llvm/tools/lldb/include/lldb/Utility/RegisterValue.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Utility/RegisterValue.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Reproducer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Utility/Reproducer.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Scalar.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Utility/Scalar.h head/contrib/llvm/tools/lldb/include/lldb/Utility/State.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/include/lldb/Utility/State.h head/contrib/llvm/tools/lldb/source/API/SBInitializerOptions.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/API/SBInitializerOptions.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverScripted.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverScripted.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.h head/contrib/llvm/tools/lldb/source/Core/Highlighter.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Core/Highlighter.cpp head/contrib/llvm/tools/lldb/source/Core/RichManglingContext.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Core/RichManglingContext.cpp head/contrib/llvm/tools/lldb/source/Plugins/Architecture/Mips/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Architecture/Mips/ head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxOptional.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxOptional.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.h head/contrib/llvm/tools/lldb/source/Plugins/Language/ClangCommon/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Language/ClangCommon/ head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/ head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Breakpad/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Breakpad/ head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/ head/contrib/llvm/tools/lldb/source/Target/StackFrameRecognizer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Target/StackFrameRecognizer.cpp head/contrib/llvm/tools/lldb/source/Utility/Broadcaster.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Utility/Broadcaster.cpp head/contrib/llvm/tools/lldb/source/Utility/Event.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Utility/Event.cpp head/contrib/llvm/tools/lldb/source/Utility/Listener.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Utility/Listener.cpp head/contrib/llvm/tools/lldb/source/Utility/RegisterValue.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Utility/RegisterValue.cpp head/contrib/llvm/tools/lldb/source/Utility/Reproducer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Utility/Reproducer.cpp head/contrib/llvm/tools/lldb/source/Utility/Scalar.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Utility/Scalar.cpp head/contrib/llvm/tools/lldb/source/Utility/State.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/source/Utility/State.cpp head/contrib/llvm/tools/lldb/tools/driver/Options.td - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/lldb/tools/driver/Options.td head/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.cpp head/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.h head/contrib/llvm/tools/llvm-cxxmap/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/llvm-cxxmap/ head/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.cpp head/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.h head/contrib/llvm/tools/llvm-mca/Views/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/llvm-mca/Views/ head/contrib/llvm/tools/llvm-mca/include/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/llvm-mca/include/ head/contrib/llvm/tools/llvm-mca/lib/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/llvm-mca/lib/ head/contrib/llvm/tools/llvm-objcopy/Buffer.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/llvm-objcopy/Buffer.cpp head/contrib/llvm/tools/llvm-objcopy/Buffer.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/llvm-objcopy/Buffer.h head/contrib/llvm/tools/llvm-objcopy/COFF/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/llvm-objcopy/COFF/ head/contrib/llvm/tools/llvm-objcopy/CopyConfig.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/llvm-objcopy/CopyConfig.cpp head/contrib/llvm/tools/llvm-objcopy/CopyConfig.h - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/llvm-objcopy/CopyConfig.h head/contrib/llvm/tools/llvm-objcopy/ELF/ - copied from r344778, projects/clang800-import/contrib/llvm/tools/llvm-objcopy/ELF/ head/contrib/llvm/tools/llvm-xray/xray-fdr-dump.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/tools/llvm-xray/xray-fdr-dump.cpp head/contrib/llvm/utils/TableGen/ExegesisEmitter.cpp - copied unchanged from r344778, projects/clang800-import/contrib/llvm/utils/TableGen/ExegesisEmitter.cpp Deleted: head/contrib/compiler-rt/lib/builtins/arm64/ head/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsDlsymWin.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeakAlias.cpp head/contrib/libc++/include/experimental/dynarray head/contrib/libc++/src/experimental/filesystem/ head/contrib/llvm/include/llvm/Analysis/IndirectCallSiteVisitor.h head/contrib/llvm/include/llvm/CodeGen/GCs.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeBuiltinSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbol.h head/contrib/llvm/include/llvm/IR/TypeBuilder.h head/contrib/llvm/include/llvm/Transforms/Utils/OrderedInstructions.h head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterHandler.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.h head/contrib/llvm/lib/CodeGen/MachinePassRegistry.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeBuiltinSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumSymbol.cpp head/contrib/llvm/lib/Demangle/Compiler.h head/contrib/llvm/lib/Demangle/StringView.h head/contrib/llvm/lib/Demangle/Utility.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsics.td head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPULaneDominator.cpp head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPULaneDominator.h head/contrib/llvm/lib/Target/Hexagon/HexagonGatherPacketize.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV4.td head/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV3.td head/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV4.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV4.td head/contrib/llvm/lib/Target/Nios2/InstPrinter/Nios2InstPrinter.cpp head/contrib/llvm/lib/Target/Nios2/InstPrinter/Nios2InstPrinter.h head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.cpp head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.h head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2BaseInfo.h head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2ELFObjectWriter.cpp head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2FixupKinds.h head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.cpp head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.h head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.cpp head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.h head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCTargetDesc.cpp head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCTargetDesc.h head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2TargetStreamer.cpp head/contrib/llvm/lib/Target/Nios2/Nios2.h head/contrib/llvm/lib/Target/Nios2/Nios2.td head/contrib/llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp head/contrib/llvm/lib/Target/Nios2/Nios2CallingConv.td head/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.cpp head/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.h head/contrib/llvm/lib/Target/Nios2/Nios2ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.cpp head/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.h head/contrib/llvm/lib/Target/Nios2/Nios2InstrFormats.td head/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.cpp head/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.h head/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.td head/contrib/llvm/lib/Target/Nios2/Nios2MCInstLower.cpp head/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.cpp head/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.h head/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.cpp head/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.h head/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.td head/contrib/llvm/lib/Target/Nios2/Nios2Schedule.td head/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.cpp head/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.h head/contrib/llvm/lib/Target/Nios2/Nios2TargetMachine.cpp head/contrib/llvm/lib/Target/Nios2/Nios2TargetMachine.h head/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.cpp head/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.h head/contrib/llvm/lib/Target/Nios2/Nios2TargetStreamer.h head/contrib/llvm/lib/Target/Nios2/TargetInfo/Nios2TargetInfo.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h head/contrib/llvm/lib/Target/Sparc/SparcTargetStreamer.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyStoreResults.cpp head/contrib/llvm/lib/Transforms/Utils/OrderedInstructions.cpp head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/OSLog.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNios2.def head/contrib/llvm/tools/clang/include/clang/Basic/VirtualFileSystem.h head/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def head/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h head/contrib/llvm/tools/clang/include/clang/Lex/PTHLexer.h head/contrib/llvm/tools/clang/include/clang/Lex/PTHManager.h head/contrib/llvm/tools/clang/include/clang/Sema/LoopHint.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/ClangCheckers.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerOptInfo.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerRegistry.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTContext.h head/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/FormatStringParsing.h head/contrib/llvm/tools/clang/lib/Analysis/OSLog.cpp head/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/PseudoConstantAnalysis.cpp head/contrib/llvm/tools/clang/lib/Analysis/ScanfFormatString.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/Nios2.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/Nios2.h head/contrib/llvm/tools/clang/lib/Basic/VirtualFileSystem.cpp head/contrib/llvm/tools/clang/lib/Driver/Arch/ head/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCV.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCV.h head/contrib/llvm/tools/clang/lib/Frontend/CacheTokens.cpp head/contrib/llvm/tools/clang/lib/Frontend/CodeGenOptions.cpp head/contrib/llvm/tools/clang/lib/Frontend/PCHContainerOperations.cpp head/contrib/llvm/tools/clang/lib/Headers/cuda/ head/contrib/llvm/tools/clang/lib/Lex/PTHLexer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangCheckers.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangSACheckers.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MisusedMovedObjectChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SelectorExtras.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObjectChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerRegistry.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp head/contrib/llvm/tools/clang/lib/Tooling/Inclusions/CMakeLists.txt head/contrib/llvm/tools/lld/ELF/GdbIndex.cpp head/contrib/llvm/tools/lld/ELF/GdbIndex.h head/contrib/llvm/tools/lld/include/lld/Core/TODO.txt head/contrib/llvm/tools/lldb/include/lldb/Core/Broadcaster.h head/contrib/llvm/tools/lldb/include/lldb/Core/Event.h head/contrib/llvm/tools/lldb/include/lldb/Core/Listener.h head/contrib/llvm/tools/lldb/include/lldb/Core/RegisterValue.h head/contrib/llvm/tools/lldb/include/lldb/Core/Scalar.h head/contrib/llvm/tools/lldb/include/lldb/Core/State.h head/contrib/llvm/tools/lldb/include/lldb/Host/Predicate.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeBreakpoint.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/SoftwareBreakpoint.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/GoASTContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/JavaASTContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/OCamlASTContext.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Either.h head/contrib/llvm/tools/lldb/include/lldb/Utility/FastDemangle.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Range.h head/contrib/llvm/tools/lldb/include/lldb/Utility/SafeMachO.h head/contrib/llvm/tools/lldb/source/Core/Broadcaster.cpp head/contrib/llvm/tools/lldb/source/Core/Event.cpp head/contrib/llvm/tools/lldb/source/Core/Listener.cpp head/contrib/llvm/tools/lldb/source/Core/RegisterValue.cpp head/contrib/llvm/tools/lldb/source/Core/Scalar.cpp head/contrib/llvm/tools/lldb/source/Core/State.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpoint.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpointList.cpp head/contrib/llvm/tools/lldb/source/Host/common/SoftwareBreakpoint.cpp head/contrib/llvm/tools/lldb/source/Plugins/Architecture/PPC64/CMakeLists.txt head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoAST.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoLexer.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoLexer.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoParser.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoParser.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoUserExpression.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoUserExpression.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/gen_go_ast.py head/contrib/llvm/tools/lldb/source/Plugins/Instruction/PPC64/CMakeLists.txt head/contrib/llvm/tools/lldb/source/Plugins/Language/Go/GoFormatterFunctions.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/Go/GoFormatterFunctions.h head/contrib/llvm/tools/lldb/source/Plugins/Language/Go/GoLanguage.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/Go/GoLanguage.h head/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.h head/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.h head/contrib/llvm/tools/lldb/source/Plugins/Language/OCaml/OCamlLanguage.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/OCaml/OCamlLanguage.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Go/GoLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Go/GoLanguageRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Go/OperatingSystemGo.cpp head/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Go/OperatingSystemGo.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserJava.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserJava.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.h head/contrib/llvm/tools/lldb/source/Symbol/GoASTContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/JavaASTContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/OCamlASTContext.cpp head/contrib/llvm/tools/lldb/source/Utility/FastDemangle.cpp head/contrib/llvm/tools/lldb/source/Utility/Range.cpp head/contrib/llvm/tools/llvm-mca/Context.cpp head/contrib/llvm/tools/llvm-mca/Context.h head/contrib/llvm/tools/llvm-mca/DispatchStage.cpp head/contrib/llvm/tools/llvm-mca/DispatchStage.h head/contrib/llvm/tools/llvm-mca/DispatchStatistics.cpp head/contrib/llvm/tools/llvm-mca/DispatchStatistics.h head/contrib/llvm/tools/llvm-mca/ExecuteStage.cpp head/contrib/llvm/tools/llvm-mca/ExecuteStage.h head/contrib/llvm/tools/llvm-mca/FetchStage.cpp head/contrib/llvm/tools/llvm-mca/FetchStage.h head/contrib/llvm/tools/llvm-mca/HWEventListener.cpp head/contrib/llvm/tools/llvm-mca/HWEventListener.h head/contrib/llvm/tools/llvm-mca/HardwareUnit.cpp head/contrib/llvm/tools/llvm-mca/HardwareUnit.h head/contrib/llvm/tools/llvm-mca/InstrBuilder.cpp head/contrib/llvm/tools/llvm-mca/InstrBuilder.h head/contrib/llvm/tools/llvm-mca/Instruction.cpp head/contrib/llvm/tools/llvm-mca/Instruction.h head/contrib/llvm/tools/llvm-mca/InstructionInfoView.cpp head/contrib/llvm/tools/llvm-mca/InstructionInfoView.h head/contrib/llvm/tools/llvm-mca/InstructionTables.cpp head/contrib/llvm/tools/llvm-mca/InstructionTables.h head/contrib/llvm/tools/llvm-mca/LSUnit.cpp head/contrib/llvm/tools/llvm-mca/LSUnit.h head/contrib/llvm/tools/llvm-mca/Pipeline.cpp head/contrib/llvm/tools/llvm-mca/Pipeline.h head/contrib/llvm/tools/llvm-mca/RegisterFile.cpp head/contrib/llvm/tools/llvm-mca/RegisterFile.h head/contrib/llvm/tools/llvm-mca/RegisterFileStatistics.cpp head/contrib/llvm/tools/llvm-mca/RegisterFileStatistics.h head/contrib/llvm/tools/llvm-mca/ResourcePressureView.cpp head/contrib/llvm/tools/llvm-mca/ResourcePressureView.h head/contrib/llvm/tools/llvm-mca/RetireControlUnit.cpp head/contrib/llvm/tools/llvm-mca/RetireControlUnit.h head/contrib/llvm/tools/llvm-mca/RetireControlUnitStatistics.cpp head/contrib/llvm/tools/llvm-mca/RetireControlUnitStatistics.h head/contrib/llvm/tools/llvm-mca/RetireStage.cpp head/contrib/llvm/tools/llvm-mca/RetireStage.h head/contrib/llvm/tools/llvm-mca/Scheduler.cpp head/contrib/llvm/tools/llvm-mca/Scheduler.h head/contrib/llvm/tools/llvm-mca/SchedulerStatistics.cpp head/contrib/llvm/tools/llvm-mca/SchedulerStatistics.h head/contrib/llvm/tools/llvm-mca/SourceMgr.h head/contrib/llvm/tools/llvm-mca/Stage.cpp head/contrib/llvm/tools/llvm-mca/Stage.h head/contrib/llvm/tools/llvm-mca/SummaryView.cpp head/contrib/llvm/tools/llvm-mca/SummaryView.h head/contrib/llvm/tools/llvm-mca/Support.cpp head/contrib/llvm/tools/llvm-mca/Support.h head/contrib/llvm/tools/llvm-mca/TimelineView.cpp head/contrib/llvm/tools/llvm-mca/TimelineView.h head/contrib/llvm/tools/llvm-mca/View.cpp head/contrib/llvm/tools/llvm-mca/View.h head/contrib/llvm/tools/llvm-objcopy/Object.cpp head/contrib/llvm/tools/llvm-objcopy/Object.h head/contrib/llvm/tools/llvm-pdbutil/Analyze.cpp head/contrib/llvm/tools/llvm-pdbutil/Analyze.h Modified: head/ObsoleteFiles.inc head/UPDATING head/contrib/compiler-rt/LICENSE.TXT head/contrib/compiler-rt/include/sanitizer/allocator_interface.h head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h head/contrib/compiler-rt/include/sanitizer/hwasan_interface.h head/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h head/contrib/compiler-rt/include/xray/xray_log_interface.h head/contrib/compiler-rt/lib/asan/asan_allocator.h head/contrib/compiler-rt/lib/asan/asan_errors.cc head/contrib/compiler-rt/lib/asan/asan_errors.h head/contrib/compiler-rt/lib/asan/asan_flags.inc head/contrib/compiler-rt/lib/asan/asan_fuchsia.cc head/contrib/compiler-rt/lib/asan/asan_globals.cc head/contrib/compiler-rt/lib/asan/asan_globals_win.cc head/contrib/compiler-rt/lib/asan/asan_internal.h head/contrib/compiler-rt/lib/asan/asan_linux.cc head/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc head/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc head/contrib/compiler-rt/lib/asan/asan_malloc_win.cc head/contrib/compiler-rt/lib/asan/asan_new_delete.cc head/contrib/compiler-rt/lib/asan/asan_posix.cc head/contrib/compiler-rt/lib/asan/asan_report.h head/contrib/compiler-rt/lib/asan/asan_rtems.cc head/contrib/compiler-rt/lib/asan/asan_rtl.cc head/contrib/compiler-rt/lib/asan/asan_thread.cc head/contrib/compiler-rt/lib/asan/asan_win.cc head/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc head/contrib/compiler-rt/lib/builtins/arm/addsf3.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S head/contrib/compiler-rt/lib/builtins/clzdi2.c head/contrib/compiler-rt/lib/builtins/cpu_model.c head/contrib/compiler-rt/lib/builtins/ctzdi2.c head/contrib/compiler-rt/lib/builtins/divdc3.c head/contrib/compiler-rt/lib/builtins/divdf3.c head/contrib/compiler-rt/lib/builtins/divsc3.c head/contrib/compiler-rt/lib/builtins/divsf3.c head/contrib/compiler-rt/lib/builtins/divtc3.c head/contrib/compiler-rt/lib/builtins/emutls.c head/contrib/compiler-rt/lib/builtins/fp_lib.h head/contrib/compiler-rt/lib/builtins/gcc_personality_v0.c head/contrib/compiler-rt/lib/builtins/int_lib.h head/contrib/compiler-rt/lib/builtins/int_math.h head/contrib/compiler-rt/lib/builtins/int_types.h head/contrib/compiler-rt/lib/builtins/int_util.c head/contrib/compiler-rt/lib/builtins/int_util.h head/contrib/compiler-rt/lib/builtins/os_version_check.c head/contrib/compiler-rt/lib/builtins/ppc/divtc3.c head/contrib/compiler-rt/lib/cfi/cfi.cc head/contrib/compiler-rt/lib/cfi/cfi_blacklist.txt head/contrib/compiler-rt/lib/dfsan/dfsan.cc head/contrib/compiler-rt/lib/esan/esan_interceptors.cpp head/contrib/compiler-rt/lib/esan/esan_shadow.h head/contrib/compiler-rt/lib/esan/esan_sideline.h head/contrib/compiler-rt/lib/fuzzer/FuzzerCommand.h head/contrib/compiler-rt/lib/fuzzer/FuzzerCorpus.h head/contrib/compiler-rt/lib/fuzzer/FuzzerDefs.h head/contrib/compiler-rt/lib/fuzzer/FuzzerDriver.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerFlags.def head/contrib/compiler-rt/lib/fuzzer/FuzzerIO.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerIO.h head/contrib/compiler-rt/lib/fuzzer/FuzzerIOPosix.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerIOWindows.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerInternal.h head/contrib/compiler-rt/lib/fuzzer/FuzzerLoop.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerMutate.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerMutate.h head/contrib/compiler-rt/lib/fuzzer/FuzzerOptions.h head/contrib/compiler-rt/lib/fuzzer/FuzzerTracePC.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerTracePC.h head/contrib/compiler-rt/lib/fuzzer/FuzzerUtil.h head/contrib/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp head/contrib/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp head/contrib/compiler-rt/lib/hwasan/hwasan.cc head/contrib/compiler-rt/lib/hwasan/hwasan.h head/contrib/compiler-rt/lib/hwasan/hwasan_allocator.cc head/contrib/compiler-rt/lib/hwasan/hwasan_allocator.h head/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cc head/contrib/compiler-rt/lib/hwasan/hwasan_flags.h head/contrib/compiler-rt/lib/hwasan/hwasan_flags.inc head/contrib/compiler-rt/lib/hwasan/hwasan_interceptors.cc head/contrib/compiler-rt/lib/hwasan/hwasan_interface_internal.h head/contrib/compiler-rt/lib/hwasan/hwasan_linux.cc head/contrib/compiler-rt/lib/hwasan/hwasan_mapping.h head/contrib/compiler-rt/lib/hwasan/hwasan_new_delete.cc head/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.cc head/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.h head/contrib/compiler-rt/lib/hwasan/hwasan_report.cc head/contrib/compiler-rt/lib/hwasan/hwasan_report.h head/contrib/compiler-rt/lib/hwasan/hwasan_thread.cc head/contrib/compiler-rt/lib/hwasan/hwasan_thread.h head/contrib/compiler-rt/lib/interception/interception.h head/contrib/compiler-rt/lib/interception/interception_linux.h head/contrib/compiler-rt/lib/interception/interception_win.cc head/contrib/compiler-rt/lib/lsan/lsan_allocator.cc head/contrib/compiler-rt/lib/lsan/lsan_allocator.h head/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc head/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc head/contrib/compiler-rt/lib/msan/msan.cc head/contrib/compiler-rt/lib/msan/msan_allocator.cc head/contrib/compiler-rt/lib/msan/msan_interceptors.cc head/contrib/compiler-rt/lib/msan/msan_linux.cc head/contrib/compiler-rt/lib/profile/GCDAProfiling.c head/contrib/compiler-rt/lib/profile/InstrProfData.inc head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformOther.c head/contrib/compiler-rt/lib/profile/InstrProfilingValue.c head/contrib/compiler-rt/lib/profile/WindowsMMap.c head/contrib/compiler-rt/lib/profile/WindowsMMap.h head/contrib/compiler-rt/lib/safestack/safestack.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_bytemap.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_internal.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_size_class_map.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_x86.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_sections.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_openbsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_rtems.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_sparc.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_arm.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_x86_64.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_termination.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_defs.h head/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt head/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp head/contrib/compiler-rt/lib/scudo/scudo_allocator.h head/contrib/compiler-rt/lib/scudo/scudo_malloc.cpp head/contrib/compiler-rt/lib/tsan/rtl/tsan_debugging.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.inc head/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc head/contrib/compiler-rt/lib/ubsan/ubsan_checks.inc head/contrib/compiler-rt/lib/ubsan/ubsan_flags.inc head/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc head/contrib/compiler-rt/lib/ubsan/ubsan_handlers.h head/contrib/compiler-rt/lib/ubsan/ubsan_interface.inc head/contrib/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cc head/contrib/compiler-rt/lib/xray/xray_allocator.h head/contrib/compiler-rt/lib/xray/xray_basic_logging.cc head/contrib/compiler-rt/lib/xray/xray_buffer_queue.cc head/contrib/compiler-rt/lib/xray/xray_buffer_queue.h head/contrib/compiler-rt/lib/xray/xray_defs.h head/contrib/compiler-rt/lib/xray/xray_fdr_log_records.h head/contrib/compiler-rt/lib/xray/xray_fdr_logging.cc head/contrib/compiler-rt/lib/xray/xray_function_call_trie.h head/contrib/compiler-rt/lib/xray/xray_init.cc head/contrib/compiler-rt/lib/xray/xray_interface.cc head/contrib/compiler-rt/lib/xray/xray_profile_collector.cc head/contrib/compiler-rt/lib/xray/xray_profile_collector.h head/contrib/compiler-rt/lib/xray/xray_profiling.cc head/contrib/compiler-rt/lib/xray/xray_profiling_flags.inc head/contrib/compiler-rt/lib/xray/xray_segmented_array.h head/contrib/compiler-rt/lib/xray/xray_trampoline_x86_64.S head/contrib/compiler-rt/lib/xray/xray_tsc.h head/contrib/compiler-rt/lib/xray/xray_utils.cc head/contrib/compiler-rt/lib/xray/xray_utils.h head/contrib/compiler-rt/lib/xray/xray_x86_64.cc head/contrib/libc++/LICENSE.TXT head/contrib/libc++/include/__bit_reference head/contrib/libc++/include/__config head/contrib/libc++/include/__debug head/contrib/libc++/include/__functional_base head/contrib/libc++/include/__hash_table head/contrib/libc++/include/__libcpp_version head/contrib/libc++/include/__locale head/contrib/libc++/include/__mutex_base head/contrib/libc++/include/__node_handle head/contrib/libc++/include/__sso_allocator head/contrib/libc++/include/__string head/contrib/libc++/include/__threading_support head/contrib/libc++/include/__tree head/contrib/libc++/include/__tuple head/contrib/libc++/include/algorithm head/contrib/libc++/include/any head/contrib/libc++/include/array head/contrib/libc++/include/atomic head/contrib/libc++/include/bitset head/contrib/libc++/include/charconv head/contrib/libc++/include/chrono head/contrib/libc++/include/cmath head/contrib/libc++/include/complex head/contrib/libc++/include/cstddef head/contrib/libc++/include/deque head/contrib/libc++/include/exception head/contrib/libc++/include/experimental/any head/contrib/libc++/include/experimental/chrono head/contrib/libc++/include/experimental/coroutine head/contrib/libc++/include/experimental/memory_resource head/contrib/libc++/include/experimental/numeric head/contrib/libc++/include/experimental/optional head/contrib/libc++/include/experimental/ratio head/contrib/libc++/include/experimental/string_view head/contrib/libc++/include/experimental/system_error head/contrib/libc++/include/experimental/tuple head/contrib/libc++/include/filesystem head/contrib/libc++/include/forward_list head/contrib/libc++/include/fstream head/contrib/libc++/include/functional head/contrib/libc++/include/future head/contrib/libc++/include/iomanip head/contrib/libc++/include/iosfwd head/contrib/libc++/include/istream head/contrib/libc++/include/iterator head/contrib/libc++/include/limits head/contrib/libc++/include/list head/contrib/libc++/include/locale head/contrib/libc++/include/map head/contrib/libc++/include/memory head/contrib/libc++/include/module.modulemap head/contrib/libc++/include/mutex head/contrib/libc++/include/new head/contrib/libc++/include/numeric head/contrib/libc++/include/optional head/contrib/libc++/include/ostream head/contrib/libc++/include/random head/contrib/libc++/include/regex head/contrib/libc++/include/scoped_allocator head/contrib/libc++/include/set head/contrib/libc++/include/shared_mutex head/contrib/libc++/include/span head/contrib/libc++/include/sstream head/contrib/libc++/include/stddef.h head/contrib/libc++/include/stdexcept head/contrib/libc++/include/streambuf head/contrib/libc++/include/string head/contrib/libc++/include/string_view head/contrib/libc++/include/thread head/contrib/libc++/include/tuple head/contrib/libc++/include/type_traits head/contrib/libc++/include/typeinfo head/contrib/libc++/include/unordered_map head/contrib/libc++/include/unordered_set head/contrib/libc++/include/utility head/contrib/libc++/include/valarray head/contrib/libc++/include/variant head/contrib/libc++/include/vector head/contrib/libc++/include/version head/contrib/libc++/src/experimental/memory_resource.cpp head/contrib/libc++/src/filesystem/filesystem_common.h head/contrib/libc++/src/filesystem/operations.cpp head/contrib/libc++/src/future.cpp head/contrib/libc++/src/iostream.cpp head/contrib/libc++/src/new.cpp head/contrib/libc++/src/support/runtime/exception_fallback.ipp head/contrib/libc++/src/support/runtime/exception_glibcxx.ipp head/contrib/libc++/src/support/runtime/exception_libcxxrt.ipp head/contrib/libc++/src/support/runtime/exception_msvc.ipp head/contrib/libc++/src/thread.cpp head/contrib/llvm/FREEBSD-Xlist head/contrib/llvm/LICENSE.TXT head/contrib/llvm/include/llvm-c/Core.h head/contrib/llvm/include/llvm-c/DebugInfo.h head/contrib/llvm/include/llvm-c/ExecutionEngine.h head/contrib/llvm/include/llvm-c/OrcBindings.h head/contrib/llvm/include/llvm-c/TargetMachine.h head/contrib/llvm/include/llvm-c/Transforms/Scalar.h head/contrib/llvm/include/llvm-c/Types.h head/contrib/llvm/include/llvm-c/lto.h head/contrib/llvm/include/llvm/ADT/APFloat.h head/contrib/llvm/include/llvm/ADT/APInt.h head/contrib/llvm/include/llvm/ADT/Any.h head/contrib/llvm/include/llvm/ADT/BitVector.h head/contrib/llvm/include/llvm/ADT/DenseMap.h head/contrib/llvm/include/llvm/ADT/DenseSet.h head/contrib/llvm/include/llvm/ADT/GraphTraits.h head/contrib/llvm/include/llvm/ADT/Hashing.h head/contrib/llvm/include/llvm/ADT/ImmutableList.h head/contrib/llvm/include/llvm/ADT/IntervalMap.h head/contrib/llvm/include/llvm/ADT/Optional.h head/contrib/llvm/include/llvm/ADT/PointerIntPair.h head/contrib/llvm/include/llvm/ADT/PointerSumType.h head/contrib/llvm/include/llvm/ADT/PostOrderIterator.h head/contrib/llvm/include/llvm/ADT/STLExtras.h head/contrib/llvm/include/llvm/ADT/SmallBitVector.h head/contrib/llvm/include/llvm/ADT/SmallVector.h head/contrib/llvm/include/llvm/ADT/SparseBitVector.h head/contrib/llvm/include/llvm/ADT/StringExtras.h head/contrib/llvm/include/llvm/ADT/Triple.h head/contrib/llvm/include/llvm/ADT/iterator.h head/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h head/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfo.h head/contrib/llvm/include/llvm/Analysis/CFG.h head/contrib/llvm/include/llvm/Analysis/CFGPrinter.h head/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h head/contrib/llvm/include/llvm/Analysis/CaptureTracking.h head/contrib/llvm/include/llvm/Analysis/CmpInstAnalysis.h head/contrib/llvm/include/llvm/Analysis/DemandedBits.h head/contrib/llvm/include/llvm/Analysis/DependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/DivergenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/GlobalsModRef.h head/contrib/llvm/include/llvm/Analysis/InlineCost.h head/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h head/contrib/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h head/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h head/contrib/llvm/include/llvm/Analysis/LoopInfo.h head/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h head/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/MemoryLocation.h head/contrib/llvm/include/llvm/Analysis/MemorySSA.h head/contrib/llvm/include/llvm/Analysis/MemorySSAUpdater.h head/contrib/llvm/include/llvm/Analysis/MustExecute.h head/contrib/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h head/contrib/llvm/include/llvm/Analysis/ObjCARCInstKind.h head/contrib/llvm/include/llvm/Analysis/Passes.h head/contrib/llvm/include/llvm/Analysis/PhiValues.h head/contrib/llvm/include/llvm/Analysis/ProfileSummaryInfo.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h head/contrib/llvm/include/llvm/Analysis/ScopedNoAliasAA.h head/contrib/llvm/include/llvm/Analysis/SparsePropagation.h head/contrib/llvm/include/llvm/Analysis/SyntheticCountsUtils.h head/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.def head/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h head/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h head/contrib/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/TypeMetadataUtils.h head/contrib/llvm/include/llvm/Analysis/ValueTracking.h head/contrib/llvm/include/llvm/Analysis/VectorUtils.h head/contrib/llvm/include/llvm/BinaryFormat/Dwarf.def head/contrib/llvm/include/llvm/BinaryFormat/Dwarf.h head/contrib/llvm/include/llvm/BinaryFormat/ELF.h head/contrib/llvm/include/llvm/BinaryFormat/MachO.h head/contrib/llvm/include/llvm/BinaryFormat/Wasm.h head/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def head/contrib/llvm/include/llvm/Bitcode/BitcodeReader.h head/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h head/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h head/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h head/contrib/llvm/include/llvm/CodeGen/CommandFlags.inc head/contrib/llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h head/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h head/contrib/llvm/include/llvm/CodeGen/GCMetadata.h head/contrib/llvm/include/llvm/CodeGen/GCMetadataPrinter.h head/contrib/llvm/include/llvm/CodeGen/GCStrategy.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/Combiner.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/Utils.h head/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h head/contrib/llvm/include/llvm/CodeGen/LinkAllAsmWriterComponents.h head/contrib/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h head/contrib/llvm/include/llvm/CodeGen/LiveIntervals.h head/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h head/contrib/llvm/include/llvm/CodeGen/LiveRegUnits.h head/contrib/llvm/include/llvm/CodeGen/MIRYamlMapping.h head/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h head/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineFunction.h head/contrib/llvm/include/llvm/CodeGen/MachineInstr.h head/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h head/contrib/llvm/include/llvm/CodeGen/MachineOutliner.h head/contrib/llvm/include/llvm/CodeGen/MachinePassRegistry.h head/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h head/contrib/llvm/include/llvm/CodeGen/Passes.h head/contrib/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h head/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h head/contrib/llvm/include/llvm/CodeGen/RegAllocRegistry.h head/contrib/llvm/include/llvm/CodeGen/RegisterUsageInfo.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h head/contrib/llvm/include/llvm/CodeGen/SchedulerRegistry.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h head/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h head/contrib/llvm/include/llvm/CodeGen/StackMaps.h head/contrib/llvm/include/llvm/CodeGen/TargetFrameLowering.h head/contrib/llvm/include/llvm/CodeGen/TargetInstrInfo.h head/contrib/llvm/include/llvm/CodeGen/TargetLowering.h head/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h head/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h head/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h head/contrib/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h head/contrib/llvm/include/llvm/CodeGen/WasmEHFuncInfo.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeView.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewError.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordSerialization.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h head/contrib/llvm/include/llvm/DebugInfo/DIContext.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h head/contrib/llvm/include/llvm/DebugInfo/MSF/MSFError.h head/contrib/llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAError.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASession.h head/contrib/llvm/include/llvm/DebugInfo/PDB/GenericError.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawError.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h head/contrib/llvm/include/llvm/Demangle/Demangle.h head/contrib/llvm/include/llvm/ExecutionEngine/JITEventListener.h head/contrib/llvm/include/llvm/ExecutionEngine/JITSymbol.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/Core.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/Layer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/Legacy.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/NullResolver.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h head/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h head/contrib/llvm/include/llvm/IR/Attributes.h head/contrib/llvm/include/llvm/IR/Attributes.td head/contrib/llvm/include/llvm/IR/BasicBlock.h head/contrib/llvm/include/llvm/IR/CFG.h head/contrib/llvm/include/llvm/IR/CallSite.h head/contrib/llvm/include/llvm/IR/CallingConv.h head/contrib/llvm/include/llvm/IR/Constant.h head/contrib/llvm/include/llvm/IR/Constants.h head/contrib/llvm/include/llvm/IR/DIBuilder.h head/contrib/llvm/include/llvm/IR/DataLayout.h head/contrib/llvm/include/llvm/IR/DebugInfoFlags.def head/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h head/contrib/llvm/include/llvm/IR/DebugLoc.h head/contrib/llvm/include/llvm/IR/DiagnosticInfo.h head/contrib/llvm/include/llvm/IR/DomTreeUpdater.h head/contrib/llvm/include/llvm/IR/Dominators.h head/contrib/llvm/include/llvm/IR/Function.h head/contrib/llvm/include/llvm/IR/GlobalValue.h head/contrib/llvm/include/llvm/IR/IRBuilder.h head/contrib/llvm/include/llvm/IR/IRPrintingPasses.h head/contrib/llvm/include/llvm/IR/InstVisitor.h head/contrib/llvm/include/llvm/IR/InstrTypes.h head/contrib/llvm/include/llvm/IR/Instruction.def head/contrib/llvm/include/llvm/IR/Instruction.h head/contrib/llvm/include/llvm/IR/Instructions.h head/contrib/llvm/include/llvm/IR/IntrinsicInst.h head/contrib/llvm/include/llvm/IR/Intrinsics.td head/contrib/llvm/include/llvm/IR/IntrinsicsAArch64.td head/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td head/contrib/llvm/include/llvm/IR/IntrinsicsHexagon.td head/contrib/llvm/include/llvm/IR/IntrinsicsPowerPC.td head/contrib/llvm/include/llvm/IR/IntrinsicsWebAssembly.td head/contrib/llvm/include/llvm/IR/IntrinsicsX86.td head/contrib/llvm/include/llvm/IR/LLVMContext.h head/contrib/llvm/include/llvm/IR/LegacyPassManager.h head/contrib/llvm/include/llvm/IR/LegacyPassManagers.h head/contrib/llvm/include/llvm/IR/Metadata.h head/contrib/llvm/include/llvm/IR/Module.h head/contrib/llvm/include/llvm/IR/ModuleSummaryIndex.h head/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h head/contrib/llvm/include/llvm/IR/Operator.h head/contrib/llvm/include/llvm/IR/PassManager.h head/contrib/llvm/include/llvm/IR/PassManagerInternal.h head/contrib/llvm/include/llvm/IR/PatternMatch.h head/contrib/llvm/include/llvm/IR/RuntimeLibcalls.def head/contrib/llvm/include/llvm/IR/Value.h head/contrib/llvm/include/llvm/InitializePasses.h head/contrib/llvm/include/llvm/LTO/Config.h head/contrib/llvm/include/llvm/LTO/LTO.h head/contrib/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h head/contrib/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h head/contrib/llvm/include/llvm/LinkAllPasses.h head/contrib/llvm/include/llvm/MC/MCAsmInfoWasm.h head/contrib/llvm/include/llvm/MC/MCAsmMacro.h head/contrib/llvm/include/llvm/MC/MCAssembler.h head/contrib/llvm/include/llvm/MC/MCCodeView.h head/contrib/llvm/include/llvm/MC/MCContext.h head/contrib/llvm/include/llvm/MC/MCDwarf.h head/contrib/llvm/include/llvm/MC/MCELFObjectWriter.h head/contrib/llvm/include/llvm/MC/MCExpr.h head/contrib/llvm/include/llvm/MC/MCInst.h head/contrib/llvm/include/llvm/MC/MCInstrAnalysis.h head/contrib/llvm/include/llvm/MC/MCInstrDesc.h head/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h head/contrib/llvm/include/llvm/MC/MCObjectStreamer.h head/contrib/llvm/include/llvm/MC/MCParser/AsmLexer.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmLexer.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h head/contrib/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h head/contrib/llvm/include/llvm/MC/MCRegisterInfo.h head/contrib/llvm/include/llvm/MC/MCSchedule.h head/contrib/llvm/include/llvm/MC/MCSection.h head/contrib/llvm/include/llvm/MC/MCStreamer.h head/contrib/llvm/include/llvm/MC/MCSymbolWasm.h head/contrib/llvm/include/llvm/MC/MCWasmObjectWriter.h head/contrib/llvm/include/llvm/MC/MCWin64EH.h head/contrib/llvm/include/llvm/MC/MCWinEH.h head/contrib/llvm/include/llvm/Object/COFF.h head/contrib/llvm/include/llvm/Object/ELF.h head/contrib/llvm/include/llvm/Object/ELFObjectFile.h head/contrib/llvm/include/llvm/Object/ELFTypes.h head/contrib/llvm/include/llvm/Object/Error.h head/contrib/llvm/include/llvm/Object/MachO.h head/contrib/llvm/include/llvm/Object/ObjectFile.h head/contrib/llvm/include/llvm/Object/RelocVisitor.h head/contrib/llvm/include/llvm/Object/Wasm.h head/contrib/llvm/include/llvm/Object/WasmTraits.h head/contrib/llvm/include/llvm/ObjectYAML/COFFYAML.h head/contrib/llvm/include/llvm/ObjectYAML/ELFYAML.h head/contrib/llvm/include/llvm/ObjectYAML/WasmYAML.h head/contrib/llvm/include/llvm/Option/OptTable.h head/contrib/llvm/include/llvm/Pass.h head/contrib/llvm/include/llvm/Passes/PassBuilder.h head/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h head/contrib/llvm/include/llvm/ProfileData/GCOV.h head/contrib/llvm/include/llvm/ProfileData/InstrProf.h head/contrib/llvm/include/llvm/ProfileData/InstrProfReader.h head/contrib/llvm/include/llvm/ProfileData/SampleProf.h head/contrib/llvm/include/llvm/ProfileData/SampleProfReader.h head/contrib/llvm/include/llvm/ProfileData/SampleProfWriter.h head/contrib/llvm/include/llvm/Support/AArch64TargetParser.def head/contrib/llvm/include/llvm/Support/AMDGPUMetadata.h head/contrib/llvm/include/llvm/Support/ARMTargetParser.def head/contrib/llvm/include/llvm/Support/ARMWinEH.h head/contrib/llvm/include/llvm/Support/Allocator.h head/contrib/llvm/include/llvm/Support/BinaryStreamArray.h head/contrib/llvm/include/llvm/Support/BinaryStreamReader.h head/contrib/llvm/include/llvm/Support/Chrono.h head/contrib/llvm/include/llvm/Support/CodeGen.h head/contrib/llvm/include/llvm/Support/CommandLine.h head/contrib/llvm/include/llvm/Support/Compiler.h head/contrib/llvm/include/llvm/Support/Compression.h head/contrib/llvm/include/llvm/Support/Debug.h head/contrib/llvm/include/llvm/Support/DebugCounter.h head/contrib/llvm/include/llvm/Support/Error.h head/contrib/llvm/include/llvm/Support/ErrorHandling.h head/contrib/llvm/include/llvm/Support/FileOutputBuffer.h head/contrib/llvm/include/llvm/Support/FileSystem.h head/contrib/llvm/include/llvm/Support/FormatVariadicDetails.h head/contrib/llvm/include/llvm/Support/GenericDomTree.h head/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h head/contrib/llvm/include/llvm/Support/GraphWriter.h head/contrib/llvm/include/llvm/Support/JSON.h head/contrib/llvm/include/llvm/Support/LowLevelTypeImpl.h head/contrib/llvm/include/llvm/Support/Path.h head/contrib/llvm/include/llvm/Support/ScopedPrinter.h head/contrib/llvm/include/llvm/Support/TargetOpcodes.def head/contrib/llvm/include/llvm/Support/TargetParser.h head/contrib/llvm/include/llvm/Support/Threading.h head/contrib/llvm/include/llvm/Support/Timer.h head/contrib/llvm/include/llvm/Support/Win64EH.h head/contrib/llvm/include/llvm/Support/WithColor.h head/contrib/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h head/contrib/llvm/include/llvm/Support/X86TargetParser.def head/contrib/llvm/include/llvm/Support/YAMLTraits.h head/contrib/llvm/include/llvm/Support/raw_ostream.h head/contrib/llvm/include/llvm/Support/type_traits.h head/contrib/llvm/include/llvm/TableGen/StringMatcher.h head/contrib/llvm/include/llvm/Target/CodeGenCWrappers.h head/contrib/llvm/include/llvm/Target/GenericOpcodes.td head/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td head/contrib/llvm/include/llvm/Target/Target.td head/contrib/llvm/include/llvm/Target/TargetInstrPredicate.td head/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h head/contrib/llvm/include/llvm/Target/TargetMachine.h head/contrib/llvm/include/llvm/Target/TargetOptions.h head/contrib/llvm/include/llvm/Target/TargetSchedule.td head/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td head/contrib/llvm/include/llvm/Testing/Support/SupportHelpers.h head/contrib/llvm/include/llvm/Transforms/IPO.h head/contrib/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h head/contrib/llvm/include/llvm/Transforms/IPO/FunctionImport.h head/contrib/llvm/include/llvm/Transforms/IPO/SampleProfile.h head/contrib/llvm/include/llvm/Transforms/Instrumentation.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h head/contrib/llvm/include/llvm/Transforms/Scalar.h head/contrib/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h head/contrib/llvm/include/llvm/Transforms/Scalar/GVN.h head/contrib/llvm/include/llvm/Transforms/Scalar/JumpThreading.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h head/contrib/llvm/include/llvm/Transforms/Scalar/SCCP.h head/contrib/llvm/include/llvm/Transforms/Utils.h head/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/BuildLibCalls.h head/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h head/contrib/llvm/include/llvm/Transforms/Utils/CodeExtractor.h head/contrib/llvm/include/llvm/Transforms/Utils/FunctionImportUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/Local.h head/contrib/llvm/include/llvm/Transforms/Utils/LoopRotationUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/ModuleUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/PredicateInfo.h head/contrib/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h head/contrib/llvm/include/llvm/Transforms/Utils/UnrollLoop.h head/contrib/llvm/include/llvm/Transforms/Vectorize.h head/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h head/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h head/contrib/llvm/include/llvm/XRay/Trace.h head/contrib/llvm/include/llvm/XRay/XRayRecord.h head/contrib/llvm/include/llvm/XRay/YAMLXRayRecord.h head/contrib/llvm/include/llvm/module.modulemap head/contrib/llvm/lib/Analysis/AliasAnalysis.cpp head/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp head/contrib/llvm/lib/Analysis/AliasSetTracker.cpp head/contrib/llvm/lib/Analysis/Analysis.cpp head/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/BlockFrequencyInfo.cpp head/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp head/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp head/contrib/llvm/lib/Analysis/CFG.cpp head/contrib/llvm/lib/Analysis/CFGPrinter.cpp head/contrib/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/CFLGraph.h head/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp head/contrib/llvm/lib/Analysis/CallGraph.cpp head/contrib/llvm/lib/Analysis/CallGraphSCCPass.cpp head/contrib/llvm/lib/Analysis/CaptureTracking.cpp head/contrib/llvm/lib/Analysis/CmpInstAnalysis.cpp head/contrib/llvm/lib/Analysis/ConstantFolding.cpp head/contrib/llvm/lib/Analysis/DemandedBits.cpp head/contrib/llvm/lib/Analysis/DependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/DivergenceAnalysis.cpp head/contrib/llvm/lib/Analysis/EHPersonalities.cpp head/contrib/llvm/lib/Analysis/GlobalsModRef.cpp head/contrib/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp head/contrib/llvm/lib/Analysis/InlineCost.cpp head/contrib/llvm/lib/Analysis/InstructionSimplify.cpp head/contrib/llvm/lib/Analysis/IteratedDominanceFrontier.cpp head/contrib/llvm/lib/Analysis/LazyCallGraph.cpp head/contrib/llvm/lib/Analysis/LazyValueInfo.cpp head/contrib/llvm/lib/Analysis/Lint.cpp head/contrib/llvm/lib/Analysis/Loads.cpp head/contrib/llvm/lib/Analysis/LoopAccessAnalysis.cpp head/contrib/llvm/lib/Analysis/LoopAnalysisManager.cpp head/contrib/llvm/lib/Analysis/LoopInfo.cpp head/contrib/llvm/lib/Analysis/LoopPass.cpp head/contrib/llvm/lib/Analysis/MemDepPrinter.cpp head/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/MemoryLocation.cpp head/contrib/llvm/lib/Analysis/MemorySSA.cpp head/contrib/llvm/lib/Analysis/MemorySSAUpdater.cpp head/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp head/contrib/llvm/lib/Analysis/MustExecute.cpp head/contrib/llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/ObjCARCInstKind.cpp head/contrib/llvm/lib/Analysis/OrderedBasicBlock.cpp head/contrib/llvm/lib/Analysis/PhiValues.cpp head/contrib/llvm/lib/Analysis/ProfileSummaryInfo.cpp head/contrib/llvm/lib/Analysis/RegionPass.cpp head/contrib/llvm/lib/Analysis/ScalarEvolution.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp head/contrib/llvm/lib/Analysis/ScopedNoAliasAA.cpp head/contrib/llvm/lib/Analysis/SyntheticCountsUtils.cpp head/contrib/llvm/lib/Analysis/TargetLibraryInfo.cpp head/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp head/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/TypeMetadataUtils.cpp head/contrib/llvm/lib/Analysis/ValueTracking.cpp head/contrib/llvm/lib/Analysis/VectorUtils.cpp head/contrib/llvm/lib/AsmParser/LLLexer.cpp head/contrib/llvm/lib/AsmParser/LLParser.cpp head/contrib/llvm/lib/AsmParser/LLParser.h head/contrib/llvm/lib/AsmParser/LLToken.h head/contrib/llvm/lib/BinaryFormat/Dwarf.cpp head/contrib/llvm/lib/BinaryFormat/Magic.cpp head/contrib/llvm/lib/BinaryFormat/Wasm.cpp head/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp head/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp head/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.h head/contrib/llvm/lib/Bitcode/Reader/ValueList.cpp head/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp head/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp head/contrib/llvm/lib/CodeGen/Analysis.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h head/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h head/contrib/llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.h head/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.h head/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp head/contrib/llvm/lib/CodeGen/BranchFolding.cpp head/contrib/llvm/lib/CodeGen/BreakFalseDeps.cpp head/contrib/llvm/lib/CodeGen/BuiltinGCs.cpp head/contrib/llvm/lib/CodeGen/CFIInstrInserter.cpp head/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp head/contrib/llvm/lib/CodeGen/CodeGen.cpp head/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp head/contrib/llvm/lib/CodeGen/DFAPacketizer.cpp head/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp head/contrib/llvm/lib/CodeGen/ExpandMemCmp.cpp head/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp head/contrib/llvm/lib/CodeGen/GCMetadata.cpp head/contrib/llvm/lib/CodeGen/GCRootLowering.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/CallLowering.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/Combiner.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/Utils.cpp head/contrib/llvm/lib/CodeGen/GlobalMerge.cpp head/contrib/llvm/lib/CodeGen/IfConversion.cpp head/contrib/llvm/lib/CodeGen/ImplicitNullChecks.cpp head/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp head/contrib/llvm/lib/CodeGen/LatencyPriorityQueue.cpp head/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp head/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp head/contrib/llvm/lib/CodeGen/LiveDebugVariables.h head/contrib/llvm/lib/CodeGen/LiveInterval.cpp head/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp head/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp head/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp head/contrib/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp head/contrib/llvm/lib/CodeGen/MIRParser/MILexer.cpp head/contrib/llvm/lib/CodeGen/MIRParser/MILexer.h head/contrib/llvm/lib/CodeGen/MIRParser/MIParser.cpp head/contrib/llvm/lib/CodeGen/MIRParser/MIRParser.cpp head/contrib/llvm/lib/CodeGen/MIRPrinter.cpp head/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp head/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp head/contrib/llvm/lib/CodeGen/MachineCSE.cpp head/contrib/llvm/lib/CodeGen/MachineCombiner.cpp head/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp head/contrib/llvm/lib/CodeGen/MachineFunction.cpp head/contrib/llvm/lib/CodeGen/MachineFunctionPass.cpp head/contrib/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp head/contrib/llvm/lib/CodeGen/MachineInstr.cpp head/contrib/llvm/lib/CodeGen/MachineInstrBundle.cpp head/contrib/llvm/lib/CodeGen/MachineLICM.cpp head/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp head/contrib/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp head/contrib/llvm/lib/CodeGen/MachineOperand.cpp head/contrib/llvm/lib/CodeGen/MachineOutliner.cpp head/contrib/llvm/lib/CodeGen/MachinePipeliner.cpp head/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp head/contrib/llvm/lib/CodeGen/MachineScheduler.cpp head/contrib/llvm/lib/CodeGen/MachineSink.cpp head/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp head/contrib/llvm/lib/CodeGen/MachineVerifier.cpp head/contrib/llvm/lib/CodeGen/MacroFusion.cpp head/contrib/llvm/lib/CodeGen/OptimizePHIs.cpp head/contrib/llvm/lib/CodeGen/PHIElimination.cpp head/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp head/contrib/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp head/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp head/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp head/contrib/llvm/lib/CodeGen/ReachingDefAnalysis.cpp head/contrib/llvm/lib/CodeGen/RegAllocFast.cpp head/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp head/contrib/llvm/lib/CodeGen/RegUsageInfoCollector.cpp head/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp head/contrib/llvm/lib/CodeGen/RegisterPressure.cpp head/contrib/llvm/lib/CodeGen/RegisterUsageInfo.cpp head/contrib/llvm/lib/CodeGen/SafeStack.cpp head/contrib/llvm/lib/CodeGen/SafeStackColoring.cpp head/contrib/llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp head/contrib/llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp head/contrib/llvm/lib/CodeGen/SlotIndexes.cpp head/contrib/llvm/lib/CodeGen/SplitKit.h head/contrib/llvm/lib/CodeGen/StackColoring.cpp head/contrib/llvm/lib/CodeGen/StackMaps.cpp head/contrib/llvm/lib/CodeGen/StackProtector.cpp head/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp head/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp head/contrib/llvm/lib/CodeGen/TargetInstrInfo.cpp head/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp head/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp head/contrib/llvm/lib/CodeGen/TargetOptionsImpl.cpp head/contrib/llvm/lib/CodeGen/TargetPassConfig.cpp head/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp head/contrib/llvm/lib/CodeGen/VirtRegMap.cpp head/contrib/llvm/lib/CodeGen/WasmEHPrepare.cpp head/contrib/llvm/lib/CodeGen/WinEHPrepare.cpp head/contrib/llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp head/contrib/llvm/lib/DebugInfo/CodeView/CodeViewError.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/EnumTables.cpp head/contrib/llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp head/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp head/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp head/contrib/llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp head/contrib/llvm/lib/DebugInfo/CodeView/TypeIndex.cpp head/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFListTable.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp head/contrib/llvm/lib/DebugInfo/MSF/MSFError.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIADataStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumDebugStreams.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumInjectedSources.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumLineNumbers.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSectionContribs.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSourceFiles.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSymbols.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAError.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASectionContrib.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIATable.cpp head/contrib/llvm/lib/DebugInfo/PDB/GenericError.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeCompilandSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumModules.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/RawError.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp head/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDB.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolBlock.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCustom.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolExe.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolLabel.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolThunk.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp head/contrib/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp head/contrib/llvm/lib/Demangle/ItaniumDemangle.cpp head/contrib/llvm/lib/Demangle/MicrosoftDemangle.cpp head/contrib/llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.h head/contrib/llvm/lib/ExecutionEngine/OProfileJIT/OProfileJITEventListener.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/Core.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/Layer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/Legacy.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/NullResolver.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h head/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h head/contrib/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp head/contrib/llvm/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h head/contrib/llvm/lib/FuzzMutate/IRMutator.cpp head/contrib/llvm/lib/FuzzMutate/RandomIRBuilder.cpp head/contrib/llvm/lib/IR/AsmWriter.cpp head/contrib/llvm/lib/IR/Attributes.cpp head/contrib/llvm/lib/IR/AutoUpgrade.cpp head/contrib/llvm/lib/IR/BasicBlock.cpp head/contrib/llvm/lib/IR/ConstantFold.cpp head/contrib/llvm/lib/IR/Constants.cpp head/contrib/llvm/lib/IR/ConstantsContext.h head/contrib/llvm/lib/IR/Core.cpp head/contrib/llvm/lib/IR/DIBuilder.cpp head/contrib/llvm/lib/IR/DataLayout.cpp head/contrib/llvm/lib/IR/DebugInfo.cpp head/contrib/llvm/lib/IR/DebugInfoMetadata.cpp head/contrib/llvm/lib/IR/DebugLoc.cpp head/contrib/llvm/lib/IR/DiagnosticInfo.cpp head/contrib/llvm/lib/IR/DomTreeUpdater.cpp head/contrib/llvm/lib/IR/Dominators.cpp head/contrib/llvm/lib/IR/Function.cpp head/contrib/llvm/lib/IR/Globals.cpp head/contrib/llvm/lib/IR/IRBuilder.cpp head/contrib/llvm/lib/IR/IRPrintingPasses.cpp head/contrib/llvm/lib/IR/Instruction.cpp head/contrib/llvm/lib/IR/Instructions.cpp head/contrib/llvm/lib/IR/IntrinsicInst.cpp head/contrib/llvm/lib/IR/LLVMContext.cpp head/contrib/llvm/lib/IR/LLVMContextImpl.h head/contrib/llvm/lib/IR/LegacyPassManager.cpp head/contrib/llvm/lib/IR/MDBuilder.cpp head/contrib/llvm/lib/IR/Metadata.cpp head/contrib/llvm/lib/IR/Module.cpp head/contrib/llvm/lib/IR/ModuleSummaryIndex.cpp head/contrib/llvm/lib/IR/SafepointIRVerifier.cpp head/contrib/llvm/lib/IR/Type.cpp head/contrib/llvm/lib/IR/Value.cpp head/contrib/llvm/lib/IR/Verifier.cpp head/contrib/llvm/lib/LTO/LTO.cpp head/contrib/llvm/lib/LTO/LTOBackend.cpp head/contrib/llvm/lib/LTO/LTOCodeGenerator.cpp head/contrib/llvm/lib/LTO/LTOModule.cpp head/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp head/contrib/llvm/lib/LTO/UpdateCompilerUsed.cpp head/contrib/llvm/lib/Linker/IRMover.cpp head/contrib/llvm/lib/MC/ConstantPools.cpp head/contrib/llvm/lib/MC/ELFObjectWriter.cpp head/contrib/llvm/lib/MC/MCAsmInfoCOFF.cpp head/contrib/llvm/lib/MC/MCAsmInfoWasm.cpp head/contrib/llvm/lib/MC/MCAsmStreamer.cpp head/contrib/llvm/lib/MC/MCAssembler.cpp head/contrib/llvm/lib/MC/MCCodeView.cpp head/contrib/llvm/lib/MC/MCContext.cpp head/contrib/llvm/lib/MC/MCDwarf.cpp head/contrib/llvm/lib/MC/MCELFObjectTargetWriter.cpp head/contrib/llvm/lib/MC/MCExpr.cpp head/contrib/llvm/lib/MC/MCFragment.cpp head/contrib/llvm/lib/MC/MCInst.cpp head/contrib/llvm/lib/MC/MCInstrAnalysis.cpp head/contrib/llvm/lib/MC/MCInstrDesc.cpp head/contrib/llvm/lib/MC/MCMachOStreamer.cpp head/contrib/llvm/lib/MC/MCNullStreamer.cpp head/contrib/llvm/lib/MC/MCObjectFileInfo.cpp head/contrib/llvm/lib/MC/MCObjectStreamer.cpp head/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp head/contrib/llvm/lib/MC/MCParser/AsmParser.cpp head/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/MCAsmLexer.cpp head/contrib/llvm/lib/MC/MCParser/MCAsmParser.cpp head/contrib/llvm/lib/MC/MCRegisterInfo.cpp head/contrib/llvm/lib/MC/MCSection.cpp head/contrib/llvm/lib/MC/MCSectionELF.cpp head/contrib/llvm/lib/MC/MCStreamer.cpp head/contrib/llvm/lib/MC/MCWasmStreamer.cpp head/contrib/llvm/lib/MC/MCWin64EH.cpp head/contrib/llvm/lib/MC/MachObjectWriter.cpp head/contrib/llvm/lib/MC/WasmObjectWriter.cpp head/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp head/contrib/llvm/lib/Object/ArchiveWriter.cpp head/contrib/llvm/lib/Object/Binary.cpp head/contrib/llvm/lib/Object/COFFObjectFile.cpp head/contrib/llvm/lib/Object/ELF.cpp head/contrib/llvm/lib/Object/ELFObjectFile.cpp head/contrib/llvm/lib/Object/Error.cpp head/contrib/llvm/lib/Object/MachOObjectFile.cpp head/contrib/llvm/lib/Object/ModuleSymbolTable.cpp head/contrib/llvm/lib/Object/Object.cpp head/contrib/llvm/lib/Object/ObjectFile.cpp head/contrib/llvm/lib/Object/WasmObjectFile.cpp head/contrib/llvm/lib/Object/WindowsResource.cpp head/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp head/contrib/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp head/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp head/contrib/llvm/lib/ObjectYAML/ELFYAML.cpp head/contrib/llvm/lib/ObjectYAML/WasmYAML.cpp head/contrib/llvm/lib/Option/OptTable.cpp head/contrib/llvm/lib/Passes/PassBuilder.cpp head/contrib/llvm/lib/Passes/PassRegistry.def head/contrib/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp head/contrib/llvm/lib/ProfileData/GCOV.cpp head/contrib/llvm/lib/ProfileData/InstrProf.cpp head/contrib/llvm/lib/ProfileData/InstrProfReader.cpp head/contrib/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp head/contrib/llvm/lib/ProfileData/SampleProf.cpp head/contrib/llvm/lib/ProfileData/SampleProfReader.cpp head/contrib/llvm/lib/ProfileData/SampleProfWriter.cpp head/contrib/llvm/lib/Support/APInt.cpp head/contrib/llvm/lib/Support/BinaryStreamError.cpp head/contrib/llvm/lib/Support/COM.cpp head/contrib/llvm/lib/Support/CachePruning.cpp head/contrib/llvm/lib/Support/CodeGenCoverage.cpp head/contrib/llvm/lib/Support/CommandLine.cpp head/contrib/llvm/lib/Support/Compression.cpp head/contrib/llvm/lib/Support/DebugCounter.cpp head/contrib/llvm/lib/Support/Error.cpp head/contrib/llvm/lib/Support/FileOutputBuffer.cpp head/contrib/llvm/lib/Support/FoldingSet.cpp head/contrib/llvm/lib/Support/FormatVariadic.cpp head/contrib/llvm/lib/Support/Hashing.cpp head/contrib/llvm/lib/Support/Host.cpp head/contrib/llvm/lib/Support/JSON.cpp head/contrib/llvm/lib/Support/Locale.cpp head/contrib/llvm/lib/Support/LockFileManager.cpp head/contrib/llvm/lib/Support/Path.cpp head/contrib/llvm/lib/Support/Process.cpp head/contrib/llvm/lib/Support/RandomNumberGenerator.cpp head/contrib/llvm/lib/Support/Signals.cpp head/contrib/llvm/lib/Support/SourceMgr.cpp head/contrib/llvm/lib/Support/StringSaver.cpp head/contrib/llvm/lib/Support/TargetParser.cpp head/contrib/llvm/lib/Support/TargetRegistry.cpp head/contrib/llvm/lib/Support/Timer.cpp head/contrib/llvm/lib/Support/Triple.cpp head/contrib/llvm/lib/Support/Unix/Path.inc head/contrib/llvm/lib/Support/Unix/Signals.inc head/contrib/llvm/lib/Support/Unix/Threading.inc head/contrib/llvm/lib/Support/Windows/Path.inc head/contrib/llvm/lib/Support/Windows/Process.inc head/contrib/llvm/lib/Support/Windows/Program.inc head/contrib/llvm/lib/Support/Windows/Threading.inc head/contrib/llvm/lib/Support/Windows/WindowsSupport.h head/contrib/llvm/lib/Support/WithColor.cpp head/contrib/llvm/lib/Support/YAMLTraits.cpp head/contrib/llvm/lib/Support/raw_ostream.cpp head/contrib/llvm/lib/TableGen/Main.cpp head/contrib/llvm/lib/TableGen/Record.cpp head/contrib/llvm/lib/TableGen/TGLexer.cpp head/contrib/llvm/lib/TableGen/TGLexer.h head/contrib/llvm/lib/TableGen/TGParser.h head/contrib/llvm/lib/Target/AArch64/AArch64.h head/contrib/llvm/lib/Target/AArch64/AArch64.td head/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp head/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.h head/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td head/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.h head/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h head/contrib/llvm/lib/Target/AArch64/AArch64InstrFormats.td head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td head/contrib/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp head/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp head/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.cpp head/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM1.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td head/contrib/llvm/lib/Target/AArch64/AArch64Schedule.td head/contrib/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp head/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp head/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h head/contrib/llvm/lib/Target/AArch64/AArch64SystemOperands.td head/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h head/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp head/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp head/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h head/contrib/llvm/lib/Target/AArch64/SVEInstrFormats.td head/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp head/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUGISel.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def head/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInline.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPTNote.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBanks.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp head/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp head/contrib/llvm/lib/Target/AMDGPU/BUFInstructions.td head/contrib/llvm/lib/Target/AMDGPU/DSInstructions.td head/contrib/llvm/lib/Target/AMDGPU/FLATInstructions.td head/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNILPSched.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNMinRegStrategy.cpp head/contrib/llvm/lib/Target/AMDGPU/GCNProcessors.td head/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp head/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h head/contrib/llvm/lib/Target/AMDGPU/MIMGInstructions.td head/contrib/llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp head/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.h head/contrib/llvm/lib/Target/AMDGPU/R600Instructions.td head/contrib/llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp head/contrib/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp head/contrib/llvm/lib/Target/AMDGPU/SIDefines.h head/contrib/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFixWWMLiveness.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h head/contrib/llvm/lib/Target/AMDGPU/SIInsertSkips.cpp head/contrib/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp head/contrib/llvm/lib/Target/AMDGPU/SIInstrFormats.td head/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h head/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td head/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td head/contrib/llvm/lib/Target/AMDGPU/SIIntrinsics.td head/contrib/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp head/contrib/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp head/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp head/contrib/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp head/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp head/contrib/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp head/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.h head/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td head/contrib/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp head/contrib/llvm/lib/Target/AMDGPU/SMInstructions.td head/contrib/llvm/lib/Target/AMDGPU/SOPInstructions.td head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTInfo.h head/contrib/llvm/lib/Target/AMDGPU/VOP1Instructions.td head/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td head/contrib/llvm/lib/Target/AMDGPU/VOP3Instructions.td head/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td head/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td head/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td head/contrib/llvm/lib/Target/ARC/ARCTargetMachine.cpp head/contrib/llvm/lib/Target/ARC/InstPrinter/ARCInstPrinter.cpp head/contrib/llvm/lib/Target/ARM/ARM.td head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h head/contrib/llvm/lib/Target/ARM/ARMCallLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMCallLowering.h head/contrib/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp head/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h head/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.h head/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.h head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td head/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td head/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td head/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp head/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.h head/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/ARM/ARMMacroFusion.cpp head/contrib/llvm/lib/Target/ARM/ARMMacroFusion.h head/contrib/llvm/lib/Target/ARM/ARMParallelDSP.cpp head/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp head/contrib/llvm/lib/Target/ARM/ARMSubtarget.h head/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h head/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp head/contrib/llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/AVR/AVRISelDAGToDAG.cpp head/contrib/llvm/lib/Target/AVR/AVRISelLowering.cpp head/contrib/llvm/lib/Target/AVR/AVRInstrInfo.td head/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.cpp head/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.td head/contrib/llvm/lib/Target/AVR/AVRTargetMachine.cpp head/contrib/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp head/contrib/llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp head/contrib/llvm/lib/Target/BPF/BPF.h head/contrib/llvm/lib/Target/BPF/BPFAsmPrinter.cpp head/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.h head/contrib/llvm/lib/Target/BPF/BPFTargetMachine.cpp head/contrib/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h head/contrib/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp head/contrib/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp head/contrib/llvm/lib/Target/Hexagon/Hexagon.h head/contrib/llvm/lib/Target/Hexagon/Hexagon.td head/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.h head/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.h head/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepMappings.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepOperands.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h head/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.h head/contrib/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h head/contrib/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormats.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsics.td head/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV5.td head/contrib/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td head/contrib/llvm/lib/Target/Hexagon/HexagonPseudo.td head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td head/contrib/llvm/lib/Target/Hexagon/HexagonSchedule.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV60.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV62.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV65.td head/contrib/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.h head/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h head/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h head/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.cpp head/contrib/llvm/lib/Target/Hexagon/RDFGraph.cpp head/contrib/llvm/lib/Target/Hexagon/RDFLiveness.cpp head/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.cpp head/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.cpp head/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.h head/contrib/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp head/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp head/contrib/llvm/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp head/contrib/llvm/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.h head/contrib/llvm/lib/Target/MSP430/MSP430.h head/contrib/llvm/lib/Target/MSP430/MSP430.td head/contrib/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp head/contrib/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp head/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.h head/contrib/llvm/lib/Target/MSP430/MSP430InstrFormats.td head/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp head/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.h head/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.td head/contrib/llvm/lib/Target/MSP430/MSP430MCInstLower.cpp head/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.td head/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp head/contrib/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp head/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrFormats.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrInfo.td head/contrib/llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp head/contrib/llvm/lib/Target/Mips/Mips.h head/contrib/llvm/lib/Target/Mips/Mips16HardFloat.cpp head/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.cpp head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.cpp head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.h head/contrib/llvm/lib/Target/Mips/Mips32r6InstrFormats.td head/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp head/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.h head/contrib/llvm/lib/Target/Mips/MipsBranchExpansion.cpp head/contrib/llvm/lib/Target/Mips/MipsCCState.cpp head/contrib/llvm/lib/Target/Mips/MipsCallLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsCallLowering.h head/contrib/llvm/lib/Target/Mips/MipsCondMov.td head/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp head/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp head/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsISelLowering.h head/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsInstructionSelector.cpp head/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.h head/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp head/contrib/llvm/lib/Target/Mips/MipsMSAInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td head/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.h head/contrib/llvm/lib/Target/Mips/MipsSchedule.td head/contrib/llvm/lib/Target/Mips/MipsScheduleGeneric.td head/contrib/llvm/lib/Target/Mips/MipsSubtarget.h head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp head/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp head/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h head/contrib/llvm/lib/Target/NVPTX/NVPTX.h head/contrib/llvm/lib/Target/NVPTX/NVPTX.td head/contrib/llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h head/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.h head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td head/contrib/llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h head/contrib/llvm/lib/Target/NVPTX/NVVMReflect.cpp head/contrib/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp head/contrib/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp head/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h head/contrib/llvm/lib/Target/PowerPC/P9InstrResources.td head/contrib/llvm/lib/Target/PowerPC/PPC.td head/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp head/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.td head/contrib/llvm/lib/Target/PowerPC/PPCExpandISEL.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFastISel.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.h head/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h head/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrAltivec.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrFormats.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrHTM.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrQPX.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrSPE.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td head/contrib/llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.td head/contrib/llvm/lib/Target/PowerPC/PPCSchedule.td head/contrib/llvm/lib/Target/PowerPC/PPCSchedule440.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleA2.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500mc.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleE5500.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG3.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4Plus.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG5.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleP7.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleP8.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleP9.td head/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h head/contrib/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp head/contrib/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp head/contrib/llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.cpp head/contrib/llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.h head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.h head/contrib/llvm/lib/Target/RISCV/RISCV.h head/contrib/llvm/lib/Target/RISCV/RISCV.td head/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp head/contrib/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp head/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.cpp head/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.h head/contrib/llvm/lib/Target/RISCV/RISCVInstrFormats.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrFormatsC.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoA.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoC.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoD.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoF.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoM.td head/contrib/llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp head/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp head/contrib/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp head/contrib/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp head/contrib/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp head/contrib/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.h head/contrib/llvm/lib/Target/Sparc/LeonFeatures.td head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp head/contrib/llvm/lib/Target/Sparc/Sparc.td head/contrib/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.h head/contrib/llvm/lib/Target/Sparc/SparcInstr64Bit.td head/contrib/llvm/lib/Target/Sparc/SparcInstrAliases.td head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h head/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp head/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h head/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp head/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.h head/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h head/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrVector.td head/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td head/contrib/llvm/lib/Target/SystemZ/SystemZSchedule.td head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td head/contrib/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h head/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h head/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp head/contrib/llvm/lib/Target/TargetMachine.cpp head/contrib/llvm/lib/Target/TargetMachineC.cpp head/contrib/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp head/contrib/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp head/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp head/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyFixupKinds.h head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp head/contrib/llvm/lib/Target/WebAssembly/README.txt head/contrib/llvm/lib/Target/WebAssembly/WebAssembly.h head/contrib/llvm/lib/Target/WebAssembly/WebAssembly.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAddMissingPrototypes.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISD.def head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrAtomics.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrCall.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrConv.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrExceptRef.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFormats.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyReplacePhysRegs.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyUtilities.cpp head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp head/contrib/llvm/lib/Target/X86/ShadowCallStack.cpp head/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp head/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.h head/contrib/llvm/lib/Target/X86/X86.h head/contrib/llvm/lib/Target/X86/X86.td head/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp head/contrib/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp head/contrib/llvm/lib/Target/X86/X86CallFrameOptimization.cpp head/contrib/llvm/lib/Target/X86/X86CallLowering.cpp head/contrib/llvm/lib/Target/X86/X86CallLowering.h head/contrib/llvm/lib/Target/X86/X86CallingConv.td head/contrib/llvm/lib/Target/X86/X86CmovConversion.cpp head/contrib/llvm/lib/Target/X86/X86DomainReassignment.cpp head/contrib/llvm/lib/Target/X86/X86FastISel.cpp head/contrib/llvm/lib/Target/X86/X86FixupBWInsts.cpp head/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp head/contrib/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp head/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp head/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.h head/contrib/llvm/lib/Target/X86/X86Instr3DNow.td head/contrib/llvm/lib/Target/X86/X86InstrAVX512.td head/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td head/contrib/llvm/lib/Target/X86/X86InstrCMovSetCC.td head/contrib/llvm/lib/Target/X86/X86InstrCompiler.td head/contrib/llvm/lib/Target/X86/X86InstrControl.td head/contrib/llvm/lib/Target/X86/X86InstrExtension.td head/contrib/llvm/lib/Target/X86/X86InstrFMA.td head/contrib/llvm/lib/Target/X86/X86InstrFPStack.td head/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td head/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp head/contrib/llvm/lib/Target/X86/X86InstrInfo.h head/contrib/llvm/lib/Target/X86/X86InstrInfo.td head/contrib/llvm/lib/Target/X86/X86InstrMMX.td head/contrib/llvm/lib/Target/X86/X86InstrSSE.td head/contrib/llvm/lib/Target/X86/X86InstrShiftRotate.td head/contrib/llvm/lib/Target/X86/X86InstrVecCompiler.td head/contrib/llvm/lib/Target/X86/X86InstrXOP.td head/contrib/llvm/lib/Target/X86/X86InstructionSelector.cpp head/contrib/llvm/lib/Target/X86/X86InterleavedAccess.cpp head/contrib/llvm/lib/Target/X86/X86IntrinsicsInfo.h head/contrib/llvm/lib/Target/X86/X86LegalizerInfo.cpp head/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp head/contrib/llvm/lib/Target/X86/X86MacroFusion.cpp head/contrib/llvm/lib/Target/X86/X86MacroFusion.h head/contrib/llvm/lib/Target/X86/X86OptimizeLEAs.cpp head/contrib/llvm/lib/Target/X86/X86PfmCounters.td head/contrib/llvm/lib/Target/X86/X86RegisterBankInfo.cpp head/contrib/llvm/lib/Target/X86/X86RegisterInfo.td head/contrib/llvm/lib/Target/X86/X86RetpolineThunks.cpp head/contrib/llvm/lib/Target/X86/X86SchedBroadwell.td head/contrib/llvm/lib/Target/X86/X86SchedHaswell.td head/contrib/llvm/lib/Target/X86/X86SchedPredicates.td head/contrib/llvm/lib/Target/X86/X86SchedSandyBridge.td head/contrib/llvm/lib/Target/X86/X86SchedSkylakeClient.td head/contrib/llvm/lib/Target/X86/X86SchedSkylakeServer.td head/contrib/llvm/lib/Target/X86/X86Schedule.td head/contrib/llvm/lib/Target/X86/X86ScheduleAtom.td head/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td head/contrib/llvm/lib/Target/X86/X86ScheduleSLM.td head/contrib/llvm/lib/Target/X86/X86ScheduleZnver1.td head/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp head/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp head/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h head/contrib/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp head/contrib/llvm/lib/Target/X86/X86Subtarget.cpp head/contrib/llvm/lib/Target/X86/X86Subtarget.h head/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp head/contrib/llvm/lib/Target/X86/X86TargetMachine.h head/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp head/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.h head/contrib/llvm/lib/Target/X86/X86WinEHState.cpp head/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h head/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp head/contrib/llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp head/contrib/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp head/contrib/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp head/contrib/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombineInternal.h head/contrib/llvm/lib/Transforms/Coroutines/CoroElide.cpp head/contrib/llvm/lib/Transforms/Coroutines/CoroFrame.cpp head/contrib/llvm/lib/Transforms/Coroutines/CoroSplit.cpp head/contrib/llvm/lib/Transforms/Coroutines/Coroutines.cpp head/contrib/llvm/lib/Transforms/IPO/AlwaysInliner.cpp head/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp head/contrib/llvm/lib/Transforms/IPO/CalledValuePropagation.cpp head/contrib/llvm/lib/Transforms/IPO/ConstantMerge.cpp head/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp head/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp head/contrib/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp head/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp head/contrib/llvm/lib/Transforms/IPO/FunctionImport.cpp head/contrib/llvm/lib/Transforms/IPO/GlobalDCE.cpp head/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp head/contrib/llvm/lib/Transforms/IPO/IPO.cpp head/contrib/llvm/lib/Transforms/IPO/Inliner.cpp head/contrib/llvm/lib/Transforms/IPO/LoopExtractor.cpp head/contrib/llvm/lib/Transforms/IPO/LowerTypeTests.cpp head/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp head/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp head/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp head/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp head/contrib/llvm/lib/Transforms/IPO/SCCP.cpp head/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp head/contrib/llvm/lib/Transforms/IPO/SyntheticCountsPropagation.cpp head/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp head/contrib/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h head/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp head/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/CFGMST.h head/contrib/llvm/lib/Transforms/Instrumentation/CGProfile.cpp head/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp head/contrib/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp head/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp head/contrib/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp head/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp head/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp head/contrib/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h head/contrib/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.h head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp head/contrib/llvm/lib/Transforms/Scalar/ADCE.cpp head/contrib/llvm/lib/Transforms/Scalar/BDCE.cpp head/contrib/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp head/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp head/contrib/llvm/lib/Transforms/Scalar/ConstantProp.cpp head/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp head/contrib/llvm/lib/Transforms/Scalar/DCE.cpp head/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp head/contrib/llvm/lib/Transforms/Scalar/DivRemPairs.cpp head/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp head/contrib/llvm/lib/Transforms/Scalar/GVN.cpp head/contrib/llvm/lib/Transforms/Scalar/GVNHoist.cpp head/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp head/contrib/llvm/lib/Transforms/Scalar/GuardWidening.cpp head/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp head/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp head/contrib/llvm/lib/Transforms/Scalar/LICM.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopDistribute.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopPassManager.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopPredication.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopSink.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp head/contrib/llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp head/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp head/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp head/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp head/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp head/contrib/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp head/contrib/llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp head/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp head/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp head/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp head/contrib/llvm/lib/Transforms/Scalar/SROA.cpp head/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp head/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp head/contrib/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp head/contrib/llvm/lib/Transforms/Scalar/Sink.cpp head/contrib/llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp head/contrib/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp head/contrib/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp head/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp head/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp head/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp head/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp head/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp head/contrib/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp head/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp head/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp head/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp head/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp head/contrib/llvm/lib/Transforms/Utils/DemoteRegToStack.cpp head/contrib/llvm/lib/Transforms/Utils/EscapeEnumerator.cpp head/contrib/llvm/lib/Transforms/Utils/Evaluator.cpp head/contrib/llvm/lib/Transforms/Utils/FlattenCFG.cpp head/contrib/llvm/lib/Transforms/Utils/FunctionComparator.cpp head/contrib/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp head/contrib/llvm/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp head/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp head/contrib/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp head/contrib/llvm/lib/Transforms/Utils/Local.cpp head/contrib/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp head/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp head/contrib/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp head/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp head/contrib/llvm/lib/Transforms/Utils/ModuleUtils.cpp head/contrib/llvm/lib/Transforms/Utils/PredicateInfo.cpp head/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp head/contrib/llvm/lib/Transforms/Utils/SplitModule.cpp head/contrib/llvm/lib/Transforms/Utils/Utils.cpp head/contrib/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp head/contrib/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp head/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp head/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h head/contrib/llvm/lib/Transforms/Vectorize/VPlan.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlan.h head/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanValue.h head/contrib/llvm/lib/Transforms/Vectorize/Vectorize.cpp head/contrib/llvm/lib/XRay/InstrumentationMap.cpp head/contrib/llvm/lib/XRay/Trace.cpp head/contrib/llvm/tools/bugpoint/CrashDebugger.cpp head/contrib/llvm/tools/bugpoint/ExecutionDriver.cpp head/contrib/llvm/tools/bugpoint/OptimizerDriver.cpp head/contrib/llvm/tools/bugpoint/ToolRunner.cpp head/contrib/llvm/tools/bugpoint/ToolRunner.h head/contrib/llvm/tools/clang/FREEBSD-Xlist head/contrib/llvm/tools/clang/LICENSE.TXT head/contrib/llvm/tools/clang/include/clang-c/Index.h head/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h head/contrib/llvm/tools/clang/include/clang/AST/ASTDiagnostic.h head/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h head/contrib/llvm/tools/clang/include/clang/AST/ASTStructuralEquivalence.h head/contrib/llvm/tools/clang/include/clang/AST/ASTVector.h head/contrib/llvm/tools/clang/include/clang/AST/Attr.h head/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h head/contrib/llvm/tools/clang/include/clang/AST/BaseSubobject.h head/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h head/contrib/llvm/tools/clang/include/clang/AST/Comment.h head/contrib/llvm/tools/clang/include/clang/AST/CommentDiagnostic.h head/contrib/llvm/tools/clang/include/clang/AST/CommentVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Decl.h head/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h head/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h head/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h head/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h head/contrib/llvm/tools/clang/include/clang/AST/DeclOpenMP.h head/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h head/contrib/llvm/tools/clang/include/clang/AST/DeclVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h head/contrib/llvm/tools/clang/include/clang/AST/EvaluatedExprVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Expr.h head/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h head/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h head/contrib/llvm/tools/clang/include/clang/AST/ExprOpenMP.h head/contrib/llvm/tools/clang/include/clang/AST/GlobalDecl.h head/contrib/llvm/tools/clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Mangle.h head/contrib/llvm/tools/clang/include/clang/AST/NSAPI.h head/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h head/contrib/llvm/tools/clang/include/clang/AST/ODRHash.h head/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h head/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.def head/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h head/contrib/llvm/tools/clang/include/clang/AST/RawCommentList.h head/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Stmt.h head/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h head/contrib/llvm/tools/clang/include/clang/AST/StmtDataCollectors.td head/contrib/llvm/tools/clang/include/clang/AST/StmtObjC.h head/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h head/contrib/llvm/tools/clang/include/clang/AST/StmtVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateName.h head/contrib/llvm/tools/clang/include/clang/AST/Type.h head/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Parser.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h head/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDeclContext.h head/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Analysis/CallGraph.h head/contrib/llvm/tools/clang/include/clang/Analysis/CloneDetection.h head/contrib/llvm/tools/clang/include/clang/Analysis/ConstructionContext.h head/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h head/contrib/llvm/tools/clang/include/clang/Basic/AlignedAllocation.h head/contrib/llvm/tools/clang/include/clang/Basic/AllDiagnostics.h head/contrib/llvm/tools/clang/include/clang/Basic/Attr.td head/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td head/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAArch64.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAMDGPU.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsHexagon.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsPPC.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsWebAssembly.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86_64.def head/contrib/llvm/tools/clang/include/clang/Basic/Cuda.h head/contrib/llvm/tools/clang/include/clang/Basic/DebugInfoOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td head/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTUKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/Features.def head/contrib/llvm/tools/clang/include/clang/Basic/FileManager.h head/contrib/llvm/tools/clang/include/clang/Basic/FileSystemStatCache.h head/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/ObjCRuntime.h head/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensions.def head/contrib/llvm/tools/clang/include/clang/Basic/OpenCLOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/PlistSupport.h head/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def head/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h head/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h head/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td head/contrib/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h head/contrib/llvm/tools/clang/include/clang/Basic/X86Target.def head/contrib/llvm/tools/clang/include/clang/Basic/XRayInstr.h head/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td head/contrib/llvm/tools/clang/include/clang/Basic/arm_neon_incl.td head/contrib/llvm/tools/clang/include/clang/CodeGen/CGFunctionInfo.h head/contrib/llvm/tools/clang/include/clang/CodeGen/SwiftCallingConv.h head/contrib/llvm/tools/clang/include/clang/CrossTU/CrossTUDiagnostic.h head/contrib/llvm/tools/clang/include/clang/CrossTU/CrossTranslationUnit.h head/contrib/llvm/tools/clang/include/clang/Driver/Action.h head/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td head/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td head/contrib/llvm/tools/clang/include/clang/Driver/Distro.h head/contrib/llvm/tools/clang/include/clang/Driver/Driver.h head/contrib/llvm/tools/clang/include/clang/Driver/DriverDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Driver/Job.h head/contrib/llvm/tools/clang/include/clang/Driver/Options.td head/contrib/llvm/tools/clang/include/clang/Driver/SanitizerArgs.h head/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h head/contrib/llvm/tools/clang/include/clang/Driver/Types.def head/contrib/llvm/tools/clang/include/clang/Format/Format.h head/contrib/llvm/tools/clang/include/clang/Frontend/ASTConsumers.h head/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendAction.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def head/contrib/llvm/tools/clang/include/clang/Frontend/PCHContainerOperations.h head/contrib/llvm/tools/clang/include/clang/Frontend/PrecompiledPreamble.h head/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h head/contrib/llvm/tools/clang/include/clang/Index/IndexDataConsumer.h head/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h head/contrib/llvm/tools/clang/include/clang/Index/IndexingAction.h head/contrib/llvm/tools/clang/include/clang/Index/USRGeneration.h head/contrib/llvm/tools/clang/include/clang/Lex/CodeCompletionHandler.h head/contrib/llvm/tools/clang/include/clang/Lex/DirectoryLookup.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderMap.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h head/contrib/llvm/tools/clang/include/clang/Lex/LexDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h head/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h head/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h head/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h head/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h head/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorOptions.h head/contrib/llvm/tools/clang/include/clang/Lex/TokenConcatenation.h head/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h head/contrib/llvm/tools/clang/include/clang/Parse/ParseDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Parse/Parser.h head/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h head/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteOptions.h head/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h head/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h head/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h head/contrib/llvm/tools/clang/include/clang/Sema/Overload.h head/contrib/llvm/tools/clang/include/clang/Sema/ParsedAttr.h head/contrib/llvm/tools/clang/include/clang/Sema/Scope.h head/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h head/contrib/llvm/tools/clang/include/clang/Sema/Sema.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h head/contrib/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h head/contrib/llvm/tools/clang/include/clang/Serialization/GlobalModuleIndex.h head/contrib/llvm/tools/clang/include/clang/Serialization/SerializationDiagnostic.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/CheckerBase.td head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Analyses.def head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Regions.def head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSolver.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/Tooling/AllTUsExecution.h head/contrib/llvm/tools/clang/include/clang/Tooling/ArgumentsAdjusters.h head/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h head/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabasePluginRegistry.h head/contrib/llvm/tools/clang/include/clang/Tooling/DiagnosticsYaml.h head/contrib/llvm/tools/clang/include/clang/Tooling/Execution.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Tooling/StandaloneExecution.h head/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h head/contrib/llvm/tools/clang/include/clang/module.modulemap head/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/ObjCMT.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransAPIUses.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCAttrs.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCCalls.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransProtectedScope.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransformActions.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.cpp head/contrib/llvm/tools/clang/lib/AST/APValue.cpp head/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp head/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp head/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp head/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp head/contrib/llvm/tools/clang/lib/AST/ASTStructuralEquivalence.cpp head/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp head/contrib/llvm/tools/clang/lib/AST/CommentLexer.cpp head/contrib/llvm/tools/clang/lib/AST/CommentParser.cpp head/contrib/llvm/tools/clang/lib/AST/CommentSema.cpp head/contrib/llvm/tools/clang/lib/AST/Decl.cpp head/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp head/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp head/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp head/contrib/llvm/tools/clang/lib/AST/DeclOpenMP.cpp head/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp head/contrib/llvm/tools/clang/lib/AST/DeclarationName.cpp head/contrib/llvm/tools/clang/lib/AST/Expr.cpp head/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp head/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp head/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp head/contrib/llvm/tools/clang/lib/AST/ExternalASTMerger.cpp head/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp head/contrib/llvm/tools/clang/lib/AST/Linkage.h head/contrib/llvm/tools/clang/lib/AST/Mangle.cpp head/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp head/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp head/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp head/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp head/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp head/contrib/llvm/tools/clang/lib/AST/ParentMap.cpp head/contrib/llvm/tools/clang/lib/AST/RawCommentList.cpp head/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/AST/SelectorLocationsKind.cpp head/contrib/llvm/tools/clang/lib/AST/Stmt.cpp head/contrib/llvm/tools/clang/lib/AST/StmtCXX.cpp head/contrib/llvm/tools/clang/lib/AST/StmtObjC.cpp head/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp head/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp head/contrib/llvm/tools/clang/lib/AST/Type.cpp head/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp head/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp head/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp head/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp head/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp head/contrib/llvm/tools/clang/lib/Analysis/CallGraph.cpp head/contrib/llvm/tools/clang/lib/Analysis/CloneDetection.cpp head/contrib/llvm/tools/clang/lib/Analysis/Consumed.cpp head/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp head/contrib/llvm/tools/clang/lib/Analysis/ProgramPoint.cpp head/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp head/contrib/llvm/tools/clang/lib/Basic/Attributes.cpp head/contrib/llvm/tools/clang/lib/Basic/Builtins.cpp head/contrib/llvm/tools/clang/lib/Basic/Cuda.cpp head/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp head/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp head/contrib/llvm/tools/clang/lib/Basic/FileSystemStatCache.cpp head/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp head/contrib/llvm/tools/clang/lib/Basic/Module.cpp head/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp head/contrib/llvm/tools/clang/lib/Basic/SourceLocation.cpp head/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp head/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.h head/contrib/llvm/tools/clang/lib/Basic/Targets/AMDGPU.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/AMDGPU.h head/contrib/llvm/tools/clang/lib/Basic/Targets/ARM.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/Hexagon.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h head/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/OSTargets.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/OSTargets.h head/contrib/llvm/tools/clang/lib/Basic/Targets/PPC.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/PPC.h head/contrib/llvm/tools/clang/lib/Basic/Targets/SPIR.h head/contrib/llvm/tools/clang/lib/Basic/Targets/Sparc.h head/contrib/llvm/tools/clang/lib/Basic/Targets/WebAssembly.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/WebAssembly.h head/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/X86.h head/contrib/llvm/tools/clang/lib/Basic/Version.cpp head/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h head/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCUDANV.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.h head/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCoroutine.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/CGNonTrivialStruct.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenABITypes.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h head/contrib/llvm/tools/clang/lib/CodeGen/ConstantEmitter.h head/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.h head/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.cpp head/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.h head/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp head/contrib/llvm/tools/clang/lib/CodeGen/SwiftCallingConv.cpp head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/VarBypassDetector.cpp head/contrib/llvm/tools/clang/lib/CodeGen/VarBypassDetector.h head/contrib/llvm/tools/clang/lib/CrossTU/CrossTranslationUnit.cpp head/contrib/llvm/tools/clang/lib/Driver/Action.cpp head/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp head/contrib/llvm/tools/clang/lib/Driver/Distro.cpp head/contrib/llvm/tools/clang/lib/Driver/Driver.cpp head/contrib/llvm/tools/clang/lib/Driver/Job.cpp head/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Minix.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MipsLinux.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/PS4CPU.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.h head/contrib/llvm/tools/clang/lib/Driver/Types.cpp head/contrib/llvm/tools/clang/lib/Driver/XRayArgs.cpp head/contrib/llvm/tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp head/contrib/llvm/tools/clang/lib/Format/BreakableToken.cpp head/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp head/contrib/llvm/tools/clang/lib/Format/Format.cpp head/contrib/llvm/tools/clang/lib/Format/FormatToken.h head/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.cpp head/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.h head/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.cpp head/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp head/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.h head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h head/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp head/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp head/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp head/contrib/llvm/tools/clang/lib/Frontend/DiagnosticRenderer.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp head/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp head/contrib/llvm/tools/clang/lib/Frontend/PrecompiledPreamble.cpp head/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp head/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_runtime_wrapper.h head/contrib/llvm/tools/clang/lib/Headers/adxintrin.h head/contrib/llvm/tools/clang/lib/Headers/altivec.h head/contrib/llvm/tools/clang/lib/Headers/avx512bwintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512dqintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512fintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512pfintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vbmi2intrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vbmiintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vbmivlintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlbwintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlvbmi2intrin.h head/contrib/llvm/tools/clang/lib/Headers/bmiintrin.h head/contrib/llvm/tools/clang/lib/Headers/cuda_wrappers/new head/contrib/llvm/tools/clang/lib/Headers/emmintrin.h head/contrib/llvm/tools/clang/lib/Headers/float.h head/contrib/llvm/tools/clang/lib/Headers/immintrin.h head/contrib/llvm/tools/clang/lib/Headers/intrin.h head/contrib/llvm/tools/clang/lib/Headers/lzcntintrin.h head/contrib/llvm/tools/clang/lib/Headers/opencl-c.h head/contrib/llvm/tools/clang/lib/Headers/vecintrin.h head/contrib/llvm/tools/clang/lib/Index/CommentToXML.cpp head/contrib/llvm/tools/clang/lib/Index/IndexBody.cpp head/contrib/llvm/tools/clang/lib/Index/IndexDecl.cpp head/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp head/contrib/llvm/tools/clang/lib/Index/IndexTypeSourceInfo.cpp head/contrib/llvm/tools/clang/lib/Index/IndexingAction.cpp head/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp head/contrib/llvm/tools/clang/lib/Index/SimpleFormatContext.h head/contrib/llvm/tools/clang/lib/Index/USRGeneration.cpp head/contrib/llvm/tools/clang/lib/Lex/HeaderMap.cpp head/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp head/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp head/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp head/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp head/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp head/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp head/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp head/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp head/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp head/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp head/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp head/contrib/llvm/tools/clang/lib/Parse/Parser.cpp head/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp head/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp head/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp head/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp head/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp head/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp head/contrib/llvm/tools/clang/lib/Sema/ParsedAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/ScopeInfo.cpp head/contrib/llvm/tools/clang/lib/Sema/Sema.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCUDA.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp head/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h head/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp head/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationState.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CXXSelfAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CloneChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GTestChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InterCheckerAPI.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCPropertyChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RunLoopAutoreleaseLeakChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Checker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CommonBugCategories.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopWidening.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/WorkList.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp head/contrib/llvm/tools/clang/lib/Tooling/ASTDiff/ASTDiff.cpp head/contrib/llvm/tools/clang/lib/Tooling/AllTUsExecution.cpp head/contrib/llvm/tools/clang/lib/Tooling/ArgumentsAdjusters.cpp head/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/Core/Diagnostic.cpp head/contrib/llvm/tools/clang/lib/Tooling/Core/Lookup.cpp head/contrib/llvm/tools/clang/lib/Tooling/Core/Replacement.cpp head/contrib/llvm/tools/clang/lib/Tooling/Execution.cpp head/contrib/llvm/tools/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp head/contrib/llvm/tools/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/JSONCompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/Extract.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp head/contrib/llvm/tools/clang/lib/Tooling/StandaloneExecution.cpp head/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp head/contrib/llvm/tools/clang/tools/clang-format/ClangFormat.cpp head/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp head/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp head/contrib/llvm/tools/clang/tools/driver/cc1gen_reproducer_main.cpp head/contrib/llvm/tools/clang/tools/driver/driver.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangOptionDocEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangSACheckersEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp head/contrib/llvm/tools/clang/utils/TableGen/TableGenBackends.h head/contrib/llvm/tools/lld/COFF/Chunks.cpp head/contrib/llvm/tools/lld/COFF/Chunks.h head/contrib/llvm/tools/lld/COFF/Config.h head/contrib/llvm/tools/lld/COFF/DLL.cpp head/contrib/llvm/tools/lld/COFF/DLL.h head/contrib/llvm/tools/lld/COFF/Driver.cpp head/contrib/llvm/tools/lld/COFF/Driver.h head/contrib/llvm/tools/lld/COFF/DriverUtils.cpp head/contrib/llvm/tools/lld/COFF/ICF.cpp head/contrib/llvm/tools/lld/COFF/InputFiles.cpp head/contrib/llvm/tools/lld/COFF/InputFiles.h head/contrib/llvm/tools/lld/COFF/LTO.cpp head/contrib/llvm/tools/lld/COFF/MapFile.cpp head/contrib/llvm/tools/lld/COFF/MarkLive.cpp head/contrib/llvm/tools/lld/COFF/MinGW.cpp head/contrib/llvm/tools/lld/COFF/MinGW.h head/contrib/llvm/tools/lld/COFF/Options.td head/contrib/llvm/tools/lld/COFF/PDB.cpp head/contrib/llvm/tools/lld/COFF/PDB.h head/contrib/llvm/tools/lld/COFF/SymbolTable.cpp head/contrib/llvm/tools/lld/COFF/SymbolTable.h head/contrib/llvm/tools/lld/COFF/Symbols.cpp head/contrib/llvm/tools/lld/COFF/Symbols.h head/contrib/llvm/tools/lld/COFF/Writer.cpp head/contrib/llvm/tools/lld/COFF/Writer.h head/contrib/llvm/tools/lld/Common/Args.cpp head/contrib/llvm/tools/lld/Common/ErrorHandler.cpp head/contrib/llvm/tools/lld/Common/Strings.cpp head/contrib/llvm/tools/lld/Common/TargetOptionsCommandFlags.cpp head/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp head/contrib/llvm/tools/lld/ELF/Arch/AArch64.cpp head/contrib/llvm/tools/lld/ELF/Arch/AMDGPU.cpp head/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp head/contrib/llvm/tools/lld/ELF/Arch/AVR.cpp head/contrib/llvm/tools/lld/ELF/Arch/Hexagon.cpp head/contrib/llvm/tools/lld/ELF/Arch/Mips.cpp head/contrib/llvm/tools/lld/ELF/Arch/PPC.cpp head/contrib/llvm/tools/lld/ELF/Arch/PPC64.cpp head/contrib/llvm/tools/lld/ELF/Arch/SPARCV9.cpp head/contrib/llvm/tools/lld/ELF/Arch/X86.cpp head/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp head/contrib/llvm/tools/lld/ELF/CMakeLists.txt head/contrib/llvm/tools/lld/ELF/CallGraphSort.cpp head/contrib/llvm/tools/lld/ELF/Config.h head/contrib/llvm/tools/lld/ELF/Driver.cpp head/contrib/llvm/tools/lld/ELF/Driver.h head/contrib/llvm/tools/lld/ELF/DriverUtils.cpp head/contrib/llvm/tools/lld/ELF/EhFrame.cpp head/contrib/llvm/tools/lld/ELF/ICF.cpp head/contrib/llvm/tools/lld/ELF/InputFiles.cpp head/contrib/llvm/tools/lld/ELF/InputFiles.h head/contrib/llvm/tools/lld/ELF/InputSection.cpp head/contrib/llvm/tools/lld/ELF/InputSection.h head/contrib/llvm/tools/lld/ELF/LTO.cpp head/contrib/llvm/tools/lld/ELF/LTO.h head/contrib/llvm/tools/lld/ELF/LinkerScript.cpp head/contrib/llvm/tools/lld/ELF/LinkerScript.h head/contrib/llvm/tools/lld/ELF/MapFile.cpp head/contrib/llvm/tools/lld/ELF/MarkLive.cpp head/contrib/llvm/tools/lld/ELF/Options.td head/contrib/llvm/tools/lld/ELF/OutputSections.cpp head/contrib/llvm/tools/lld/ELF/OutputSections.h head/contrib/llvm/tools/lld/ELF/Relocations.cpp head/contrib/llvm/tools/lld/ELF/Relocations.h head/contrib/llvm/tools/lld/ELF/ScriptLexer.cpp head/contrib/llvm/tools/lld/ELF/ScriptLexer.h head/contrib/llvm/tools/lld/ELF/ScriptParser.cpp head/contrib/llvm/tools/lld/ELF/SymbolTable.cpp head/contrib/llvm/tools/lld/ELF/SymbolTable.h head/contrib/llvm/tools/lld/ELF/Symbols.cpp head/contrib/llvm/tools/lld/ELF/Symbols.h head/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp head/contrib/llvm/tools/lld/ELF/SyntheticSections.h head/contrib/llvm/tools/lld/ELF/Target.cpp head/contrib/llvm/tools/lld/ELF/Target.h head/contrib/llvm/tools/lld/ELF/Thunks.cpp head/contrib/llvm/tools/lld/ELF/Writer.cpp head/contrib/llvm/tools/lld/FREEBSD-Xlist head/contrib/llvm/tools/lld/LICENSE.TXT head/contrib/llvm/tools/lld/docs/NewLLD.rst head/contrib/llvm/tools/lld/docs/README.txt head/contrib/llvm/tools/lld/docs/Readers.rst head/contrib/llvm/tools/lld/docs/ReleaseNotes.rst head/contrib/llvm/tools/lld/docs/WebAssembly.rst head/contrib/llvm/tools/lld/docs/conf.py head/contrib/llvm/tools/lld/docs/index.rst head/contrib/llvm/tools/lld/docs/ld.lld.1 head/contrib/llvm/tools/lld/docs/open_projects.rst head/contrib/llvm/tools/lld/docs/windows_support.rst head/contrib/llvm/tools/lld/include/lld/Common/Args.h head/contrib/llvm/tools/lld/include/lld/Common/ErrorHandler.h head/contrib/llvm/tools/lld/include/lld/Common/LLVM.h head/contrib/llvm/tools/lld/include/lld/Common/Strings.h head/contrib/llvm/tools/lld/include/lld/Common/TargetOptionsCommandFlags.h head/contrib/llvm/tools/lld/include/lld/Common/Threads.h head/contrib/llvm/tools/lld/lib/Driver/DarwinLdDriver.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp head/contrib/llvm/tools/lld/tools/lld/lld.cpp head/contrib/llvm/tools/lldb/FREEBSD-Xlist head/contrib/llvm/tools/lldb/include/lldb/API/LLDB.h head/contrib/llvm/tools/lldb/include/lldb/API/SBAddress.h head/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpoint.h head/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/API/SBCommandReturnObject.h head/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h head/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h head/contrib/llvm/tools/lldb/include/lldb/API/SBExpressionOptions.h head/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h head/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h head/contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfo.h head/contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfoList.h head/contrib/llvm/tools/lldb/include/lldb/API/SBModule.h head/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h head/contrib/llvm/tools/lldb/include/lldb/API/SBStructuredData.h head/contrib/llvm/tools/lldb/include/lldb/API/SBSymbolContext.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h head/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h head/contrib/llvm/tools/lldb/include/lldb/API/SBThreadPlan.h head/contrib/llvm/tools/lldb/include/lldb/API/SBVariablesOptions.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointID.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointIDList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocation.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationCollection.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointName.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointOptions.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolver.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverAddress.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileLine.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileRegex.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverName.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSite.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSiteList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Stoppoint.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/StoppointLocation.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Watchpoint.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointOptions.h head/contrib/llvm/tools/lldb/include/lldb/Core/Address.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressRange.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolver.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverFileLine.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverName.h head/contrib/llvm/tools/lldb/include/lldb/Core/Architecture.h head/contrib/llvm/tools/lldb/include/lldb/Core/ClangForward.h head/contrib/llvm/tools/lldb/include/lldb/Core/Communication.h head/contrib/llvm/tools/lldb/include/lldb/Core/Debugger.h head/contrib/llvm/tools/lldb/include/lldb/Core/Disassembler.h head/contrib/llvm/tools/lldb/include/lldb/Core/DumpDataExtractor.h head/contrib/llvm/tools/lldb/include/lldb/Core/EmulateInstruction.h head/contrib/llvm/tools/lldb/include/lldb/Core/FileLineResolver.h head/contrib/llvm/tools/lldb/include/lldb/Core/FileSpecList.h head/contrib/llvm/tools/lldb/include/lldb/Core/FormatEntity.h head/contrib/llvm/tools/lldb/include/lldb/Core/IOHandler.h head/contrib/llvm/tools/lldb/include/lldb/Core/LoadedModuleInfoList.h head/contrib/llvm/tools/lldb/include/lldb/Core/Mangled.h head/contrib/llvm/tools/lldb/include/lldb/Core/MappedHash.h head/contrib/llvm/tools/lldb/include/lldb/Core/Module.h head/contrib/llvm/tools/lldb/include/lldb/Core/ModuleList.h head/contrib/llvm/tools/lldb/include/lldb/Core/ModuleSpec.h head/contrib/llvm/tools/lldb/include/lldb/Core/Opcode.h head/contrib/llvm/tools/lldb/include/lldb/Core/PluginInterface.h head/contrib/llvm/tools/lldb/include/lldb/Core/PluginManager.h head/contrib/llvm/tools/lldb/include/lldb/Core/RangeMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/STLUtils.h head/contrib/llvm/tools/lldb/include/lldb/Core/SearchFilter.h head/contrib/llvm/tools/lldb/include/lldb/Core/Section.h head/contrib/llvm/tools/lldb/include/lldb/Core/SourceManager.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamAsynchronousIO.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamBuffer.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamFile.h head/contrib/llvm/tools/lldb/include/lldb/Core/StructuredDataImpl.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseSet.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeSTLMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeSTLVector.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeValue.h head/contrib/llvm/tools/lldb/include/lldb/Core/UniqueCStringMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/UserSettingsController.h head/contrib/llvm/tools/lldb/include/lldb/Core/Value.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObject.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectCast.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectChild.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResult.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultCast.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultChild.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultImpl.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectDynamicValue.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectList.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectMemory.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectRegister.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectVariable.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DataVisualization.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DumpValueObjectOptions.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatCache.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatClasses.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatManager.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersContainer.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersHelpers.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/LanguageCategory.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/StringPrinter.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategory.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategoryMap.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeFormat.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSummary.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSynthetic.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeValidator.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/ValueObjectPrinter.h head/contrib/llvm/tools/lldb/include/lldb/Expression/DWARFExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/Expression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionParser.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionVariable.h head/contrib/llvm/tools/lldb/include/lldb/Expression/FunctionCaller.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRExecutionUnit.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRMemoryMap.h head/contrib/llvm/tools/lldb/include/lldb/Expression/LLVMUserExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/Materializer.h head/contrib/llvm/tools/lldb/include/lldb/Expression/REPL.h head/contrib/llvm/tools/lldb/include/lldb/Expression/UserExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/UtilityFunction.h head/contrib/llvm/tools/lldb/include/lldb/Host/Debug.h head/contrib/llvm/tools/lldb/include/lldb/Host/Editline.h head/contrib/llvm/tools/lldb/include/lldb/Host/File.h head/contrib/llvm/tools/lldb/include/lldb/Host/FileSystem.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadBase.h head/contrib/llvm/tools/lldb/include/lldb/Host/MonitoringProcessLauncher.h head/contrib/llvm/tools/lldb/include/lldb/Host/PipeBase.h head/contrib/llvm/tools/lldb/include/lldb/Host/ProcessRunLock.h head/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h head/contrib/llvm/tools/lldb/include/lldb/Host/SocketAddress.h head/contrib/llvm/tools/lldb/include/lldb/Host/StringConvert.h head/contrib/llvm/tools/lldb/include/lldb/Host/Symbols.h head/contrib/llvm/tools/lldb/include/lldb/Host/TaskPool.h head/contrib/llvm/tools/lldb/include/lldb/Host/XML.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeBreakpointList.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeRegisterContext.h head/contrib/llvm/tools/lldb/include/lldb/Host/openbsd/HostInfoOpenBSD.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostProcessPosix.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/PipePosix.h head/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializer.h head/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializerCommon.h head/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemLifetimeManager.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandAlias.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandCompletions.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandHistory.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectMultiword.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandOptionValidators.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandReturnObject.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionArgParser.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupBoolean.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupFile.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupFormat.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupOutputFile.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupPlatform.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupString.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupUInt64.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupUUID.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupVariable.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupWatchpoint.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValue.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArgs.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArray.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueBoolean.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueChar.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueDictionary.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueEnumeration.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpecList.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormat.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormatEntity.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueLanguage.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValuePathMappings.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueProperties.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueRegex.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueSInt64.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueString.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUInt64.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUUID.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/Options.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/Property.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Block.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTImporter.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangUtil.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompileUnit.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerType.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/DebugMacros.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Function.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/LineTable.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectContainer.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContextScope.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolFile.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolVendor.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Symtab.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeSystem.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindPlan.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindTable.h head/contrib/llvm/tools/lldb/include/lldb/Target/ABI.h head/contrib/llvm/tools/lldb/include/lldb/Target/CPPLanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/DynamicLoader.h head/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContext.h head/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContextScope.h head/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntimeStopInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/Language.h head/contrib/llvm/tools/lldb/include/lldb/Target/LanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/Memory.h head/contrib/llvm/tools/lldb/include/lldb/Target/MemoryHistory.h head/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/ObjCLanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/OperatingSystem.h head/contrib/llvm/tools/lldb/include/lldb/Target/PathMappingList.h head/contrib/llvm/tools/lldb/include/lldb/Target/Platform.h head/contrib/llvm/tools/lldb/include/lldb/Target/Process.h head/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/ProcessStructReader.h head/contrib/llvm/tools/lldb/include/lldb/Target/QueueItem.h head/contrib/llvm/tools/lldb/include/lldb/Target/RegisterContext.h head/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadHistory.h head/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadList.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackFrame.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameList.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackID.h head/contrib/llvm/tools/lldb/include/lldb/Target/StopInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/SystemRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/Target.h head/contrib/llvm/tools/lldb/include/lldb/Target/TargetList.h head/contrib/llvm/tools/lldb/include/lldb/Target/Thread.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlan.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanBase.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunction.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunctionUsingABI.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallUserExpression.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanPython.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanRunToAddress.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanShouldStopHere.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInstruction.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOut.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverBreakpoint.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepThrough.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepUntil.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanTracer.h head/contrib/llvm/tools/lldb/include/lldb/Target/UnixSignals.h head/contrib/llvm/tools/lldb/include/lldb/Target/Unwind.h head/contrib/llvm/tools/lldb/include/lldb/Utility/ArchSpec.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Baton.h head/contrib/llvm/tools/lldb/include/lldb/Utility/CompletionRequest.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Connection.h head/contrib/llvm/tools/lldb/include/lldb/Utility/ConstString.h head/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferHeap.h head/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferLLVM.h head/contrib/llvm/tools/lldb/include/lldb/Utility/DataEncoder.h head/contrib/llvm/tools/lldb/include/lldb/Utility/DataExtractor.h head/contrib/llvm/tools/lldb/include/lldb/Utility/FileSpec.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Iterable.h head/contrib/llvm/tools/lldb/include/lldb/Utility/LLDBAssert.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Log.h head/contrib/llvm/tools/lldb/include/lldb/Utility/RegularExpression.h head/contrib/llvm/tools/lldb/include/lldb/Utility/SelectHelper.h head/contrib/llvm/tools/lldb/include/lldb/Utility/SharingPtr.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Status.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Stream.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StreamCallback.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StreamGDBRemote.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StreamString.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StreamTee.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractor.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractorGDBRemote.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StringLexer.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StringList.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StructuredData.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Timer.h head/contrib/llvm/tools/lldb/include/lldb/Utility/UUID.h head/contrib/llvm/tools/lldb/include/lldb/Utility/UserID.h head/contrib/llvm/tools/lldb/include/lldb/Utility/VMRange.h head/contrib/llvm/tools/lldb/include/lldb/lldb-defines.h head/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h head/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-interfaces.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-types.h head/contrib/llvm/tools/lldb/include/lldb/lldb-types.h head/contrib/llvm/tools/lldb/include/lldb/module.modulemap head/contrib/llvm/tools/lldb/source/API/SBAddress.cpp head/contrib/llvm/tools/lldb/source/API/SBAttachInfo.cpp head/contrib/llvm/tools/lldb/source/API/SBBreakpoint.cpp head/contrib/llvm/tools/lldb/source/API/SBBreakpointName.cpp head/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.cpp head/contrib/llvm/tools/lldb/source/API/SBBroadcaster.cpp head/contrib/llvm/tools/lldb/source/API/SBCommandInterpreter.cpp head/contrib/llvm/tools/lldb/source/API/SBCommandReturnObject.cpp head/contrib/llvm/tools/lldb/source/API/SBCompileUnit.cpp head/contrib/llvm/tools/lldb/source/API/SBData.cpp head/contrib/llvm/tools/lldb/source/API/SBDebugger.cpp head/contrib/llvm/tools/lldb/source/API/SBDeclaration.cpp head/contrib/llvm/tools/lldb/source/API/SBError.cpp head/contrib/llvm/tools/lldb/source/API/SBEvent.cpp head/contrib/llvm/tools/lldb/source/API/SBExpressionOptions.cpp head/contrib/llvm/tools/lldb/source/API/SBFileSpec.cpp head/contrib/llvm/tools/lldb/source/API/SBFileSpecList.cpp head/contrib/llvm/tools/lldb/source/API/SBFrame.cpp head/contrib/llvm/tools/lldb/source/API/SBHostOS.cpp head/contrib/llvm/tools/lldb/source/API/SBLaunchInfo.cpp head/contrib/llvm/tools/lldb/source/API/SBLineEntry.cpp head/contrib/llvm/tools/lldb/source/API/SBListener.cpp head/contrib/llvm/tools/lldb/source/API/SBMemoryRegionInfoList.cpp head/contrib/llvm/tools/lldb/source/API/SBModule.cpp head/contrib/llvm/tools/lldb/source/API/SBModuleSpec.cpp head/contrib/llvm/tools/lldb/source/API/SBPlatform.cpp head/contrib/llvm/tools/lldb/source/API/SBProcess.cpp head/contrib/llvm/tools/lldb/source/API/SBProcessInfo.cpp head/contrib/llvm/tools/lldb/source/API/SBQueue.cpp head/contrib/llvm/tools/lldb/source/API/SBSection.cpp head/contrib/llvm/tools/lldb/source/API/SBSourceManager.cpp head/contrib/llvm/tools/lldb/source/API/SBStream.cpp head/contrib/llvm/tools/lldb/source/API/SBStringList.cpp head/contrib/llvm/tools/lldb/source/API/SBStructuredData.cpp head/contrib/llvm/tools/lldb/source/API/SBSymbolContext.cpp head/contrib/llvm/tools/lldb/source/API/SBSymbolContextList.cpp head/contrib/llvm/tools/lldb/source/API/SBTarget.cpp head/contrib/llvm/tools/lldb/source/API/SBThread.cpp head/contrib/llvm/tools/lldb/source/API/SBThreadPlan.cpp head/contrib/llvm/tools/lldb/source/API/SBType.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeCategory.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeEnumMember.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeFilter.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeFormat.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeNameSpecifier.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeSummary.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeSynthetic.cpp head/contrib/llvm/tools/lldb/source/API/SBValue.cpp head/contrib/llvm/tools/lldb/source/API/SBValueList.cpp head/contrib/llvm/tools/lldb/source/API/SBVariablesOptions.cpp head/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.cpp head/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.h head/contrib/llvm/tools/lldb/source/Breakpoint/Breakpoint.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointID.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointIDList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocation.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationCollection.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointName.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointOptions.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolver.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverAddress.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileRegex.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverName.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSite.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSiteList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/Stoppoint.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/StoppointCallbackContext.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/StoppointLocation.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/Watchpoint.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointOptions.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandCompletions.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectApropos.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectApropos.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLanguage.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectMultiword.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectVersion.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectVersion.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.h head/contrib/llvm/tools/lldb/source/Core/Address.cpp head/contrib/llvm/tools/lldb/source/Core/AddressRange.cpp head/contrib/llvm/tools/lldb/source/Core/AddressResolverFileLine.cpp head/contrib/llvm/tools/lldb/source/Core/AddressResolverName.cpp head/contrib/llvm/tools/lldb/source/Core/Communication.cpp head/contrib/llvm/tools/lldb/source/Core/Debugger.cpp head/contrib/llvm/tools/lldb/source/Core/Disassembler.cpp head/contrib/llvm/tools/lldb/source/Core/DumpDataExtractor.cpp head/contrib/llvm/tools/lldb/source/Core/DumpRegisterValue.cpp head/contrib/llvm/tools/lldb/source/Core/DynamicLoader.cpp head/contrib/llvm/tools/lldb/source/Core/EmulateInstruction.cpp head/contrib/llvm/tools/lldb/source/Core/FileLineResolver.cpp head/contrib/llvm/tools/lldb/source/Core/FileSpecList.cpp head/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp head/contrib/llvm/tools/lldb/source/Core/IOHandler.cpp head/contrib/llvm/tools/lldb/source/Core/Mangled.cpp head/contrib/llvm/tools/lldb/source/Core/Module.cpp head/contrib/llvm/tools/lldb/source/Core/ModuleList.cpp head/contrib/llvm/tools/lldb/source/Core/Opcode.cpp head/contrib/llvm/tools/lldb/source/Core/PluginManager.cpp head/contrib/llvm/tools/lldb/source/Core/SearchFilter.cpp head/contrib/llvm/tools/lldb/source/Core/Section.cpp head/contrib/llvm/tools/lldb/source/Core/SourceManager.cpp head/contrib/llvm/tools/lldb/source/Core/StreamAsynchronousIO.cpp head/contrib/llvm/tools/lldb/source/Core/StreamFile.cpp head/contrib/llvm/tools/lldb/source/Core/UserSettingsController.cpp head/contrib/llvm/tools/lldb/source/Core/Value.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObject.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectCast.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectChild.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResult.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultChild.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultImpl.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectDynamicValue.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectList.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectMemory.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectRegister.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectSyntheticFilter.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectVariable.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/CXXFunctionPointer.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/DataVisualization.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/DumpValueObjectOptions.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormatCache.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormatClasses.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormatManager.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormattersHelpers.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LanguageCategory.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/StringPrinter.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategory.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategoryMap.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeFormat.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeSummary.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeSynthetic.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeValidator.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/ValueObjectPrinter.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/VectorType.cpp head/contrib/llvm/tools/lldb/source/Expression/DWARFExpression.cpp head/contrib/llvm/tools/lldb/source/Expression/ExpressionSourceCode.cpp head/contrib/llvm/tools/lldb/source/Expression/FunctionCaller.cpp head/contrib/llvm/tools/lldb/source/Expression/IRDynamicChecks.cpp head/contrib/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp head/contrib/llvm/tools/lldb/source/Expression/IRInterpreter.cpp head/contrib/llvm/tools/lldb/source/Expression/IRMemoryMap.cpp head/contrib/llvm/tools/lldb/source/Expression/LLVMUserExpression.cpp head/contrib/llvm/tools/lldb/source/Expression/Materializer.cpp head/contrib/llvm/tools/lldb/source/Expression/REPL.cpp head/contrib/llvm/tools/lldb/source/Expression/UtilityFunction.cpp head/contrib/llvm/tools/lldb/source/Host/common/Editline.cpp head/contrib/llvm/tools/lldb/source/Host/common/File.cpp head/contrib/llvm/tools/lldb/source/Host/common/FileCache.cpp head/contrib/llvm/tools/lldb/source/Host/common/FileSystem.cpp head/contrib/llvm/tools/lldb/source/Host/common/Host.cpp head/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp head/contrib/llvm/tools/lldb/source/Host/common/HostNativeThreadBase.cpp head/contrib/llvm/tools/lldb/source/Host/common/HostThread.cpp head/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp head/contrib/llvm/tools/lldb/source/Host/common/MonitoringProcessLauncher.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeRegisterContext.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp head/contrib/llvm/tools/lldb/source/Host/common/ProcessRunLock.cpp head/contrib/llvm/tools/lldb/source/Host/common/PseudoTerminal.cpp head/contrib/llvm/tools/lldb/source/Host/common/SocketAddress.cpp head/contrib/llvm/tools/lldb/source/Host/common/StringConvert.cpp head/contrib/llvm/tools/lldb/source/Host/common/Symbols.cpp head/contrib/llvm/tools/lldb/source/Host/common/TaskPool.cpp head/contrib/llvm/tools/lldb/source/Host/common/XML.cpp head/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp head/contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp head/contrib/llvm/tools/lldb/source/Host/netbsd/Host.cpp head/contrib/llvm/tools/lldb/source/Host/netbsd/HostInfoNetBSD.cpp head/contrib/llvm/tools/lldb/source/Host/openbsd/Host.cpp head/contrib/llvm/tools/lldb/source/Host/openbsd/HostInfoOpenBSD.cpp head/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/FileSystem.cpp head/contrib/llvm/tools/lldb/source/Host/posix/HostInfoPosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/HostProcessPosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/PipePosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp head/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp head/contrib/llvm/tools/lldb/source/Initialization/SystemLifetimeManager.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandAlias.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectRegexCommand.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.h head/contrib/llvm/tools/lldb/source/Interpreter/CommandReturnObject.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionArgParser.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupArchitecture.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupBoolean.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFile.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFormat.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupOutputFile.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupPlatform.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupString.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupUInt64.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupUUID.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupVariable.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupWatchpoint.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValue.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArch.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArgs.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArray.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueBoolean.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueChar.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueDictionary.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueEnumeration.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpecLIst.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormat.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormatEntity.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueLanguage.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValuePathMappings.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueProperties.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueRegex.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueSInt64.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUInt64.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUUID.cpp head/contrib/llvm/tools/lldb/source/Interpreter/Options.cpp head/contrib/llvm/tools/lldb/source/Interpreter/Property.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Architecture/Arm/ArchitectureArm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Architecture/Arm/ArchitectureArm.h head/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp head/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulationStateARM.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.h head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CF.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSArray.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSError.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSException.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSString.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp head/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.h head/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp head/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIXLog.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ARMUtils.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryUnwind.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_s390x.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ThreadMemory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpTypes.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.h head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.h head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h head/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.h head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.h head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.h head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h head/contrib/llvm/tools/lldb/source/Symbol/ArmUnwindInfo.cpp head/contrib/llvm/tools/lldb/source/Symbol/Block.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangASTImporter.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCallbacks.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangUtil.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompactUnwindInfo.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompileUnit.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompilerType.cpp head/contrib/llvm/tools/lldb/source/Symbol/DWARFCallFrameInfo.cpp head/contrib/llvm/tools/lldb/source/Symbol/FuncUnwinders.cpp head/contrib/llvm/tools/lldb/source/Symbol/Function.cpp head/contrib/llvm/tools/lldb/source/Symbol/LineEntry.cpp head/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp head/contrib/llvm/tools/lldb/source/Symbol/Symbol.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolFile.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolVendor.cpp head/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp head/contrib/llvm/tools/lldb/source/Symbol/Type.cpp head/contrib/llvm/tools/lldb/source/Symbol/TypeList.cpp head/contrib/llvm/tools/lldb/source/Symbol/TypeMap.cpp head/contrib/llvm/tools/lldb/source/Symbol/TypeSystem.cpp head/contrib/llvm/tools/lldb/source/Symbol/UnwindPlan.cpp head/contrib/llvm/tools/lldb/source/Symbol/UnwindTable.cpp head/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp head/contrib/llvm/tools/lldb/source/Target/ABI.cpp head/contrib/llvm/tools/lldb/source/Target/CPPLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/ExecutionContext.cpp head/contrib/llvm/tools/lldb/source/Target/InstrumentationRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/JITLoader.cpp head/contrib/llvm/tools/lldb/source/Target/Language.cpp head/contrib/llvm/tools/lldb/source/Target/LanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/Memory.cpp head/contrib/llvm/tools/lldb/source/Target/MemoryHistory.cpp head/contrib/llvm/tools/lldb/source/Target/ModuleCache.cpp head/contrib/llvm/tools/lldb/source/Target/ObjCLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/OperatingSystem.cpp head/contrib/llvm/tools/lldb/source/Target/PathMappingList.cpp head/contrib/llvm/tools/lldb/source/Target/Platform.cpp head/contrib/llvm/tools/lldb/source/Target/Process.cpp head/contrib/llvm/tools/lldb/source/Target/ProcessInfo.cpp head/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp head/contrib/llvm/tools/lldb/source/Target/Queue.cpp head/contrib/llvm/tools/lldb/source/Target/QueueItem.cpp head/contrib/llvm/tools/lldb/source/Target/RegisterContext.cpp head/contrib/llvm/tools/lldb/source/Target/RegisterNumber.cpp head/contrib/llvm/tools/lldb/source/Target/SectionLoadHistory.cpp head/contrib/llvm/tools/lldb/source/Target/SectionLoadList.cpp head/contrib/llvm/tools/lldb/source/Target/StackFrame.cpp head/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp head/contrib/llvm/tools/lldb/source/Target/StackID.cpp head/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp head/contrib/llvm/tools/lldb/source/Target/SystemRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/Target.cpp head/contrib/llvm/tools/lldb/source/Target/TargetList.cpp head/contrib/llvm/tools/lldb/source/Target/Thread.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadList.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlan.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanBase.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallOnFunctionExit.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallUserExpression.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanPython.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanRunToAddress.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanShouldStopHere.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInstruction.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOut.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepThrough.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepUntil.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanTracer.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadSpec.cpp head/contrib/llvm/tools/lldb/source/Target/UnixSignals.cpp head/contrib/llvm/tools/lldb/source/Target/UnwindAssembly.cpp head/contrib/llvm/tools/lldb/source/Utility/ArchSpec.cpp head/contrib/llvm/tools/lldb/source/Utility/CompletionRequest.cpp head/contrib/llvm/tools/lldb/source/Utility/ConstString.cpp head/contrib/llvm/tools/lldb/source/Utility/DataBufferHeap.cpp head/contrib/llvm/tools/lldb/source/Utility/DataBufferLLVM.cpp head/contrib/llvm/tools/lldb/source/Utility/DataEncoder.cpp head/contrib/llvm/tools/lldb/source/Utility/DataExtractor.cpp head/contrib/llvm/tools/lldb/source/Utility/FileSpec.cpp head/contrib/llvm/tools/lldb/source/Utility/JSON.cpp head/contrib/llvm/tools/lldb/source/Utility/LLDBAssert.cpp head/contrib/llvm/tools/lldb/source/Utility/Log.cpp head/contrib/llvm/tools/lldb/source/Utility/Logging.cpp head/contrib/llvm/tools/lldb/source/Utility/SelectHelper.cpp head/contrib/llvm/tools/lldb/source/Utility/Status.cpp head/contrib/llvm/tools/lldb/source/Utility/Stream.cpp head/contrib/llvm/tools/lldb/source/Utility/StreamGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Utility/StreamString.cpp head/contrib/llvm/tools/lldb/source/Utility/StringExtractor.cpp head/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Utility/StringList.cpp head/contrib/llvm/tools/lldb/source/Utility/StructuredData.cpp head/contrib/llvm/tools/lldb/source/Utility/TildeExpressionResolver.cpp head/contrib/llvm/tools/lldb/source/Utility/Timer.cpp head/contrib/llvm/tools/lldb/source/Utility/UUID.cpp head/contrib/llvm/tools/lldb/source/Utility/VASprintf.cpp head/contrib/llvm/tools/lldb/source/Utility/VMRange.cpp head/contrib/llvm/tools/lldb/tools/driver/Driver.cpp head/contrib/llvm/tools/lldb/tools/driver/Driver.h head/contrib/llvm/tools/lldb/tools/driver/Platform.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDataTypes.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.h head/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/lldb-platform.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/lldb-server.cpp head/contrib/llvm/tools/lli/lli.cpp head/contrib/llvm/tools/llvm-ar/llvm-ar.cpp head/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp head/contrib/llvm/tools/llvm-cov/CodeCoverage.cpp head/contrib/llvm/tools/llvm-cov/CoverageExporter.h head/contrib/llvm/tools/llvm-cov/CoverageExporterJson.cpp head/contrib/llvm/tools/llvm-cov/CoverageExporterJson.h head/contrib/llvm/tools/llvm-cov/CoverageViewOptions.h head/contrib/llvm/tools/llvm-cov/SourceCoverageView.cpp head/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp head/contrib/llvm/tools/llvm-cov/TestingSupport.cpp head/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp head/contrib/llvm/tools/llvm-diff/DifferenceEngine.cpp head/contrib/llvm/tools/llvm-dwarfdump/Statistics.cpp head/contrib/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp head/contrib/llvm/tools/llvm-lto/llvm-lto.cpp head/contrib/llvm/tools/llvm-lto2/llvm-lto2.cpp head/contrib/llvm/tools/llvm-mc/llvm-mc.cpp head/contrib/llvm/tools/llvm-mca/CodeRegion.cpp head/contrib/llvm/tools/llvm-mca/CodeRegion.h head/contrib/llvm/tools/llvm-mca/PipelinePrinter.cpp head/contrib/llvm/tools/llvm-mca/PipelinePrinter.h head/contrib/llvm/tools/llvm-mca/llvm-mca.cpp head/contrib/llvm/tools/llvm-nm/llvm-nm.cpp head/contrib/llvm/tools/llvm-objcopy/ObjcopyOpts.td head/contrib/llvm/tools/llvm-objcopy/StripOpts.td head/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.cpp head/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.h head/contrib/llvm/tools/llvm-objdump/COFFDump.cpp head/contrib/llvm/tools/llvm-objdump/ELFDump.cpp head/contrib/llvm/tools/llvm-objdump/MachODump.cpp head/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp head/contrib/llvm/tools/llvm-objdump/llvm-objdump.h head/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp head/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.h head/contrib/llvm/tools/llvm-pdbutil/InputFile.cpp head/contrib/llvm/tools/llvm-pdbutil/InputFile.h head/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.h head/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.h head/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp head/contrib/llvm/tools/llvm-pdbutil/PdbYaml.h head/contrib/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyCompilandDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyCompilandDumper.h head/contrib/llvm/tools/llvm-pdbutil/PrettyEnumDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyFunctionDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/PrettyTypeDumper.h head/contrib/llvm/tools/llvm-pdbutil/PrettyTypedefDumper.cpp head/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp head/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.h head/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp head/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.h head/contrib/llvm/tools/llvm-profdata/llvm-profdata.cpp head/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp head/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.h head/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp head/contrib/llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h head/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp head/contrib/llvm/tools/llvm-readobj/MachODumper.cpp head/contrib/llvm/tools/llvm-readobj/ObjDumper.h head/contrib/llvm/tools/llvm-readobj/WasmDumper.cpp head/contrib/llvm/tools/llvm-readobj/llvm-readobj.cpp head/contrib/llvm/tools/llvm-readobj/llvm-readobj.h head/contrib/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp head/contrib/llvm/tools/llvm-stress/llvm-stress.cpp head/contrib/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp head/contrib/llvm/tools/llvm-xray/xray-account.cpp head/contrib/llvm/tools/llvm-xray/xray-converter.cpp head/contrib/llvm/tools/llvm-xray/xray-graph.cpp head/contrib/llvm/tools/llvm-xray/xray-stacks.cpp head/contrib/llvm/tools/opt/Debugify.cpp head/contrib/llvm/tools/opt/NewPMDriver.cpp head/contrib/llvm/tools/opt/opt.cpp head/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp head/contrib/llvm/utils/TableGen/CTagsEmitter.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h head/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp head/contrib/llvm/utils/TableGen/CodeGenInstruction.h head/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h head/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp head/contrib/llvm/utils/TableGen/CodeGenRegisters.h head/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp head/contrib/llvm/utils/TableGen/CodeGenSchedule.h head/contrib/llvm/utils/TableGen/CodeGenTarget.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcher.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcher.h head/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp head/contrib/llvm/utils/TableGen/FastISelEmitter.cpp head/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp head/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp head/contrib/llvm/utils/TableGen/InfoByHwMode.cpp head/contrib/llvm/utils/TableGen/InfoByHwMode.h head/contrib/llvm/utils/TableGen/InstrDocsEmitter.cpp head/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp head/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp head/contrib/llvm/utils/TableGen/PredicateExpander.cpp head/contrib/llvm/utils/TableGen/PredicateExpander.h head/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp head/contrib/llvm/utils/TableGen/SearchableTableEmitter.cpp head/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp head/contrib/llvm/utils/TableGen/TableGen.cpp head/contrib/llvm/utils/TableGen/TableGenBackends.h head/contrib/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp head/contrib/llvm/utils/TableGen/X86ModRMFilters.h head/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp head/etc/mtree/BSD.debug.dist head/etc/mtree/BSD.usr.dist head/lib/clang/freebsd_cc_version.h head/lib/clang/headers/Makefile head/lib/clang/include/clang/Basic/Version.inc head/lib/clang/include/clang/Config/config.h head/lib/clang/include/lld/Common/Version.inc head/lib/clang/include/llvm/Config/config.h head/lib/clang/include/llvm/Config/llvm-config.h head/lib/clang/include/llvm/Support/VCSRevision.h head/lib/clang/libclang/Makefile head/lib/clang/liblldb/Makefile head/lib/clang/libllvm/Makefile head/lib/clang/libllvmminimal/Makefile head/lib/libc++/Makefile head/lib/libclang_rt/Makefile.inc head/lib/libclang_rt/asan/Makefile head/lib/libclang_rt/asan_dynamic/Makefile head/lib/libclang_rt/msan/Makefile head/lib/libclang_rt/safestack/Makefile head/lib/libclang_rt/stats/Makefile head/lib/libclang_rt/tsan/Makefile head/lib/libclang_rt/ubsan_standalone/Makefile head/sys/sys/param.h head/tools/build/mk/OptionalObsoleteFiles.inc head/usr.bin/clang/lld/Makefile head/usr.bin/clang/lldb/Makefile head/usr.bin/clang/llvm-cov/Makefile head/usr.bin/clang/llvm-mca/Makefile head/usr.bin/clang/llvm-objcopy/Makefile head/usr.bin/clang/llvm-pdbutil/Makefile head/usr.bin/clang/llvm-tblgen/Makefile Directory Properties: head/ (props changed) head/MAINTAINERS (props changed) head/cddl/ (props changed) head/cddl/contrib/opensolaris/ (props changed) head/cddl/contrib/opensolaris/cmd/zfs/ (props changed) head/cddl/contrib/opensolaris/lib/libzfs/ (props changed) head/contrib/compiler-rt/ (props changed) head/contrib/compiler-rt/lib/fuzzer/ (props changed) head/contrib/elftoolchain/ (props changed) head/contrib/ipfilter/ (props changed) head/contrib/libarchive/ (props changed) head/contrib/libc++/ (props changed) head/contrib/llvm/ (props changed) head/contrib/llvm/tools/clang/ (props changed) head/contrib/llvm/tools/lld/ (props changed) head/contrib/llvm/tools/lldb/ (props changed) head/contrib/netbsd-tests/ (props changed) head/contrib/openpam/ (props changed) head/crypto/openssh/ (props changed) head/crypto/openssl/ (props changed) head/sys/cddl/contrib/opensolaris/ (props changed) head/sys/contrib/dev/acpica/ (props changed) head/sys/contrib/ipfilter/ (props changed) head/sys/contrib/xz-embedded/ (props changed) head/sys/dev/syscons/scterm-dumb.c (props changed) head/sys/dev/syscons/scterm-sc.c (props changed) head/sys/dev/syscons/sctermvar.h (props changed) head/usr.sbin/bhyve/pci_xhci.c (props changed) head/usr.sbin/bhyve/usb_mouse.c (props changed) Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Mon Mar 4 19:23:43 2019 (r344778) +++ head/ObsoleteFiles.inc Mon Mar 4 19:39:59 2019 (r344779) @@ -38,6 +38,158 @@ # xargs -n1 | sort | uniq -d; # done +# 20190304: new libc++ import which bumps version from 7.0.1 to 8.0.0. +OLD_FILES+=usr/include/c++/v1/experimental/dynarray +# 20190304: new clang import which bumps version from 7.0.1 to 8.0.0. +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/esan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/hwasan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/netbsd_syscall_hooks.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/scudo_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/tsan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/7.0.1/include/sanitizer +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_cmath.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_complex_builtins.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_device_functions.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_intrinsics.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_libdevice_declares.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_math_forward_declares.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/7.0.1/include/adxintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/altivec.h +OLD_FILES+=usr/lib/clang/7.0.1/include/ammintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/arm64intr.h +OLD_FILES+=usr/lib/clang/7.0.1/include/arm_acle.h +OLD_FILES+=usr/lib/clang/7.0.1/include/arm_fp16.h +OLD_FILES+=usr/lib/clang/7.0.1/include/arm_neon.h +OLD_FILES+=usr/lib/clang/7.0.1/include/armintr.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512bitalgintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512ifmaintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512ifmavlintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512pfintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vbmi2intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vbmiintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vbmivlintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vlbitalgintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vlcdintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vlvbmi2intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vlvnniintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vnniintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vpopcntdqintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vpopcntdqvlintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avxintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/cetintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/cldemoteintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/clflushoptintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/clwbintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/clzerointrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/cpuid.h +OLD_FILES+=usr/lib/clang/7.0.1/include/emmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/gfniintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/htmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/immintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/invpcidintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/lwpintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/7.0.1/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/7.0.1/include/mmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/module.modulemap +OLD_FILES+=usr/lib/clang/7.0.1/include/movdirintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/msa.h +OLD_FILES+=usr/lib/clang/7.0.1/include/mwaitxintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/opencl-c.h +OLD_FILES+=usr/lib/clang/7.0.1/include/pconfigintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/ptwriteintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/s390intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sgxintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/shaintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/smmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/vadefs.h +OLD_FILES+=usr/lib/clang/7.0.1/include/vaesintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/vecintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/vpclmulqdqintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/waitpkgintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/wbnoinvdintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/x86intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xopintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/7.0.1/include +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.msan-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.msan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.profile-armhf.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.stats-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.stats-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.stats_client-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.stats_client-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.tsan-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.ubsan_minimal-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_DIRS+=usr/lib/clang/7.0.1/lib/freebsd +OLD_DIRS+=usr/lib/clang/7.0.1/lib +OLD_DIRS+=usr/lib/clang/7.0.1 # 20190227: rename seq.h to seqc.h OLD_FILES+=usr/include/sys/seq.h # 20190222: libifconfig made INTERNALLIB Modified: head/UPDATING ============================================================================== --- head/UPDATING Mon Mar 4 19:23:43 2019 (r344778) +++ head/UPDATING Mon Mar 4 19:39:59 2019 (r344779) @@ -31,6 +31,12 @@ 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".) +20190304: + Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to + 8.0.0. Please see the 20141231 entry below for information about + prerequisites and upgrading, if you are not already using clang 3.5.0 + or higher. + 20190219: drm and drm2 have been removed from the tree. Please see https://wiki.freebsd.org/Graphics for the latest information on Modified: head/contrib/compiler-rt/LICENSE.TXT ============================================================================== --- head/contrib/compiler-rt/LICENSE.TXT Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/LICENSE.TXT Mon Mar 4 19:39:59 2019 (r344779) @@ -14,7 +14,7 @@ Full text of the relevant licenses is included below. University of Illinois/NCSA Open Source License -Copyright (c) 2009-2018 by the contributors listed in CREDITS.TXT +Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT All rights reserved. Modified: head/contrib/compiler-rt/include/sanitizer/allocator_interface.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/allocator_interface.h Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/include/sanitizer/allocator_interface.h Mon Mar 4 19:39:59 2019 (r344779) @@ -82,7 +82,6 @@ extern "C" { Currently available with ASan only. */ void __sanitizer_purge_allocator(void); - #ifdef __cplusplus } // extern "C" #endif Modified: head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Mon Mar 4 19:39:59 2019 (r344779) @@ -124,6 +124,12 @@ extern "C" { // 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, Modified: head/contrib/compiler-rt/include/sanitizer/hwasan_interface.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/hwasan_interface.h Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/include/sanitizer/hwasan_interface.h Mon Mar 4 19:39:59 2019 (r344779) @@ -19,6 +19,12 @@ #ifdef __cplusplus extern "C" { #endif + // Initialize shadow but not the rest of the runtime. + // Does not call libc unless there is an error. + // Can be called multiple times, or not at all (in which case shadow will + // be initialized in compiler-inserted __hwasan_init() call). + void __hwasan_shadow_init(void); + // This function may be optionally provided by user and should return // a string containing HWASan runtime options. See asan_flags.h for details. const char* __hwasan_default_options(void); @@ -26,6 +32,51 @@ extern "C" { void __hwasan_enable_allocator_tagging(void); void __hwasan_disable_allocator_tagging(void); + // Mark region of memory with the given tag. Both address and size need to be + // 16-byte aligned. + void __hwasan_tag_memory(const volatile void *p, unsigned char tag, + size_t size); + + /// Set pointer tag. Previous tag is lost. + void *__hwasan_tag_pointer(const volatile void *p, unsigned char tag); + + // Set memory tag from the current SP address to the given address to zero. + // This is meant to annotate longjmp and other non-local jumps. + // This function needs to know the (almost) exact destination frame address; + // clearing shadow for the entire thread stack like __asan_handle_no_return + // does would cause false reports. + void __hwasan_handle_longjmp(const void *sp_dst); + + // Libc hook for thread creation. Should be called in the child thread before + // any instrumented code. + void __hwasan_thread_enter(); + + // Libc hook for thread destruction. No instrumented code should run after + // this call. + void __hwasan_thread_exit(); + + // Print shadow and origin for the memory range to stderr in a human-readable + // format. + void __hwasan_print_shadow(const volatile void *x, size_t size); + + // Print one-line report about the memory usage of the current process. + void __hwasan_print_memory_usage(); + + int __sanitizer_posix_memalign(void **memptr, size_t alignment, size_t size); + void * __sanitizer_memalign(size_t alignment, size_t size); + void * __sanitizer_aligned_alloc(size_t alignment, size_t size); + void * __sanitizer___libc_memalign(size_t alignment, size_t size); + void * __sanitizer_valloc(size_t size); + void * __sanitizer_pvalloc(size_t size); + void __sanitizer_free(void *ptr); + void __sanitizer_cfree(void *ptr); + size_t __sanitizer_malloc_usable_size(const void *ptr); + struct mallinfo __sanitizer_mallinfo(); + int __sanitizer_mallopt(int cmd, int value); + void __sanitizer_malloc_stats(void); + void * __sanitizer_calloc(size_t nmemb, size_t size); + void * __sanitizer_realloc(void *ptr, size_t size); + void * __sanitizer_malloc(size_t size); #ifdef __cplusplus } // extern "C" #endif Modified: head/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h Mon Mar 4 19:39:59 2019 (r344779) @@ -21,8 +21,8 @@ // DO NOT EDIT! THIS FILE HAS BEEN GENERATED! // // Generated with: generate_netbsd_syscalls.awk -// Generated date: 2018-03-03 -// Generated from: syscalls.master,v 1.291 2018/01/06 16:41:23 kamil Exp +// Generated date: 2018-10-30 +// Generated from: syscalls.master,v 1.293 2018/07/31 13:00:13 rjs Exp // //===----------------------------------------------------------------------===// #ifndef SANITIZER_NETBSD_SYSCALL_HOOKS_H @@ -986,7 +986,15 @@ #define __sanitizer_syscall_post_fpathconf(res, fd, name) \ __sanitizer_syscall_post_impl_fpathconf(res, (long long)(fd), \ (long long)(name)) -/* syscall 193 has been skipped */ +#define __sanitizer_syscall_pre_getsockopt2(s, level, name, val, avalsize) \ + __sanitizer_syscall_pre_impl_getsockopt2( \ + (long long)(s), (long long)(level), (long long)(name), (long long)(val), \ + (long long)(avalsize)) +#define __sanitizer_syscall_post_getsockopt2(res, s, level, name, val, \ + avalsize) \ + __sanitizer_syscall_post_impl_getsockopt2( \ + res, (long long)(s), (long long)(level), (long long)(name), \ + (long long)(val), (long long)(avalsize)) #define __sanitizer_syscall_pre_getrlimit(which, rlp) \ __sanitizer_syscall_pre_impl_getrlimit((long long)(which), (long long)(rlp)) #define __sanitizer_syscall_post_getrlimit(res, which, rlp) \ @@ -1752,18 +1760,8 @@ __sanitizer_syscall_post_impl___sigaction_sigtramp( \ res, (long long)(signum), (long long)(nsa), (long long)(osa), \ (long long)(tramp), (long long)(vers)) -#define __sanitizer_syscall_pre_pmc_get_info(ctr, op, args) \ - __sanitizer_syscall_pre_impl_pmc_get_info((long long)(ctr), (long long)(op), \ - (long long)(args)) -#define __sanitizer_syscall_post_pmc_get_info(res, ctr, op, args) \ - __sanitizer_syscall_post_impl_pmc_get_info( \ - res, (long long)(ctr), (long long)(op), (long long)(args)) -#define __sanitizer_syscall_pre_pmc_control(ctr, op, args) \ - __sanitizer_syscall_pre_impl_pmc_control((long long)(ctr), (long long)(op), \ - (long long)(args)) -#define __sanitizer_syscall_post_pmc_control(res, ctr, op, args) \ - __sanitizer_syscall_post_impl_pmc_control( \ - res, (long long)(ctr), (long long)(op), (long long)(args)) +/* syscall 341 has been skipped */ +/* syscall 342 has been skipped */ #define __sanitizer_syscall_pre_rasctl(addr, len, op) \ __sanitizer_syscall_pre_impl_rasctl((long long)(addr), (long long)(len), \ (long long)(op)) @@ -3444,7 +3442,13 @@ void __sanitizer_syscall_post_impl_pathconf(long long void __sanitizer_syscall_pre_impl_fpathconf(long long fd, long long name); void __sanitizer_syscall_post_impl_fpathconf(long long res, long long fd, long long name); -/* syscall 193 has been skipped */ +void __sanitizer_syscall_pre_impl_getsockopt2(long long s, long long level, + long long name, long long val, + long long avalsize); +void __sanitizer_syscall_post_impl_getsockopt2(long long res, long long s, + long long level, long long name, + long long val, + long long avalsize); void __sanitizer_syscall_pre_impl_getrlimit(long long which, long long rlp); void __sanitizer_syscall_post_impl_getrlimit(long long res, long long which, long long rlp); @@ -4001,14 +4005,8 @@ void __sanitizer_syscall_pre_impl___sigaction_sigtramp void __sanitizer_syscall_post_impl___sigaction_sigtramp( long long res, long long signum, long long nsa, long long osa, long long tramp, long long vers); -void __sanitizer_syscall_pre_impl_pmc_get_info(long long ctr, long long op, - long long args); -void __sanitizer_syscall_post_impl_pmc_get_info(long long res, long long ctr, - long long op, long long args); -void __sanitizer_syscall_pre_impl_pmc_control(long long ctr, long long op, - long long args); -void __sanitizer_syscall_post_impl_pmc_control(long long res, long long ctr, - long long op, long long args); +/* syscall 341 has been skipped */ +/* syscall 342 has been skipped */ void __sanitizer_syscall_pre_impl_rasctl(long long addr, long long len, long long op); void __sanitizer_syscall_post_impl_rasctl(long long res, long long addr, Modified: head/contrib/compiler-rt/include/xray/xray_log_interface.h ============================================================================== --- head/contrib/compiler-rt/include/xray/xray_log_interface.h Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/include/xray/xray_log_interface.h Mon Mar 4 19:39:59 2019 (r344779) @@ -158,8 +158,8 @@ struct XRayLogImpl { /// The log initialization routine provided by the implementation, always /// provided with the following parameters: /// - /// - buffer size - /// - maximum number of buffers + /// - buffer size (unused) + /// - maximum number of buffers (unused) /// - a pointer to an argument struct that the implementation MUST handle /// - the size of the argument struct /// @@ -354,26 +354,5 @@ XRayLogFlushStatus __xray_log_process_buffers(void (*P XRayBuffer)); } // extern "C" - -namespace __xray { - -/// DEPRECATED: Use __xray_log_init_mode(...) instead, and provide flag -/// configuration strings to set the options instead. -/// Options used by the LLVM XRay FDR logging implementation. -struct FDRLoggingOptions { - bool ReportErrors = false; - int Fd = -1; -}; - -/// DEPRECATED: Use __xray_log_init_mode(...) instead, and provide flag -/// configuration strings to set the options instead. -/// Options used by the LLVM XRay Basic (Naive) logging implementation. -struct BasicLoggingOptions { - int DurationFilterMicros = 0; - size_t MaxStackDepth = 0; - size_t ThreadBufferSize = 0; -}; - -} // namespace __xray #endif // XRAY_XRAY_LOG_INTERFACE_H Modified: head/contrib/compiler-rt/lib/asan/asan_allocator.h ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_allocator.h Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_allocator.h Mon Mar 4 19:39:59 2019 (r344779) @@ -148,6 +148,7 @@ const uptr kAllocatorSpace = 0x600000000000ULL; const uptr kAllocatorSize = 0x40000000000ULL; // 4T. typedef DefaultSizeClassMap SizeClassMap; # endif +template struct AP64 { // Allocator64 parameters. Deliberately using a short name. static const uptr kSpaceBeg = kAllocatorSpace; static const uptr kSpaceSize = kAllocatorSize; @@ -155,37 +156,57 @@ struct AP64 { // Allocator64 parameters. Deliberately typedef __asan::SizeClassMap SizeClassMap; typedef AsanMapUnmapCallback MapUnmapCallback; static const uptr kFlags = 0; + using AddressSpaceView = AddressSpaceViewTy; }; -typedef SizeClassAllocator64 PrimaryAllocator; +template +using PrimaryAllocatorASVT = SizeClassAllocator64>; +using PrimaryAllocator = PrimaryAllocatorASVT; #else // Fallback to SizeClassAllocator32. static const uptr kRegionSizeLog = 20; static const uptr kNumRegions = SANITIZER_MMAP_RANGE_SIZE >> kRegionSizeLog; # if SANITIZER_WORDSIZE == 32 -typedef FlatByteMap ByteMap; +template +using ByteMapASVT = FlatByteMap; # elif SANITIZER_WORDSIZE == 64 -typedef TwoLevelByteMap<(kNumRegions >> 12), 1 << 12> ByteMap; +template +using ByteMapASVT = + TwoLevelByteMap<(kNumRegions >> 12), 1 << 12, AddressSpaceView>; # endif typedef CompactSizeClassMap SizeClassMap; +template struct AP32 { static const uptr kSpaceBeg = 0; static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE; static const uptr kMetadataSize = 16; typedef __asan::SizeClassMap SizeClassMap; static const uptr kRegionSizeLog = __asan::kRegionSizeLog; - typedef __asan::ByteMap ByteMap; + using AddressSpaceView = AddressSpaceViewTy; + using ByteMap = __asan::ByteMapASVT; typedef AsanMapUnmapCallback MapUnmapCallback; static const uptr kFlags = 0; }; -typedef SizeClassAllocator32 PrimaryAllocator; +template +using PrimaryAllocatorASVT = SizeClassAllocator32 >; +using PrimaryAllocator = PrimaryAllocatorASVT; #endif // SANITIZER_CAN_USE_ALLOCATOR64 static const uptr kNumberOfSizeClasses = SizeClassMap::kNumClasses; -typedef SizeClassAllocatorLocalCache AllocatorCache; -typedef LargeMmapAllocator SecondaryAllocator; -typedef CombinedAllocator AsanAllocator; +template +using AllocatorCacheASVT = + SizeClassAllocatorLocalCache>; +using AllocatorCache = AllocatorCacheASVT; +template +using SecondaryAllocatorASVT = + LargeMmapAllocator; +template +using AsanAllocatorASVT = + CombinedAllocator, + AllocatorCacheASVT, + SecondaryAllocatorASVT>; +using AsanAllocator = AsanAllocatorASVT; struct AsanThreadLocalMallocStorage { uptr quarantine_cache[16]; Modified: head/contrib/compiler-rt/lib/asan/asan_errors.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_errors.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_errors.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -125,9 +125,8 @@ void ErrorAllocTypeMismatch::Print() { Decorator d; Printf("%s", d.Error()); Report("ERROR: AddressSanitizer: %s (%s vs %s) on %p\n", - scariness.GetDescription(), - alloc_names[alloc_type], dealloc_names[dealloc_type], - addr_description.addr); + scariness.GetDescription(), alloc_names[alloc_type], + dealloc_names[dealloc_type], addr_description.Address()); Printf("%s", d.Default()); CHECK_GT(dealloc_stack->size, 0); scariness.Print(); Modified: head/contrib/compiler-rt/lib/asan/asan_errors.h ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_errors.h Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_errors.h Mon Mar 4 19:39:59 2019 (r344779) @@ -110,8 +110,8 @@ struct ErrorFreeNotMalloced : ErrorBase { struct ErrorAllocTypeMismatch : ErrorBase { const BufferedStackTrace *dealloc_stack; - HeapAddressDescription addr_description; AllocType alloc_type, dealloc_type; + AddressDescription addr_description; ErrorAllocTypeMismatch() = default; // (*) ErrorAllocTypeMismatch(u32 tid, BufferedStackTrace *stack, uptr addr, @@ -119,9 +119,8 @@ struct ErrorAllocTypeMismatch : ErrorBase { : ErrorBase(tid, 10, "alloc-dealloc-mismatch"), dealloc_stack(stack), alloc_type(alloc_type_), - dealloc_type(dealloc_type_) { - GetHeapAddressInformation(addr, 1, &addr_description); - }; + dealloc_type(dealloc_type_), + addr_description(addr, 1, false) {} void Print(); }; Modified: head/contrib/compiler-rt/lib/asan/asan_flags.inc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_flags.inc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_flags.inc Mon Mar 4 19:39:59 2019 (r344779) @@ -152,8 +152,6 @@ ASAN_FLAG(const char *, suppressions, "", "Suppression ASAN_FLAG(bool, halt_on_error, true, "Crash the program after printing the first error report " "(WARNING: USE AT YOUR OWN RISK!)") -ASAN_FLAG(bool, use_odr_indicator, false, - "Use special ODR indicator symbol for ODR violation detection") ASAN_FLAG(bool, allocator_frees_and_returns_null_on_realloc_zero, true, "realloc(p, 0) is equivalent to free(p) by default (Same as the " "POSIX standard). If set to false, realloc(p, 0) will return a " Modified: head/contrib/compiler-rt/lib/asan/asan_fuchsia.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_fuchsia.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_fuchsia.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -190,6 +190,13 @@ static void ThreadExitHook(void *hook, uptr os_id) { AsanThread::TSDDtor(per_thread); } +bool HandleDlopenInit() { + // Not supported on this platform. + static_assert(!SANITIZER_SUPPORTS_INIT_FOR_DLOPEN, + "Expected SANITIZER_SUPPORTS_INIT_FOR_DLOPEN to be false"); + return false; +} + } // namespace __asan // These are declared (in extern "C") by . Modified: head/contrib/compiler-rt/lib/asan/asan_globals.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_globals.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_globals.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -83,9 +83,11 @@ static bool IsAddressNearGlobal(uptr addr, const __asa } static void ReportGlobal(const Global &g, const char *prefix) { - Report("%s Global[%p]: beg=%p size=%zu/%zu name=%s module=%s dyn_init=%zu\n", - prefix, &g, (void *)g.beg, g.size, g.size_with_redzone, g.name, - g.module_name, g.has_dynamic_init); + Report( + "%s Global[%p]: beg=%p size=%zu/%zu name=%s module=%s dyn_init=%zu " + "odr_indicator=%p\n", + prefix, &g, (void *)g.beg, g.size, g.size_with_redzone, g.name, + g.module_name, g.has_dynamic_init, (void *)g.odr_indicator); if (g.location) { Report(" location (%p): name=%s[%p], %d %d\n", g.location, g.location->filename, g.location->filename, g.location->line_no, @@ -133,6 +135,9 @@ enum GlobalSymbolState { // this method in case compiler instruments global variables through their // local aliases. static void CheckODRViolationViaIndicator(const Global *g) { + // Instrumentation requests to skip ODR check. + if (g->odr_indicator == UINTPTR_MAX) + return; u8 *odr_indicator = reinterpret_cast(g->odr_indicator); if (*odr_indicator == UNREGISTERED) { *odr_indicator = REGISTERED; @@ -183,9 +188,7 @@ static void CheckODRViolationViaPoisoning(const Global // This routine chooses between two different methods of ODR violation // detection. static inline bool UseODRIndicator(const Global *g) { - // Use ODR indicator method iff use_odr_indicator flag is set and - // indicator symbol address is not 0. - return flags()->use_odr_indicator && g->odr_indicator > 0; + return g->odr_indicator > 0; } // Register a global variable. @@ -248,7 +251,7 @@ static void UnregisterGlobal(const Global *g) { // implementation. It might not be worth doing anyway. // Release ODR indicator. - if (UseODRIndicator(g)) { + if (UseODRIndicator(g) && g->odr_indicator != UINTPTR_MAX) { u8 *odr_indicator = reinterpret_cast(g->odr_indicator); *odr_indicator = UNREGISTERED; } Modified: head/contrib/compiler-rt/lib/asan/asan_globals_win.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_globals_win.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_globals_win.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -29,7 +29,7 @@ static void call_on_globals(void (*hook)(__asan_global __asan_global *end = &__asan_globals_end; uptr bytediff = (uptr)end - (uptr)start; if (bytediff % sizeof(__asan_global) != 0) { -#ifdef SANITIZER_DLL_THUNK +#if defined(SANITIZER_DLL_THUNK) || defined(SANITIZER_DYNAMIC_RUNTIME_THUNK) __debugbreak(); #else CHECK("corrupt asan global array"); Modified: head/contrib/compiler-rt/lib/asan/asan_internal.h ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_internal.h Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_internal.h Mon Mar 4 19:39:59 2019 (r344779) @@ -111,6 +111,11 @@ void *AsanDlSymNext(const char *sym); void ReserveShadowMemoryRange(uptr beg, uptr end, const char *name); +// Returns `true` iff most of ASan init process should be skipped due to the +// ASan library being loaded via `dlopen()`. Platforms may perform any +// `dlopen()` specific initialization inside this function. +bool HandleDlopenInit(); + // Add convenient macro for interface functions that may be represented as // weak hooks. #define ASAN_MALLOC_HOOK(ptr, size) \ Modified: head/contrib/compiler-rt/lib/asan/asan_linux.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_linux.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_linux.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -248,6 +248,13 @@ void *AsanDlSymNext(const char *sym) { return dlsym(RTLD_NEXT, sym); } +bool HandleDlopenInit() { + // Not supported on this platform. + static_assert(!SANITIZER_SUPPORTS_INIT_FOR_DLOPEN, + "Expected SANITIZER_SUPPORTS_INIT_FOR_DLOPEN to be false"); + return false; +} + } // namespace __asan #endif // SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_NETBSD || Modified: head/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -209,7 +209,7 @@ INTERCEPTOR(struct fake_mallinfo, mallinfo, void) { } INTERCEPTOR(int, mallopt, int cmd, int value) { - return -1; + return 0; } #endif // SANITIZER_INTERCEPT_MALLOPT_AND_MALLINFO Modified: head/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -61,4 +61,25 @@ using namespace __asan; #include "sanitizer_common/sanitizer_malloc_mac.inc" +namespace COMMON_MALLOC_NAMESPACE { +bool HandleDlopenInit() { + static_assert(SANITIZER_SUPPORTS_INIT_FOR_DLOPEN, + "Expected SANITIZER_SUPPORTS_INIT_FOR_DLOPEN to be true"); + // We have no reliable way of knowing how we are being loaded + // so make it a requirement on Apple platforms to set this environment + // variable to indicate that we want to perform initialization via + // dlopen(). + auto init_str = GetEnv("APPLE_ASAN_INIT_FOR_DLOPEN"); + if (!init_str) + return false; + if (internal_strncmp(init_str, "1", 1) != 0) + return false; + // When we are loaded via `dlopen()` path we still initialize the malloc zone + // so Symbolication clients (e.g. `leaks`) that load the ASan allocator can + // find an initialized malloc zone. + InitMallocZoneFields(); + return true; +} +} // namespace COMMON_MALLOC_NAMESPACE + #endif Modified: head/contrib/compiler-rt/lib/asan/asan_malloc_win.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_malloc_win.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_malloc_win.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -14,9 +14,18 @@ #include "sanitizer_common/sanitizer_platform.h" #if SANITIZER_WINDOWS -#define WIN32_LEAN_AND_MEAN -#include +// Intentionally not including windows.h here, to avoid the risk of +// pulling in conflicting declarations of these functions. (With mingw-w64, +// there's a risk of windows.h pulling in stdint.h.) +typedef int BOOL; +typedef void *HANDLE; +typedef const void *LPCVOID; +typedef void *LPVOID; +#define HEAP_ZERO_MEMORY 0x00000008 +#define HEAP_REALLOC_IN_PLACE_ONLY 0x00000010 + + #include "asan_allocator.h" #include "asan_interceptors.h" #include "asan_internal.h" @@ -125,13 +134,18 @@ void *_recalloc_base(void *p, size_t n, size_t elem_si } ALLOCATION_FUNCTION_ATTRIBUTE -size_t _msize(const void *ptr) { +size_t _msize(void *ptr) { GET_CURRENT_PC_BP_SP; (void)sp; return asan_malloc_usable_size(ptr, pc, bp); } ALLOCATION_FUNCTION_ATTRIBUTE +size_t _msize_base(void *ptr) { + return _msize(ptr); +} + +ALLOCATION_FUNCTION_ATTRIBUTE void *_expand(void *memblock, size_t size) { // _expand is used in realloc-like functions to resize the buffer if possible. // We don't want memory to stand still while resizing buffers, so return 0. @@ -226,6 +240,7 @@ void ReplaceSystemMalloc() { TryToOverrideFunction("_recalloc_base", (uptr)_recalloc); TryToOverrideFunction("_recalloc_crt", (uptr)_recalloc); TryToOverrideFunction("_msize", (uptr)_msize); + TryToOverrideFunction("_msize_base", (uptr)_msize); TryToOverrideFunction("_expand", (uptr)_expand); TryToOverrideFunction("_expand_base", (uptr)_expand); Modified: head/contrib/compiler-rt/lib/asan/asan_new_delete.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_new_delete.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_new_delete.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -26,7 +26,7 @@ // anyway by passing extra -export flags to the linker, which is exactly that // dllexport would normally do. We need to export them in order to make the // VS2015 dynamic CRT (MD) work. -#if SANITIZER_WINDOWS +#if SANITIZER_WINDOWS && defined(_MSC_VER) #define CXX_OPERATOR_ATTRIBUTE #define COMMENT_EXPORT(sym) __pragma(comment(linker, "/export:" sym)) #ifdef _WIN64 Modified: head/contrib/compiler-rt/lib/asan/asan_posix.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_posix.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_posix.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -40,6 +40,51 @@ 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. +// Reuse the Asan TSD API for compatibility with existing code +// with an alternative implementation. + +static void (*tsd_destructor)(void *tsd) = nullptr; + +struct tsd_key { + tsd_key() : key(nullptr) {} + ~tsd_key() { + CHECK(tsd_destructor); + if (key) + (*tsd_destructor)(key); + } + void *key; +}; + +static thread_local struct tsd_key key; + +void AsanTSDInit(void (*destructor)(void *tsd)) { + CHECK(!tsd_destructor); + tsd_destructor = destructor; +} + +void *AsanTSDGet() { + CHECK(tsd_destructor); + return key.key; +} + +void AsanTSDSet(void *tsd) { + CHECK(tsd_destructor); + CHECK(tsd); + CHECK(!key.key); + key.key = tsd; +} + +void PlatformTSDDtor(void *tsd) { + CHECK(tsd_destructor); + CHECK_EQ(key.key, tsd); + key.key = nullptr; + // Make sure that signal handler can not see a stale current thread pointer. + atomic_signal_fence(memory_order_seq_cst); + AsanThread::TSDDtor(tsd); +} +#else static pthread_key_t tsd_key; static bool tsd_key_inited = false; void AsanTSDInit(void (*destructor)(void *tsd)) { @@ -67,6 +112,7 @@ void PlatformTSDDtor(void *tsd) { } AsanThread::TSDDtor(tsd); } +#endif } // namespace __asan #endif // SANITIZER_POSIX Modified: head/contrib/compiler-rt/lib/asan/asan_report.h ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_report.h Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_report.h Mon Mar 4 19:39:59 2019 (r344779) @@ -12,6 +12,9 @@ // ASan-private header for error reporting functions. //===----------------------------------------------------------------------===// +#ifndef ASAN_REPORT_H +#define ASAN_REPORT_H + #include "asan_allocator.h" #include "asan_internal.h" #include "asan_thread.h" @@ -92,3 +95,4 @@ void ReportMacCfReallocUnknown(uptr addr, uptr zone_pt BufferedStackTrace *stack); } // namespace __asan +#endif // ASAN_REPORT_H Modified: head/contrib/compiler-rt/lib/asan/asan_rtems.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_rtems.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_rtems.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -213,6 +213,12 @@ static void HandleExit() { } } +bool HandleDlopenInit() { + // Not supported on this platform. + static_assert(!SANITIZER_SUPPORTS_INIT_FOR_DLOPEN, + "Expected SANITIZER_SUPPORTS_INIT_FOR_DLOPEN to be false"); + return false; +} } // namespace __asan // These are declared (in extern "C") by . Modified: head/contrib/compiler-rt/lib/asan/asan_rtl.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_rtl.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_rtl.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -383,6 +383,19 @@ void PrintAddressSpaceLayout() { kHighShadowBeg > kMidMemEnd); } +#if defined(__thumb__) && defined(__linux__) +#define START_BACKGROUND_THREAD_IN_ASAN_INTERNAL +#endif + +#ifndef START_BACKGROUND_THREAD_IN_ASAN_INTERNAL +static bool UNUSED __local_asan_dyninit = [] { + MaybeStartBackgroudThread(); + SetSoftRssLimitExceededCallback(AsanSoftRssLimitExceededCallback); + + return false; +}(); +#endif + static void AsanInitInternal() { if (LIKELY(asan_inited)) return; SanitizerToolName = "AddressSanitizer"; @@ -396,6 +409,14 @@ static void AsanInitInternal() { // initialization steps look at flags(). InitializeFlags(); + // Stop performing init at this point if we are being loaded via + // dlopen() and the platform supports it. + if (SANITIZER_SUPPORTS_INIT_FOR_DLOPEN && UNLIKELY(HandleDlopenInit())) { + asan_init_is_running = false; + VReport(1, "AddressSanitizer init is being performed for dlopen().\n"); + return; + } + AsanCheckIncompatibleRT(); AsanCheckDynamicRTPrereqs(); AvoidCVE_2016_2143(); @@ -420,6 +441,8 @@ static void AsanInitInternal() { __asan_option_detect_stack_use_after_return = flags()->detect_stack_use_after_return; + __sanitizer::InitializePlatformEarly(); + // Re-exec ourselves if we need to set additional env or command line args. MaybeReexec(); @@ -447,8 +470,10 @@ static void AsanInitInternal() { allocator_options.SetFrom(flags(), common_flags()); InitializeAllocator(allocator_options); +#ifdef START_BACKGROUND_THREAD_IN_ASAN_INTERNAL MaybeStartBackgroudThread(); SetSoftRssLimitExceededCallback(AsanSoftRssLimitExceededCallback); +#endif // On Linux AsanThread::ThreadStart() calls malloc() that's why asan_inited // should be set to 1 prior to initializing the threads. Modified: head/contrib/compiler-rt/lib/asan/asan_thread.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_thread.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_thread.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -223,9 +223,11 @@ void AsanThread::Init(const InitOptions *options) { atomic_store(&stack_switching_, false, memory_order_release); CHECK_EQ(this->stack_size(), 0U); SetThreadStackAndTls(options); - CHECK_GT(this->stack_size(), 0U); - CHECK(AddrIsInMem(stack_bottom_)); - CHECK(AddrIsInMem(stack_top_ - 1)); + if (stack_top_ != stack_bottom_) { + CHECK_GT(this->stack_size(), 0U); + CHECK(AddrIsInMem(stack_bottom_)); + CHECK(AddrIsInMem(stack_top_ - 1)); + } ClearShadowForThreadStackAndTLS(); fake_stack_ = nullptr; if (__asan_option_detect_stack_use_after_return) @@ -289,20 +291,23 @@ void AsanThread::SetThreadStackAndTls(const InitOption DCHECK_EQ(options, nullptr); uptr tls_size = 0; uptr stack_size = 0; - GetThreadStackAndTls(tid() == 0, const_cast(&stack_bottom_), - const_cast(&stack_size), &tls_begin_, &tls_size); + GetThreadStackAndTls(tid() == 0, &stack_bottom_, &stack_size, &tls_begin_, + &tls_size); stack_top_ = stack_bottom_ + stack_size; tls_end_ = tls_begin_ + tls_size; dtls_ = DTLS_Get(); - int local; - CHECK(AddrIsInStack((uptr)&local)); + if (stack_top_ != stack_bottom_) { + int local; + CHECK(AddrIsInStack((uptr)&local)); + } } #endif // !SANITIZER_FUCHSIA && !SANITIZER_RTEMS void AsanThread::ClearShadowForThreadStackAndTLS() { - PoisonShadow(stack_bottom_, stack_top_ - stack_bottom_, 0); + if (stack_top_ != stack_bottom_) + PoisonShadow(stack_bottom_, stack_top_ - stack_bottom_, 0); if (tls_begin_ != tls_end_) { uptr tls_begin_aligned = RoundDownTo(tls_begin_, SHADOW_GRANULARITY); uptr tls_end_aligned = RoundUpTo(tls_end_, SHADOW_GRANULARITY); @@ -314,6 +319,9 @@ void AsanThread::ClearShadowForThreadStackAndTLS() { bool AsanThread::GetStackFrameAccessByAddr(uptr addr, StackFrameAccess *access) { + if (stack_top_ == stack_bottom_) + return false; + uptr bottom = 0; if (AddrIsInStack(addr)) { bottom = stack_bottom(); Modified: head/contrib/compiler-rt/lib/asan/asan_win.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_win.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_win.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -159,6 +159,14 @@ INTERCEPTOR_WINAPI(DWORD, CreateThread, namespace __asan { void InitializePlatformInterceptors() { + // The interceptors were not designed to be removable, so we have to keep this + // module alive for the life of the process. + HMODULE pinned; + CHECK(GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | + GET_MODULE_HANDLE_EX_FLAG_PIN, + (LPCWSTR)&InitializePlatformInterceptors, + &pinned)); + ASAN_INTERCEPT_FUNC(CreateThread); ASAN_INTERCEPT_FUNC(SetUnhandledExceptionFilter); @@ -312,6 +320,13 @@ int __asan_set_seh_filter() { if (prev_seh_handler != &SEHHandler) default_seh_handler = prev_seh_handler; return 0; +} + +bool HandleDlopenInit() { + // Not supported on this platform. + static_assert(!SANITIZER_SUPPORTS_INIT_FOR_DLOPEN, + "Expected SANITIZER_SUPPORTS_INIT_FOR_DLOPEN to be false"); + return false; } #if !ASAN_DYNAMIC Modified: head/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc ============================================================================== --- head/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc Mon Mar 4 19:39:59 2019 (r344779) @@ -48,6 +48,7 @@ INTERCEPT_WRAP_W_WWW(_recalloc) INTERCEPT_WRAP_W_WWW(_recalloc_base) INTERCEPT_WRAP_W_W(_msize) +INTERCEPT_WRAP_W_W(_msize_base) INTERCEPT_WRAP_W_W(_expand) INTERCEPT_WRAP_W_W(_expand_dbg) Modified: head/contrib/compiler-rt/lib/builtins/arm/addsf3.S ============================================================================== --- head/contrib/compiler-rt/lib/builtins/arm/addsf3.S Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/builtins/arm/addsf3.S Mon Mar 4 19:39:59 2019 (r344779) @@ -178,7 +178,7 @@ LOCAL_LABEL(do_substraction): push {r0, r1, r2, r3} movs r0, r4 - bl __clzsi2 + bl SYMBOL_NAME(__clzsi2) movs r5, r0 pop {r0, r1, r2, r3} // shift = rep_clz(aSignificand) - rep_clz(implicitBit << 3); Modified: head/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S ============================================================================== --- head/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S Mon Mar 4 19:23:43 2019 (r344778) +++ head/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S Mon Mar 4 19:39:59 2019 (r344779) @@ -55,7 +55,7 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cdcmpeq) mov ip, #APSR_C msr APSR_nzcvq, ip #else - msr CPSR_f, #APSR_C + msr APSR_nzcvq, #APSR_C *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Mon Mar 4 19:51:00 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C71D11520B76; Mon, 4 Mar 2019 19:51:00 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6F9728463A; Mon, 4 Mar 2019 19:51:00 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 647AD8C23; Mon, 4 Mar 2019 19:51:00 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24Jp0Px025495; Mon, 4 Mar 2019 19:51:00 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24Jp0tA025494; Mon, 4 Mar 2019 19:51:00 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201903041951.x24Jp0tA025494@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Mon, 4 Mar 2019 19:51:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344780 - head/stand/common X-SVN-Group: head X-SVN-Commit-Author: sjg X-SVN-Commit-Paths: head/stand/common X-SVN-Commit-Revision: 344780 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6F9728463A X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.949,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 19:51:01 -0000 Author: sjg Date: Mon Mar 4 19:50:59 2019 New Revision: 344780 URL: https://svnweb.freebsd.org/changeset/base/344780 Log: Add -d flag to load command When doing load -t manifest -d increments debug level Reviewed by: stevek Modified: head/stand/common/module.c Modified: head/stand/common/module.c ============================================================================== --- head/stand/common/module.c Mon Mar 4 19:39:59 2019 (r344779) +++ head/stand/common/module.c Mon Mar 4 19:50:59 2019 (r344780) @@ -106,9 +106,9 @@ command_load(int argc, char *argv[]) char *typestr; char *prefix; char *skip; - int dofile, dokld, ch, error; + int dflag, dofile, dokld, ch, error; - dokld = dofile = 0; + dflag = dokld = dofile = 0; optind = 1; optreset = 1; typestr = NULL; @@ -117,8 +117,11 @@ command_load(int argc, char *argv[]) return (CMD_CRIT); } prefix = skip = NULL; - while ((ch = getopt(argc, argv, "kp:s:t:")) != -1) { + while ((ch = getopt(argc, argv, "dkp:s:t:")) != -1) { switch(ch) { + case 'd': + dflag++; + break; case 'k': dokld = 1; break; @@ -152,6 +155,8 @@ command_load(int argc, char *argv[]) #ifdef LOADER_VERIEXEC if (strncmp(typestr, "manifest", 8) == 0) { + if (dflag > 0) + ve_debug_set(dflag); return (load_manifest(argv[1], prefix, skip, NULL)); } #endif From owner-svn-src-head@freebsd.org Mon Mar 4 20:25:35 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 62FAA1521AEC; Mon, 4 Mar 2019 20:25:35 +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 ECC5586469; Mon, 4 Mar 2019 20:25:33 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id 0u9Rh4UtOEtQm0u9Th9WET; Mon, 04 Mar 2019 13:25:31 -0700 X-Authority-Analysis: v=2.3 cv=Vqpd/N+n c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=8nJEP1OIZ-IA:10 a=NTGMnVQrEZIA:10 a=xfDLHkLGAAAA:8 a=YxBL1-UpAAAA:8 a=pGLkceISAAAA:8 a=6I5d2MoRAAAA:8 a=yyVpRMpY5pa3p9pvJCcA:9 a=7NTLRdJfDz6b4EGh:21 a=_VKl0IChOzxr_xR7:21 a=wPNLvfGTeEIA:10 a=UJ0tAi3fqDAA:10 a=IfaqVvZgccqrtc8gcwf2:22 a=Ia-lj3WSrqcvXOmTRaiG:22 a=IjZwj45LgO3ly-622nXo:22 Received: from slippy.cwsent.com (slippy8 [10.2.2.6]) by spqr.komquats.com (Postfix) with ESMTPS id EA230763; Mon, 4 Mar 2019 12:25:28 -0800 (PST) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id x24KP93r021610; Mon, 4 Mar 2019 12:25:09 -0800 (PST) (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 x24KP9uU021607; Mon, 4 Mar 2019 12:25:09 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201903042025.x24KP9uU021607@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.8.0 04/21/2012 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: Edward Napierala cc: Cy Schubert , Konstantin Belousov , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver In-Reply-To: Message from Edward Napierala of "Mon, 04 Mar 2019 15:26:39 +0000." Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Date: Mon, 04 Mar 2019 12:25:09 -0800 X-CMAE-Envelope: MS4wfM0ozJjBytrUdds4XIyLoByzbh6FMxedOygaYolECCDVZoetcAerAHVpXWu5RVpIfQYeeCPH2zonLjOV5qsqVZ+1tahy8ynmj80UqCt8BYiUsITRhZfU JZqCV3b4s9jRLKLRbJnxjmSNptfnGU6UEDGwCuGDMqReftwF7UArlrbi3BU2OHZ5gdWTTQdTzqFS6GqJprvUe8bAcBXR7lj1w+nOKHEcEEsFNL//k5iqy8wY HSndpQwA2aNH89RrvBfgjhnmhWcDuD28J7WCwgkArN+nTKQdyEx+cHVO5I8bQHOxSKo0EKiLvntyq1okCOJ9pw== X-Rspamd-Queue-Id: ECC5586469 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-4.88 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MV_CASE(0.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; RCPT_COUNT_FIVE(0.00)[6]; REPLYTO_EQ_FROM(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: spqr.komquats.com]; NEURAL_HAM_SHORT(-0.97)[-0.973,0]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_SPF_NA(0.00)[]; RCVD_IN_DNSWL_LOW(-0.10)[12.134.59.64.list.dnswl.org : 127.0.5.1]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:6327, ipnet:64.59.128.0/20, country:CA]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-2.20)[ip: (-5.98), ipnet: 64.59.128.0/20(-2.76), asn: 6327(-2.17), country: CA(-0.09)]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.zen.spamhaus.org : 127.0.0.11] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 20:25:35 -0000 In message , Edward Napierala writes: > pon., 4 mar 2019 o 15:17 Cy Schubert napisaĹ‚(a): > > > > On March 4, 2019 6:30:21 AM PST, Konstantin Belousov > wrote: > > >On Mon, Mar 04, 2019 at 01:31:37PM +0000, Edward Napierala wrote: > > >> pon., 4 mar 2019 o 13:20 Konstantin Belousov > > >napisaĹ‚(a): > > >> > > + p = curthread; > > >> > Why do you name it 'p', which is typical for process, and not 'td', > > >you are > > >> > changing most of the code anyway. > > >> > > >> To keep the diff size smaller. You're right, this touches a lot of > > >stuff, > > >> but most of those added lines are temporary anyway - they will be > > >> removed later, when the td is pushed down even more. > > >But if you create code churn, doing it only half way is worse. > > > > > >> > > >> > Also I am curious why. It is certainly fine to remove td when it is > > >used > > >> > as a formal placeholder argument only. But when the first action in > > >the > > >> > function is evaluation of curthread() it becomes less obvious. > > >> > > >> Again, many/most of those are temporary. I'm trying to push td down > > >> in small steps, "layer by layer", so it's easy to review. > > >> > > >> > curthread() become very cheap on modern amd64, I am not so sure > > >about > > >> > older machines or non-x86 cases. > > >> > > >> The main reason is readability. Right now there's no easy way to > > >tell whether > > >> a function can be passed any td, or if it must be curthread. > > >I must admit that this is the weirdnest argument against 'td' that I > > >ever > > >heard. I saw more or less reasonable argumentation > > >- that using less arguments make one more register for argument passing > > > (amd64 has 6 input arg regs), > > >- that less arguments make smaller call code. > > >But trust me, in all cases where function can take td != curthread, it > > >is > > >either obvious or well-known for anybody who works with that code. > > > > > >Before you start doing a lot of small changes (AKA continous churn) > > >please formulate your goals and get some public feedback. My immediate > > >question that I want answered before you ever start touching the code, > > >is what you plan to do with > > > sys_syscall(struct thread *td, uap) > > > > Agreed on all points. At the very least this group of commits should be rev > iewed on phabricator. > > It has been, even though they are pretty much mechanical changes. > > > Can we back all these commits out until there is a proper review, please? > > The review from the NFS maintainer is not enough? > As it's NFS-only maybe though for anything substantial, like this, the more eyes the better. I'd agree with kib@ that we want to keep the amount of churn down, though it's understood that you want to separate the functional changes from the cosmetic ones. I tend to do the review and use git svn to separate the functional from the cosmetic changes, batching changes if I can. It's more work but IMO well worth it. -- 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-head@freebsd.org Mon Mar 4 22:01:10 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D07441524A0F; Mon, 4 Mar 2019 22:01:10 +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 74C278A8ED; Mon, 4 Mar 2019 22:01:10 +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 68352A3AD; Mon, 4 Mar 2019 22:01:10 +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 x24M1ASB096799; Mon, 4 Mar 2019 22:01:10 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24M1AAh096798; Mon, 4 Mar 2019 22:01:10 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201903042201.x24M1AAh096798@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 4 Mar 2019 22:01:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344782 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 344782 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 74C278A8ED X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.972,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 22:01:11 -0000 Author: mav Date: Mon Mar 4 22:01:09 2019 New Revision: 344782 URL: https://svnweb.freebsd.org/changeset/base/344782 Log: bridge: Fix spurious warnings about capabilities Mask off the bits we don't care about when checking that capabilities of the member interfaces have been disabled as intended. Submitted by: Ryan Moeller Reviewed by: kristof, mav MFC after: 1 week Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D18924 Modified: head/sys/net/if_bridge.c Modified: head/sys/net/if_bridge.c ============================================================================== --- head/sys/net/if_bridge.c Mon Mar 4 21:10:40 2019 (r344781) +++ head/sys/net/if_bridge.c Mon Mar 4 22:01:09 2019 (r344782) @@ -925,7 +925,7 @@ bridge_set_ifcap(struct bridge_softc *sc, struct bridg { struct ifnet *ifp = bif->bif_ifp; struct ifreq ifr; - int error; + int error, mask, stuck; BRIDGE_UNLOCK_ASSERT(sc); @@ -938,10 +938,12 @@ bridge_set_ifcap(struct bridge_softc *sc, struct bridg if_printf(sc->sc_ifp, "error setting capabilities on %s: %d\n", ifp->if_xname, error); - if ((ifp->if_capenable & ~set) != 0) + mask = BRIDGE_IFCAPS_MASK | BRIDGE_IFCAPS_STRIP; + stuck = ifp->if_capenable & mask & ~set; + if (stuck != 0) if_printf(sc->sc_ifp, "can't disable some capabilities on %s: 0x%x\n", - ifp->if_xname, ifp->if_capenable & ~set); + ifp->if_xname, stuck); } } From owner-svn-src-head@freebsd.org Mon Mar 4 22:04:22 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E1BF1524AC9; Mon, 4 Mar 2019 22:04:22 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0DE718ADCC; Mon, 4 Mar 2019 22:04:22 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F3443A432; Mon, 4 Mar 2019 22:04:21 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24M4L1W000174; Mon, 4 Mar 2019 22:04:21 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24M4LbZ000172; Mon, 4 Mar 2019 22:04:21 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201903042204.x24M4LbZ000172@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Mon, 4 Mar 2019 22:04:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344784 - in head/lib/libsecureboot: . tests X-SVN-Group: head X-SVN-Commit-Author: sjg X-SVN-Commit-Paths: in head/lib/libsecureboot: . tests X-SVN-Commit-Revision: 344784 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 0DE718ADCC X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.972,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 22:04:22 -0000 Author: sjg Date: Mon Mar 4 22:04:21 2019 New Revision: 344784 URL: https://svnweb.freebsd.org/changeset/base/344784 Log: Allow for reproducible build Use SOURCE_DATE_EPOCH for BUILD_UTC if MK_REPRODUCIBLE_BUILD is yes. Default SOURCE_DATE_EPOCH to 2019-01-01 Reviewed by: emaste Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org/D19464 Modified: head/lib/libsecureboot/Makefile.inc head/lib/libsecureboot/tests/Makefile Modified: head/lib/libsecureboot/Makefile.inc ============================================================================== --- head/lib/libsecureboot/Makefile.inc Mon Mar 4 22:03:09 2019 (r344783) +++ head/lib/libsecureboot/Makefile.inc Mon Mar 4 22:04:21 2019 (r344784) @@ -92,6 +92,19 @@ VE_HASH_KAT_STR?= vc_PEM XCFLAGS.vets+= -DVE_HASH_KAT_STR=${VE_HASH_KAT_STR} .endif +# this should be updated occassionally this is 2019-01-01Z +SOURCE_DATE_EPOCH?= 1546329600 +.if ${MK_REPRODUCIBLE_BUILD} == "yes" +BUILD_UTC?= ${SOURCE_DATE_EPOCH} +.endif +# BUILD_UTC provides a basis for the loader's notion of time +# By default we use the mtime of BUILD_UTC_FILE +.if empty(BUILD_UTC_FILE) +BUILD_UTC_FILE:= ${.PARSEDIR:tA}/${.PARSEFILE} +.endif +# you can of course set BUILD_UTC to any value you like +BUILD_UTC?= ${${STAT:Ustat} -f %m ${BUILD_UTC_FILE}:L:sh} + # Generate ta.h containing one or more PEM encoded trust anchors in ta_PEM. # # If we are doing self-tests, we define another arrary vc_PEM @@ -110,9 +123,7 @@ ta.h: ${.ALLTARGETS:M[tv]*pem:O:u} ( cat ${.ALLSRC:N*crl*:Mv*.pem} /dev/null | \ file2c -sx 'static const char vc_PEM[] = {' '};'; echo ) >> ${.TARGET} .endif -.if !empty(BUILD_UTC_FILE) - echo '#define BUILD_UTC ${${STAT:Ustat} -f %m ${BUILD_UTC_FILE}:L:sh}' >> ${.TARGET} ${.OODATE:MNOMETA_CMP} -.endif + echo '#define BUILD_UTC ${BUILD_UTC}' >> ${.TARGET} ${.OODATE:MNOMETA_CMP} # This header records our preference for signature extensions. vesigned.o vesigned.po vesigned.pico: vse.h Modified: head/lib/libsecureboot/tests/Makefile ============================================================================== --- head/lib/libsecureboot/tests/Makefile Mon Mar 4 22:03:09 2019 (r344783) +++ head/lib/libsecureboot/tests/Makefile Mon Mar 4 22:04:21 2019 (r344784) @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + PROG= tvo SRCS+= tvo.c From owner-svn-src-head@freebsd.org Mon Mar 4 23:13:08 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9648615269AF; Mon, 4 Mar 2019 23:13:08 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-QB1-obe.outbound.protection.outlook.com (mail-eopbgr660073.outbound.protection.outlook.com [40.107.66.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0A7908D888; Mon, 4 Mar 2019 23:13:07 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from QB1PR01MB3537.CANPRD01.PROD.OUTLOOK.COM (52.132.89.15) by QB1PR01MB3764.CANPRD01.PROD.OUTLOOK.COM (52.132.86.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1665.19; Mon, 4 Mar 2019 23:13:05 +0000 Received: from QB1PR01MB3537.CANPRD01.PROD.OUTLOOK.COM ([fe80::89d1:c1e9:cb2:3e66]) by QB1PR01MB3537.CANPRD01.PROD.OUTLOOK.COM ([fe80::89d1:c1e9:cb2:3e66%3]) with mapi id 15.20.1665.020; Mon, 4 Mar 2019 23:13:05 +0000 From: Rick Macklem To: Edward Napierala , Cy Schubert CC: Konstantin Belousov , src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver Thread-Topic: svn commit: r344758 - in head/sys/fs: nfs nfsserver Thread-Index: AQHU0sh37D5whbm3V0KPeIP62mR5+qX8FWOf Date: Mon, 4 Mar 2019 23:13:05 +0000 Message-ID: References: Message from Edward Napierala of "Mon, 04 Mar 2019 15:26:39 +0000." , <201903042025.x24KP9uU021607@slippy.cwsent.com> In-Reply-To: <201903042025.x24KP9uU021607@slippy.cwsent.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: aae4af59-f316-4841-4f74-08d6a0f6f56c x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(2017052603328)(7153060)(7193020); SRVR:QB1PR01MB3764; x-ms-traffictypediagnostic: QB1PR01MB3764: x-microsoft-exchange-diagnostics: =?Windows-1252?Q?1; QB1PR01MB3764; 23:f6VhlT+g76AXzThKtRqCe5GMt/77LdJtk+ROR?= =?Windows-1252?Q?1GjAaMLgpizO+CbJYqtWu3FE4DB+wCBx2ve3A/NleNG45+xH0w4bHA6q?= =?Windows-1252?Q?Pl9w+9LIUG+e/n3hD7FbeoyydmLnmM2gQzhdHAeJDfs08a9h1FB6wLoD?= =?Windows-1252?Q?seYLoOi7S35rcnLmoKxX7hzU97p55OR62RchgzwFagVsu1Isp8czU3S/?= =?Windows-1252?Q?TBx850auhfOBRJRxYkbuUWsNeACHTx4s4rBXNKnKypYYlLYGd4YXRKBV?= =?Windows-1252?Q?6TdMdHJBFTGWlJIhFmZhM7zgkYstTxJnBXRPa9CpVxFsmWzkbFbBni21?= =?Windows-1252?Q?GNb+cD+YStmSfK2gZOsv/WQXVYWNXyscIZOUXrDc0F6JehcWNCzarDfw?= =?Windows-1252?Q?nQaKSMh1niRVuQjKOgMQXQbmGE3cWegI14+9k+j89igMp1ClmGd7wKrY?= =?Windows-1252?Q?qM3mHoKd2ahZth997aIoJ8PncKDcL+zul39i633bkMZRshQdYqkYMviU?= =?Windows-1252?Q?EUSzev+nwRgf3pWLr9sJAyeuEzaawMz2v/F1MJErxUWjP/jlMOMh5y5H?= =?Windows-1252?Q?L6sCewC290nOO60N3+rBfjhSROLgrmwo9zpE+9I239AvlKu6mUS+H4IQ?= =?Windows-1252?Q?kIWeMQwfWVeTQDPT8kbAFX2ZoYGeJbJMZqzPkOwc6Kq/tfUkmcdn2mD9?= =?Windows-1252?Q?rHM2f3GQvKE2wnH0WgaiGbgvmeFGZpqfeidm9IcNc+9CNY2PY533PGqL?= =?Windows-1252?Q?oCoKUpvao4wIGd+gGZlYqjGNs0ZYO3zfzRxfxHKmSvXYIWgOCVmecJai?= =?Windows-1252?Q?B8/lUhrgfQYwx13X/6i/BFDTbe0g02sRy/W3Zal4KKOZiv3Y/fWmLpUr?= =?Windows-1252?Q?wYVliHeefY8LFmPUvMHsDqwbykokdV0p8vnGM7LSwrmDodWfAx20CNJh?= =?Windows-1252?Q?eZQzo/OS8XS/uDJw9ewfV+WqWPBLbtIvjpbkXe0/sPYRag2LSBlSrfDP?= =?Windows-1252?Q?MxWN5FQBBCggDPv76OmfPYSTt+//1TAZZpY61zBr1Uiwzw2i9VytaGIf?= =?Windows-1252?Q?SA26oR4cr7XAdcNxB60zpMrM2fMHcuC3VdX8/HGBujPR1kp/fgYYzwC/?= =?Windows-1252?Q?V8bpOTkPP4DlD2otrYOHFO+C2yTxSG3Stl4kLdDGGZyQ3mDhwrEzLULb?= =?Windows-1252?Q?j4i20J1DHBzVCWCEj6mYXu0BFzegXaK3BkMApQ7LUge34scwTsWw8b27?= =?Windows-1252?Q?ccOuKIvW8bVZ7rjsA=3D=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09669DB681 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(376002)(366004)(396003)(136003)(199004)(189003)(2906002)(26005)(33656002)(68736007)(25786009)(186003)(305945005)(105586002)(71200400001)(71190400001)(106356001)(4326008)(97736004)(256004)(14444005)(74482002)(6506007)(14454004)(478600001)(6246003)(54906003)(110136005)(86362001)(786003)(316002)(74316002)(53936002)(9686003)(99286004)(6436002)(7696005)(476003)(8676002)(81166006)(81156014)(76176011)(11346002)(55016002)(446003)(8936002)(102836004)(486006)(229853002)(5660300002); DIR:OUT; SFP:1101; SCL:1; SRVR:QB1PR01MB3764; H:QB1PR01MB3537.CANPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: uoguelph.ca does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: uldHPSN8/S4/OWptEY08+hT7qGCoZwCoPyV1v8JgFpBBF/dsoVcLILsDJ0LTBHTH5qlcw8zuZbR+/EBKW8Hjk0PjtzE4yJwa63y/v+cMRrqME5tyEwJsCIW+YCOnM9AwZwD5EUDY9LFKb92PFnBBMYqdDp2Gn4BqCJhX8vjF7y/lHkzIL8m5iBE09aTOJ3Akk5Ey7VpRfcjb24FYFD6cemV8RFKHGfMRYHOkSXEIDGLjWKlVsNm/7otk/Ik+mPvFCb2TCFGkcWNniNMBnwX3QAwXiW5mfkUEIP89KYsu//5QedL5a45bkPYT/0XjyqI/qn0ac3X7ZloywSlgNgp9fZsZj9xh/U34ag+tbbftKNXanlOr0NKjKsYRFR6lsrFXMpOaRdzZNMbz4NBKt4VF0Qq4JcQ8lDMJZszX3Qt0J7Y= Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-Network-Message-Id: aae4af59-f316-4841-4f74-08d6a0f6f56c X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Mar 2019 23:13:05.7997 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: QB1PR01MB3764 X-Rspamd-Queue-Id: 0A7908D888 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.90 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.90)[-0.896,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 23:13:08 -0000 Cy Schubert wrote: >Sent: Monday, March 4, 2019 3:25 PM >To: Edward Napierala >Cc: Cy Schubert; Konstantin Belousov; src-committers; svn-src-all@freebsd.= org; svn-src->head@freebsd.org >Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver > >In message , Edward Napierala writes: >> pon., 4 mar 2019 o 15:17 Cy Schubert napisa= =C5=82(a): >> > >> > On March 4, 2019 6:30:21 AM PST, Konstantin Belousov >> wrote: >> > >On Mon, Mar 04, 2019 at 01:31:37PM +0000, Edward Napierala wrote: >> > >> pon., 4 mar 2019 o 13:20 Konstantin Belousov >> > >napisa=C5=82(a): >> > >> > > + p =3D curthread; >> > >> > Why do you name it 'p', which is typical for process, and not 'td= ', >> > >you are >> > >> > changing most of the code anyway. >> > >> >> > >> To keep the diff size smaller. You're right, this touches a lot of >> > >stuff, >> > >> but most of those added lines are temporary anyway - they will be >> > >> removed later, when the td is pushed down even more. >> > >But if you create code churn, doing it only half way is worse. >> > > >> > >> >> > >> > Also I am curious why. It is certainly fine to remove td when it = is >> > >used >> > >> > as a formal placeholder argument only. But when the first action = in >> > >the >> > >> > function is evaluation of curthread() it becomes less obvious. >> > >> >> > >> Again, many/most of those are temporary. I'm trying to push td dow= n >> > >> in small steps, "layer by layer", so it's easy to review. >> > >> >> > >> > curthread() become very cheap on modern amd64, I am not so sure >> > >about >> > >> > older machines or non-x86 cases. >> > >> >> > >> The main reason is readability. Right now there's no easy way to >> > >tell whether >> > >> a function can be passed any td, or if it must be curthread. >> > >I must admit that this is the weirdnest argument against 'td' that I >> > >ever >> > >heard. I saw more or less reasonable argumentation >> > >- that using less arguments make one more register for argument passi= ng >> > > (amd64 has 6 input arg regs), >> > >- that less arguments make smaller call code. >> > >But trust me, in all cases where function can take td !=3D curthread,= it >> > >is >> > >either obvious or well-known for anybody who works with that code. >> > > >> > >Before you start doing a lot of small changes (AKA continous churn) >> > >please formulate your goals and get some public feedback. My immedia= te >> > >question that I want answered before you ever start touching the code= , >> > >is what you plan to do with >> > > sys_syscall(struct thread *td, uap) >> > >> > Agreed on all points. At the very least this group of commits should b= e rev >> iewed on phabricator. >> >> It has been, even though they are pretty much mechanical changes. >> >> > Can we back all these commits out until there is a proper review, plea= se? >> >> The review from the NFS maintainer is not enough? >> Btw, I've never listed myself as the NFS maintainer. I need to go look to s= ee if someone else put me in the maintainer's list. I understand that it is mostl= y authored by me, but I consider it FreeBSD project code once committed. (Others do co= mmits to it without my review and that is just fine with me.) >As it's NFS-only maybe though for anything substantial, like this, the >more eyes the better. > >I'd agree with kib@ that we want to keep the amount of churn down, >though it's understood that you want to separate the functional changes >from the cosmetic ones. I tend to do the review and use git svn to >separate the functional from the cosmetic changes, batching changes if >I can. It's more work but IMO well worth it. This is way too technical for me. I can barely look at a "diff" and make se= nse of it.;-) It sounds like there needs to be a discussion (on freebsd-fs@ perhaps?) of = the "big picture change" here. All I am going to do with the patches in phabricator is take a quick look t= o see if I can spot anything that will break the code. (I did mention that I didn't understand why he was doing this in one of the= reviews, but noted that it didn't break anything.) Oh, and the variable was called "p" because the code started in OpenBSD, wh= ere it was a proc ptr and I kept it portable by replacing "struct proc" with NFSPR= OC_T. (This portability is no longer a consideration.) I'll hold off on further phabricator reviews until the "big picture" change= gets discussed on some mailing list. (I don't see phabricator as the correct tool for "big= picture" discussions.) rick From owner-svn-src-head@freebsd.org Mon Mar 4 23:25:03 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 315CF1526DE2; Mon, 4 Mar 2019 23:25:03 +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 6E1598DFA2; Mon, 4 Mar 2019 23:25:02 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id 0wx7hbNCeJjE40wx9hqVxB; Mon, 04 Mar 2019 16:25:00 -0700 X-Authority-Analysis: v=2.3 cv=Lq7sNUVc c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=IkcTkHD0fZMA:10 a=NTGMnVQrEZIA:10 a=hF2rLc1pAAAA:8 a=6I5d2MoRAAAA:8 a=xfDLHkLGAAAA:8 a=YxBL1-UpAAAA:8 a=pGLkceISAAAA:8 a=CzpIpZ3pSPfZevzj2WcA:9 a=jMizxHKGjwZ4905R:21 a=Wtuxhp6T8zpQJ01D:21 a=QEXdDO2ut3YA:10 a=UJ0tAi3fqDAA:10 a=O9OM7dhJW_8Hj9EqqvKN:22 a=IjZwj45LgO3ly-622nXo:22 a=IfaqVvZgccqrtc8gcwf2:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from android-68f84e02b5988183.esitwifi.local (S0106788a207e2972.gv.shawcable.net [70.66.154.233]) by spqr.komquats.com (Postfix) with ESMTPSA id 7D835A29; Mon, 4 Mar 2019 15:24:56 -0800 (PST) Date: Mon, 04 Mar 2019 15:24:33 -0800 User-Agent: K-9 Mail for Android In-Reply-To: References: Message from Edward Napierala of "Mon, 04 Mar 2019 15:26:39 +0000." , <201903042025.x24KP9uU021607@slippy.cwsent.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver To: Rick Macklem ,Edward Napierala CC: Konstantin Belousov , src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" From: Cy Schubert Message-ID: <59652042-485B-41DE-9421-DC7AA6CC8D83@cschubert.com> X-CMAE-Envelope: MS4wfMHENnoIH/li/HreDyO29NB0Y2H6bLCX2MhSYMYdO5rRv1lV2z+sQjhkucxiw2jpwgWIcsrZwasoP4z7hUaRjiCugG2r/EyZqqa1VnDQmKE4hFkO83wg fvy3FsT3AVhYLJLYHHry0bG0V7d7FoyBpxVfyVJgql1+noHBrpfcPwfEiXswwG6CCnq2bMl57JEOjoUdixiuhInpVFyf+sPuzH+AARMfsLHqU+ECRGtZgmDM zQCYrKW4SHxmdbWK1O5tT3DkW+A/hyXw5mR6YarKSz+/ld2gY4Ts2qT29IwICF/CRxhAX5oF9nvV9OZ4WrWtZakhz33Adboc5KxcU1+4G3x/BcS9JR47jm+s Nm0p/pYX X-Rspamd-Queue-Id: 6E1598DFA2 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.97 / 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.97)[-0.965,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 23:25:03 -0000 On March 4, 2019 3:13:05 PM PST, Rick Macklem wrot= e: >Cy Schubert wrote: >>Sent: Monday, March 4, 2019 3:25 PM >>To: Edward Napierala >>Cc: Cy Schubert; Konstantin Belousov; src-committers; >svn-src-all@freebsd=2Eorg; svn-src->head@freebsd=2Eorg >>Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver >> >>In message >il=2Ecom> >, Edward Napierala writes: >>> pon=2E, 4 mar 2019 o 15:17 Cy Schubert >napisa=C3=85=E2=80=9A(a): >>> > >>> > On March 4, 2019 6:30:21 AM PST, Konstantin Belousov > >>> wrote: >>> > >On Mon, Mar 04, 2019 at 01:31:37PM +0000, Edward Napierala wrote: >>> > >> pon=2E, 4 mar 2019 o 13:20 Konstantin Belousov > >>> > >napisa=C3=85=E2=80=9A(a): >>> > >> > > + p =3D curthread; >>> > >> > Why do you name it 'p', which is typical for process, and not >'td', >>> > >you are >>> > >> > changing most of the code anyway=2E >>> > >> >>> > >> To keep the diff size smaller=2E You're right, this touches a >lot of >>> > >stuff, >>> > >> but most of those added lines are temporary anyway - they will >be >>> > >> removed later, when the td is pushed down even more=2E >>> > >But if you create code churn, doing it only half way is worse=2E >>> > > >>> > >> >>> > >> > Also I am curious why=2E It is certainly fine to remove td when >it is >>> > >used >>> > >> > as a formal placeholder argument only=2E But when the first >action in >>> > >the >>> > >> > function is evaluation of curthread() it becomes less >obvious=2E >>> > >> >>> > >> Again, many/most of those are temporary=2E I'm trying to push td >down >>> > >> in small steps, "layer by layer", so it's easy to review=2E >>> > >> >>> > >> > curthread() become very cheap on modern amd64, I am not so >sure >>> > >about >>> > >> > older machines or non-x86 cases=2E >>> > >> >>> > >> The main reason is readability=2E Right now there's no easy way >to >>> > >tell whether >>> > >> a function can be passed any td, or if it must be curthread=2E >>> > >I must admit that this is the weirdnest argument against 'td' >that I >>> > >ever >>> > >heard=2E I saw more or less reasonable argumentation >>> > >- that using less arguments make one more register for argument >passing >>> > > (amd64 has 6 input arg regs), >>> > >- that less arguments make smaller call code=2E >>> > >But trust me, in all cases where function can take td !=3D >curthread, it >>> > >is >>> > >either obvious or well-known for anybody who works with that >code=2E >>> > > >>> > >Before you start doing a lot of small changes (AKA continous >churn) >>> > >please formulate your goals and get some public feedback=2E My >immediate >>> > >question that I want answered before you ever start touching the >code, >>> > >is what you plan to do with >>> > > sys_syscall(struct thread *td, uap) >>> > >>> > Agreed on all points=2E At the very least this group of commits >should be rev >>> iewed on phabricator=2E >>> >>> It has been, even though they are pretty much mechanical changes=2E >>> >>> > Can we back all these commits out until there is a proper review, >please? >>> >>> The review from the NFS maintainer is not enough? >>> >Btw, I've never listed myself as the NFS maintainer=2E I need to go look >to see if >someone else put me in the maintainer's list=2E I understand that it is >mostly authored >by me, but I consider it FreeBSD project code once committed=2E (Others >do commits >to it without my review and that is just fine with me=2E) > >>As it's NFS-only maybe though for anything substantial, like this, the >>more eyes the better=2E >> >>I'd agree with kib@ that we want to keep the amount of churn down, >>though it's understood that you want to separate the functional >changes >>from the cosmetic ones=2E I tend to do the review and use git svn to >>separate the functional from the cosmetic changes, batching changes if >>I can=2E It's more work but IMO well worth it=2E >This is way too technical for me=2E I can barely look at a "diff" and >make sense of it=2E;-) > >It sounds like there needs to be a discussion (on freebsd-fs@ perhaps?) >of the >"big picture change" here=2E > >All I am going to do with the patches in phabricator is take a quick >look to see >if I can spot anything that will break the code=2E >(I did mention that I didn't understand why he was doing this in one of >the reviews, > but noted that it didn't break anything=2E) IMO the why is always more important than the how=2E If there is no reason= why then how is irrelevant=2E > >Oh, and the variable was called "p" because the code started in >OpenBSD, where it >was a proc ptr and I kept it portable by replacing "struct proc" with >NFSPROC_T=2E >(This portability is no longer a consideration=2E) > >I'll hold off on further phabricator reviews until the "big picture" >change gets discussed >on some mailing list=2E (I don't see phabricator as the correct tool for >"big picture" >discussions=2E) > >rick Hopefully my inline reply on this phone worked=2E If not I'll try again to= night=2E --=20 Pardon the typos and autocorrect, small keyboard in use=2E Cheers, Cy Schubert FreeBSD UNIX: Web: http://www=2EFreeBSD=2Eorg The need of the many outweighs the greed of the few=2E From owner-svn-src-head@freebsd.org Tue Mar 5 02:53:42 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3027C150C215; Tue, 5 Mar 2019 02:53:42 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CB65271E03; Tue, 5 Mar 2019 02:53:41 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BE800DBEB; Tue, 5 Mar 2019 02:53:41 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x252rf5e052130; Tue, 5 Mar 2019 02:53:41 GMT (envelope-from hrs@FreeBSD.org) Received: (from hrs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x252rfsM052129; Tue, 5 Mar 2019 02:53:41 GMT (envelope-from hrs@FreeBSD.org) Message-Id: <201903050253.x252rfsM052129@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hrs set sender to hrs@FreeBSD.org using -f From: Hiroki Sato Date: Tue, 5 Mar 2019 02:53:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344788 - head/usr.sbin/rtadvctl X-SVN-Group: head X-SVN-Commit-Author: hrs X-SVN-Commit-Paths: head/usr.sbin/rtadvctl X-SVN-Commit-Revision: 344788 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: CB65271E03 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.96)[-0.964,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 02:53:42 -0000 Author: hrs Date: Tue Mar 5 02:53:41 2019 New Revision: 344788 URL: https://svnweb.freebsd.org/changeset/base/344788 Log: Fix grammar. Submitted by: Massimiliano Stucchi Modified: head/usr.sbin/rtadvctl/rtadvctl.8 Modified: head/usr.sbin/rtadvctl/rtadvctl.8 ============================================================================== --- head/usr.sbin/rtadvctl/rtadvctl.8 Tue Mar 5 01:00:38 2019 (r344787) +++ head/usr.sbin/rtadvctl/rtadvctl.8 Tue Mar 5 02:53:41 2019 (r344788) @@ -40,7 +40,7 @@ daemon .Op Ar interface ... .Sh DESCRIPTION .Nm -is a utility that communicates with +is a utility that communicates with the .Xr rtadvd 8 daemon and displays information about Router Advertisement messages being sent on each interface. @@ -63,21 +63,22 @@ The subcommands are as follows: .Bl -tag -width indent .\" .It reload Op interfaces... -Specifies to reload the configuration file. If one or more -.Ar interface -is specified, configuration entries for the interfaces will be reloaded +Specifies to reload the configuration file. +If one or more +.Ar interfaces +are specified, configuration entries for the interfaces will be reloaded selectively. .It enable interfaces... -Specifies to mark the interface as enable and to try to reload the +Specifies to mark the interface as enabled and to tries to reload the configuration entry. This subcommand is useful for dynamically-added interfaces. .Pp The .Xr rtadvd 8 -daemon marks an interface as enable if the interface exists and the -configuration file has a valid entry for that when it is invoked. +daemon marks an interface as enabled if the interface exists and the +configuration file has a valid entry for it when it is invoked. .It disable interfaces... -Specifies to mark the interface as disable. +Specifies to mark the interface as disabled. .It shutdown Makes the .Xr rtadvd 8 @@ -88,7 +89,7 @@ daemon will send several RAs with zero lifetime to inv information on each interface. It will take at most nine seconds. .It show Op interfaces... -Displays information on Router Advertisement messages being sent +Displays information about the Router Advertisement messages being sent on each interface. .El .Sh SEE ALSO From owner-svn-src-head@freebsd.org Tue Mar 5 04:15:35 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 09DD815106BD; Tue, 5 Mar 2019 04:15:35 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9CA2D758E4; Tue, 5 Mar 2019 04:15:34 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C1DBEB13; Tue, 5 Mar 2019 04:15:34 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x254FYHb094979; Tue, 5 Mar 2019 04:15:34 GMT (envelope-from marcel@FreeBSD.org) Received: (from marcel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x254FYh3094978; Tue, 5 Mar 2019 04:15:34 GMT (envelope-from marcel@FreeBSD.org) Message-Id: <201903050415.x254FYh3094978@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marcel set sender to marcel@FreeBSD.org using -f From: Marcel Moolenaar Date: Tue, 5 Mar 2019 04:15:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344790 - head/sys/geom/part X-SVN-Group: head X-SVN-Commit-Author: marcel X-SVN-Commit-Paths: head/sys/geom/part X-SVN-Commit-Revision: 344790 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9CA2D758E4 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.953,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 04:15:35 -0000 Author: marcel Date: Tue Mar 5 04:15:34 2019 New Revision: 344790 URL: https://svnweb.freebsd.org/changeset/base/344790 Log: Revert revision 254095 In revision 254095, gpt_entries is not set to match the on-disk hdr_entries, but rather is computed based on available space. There are 2 problems with this: 1. The GPT backend respects hdr_entries and only reads and writes that number of partition entries. On top of that, CRC32 is computed over the table that has hdr_entries elements. When the common code works on what is possibly a larger number, the behaviour becomes inconsistent and problematic. In particular, it would be possible to add a new partition that on a reboot isn't there anymore. 2. The calculation of gpt_entries is based on flawed assumptions. The GPT specification does not dictate that sectors are layed out in a particular way that the available space can be determined by looking at LBAs. In practice, implementations do the same thing, because there's no reason to do it any other way. Still, GPT allows certain freedoms that can be exploited in some form or shape if the need arises. PR: 229977 MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D19438 Modified: head/sys/geom/part/g_part_gpt.c Modified: head/sys/geom/part/g_part_gpt.c ============================================================================== --- head/sys/geom/part/g_part_gpt.c Tue Mar 5 03:27:32 2019 (r344789) +++ head/sys/geom/part/g_part_gpt.c Tue Mar 5 04:15:34 2019 (r344790) @@ -990,10 +990,9 @@ g_part_gpt_read(struct g_part_table *basetable, struct basetable->gpt_first = table->hdr->hdr_lba_start; basetable->gpt_last = table->hdr->hdr_lba_end; - basetable->gpt_entries = (table->hdr->hdr_lba_start - 2) * - pp->sectorsize / table->hdr->hdr_entsz; + basetable->gpt_entries = table->hdr->hdr_entries; - for (index = table->hdr->hdr_entries - 1; index >= 0; index--) { + for (index = basetable->gpt_entries - 1; index >= 0; index--) { if (EQUUID(&tbl[index].ent_type, &gpt_uuid_unused)) continue; entry = (struct g_part_gpt_entry *)g_part_new_entry( From owner-svn-src-head@freebsd.org Tue Mar 5 04:16:51 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9C4C61510817; Tue, 5 Mar 2019 04:16:51 +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 4476F75A99; Tue, 5 Mar 2019 04:16:51 +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 39557EB22; Tue, 5 Mar 2019 04:16:51 +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 x254Gpw8095088; Tue, 5 Mar 2019 04:16:51 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x254Gpgt095087; Tue, 5 Mar 2019 04:16:51 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201903050416.x254Gpgt095087@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 5 Mar 2019 04:16:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344791 - head/contrib/binutils/opcodes X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/contrib/binutils/opcodes X-SVN-Commit-Revision: 344791 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4476F75A99 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.953,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 04:16:51 -0000 Author: jhibbits Date: Tue Mar 5 04:16:50 2019 New Revision: 344791 URL: https://svnweb.freebsd.org/changeset/base/344791 Log: Fix binutils compilation error with Clang 8 Summary: This change fixes the following compilation error when using clang 8 to cross compile base to powerpc64: ``` /usr/src/gnu/usr.bin/binutils/libopcodes/../../../../contrib/binutils/opcodes/ppc-dis.c:100:35: error: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Werror,-Wnull-pointer-arithmetic] info->private_data = (char *) 0 + dialect; ~~~~~~~~~~ ^ 1 error generated. *** [ppc-dis.o] Error code 1 make[6]: stopped in /usr/src/gnu/usr.bin/binutils/libopcodes 1 error ``` Test Plan: - buildworld for x86_64 (native) - buildworld for powerpc64 (cross) - buildworld for powerpc64 (native) Submitted by: alfredo.junior_eldorado.org.br Reviewed By: emaste, pfg, brooks Differential Revision: https://reviews.freebsd.org/D19235 Modified: head/contrib/binutils/opcodes/ppc-dis.c Modified: head/contrib/binutils/opcodes/ppc-dis.c ============================================================================== --- head/contrib/binutils/opcodes/ppc-dis.c Tue Mar 5 04:15:34 2019 (r344790) +++ head/contrib/binutils/opcodes/ppc-dis.c Tue Mar 5 04:16:50 2019 (r344791) @@ -20,6 +20,7 @@ along with this file; see the file COPYING. If not, w Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include +#include #include "sysdep.h" #include "dis-asm.h" #include "opcode/ppc.h" @@ -97,7 +98,7 @@ powerpc_dialect (struct disassemble_info *info) dialect |= PPC_OPCODE_64; } - info->private_data = (char *) 0 + dialect; + info->private_data = (void *)(uintptr_t)dialect; return dialect; } From owner-svn-src-head@freebsd.org Tue Mar 5 07:54:50 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B2B6151C22D; Tue, 5 Mar 2019 07:54:50 +0000 (UTC) (envelope-from mmacy@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 2D80585103; Tue, 5 Mar 2019 07:54:50 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id 0A37116F61; Tue, 5 Mar 2019 07:54:50 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-io1-f43.google.com with SMTP id p18so6246257ioh.5; Mon, 04 Mar 2019 23:54:50 -0800 (PST) X-Gm-Message-State: APjAAAW5j1Sn13/5dGYn6FsWtKhKDeqfcQMf/7zbr0EDjdBpKWEr01lT RxsSBQnKTeIYNzrLXM4yLdRzGfe3KDpyYLR7eNs= X-Google-Smtp-Source: APXvYqyTLZ4tO8pXBRoDewLleXLvuV+CESDxLQMiNybY8bQde2ZlShb8Ri7oImeZZ27fCYQ2sD7X9BOHdkniNb1U7bI= X-Received: by 2002:a6b:7d47:: with SMTP id d7mr11503046ioq.237.1551772489508; Mon, 04 Mar 2019 23:54:49 -0800 (PST) MIME-Version: 1.0 References: <201902232114.x1NLE0cH085345@repo.freebsd.org> In-Reply-To: From: Matthew Macy Date: Mon, 4 Mar 2019 23:54:38 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r344487 - in head/sys: conf gnu/gcov To: Alan Somers Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 2D80585103 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_SHORT(-0.97)[-0.970,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 07:54:50 -0000 World? It looks like there's a version mismatch between the kernel and modules. -M On Thu, Feb 28, 2019 at 7:11 PM Alan Somers wrote: > > On Thu, Feb 28, 2019 at 6:40 PM Matthew Macy wrote: > > > > to config add: > > options LINDEBUGFS > > options GCOV > > > > compile kernel with gcc (otherwise it will be a no-op) > > > > sysctl debug.gcov.enable=1 > > > > mount -t debugfs debugfs /sys/kernel/debug > > > > (or wherever) and the output artifacts will appear under gcov/ > build path> - you need to be root to see the artifacts > > > > gcov can then generate the results as it would normally from the > > profiling and the build time artifacts > > > > bug reports welcome > > > > > > -M > > Here's a bug report: I rebuilt the kernel but boot fails with this > error. Do I need to rebuild world too? > > Mounting local filesystems:kldload: fdescfs.ko: lost base for reltab > linker_load_file: /boot/kernel/fdescfs.ko - unsupported file type > mount: fdescfs: Operation not supported by device > Mounting /etc/fstab filesystems failed, will retry after root mount hold release > kldload: fdescfs.ko: lost base for reltab > linker_load_file: /boot/kernel/fdescfs.ko - unsupported file type > mount: fdescfs: Operation not supported by device > . > Mounting /etc/fstab filesystems failed, startup aborted From owner-svn-src-head@freebsd.org Tue Mar 5 13:21:08 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A1EA31529F8F; Tue, 5 Mar 2019 13:21:08 +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 121486A7C0; Tue, 5 Mar 2019 13:21:08 +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 02F601CA47; Tue, 5 Mar 2019 13:21:08 +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 x25DL7hV078264; Tue, 5 Mar 2019 13:21:07 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25DL7jR078263; Tue, 5 Mar 2019 13:21:07 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201903051321.x25DL7jR078263@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Tue, 5 Mar 2019 13:21:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344794 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 344794 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 121486A7C0 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.949,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 13:21:08 -0000 Author: kp Date: Tue Mar 5 13:21:07 2019 New Revision: 344794 URL: https://svnweb.freebsd.org/changeset/base/344794 Log: tun: VIMAGE fix for if_tun cloner The if_tun cloner is not virtualised, but if_clone_attach() does use a virtualised list of cloners. The result is that we can't find the if_tun cloner when we try to remove a renamed tun interface. Virtualise the cloner, and move the final cleanup into a sysuninit so that we're sure this happens after all of the vnet_sysuninits Note that we need unit numbers to be system-unique (rather than unique per vnet, as is done by if_clone_simple()). The unit number is used to create the corresponding /dev/tunX device node, and this node must match with the interface. Switch to if_clone_advanced() so that we have control over the unit numbers. Reproduction scenario: jail -c -n foo persist vnet jexec test ifconfig tun create jexec test ifconfig tun0 name wg0 jexec test ifconfig wg0 destroy PR: 235704 Reviewed by: bz, hrs, hselasky MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D19248 Modified: head/sys/net/if_tun.c Modified: head/sys/net/if_tun.c ============================================================================== --- head/sys/net/if_tun.c Tue Mar 5 08:45:07 2019 (r344793) +++ head/sys/net/if_tun.c Tue Mar 5 13:21:07 2019 (r344794) @@ -41,6 +41,7 @@ #include #include #include +#include #include #include @@ -105,6 +106,7 @@ struct tun_softc { * which is static after setup. */ static struct mtx tunmtx; +static eventhandler_tag tag; static const char tunname[] = "tun"; static MALLOC_DEFINE(M_TUN, tunname, "Tunnel Interface"); static int tundebug = 0; @@ -129,9 +131,12 @@ static int tunoutput(struct ifnet *, struct mbuf *, const struct sockaddr *, struct route *ro); static void tunstart(struct ifnet *); -static int tun_clone_create(struct if_clone *, int, caddr_t); -static void tun_clone_destroy(struct ifnet *); -static struct if_clone *tun_cloner; +static int tun_clone_match(struct if_clone *ifc, const char *name); +static int tun_clone_create(struct if_clone *, char *, size_t, caddr_t); +static int tun_clone_destroy(struct if_clone *, struct ifnet *); +static struct unrhdr *tun_unrhdr; +VNET_DEFINE_STATIC(struct if_clone *, tun_cloner); +#define V_tun_cloner VNET(tun_cloner) static d_open_t tunopen; static d_close_t tunclose; @@ -173,11 +178,35 @@ static struct cdevsw tun_cdevsw = { }; static int -tun_clone_create(struct if_clone *ifc, int unit, caddr_t params) +tun_clone_match(struct if_clone *ifc, const char *name) { + if (strncmp(tunname, name, 3) == 0 && + (name[3] == '\0' || isdigit(name[3]))) + return (1); + + return (0); +} + +static int +tun_clone_create(struct if_clone *ifc, char *name, size_t len, caddr_t params) +{ struct cdev *dev; - int i; + int err, unit, i; + err = ifc_name2unit(name, &unit); + if (err != 0) + return (err); + + if (unit != -1) { + /* If this unit number is still available that/s okay. */ + if (alloc_unr_specific(tun_unrhdr, unit) == -1) + return (EEXIST); + } else { + unit = alloc_unr(tun_unrhdr); + } + + snprintf(name, IFNAMSIZ, "%s%d", tunname, unit); + /* find any existing device, or allocate new unit number */ i = clone_create(&tunclones, &tun_cdevsw, &unit, &dev, 0); if (i) { @@ -252,6 +281,7 @@ tun_destroy(struct tun_softc *tp) dev = tp->tun_dev; bpfdetach(TUN2IFP(tp)); if_detach(TUN2IFP(tp)); + free_unr(tun_unrhdr, TUN2IFP(tp)->if_dunit); if_free(TUN2IFP(tp)); destroy_dev(dev); seldrain(&tp->tun_rsel); @@ -263,8 +293,8 @@ tun_destroy(struct tun_softc *tp) CURVNET_RESTORE(); } -static void -tun_clone_destroy(struct ifnet *ifp) +static int +tun_clone_destroy(struct if_clone *ifc, struct ifnet *ifp) { struct tun_softc *tp = ifp->if_softc; @@ -272,39 +302,64 @@ tun_clone_destroy(struct ifnet *ifp) TAILQ_REMOVE(&tunhead, tp, tun_list); mtx_unlock(&tunmtx); tun_destroy(tp); + + return (0); } +static void +vnet_tun_init(const void *unused __unused) +{ + V_tun_cloner = if_clone_advanced(tunname, 0, tun_clone_match, + tun_clone_create, tun_clone_destroy); +} +VNET_SYSINIT(vnet_tun_init, SI_SUB_PROTO_IF, SI_ORDER_ANY, + vnet_tun_init, NULL); + +static void +vnet_tun_uninit(const void *unused __unused) +{ + if_clone_detach(V_tun_cloner); +} +VNET_SYSUNINIT(vnet_tun_uninit, SI_SUB_PROTO_IF, SI_ORDER_ANY, + vnet_tun_uninit, NULL); + +static void +tun_uninit(const void *unused __unused) +{ + struct tun_softc *tp; + + EVENTHANDLER_DEREGISTER(dev_clone, tag); + drain_dev_clone_events(); + + mtx_lock(&tunmtx); + while ((tp = TAILQ_FIRST(&tunhead)) != NULL) { + TAILQ_REMOVE(&tunhead, tp, tun_list); + mtx_unlock(&tunmtx); + tun_destroy(tp); + mtx_lock(&tunmtx); + } + mtx_unlock(&tunmtx); + delete_unrhdr(tun_unrhdr); + clone_cleanup(&tunclones); + mtx_destroy(&tunmtx); +} +SYSUNINIT(tun_uninit, SI_SUB_PROTO_IF, SI_ORDER_ANY, tun_uninit, NULL); + static int tunmodevent(module_t mod, int type, void *data) { - static eventhandler_tag tag; - struct tun_softc *tp; switch (type) { case MOD_LOAD: mtx_init(&tunmtx, "tunmtx", NULL, MTX_DEF); clone_setup(&tunclones); + tun_unrhdr = new_unrhdr(0, IF_MAXUNIT, &tunmtx); tag = EVENTHANDLER_REGISTER(dev_clone, tunclone, 0, 1000); if (tag == NULL) return (ENOMEM); - tun_cloner = if_clone_simple(tunname, tun_clone_create, - tun_clone_destroy, 0); break; case MOD_UNLOAD: - if_clone_detach(tun_cloner); - EVENTHANDLER_DEREGISTER(dev_clone, tag); - drain_dev_clone_events(); - - mtx_lock(&tunmtx); - while ((tp = TAILQ_FIRST(&tunhead)) != NULL) { - TAILQ_REMOVE(&tunhead, tp, tun_list); - mtx_unlock(&tunmtx); - tun_destroy(tp); - mtx_lock(&tunmtx); - } - mtx_unlock(&tunmtx); - clone_cleanup(&tunclones); - mtx_destroy(&tunmtx); + /* See tun_uninit, so it's done after the vnet_sysuninit() */ break; default: return EOPNOTSUPP; From owner-svn-src-head@freebsd.org Tue Mar 5 14:47:16 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BAD3B150243F; Tue, 5 Mar 2019 14:47:16 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 59C646E141; Tue, 5 Mar 2019 14:47:16 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 47DA71D849; Tue, 5 Mar 2019 14:47:16 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x25ElG8b023741; Tue, 5 Mar 2019 14:47:16 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25ElGNR023740; Tue, 5 Mar 2019 14:47:16 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201903051447.x25ElGNR023740@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 5 Mar 2019 14:47:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344795 - head/lib/libusb X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/lib/libusb X-SVN-Commit-Revision: 344795 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 59C646E141 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.952,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 14:47:16 -0000 Author: hselasky Date: Tue Mar 5 14:47:15 2019 New Revision: 344795 URL: https://svnweb.freebsd.org/changeset/base/344795 Log: Fix typos in libusb. Found by: Denis Ahrens MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/lib/libusb/libusb10.c Modified: head/lib/libusb/libusb10.c ============================================================================== --- head/lib/libusb/libusb10.c Tue Mar 5 13:21:07 2019 (r344794) +++ head/lib/libusb/libusb10.c Tue Mar 5 14:47:15 2019 (r344795) @@ -539,7 +539,7 @@ libusb_open_device_with_vid_pid(libusb_context *ctx, u if (ctx == NULL) return (NULL); /* be NULL safe */ - DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_width_vid_pid enter"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_with_vid_pid enter"); if ((i = libusb_get_device_list(ctx, &devs)) < 0) return (NULL); @@ -563,7 +563,7 @@ libusb_open_device_with_vid_pid(libusb_context *ctx, u } libusb_free_device_list(devs, 1); - DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_width_vid_pid leave"); + DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_with_vid_pid leave"); return (pdev); } From owner-svn-src-head@freebsd.org Tue Mar 5 15:23:29 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 02C90150473A; Tue, 5 Mar 2019 15:23:29 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9BB416F6C7; Tue, 5 Mar 2019 15:23:28 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6FBE71DF19; Tue, 5 Mar 2019 15:23:28 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x25FNS4A044826; Tue, 5 Mar 2019 15:23:28 GMT (envelope-from netchild@FreeBSD.org) Received: (from netchild@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25FNSqQ044825; Tue, 5 Mar 2019 15:23:28 GMT (envelope-from netchild@FreeBSD.org) Message-Id: <201903051523.x25FNSqQ044825@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: netchild set sender to netchild@FreeBSD.org using -f From: Alexander Leidinger Date: Tue, 5 Mar 2019 15:23:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344796 - head/tools/kerneldoc/subsys X-SVN-Group: head X-SVN-Commit-Author: netchild X-SVN-Commit-Paths: head/tools/kerneldoc/subsys X-SVN-Commit-Revision: 344796 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9BB416F6C7 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.951,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 15:23:29 -0000 Author: netchild Date: Tue Mar 5 15:23:28 2019 New Revision: 344796 URL: https://svnweb.freebsd.org/changeset/base/344796 Log: remove the removed-from-source drm/drm2 parts Deleted: head/tools/kerneldoc/subsys/Doxyfile-dev_drm head/tools/kerneldoc/subsys/Doxyfile-dev_drm2 From owner-svn-src-head@freebsd.org Tue Mar 5 15:49:31 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE369150573B; Tue, 5 Mar 2019 15:49:31 +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 419277048B; Tue, 5 Mar 2019 15:49:31 +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 3640F1E296; Tue, 5 Mar 2019 15:49:31 +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 x25FnU5h055144; Tue, 5 Mar 2019 15:49:30 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25FnUrt055143; Tue, 5 Mar 2019 15:49:30 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201903051549.x25FnUrt055143@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Tue, 5 Mar 2019 15:49:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344797 - head/tests/sys/net X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/tests/sys/net X-SVN-Commit-Revision: 344797 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 419277048B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.974,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 15:49:31 -0000 Author: kp Date: Tue Mar 5 15:49:30 2019 New Revision: 344797 URL: https://svnweb.freebsd.org/changeset/base/344797 Log: tun tests: Test renaming and destroying a tun interface in a vnet jail There was a problem destroying renamed tun interfaces in vnet jails. This was fixed in r344794. Test the previously failing scenario. PR: 235704 MFC after: 2 weeks Added: head/tests/sys/net/if_tun_test.sh (contents, props changed) Modified: head/tests/sys/net/Makefile Modified: head/tests/sys/net/Makefile ============================================================================== --- head/tests/sys/net/Makefile Tue Mar 5 15:23:28 2019 (r344796) +++ head/tests/sys/net/Makefile Tue Mar 5 15:49:30 2019 (r344797) @@ -7,6 +7,7 @@ BINDIR= ${TESTSDIR} ATF_TESTS_SH+= if_lagg_test ATF_TESTS_SH+= if_clone_test +ATF_TESTS_SH+= if_tun_test # The tests are written to be run in parallel, but doing so leads to random # panics. I think it's because the kernel's list of interfaces isn't properly Added: head/tests/sys/net/if_tun_test.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/net/if_tun_test.sh Tue Mar 5 15:49:30 2019 (r344797) @@ -0,0 +1,30 @@ +# $FreeBSD$ + +. $(atf_get_srcdir)/../common/vnet.subr + +atf_test_case "235704" "cleanup" +235704_head() +{ + atf_set descr "Test PR #235704" + atf_set require.user root +} + +235704_body() +{ + vnet_init + vnet_mkjail one + + tun=$(jexec one ifconfig tun create) + jexec one ifconfig ${tun} name foo + atf_check -s exit:0 jexec one ifconfig foo destroy +} + +235704_cleanup() +{ + vnet_cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case "235704" +} From owner-svn-src-head@freebsd.org Tue Mar 5 16:18:07 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 797C31506BED; Tue, 5 Mar 2019 16:18:07 +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 19417718A4; Tue, 5 Mar 2019 16:18:07 +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 09E9B1E7C8; Tue, 5 Mar 2019 16:18:07 +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 x25GI6SS070639; Tue, 5 Mar 2019 16:18:06 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25GI6jH070638; Tue, 5 Mar 2019 16:18:06 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201903051618.x25GI6jH070638@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 5 Mar 2019 16:18:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344798 - head/lib/clang/libllvm X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/lib/clang/libllvm X-SVN-Commit-Revision: 344798 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 19417718A4 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.97)[-0.974,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 16:18:07 -0000 Author: emaste Date: Tue Mar 5 16:18:06 2019 New Revision: 344798 URL: https://svnweb.freebsd.org/changeset/base/344798 Log: libllvm: promote WithColor and xxhash to SRCS_MIN The armv6 build failed in CI due to missing symbols (from these two source files) in the bootstrap Clang. This affected only armv6 because other Clang-using archs are using LLD as the bootstrap linker, and thus include SRCS_MIW via LLD_BOOTSTRAP. Reported by: CI, via lwhsu Sponsored by: The FreeBSD Foundation Modified: head/lib/clang/libllvm/Makefile Modified: head/lib/clang/libllvm/Makefile ============================================================================== --- head/lib/clang/libllvm/Makefile Tue Mar 5 15:49:30 2019 (r344797) +++ head/lib/clang/libllvm/Makefile Tue Mar 5 16:18:06 2019 (r344798) @@ -866,7 +866,7 @@ SRCS_MIN+= Support/UnicodeCaseFold.cpp SRCS_MIN+= Support/Valgrind.cpp SRCS_MIN+= Support/VirtualFileSystem.cpp SRCS_MIN+= Support/VersionTuple.cpp -SRCS_MIW+= Support/WithColor.cpp +SRCS_MIN+= Support/WithColor.cpp SRCS_MIN+= Support/YAMLParser.cpp SRCS_MIN+= Support/YAMLTraits.cpp SRCS_MIN+= Support/circular_raw_ostream.cpp @@ -877,7 +877,7 @@ SRCS_MIN+= Support/regerror.c SRCS_MIN+= Support/regexec.c SRCS_MIN+= Support/regfree.c SRCS_MIN+= Support/regstrlcpy.c -SRCS_MIW+= Support/xxhash.cpp +SRCS_MIN+= Support/xxhash.cpp SRCS_MIN+= TableGen/Error.cpp SRCS_MIN+= TableGen/JSONBackend.cpp SRCS_MIN+= TableGen/Main.cpp From owner-svn-src-head@freebsd.org Tue Mar 5 16:28:36 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B500C1507315; Tue, 5 Mar 2019 16:28:36 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-lj1-f196.google.com (mail-lj1-f196.google.com [209.85.208.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4577872076; Tue, 5 Mar 2019 16:28:36 +0000 (UTC) (envelope-from asomers@gmail.com) Received: by mail-lj1-f196.google.com with SMTP id l5so8152042lje.1; Tue, 05 Mar 2019 08:28:36 -0800 (PST) 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=LENWOBxn852TKip04JPxMrIbGvZdL9hsQNreeqNgJNI=; b=P1MWb74+1jee4USYc1yHtoPocHZny5qRaxsiI08dyj6M/ebfVysPCoCISJLrHfasBH iWCoO4novT6baHO1ExrQt4Vx5GMpVSLG+bhyfs60PwWJQfE3QkW4FEphf43meobFLkoC +PYrkXg+yNfbapEB8izxaIqcexb1Cb6XE9CvuFTTs8FtAeT4At41T3I79LW7jGtENVpR U7dpaDAQ6UOLI3g6uKFemEXIT2V5ulUVqpYMd56T7FVm8dKJzg4zB3LDffuZXRDzX3VU 73/BdSs/NEuAoze3IpiJKDGbmzt/Y4hp/x33CzfDR+V3qxW5tWqmpHfFpF3My5VC10va wWyQ== X-Gm-Message-State: APjAAAUEv1zj/Z//s04mcAZ6TX4BvlMMo6MoKEe4RAlRCrv5iFP83y6q xqyQpWUM049NEZf8IoORN+pmhurRMmqc6JRJvLyf3Q== X-Google-Smtp-Source: APXvYqz4ATdxuLiRyEK8Wm/RPZvBeFcefqClsyeHhI67kTAvnzIfQO++MUUdLUjfZFrxf84kjI4uzslAZh9wxWTVJv8= X-Received: by 2002:a2e:9dda:: with SMTP id x26mr14247384ljj.53.1551803308777; Tue, 05 Mar 2019 08:28:28 -0800 (PST) MIME-Version: 1.0 References: <201902232114.x1NLE0cH085345@repo.freebsd.org> In-Reply-To: From: Alan Somers Date: Tue, 5 Mar 2019 09:28:17 -0700 Message-ID: Subject: Re: svn commit: r344487 - in head/sys: conf gnu/gcov To: Matthew Macy Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 4577872076 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.96 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.96)[-0.955,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 16:28:37 -0000 It's not a problem with the version; they're built from the same source. But is there a problem with the compiler? Can a GCC-built kernel work with Clang-built world? On Tue, Mar 5, 2019 at 12:54 AM Matthew Macy wrote: > > World? It looks like there's a version mismatch between the kernel and modules. > > -M > > On Thu, Feb 28, 2019 at 7:11 PM Alan Somers wrote: > > > > On Thu, Feb 28, 2019 at 6:40 PM Matthew Macy wrote: > > > > > > to config add: > > > options LINDEBUGFS > > > options GCOV > > > > > > compile kernel with gcc (otherwise it will be a no-op) > > > > > > sysctl debug.gcov.enable=1 > > > > > > mount -t debugfs debugfs /sys/kernel/debug > > > > > > (or wherever) and the output artifacts will appear under gcov/ > > build path> - you need to be root to see the artifacts > > > > > > gcov can then generate the results as it would normally from the > > > profiling and the build time artifacts > > > > > > bug reports welcome > > > > > > > > > -M > > > > Here's a bug report: I rebuilt the kernel but boot fails with this > > error. Do I need to rebuild world too? > > > > Mounting local filesystems:kldload: fdescfs.ko: lost base for reltab > > linker_load_file: /boot/kernel/fdescfs.ko - unsupported file type > > mount: fdescfs: Operation not supported by device > > Mounting /etc/fstab filesystems failed, will retry after root mount hold release > > kldload: fdescfs.ko: lost base for reltab > > linker_load_file: /boot/kernel/fdescfs.ko - unsupported file type > > mount: fdescfs: Operation not supported by device > > . > > Mounting /etc/fstab filesystems failed, startup aborted From owner-svn-src-head@freebsd.org Tue Mar 5 16:48:07 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 057B61508398; Tue, 5 Mar 2019 16:48:07 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-it1-f173.google.com (mail-it1-f173.google.com [209.85.166.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9749D72FA3; Tue, 5 Mar 2019 16:48:06 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-it1-f173.google.com with SMTP id v2so5046081ith.3; Tue, 05 Mar 2019 08:48:06 -0800 (PST) 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=TkpnsEbHqmh0wcslVdsh8A7mEcpxKLIlW8mVE1KmRm0=; b=j6DRuKTOsY6Gh0opFS/AVUFzGnQYcK6RQOWRwO4YYslX1pNK7Rox7xUdIIYGoz1u2Z +2jH+KSRDg8UomrU9phXsrszkW9r4Zp5mSrOtfcf0IrXOisTtRB8UfxTmCExT9jC3sXk dBtmQA3p21XnqM+wiUo1aRok/9Se/4Ronvaq28Awdtx6+R5H/FAtyWhkGBnYv+y1owBY dZSAyltvWIMBGAn4aS3lAfL7i7oJ7bqs3CiXTf47/N/KVry5G8jd+rGC5tMSsYdd+mic XNGdTM9xhWI0MsN1nXXMTGZiPF91SIMbRHsIxOq8tRwWw5oWHyC/hYHKjerd7NmSA0Ks liHw== X-Gm-Message-State: APjAAAXEHe3aycgvrIXAAcobfeoxKlkECt/epZL5Ix2sDxqRvQ3lhYA6 4+A9iWo2WiCBM3vJJSQ57b5HfkAb X-Google-Smtp-Source: APXvYqyya4dXV4TObZ3QyoldW/zb37fZ0VP88ZHwk17yPPbtjyfev+2G4aeIOj9a0JiGobuerO/dIg== X-Received: by 2002:a24:3655:: with SMTP id l82mr3268478itl.107.1551804477862; Tue, 05 Mar 2019 08:47:57 -0800 (PST) Received: from mail-it1-f171.google.com (mail-it1-f171.google.com. [209.85.166.171]) by smtp.gmail.com with ESMTPSA id l2sm3841166ioj.55.2019.03.05.08.47.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Mar 2019 08:47:57 -0800 (PST) Received: by mail-it1-f171.google.com with SMTP id z131so5031944itf.5; Tue, 05 Mar 2019 08:47:57 -0800 (PST) X-Received: by 2002:a24:55c9:: with SMTP id e192mr2953861itb.166.1551804477343; Tue, 05 Mar 2019 08:47:57 -0800 (PST) MIME-Version: 1.0 References: <201902232114.x1NLE0cH085345@repo.freebsd.org> In-Reply-To: Reply-To: cem@freebsd.org From: Conrad Meyer Date: Tue, 5 Mar 2019 08:47:46 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r344487 - in head/sys: conf gnu/gcov To: Alan Somers Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 9749D72FA3 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 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.98)[-0.981,0]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 16:48:07 -0000 Hi Alan, On Tue, Mar 5, 2019 at 8:28 AM Alan Somers wrote: > It's not a problem with the version; they're built from the same > source. But is there a problem with the compiler? Can a GCC-built > kernel work with Clang-built world? Sure; I use this configuration all the time (at least, without gcov). Best, Conrad From owner-svn-src-head@freebsd.org Tue Mar 5 19:12:52 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BD0D1150E6D4; Tue, 5 Mar 2019 19:12:52 +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 6464083C8E; Tue, 5 Mar 2019 19:12:52 +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 56A73206CA; Tue, 5 Mar 2019 19:12:52 +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 x25JCqrG068142; Tue, 5 Mar 2019 19:12:52 GMT (envelope-from erj@FreeBSD.org) Received: (from erj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25JCqOj068140; Tue, 5 Mar 2019 19:12:52 GMT (envelope-from erj@FreeBSD.org) Message-Id: <201903051912.x25JCqOj068140@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: erj set sender to erj@FreeBSD.org using -f From: Eric Joyner Date: Tue, 5 Mar 2019 19:12:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344817 - in head/sys: dev/e1000 net X-SVN-Group: head X-SVN-Commit-Author: erj X-SVN-Commit-Paths: in head/sys: dev/e1000 net X-SVN-Commit-Revision: 344817 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6464083C8E X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.96)[-0.963,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 19:12:53 -0000 Author: erj Date: Tue Mar 5 19:12:51 2019 New Revision: 344817 URL: https://svnweb.freebsd.org/changeset/base/344817 Log: Remove references to CONTIGMALLOC_WORKS in iflib and em From Jake: "The iflib_fl_setup() function tries to pick various buffer sizes based on the max_frame_size value defined by the parent driver. However, this code was wrapped under CONTIGMALLOC_WORKS, which was never actually defined anywhere. This same code pattern was used in if_em.c, likely trying to match what iflib uses. Since CONTIGMALLOC_WORKS is not defined, remove this dead code from iflib_fl_setup and if_em.c Given that various iflib drivers appear to be using a similar calculation, it might be worth making this buffer size a value that the driver can peek at in the future." Submitted by: Jacob Keller Reviewed by: shurd@ MFC after: 1 week Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D19199 Modified: head/sys/dev/e1000/if_em.c head/sys/net/iflib.c Modified: head/sys/dev/e1000/if_em.c ============================================================================== --- head/sys/dev/e1000/if_em.c Tue Mar 5 19:08:37 2019 (r344816) +++ head/sys/dev/e1000/if_em.c Tue Mar 5 19:12:51 2019 (r344817) @@ -1276,15 +1276,8 @@ em_if_init(if_ctx_t ctx) */ if (adapter->hw.mac.max_frame_size <= 2048) adapter->rx_mbuf_sz = MCLBYTES; -#ifndef CONTIGMALLOC_WORKS else adapter->rx_mbuf_sz = MJUMPAGESIZE; -#else - else if (adapter->hw.mac.max_frame_size <= 4096) - adapter->rx_mbuf_sz = MJUMPAGESIZE; - else - adapter->rx_mbuf_sz = MJUM9BYTES; -#endif em_initialize_receive_unit(ctx); /* Use real VLAN Filter support? */ Modified: head/sys/net/iflib.c ============================================================================== --- head/sys/net/iflib.c Tue Mar 5 19:08:37 2019 (r344816) +++ head/sys/net/iflib.c Tue Mar 5 19:12:51 2019 (r344817) @@ -2187,17 +2187,8 @@ iflib_fl_setup(iflib_fl_t fl) */ if (sctx->isc_max_frame_size <= 2048) fl->ifl_buf_size = MCLBYTES; -#ifndef CONTIGMALLOC_WORKS else fl->ifl_buf_size = MJUMPAGESIZE; -#else - else if (sctx->isc_max_frame_size <= 4096) - fl->ifl_buf_size = MJUMPAGESIZE; - else if (sctx->isc_max_frame_size <= 9216) - fl->ifl_buf_size = MJUM9BYTES; - else - fl->ifl_buf_size = MJUM16BYTES; -#endif if (fl->ifl_buf_size > ctx->ifc_max_fl_buf_size) ctx->ifc_max_fl_buf_size = fl->ifl_buf_size; fl->ifl_cltype = m_gettype(fl->ifl_buf_size); From owner-svn-src-head@freebsd.org Tue Mar 5 19:17:25 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6A6D3150E81C; Tue, 5 Mar 2019 19:17: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 0CDCC83EAF; Tue, 5 Mar 2019 19:17: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 F317F206EC; Tue, 5 Mar 2019 19:17:24 +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 x25JHOWN068420; Tue, 5 Mar 2019 19:17:24 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25JHOuV068419; Tue, 5 Mar 2019 19:17:24 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201903051917.x25JHOuV068419@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 5 Mar 2019 19:17:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344818 - head/usr.sbin/freebsd-update X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/usr.sbin/freebsd-update X-SVN-Commit-Revision: 344818 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 0CDCC83EAF X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 19:17:25 -0000 Author: emaste Date: Tue Mar 5 19:17:24 2019 New Revision: 344818 URL: https://svnweb.freebsd.org/changeset/base/344818 Log: freebsd-update.8: update example to contemporary versions PR: 235761 Reported by: linimon MFC after: 1 week Modified: head/usr.sbin/freebsd-update/freebsd-update.8 Modified: head/usr.sbin/freebsd-update/freebsd-update.8 ============================================================================== --- head/usr.sbin/freebsd-update/freebsd-update.8 Tue Mar 5 19:12:51 2019 (r344817) +++ head/usr.sbin/freebsd-update/freebsd-update.8 Tue Mar 5 19:17:24 2019 (r344818) @@ -59,13 +59,13 @@ by the .Fx Release Engineering Team, e.g., .Fx -10.3-RELEASE and +11.2-RELEASE and .Fx -11.0-RELEASE, but not +12.0-RELEASE, but not .Fx -10.3-STABLE or +11.2-STABLE or .Fx -12-CURRENT. +13.0-CURRENT. .Sh OPTIONS The following options are supported: .Bl -tag -width "-r newrelease" From owner-svn-src-head@freebsd.org Tue Mar 5 19:45:39 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 288C6150FCB0; Tue, 5 Mar 2019 19:45:39 +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 C15038598A; Tue, 5 Mar 2019 19:45:38 +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 B694B20C01; Tue, 5 Mar 2019 19:45:38 +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 x25JjcY8084798; Tue, 5 Mar 2019 19:45:38 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25Jjc8t084792; Tue, 5 Mar 2019 19:45:38 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201903051945.x25Jjc8t084792@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 5 Mar 2019 19:45:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344823 - in head: sys/kern sys/sys usr.bin/procstat X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head: sys/kern sys/sys usr.bin/procstat X-SVN-Commit-Revision: 344823 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: C15038598A X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 19:45:39 -0000 Author: markj Date: Tue Mar 5 19:45:37 2019 New Revision: 344823 URL: https://svnweb.freebsd.org/changeset/base/344823 Log: Show wiring state of map entries in procstat -v. Note that only entries wired by userspace are shown as such. In particular, entries transiently wired by sysctl_wire_old_buffer() are not flagged as wired in procstat -v output. Reviewed by: kib (previous version) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D19461 Modified: head/sys/kern/kern_proc.c head/sys/sys/user.h head/usr.bin/procstat/procstat.1 head/usr.bin/procstat/procstat_vm.c Modified: head/sys/kern/kern_proc.c ============================================================================== --- head/sys/kern/kern_proc.c Tue Mar 5 19:41:32 2019 (r344822) +++ head/sys/kern/kern_proc.c Tue Mar 5 19:45:37 2019 (r344823) @@ -2487,6 +2487,8 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, s kve->kve_flags |= KVME_FLAG_GROWS_UP; if (entry->eflags & MAP_ENTRY_GROWS_DOWN) kve->kve_flags |= KVME_FLAG_GROWS_DOWN; + if (entry->eflags & MAP_ENTRY_USER_WIRED) + kve->kve_flags |= KVME_FLAG_USER_WIRED; last_timestamp = map->timestamp; vm_map_unlock_read(map); Modified: head/sys/sys/user.h ============================================================================== --- head/sys/sys/user.h Tue Mar 5 19:41:32 2019 (r344822) +++ head/sys/sys/user.h Tue Mar 5 19:45:37 2019 (r344823) @@ -471,6 +471,7 @@ struct kinfo_file { #define KVME_FLAG_SUPER 0x00000008 #define KVME_FLAG_GROWS_UP 0x00000010 #define KVME_FLAG_GROWS_DOWN 0x00000020 +#define KVME_FLAG_USER_WIRED 0x00000040 #if defined(__amd64__) #define KINFO_OVMENTRY_SIZE 1168 Modified: head/usr.bin/procstat/procstat.1 ============================================================================== --- head/usr.bin/procstat/procstat.1 Tue Mar 5 19:41:32 2019 (r344822) +++ head/usr.bin/procstat/procstat.1 Tue Mar 5 19:45:37 2019 (r344823) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 14, 2017 +.Dd March 4, 2019 .Dt PROCSTAT 1 .Os .Sh NAME @@ -662,6 +662,11 @@ one or more superpage mappings are used grows down (top-down stack) .It U grows up (bottom-up stack) +.It W +pages in this range are locked by +.Xr mlock 2 +or +.Xr mlockall 2 .El .Ss ELF Auxiliary Vector Display ELF auxiliary vector values: @@ -684,6 +689,8 @@ auxiliary vector value .Xr sockstat 1 , .Xr cap_enter 2 , .Xr cap_rights_limit 2 , +.Xr mlock 2 , +.Xr mlockall 2 , .Xr libprocstat 3 , .Xr libxo 3 , .Xr signal 3 , Modified: head/usr.bin/procstat/procstat_vm.c ============================================================================== --- head/usr.bin/procstat/procstat_vm.c Tue Mar 5 19:41:32 2019 (r344822) +++ head/usr.bin/procstat/procstat_vm.c Tue Mar 5 19:45:37 2019 (r344823) @@ -53,7 +53,7 @@ procstat_vm(struct procstat *procstat, struct kinfo_pr ptrwidth = 2*sizeof(void *) + 2; if ((procstat_opts & PS_OPT_NOHEADER) == 0) - xo_emit("{T:/%5s %*s %*s %3s %4s %4s %3s %3s %-4s %-2s %-s}\n", + xo_emit("{T:/%5s %*s %*s %3s %4s %4s %3s %3s %-5s %-2s %-s}\n", "PID", ptrwidth, "START", ptrwidth, "END", "PRT", "RES", "PRES", "REF", "SHD", "FLAG", "TP", "PATH"); @@ -98,9 +98,11 @@ procstat_vm(struct procstat *procstat, struct kinfo_pr KVME_FLAG_NEEDS_COPY ? "N" : "-"); xo_emit("{d:super_pages/%-1s}", kve->kve_flags & KVME_FLAG_SUPER ? "S" : "-"); - xo_emit("{d:grows_down/%-1s} ", kve->kve_flags & + xo_emit("{d:grows_down/%-1s}", kve->kve_flags & KVME_FLAG_GROWS_UP ? "U" : kve->kve_flags & KVME_FLAG_GROWS_DOWN ? "D" : "-"); + xo_emit("{d:wired/%-1s} ", kve->kve_flags & + KVME_FLAG_USER_WIRED ? "W" : "-"); xo_open_container("kve_flags"); xo_emit("{en:copy_on_write/%s}", kve->kve_flags & KVME_FLAG_COW ? "true" : "false"); @@ -112,6 +114,8 @@ procstat_vm(struct procstat *procstat, struct kinfo_pr KVME_FLAG_GROWS_UP ? "true" : "false"); xo_emit("{en:grows_down/%s}", kve->kve_flags & KVME_FLAG_GROWS_DOWN ? "true" : "false"); + xo_emit("{en:wired/%s}", kve->kve_flags & + KVME_FLAG_USER_WIRED ? "true" : "false"); xo_close_container("kve_flags"); switch (kve->kve_type) { case KVME_TYPE_NONE: From owner-svn-src-head@freebsd.org Tue Mar 5 21:06:32 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED74C1513530; Tue, 5 Mar 2019 21:06:31 +0000 (UTC) (envelope-from mat.macy@gmail.com) Received: from mail-io1-xd35.google.com (mail-io1-xd35.google.com [IPv6:2607:f8b0:4864:20::d35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 75881889B2; Tue, 5 Mar 2019 21:06:31 +0000 (UTC) (envelope-from mat.macy@gmail.com) Received: by mail-io1-xd35.google.com with SMTP id p196so8266790iod.9; Tue, 05 Mar 2019 13:06:31 -0800 (PST) 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=Z2mUZGK5VQuBJPk4RWGrJtB5EYA5oi9Dy8iNeVGZ1Ho=; b=GTh5f+ZfrQy5MTD/RvBRL17kXhhv5ewWN+RoxcN3n4p+d9g+l7jyqzqlLMmC8BOEl8 5qc8yqZVKoZsOhisdyb+aYulUd7VaEuA/IPgxJF6FAQ3munnU68ys4n8JhqkuCe1okto yFr8YtSbCqTTB/UI3rQwaIfYv01A32LdV3MFW4qSRgM1TZDQemOm+5sILTw6yv+fuOQN sDelu9PRgbcy4IrzqVGqUKnnv9rJ8I9gLLma4mb7wvz6h6er08lVmO9xW/TGWEfU8Zy0 w2p1J3xrrwDpDSUf8loYR5x1BJhqkeWdGeKoQ+I0m5vdn3ML+bwqSIxmkeGCTUqwdvLC qgEw== 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=Z2mUZGK5VQuBJPk4RWGrJtB5EYA5oi9Dy8iNeVGZ1Ho=; b=nPqqux24bbUUIrZxwfyXSz3llh+YOEpN8UjK6fgFixi069oLpH4hY2zB3fEAssgnsc PP3vQYOiJ1D7L9vDkWUax2JdYWyMdlHPXNmSuBdSnhkvObPUqVsGZnn0+rhegVVVawW5 QqV8atGOaDSILA/gcar5yroJB6WkGZ1ZXWOBlA38Wgo3xhy5DwAjNEfWPRm8aIs9FPFP 5Zggzas5WEgiw+sBKTpzPJrwwGk/ycQAmO4P56SaPDNS9253xRj3rJctWzQhw6FvqPpc GMPU/pdzZ3JEao9dOFTQ42IpzlwxCYYq2cXzc29bU9No8sno+qF9hMLfL5RbPaLG5oWt cjIQ== X-Gm-Message-State: APjAAAUBSeHdKUg4KFoBTRk/1Zm3XH8yW9FHpTnjb7Of/9Sl+6bkIdT+ M3CQC/MLw2NZkNuEIVkwKh8UbwpcA7yIzx5f/GdmTOC8 X-Google-Smtp-Source: APXvYqz0T8JhsrBk8+a0Wl8uCyFZMB9pKCgK/Frhgc29+NuqhJ3aPhF0trd5XzH5ltnG2x8WxH7juGHBUahGpN0iwGM= X-Received: by 2002:a6b:7d47:: with SMTP id d7mr1193356ioq.237.1551819990102; Tue, 05 Mar 2019 13:06:30 -0800 (PST) MIME-Version: 1.0 References: <201903051912.x25JCqOj068140@repo.freebsd.org> In-Reply-To: <201903051912.x25JCqOj068140@repo.freebsd.org> From: Matthew Macy Date: Tue, 5 Mar 2019 13:06:18 -0800 Message-ID: Subject: Re: svn commit: r344817 - in head/sys: dev/e1000 net To: Eric Joyner Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 75881889B2 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.99)[-0.988,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 21:06:32 -0000 This represents a misunderstanding of how defines are used. This left the option open to the user to enable the use of larger than page size buffers as it does enable better performance. Over the course of a long uptime memory can get too fragmented. However, this left it open to the end consumer. I'd like to see this reverted with perhaps a better name for the define and the addition of an explanatory comment. Thanks. -M On Tue, Mar 5, 2019 at 11:13 AM Eric Joyner wrote: > > Author: erj > Date: Tue Mar 5 19:12:51 2019 > New Revision: 344817 > URL: https://svnweb.freebsd.org/changeset/base/344817 > > Log: > Remove references to CONTIGMALLOC_WORKS in iflib and em > > From Jake: > "The iflib_fl_setup() function tries to pick various buffer sizes based > on the max_frame_size value defined by the parent driver. However, this > code was wrapped under CONTIGMALLOC_WORKS, which was never actually > defined anywhere. > > This same code pattern was used in if_em.c, likely trying to match > what iflib uses. > > Since CONTIGMALLOC_WORKS is not defined, remove this dead code from > iflib_fl_setup and if_em.c > > Given that various iflib drivers appear to be using a similar > calculation, it might be worth making this buffer size a value that the > driver can peek at in the future." > > Submitted by: Jacob Keller > Reviewed by: shurd@ > MFC after: 1 week > Sponsored by: Intel Corporation > Differential Revision: https://reviews.freebsd.org/D19199 > > Modified: > head/sys/dev/e1000/if_em.c > head/sys/net/iflib.c > > Modified: head/sys/dev/e1000/if_em.c > ============================================================================== > --- head/sys/dev/e1000/if_em.c Tue Mar 5 19:08:37 2019 (r344816) > +++ head/sys/dev/e1000/if_em.c Tue Mar 5 19:12:51 2019 (r344817) > @@ -1276,15 +1276,8 @@ em_if_init(if_ctx_t ctx) > */ > if (adapter->hw.mac.max_frame_size <= 2048) > adapter->rx_mbuf_sz = MCLBYTES; > -#ifndef CONTIGMALLOC_WORKS > else > adapter->rx_mbuf_sz = MJUMPAGESIZE; > -#else > - else if (adapter->hw.mac.max_frame_size <= 4096) > - adapter->rx_mbuf_sz = MJUMPAGESIZE; > - else > - adapter->rx_mbuf_sz = MJUM9BYTES; > -#endif > em_initialize_receive_unit(ctx); > > /* Use real VLAN Filter support? */ > > Modified: head/sys/net/iflib.c > ============================================================================== > --- head/sys/net/iflib.c Tue Mar 5 19:08:37 2019 (r344816) > +++ head/sys/net/iflib.c Tue Mar 5 19:12:51 2019 (r344817) > @@ -2187,17 +2187,8 @@ iflib_fl_setup(iflib_fl_t fl) > */ > if (sctx->isc_max_frame_size <= 2048) > fl->ifl_buf_size = MCLBYTES; > -#ifndef CONTIGMALLOC_WORKS > else > fl->ifl_buf_size = MJUMPAGESIZE; > -#else > - else if (sctx->isc_max_frame_size <= 4096) > - fl->ifl_buf_size = MJUMPAGESIZE; > - else if (sctx->isc_max_frame_size <= 9216) > - fl->ifl_buf_size = MJUM9BYTES; > - else > - fl->ifl_buf_size = MJUM16BYTES; > -#endif > if (fl->ifl_buf_size > ctx->ifc_max_fl_buf_size) > ctx->ifc_max_fl_buf_size = fl->ifl_buf_size; > fl->ifl_cltype = m_gettype(fl->ifl_buf_size); > From owner-svn-src-head@freebsd.org Tue Mar 5 21:12:34 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3DBE41513810; Tue, 5 Mar 2019 21:12:34 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BBF5F88F39; Tue, 5 Mar 2019 21:12:33 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id x25LCTDN082647; Tue, 5 Mar 2019 13:12:29 -0800 (PST) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id x25LCToe082646; Tue, 5 Mar 2019 13:12:29 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201903052112.x25LCToe082646@ gndrsh.dnsmgr.net> Subject: Re: svn commit: r344817 - in head/sys: dev/e1000 net In-Reply-To: To: Matthew Macy Date: Tue, 5 Mar 2019 13:12:29 -0800 (PST) CC: Eric Joyner , src-committers , svn-src-all , svn-src-head Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: BBF5F88F39 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.99 / 15.00]; TAGGED_RCPT(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.99)[-0.988,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 21:12:34 -0000 > This represents a misunderstanding of how defines are used. This left > the option open to the user to enable the use of larger than page size > buffers as it does enable better performance. Over the course of a > long uptime memory can get too fragmented. However, this left it open > to the end consumer. > > I'd like to see this reverted with perhaps a better name for the > define and the addition of an explanatory comment. > Thanks. Yes please. Also, Matt, does it/would it work to stop the memory fragmentation issue if we push the allocation up to the next page size and just waste the 3k bytes? Some people might be willing to make that trade off to get long up times and full 9k jumbo's. Thanks, Rod > -M > > On Tue, Mar 5, 2019 at 11:13 AM Eric Joyner wrote: > > > > Author: erj > > Date: Tue Mar 5 19:12:51 2019 > > New Revision: 344817 > > URL: https://svnweb.freebsd.org/changeset/base/344817 > > > > Log: > > Remove references to CONTIGMALLOC_WORKS in iflib and em > > > > From Jake: > > "The iflib_fl_setup() function tries to pick various buffer sizes based > > on the max_frame_size value defined by the parent driver. However, this > > code was wrapped under CONTIGMALLOC_WORKS, which was never actually > > defined anywhere. > > > > This same code pattern was used in if_em.c, likely trying to match > > what iflib uses. > > > > Since CONTIGMALLOC_WORKS is not defined, remove this dead code from > > iflib_fl_setup and if_em.c > > > > Given that various iflib drivers appear to be using a similar > > calculation, it might be worth making this buffer size a value that the > > driver can peek at in the future." > > > > Submitted by: Jacob Keller > > Reviewed by: shurd@ > > MFC after: 1 week > > Sponsored by: Intel Corporation > > Differential Revision: https://reviews.freebsd.org/D19199 > > > > Modified: > > head/sys/dev/e1000/if_em.c > > head/sys/net/iflib.c > > > > Modified: head/sys/dev/e1000/if_em.c > > ============================================================================== > > --- head/sys/dev/e1000/if_em.c Tue Mar 5 19:08:37 2019 (r344816) > > +++ head/sys/dev/e1000/if_em.c Tue Mar 5 19:12:51 2019 (r344817) > > @@ -1276,15 +1276,8 @@ em_if_init(if_ctx_t ctx) > > */ > > if (adapter->hw.mac.max_frame_size <= 2048) > > adapter->rx_mbuf_sz = MCLBYTES; > > -#ifndef CONTIGMALLOC_WORKS > > else > > adapter->rx_mbuf_sz = MJUMPAGESIZE; > > -#else > > - else if (adapter->hw.mac.max_frame_size <= 4096) > > - adapter->rx_mbuf_sz = MJUMPAGESIZE; > > - else > > - adapter->rx_mbuf_sz = MJUM9BYTES; > > -#endif > > em_initialize_receive_unit(ctx); > > > > /* Use real VLAN Filter support? */ > > > > Modified: head/sys/net/iflib.c > > ============================================================================== > > --- head/sys/net/iflib.c Tue Mar 5 19:08:37 2019 (r344816) > > +++ head/sys/net/iflib.c Tue Mar 5 19:12:51 2019 (r344817) > > @@ -2187,17 +2187,8 @@ iflib_fl_setup(iflib_fl_t fl) > > */ > > if (sctx->isc_max_frame_size <= 2048) > > fl->ifl_buf_size = MCLBYTES; > > -#ifndef CONTIGMALLOC_WORKS > > else > > fl->ifl_buf_size = MJUMPAGESIZE; > > -#else > > - else if (sctx->isc_max_frame_size <= 4096) > > - fl->ifl_buf_size = MJUMPAGESIZE; > > - else if (sctx->isc_max_frame_size <= 9216) > > - fl->ifl_buf_size = MJUM9BYTES; > > - else > > - fl->ifl_buf_size = MJUM16BYTES; > > -#endif > > if (fl->ifl_buf_size > ctx->ifc_max_fl_buf_size) > > ctx->ifc_max_fl_buf_size = fl->ifl_buf_size; > > fl->ifl_cltype = m_gettype(fl->ifl_buf_size); > > > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Tue Mar 5 22:04:24 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6855B1518100; Tue, 5 Mar 2019 22:04:24 +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 0DD458AFAC; Tue, 5 Mar 2019 22:04:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F330E223C5; Tue, 5 Mar 2019 22:04: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 x25M4NWx060968; Tue, 5 Mar 2019 22:04:23 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25M4NP2060967; Tue, 5 Mar 2019 22:04:23 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201903052204.x25M4NP2060967@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 5 Mar 2019 22:04:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344825 - head/lib/clang/libllvm X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: head/lib/clang/libllvm X-SVN-Commit-Revision: 344825 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 0DD458AFAC X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.974,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 22:04:24 -0000 Author: dim Date: Tue Mar 5 22:04:23 2019 New Revision: 344825 URL: https://svnweb.freebsd.org/changeset/base/344825 Log: Add a few missed files to the MK_LLVM_TARGET_BPF=yes case, otherwise clang and various other executables will fail to link with undefined symbols. Reported by: O. Hartmann MFC after: 1 month X-MFC-With: r344779 Modified: head/lib/clang/libllvm/Makefile Modified: head/lib/clang/libllvm/Makefile ============================================================================== --- head/lib/clang/libllvm/Makefile Tue Mar 5 21:40:08 2019 (r344824) +++ head/lib/clang/libllvm/Makefile Tue Mar 5 22:04:23 2019 (r344825) @@ -1011,11 +1011,13 @@ SRCS_MIN+= Target/BPF/BPFISelDAGToDAG.cpp SRCS_MIN+= Target/BPF/BPFISelLowering.cpp SRCS_MIN+= Target/BPF/BPFInstrInfo.cpp SRCS_MIN+= Target/BPF/BPFMCInstLower.cpp +SRCS_MIN+= Target/BPF/BPFMIChecking.cpp SRCS_MIN+= Target/BPF/BPFMIPeephole.cpp SRCS_MIN+= Target/BPF/BPFRegisterInfo.cpp SRCS_MIN+= Target/BPF/BPFSelectionDAGInfo.cpp SRCS_MIN+= Target/BPF/BPFSubtarget.cpp SRCS_MIN+= Target/BPF/BPFTargetMachine.cpp +SRCS_MIN+= Target/BPF/BTFDebug.cpp SRCS_MIN+= Target/BPF/Disassembler/BPFDisassembler.cpp SRCS_MIN+= Target/BPF/InstPrinter/BPFInstPrinter.cpp SRCS_MIN+= Target/BPF/MCTargetDesc/BPFAsmBackend.cpp From owner-svn-src-head@freebsd.org Tue Mar 5 22:06:10 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 544DC15181D7 for ; Tue, 5 Mar 2019 22:06:10 +0000 (UTC) (envelope-from ricera10@gmail.com) Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4015F8B128 for ; Tue, 5 Mar 2019 22:06:09 +0000 (UTC) (envelope-from ricera10@gmail.com) Received: by mail-ed1-f47.google.com with SMTP id m35so8563742ede.10 for ; Tue, 05 Mar 2019 14:06:09 -0800 (PST) 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=isPgUCUBgVDZw3lZCArQ73KKXEu1eDT1pQ/WeXH8Hm0=; b=bZudXM1jXtkrp0iww77OMQmpBcHveoRkOsEz6IhnAJQCF9BvEDTyMGTSG/fC2opre9 n6xuXpBLuA3swQTQ0cZv3gyRIk0rob3YV1FEpDnUGF2CEP/71ac1CLn0phMBzKxwTdMs n0shztSJz0v4c1abZsKN5jYGdmzqeQSCwezkPtNn8TBqkThCKYEQ+A5tVfw7BSGX51AI fmapS4AiGsNoS0H4j9FPMI/5mEOL1PYuDL/iYHr52PQaCpowcHzN44qBTN55pReqO7Hv AO8SayfIpLTQ12TMrKdTZ2++6RVDfvlMoTdwZzi+AVKKI5s6ZvKVq8SRui1WeoF1y5m7 05DQ== X-Gm-Message-State: APjAAAXv429vtdsEqKfJb9Mk3VQyM34WBkGU03+1mz3lVuc3YTZ/NQPg 6i9J95appFxwme35viRbYyxo0zq81Zk= X-Google-Smtp-Source: APXvYqxGye/jbzDSqfYQGyJ3tePfYkIBO+WQdxCvTMqSCg030SNCy8eeF0BAfPmWQD9Ft4gxqZEEtg== X-Received: by 2002:a50:ac6d:: with SMTP id w42mr21417582edc.122.1551823561652; Tue, 05 Mar 2019 14:06:01 -0800 (PST) Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com. [209.85.221.53]) by smtp.gmail.com with ESMTPSA id n19sm2003100eja.38.2019.03.05.14.06.00 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Mar 2019 14:06:01 -0800 (PST) Received: by mail-wr1-f53.google.com with SMTP id f14so11176775wrg.1 for ; Tue, 05 Mar 2019 14:06:00 -0800 (PST) X-Received: by 2002:a05:6000:1252:: with SMTP id j18mr647409wrx.11.1551823559948; Tue, 05 Mar 2019 14:05:59 -0800 (PST) MIME-Version: 1.0 References: <5c7ee64f.1c69fb81.1168f.5802SMTPIN_ADDED_BROKEN@mx.google.com> In-Reply-To: <5c7ee64f.1c69fb81.1168f.5802SMTPIN_ADDED_BROKEN@mx.google.com> From: Eric Joyner Date: Tue, 5 Mar 2019 14:05:48 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r344817 - in head/sys: dev/e1000 net To: rgrimes@freebsd.org, Matthew Macy Cc: src-committers , svn-src-all , svn-src-head , Jacob Keller X-Rspamd-Queue-Id: 4015F8B128 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of ricera10@gmail.com designates 209.85.208.47 as permitted sender) smtp.mailfrom=ricera10@gmail.com X-Spamd-Result: default: False [-5.21 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; RCPT_COUNT_FIVE(0.00)[6]; RCVD_COUNT_THREE(0.00)[4]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; NEURAL_HAM_SHORT(-0.99)[-0.992,0]; FORGED_SENDER(0.30)[erj@freebsd.org,ricera10@gmail.com]; MIME_TRACE(0.00)[0:+,1:+]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[erj@freebsd.org,ricera10@gmail.com]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TAGGED_RCPT(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[freebsd.org]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; IP_SCORE(-2.21)[ip: (-5.11), ipnet: 209.85.128.0/17(-3.83), asn: 15169(-2.02), country: US(-0.07)]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[47.208.85.209.list.dnswl.org : 127.0.5.0]; RCVD_TLS_LAST(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[47.208.85.209.rep.mailspike.net : 127.0.0.17] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 22:06:10 -0000 I'm cc'ing Jake so that he can provide a response. - Eric On Tue, Mar 5, 2019 at 1:12 PM Rodney W. Grimes wrote: > > This represents a misunderstanding of how defines are used. This left > > the option open to the user to enable the use of larger than page size > > buffers as it does enable better performance. Over the course of a > > long uptime memory can get too fragmented. However, this left it open > > to the end consumer. > > > > I'd like to see this reverted with perhaps a better name for the > > define and the addition of an explanatory comment. > > Thanks. > Yes please. > > Also, Matt, does it/would it work to stop the memory fragmentation issue > if we push the allocation up to the next page size and just waste the > 3k bytes? Some people might be willing to make that trade off to get > long up times and full 9k jumbo's. > > > Thanks, > Rod > > > -M > > > > On Tue, Mar 5, 2019 at 11:13 AM Eric Joyner wrote: > > > > > > Author: erj > > > Date: Tue Mar 5 19:12:51 2019 > > > New Revision: 344817 > > > URL: https://svnweb.freebsd.org/changeset/base/344817 > > > > > > Log: > > > Remove references to CONTIGMALLOC_WORKS in iflib and em > > > > > > From Jake: > > > "The iflib_fl_setup() function tries to pick various buffer sizes > based > > > on the max_frame_size value defined by the parent driver. However, > this > > > code was wrapped under CONTIGMALLOC_WORKS, which was never actually > > > defined anywhere. > > > > > > This same code pattern was used in if_em.c, likely trying to match > > > what iflib uses. > > > > > > Since CONTIGMALLOC_WORKS is not defined, remove this dead code from > > > iflib_fl_setup and if_em.c > > > > > > Given that various iflib drivers appear to be using a similar > > > calculation, it might be worth making this buffer size a value that > the > > > driver can peek at in the future." > > > > > > Submitted by: Jacob Keller > > > Reviewed by: shurd@ > > > MFC after: 1 week > > > Sponsored by: Intel Corporation > > > Differential Revision: https://reviews.freebsd.org/D19199 > > > > > > Modified: > > > head/sys/dev/e1000/if_em.c > > > head/sys/net/iflib.c > > > > > > Modified: head/sys/dev/e1000/if_em.c > > > > ============================================================================== > > > --- head/sys/dev/e1000/if_em.c Tue Mar 5 19:08:37 2019 > (r344816) > > > +++ head/sys/dev/e1000/if_em.c Tue Mar 5 19:12:51 2019 > (r344817) > > > @@ -1276,15 +1276,8 @@ em_if_init(if_ctx_t ctx) > > > */ > > > if (adapter->hw.mac.max_frame_size <= 2048) > > > adapter->rx_mbuf_sz = MCLBYTES; > > > -#ifndef CONTIGMALLOC_WORKS > > > else > > > adapter->rx_mbuf_sz = MJUMPAGESIZE; > > > -#else > > > - else if (adapter->hw.mac.max_frame_size <= 4096) > > > - adapter->rx_mbuf_sz = MJUMPAGESIZE; > > > - else > > > - adapter->rx_mbuf_sz = MJUM9BYTES; > > > -#endif > > > em_initialize_receive_unit(ctx); > > > > > > /* Use real VLAN Filter support? */ > > > > > > Modified: head/sys/net/iflib.c > > > > ============================================================================== > > > --- head/sys/net/iflib.c Tue Mar 5 19:08:37 2019 > (r344816) > > > +++ head/sys/net/iflib.c Tue Mar 5 19:12:51 2019 > (r344817) > > > @@ -2187,17 +2187,8 @@ iflib_fl_setup(iflib_fl_t fl) > > > */ > > > if (sctx->isc_max_frame_size <= 2048) > > > fl->ifl_buf_size = MCLBYTES; > > > -#ifndef CONTIGMALLOC_WORKS > > > else > > > fl->ifl_buf_size = MJUMPAGESIZE; > > > -#else > > > - else if (sctx->isc_max_frame_size <= 4096) > > > - fl->ifl_buf_size = MJUMPAGESIZE; > > > - else if (sctx->isc_max_frame_size <= 9216) > > > - fl->ifl_buf_size = MJUM9BYTES; > > > - else > > > - fl->ifl_buf_size = MJUM16BYTES; > > > -#endif > > > if (fl->ifl_buf_size > ctx->ifc_max_fl_buf_size) > > > ctx->ifc_max_fl_buf_size = fl->ifl_buf_size; > > > fl->ifl_cltype = m_gettype(fl->ifl_buf_size); > > > > > > > > > -- > Rod Grimes > rgrimes@freebsd.org > > From owner-svn-src-head@freebsd.org Tue Mar 5 22:55:37 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDBD5151A0AE; Tue, 5 Mar 2019 22:55:36 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6DA708CCF9; Tue, 5 Mar 2019 22:55:36 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 63BAB22C2C; Tue, 5 Mar 2019 22:55:36 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x25Mtavl087257; Tue, 5 Mar 2019 22:55:36 GMT (envelope-from marcel@FreeBSD.org) Received: (from marcel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25MtXwe087243; Tue, 5 Mar 2019 22:55:33 GMT (envelope-from marcel@FreeBSD.org) Message-Id: <201903052255.x25MtXwe087243@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marcel set sender to marcel@FreeBSD.org using -f From: Marcel Moolenaar Date: Tue, 5 Mar 2019 22:55:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344826 - in head/usr.bin/mkimg: . tests X-SVN-Group: head X-SVN-Commit-Author: marcel X-SVN-Commit-Paths: in head/usr.bin/mkimg: . tests X-SVN-Commit-Revision: 344826 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6DA708CCF9 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.99 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.99)[-0.987,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 22:55:37 -0000 Author: marcel Date: Tue Mar 5 22:55:33 2019 New Revision: 344826 URL: https://svnweb.freebsd.org/changeset/base/344826 Log: Round # partitions up to fill the last GPT table sector Set the number of partitions entries in the GPT header to a multiple of the number of entries that fit in a sector. PR: 236238 Reviewed by: imp MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D19465 Modified: head/usr.bin/mkimg/gpt.c head/usr.bin/mkimg/tests/Makefile head/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow.gz.uu head/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow2.gz.uu head/usr.bin/mkimg/tests/img-1x1-4096-gpt.raw.gz.uu head/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhd.gz.uu head/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhdf.gz.uu head/usr.bin/mkimg/tests/img-1x1-4096-gpt.vmdk.gz.uu head/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow.gz.uu head/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow2.gz.uu head/usr.bin/mkimg/tests/img-1x1-512-gpt.raw.gz.uu head/usr.bin/mkimg/tests/img-1x1-512-gpt.vhd.gz.uu head/usr.bin/mkimg/tests/img-1x1-512-gpt.vhdf.gz.uu head/usr.bin/mkimg/tests/img-1x1-512-gpt.vmdk.gz.uu head/usr.bin/mkimg/tests/img-63x255-4096-gpt.qcow.gz.uu head/usr.bin/mkimg/tests/img-63x255-4096-gpt.qcow2.gz.uu head/usr.bin/mkimg/tests/img-63x255-4096-gpt.raw.gz.uu head/usr.bin/mkimg/tests/img-63x255-4096-gpt.vhd.gz.uu head/usr.bin/mkimg/tests/img-63x255-4096-gpt.vhdf.gz.uu head/usr.bin/mkimg/tests/img-63x255-4096-gpt.vmdk.gz.uu head/usr.bin/mkimg/tests/img-63x255-512-gpt.qcow.gz.uu head/usr.bin/mkimg/tests/img-63x255-512-gpt.qcow2.gz.uu head/usr.bin/mkimg/tests/img-63x255-512-gpt.raw.gz.uu head/usr.bin/mkimg/tests/img-63x255-512-gpt.vhd.gz.uu head/usr.bin/mkimg/tests/img-63x255-512-gpt.vhdf.gz.uu head/usr.bin/mkimg/tests/img-63x255-512-gpt.vmdk.gz.uu Modified: head/usr.bin/mkimg/gpt.c ============================================================================== --- head/usr.bin/mkimg/gpt.c Tue Mar 5 22:04:23 2019 (r344825) +++ head/usr.bin/mkimg/gpt.c Tue Mar 5 22:55:33 2019 (r344826) @@ -259,9 +259,9 @@ gpt_write(lba_t imgsz, void *bootcode) le64enc(&hdr->hdr_lba_end, imgsz - tblsz - 2); mkimg_uuid(&uuid); mkimg_uuid_enc(&hdr->hdr_uuid, &uuid); - le32enc(&hdr->hdr_entries, nparts); + le32enc(&hdr->hdr_entries, tblsz * secsz / sizeof(struct gpt_ent)); le32enc(&hdr->hdr_entsz, sizeof(struct gpt_ent)); - crc = crc32(tbl, nparts * sizeof(struct gpt_ent)); + crc = crc32(tbl, tblsz * secsz); le32enc(&hdr->hdr_crc_table, crc); error = gpt_write_hdr(hdr, 1, imgsz - 1, 2); if (!error) Modified: head/usr.bin/mkimg/tests/Makefile ============================================================================== --- head/usr.bin/mkimg/tests/Makefile Tue Mar 5 22:04:23 2019 (r344825) +++ head/usr.bin/mkimg/tests/Makefile Tue Mar 5 22:55:33 2019 (r344826) @@ -18,6 +18,6 @@ $f: $f.gz.uu CLEANFILES+= ${${PACKAGE}FILES}} rebase: .PHONY - (cd ${.CURDIR}; atf-sh ${_REBASE_SCRIPT}.sh rebase) + (cd ${.CURDIR}; /usr/libexec/atf-sh ${_REBASE_SCRIPT}.sh rebase) .include Modified: head/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow.gz.uu ============================================================================== --- head/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow.gz.uu Tue Mar 5 22:04:23 2019 (r344825) +++ head/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow.gz.uu Tue Mar 5 22:55:33 2019 (r344826) @@ -1,132 +1,132 @@ # $FreeBSD$ begin 644 img-1x1-4096-gpt.qcow.gz -M'XL(",]Q+ED``VEM9RTQ>#$M-#`Y-BUG<'0N<6-O=RYO=70`K9W+CAS7L47G -M^HKDFVR2S8J(S*Q,OFW`!CR3C7MG]P+.Y]`HS_GQ[NH^C^ZHO1D6V!(A4"!R -MH^IP]2I*6CH\'.[^:)I.FK9OVK'9Y^;F[],W:>[]S<-OS8^___5OU_?_^/'; -MW9@Y`3Y%N).0NQ$^1;B3D+L)/D6XDY"[ -M&3Y%N).0NP4^1;B3D+L5/D6XTY"[#3Y%N".?%_>XV^%3A#N-N!/\%.%.(^X$ -M^4X9=QIQ)\AWRKC3B#M!OE/&G4;<"?*=,NXTXDZ0[Y1Q9Q%W@GQGC#N+N!/D -M.V/<6<@=\ITQ[BSD#OG.&'<6*GR+]:QET;<:?(=RWCKHNX4^2[CG'71=PI\EW'N.M"[I#O.L9=%W*'?-' -MW"'?S8R[.>0.^6YFW,TA=\AW,^-N#KE#OIL9=W/('?+=S+B;0^Z0[V;&W1)R -MAWRW,.Z6D#ODNX5QMT3<]?@IPMT2<=^6QAW2\1=CWRW,.Z6 -MB+L>^6YAW"T1=SWRW<*X6R/N>N2[E7&W1MSUR'2O\/G@._D0+B30\@=\)T<"'=RB+@;\%.8 -M.PG[NP'X3EA_)V%_-P#?">OO).SO!N`[8?V=A/W=`'PGK+^3L+\;@.^$]7<2 -M]G<#\)VP_D["_FX`OA/6WTG8WPW`=\+Z.PG[NP'X3EA_)V%_-P#?">OO).SO -M!N`[8?V=A/W=`'PGK+^3L+\;@.^$]7<2]G<#\AWK[R3L[P;D.];?2=C?C?@I -MPEW8WXW(=ZR_D["_&Y'O6'\G87\W(M^Q_D["_FY$OF/]G83]W8A\Q_H["?N[ -M$?F.]7<2]G]8?R=A?SOO).SO)OP4X2[L[R;D -M.];?2=C?3OO).SO)N0[UM])V-]-R'>LOY.POYN0[UA_)V%_-R'? -ML?Y.POYN0KYC_9V$_=V$?,?Z.PG[NPGYCO5W$O9W,WZ*OO).SO -M9N0[UM])V-_-R'>LOY.POYN1[UA_)V%_-R/?L?Y.POYN1KYC_9V$_=V,?,?Z -M.PG[NQGYCO5W$O9W,_(=Z^\D[.]FY#O6WTG8W\W(=ZR_D["_FY'O6'\G87\W -M(]^Q_D["_FY&OF/]G83]W8Q\Q_H["?N[!3]%N`O[NP7YCO5W$O9W"_(=Z^\D -M[.\6Y#O6WTG8WRW(=ZR_D["_6Y#O6'\G87^W(-^Q_D["_FY!OF/]G83]W8)\ -MQ_H["?N[!?F.]7<2]G<+\AWK[R3L[Q;D.];?2=C?+]8?R=A?[OO).SO5N0[UM])V-^MR'>LOY.POUN1[UA_ -M)V%_MR+?L?Y.POYNPT\1[L+^;D.^8_V=A/W=AGS'^CL)^[L-^8[U=Q+V=QOR -M'>OO).SO-N0[UM])V-]MR'>LOY.PO]N0[UA_)V%_MR'?L?Y.POYN0[YC_9V$ -M_=V&?,?Z.PG[NPWYCO5W$O9W&_(=Z^\D[.\VY#O6WTG8WVW(=ZR_D["_VY#O -M6'\G87^WXZ<(=V%_MR/?L?Y.POYN1[YC_9V$_=V.?,?Z.PG[NQWYCO5W$O9W -M._(=Z^\D[.]VY#O6WTG8W^W(=ZR_D["_VY'O6'\G87^W(]^Q_D["_FY'OF/] -MG83]W8Y\Q_H["?N['?F.]7<2]G<[\AWK[S1_Q\TU=0[X[N8IS)VZ_B[?I]=4 -M[H#OE/5WZOJ[)G'79.[L@)_"W*GK[YK$7?//,@=\IZR_4]??-2=W=H;NOU/6 -MWZGK[\K9U3G@.V7]G;K^#LP!WRGK[]3U=V`.^$Y9?Z>NO\MS3^H<\)VR_DY= -M?_+ -MLP.^4];?J>OORMG5.>`[9?V=NOX.S`'?*>OOU/5W8`[X3EE_IZZ_RW-/ZQSR -M'>OOU/5W3_-GOS9H?OOE/5WZOJ[LOU/7WSW+>USGD.];?J>OOGN>YRAWR'>OOU/5WSQ-WSPMWZ/X[9?V=NO[N>>+N>>$. -MW7^GK+]3U]\]/_FS0_??*>OOU/5WY>SJ'/(=Z^_4]7=@#OF.]7?J^CLPAWS' -M^CMU_5V>>U'GD.]8?Z>NOWN1YPIWZ/X[9?V=NO[N1>+N1>4.^8[U=^KZNQ>) -MNQ>5.^0[UM^IZ^]>G"[.#OF.]7?J^KMR=G4.^8[U=^KZ.S"'?,?Z.W7]'9A# -MOF/]G;K^+L^]K'/(=ZR_4]??OOO7B;N7A;NT/UWROH[=?W= -MR\3=R\(=NO].67^GKK][>?)GA^Z_4];?J>OORMG5.>0[UM^IZ^_`'/(=Z^_4 -M]7=@#OF.]7?J^KL\]ZK.(=^Q_DY=?_>0[UA_IZZ_>YWG*G?(=ZR_4]??O4[0[UM^IZ^_`'/(=Z^_4]7=Y[DV=0[YC_9VZ_NY-GBO>0[UA_IZZ_N\ISE3OD.];?J>OOKA)W -M5X4[=/^=LOY.77]WE;B[*MRA^^^4]7?J^KNKDS\[=/^=LOY.77]7SJ[.(=^Q -M_DY=?P?FD.]8?Z>NOP-SR'>LOU/7W^6YMW4.^8[U=^KZN[=YKG"'[K]3UM^I -MZ^_>)N[>5NZ0[UA_IZZ_>YNX>UNY0[YC_9VZ_N[MZ>+LD.]8?Z>NORMG5^>0 -M[UA_IZZ_`W/(=ZR_4]??@3GD.];?J>OO\MR[.H=\Q_H[=?W=NSQ7N4.^8_V= -MNO[N7>+N7>$.W7^GK+]3U]^]2]R]*]RA^^^4]7?J^KMW)W]VZ/X[9?V=NOZN -MG%V=0[YC_9VZ_@[,(=^Q_DY=?P?FD.]8?Z>NO\MS[^L<\AWK[]3U=^_S7.$. -MW7^GK+]3U]^]3]R]K]PAW['^3EU_]SYQ][YRAWS'^CMU_=W[T\79(=^Q_DY= -M?U?.KLXAW['^3EU_!^:0[UA_IZZ_`W/(=ZR_4]??Y;GK.H=\Q_H[C?H[0_?? -M*>OO-.KO#-U_IZR_TZB_,W3_G;+^3J/^SM#]=\KZ.XWZ.T/WWRGK[S3J[PS= -M?Z>LO].HOS-T_YVR_DY)?_>ASB'?L?Y.77_W(<\5[M#]=\KZ.W7]W8?$W8?* -M'?(=Z^_4]7OOU/5WY>SJ'/(=Z^_4]7=@ -M#OF.]7?J^CLPAWS'^CO+WW%SASH'?&>LO[OY@0?<93\=*G?`=\;Z.W/]W2'M -M'0IWZ/X[8_V=N?[ND+@[%.[0_7?&^CMS_=WAY,\.W7]GK+\SU]^5LZMSP'?& -M^CMS_1V8`[XSUM^9Z^_`'/"=L?[.7'^7YZ3.`=\9Z^_,]7>2YPIWZ/X[8_V= -MN?Y.TLN3RAWPG;'^SEQ_)XD[J=P!WQGK[\SU=W*Z.#O@.V/]G;G^KIQ=G0.^ -M,];?F>OOP!SPG;'^SEQ_!^:`[XSU=^;ZNSRG=0[YCO5WYOH[S7.5.^0[UM^9 -MZ^\T<:>%.W3_G;'^SEQ_IXD[+=RA^^^,]7?F^CL]^;-#]]\9Z^_,]7?E[.H< -M\AWK[\SU=V`.^8[U=^;Z.S"'?,?Z.W/]79ZS.H=\Q_H[<_V=Y;G"';K_SEA_ -M9ZZ_L\2=5>Z0[UA_9ZZ_L\2=5>Z0[UA_9ZZ_L]/%V2'?L?[.7']7SJ[.(=^Q -M_LYNOP-SR'>LOS/7W^6YMLXAW['^SEQ_U^:YRAWR'>OOS/5W -M;>*N+=RA^^^,]7?F^KLV<=<6[M#]=\;Z.W/]77OR9X?NOS/6WYGK[\K9U3GD -M.];?F>OOP!SR'>OOS/5W8`[YCO5WYOJ[/-?5.>0[UM^9Z^^Z/%>X0_??&>OO -MS/5W7>*NJ]PAW['^SEQ_UR7NNLH=\AWK[\SU=]WIXNR0[UA_9ZZ_*V=7YY#O -M6']GKK\#<\AWK+\SU]^!.>0[UM^9Z^_R7%_GD.]8?V>NO^OS7.4.^8[U=^;Z -MNSYQUQ?NT/UWQOH[<_U=G[CK"W?H_CMC_9VY_JX_^;-#]]\9Z^_,]7?E[.H< -M\AWK[\SU=V`.^8[U=^;Z.S"'?,?Z.W/]79X[UCGD.];?F>OOCGFN<(?NOS/6 -MWYGK[XZ)NV/E#OF.]7?F^KMCXNY8N4.^8_V=N?[N>+HX.^0[UM^9Z^_*V=4Y -MY#O6WYGK[\`<\AWK[\SU=V`.^8[U=^;ZNSPWU#GD.];?F>OOACQ7N4.^8_V= -MN?YN2-P-A3MT_YVQ_LYOOQL3=6+E#OF/]G;G^;CQ=G!WR'>OOS/5WY>SJ -M'/(=Z^_,]7=@#OF.]7?F^CLPAWS'^CMS_5V>^UCGD.]8?V>NO_N8YRIWR'>L -MOS/7WWU,W'TLW*'[[XSU=^;ZNX^)NX^%.W3_G;'^SEQ_]_'DSP[=?V>LOS/7 -MWY6SJW/(=ZR_,]??@3GD.];?F>OOP!SR'>OOS/5W>>Y3G4.^8_V=N?[N4YXK -MW*'[[XSU=^;ZNT^)NT^5.^0[UM^9Z^\^)>X^5>Z0[UA_9ZZ_^W2Z.#OD.];? -MF>OORMG5.>0[UM^9Z^_`'/(=Z^_,]7=@#OF.]7?F^KL\][G.(=^Q_LYNO_NNORMG5^>0[UA_9ZZ_`W/(=ZR_,]??@3GD.];?F>OO\MR7.H=\Q_H[ -M<_W=ESQ7N$/WWQGK[\SU=U\2=U\J=\AWK+\SU]]]2=Q]J=PAW['^SEQ_]^5T -M<7;(=ZR_,]??E;.K<\AWK+\SU]^!.>0[UM^9Z^_`'/(=Z^_,]7=Y[FN=0[YC -M_9VY_NYKGJO<(=^Q_LYU<(?NOS/6WYGK[[XF[KX6[M#]=\;Z.W/] -MW=>3/SMT_YVQ_LY0[UM^U^3MN -M[GN=`[YK67_7NO[N>YZKW`'?W3R%N6M=?_<]\%/D]SUV;_9[[HVO -MRQSZ_;;+4\'8.Z2#T[?Z_?[MW -M<[GG>>,SCW!<[ -M;O[/B_SM-@_GP*_T?NWTSK]>F;M'.[TQP8*^\1^@IS?=G1X^I//IP2^9'_>O -M$;T_!WZ]\BNGU]]^:IP_8R?P5_X#/WZ_?OCGW6";!A_M%=X,+H_XU7&>>\2O -MCO/<(WYUG.<>]:OC//B(7QWGN4?\ZCC//>)7QWGN4;\Z;@9O_YWC(WV(G^?D -M[F-R7YM!F\W^_F'^/9'W^PC -8?HB?YQ[U0[P]'&^\]]M_`$CJT>#UK``` +M'XL("-N7?5P``VEM9RTQ>#$M-#`Y-BUG<'0N<6-O=RYO=70`K9W);ES9L47G +M]16IOJ#/)TY"1>S-LB"JAH()\MS./ +M%A=55:L.C\?;;X=#*X>F.S3C89\/UW^=OLOASE_<_W[X^=<__^7J[K>?O]V. +MR?&!I]Q?-WK0-'=OZX^',J?GIY;#[^TJ>;LM&^SN#?Z>YOZ17I^2 +MM]NSN>'>W,F]725O=V1STX.P*(%E9G-+,-?`IU8VMP5S+7QJQW/RP*_M[5P' +MGQ(V!S]NKPYEKH=/&9MK[LT=KS+0>6Z`3Q'N).1NA$\1[B3D;H)/$>XDY&Z& +M3Q'N).1N@4\1[B3D;H5/$>XTY&Z#3Q'NR.>+.]SM\"G"G4;<"7Z*<*<1=X)\ +MIXP[C;@3Y#MEW&G$G2#?*>-.(^X$^4X9=QIQ)\AWRKBSB#M!OC/&G47<"?*= +M,>XLY`[YSAAW%G*'?&>,.PNY0[XSQIV%W"'?&>/.0NZ0[XQQ9R%WR'?&N&M" +M[I#O&L9=$W*'?-Z:B#M%OFL8=TW$G2+?-8R[)N).D>\:QET3 +M<:?(=PWCKHFX4^2[AG'71MPI\EW+N&LC[A3YKF7&GR+<=1%WAGS7,>ZZB#M#ONL8=UW$G2'?=8R[+N+.D.\ZQET7<6?(=QWC +MKH^X,^2[GG'71]P9\EW/N.M#[I#O>L9='W*'?-*N0;X;&'=#Q%V#?#>0[T;&W1AQ +MUR#?C8R[,>0.^6YDW(TA=\AW(^-N#+E#OAL9=V/('?+=R+@;0^Z0[T;&W1AR +MAWPW,NZFD#ODNXEQ-X7<(=]-C+LIXJ[%3Q'NIHB[%OEN8MQ-$7\FQEW^UY!\#OEN9MS-$7*N0[Y;&'=+Q%V' +M?+&W"'?K8R[->0.^6YEW*TA +M=\AW*^-N#;E#OEL9=VO('?+=RKA;0^Z0[U;&W19RAWRW,>ZVD#ODNXUQMT7< +M]?@IPMT6<=^VQAW6\1=CWRW,>ZVB+L>^6YCW&T1=SWRW<:X +MVR/N>N2[G7&W1]SUR'<[XVX/N4.^VQEW>\@=\MW.N-M#[I#O=L;='G*'?+OO).SO!N`[8?V=A/W=`'PGK+^3L+\;@.^$]7<2]G<#\)VP +M_D["_FX`OA/6WTG8WPW`=\+Z.PG[NP'YCO5W$O9W`_(=Z^\D[.]&_!3A+NSO +M1N0[UM])V-^-R'>LOY.POQN1[UA_)V%_-R+?L?Y.POYN1+YC_9V$_=V(?,?Z +M.PG[NQ'YCO5W$O9W(_(=Z^\D[.]&Y#O6WTG8WXW(=ZR_D["_&Y'O6'\G87\W +M(M^Q_D["_FY$OF/]G83]W8A\Q_H["?N[$?F.]7<2]G<3?HIP%_9W$_(=Z^\D +M[.\FY#O6WTG8WTW(=ZR_D["_FY#O6'\G87\W(=^Q_D["_FY"OF/]G83]W81\ +MQ_H["?N["?F.]7<2]G<3\AWK[R3L[R;D.];?2=C?3]8?R=A?SOO).SO9N0[UM])V-_-R'>LOY.POYN1[UA_ +M)V%_-R/?L?Y.POYN1KYC_9V$_=V"GR+OO).SO%N0[UM])V-\MR'>LOY.POUN0[UA_)V%_MR#?L?Y.POYN0;YC_9V$ +M_=V"?,?Z.PG[NP7YCO5W$O9W"_(=Z^\D[.\6Y#O6WTG8WRW(=ZR_D["_6Y#O +M6'\G87^W(-^Q_D["_F[%3Q'NPOYN1;YC_9V$_=V*?,?Z.PG[NQ7YCO5W$O9W +M*_(=Z^\D[.]6Y#O6WTG8WZW(=ZR_D["_6Y'O6'\G87^W(M^Q_D["_FY%OF/] +MG83]W8I\Q_H["?N[%?F.]7<2]G]8?R=A?[?AIPAW87^W(=^Q_D["_FY#OF/]G83]W89\Q_H["?N[#?F.]7<2 +M]G<;\AWK[R3L[S;D.];?2=C?;OO).SO-N0[UM])V-]MR'>LOY.P +MO]OQ4X2[L+_;D>]8?R=A?[^8_V=A/W=CGS'^CL)^[L=^8[U +M=Q+V=SOR'>OO).SO=N0[UM])V-_MR'>LOY.PO]N1[UA_)V%_MR/?L?Y.POYN +M1[YC_9V$_=V.?,?Z.PG[NQWYCO5WFG_@Y@YU#OCN^BG,G;K^+M^G=ZC<`=\I +MZ^_4]7>'Q-TALOU/7WSW) +MOOU/5WY>SJ'/"=LOY.77\'YH#OE/5WZOH[,`=\IZR_4]??Y;FG=0[YCO5W +MZOJ[IWFNOOU/5WS_-G_S9H?OOE/5WZOJ[LOU/7W[W(UCGD.];?J>OO7N:YRAWR'>OOU/5W+Q-W+PMWZ/X[9?V=NO[N9>+N +M9>$.W7^GK+]3U]^]//FS0_??*>OOU/5WY>SJ'/(=Z^_4]7=@#OF.]7?J^CLP +MAWS'^CMU_5V>>U7GD.]8?Z>NOWN5YPIWZ/X[9?V=NO[N5>+N5>4.^8[U=^KZ +MNU>)NU>5.^0[UM^IZ^]>G2[.#OF.]7?J^KMR=G4.^8[U=^KZ.S"'?,?Z.W7] +M'9A#OF/]G;K^+L^]KG/(=ZR_4]??OOO7B?N7A?NT/UWROH[ +M=?W=Z\3=Z\(=NO].67^GKK][??)GA^Z_4];?J>OORMG5.>0[UM^IZ^_`'/(= +MZ^_4]7=@#OF.]7?J^KL\]Z;.(=^Q_DY=?_0[UA_IZZ_>YOG*G?(=ZR_4]??O4W0[UM^IZ^_`'/(=Z^_4]7=Y[EV=0[YC_9VZ_NY=GBOZ0[UA_IZZ_ +M>Y^X>U^X0_??*>OOU/5W[Q-W[PMWZ/X[9?V=NO[N_0[UM^IZ^_RW(X0_?? +M*>OOU/5W'Q)W'RIWR'>LOU/7WWU(W'VHW"'?L?Y.77_WX71Q=LAWK+]3U]^5 +MLZMSR'>LOU/7WX$YY#O6WZGK[\`<\AWK[]3U=WGNJLXAW['^3J/^SM#]=\KZ +M.XWZ.T/WWRGK[S3J[PS=?Z>LO].HOS-T_YVR_DZC_L[0_7?*^CN-^CM#]]\I +MZ^\TZN\,W7^GK+]3TM]]K'/(=ZR_4]???Q'?,?Z.W7]73F[.H=\Q_H[=?T=F$.^ +M8_V=NOX.S"'?L?[.\@_=]E/Q\H=\)VQ_LY\?" +M';K_SEA_9ZZ_.R;NCH4[=/^=L?[.7']W//FS0_??&>OOS/5WY>SJ'/"=L?[. +M7'\'YH#OC/5WYOH[,`=\9ZR_,]??Y3FI<\!WQOH[<_V=Y+G"';K_SEA_9ZZ_ +MD_3RI'('?&>LOS/7WTGB3BIWP'?&^CMS_9V<+LX.^,Y8?V>NORMG5^>`[XSU +M=^;Z.S`'?&>LOS/7WX$YX#MC_9VY_B[/:9U#OF/]G;G^3O-LOS/7WVGB3@MWZ/X[8_V=N?Y.3_[LT/UWQOH[<_U=.;LZAWS' +M^CMS_1V80[YC_9VY_@[,(=^Q_LY0[UM^9Z^_`'/(=Z^_,]7=YKJESR'>LOS/7WS5YKG*'?,?Z.W/]79.X +M:PIWZ/X[8_V=N?ZN2=PUA3MT_YVQ_LY<_-FA^^^,]7?F^KMR=G4.^8[U +M=^;Z.S"'?,?Z.W/]'9A#OF/]G;G^+L^U=0[YCO5WYOJ[-L\5[M#]=\;Z.W/] +M79NX:RMWR'>LOS/7W[6)N[9RAWS'^CMS_5U[NC@[Y#O6WYGK[\K9U3GD.];? +MF>OOP!SR'>OOS/5W8`[YCO5WYOJ[/-?5.>0[UM^9Z^^Z/%>Y0[YC_9VY_JY+ +MW'6%.W3_G;'^SEQ_UR7NNL(=NO_.6']GKK_K3O[LT/UWQOH[<_U=.;LZAWS' +M^CMS_1V80[YC_9VY_@[,(=^Q_LYOOS/5W0YZKW"'?L?[.7'\W +M).Z&PAVZ_\Y8?V>NOQL2=T/A#MU_9ZR_,]??#2=_=NC^.V/]G;G^KIQ=G4.^ +M8_V=N?X.S"'?L?[.7'\'YI#O6']GKK_+OOS/5W8^)NK-PAW['^SEQ_-YXNS@[YCO5WYOJ[LOS/7WWW*OOP!SR'>OOS/5W8`[YCO5WYOJ[//>YSB'?L?[.7'_W.<\5[M#] +M=\;Z.W/]W>?$W>?*'?(=Z^_,]7>?$W>?*W?(=ZR_,]???3Y=G!WR'>OOS/5W +MY>SJ'/(=Z^_,]7=@#OF.]7?F^CLPAWS'^CMS_5V>^U+GD.]8?V>NO_N2YRIW +MR'>LOS/7WWU)W'TIW*'[[XSU=^;ZNR^)NR^%.W3_G;'^SEQ_]^7DSP[=?V>L +MOS/7WY6SJW/(=ZR_,]??@3GD.];?F>OOP!SR'>OOS/5W>>YKG4.^8_V=N?[N +M:YXKW*'[[XSU=^;ZNZ^)NZ^5.^0[UM^9Z^^^)NZ^5NZ0[UA_9ZZ_^WJZ.#OD +M.];?F>OORMG5.>0[UM^9Z^_`'/(=Z^_,]7=@#OF.]7?F^KL\]ZW.(=^Q_LY< +M?_NO_N6N/M6N$/WWQGK[\SU=]\2=]\*=^C^.V/]G;G^[MO) +MGQVZ_\Y8?V>NORMG5^>0[UA_9ZZ_`W/(=ZR_,]??@3GD.];?F>OO\MSW.H=\ +MQ_H[<_W=]SQ7N$/WWQGK[\SU=]\3=]\K=\AWK+\SU]]]3]Q]K]PAW['^SEQ_ +M]_UT<7;(=ZR_,]??E;.K<\AWK+\SU]^!.>0[UM^9Z^_`'/(=Z^^:_`,W]Z/. +M`=\UK+]K7'_W(\]5[H#OKI_"W#6NO_N1N/N1N6N.^"GR=8_=F_V1>^.K,H>^ +MWG9Y*IB[\^WG;V]O!]%]572P\5\?-Y]>_KAHT'U5O_+ZVIOS:_1PG,"?^4_\ +M_./5_3_*X,W=0?_%8'Z%]^?R+TA[>W?0332U7;MS3]^/INEB\'_RZ[NY[J=I#TUW:,9TD6,CAU8/;5/F;MYK +MN]Q]?7_Z\U\.O__A;W\_C_UO?;LWU_V<_\[S^O^U/72#>W7"WN[UW^7]W_VW +M>SMW\^G[XK3SG+&Y^\[GFH:>.2E_=Q:_M[=S-I^^F_B^' +MNT_--\W;^6LF-&SN]_MSZ,O'_PIY-S<'S-VAO_Z;UNO?X,EAV<\_6+OS%]\] +M#-_W'KSWS*-AU[._Y7=]>#/?_[UZI^W8Q^N_O4NO;[;FP,$?^<_P4[O +M]N:`@;W=_*\7^=L]W)\#O]/[M=,[_W[E^L/BL4YO3)I"W_E/T-.;;D\/']+Y +M]."'S,^[UXC>G0._7_F5T^MN/FN +M\:/C//>('QWGN4?\Z#C//>I'QWGP$3\ZSG./^-%QGGO$CX[SW*-^=%P/WOPS +MQT?Z)'Z>.[,W]#=?EK0Y=)-[?>S3\?GU_3]XN[?_S)%]ZG_@DSC^Q=@>\9/X +E>>[A3^+;`V\6_=INC_A)_#SWJ)_$FV-_[;W?_@U4+HE0]:P````` ` end Modified: head/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow2.gz.uu ============================================================================== --- head/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow2.gz.uu Tue Mar 5 22:04:23 2019 (r344825) +++ head/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow2.gz.uu Tue Mar 5 22:55:33 2019 (r344826) @@ -1,26 +1,26 @@ # $FreeBSD$ begin 644 img-1x1-4096-gpt.qcow2.gz -M'XL(",]Q+ED``VEM9RTQ>#$M-#`Y-BUG<'0N<6-O=S(N;W5T`*V92V_<(!"` -M[_D5I.\FS=8,8'O[2)JD62FWI&IOO?AYC-1KY?:WUQALUGC&)%MVD945FD^` -MOQFPDR3FPYCB3*9,;EE;LOZW;<#V?LP;Z^YWMYO]3W=D8#PAHI`.*2;3,.&A^8 -M\?D1\L#Q0>SQ"7S]U!CG=Z3KXQ-F?'Y41N'R(`Z0J"V%*X(X@425%*X*XB02 -M55.X)HA32%1+X'A`E1Z7(E&-B[+1)%>/;>X%Q..8U&4=^!Y]]+B7CD<4N^`\@X\[UY;W!N'0^H=4-Z!Y]U;BSMQ -M.*3>`>4=>-Z=6MP[AT/J'5#>@>?=V<([CM0[H+P3GG?O+2MQ.*3>"-X)BY,.A]0[07DG/.^4Q:4.A]0[07DG/.\RB\L=#JEW@O). -M>-YM+>Z#PR'U3E#>"<^[CQ;WR>&0>B+.W7=A<5\< -M#JEWDO).>MY=6MR5PR'U3E+>2<^[:XO[.N$`BYJ\2Q*\6=S-(FE.VYSY$IWK`#SIP/)O5::M.R`@$S[>[.'JR.LWI-L3@$JQHE@` -M?XSC&]*MSR_S;J"W6PW%0`%3%/SI.3?JG-);W:6*V -M;1C.6%N6<7UVZX'=P_WFP<#.-K].[?@DMT9@C>Z@5D\.E3FGIINY!P%BNFR. -MPUXC_=?JZ;IO,*N'+Y)>/31ENG'5QH0;<67/F%6:B -MZ_?R2G=T=YOYUP"E!48;H4S;*F)V:%S$[-"XB-FA<5&S0P,C9H?&1ZB6<-/5GS^>M--N(FKG%1-W&9Z>/WT3]QQ=U%%1H````` +M'XL("-N7?5P``VEM9RTQ>#$M-#`Y-BUG<'0N<6-O=S(N;W5T`*V82V^<,!"` +M[_D53M])FBT>V\"FSR3-2KDE57OKA67A&*D]T_[V8CS@QBO9_;"#V_ADWT=QO;E?[G^;(P63"1!$=6@VX$>O: +MXX##)7+:(6G#D@BHM+B6B)(>#15Q&1"D.IQ=Q.1'%>2>7O5L349QWQ=241QWLEE[W9$%.<=,-X)CZN(*,X["+P[1MPSCZN) +M*,X["+Q[CK@7`TY249QW$'CW$G&O/(ZH=\!Y!X%WKQ'WQN.(>@><=Q!X=X*X +M4X\CZAUPWD'@W1GBWGH<4>^`\PX"[\XGWDFBW@'GG0J\>X>LQ..(>J!Q1[Q3GG0J\4XC3'D?4.\5YIP+O#.)2CR/JG>*\4X%W&>)RCR/JG>*\ +M4X%W:\1=>!Q1[Q3GG0J\>X^X#QY'U#O%>:<"[SXB[I/'$?5.<=[IP+O/B/OB +M<42]TYQW.O#N$G%7'D?4.\UYIP/OKA'W=<`!%35XER1T0]S-)&>!J'K/=PN\OIUZ?8$H#&B*";` +M'_WXNG1K\\N]&VCM-ETQ,"",'G#=7$VY/[Z;S:VXN_SVW<)^^NEVZ59W9X"B +M\B>!?G22G>[) +M\6P=SAXOAJMVV_;+EMB"?33MT;W4'.YNC$LCFZ>[8:0B*T5:V?=)96W_V*7V +MEB;R-DW;A?/3C8^>K7&8Y/2S2":GP'MWJZJ\PY-]W, +M7P28Z8HQCGJ-]%^K9^ORUD1;O366*:KQ'>SJ%6[UZ$6RJT>F3-.O6I]P/6X; +M=_6D>X69V/H]_>4[FKO5^.N`&H'11JC3NHR8'187,3LL+F)V6%S4[+#`B-EA +M<1&SP^(B9H?%1O/WT3^)='8^%1H````` ` end Modified: head/usr.bin/mkimg/tests/img-1x1-4096-gpt.raw.gz.uu ============================================================================== --- head/usr.bin/mkimg/tests/img-1x1-4096-gpt.raw.gz.uu Tue Mar 5 22:04:23 2019 (r344825) +++ head/usr.bin/mkimg/tests/img-1x1-4096-gpt.raw.gz.uu Tue Mar 5 22:55:33 2019 (r344826) @@ -1,15 +1,16 @@ # $FreeBSD$ begin 644 img-1x1-4096-gpt.raw.gz -M'XL("-!Q+ED``VEM9RTQ>#$M-#`Y-BUG<'0N^"C'3;SSX^U0D*^6N,E`0TB&>7;FI2^S4H8# -M,!JRC%S3@>Y)+,_N<'OH::JZ#NA_GTI8`84'!ESM@U+3,\ZA;8FXT;,<,V4M5GIP!PG`FYLM[T.:"W*<@/\'.O3_>NP,#G,"=H_+V$4 -MK(8U?[B^5UO/ZWM^><7Y\?V#8%]3NUKY8.7S&Y09W$HDJ9+M?J_;#3A-61NU -M1UR6Q-W$<1EE-3NXV$KCS%Y6V$/_>[)D4/T="^Q!.."KHB8'=Y$Y<`NQ<_=T-]1@T[ -M(K;2@91ZIM\J1:K=(^WMW7:QQ&7/_3TEY^`7C-"Q#B`L````` +M'XL("-N7?5P``VEM9RTQ>#$M-#`Y-BUG<'0NO/"9XR'3;SSX^U0D*^6N,E`0TB&>9AY.\,@I3\` +MHR&+P#5NZ![%\NP.-X>>ILKK@.[]%,(**!S0XRIGE)J>:1JT[;"DZKV\LVRA +MU7@_X,1T',4,5T]>FQ4WS''"X\9TV^N`UJ(H-L"/,3[=;X>%26%.T.YY":-@ +M-:SYP_6YVFH>W]/S"\X/;^\$^YS2UZM%FJ^B4[%T[X7X6J;K<9J\ +M-FJ/N"2JWG&MGLW'F<)9Z8G\[E7J6EK5('*Q'#G +M)2YEKCS3AY$BJY`VL`I52S=U"J6`W+6)WVX-74.>D"GHDH#=Y55S==+'$)MWHYJ6?9U#L-GZG0BANBZA5>O;!( +MI%ZP9;I1M;%#1ES)JY[JIX:K?_?]WE[CANXLEJ<'F@'(%J'1;FSP=0?A&+N# +M<(S=03C6[B`@8W<0CK$[",?8'81C[0X';"3?$"<05GD!FFQBB\VCBF^ +M[T"ZC=X;_3M#/+P9#>,0)]S^$&]VD@WM;<,XQ`G'.L2-^Y^2\O`+__!T\X@+ +"```` ` end Modified: head/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhd.gz.uu ============================================================================== --- head/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhd.gz.uu Tue Mar 5 22:04:23 2019 (r344825) +++ head/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhd.gz.uu Tue Mar 5 22:55:33 2019 (r344826) @@ -1,22 +1,22 @@ # $FreeBSD$ begin 644 img-1x1-4096-gpt.vhd.gz -M'XL("-!Q+ED``VEM9RTQ>#$M-#`Y-BUG<'0N=FAD+F]U=`"MF$MOVS`,@._] -M%2QVZS!#;R>7`2O0`KMUPX9==K$=IPN&98_VT(/WWT?*4FS9EK&T=%0CB<+/ -M)$61K(3H+P"GP>W!M>`LO2\-N"V4&P"<#$/YNPP?H6M^'MOF\?!4A*N[Z&%2 -MC*52<9)7&@P^I`15T4/O8<@]]N -M>NV(].6@OGOD];>3=GJNW2"%?^4.A`$I1[_043O$%']38PU*[?=^.-BU)'L: -MR8=D8C!VXCLK)E(C-9><*@9CEW!N3>H\Q;*(? -M9@-#Y>GA5_7GH9WHIS*AXD[ZR=F7-3[TWH&"LGY-BQ>?YQOZ -M/&#T8(H[&5PWY#^?!]IVL*@/DB"L-2B971!].?)?O6->WWI_'M!:J*H9\'/4 -MK_'+8<$X,%L*#$P.1H)58(=P]K;:9JS?S>U[N'OW\1/!O@[F-A0NC8*FA*T" -MN9UH-]]IZ[FEH]UN?E3<[<>\M.(N\M;IE8U8KB,L75O-Z3OFK@_L#\/;_G)[J[(GWU -M0!7*$%M=4R&1LFEH`I!-0Q/V+Z.&LEU=S'-7V:A2,688PC%F&,(Q9AC"L688 -M`C)F&,(Q9AC",688PK%F&`0:P=<($#$M-#`Y-BUG<'0N=FAD+F]U=`"MF$MOG#`0@._Y +M%1/UEJH4CQ^PQT9*U?:TK5KET@NP;+JJNGTDAQSH?Z_'V(`7C+K)L`YBU\S' +MO#R>D.?]`6`DF#V8%HRFZT*!V4!1`MA)/]"=A?\*7?/SV#8/A\?,']U%#Q/Y +M5"H6)WF4H.Q#"L"*'F)V=`U=P&0O;NZN#C_N`@X]#CU(%R0E$4P]>XZROY:] +M=D2Z/>!WA[S^-F@GY]J-4O:OV$&N0(C)'3)H9S'9W]A89:7V>S<,[%J2'4;T +M)9H8C3WQG,Q<$4MY`JS_*> +MB>5"=*T3V]$P50_(_(5GZ>#D=2O(OWL8LBKA7-ZHKO.XL\`K.OS +M@,&#,6XPN&[(?ZX.M.UH49\D7EA*0)$,B+R<^*_>,<>WWI\'U!JJ:@;\$O1K +M7#@T*`-J0XEABX,2H!'TF,[.5MU,];MY^QZV;SY])MC7T=R&TD65@'O8*-B< +M:C=?:1[W[O7B8FMHLM#,,?18I-B!; +M[,9N'5T3L#M^S(X][%7V^Z77KQ4^(Y9&>B+EO=;5Y3)E;C$6[(2Y$..XZW); +MDO$V[7L/EOZ_?\G)[H +MMEG\Z8'HMR&V?0U](6734'D@FX;*KU].[&LQSHZRP0,8*0SC&"D,XQ@I# +M.-8*0T#&"D,XQ@I#.,8*0SC6"F.!*N=KA`CG&J&*`B`T12)2(]G2=!]\(&1L +MKL*U]BG=""6"H1@;(<*M-D+VO^A4;/V!)\8R-D*$8VV$C"^D3.\R3&B$YCH\ +MY5V&"8W0\/AGO#$M-#`Y-BUG<'0N=FAD9BYO=70`K9=/J]P@$,#O -M^RFFO,/"*Q4U:K*7!RV\EMZVCY9>>LD??2RE6PJE])`/7T?-1GMQHA93C,UJ# -M,6%2YK2\LOW-V[!><&0=>Q+AIHO6[2P+8ASQN,5=\S*@E-#W-\`OBWW](;]>!_L$"QF1FV5!*7H"4X5V)7=;S.U-=R'%-;6CUV'T9+7H'4*RY&99 -M4(Q>[Z.7#Q)&+U>Z%A>B1EZEN*%N])CK&K8^[/Y]>R\+YB-)+P\4`5C-0F', -M6+$Z$%>Q.A!7L3H05[4Z$%BQ.A!7L3H05[$Z$%>U.BQ0TWI-''&8>YI"J\"T -M>(!(S"BVXYG\L><*'/O$7<<<#QYUF/OT]_X^A)MS/#>DB^FJC/&TQ, -M94NDQY>H"=>1?7>/S_>G'\\+C@>OE@#*%K4:#FJX<5>F[GX]\>\.>5RMRVQ3 -M,H[>00$5N,7$C@?KCFFJ2'<"6IS5!CJ!NI>9_$@$V41&G$N5^.'__;8>5SM5 --[%^#W3\[9-S+LPT````` +M'XL("-R7?5P``VEM9RTQ>#$M-#`Y-BUG<'0N=FAD9BYO=70`K9=-B]LP$(;O +M^153>@ALJ9!D2;:/6]C"WM+2TDLO_M*279I2Z*$'__AJ]!%;CF2Z1;8P"K(> +MS[R:T2B4N@M`<*!=XID?F#^0^)X/=P=+8_WK@.;[:,(&2`S0X08S2#F^,TV@ +MM6^4V5ENLOG-:]\/.+)<1[+"C==9MRT_L,81APONZM;-9S^HY +M+@WK8!`YW"G&J<*1)ZP9"NH!U`22P:"Q,RI@#*`Q:=)8"`<^`FVA9L![!,Z7 +M3^3B8._)KW?>/L%\1*1:?B"GGL!0H4W.W1IC>]==B'%5:?4:5$\64Z_UVU2J +MY0>RZG5.O;1(J%XJ=0W.JT;>Q+B^K'K,5@T3_V;_OGWF!^83B6\'%!Y8S$*A +M]5`P.Q!7,#L05S`[$%.1MG"Q9QQ!4M +MXM(?OU4%RN:7DMBO!2B34LT:R)>8L<#AYV4:?I__K-63=F>&Y9"\:3B?5QB8 +MRJ1(AQ]1(_97]KU]>+H[_W@*..Z]"F.LBH/J;]R5L;O?SOPE*!APB6U* +MKM5K%:X58Y'CWKI3'"K2GH""LY.&1MAU#BWZ$0TD`QEQ(52N[7_7UN%*AXKY +,:W#X"S$T<4>S#0`` ` end Modified: head/usr.bin/mkimg/tests/img-1x1-4096-gpt.vmdk.gz.uu ============================================================================== --- head/usr.bin/mkimg/tests/img-1x1-4096-gpt.vmdk.gz.uu Tue Mar 5 22:04:23 2019 (r344825) +++ head/usr.bin/mkimg/tests/img-1x1-4096-gpt.vmdk.gz.uu Tue Mar 5 22:55:33 2019 (r344826) @@ -1,63 +1,63 @@ # $FreeBSD$ begin 644 img-1x1-4096-gpt.vmdk.gz -M'XL("-%Q+ED``VEM9RTQ>#$M-#`Y-BUG<'0N=FUD:RYO=70`K5Q=C]S&$7SW -MKYC(#PX29,%:DLOE@X+8.3LP@@"*["0O>0@_XT/LDW(Z&!&P/SX<'=S -MI'Q]VM-NB]VUTSW+YJJZP"Q;?IPK6E<4KNA=>7(9W/1/R\-E^;TQ/8YG'KC\ -M^>HO?S_PY]>'P^6S!0P^2D*0*9P8J_>Y'![\$.[X7-3JP/0X;L+E/JI]%!C@ -MCHD#2;AB.GA\*H2K:^;#O7\A<"X"N15<^41.R62?6]UO/@O%\^O+_1JF[3W5 -MKLK=J0VF.Y6SG;OJ.!_+7#4YC1/@Y^[J^L-_W-7PH;N]?G_W+JSOZ/=V80IL>KD7_@#'J[V$*?!Y;W+X0^[R^TWUS\.AY^'VP_7[VY>@^D>_=X6 -MN2MJOQSOG]T_5H9_D\R=X-_#7?[X[=7K\,G-#N^;6\+YJ&DATWM/>2CNZ>3\ -M[^/'O+KAYLXCCN$GKL[O;2A..;]WX5^4A:MJ-R^G]-C'Z7`?4IYKU]T.S=WP -M_^M+5L]`Y[E0N2MS#Q52\^4K/:+_V,R[YBX_7M_]<-U] -M-Z7Y87AU^-P1[N1K-VW@.:QKR7H*.25W=EKVY>O_W4WYNC[L[#7AYD7,24SO -M71Y=67FL:0/GK3BZO/"OIG^:%CQE4L`[N4X+G$*FA%8YE4O^Y<./I;M\][5[Y9/\_H=A_@02KEY.,^^\[`-F\^A?A*HM -M\+Z)%?[`O+/NJKEKW%?-A^'P^=755W%G&Y]L,3^FI0T>Y;1`^\_W7,ZI<,M. -M+QL];T7?MX>F;][?#;=^>^-6M+Y$?$ZY?:3EUA$H]>*L)W5WNJS;C?@AP>19:0!Y:V:I$ -M<3G+&TH#';J[=[?+PEY)/\X?7LM>VH^+1Y?4ZA<"+G#6ZSME#ZYGN<858I0K -M0'\5RZ;?/TR_;^[7=_+K.XEGI5%G,>H5W+\FB/>/TSWYL[`1SU:C.C'Z/=4[ -M^=8VB.?XL'K\J@%YG8;C=P%ZYAI5B%&NX%*U*T/MZ%EIU%F,>@67JMTIU(Z> -MK49U8O2[DJU"[>@Y:I1_XEK49U8O2[DFU#[>@Y:I1_8H.`O$[#=:%V],PUJA"C7,&E:M>' -MVM&STJBS&/4*+E6[(=2.GJU&=6+TNY(=0^WH.6J4?RJD=L467)6%VM$SUZA" -MC'(%EZA=Q7Y'STJCSF+4*[A$[2KV.WJV&M6)T>]*EOV.GJ-&^:=2:E=NPK'? -MT3/7J$*,<@67JAW['3TKC3J+4:_@4K5COZ-GJU&=&/VN9-GOZ#EJE'\Z2>U. -MFW#L=_3,-:H0HUS!I6K'?D?/2J/.8M0KN%3MV._HV6I4)T:_*UGV.WJ.&N6? -M^"4(\CH-QWY'SURC"C'*%5RJ=NQW]*PTZBQ&O8)+U8[]CIZM1G5B]+N29;^C -MYZA1_HF$#.1U$NZH0HQR!9>HW9G]CIZ51IW%J%=PB=J=V>_HV6I4 -M)T:_*UGV.WJ.&N6?:JE=O0G'?D?/7*,*,P:5JQWY'SU:C.C'Z7N4848Y0HN4;N: -M_8Z>E4:=Q:A7<(G:U>QW]&PUJA.CWY4L^QT]1XWR3[W4KM^$8[^C9ZY1A1CE -M"BY5._8[>E8:=1:C7L&E:L=^1\]6HSHQ^EW)LM_1<]0H_S1([89-./8[>N8: -M58A1KN!2M6._HV>E46-\D^CU&[N4848Y0HN53OV.WI6&G46HU[!I6K'?D?/5J,Z,?I=R;+?T7/4J$RF9Y#7 -M2;@F6VH7/7.-*L0H5W")VC6AWT7/2J/.8M0KN$3MFM#OHF>K49T8_:YD0[^+ -MGJ-&^9()?X=-2JL)_0["WT'Y.PA_ATW^K@G]#L+?0?D["'^'3?ZN"?T.PM]! -M^3L(?[^PR=^U['?"WT'Y.PA_ATW^KF6_$_X.RM]!^+L=R;+?"7\'Y>\@_!TV -M*:V6_4[X.RA_!^'OL,G?M>QWPM]!^3L(?X=-_JYEOQ/^#LK?0?B['^PR=^U['?"WT'Y.PA_ATW^KF6_ -M$_X.RM]!^+L=R;+?"7\'Y>\@_!TV*:TN"[43_@[*WT'X.VSR=QW[G?!W4/X. -MPM]AD[_KV.^$OX/R=Q#^;D>R['?"WT'Y.PA_ATU*JV._$_X.RM]!^#ML\G<= -M^YWP=U#^#L+?89._Z]COA+^#\G<0_FY'LNQWPM]!^3L(?X=-2JMCOQ/^#LK? -M0?@[;/)W'?N=\'=0_@["WV&3O^O8[X2_@_)W$/YN1[+L=\+?0?D["'^'34JK -M8[\3_@[*WT'X.VSR=QW[G?!W4/X.PM]AD[_KV.^$OX/R=Q#^;D>R['?"WT'Y -M.PA_ATU*J\]"[82_@_)W$/X.F_Q=SWXG_!V4OX/P=]CD[WKV.^'OH/P=A+_; -MD2S[G?!W4/X.PM]AD]+JV>^$OX/R=Q#^#IO\7<]^)_P=E+^#\'?8Y.]Z]COA -M[Z#\'82_VY$L^YWP=U#^#L+?89/2ZMGOA+^#\G<0_@Z;_%W/?B?\'92_@_!W -MV.3O>O8[X>^@_!V$O]N1+/N=\'=0_@["WV&3TNK9[X2_@_)W$/X.F_Q=SWXG -M_!V4OX/P=]CD[WKV.^'OH/P=A+_;D2S[G?!W4/XNBND@KP7.+;\!;LB6VCTI -M*7_BGV+MW).K&ZSU@>.X%S!_.EV_QS%=9,\NX]/7AUF_&&<>2]5_&>`"9UP_ -MQ/F[E.D^[E/UE8CS=SY>I*]$G+_S\2)])>+\G8\7Z2L1Y^\F^DK$^;N)OA)Q +M'XL("-R7?5P``VEM9RTQ>#$M-#`Y-BUG<'0N=FUD:RYO=70`K5Q=C]S&$7SW +MKYC(#PX29,%:DLOE@X#8.1LP@@"*[20O>0@_XTML23D=@@C8'Q\..357O-LY +M4KX^\;3;VN[:Z9YE26G9++/K>XWGX7B^?7E?@W3]IYJ +M5^7NU`;3G80IL>KDG_@7/%SM(4Z#RWN7P[_L+G??W/XT'/X[W'VX???V-9CNT>]M +MD;NB]LOQ_MG#L3+\FV3N!/\>[O*';V]>AT]N=GC?W!'.1TT+F=Y[RD-Q3R?G +M?Y\>\^J&M_<><0P_<75^;T-QROF]"_^D+%Q5NWDYI<<^3B_W(>6Y=MW=T-P/ +M/WQ\/[Q^]?.[M[%V?F]]R>H9Z#P7*G=E[J%":KY\I4?T'YMYU]SEI]O['V^[ +M[Z'G;TEW+R(.8GI +MO^63_.''8?X$$JY>3C/OO.P#9O/HGX2J +M+?"^B17^A7EGW4USW[BOF@_#X?.;FZ_BSC8^V6(^IJ4-'N6T0/O/]US.J7#+ +M3B\;/6]%W[>'IF_>WP]W?GOC5K2^1'W(U&]K\;"-Z_>IYIT:_2?&75Z[5[?] +MM*<>]I_#NY\)URT?XVD=_B-1SX&Y?S)]>F;X(;S#\HGQV^3AAON[CX?NXT^W +M;_OI1'.O"=_%G8B&>K49T8_9[J +MG7QK&\1S?%P]?M6`/$_#\;L`/7.-*L0H5W"IVI6A=O2L-.HL1KV"2]7N%&I' +MSU:C.C'Z7N8:58A1KN!2M:M#[>A9:=19 +MC'H%EZI=$VI'SU:C.C'Z7JW1!J1\]6HSHQ^EW)CJ%V]!PURC\44KMB"Z[*0NWHF6M4 +M(4:Y@DO4KF*_HV>E46E4:=Q:A7<*G:L=_1L]6H3HQ^5[+L=_0<-AF._HV>N4848Y0HN53OV.WI6&G46HU[!I6K'?D?/5J,Z,?I=R;+? +MT7/4*/]`0@;R/`EWSD+MZ)EK5"%&N8)+U.[,?D?/2J/.8M0KN$3MSNQW]&PU +MJA.CWY4L^QT]1XWR#[74KMZ$8[^C9ZY1A1CE"BY5._8[>E8:=1:C7L&E:L=^ +M1\]6HSHQ^EW)LM_1<]0H_\#_/T&>I^'8[^B9:U0A1KF"2]6._8Z>E4:=Q:A7 +M<*G:L=_1L]6H3HQ^5[+L=_0<-H0HQR!9>J'?L=/2N- +M.HM1K^!2M6._HV>K49T8_:YDV>_H.6J4?^BD=MT67)V%VM$SUZA"C'(%EZA= +MS7Y'STJCSF+4*[A$[6KV.WJV&M6)T>]*EOV.GJ-&^8=>:M=OPK'?T3/7J$*, +M<@67JAW['3TKC3J+4:_@4K5COZ-GJU&=&/VN9-GOZ#EJE'\8I';#)AS['3US +MC2K$*%=PJ=JQW]&STJBS&/4*+E4[]CMZMAK5B='O2I;]CIZC1OF'46HW;L*Q +MW]$SUZA"C'(%EZH=^QT]*XTZBU&OX%*U8[^C9ZM1G1C]KF39[^@Y:E0FTS/( +M\R1^@_!V$O\,F?]>$?@?A[Z#\'82_PR9_UX1^!^'O +MH/P=A+_;D6SH=Q#^#LK?0?@[;%):3>AW$/X.RM]!^#ML\G=-Z'<0_@[*WT'X +M.VSR=TWH=Q#^#LK?0?B['^@_!V$O\,F?]>$?@?A[Z#\'82_VY%LZ'<0_@[*WT'X.VQ26FT6:B?\ +M'92_@_!WV.3O6O8[X>^@_!V$O\,F?]>RWPE_!^7O(/S=CF39[X2_@_)W$/X. +MFY16RWXG_!V4OX/P=]CD[UKV.^'OH/P=A+_#)G_7LM\)?P?E[R#\W8YDV>^$ +MOX/R=Q#^#IN45LM^)_P=E+^#\'?8Y.]:]COA[Z#\'82_PR9_U[+?"7\'Y>\@ +M_-V.9-GOA+^#\G<0_@Z;E%;+?B?\'92_@_!WV.3O6O8[X>^@_!V$O\,F?]>R +MWPE_!^7O(/S=CF39[X2_@_)W$/X.FY16EX7:"7\'Y>\@_!TV^;N._4[X.RA_ +M!^'OL,G?=>QWPM]!^3L(?[^@_!V$O\,FI=6QWPE_!^7O(/P=-OF[ +MCOU.^#LH?P?A[[#)WW7L=\+?0?D["'^W(UGV.^'OH/P=A+_#)J75L=\)?P?E +M[R#\'3;YNX[]3O@[*'\'X>^PR=]U['?"WT'Y.PA_MR-9]COA[Z#\'82_PR:E +MU;'?"7\'Y>\@_!TV^;N._4[X.RA_!^'OL,G?=>QWPM]!^3L(?[^@ +M_!V$O\,FI=5GH7;"WT'Y.PA_ATW^KF>_$_X.RM]!^#ML\G<]^YWP=U#^#L+? +M[4B6_4[X.RA_!^'OL$EI]>QWPM]!^3L(?X=-_JYGOQ/^#LK?0?@[;/)W/?N= +M\'=0_@["W^U(EOU.^#LH?P?A[[!):?7L=\+?0?D["'^'3?ZN9[\3_@[*WT'X +M.VSR=SW[G?!W4/X.PM_M2);]3O@[*'\'X>^P26GU['?"WT'Y.PA_ATW^KF>_ +M$_X.RM]!^#ML\G<]^YWP=U#^#L+?[4B6_4[X.RA_%\5TD.<"YY;?`#=D2^VN +M2LJO_%.LG;NZNL%:'SB.>P'SZ^GZ/8[I(GMV&9^^/LSZQ3CS6*K^RP`7../Z +M(<[?I4P/<9^JKT2?O)OI*Q/F[B;X2 M?O)OI*Q/F[B;X27Q^.PR/GU] -MQ5R_Y>ZJC_].'[A\=5C_B8!H/PV0*US#,>$"_MQ8M%[#X,8Q/!;E'#]!HSM6 -MZ82_.`A<;UR__?N[/,K2-51UJM#.MT_O7U\=A3S[9T?5YMP>1+N -MBZ=.MF*^O?/8/P/WU",-5SP7]:EW`B_FVSMKE*IO73ZX-G=CXYH^`??[!W`G -MXT_>?.?9]N2JSM\_N(3KYIL]]R=/2[OS=)HL__,[NF/OE0@5W-'?D?EPN?GK -MX68!^]WAO[\-ZUON/(NG'^D#J>H5\UW>SZETJT3#7K=Y@_K[2E6?7J -M\&%YZI$^D*Q>LU0O<56;JO?4J3O!\:KVJS5<:UN]'-9_ -M%L`B`)JML/"W%+0[.SRG9X0,.SP\,9GAT>SO#L\'"F9T?A -M;QAI=Q'W<%B^,57P\_2]PO]\L4IWYAR3E_YG+N)/;\9@ -E>!'W<,]>Q,!'W<*87\<+?O3/[[/^_O`I!M&4````` +M,9KJ*S&:ZBLQFNHK,9KJ*X]9EAGJ*X]/[G6\$^YILHL^\`A3?>7Q^.PR/GU] +MQ5R_Y>ZJ3_].OW#YZK#^$P'1?AH@5[B&8\(%_+FQ:+V&P8UC.!;E'#]!HSM6 +MZ82_.`A<;UR__?N['&7IFN8)X%^XOGE_B]+?C[FHYYOS\LZ\91'AYMS+3M?W +M]3??NC=??O>#!_O[0[KS[9TGH+'Q*'W[:'5(I?OMXUUW2H^M:UQ_#%O2M2<&_6<"?C +M3]Y\Y]GVY*K.WS^XA.OFFSWW)T]+N_-TFBS_\SNZ8^^5"!7U7ZUAFMMJU?.5XU%>/+T[_0+ES>']9\% +ML`B`9BLL_"T%['1[0\.SP<(9GAXV?VV?\!KL<'>[1E```` ` end Modified: head/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow.gz.uu ============================================================================== --- head/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow.gz.uu Tue Mar 5 22:04:23 2019 (r344825) +++ head/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow.gz.uu Tue Mar 5 22:55:33 2019 (r344826) @@ -1,132 +1,132 @@ # $FreeBSD$ begin 644 img-1x1-512-gpt.qcow.gz -M'XL(",5Q+ED``VEM9RTQ>#$M-3$R+6=P="YQ8V]W+F]U=`"MG?U -M%5=OB9*HC(C[U-MNM`'/RH9[UH.ZKQQU&]ES?7PSR?,@(_=6V!!51$$%X6YD -M'BTNJE2KC@Z'NV]-TTG3]DT[-<>EN?GG]"'-O7]X^-'\^-M?_GI]_]N/W^[& -MY/"3I]P_M]I(FGNP]>GUN8P_0MS-Q]P[MZKLW_CU=U[LY=S5[_=O5G\ -MG+)!>S#8I+E#>GU"3J_]UU[?=_=VY>[T'N_M*GF['1OL'PS^GN;^2*]/R=L= -MV-SX8.[DWJZ2MSNQN?FGL"B!96%S:S#7PJ"?&>,.XNX$^0[8]Q9R!WR -MG3'N+.0.^&W"'?M8R[ -M-N0.^:YEW+41=XJ?(MRU$7>*?-.NB[A3Y+N.<==%W"GR7<>XZT+ND.\ZQET7%W"'?=8R[+N0.^:YCW'4A=\AW'>.N#[E#ONL9=WW('?)=S[CK(^X,/T6X -MZR/N#/FN9]SU$7>&?-$W"'?#8R[(>0.^6Y@W`TA=\AW`^-N"+E#OAL8=T/('?+= -MP+@;0NZ0[P;&W1ARAWPW,N[&D#ODNY%Q-T;>0[R;&W11QUR+?38R[ -M*>0.^6YBW$TA=\AW$^-N"KE#OIL8=U/('?+=Q+B;0NZ0[R;&W11RAWPW,>[F -MD#ODNYEQ-X?<(=_-C+LYXJ[#3Q'NYHB[#OEN9MS-$7<=\MW,N)LC[CKDNYEQ -M-T?<=OP4X6Z-N.N1[U;&W1IQUR/?K8R[->*N1[Y;&7=KQ%V/?+%W"'?;8R[+>0.^6YCW&TA=\AW&^-N -M"[E#OML8=UO('?+=QKC;0NZ0[S;&W1YRAWRW,^[VD#ODNYUQMT?<#?@IPMT> -M<3<@W^V,NSWB;D"^VQEW>\3=@'RW,^[VB+L!^6YGW.T1=P/RW)N0+X[,NZ.(7?(=T?&W3'D#OGNR+@[AMPAWQT9=\>0.^2[(^/N&'*' -M?'=DW!U#[I#OCH0[R=_A<\!WL -MOY.POQN![X3U=Q+V=R/PG;#^3L+^;@2^$];?2=C?CLOY.POQN![X3U=Q+V=R/PG;#^3L+^ -M;@2^$];?2=C?C]8?R=A?SOO).SO9N0[UM])V-_-R'>LOY.POYN1[UA_)V%_-R/? -ML?Y.POYN1KYC_9V$_=V,?,?Z.PG[NP4_1;@+^[L%^8[U=Q+V=POR'>OO).SO -M%N0[UM])V-\MR'>LOY.POUN0[UA_)V%_MR#?L?Y.POYN0;YC_9V$_=V"?,?Z -M.PG[NP7YCO5W$O9W"_(=Z^\D[.\6Y#O6WTG8WRW(=ZR_D["_6Y#O6'\G87^W -M(-^Q_D["_FY!OF/]G83]W8J?(MR%_=V*?,?Z.PG[NQ7YCO5W$O9W*_(=Z^\D -M[.]6Y#O6WTG8WZW(=ZR_D["_6Y'O6'\G87^W(M^Q_D["_FY%OF/]G83]W8I\ -MQ_H["?N[%?F.]7<2]G]8?R=A -M?[["_FY#OF/]G83]W89\Q_H["?N[#?F.]7<2]G<;\AWK -M[R3L[S;D.];?2=C?;OO).SO-N0[UM])V-]MR'>LOY.PO]N0[UA_ -M)V%_M^.G"'=A?[^8_V=A/W=CGS'^CL)^[L=^8[U=Q+V=SOR -M'>OO).SO=N0[UM])V-_MR'>LOY.PO]N1[UA_)V%_MR/?L?Y.POYN1[YC_9V$ -M_=V.?,?Z.PG[NQWYCO5W$O9W._(=Z^\D[.]VY#O6WTG8W^W(=ZR_D["_.^*G -M"'=A?W=$OF/]G83]W1'YCO5W$O9W1^0[UM])V-\=D>]8?R=A?W=$OF/]G83] -MW1'YCO5W$O9W1^0[UM])V-\=D>]8?R=A?W=$OF/]G83]W1'YCO5W$O9W1^0[ -MUM])V-\=D>]8?R=A?W=$OF/]G>;ON+FFS@'?W3R%N5/7W^7[])K*'?"=LOY. -M77_7).Z:S)T=\%.8.W7]79.X:_XH<\!WROH[=?U=OOP!SPG;+^3EU_!^:`[Y3U=^KZNSSWI,X!WRGK[]3U=T_R7%/F -M@.^4]7?J^KLGB;LGE3O@.V7]G;K^[DGB[DGE#OA.67^GKK][TSB'?L?Y.77_W -M-,]5[I#O6'^GKK][FKA[6KA#]]\IZ^_4]7=/$W=/"W?H_CME_9VZ_N[IR9\= -MNO].67^GKK\K9U?GD.]8?Z>NOP-SR'>LOU/7WX$YY#O6WZGK[_+LOU/7WY6SJW/(=ZR_4]??@3GD.];?J>OOP!SR'>OOU/5W>>YYG4.^ -M8_V=NO[N>9ZKW"'?L?Y.77_W/''WO'"'[K]3UM^IZ^^>)^Z>%^[0_7?*^CMU -M_=WSDS\[=/^=LOY.77]7SJ[.(=^Q_DY=?P?FD.]8?Z>NOP-SR'>LOU/7W^6Y -M%W4.^8[U=^KZNQ=YKG"'[K]3UM^IZ^]>).Y>5.Z0[UA_IZZ_>Y&X>U&Y0[YC -M_9VZ_N[%Z>+LD.]8?Z>NORMG5^>0[UA_IZZ_`W/(=ZR_4]??@3GD.];?J>OO -M\MS+.H=\Q_H[=?W=RSQ7N4.^8_V=NO[N9>+N9>$.W7^GK+]3U]^]3-R]+-RA -M^^^4]7?J^KN7)W]VZ/X[9?V=NOZNG%V=0[YC_9VZ_@[,(=^Q_DY=?P?FD.]8 -M?Z>NO\MSK^H<\AWK[]3U=Z_R7.$.W7^GK+]3U]^]2MR]JMPAW['^3EU_]RIQ -M]ZIRAWS'^CMU_=VKT\79(=^Q_DY=?U?.KLXAW['^3EU_!^:0[UA_IZZ_`W/( -M=ZR_4]??Y;G7=0[YCO5WZOJ[UWFNO3_[LT/UWROH[=?U=.;LZAWS'^CMU_1V80[YC_9VZ -M_@[,(=^Q_DY=?Y?GWM0YY#O6WZGK[][DN<(=NO].67^GKK][D[A[4[E#OF/] -MG;K^[DWB[DWE#OF.]7?J^KLWIXNS0[YC_9VZ_JZ<79U#OF/]G;K^#LPAW['^ -M3EU_!^:0[UA_IZZ_RW-7=0[YCO5WZOJ[JSQ7N4.^8_V=NO[N*G%W5;A#]]\I -MZ^_4]7=7B;NKPAVZ_TY9?Z>NO[LZ^;-#]]\IZ^_4]7?E[.H<\AWK[]3U=V`. -M^8[U=^KZ.S"'?,?Z.W7]79Y[6^>0[UA_IZZ_>YOG"G?H_CME_9VZ_NYMXNYM -MY0[YCO5WZOJ[MXF[MY4[Y#O6WZGK[]Z>+LX.^8[U=^KZNW)V=0[YCO5WZOH[ -M,(=\Q_H[=?T=F$.^8_V=NOXNS[VK<\AWK+]3U]^]RW.5.^0[UM^IZ^_>)>[> -M%>[0_7?*^CMU_=V[Q-V[PAVZ_TY9?Z>NOWMW\F>'[K]3UM^IZ^_*V=4YY#O6 -MWZGK[\`<\AWK[]3U=V`.^8[U=^KZNSSWOLXAW['^3EU_]S[/%>[0_7?*^CMU -M_=W[Q-W[RAWR'>OOU/5W[Q-W[RMWR'>LOU/7W[T_79P=\AWK[]3U=^7LZASR -M'>OOU/5W8`[YCO5WZOH[,(=\Q_H[=?U=GKNN<\AWK+_3J+\S=/^=LOY.H_[. -MT/UWROH[C?H[0_??*>OO-.KO#-U_IZR_TZB_,W3_G;+^3J/^SM#]=\KZ.XWZ -M.T/WWRGK[Y3T=Q_J'/(=Z^_4]7AN -MOP-SR'>LO[/\'3=WJ'/`=\;ZNYL?>,!=]M.A<@=\9ZR_,]??'=+>H7"'[K\S -MUM^9Z^\.B;M#X0[=?V>LOS/7WQU._NS0_7?&^CMS_5TYNSH'?&>LOS/7WX$Y -MX#MC_9VY_@[,`=\9Z^_,]7=Y3NH<\)VQ_LYOOS/5WDKB3RAWPG;'^SEQ_)Z>+LP.^,];?F>OORMG5.>`[8_V=N?X. -MS`'?&>OOS/5W8`[XSEA_9ZZ_RW-:YY#O6']GKK_3/%>Y0[YC_9VY_DX3=UJX -M0_??&>OOS/5WFKC3PAVZ_\Y8?V>NO].3/SMT_YVQ_LYOOS/5W;9ZKW"'?L?[.7'_7)N[:PAVZ -M_\Y8?V>NOVL3=VWA#MU_9ZR_,]??M2=_=NC^.V/]G;G^KIQ=G4.^8_V=N?X. -MS"'?L?[.7'\'YI#O6']GKK_+ZZ -MRAWR'>OOS/5W7>*NJ]PAW['^SEQ_UYTNS@[YCO5WYOJ[Z0[UA_9ZZ_ZQ-W?>$. -MW7]GK+\SU]_UB;N^<(?NOS/6WYGK[_J3/SMT_YVQ_LYNOQM.%V>'?,?Z.W/]73F[.H=\Q_H[<_T= -MF$.^8_V=N?X.S"'?L?[.7'^7Y\8ZAWS'^CMS_=V8YRIWR'>LOS/7WXV)N[%P -MA^Z_,];?F>OOQL3=6+A#]]\9Z^_,]7?CR9\=NO_.6']GKK\K9U?GD.]8?V>N -MOP-SR'>LOS/7WX$YY#O6WYGK[_+<5.>0[UA_9ZZ_F_)LOS/7WTV) -MNZERAWS'^CMS_=V4N)LJ=\AWK+\SU]]-IXNS0[YC_9VY_JZ<79U#OF/]G;G^ -M#LPAW['^SEQ_!^:0[UA_9ZZ_RW,?ZQSR'>OOS/5W'_-LOS/7WWW*?3A=GAWS'^CMS_5TYNSJ' -M?,?Z.W/]'9A#OF/]G;G^#LPAW['^SEQ_E^<^USGD.];?F>OO/N>YRAWR'>OO -MS/5WGQ-WGPMWZ/X[8_V=N?[N<^+N<^$.W7]GK+\SU]]]/OFS0_??&>OOS/5W -MY>SJ'/(=Z^_,]7=@#OF.]7?F^CLPAWS'^CMS_5V>^U+GD.]8?V>NO_N2YPIW -MZ/X[8_V=N?[N2^+N2^4.^8[U=^;ZNR^)NR^5.^0[UM^9Z^^^G"[.#OF.]7?F -M^KMR=G4.^8[U=^;Z.S"'?,?Z.W/]'9A#OF/]G;G^+L]]K7/(=ZR_,]???OOOB;NOA;NT/UWQOH[<_W=U\3=U\(=NO_.6']GKK_[>O)GA^Z_ -M,];?F>OORMG5.>0[UM^9Z^_`'/(=Z^_,]7=@#OF.]7?F^KL\]ZW.(=^Q_LY< -M?_OOOB?NOF?NV@-^BORYQ^[-?L^]\7690W_>=GDJ -MF+OW[<=O5W>#Z+ZJMF2`T>O[P[\^=%_5K[R^[O;\6FT.,_@[_X$??[Y^^%<9 -MO+T[Z-\8S*_PX5Q^P]W=W4&WT=1^X\YC^CC(_3<\U.OTP!M^#_Y5?W^UU/VW7M'W33NDBQU::3INN+7.W[[5;[[^^__S+ -M7YO?__3W?YS'_KN^W=OK?G9MAO7V#Q_8W*L3^G9_^+=[-W?[Y?OBM/..[VRW?WDSGTP>?:GSUU4/KJ+GYN[^:ZP\.GQOM/C5TS:M/?_-O03.?^Y\$< -M^N/C?X6\VYL#EO[\<]O?_`)/FO5X_L[6G__PW6:\^32Y^T\S>OO_,DW-(.?_ -MR^[\<_O/OUW_\V[L_?7_O4VO[^[F`,$?_`?8Z=W=',"(..1LD;_=YN$<^)7> -MKYW>^=O/=Z>%#.K\H^"GSX_XUHO?GP*]7?NGT;O^O -MQO/7V!G\G?_`C]^O'_YU-]BFP4=[A>VA7Q_QL^,\]XB?'>>Y1_SL.,\]ZF?' -M>?`1/SO.>\3/CO/_I[C(WT1/\^=V6NMF==F'9K>?Q%G -M7XY__,?U]?^"MWOW>X[L2_]/OHCCGXS]$;^(G^=^_D6\IS^W^9M[LX_X1?P\ -4]ZA?Q-O#<"/3W_X?EY=\._6L```` +M'XL("-27?5P``VEM9RTQ>#$M-3$R+6=P="YQ8V]W+F]U=`"MG?U +M%:&W1$E4GG/BJ;<-E-&>E8WN60\J(C)B:&3/]?'-).^#/+FWC@U11114D&,C +M\VIQ45:MNCH<[KXU32=-VS?MU.Q+<_//Z4.:>__P\*/Y\8^__?WZ_K$G3[E_;K61-/=@ZZ]U3L]/K[/X +M.66#]F"P27.']/J$G%[[[[V^[^[MRMWI/=[;5?)V.S;8/QC\(\W]F5Z?DK<[ +ML+GQP=S)O5TE;W=B<_-/85$"R\+FUF"NA4\=V=P6S'7PJ1W/R4]^;N_F>OB4 +ML#F%/.(NX$^$W"'?+8R[)>0. +M^6YAW"TA=\AW"^-N";E#OEL8=TO('?+=PKA;0NZ0[Q;&W1IRAWRW,N[6D#OD +MNY5QMT;<]?@IPMT:<=^6QEW:\1=CWRW,N[6B+L>^6YEW*T1 +M=SWRW*N1[X[,NZ.(7?(=T?&W3'D#OGNR+@[AMPAWQT9 +M=\>0.^2[(^/N&'*'?'=DW!U#[I#OCHR[+>0.^6YCW&TA=\AW&^-NB[@;\%.$ +MNRWB;D"^VQAW6\3=@'RW,>ZVB+L!^6YCW&T1=P/RW<:XVR+N!N2[C7&W1]P- +MR'<[XVZ/N!N0[W;&W1YRAWRW,^[VD#ODNYUQMX?<(=_MC+L]Y`[Y;F?<[2%W +MR'<[XVX/N4.^VPEWDK_#YX#OY$"XDT/('?"='`AWL +MOY.POYN0[UA_)V%_-R'?L?Y.POYN0KYC_9V$_=V$?,?Z.PG[NPGYCO5W$O9W +M$_(=Z^\D[.\FY#O6WTG8WTW(=ZR_D["_FY#O6'\G87\W(=^Q_D["_FY"OF/] +MG83]W81\Q_H["?N["?F.]7<2]G<3\AWK[R3L[V;\%.$N[.]FY#O6WTG8W\W( +M=ZR_D["_FY'O6'\G87\W(]^Q_D["_FY&OF/]G83]W8Q\Q_H["?N[&?F.]7<2 +M]G]8?R=A?SOO).SO%N0[UM])V-\MR'>LOY.POUN0[UA_)V%_MR#?L?Y.POYN +M0;YC_9V$_=V"?,?Z.PG[NQ4_1;@+^[L5^8[U=Q+V=ROR'>OO).SO5N0[UM]) +MV-^MR'>LOY.POUN1[UA_)V%_MR+?L?Y.POYN1;YC_9V$_=V*?,?Z.PG[NQ7Y +MCO5W$O9W*_(=Z^\D[.]6Y#O6WTG8WZW(=ZR_D["_6Y'O6'\G87^W(M^Q_D[" +M_FY%OF/]G83]W1$_1;@+^[LC\AWK[R3L[X[(=ZR_D["_.R+?L?Y.PO[NB'S' +M^CL)^[LC\AWK[R3L[X[(=ZR_D["_.R+?L?Y.PO[NB'S'^CL)^[LC\AWK[R3L +M[X[(=ZR_D["_.R+?L?Y.PO[NB'S'^CL)^[LC\AWK[R3L[X[(=ZR_D["_.R+? +ML?Y.POYNPT\1[L+^;D.^8_V=A/W=AGS'^CL)^[L-^8[U=Q+V=QOR'>OO).SO +M-N0[UM])V-]MR'>LOY.PO]N0[UA_)V%_MR'?L?Y.POYN0[YC_9V$_=V&?,?Z +M.PG[NPWYCO5W$O9W&_(=Z^\D[.\VY#O6WTG8WVW(=ZR_D["_VY#O6'\G87^W +MXZ<(=V%_MR/?L?Y.POYN1[YC_9V$_=V.?,?Z.PG[NQWYCO5W$O9W._(=Z^\D +M[.]VY#O6WTG8W^W(=ZR_D["_VY'O6'\G87^W(]^Q_D["_FY'OF/]G83]W8Y\ +MQ_H["?N['?F.]7<2]G<[\AWK[S1_Q\TU=0[X[N8IS)VZ_B[?I]=4[H#OE/5W +MZOJ[)G'79.[L@)_"W*GK[YK$7?-GF0.^4];?J>OOFI,[.T/WWRGK[]3U=^7L +MZASPG;+^3EU_!^:`[Y3U=^KZ.S`'?*>LOU/7W^6Y)W4.^$Y9?Z>NOWN2YYHR +M!WRGK+]3U]\]2=P]J=P!WRGK[]3U=T\2=T\J=\!WROH[=?W=D]/%V0'?*>OO +MU/5WY>SJ'/"=LOY.77\'YH#OE/5WZOH[,`=\IZR_4]??Y;FG=0[YCO5WZOJ[ +MIWFNOOU/5WS_-G_S9H?OOE/5WZOJ[LOU/7W[W(UCGD.];?J>OO7N:YRAWR'>OOU/5W+Q-W+PMWZ/X[9?V=NO[N9>+N9>$. +MW7^GK+]3U]^]//FS0_??*>OOU/5WY>SJ'/(=Z^_4]7=@#OF.]7?J^CLPAWS' +M^CMU_5V>>U7GD.]8?Z>NOWN5YPIWZ/X[9?V=NO[N5>+N5>4.^8[U=^KZNU>) +MNU>5.^0[UM^IZ^]>G2[.#OF.]7?J^KMR=G4.^8[U=^KZ.S"'?,?Z.W7]'9A# +MOF/]G;K^+L^]KG/(=ZR_4]??OOO7B?N7A?NT/UWROH[=?W= +MZ\3=Z\(=NO].67^GKK][??)GA^Z_4];?J>OORMG5.>0[UM^IZ^_`'/(=Z^_4 +M]7=@#OF.]7?J^KL\]Z;.(=^Q_DY=?_6YRAWR'>OOU/5W5XF[J\(=NO]. +M67^GKK^[2MQ=%>[0_7?*^CMU_=W5R9\=NO].67^GKK\K9U?GD.]8?Z>NOP-S +MR'>LOU/7WX$YY#O6WZGK[_+LOU/7WY6SJW/(=ZR_4]?? +M@3GD.];?J>OOP!SR'>OOU/5W>>Y=G4.^8_V=NO[N79ZKW"'?L?Y.77_W+G'W +MKG"'[K]3UM^IZ^_>)>[>%>[0_7?*^CMU_=V[DS\[=/^=LOY.77]7SJ[.(=^Q +M_DY=?P?FD.]8?Z>NOP-SR'>LOU/7W^6Y]W4.^8[U=^KZN_=YKG"'[K]3UM^I +MZ^_>)^[>5^Z0[UA_IZZ_>Y^X>U^Y0[YC_9VZ_N[]Z>+LD.]8?Z>NORMG5^>0 +M[UA_IZZ_`W/(=ZR_4]??@3GD.];?J>OO\MQUG4.^8_V=1OV=H?OOE/5W&O5W +MANZ_4];?:=3?&;K_3EE_IU%_9^C^.V7]G4;]G:'[[Y3U=QKU=X;NOU/6WVG4 +MWQFZ_TY9?Z>DO_M0YY#O6'^GKK_[D.<*=^C^.V7]G;K^[D/B[D/E#OF.]7?J +M^KL/B;L/E3OD.];?J>OO/IPNS@[YCO5WZOJ[_-FA^^^,]7?F^KMR=G4.^8[U=^;Z +M.S"'?,?Z.W/]'9A#OF/]G;G^+L]9G4.^8_V=N?[.\ESA#MU_9ZR_,]??6>+. +M*G?(=ZR_,]??6>+.*G?(=ZR_,]??V>GB[)#O6']GKK\K9U?GD.]8?V>NOP-S +MR'>LOS/7WX$YY#O6WYGK[_)<6^>0[UA_9ZZ_:_-OOS/5W +M8`[YCO5WYOH[,(=\Q_H[<_U=GNOJ'/(=Z^_,]7==GBOZ0[UA_9ZZ_ZQ)W7>4.^8[U=^;ZN^YT<7;(=ZR_,]??E;.K<\AWK+\SU]^! +M.>0[UM^9Z^_`'/(=Z^_,]7=YKJ]SR'>LOS/7W_5YKG*'?,?Z.W/]79^XZPMW +MZ/X[8_V=N?ZN3]SUA3MT_YVQ_LY?_-FA^^^,]7?F^KMR=G4.^8[U=^;Z +M.S"'?,?Z.W/]'9A#OF/]G;G^+L\-=0[YCO5WYOJ[(<\5[M#]=\;Z.W/]W9"X +M&RIWR'>LOS/7WPV)NZ%RAWS'^CMS_=UPNC@[Y#O6WYGK[\K9U3GD.];?F>OO +MP!SR'>OOS/5W8`[YCO5WYOJ[/#?6.>0[UM^9Z^_&/%>Y0[YC_9VY_FY,W(V% +M.W3_G;'^SEQ_-R;NQL(=NO_.6']GKK\;3_[LT/UWQOH[<_U=.;LZAWS'^CMS +M_1V80[YC_9VY_@[,(=^Q_LY0[UA_9ZZ_^YCG*G?(=ZR_,]???4S< +M?2S3/#MU_9ZR_,]??E;.K<\AW +MK+\SU]^!.>0[UM^9Z^_`'/(=Z^_,]7=Y[E.=0[YC_9VY_NY3GBOZ0[UA_ +M9ZZ_^YRX^URX0_??&>OOS/5WGQ-WGPMWZ/X[8_V=N?[N\\F?';K_SEA_9ZZ_ +M*V=7YY#O6']GKK\#<\AWK+\SU]^!.>0[UM^9Z^_RW)X +M0_??&>OOS/5W7Q)W7RIWR'>LOS/7WWU)W'VIW"'?L?[.7'_WY71Q=LAWK+\S +MU]^5LZMSR'>LOS/7WX$YY#O6WYGK[\`<\AWK[\SU=WGN:YU#OF/]G;G^[FN> +MJ]PAW['^SEQ_]S5Q][5PA^Z_,];?F>OOOB;NOA;NT/UWQOH[<_W=UY,_.W3_ +MG;'^SEQ_5\ZNSB'?L?[.7'\'YI#O6']GKK\#<\AWK+\SU]_EN6]U#OF.]7?F +M^KMO>:YPA^Z_,];?F>OOOB7NOE7ND.]8?V>NO_N6N/M6N4.^8_V=N?[NV^GB +M[)#O6']GKK\K9U?GD.]8?V>NOP-SR'>LOS/7WX$YY#O6W[7Y.V[N>YT#OFM9 +M?]>Z_NY[GJO<`=_=/(6Y:UU_]SUQ]SUSUQ[P4^3//79O]GONC:_+'/KSMLM3 +MP=R];S]^N[H;1/=5M24#C%[?G_[UH?NJ?N7U=;?GUVISF,'?^0_\^.OUP[_* +MX.W=0?_!8'Z%#^?R&^[N[@ZZC::V&W?NZ>,@]]_P4*_3`V_XR?6].?1G,__* +M^:'K?GXVV'7-/%\,_D]^?;?7_;1=T_9-.Z6+'%MI.FVZMLS=OM=NO?_Z?O_; +MWYL__O+/_SZ/_6]]N[?7_=P\/(VWOUOB#ND@[.W^L_S^PGWZNKOK?BY..\\9 +MFRNWS+FYVR_?W4_FT`>?:W_VU$'IJ[OXN;V;N_WRW=;_Y7C_J?//4==L<[,O +M9.[WWQ_.H3\^_E?(N[TY8.F;X>;_M-[\`D^:=3]_Y]B?__#=9KSY-+G[5S-Z +M^]\R3>Y1_SL.,\] +MXF?'>>Y1/SO.@X_XV7&>>\3/CO/<(WYVG.<>];/C9O#V]QP?Z8OX>>[,WFY- +M.S;;#$M-3$R+6=P="YQ8V]W,BYO=70`K9A+;YPP$(#O -M^15.WTT:BLVL/[`*G*E+OM+^]&!N\F!F<;+V+5HFL^30V -MWXP-:6H^C"G.9,9DR=HMZ_^W%["]?^87ZVXWU\G^ISLR,)X24&J($X@45L*MPOB)!)5 -M4[@FB%-(5$O@>$"5'I-X=6]PCAVN1*,H[ -M\+Q[;'%/)AS'HBCOP//NJ<4]/;>X%PZ']#N@O`//NY<6=^)P -M2+\#RCOPO#NUN%<.A_0[H+P#S[NSA7<2<\[UY;5NIP2+\3E'?"\XY; -M'#@"\DYXWBF+RQP.Z7>"\DYXWN465S@XO[X'!(OQ.4=]+S[J/%?7(X -MI-])RCOI>7=N<1<.A_0[27DG/>\N+>[SA`,L:O(N3?'+XJX6-0M(OY/9/7&; -M)8Y^6#GD."O=<9LCO_3`"K!X.)#<:Z4YI\2;L#(3UE95R"\]T%TD\^\$'&KW -M`<`QPSG.3EB9VC4/C$W#VM9>9J5L<-ZZ`P(RX>-D#U='7K^AW!X`5(I5U0+X -M?^OLR[@=YN-30#!4S)"3?,5>WV\[O:7+.;\Z_?-.R'F^Y0;AK7Z(>E -M*O.RX]1TK[X@]BE3;LO5'G&"PDW',@^GCQ=YO8+#+M;](7!R+6IZZ7"/>VMP -M*IU'[;XWT -M7ZNG^_)615N]TLJ"7?0`N7J563U\D712:,ETXZJ-!3?BMI%7+]/#?7WT_7OY -M2P]T-\G\:X#2`J-E*+-V%[$Z-"YB=6A(:I]TK"Z9J5DK6UO,TR.VX2WZBTVU@;>M?V<3QF]%$W,0U;G43 ->SQMRLO;SUYMLQ$U#$M-3$R+6=P="YQ8V]W,BYO=70`K9A+=I/9,;DFGO?4"-APSTSOM;R]"`H'818DKF_'$H]DO*_'M +M2B9-S8LQQ9G,F-RPIF+==WL!FWR97ZR]W]TFTU=[8F`\):*0`2E&W(QUXW!` +MX5*^'.`X;I*=0'`P1"U!(9PDLUL;0'#G)_W2]3>C\"+$,4"#(V_&4?F!R<^/ +MD$?F!['S$_CZJ2'.'\C6\Q,F/S\JIW!%$`=(U(;"E4&<0*(J"KB!(6305R!1%'>\;!W&R2*\HZ'O2N1*,H[ +M'O:N0J(H[WC8NST217G'P]X=D"C*.R"\8PY7(U&4=^!Y=VIQSQRN0:(H[\#S +M[KG%O1AQ'(NBO`//NY<6]\KAD'X'E'?@>??:XLX<#NEW0'D'GG=O+.[-Z]LZS4X9!^)RCOA.<=MSAP +M.*3?"=Y\L[K/#(?U.4-Y)S[LO%O?5X9!^ +M)RGOI.?=E<5=.QS2[R3EG?2\N[&X;R,.L*C1NS3%+XO;+FH6D'XGLT?B=DL< +M_6/EF..L=,=MCGS2`RO`XNE`7V!*!2K"P7P)]# +M?GVY=?5EG@UT=JN^&2A@2HZX?JYJ/\UON[ME=U???VC8+S?=OMR:_E]VAX>B +M]++C]'3/EO8I4V[+U1YP@L2=)BA.'R_RPPH.NUC[A\#)M:CQH<,C[JW!Z>/% +M^%.[NZ9MJ[]'BM7E_/G-%+?=SG%99/.D'JXREN]95NOG2?M&_W'(]*\T5G1E +M8K9MZ,]8&Y9S?7;K@.W#??)@8)?)[PN;G^36".RB!ZC5D[!FA$XJ,%TVQV&/ +MD?YK]71?KE2TU=O8-H5=]`"Y>J59/7R1=%)HR;3#J@T%-^"JR*N7Z>&N/KK^ +MO?RD!]J[9/XV0&F!T3*46;./6!T:%[$Z-"YB=6AY/GZ?_`/D@(G0%1H````` ` end Modified: head/usr.bin/mkimg/tests/img-1x1-512-gpt.raw.gz.uu ============================================================================== --- head/usr.bin/mkimg/tests/img-1x1-512-gpt.raw.gz.uu Tue Mar 5 22:04:23 2019 (r344825) +++ head/usr.bin/mkimg/tests/img-1x1-512-gpt.raw.gz.uu Tue Mar 5 22:55:33 2019 (r344826) @@ -1,15 +1,15 @@ # $FreeBSD$ begin 644 img-1x1-512-gpt.raw.gz -M'XL(",9Q+ED``VEM9RTQ>#$M-3$R+6=P="YR87EIJKH,&+Z/(6S'"-6>OQ:8-8YR(N)1N>QG06BC+!?`]Q:?[X[!@')@]Z/"^!*/` -M:K#F%]?G:NMQ?(]/SW"X?WU#V,;L1I]%I4 -M.^$*$K?-XXIXMC0NMVF<6?.*/?2_LXTX*Z=>?NSE+7@-KH:F)'&?$YQC[CR# -MYLK!K@9W!*N@;O&A<:!4B"_(Q/>04-\&Y!YV"G2%P.[T(DX1=B.^KH?XC!HZ -M(K=I`U4]H]@C_+^7=]K0'<3TBD`S`-DB#,WG&-6!.$9U((Y1'8AC50<"&=6! -M.$9U((Y1'8AC54<`>LDWQ!'7#W$#NP::`HKY$*?&<2>^Q6TF7:_71O_*$,\? -CAF<#$M-3$R+6=P="YR87<5G*6!5L-[ +MCQ/C=1037#5Z+5;<,,6)@!O2;?8!K85S"^#7$)_NCL/"I#`YM-\O812LAC4W +M7)>K+:?QG5_?<'G^^"38]YBN5M[H2CB#^H0FN8M._3_=@-/DM:CV@$NBN.,Z +M+@EG&\>MK3C.;'F%'MJ3K`W)WG9F4R\Z(XO:H2DBN/-YCDN9.\^0N4AQ*I'6 +ML`IE0R]5"J6`S,LDZR"^OA5DCI."+@C87M_%-<">Q,]C'Y]1?4>LK;@A5CVC +MMSJ"@OHC79:M>WO^FUE;<$*V>"]5;+U)4,NU0M4$A`ZY@KEY* +M9J\/__]>/N.&]B+F=P":'L@6H6^^E%$=A&-4!^$8U4$X5G40D%$=A&-4!^$8 +MU4$X5G5X8";YACCANB%ND.;J9WAK]&T-\_3`RQB%.N.TA +8GNQ-EG&($XYUB'N@D_+P"ZG]1LB("P`` ` end Modified: head/usr.bin/mkimg/tests/img-1x1-512-gpt.vhd.gz.uu ============================================================================== --- head/usr.bin/mkimg/tests/img-1x1-512-gpt.vhd.gz.uu Tue Mar 5 22:04:23 2019 (r344825) +++ head/usr.bin/mkimg/tests/img-1x1-512-gpt.vhd.gz.uu Tue Mar 5 22:55:33 2019 (r344826) @@ -1,22 +1,22 @@ # $FreeBSD$ begin 644 img-1x1-512-gpt.vhd.gz -M'XL(",9Q+ED``VEM9RTQ>#$M-3$R+6=P="YV:&0N;W5T`*V82W/3,!"`[_D5 -MV^%6!H_>=F[0F3)P*PP,%RY^I62`\&@//9C_CE:6;,NV#&G743U)E/V\+ZVV -M8JR_`(P$7Q^^W`2<\3GB0SE%*"C#5XCG*?EOTVB'I -MTU%\=^[=J:?2*2*&?3CBSF9-E?X5!'AQUX#A>F\92XXROTB>5" -M=*T3F`X3PID?>V]$P50_P]F&S]/!2.I7HGYV,;!RY9Z>Z*ZR^#4`J^H\8/!@ -MC!L,KFKTGZL#;3M:U">)%Y82!$\&1%Y,_%^^M.PF56ETR85?+LHL85]%ZC[OVT:X/6[^7]_1$=Y/%KQXH -M_#9$MJ\)7TC)-%0>2*:A\NN74$.N-H-Y;I25R`5AA4$<885!'&&%01QIA4$@ -M885!'&&%01QAA4$<:86Q0)?,1(T0XGS?;/UQ;=G\!II']:``3```` +M'XL("-27?5P``VEM9RTQ>#$M-3$R+6=P="YV:&0N;W5T`*V82V_4,!"`[_LK +MINJMB"A^9O=(I47B@"@(Q(5+'DZ[`I9'>^@A_'<\CIW$FSBP[63=*+O.?)F7 +MQ]/D>7\`:`&Z!6U`*[PN).@=%%L`.^D'=V?FOT)7_SB:^N'PF/FCV_0PED^E +M8G&4YP*D?4@!O,2'Z`:OH0N8[')_>W7X?AMPW..X!ZD"I00'7(^VOVUX[ +M)'T^\*\.>7TW:"?FVHU2]J]H()?`V.0.$;2SF.Q/;*RT4FWKAH;&H.PPHB_1 +MQ&CLB>]4?B(U47/)J?EH[!).KTF=@[O:^%CTJ6(3H[#G'#2#@N.U39O@A]FP +MJ?)X_[/\?6].]..)5-&#?FPV)]+F&U$PU4^S?,7GZ6`D]2M1/[L8\G+AG)[HKK/X,P"KZCQ@ +M\&",&PRN:O2?JP/&C!;U2>*%A0#.D@$1%Q/_50UQ?*OV/*!24)8SX*>@7^W" +MH4!JD#M,#%L<)`/%08WI[&Q5]52__>LW$?1G-K3%=9`-E#8RCGV+M +MYBO-X]Y:MRTLMAH7V]S;`2=2N#X$)V]^LW=QN +M;W9CMXZN$-@=WV?''O8R^_7"ZV>8SXBED9Y(><_PM8Q`I?YA+L0XZKILMN@] +M1>:]G2]32R,]D?1>V7MOV4FHU.*2";M:EEW$N(K6>\RUCW9]V/H]/Z<$)*PSB""L,X@@K#.)( +M*PP""2L,X@@K#.((*PSB2"N,!;ID)FJ$$.<:H19,`SO[CTL=JY%L:;IW6?8- +M42(V5_*U]BG=""6"(0D;(<2M-D(B'5M_\!-C"1LAQ)$V0MH74J)W&3HT0G,= +MGO(N0X=&:'C\L]YEZ.5&Z*GO,A!'^"X#<83O,A!'G"K8MVS^`DBJ@3\`$P`` ` end Modified: head/usr.bin/mkimg/tests/img-1x1-512-gpt.vhdf.gz.uu ============================================================================== --- head/usr.bin/mkimg/tests/img-1x1-512-gpt.vhdf.gz.uu Tue Mar 5 22:04:23 2019 (r344825) +++ head/usr.bin/mkimg/tests/img-1x1-512-gpt.vhdf.gz.uu Tue Mar 5 22:55:33 2019 (r344826) @@ -1,19 +1,19 @@ # $FreeBSD$ begin 644 img-1x1-512-gpt.vhdf.gz -M'XL(",9Q+ED``VEM9RTQ>#$M-3$R+6=P="YV:&1F+F]U=`"METV/TS`0AN_] -M%8,X5%I$9#NVDQQ!6B1N!1;MA4L^G%4%%"%QX-`?SXSMM'9C!Q8YL:)4DWDR -M\V8FDS+F-@`I@/6)8]YP?EO%^WEWM[,T/CP/B/>G$&Z`%0(=;D0C$W2-,3#/ -M?C%NO9PS_A:-/U]PU77;5P%NNGBM5]X0XBJ'6]*=GP=4"OI^!?R\Q"?LXU`@ -M-<@.!%[/0')0`I2\X&SN:@SCNW_W'@YO/CX0[,LU7<'1.(_036`:0L31\8UT -M'^)T'4X0;J7V@JNSN/VM>@Y7$V[:P*56'B>WO%P-_=NS=3C%8J\V]&H5M`+T -M"%.?Q7V+<+IPY4DR#QJ:$;0!Q6&3Q^J -MDX.]KGZ^\O%)[BLBM?*&G'I2;%4$!?67="'&U:75:TD]54R]SA=+:N4-6?5Z -MIUY:)`HJU;J(\ZI5+V+<4%@]36;L#WQ_KX]YP_E0Q;L#2@\L%J& Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 36DFC151AAE3; Tue, 5 Mar 2019 23:20:45 +0000 (UTC) (envelope-from jacob.e.keller@intel.com) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "orsmga106.jf.intel.com", Issuer "COMODO RSA Organization Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 308258D81F; Tue, 5 Mar 2019 23:20:43 +0000 (UTC) (envelope-from jacob.e.keller@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Mar 2019 15:19:32 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,445,1544515200"; d="scan'208,217";a="325727859" Received: from orsmsx103.amr.corp.intel.com ([10.22.225.130]) by fmsmga005.fm.intel.com with ESMTP; 05 Mar 2019 15:19:31 -0800 Received: from orsmsx159.amr.corp.intel.com (10.22.240.24) by ORSMSX103.amr.corp.intel.com (10.22.225.130) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 5 Mar 2019 15:19:31 -0800 Received: from orsmsx121.amr.corp.intel.com ([169.254.10.201]) by ORSMSX159.amr.corp.intel.com ([169.254.11.151]) with mapi id 14.03.0415.000; Tue, 5 Mar 2019 15:19:31 -0800 From: "Keller, Jacob E" To: Eric Joyner , "rgrimes@freebsd.org" , Matthew Macy CC: src-committers , svn-src-all , svn-src-head Subject: RE: svn commit: r344817 - in head/sys: dev/e1000 net Thread-Topic: svn commit: r344817 - in head/sys: dev/e1000 net Thread-Index: AQHU05+W+EO+3hIYEE2DGeJKsI7ho6X9orCw Date: Tue, 5 Mar 2019 23:19:30 +0000 Message-ID: <02874ECE860811409154E81DA85FBB5892315C41@ORSMSX121.amr.corp.intel.com> References: <5c7ee64f.1c69fb81.1168f.5802SMTPIN_ADDED_BROKEN@mx.google.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMmI3ZjlhMjQtZjc1ZS00YWU3LWJhODAtMjIyZDAzZWZhYmM2IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiZ29JRXlQa0R0N0oxTWp0RjExTzZnYmFSdXpUMFVFeWJlYmdidkFkYmJFUXFNbll5ZGlvKzhvRWI4TmdwTnAyQiJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.22.254.140] MIME-Version: 1.0 X-Rspamd-Queue-Id: 308258D81F X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.983,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TAGGED_RCPT(0.00)[]; REPLY(-4.00)[] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 23:20:45 -0000 SGksDQoNClNvIG9uZSBvZiB0aGUgcHJvYmxlbXMgaXMgdGhhdCBpZmxpYiBzZXRzIHVwIHRoZSBi dWZmZXJzLCBidXQgZHJpdmVycyBhbHNvIGhhdmUgdG8gYWN0dWFsbHkgZW5zdXJlIHRoYXQgdGhl eSBjb25maWd1cmUgaGFyZHdhcmUgdG8gdXNlIHRoZSBleHRyYSBzcGFjZS4gVGhpcyBjdXJyZW50 bHkgbWVhbnMgY29weWluZyB0aGF0IGNoZWNrIHRvIGV2ZXJ5IGRyaXZlci4gSXTigJlzIG5vdCBj b3BpZWQgdG8gYW55d2hlcmUgZXhjZXB0IHRoZSBlbSBkcml2ZXIsIHdoaWNoIG1lYW5zIG1vc3Qg b2YgdGhlIGlmbGliIGRyaXZlcnMgdG9kYXkgd291bGQgZ2V0IHplcm8gYmVuZWZpdCBvdXQgb2Yg ZW5hYmxpbmcgQ09OVElHX01BTExPQ1dPUktTLg0KDQpGdXJ0aGVyLCB0aGUgZGVmaW5lIGlzICpu b3QqIGRvY3VtZW50ZWQgYW55d2hlcmUgaW4gdGhlIGtlcm5lbCwgYW5kIHRoZSBuYW1lIGlzIGNv bmZ1c2luZyBzbyBpdOKAmXMgdW5jbGVhciB3aGF0IGl04oCZcyBwdXJwb3NlIHdhcyBmb3IuDQoN ClBlcnNvbmFsbHksIEnigJlkIGxpa2UgdG8gc2VlDQoNCg0KYSkgICAgICBhIGJldHRlciBuYW1l ICh0aG91Z2ggc3RpY2tpbmcgd2l0aCBDT05USUdfTUFMTE9DV09SS1MgaXMgb2ssIHNpbmNlIGl0 IHdhcyBhbHJlYWR5IGluIHVzZSkNCg0KYikgICAgICBkb2N1bWVudGVkIHNvbWVob3csIHBvc3Np Ymx5IGxpa2UgYW4gb3B0Xyogb3B0aW9uIGxpa2UgUlNTIGlzLCBhbmQgd2l0aCBzb21ldGhpbmcg d2hpY2ggZXhwbGFpbnMgd2h5IGFuZCBob3cgdG8gZW5hYmxlIGl0DQoNCmMpICAgICAgIGV4dGVu ZCBpZmxpYiB0byBwcm92aWRlIGFjY2VzcyB0byB0aGUgYWN0dWFsbHkgc2VsZWN0ZWQgYnVmZmVy IHNpemUsIHNvIHRoYXQgaWZsaWIgZHJpdmVycyBkb27igJl0IG5lZWQgdG8gZHVwbGljYXRlIHRo aXMgY2FsY3VsYXRpb24gd2hlbiBzZXR0aW5nIHVwIHRoZSByZWNlaXZlIGJ1ZmZlcnMgaW4gaGFy ZHdhcmUNCg0KZCkgICAgICBleHRlbmQgaWZsaWIgdG8gcHJldmVudCB1c2luZyBhIGxhcmdlciBh bGxvY2F0aW9uIHNpemUgdGhhbiB0aGUgbWF4aW11bSBSWCBzZWdtZW50IHNpemUuIChpLmUuIG5v dCBhbGwgaGFyZHdhcmUgc3VwcG9ydHMgOWsgb3IgMTZrIGp1bWJvIGZyYW1lcywgc28gaXTigJlz IGEgYml0IHdlaXJkIGZvciBpZmxpYiB0byBhbGxvY2F0ZSBidWZmZXJzIHRoaXMgbGFyZ2Ugd2hl biB0aGV5IHdvbuKAmXQgYmUgdXNlZCkuDQoNClRoYW5rcywNCkpha2UNCg0KRnJvbTogRXJpYyBK b3luZXIgW21haWx0bzplcmpAZnJlZWJzZC5vcmddDQpTZW50OiBUdWVzZGF5LCBNYXJjaCAwNSwg MjAxOSAyOjA2IFBNDQpUbzogcmdyaW1lc0BmcmVlYnNkLm9yZzsgTWF0dGhldyBNYWN5IDxtYXQu bWFjeUBnbWFpbC5jb20+DQpDYzogc3JjLWNvbW1pdHRlcnMgPHNyYy1jb21taXR0ZXJzQGZyZWVi c2Qub3JnPjsgc3ZuLXNyYy1hbGwgPHN2bi1zcmMtYWxsQGZyZWVic2Qub3JnPjsgc3ZuLXNyYy1o ZWFkIDxzdm4tc3JjLWhlYWRAZnJlZWJzZC5vcmc+OyBLZWxsZXIsIEphY29iIEUgPGphY29iLmUu a2VsbGVyQGludGVsLmNvbT4NClN1YmplY3Q6IFJlOiBzdm4gY29tbWl0OiByMzQ0ODE3IC0gaW4g aGVhZC9zeXM6IGRldi9lMTAwMCBuZXQNCg0KSSdtIGNjJ2luZyBKYWtlIHNvIHRoYXQgaGUgY2Fu IHByb3ZpZGUgYSByZXNwb25zZS4NCg0KLSBFcmljDQoNCk9uIFR1ZSwgTWFyIDUsIDIwMTkgYXQg MToxMiBQTSBSb2RuZXkgVy4gR3JpbWVzIDxmcmVlYnNkQGduZHJzaC5kbnNtZ3IubmV0PG1haWx0 bzpmcmVlYnNkQGduZHJzaC5kbnNtZ3IubmV0Pj4gd3JvdGU6DQo+IFRoaXMgcmVwcmVzZW50cyBh IG1pc3VuZGVyc3RhbmRpbmcgb2YgaG93IGRlZmluZXMgYXJlIHVzZWQuIFRoaXMgbGVmdA0KPiB0 aGUgb3B0aW9uIG9wZW4gdG8gdGhlIHVzZXIgdG8gZW5hYmxlIHRoZSB1c2Ugb2YgbGFyZ2VyIHRo YW4gcGFnZSBzaXplDQo+IGJ1ZmZlcnMgYXMgaXQgZG9lcyBlbmFibGUgYmV0dGVyIHBlcmZvcm1h bmNlLiBPdmVyIHRoZSBjb3Vyc2Ugb2YgYQ0KPiBsb25nIHVwdGltZSBtZW1vcnkgY2FuIGdldCB0 b28gZnJhZ21lbnRlZC4gSG93ZXZlciwgdGhpcyBsZWZ0IGl0IG9wZW4NCj4gdG8gdGhlIGVuZCBj b25zdW1lci4NCj4NCj4gSSdkIGxpa2UgdG8gc2VlIHRoaXMgcmV2ZXJ0ZWQgd2l0aCBwZXJoYXBz IGEgYmV0dGVyIG5hbWUgZm9yIHRoZQ0KPiBkZWZpbmUgYW5kIHRoZSBhZGRpdGlvbiBvZiBhbiBl eHBsYW5hdG9yeSBjb21tZW50Lg0KPiBUaGFua3MuDQpZZXMgcGxlYXNlLg0KDQpBbHNvLCBNYXR0 LCBkb2VzIGl0L3dvdWxkIGl0IHdvcmsgdG8gc3RvcCB0aGUgbWVtb3J5IGZyYWdtZW50YXRpb24g aXNzdWUNCmlmIHdlIHB1c2ggdGhlIGFsbG9jYXRpb24gdXAgdG8gdGhlIG5leHQgcGFnZSBzaXpl IGFuZCBqdXN0IHdhc3RlIHRoZQ0KM2sgYnl0ZXM/ICBTb21lIHBlb3BsZSBtaWdodCBiZSB3aWxs aW5nIHRvIG1ha2UgdGhhdCB0cmFkZSBvZmYgdG8gZ2V0DQpsb25nIHVwIHRpbWVzIGFuZCBmdWxs IDlrIGp1bWJvJ3MuDQoNCg0KVGhhbmtzLA0KUm9kDQoNCj4gLU0NCj4NCj4gT24gVHVlLCBNYXIg NSwgMjAxOSBhdCAxMToxMyBBTSBFcmljIEpveW5lciA8ZXJqQGZyZWVic2Qub3JnPG1haWx0bzpl cmpAZnJlZWJzZC5vcmc+PiB3cm90ZToNCj4gPg0KPiA+IEF1dGhvcjogZXJqDQo+ID4gRGF0ZTog VHVlIE1hciAgNSAxOToxMjo1MSAyMDE5DQo+ID4gTmV3IFJldmlzaW9uOiAzNDQ4MTcNCj4gPiBV Ukw6IGh0dHBzOi8vc3Zud2ViLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzM0NDgxNw0KPiA+ DQo+ID4gTG9nOg0KPiA+ICAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gQ09OVElHTUFMTE9DX1dPUktT IGluIGlmbGliIGFuZCBlbQ0KPiA+DQo+ID4gICBGcm9tIEpha2U6DQo+ID4gICAiVGhlIGlmbGli X2ZsX3NldHVwKCkgZnVuY3Rpb24gdHJpZXMgdG8gcGljayB2YXJpb3VzIGJ1ZmZlciBzaXplcyBi YXNlZA0KPiA+ICAgb24gdGhlIG1heF9mcmFtZV9zaXplIHZhbHVlIGRlZmluZWQgYnkgdGhlIHBh cmVudCBkcml2ZXIuIEhvd2V2ZXIsIHRoaXMNCj4gPiAgIGNvZGUgd2FzIHdyYXBwZWQgdW5kZXIg Q09OVElHTUFMTE9DX1dPUktTLCB3aGljaCB3YXMgbmV2ZXIgYWN0dWFsbHkNCj4gPiAgIGRlZmlu ZWQgYW55d2hlcmUuDQo+ID4NCj4gPiAgIFRoaXMgc2FtZSBjb2RlIHBhdHRlcm4gd2FzIHVzZWQg aW4gaWZfZW0uYywgbGlrZWx5IHRyeWluZyB0byBtYXRjaA0KPiA+ICAgd2hhdCBpZmxpYiB1c2Vz Lg0KPiA+DQo+ID4gICBTaW5jZSBDT05USUdNQUxMT0NfV09SS1MgaXMgbm90IGRlZmluZWQsIHJl bW92ZSB0aGlzIGRlYWQgY29kZSBmcm9tDQo+ID4gICBpZmxpYl9mbF9zZXR1cCBhbmQgaWZfZW0u Yw0KPiA+DQo+ID4gICBHaXZlbiB0aGF0IHZhcmlvdXMgaWZsaWIgZHJpdmVycyBhcHBlYXIgdG8g YmUgdXNpbmcgYSBzaW1pbGFyDQo+ID4gICBjYWxjdWxhdGlvbiwgaXQgbWlnaHQgYmUgd29ydGgg bWFraW5nIHRoaXMgYnVmZmVyIHNpemUgYSB2YWx1ZSB0aGF0IHRoZQ0KPiA+ICAgZHJpdmVyIGNh biBwZWVrIGF0IGluIHRoZSBmdXR1cmUuIg0KPiA+DQo+ID4gICBTdWJtaXR0ZWQgYnk6IEphY29i IEtlbGxlciA8amFjb2IuZS5rZWxsZXJAaW50ZWwuY29tPG1haWx0bzpqYWNvYi5lLmtlbGxlckBp bnRlbC5jb20+Pg0KPiA+ICAgUmV2aWV3ZWQgYnk6ICBzaHVyZEANCj4gPiAgIE1GQyBhZnRlcjog ICAgMSB3ZWVrDQo+ID4gICBTcG9uc29yZWQgYnk6IEludGVsIENvcnBvcmF0aW9uDQo+ID4gICBE aWZmZXJlbnRpYWwgUmV2aXNpb246ICAgICAgICBodHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcv RDE5MTk5DQo+ID4NCj4gPiBNb2RpZmllZDoNCj4gPiAgIGhlYWQvc3lzL2Rldi9lMTAwMC9pZl9l bS5jDQo+ID4gICBoZWFkL3N5cy9uZXQvaWZsaWIuYw0KPiA+DQo+ID4gTW9kaWZpZWQ6IGhlYWQv c3lzL2Rldi9lMTAwMC9pZl9lbS5jDQo+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4gLS0t IGhlYWQvc3lzL2Rldi9lMTAwMC9pZl9lbS5jICBUdWUgTWFyICA1IDE5OjA4OjM3IDIwMTkgICAg ICAgIChyMzQ0ODE2KQ0KPiA+ICsrKyBoZWFkL3N5cy9kZXYvZTEwMDAvaWZfZW0uYyAgVHVlIE1h ciAgNSAxOToxMjo1MSAyMDE5ICAgICAgICAocjM0NDgxNykNCj4gPiBAQCAtMTI3NiwxNSArMTI3 Niw4IEBAIGVtX2lmX2luaXQoaWZfY3R4X3QgY3R4KQ0KPiA+ICAgICAgICAgICovDQo+ID4gICAg ICAgICBpZiAoYWRhcHRlci0+aHcubWFjLm1heF9mcmFtZV9zaXplIDw9IDIwNDgpDQo+ID4gICAg ICAgICAgICAgICAgIGFkYXB0ZXItPnJ4X21idWZfc3ogPSBNQ0xCWVRFUzsNCj4gPiAtI2lmbmRl ZiBDT05USUdNQUxMT0NfV09SS1MNCj4gPiAgICAgICAgIGVsc2UNCj4gPiAgICAgICAgICAgICAg ICAgYWRhcHRlci0+cnhfbWJ1Zl9zeiA9IE1KVU1QQUdFU0laRTsNCj4gPiAtI2Vsc2UNCj4gPiAt ICAgICAgIGVsc2UgaWYgKGFkYXB0ZXItPmh3Lm1hYy5tYXhfZnJhbWVfc2l6ZSA8PSA0MDk2KQ0K PiA+IC0gICAgICAgICAgICAgICBhZGFwdGVyLT5yeF9tYnVmX3N6ID0gTUpVTVBBR0VTSVpFOw0K PiA+IC0gICAgICAgZWxzZQ0KPiA+IC0gICAgICAgICAgICAgICBhZGFwdGVyLT5yeF9tYnVmX3N6 ID0gTUpVTTlCWVRFUzsNCj4gPiAtI2VuZGlmDQo+ID4gICAgICAgICBlbV9pbml0aWFsaXplX3Jl Y2VpdmVfdW5pdChjdHgpOw0KPiA+DQo+ID4gICAgICAgICAvKiBVc2UgcmVhbCBWTEFOIEZpbHRl ciBzdXBwb3J0PyAqLw0KPiA+DQo+ID4gTW9kaWZpZWQ6IGhlYWQvc3lzL25ldC9pZmxpYi5jDQo+ ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4gLS0tIGhlYWQvc3lzL25ldC9pZmxpYi5jICAg ICAgICBUdWUgTWFyICA1IDE5OjA4OjM3IDIwMTkgICAgICAgIChyMzQ0ODE2KQ0KPiA+ICsrKyBo ZWFkL3N5cy9uZXQvaWZsaWIuYyAgICAgICAgVHVlIE1hciAgNSAxOToxMjo1MSAyMDE5ICAgICAg ICAocjM0NDgxNykNCj4gPiBAQCAtMjE4NywxNyArMjE4Nyw4IEBAIGlmbGliX2ZsX3NldHVwKGlm bGliX2ZsX3QgZmwpDQo+ID4gICAgICAgICAgKi8NCj4gPiAgICAgICAgIGlmIChzY3R4LT5pc2Nf bWF4X2ZyYW1lX3NpemUgPD0gMjA0OCkNCj4gPiAgICAgICAgICAgICAgICAgZmwtPmlmbF9idWZf c2l6ZSA9IE1DTEJZVEVTOw0KPiA+IC0jaWZuZGVmIENPTlRJR01BTExPQ19XT1JLUw0KPiA+ICAg ICAgICAgZWxzZQ0KPiA+ICAgICAgICAgICAgICAgICBmbC0+aWZsX2J1Zl9zaXplID0gTUpVTVBB R0VTSVpFOw0KPiA+IC0jZWxzZQ0KPiA+IC0gICAgICAgZWxzZSBpZiAoc2N0eC0+aXNjX21heF9m cmFtZV9zaXplIDw9IDQwOTYpDQo+ID4gLSAgICAgICAgICAgICAgIGZsLT5pZmxfYnVmX3NpemUg PSBNSlVNUEFHRVNJWkU7DQo+ID4gLSAgICAgICBlbHNlIGlmIChzY3R4LT5pc2NfbWF4X2ZyYW1l X3NpemUgPD0gOTIxNikNCj4gPiAtICAgICAgICAgICAgICAgZmwtPmlmbF9idWZfc2l6ZSA9IE1K VU05QllURVM7DQo+ID4gLSAgICAgICBlbHNlDQo+ID4gLSAgICAgICAgICAgICAgIGZsLT5pZmxf YnVmX3NpemUgPSBNSlVNMTZCWVRFUzsNCj4gPiAtI2VuZGlmDQo+ID4gICAgICAgICBpZiAoZmwt PmlmbF9idWZfc2l6ZSA+IGN0eC0+aWZjX21heF9mbF9idWZfc2l6ZSkNCj4gPiAgICAgICAgICAg ICAgICAgY3R4LT5pZmNfbWF4X2ZsX2J1Zl9zaXplID0gZmwtPmlmbF9idWZfc2l6ZTsNCj4gPiAg ICAgICAgIGZsLT5pZmxfY2x0eXBlID0gbV9nZXR0eXBlKGZsLT5pZmxfYnVmX3NpemUpOw0KPiA+ DQo+DQo+DQoNCi0tDQpSb2QgR3JpbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJncmltZXNAZnJlZWJzZC5vcmc8bWFpbHRvOnJncmltZXNAZnJlZWJz ZC5vcmc+DQo= From owner-svn-src-head@freebsd.org Tue Mar 5 23:56:41 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B9910151C0EC; Tue, 5 Mar 2019 23:56: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 5E4CD8EF29; Tue, 5 Mar 2019 23:56: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 4DB952368C; Tue, 5 Mar 2019 23:56:41 +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 x25NufjL019511; Tue, 5 Mar 2019 23:56:41 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25Nuf9H019510; Tue, 5 Mar 2019 23:56:41 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201903052356.x25Nuf9H019510@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 5 Mar 2019 23:56:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344827 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 344827 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5E4CD8EF29 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.953,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 23:56:41 -0000 Author: markj Date: Tue Mar 5 23:56:40 2019 New Revision: 344827 URL: https://svnweb.freebsd.org/changeset/base/344827 Log: Add pmap_get_tables() for riscv. This mirrors the arm64 implementation and is for use in the minidump code. Submitted by: Mitchell Horne Differential Revision: https://reviews.freebsd.org/D18321 Modified: head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Tue Mar 5 22:55:33 2019 (r344826) +++ head/sys/riscv/riscv/pmap.c Tue Mar 5 23:56:40 2019 (r344827) @@ -4438,3 +4438,40 @@ pmap_is_valid_memattr(pmap_t pmap __unused, vm_memattr return (mode >= VM_MEMATTR_DEVICE && mode <= VM_MEMATTR_WRITE_BACK); } + +bool +pmap_get_tables(pmap_t pmap, vm_offset_t va, pd_entry_t **l1, pd_entry_t **l2, + pt_entry_t **l3) +{ + pd_entry_t *l1p, *l2p; + + /* Get l1 directory entry. */ + l1p = pmap_l1(pmap, va); + *l1 = l1p; + + if (l1p == NULL || (pmap_load(l1p) & PTE_V) == 0) + return (false); + + if ((pmap_load(l1p) & PTE_RX) != 0) { + *l2 = NULL; + *l3 = NULL; + return (true); + } + + /* Get l2 directory entry. */ + l2p = pmap_l1_to_l2(l1p, va); + *l2 = l2p; + + if (l2p == NULL || (pmap_load(l2p) & PTE_V) == 0) + return (false); + + if ((pmap_load(l2p) & PTE_RX) != 0) { + *l3 = NULL; + return (true); + } + + /* Get l3 page table entry. */ + *l3 = pmap_l2_to_l3(l2p, va); + + return (true); +} From owner-svn-src-head@freebsd.org Tue Mar 5 23:58:17 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6A2F4151C3D2; Tue, 5 Mar 2019 23:58: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 0D2F28F0BA; Tue, 5 Mar 2019 23:58: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 0301723693; Tue, 5 Mar 2019 23:58: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 x25NwGsb019635; Tue, 5 Mar 2019 23:58:16 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25NwGmO019634; Tue, 5 Mar 2019 23:58:16 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201903052358.x25NwGmO019634@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 5 Mar 2019 23:58:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344828 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 344828 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 0D2F28F0BA X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.95)[-0.953,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 23:58:17 -0000 Author: markj Date: Tue Mar 5 23:58:16 2019 New Revision: 344828 URL: https://svnweb.freebsd.org/changeset/base/344828 Log: Initialize dump_avail[] on riscv. Submitted by: Mitchell Horne Differential Revision: https://reviews.freebsd.org/D19170 Modified: head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Tue Mar 5 23:56:40 2019 (r344827) +++ head/sys/riscv/riscv/pmap.c Tue Mar 5 23:58:16 2019 (r344828) @@ -628,7 +628,7 @@ pmap_bootstrap(vm_offset_t l1pt, vm_paddr_t kernstart, pa = pmap_early_vtophys(l1pt, freemempos); - /* Initialize phys_avail. */ + /* Initialize phys_avail and dump_avail. */ for (avail_slot = map_slot = physmem = 0; map_slot < physmap_idx * 2; map_slot += 2) { start = physmap[map_slot]; @@ -636,6 +636,9 @@ pmap_bootstrap(vm_offset_t l1pt, vm_paddr_t kernstart, if (start == end) continue; + dump_avail[map_slot] = start; + dump_avail[map_slot + 1] = end; + if (start >= kernstart && end <= pa) continue; From owner-svn-src-head@freebsd.org Tue Mar 5 23:59:56 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E58A151C4AF; Tue, 5 Mar 2019 23:59:56 +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 111CE8F263; Tue, 5 Mar 2019 23:59:56 +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 E157823698; Tue, 5 Mar 2019 23:59:55 +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 x25NxtW8019760; Tue, 5 Mar 2019 23:59:55 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x25Nxtm3019756; Tue, 5 Mar 2019 23:59:55 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201903052359.x25Nxtm3019756@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 5 Mar 2019 23:59:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344829 - head/lib/libkvm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/lib/libkvm X-SVN-Commit-Revision: 344829 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 111CE8F263 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.96)[-0.957,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2019 23:59:56 -0000 Author: markj Date: Tue Mar 5 23:59:55 2019 New Revision: 344829 URL: https://svnweb.freebsd.org/changeset/base/344829 Log: Add riscv minidump support to libkvm. Submitted by: Mitchell Horne Differential Revision: https://reviews.freebsd.org/D19171 Added: head/lib/libkvm/kvm_minidump_riscv.c (contents, props changed) head/lib/libkvm/kvm_riscv.h (contents, props changed) Modified: head/lib/libkvm/Makefile Modified: head/lib/libkvm/Makefile ============================================================================== --- head/lib/libkvm/Makefile Tue Mar 5 23:58:16 2019 (r344828) +++ head/lib/libkvm/Makefile Tue Mar 5 23:59:55 2019 (r344829) @@ -18,6 +18,7 @@ SRCS= kvm.c kvm_cptime.c kvm_getloadavg.c \ kvm_i386.c kvm_minidump_i386.c \ kvm_minidump_mips.c \ kvm_powerpc.c kvm_powerpc64.c \ + kvm_minidump_riscv.c \ kvm_sparc64.c INCS= kvm.h Added: head/lib/libkvm/kvm_minidump_riscv.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libkvm/kvm_minidump_riscv.c Tue Mar 5 23:59:55 2019 (r344829) @@ -0,0 +1,288 @@ +/*- + * Copyright (c) 2006 Peter Wemm + * Copyright (c) 2019 Mitchell Horne + * + * 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. + * + * From: FreeBSD: src/lib/libkvm/kvm_minidump_amd64.c r261799 + */ + +#include +__FBSDID("$FreeBSD$"); + +/* + * RISC-V machine dependent routines for kvm and minidumps. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "../../sys/riscv/include/minidump.h" + +#include + +#include "kvm_private.h" +#include "kvm_riscv.h" + +#define riscv_round_page(x) roundup2((kvaddr_t)(x), RISCV_PAGE_SIZE) + +struct vmstate { + struct minidumphdr hdr; +}; + +static riscv_pt_entry_t +_riscv_pte_get(kvm_t *kd, u_long pteindex) +{ + riscv_pt_entry_t *pte = _kvm_pmap_get(kd, pteindex, sizeof(*pte)); + + return le64toh(*pte); +} + +static int +_riscv_minidump_probe(kvm_t *kd) +{ + + return (_kvm_probe_elf_kernel(kd, ELFCLASS64, EM_RISCV) && + _kvm_is_minidump(kd)); +} + +static void +_riscv_minidump_freevtop(kvm_t *kd) +{ + struct vmstate *vm = kd->vmst; + + free(vm); + kd->vmst = NULL; +} + +static int +_riscv_minidump_initvtop(kvm_t *kd) +{ + struct vmstate *vmst; + off_t off, sparse_off; + + vmst = _kvm_malloc(kd, sizeof(*vmst)); + if (vmst == NULL) { + _kvm_err(kd, kd->program, "cannot allocate vm"); + return (-1); + } + kd->vmst = vmst; + if (pread(kd->pmfd, &vmst->hdr, sizeof(vmst->hdr), 0) != + sizeof(vmst->hdr)) { + _kvm_err(kd, kd->program, "cannot read dump header"); + return (-1); + } + if (strncmp(MINIDUMP_MAGIC, vmst->hdr.magic, + sizeof(vmst->hdr.magic)) != 0) { + _kvm_err(kd, kd->program, "not a minidump for this platform"); + return (-1); + } + + vmst->hdr.version = le32toh(vmst->hdr.version); + if (vmst->hdr.version != MINIDUMP_VERSION) { + _kvm_err(kd, kd->program, "wrong minidump version. " + "Expected %d got %d", MINIDUMP_VERSION, vmst->hdr.version); + return (-1); + } + vmst->hdr.msgbufsize = le32toh(vmst->hdr.msgbufsize); + vmst->hdr.bitmapsize = le32toh(vmst->hdr.bitmapsize); + vmst->hdr.pmapsize = le32toh(vmst->hdr.pmapsize); + vmst->hdr.kernbase = le64toh(vmst->hdr.kernbase); + vmst->hdr.dmapphys = le64toh(vmst->hdr.dmapphys); + vmst->hdr.dmapbase = le64toh(vmst->hdr.dmapbase); + vmst->hdr.dmapend = le64toh(vmst->hdr.dmapend); + + /* Skip header and msgbuf */ + off = RISCV_PAGE_SIZE + riscv_round_page(vmst->hdr.msgbufsize); + + /* build physical address lookup table for sparse pages */ + sparse_off = off + riscv_round_page(vmst->hdr.bitmapsize) + + riscv_round_page(vmst->hdr.pmapsize); + if (_kvm_pt_init(kd, vmst->hdr.bitmapsize, off, sparse_off, + RISCV_PAGE_SIZE, sizeof(uint64_t)) == -1) { + return (-1); + } + off += riscv_round_page(vmst->hdr.bitmapsize); + + if (_kvm_pmap_init(kd, vmst->hdr.pmapsize, off) == -1) { + return (-1); + } + off += riscv_round_page(vmst->hdr.pmapsize); + + return (0); +} + +static int +_riscv_minidump_vatop(kvm_t *kd, kvaddr_t va, off_t *pa) +{ + struct vmstate *vm; + riscv_physaddr_t offset; + riscv_pt_entry_t l3; + kvaddr_t l3_index; + riscv_physaddr_t a; + off_t ofs; + + vm = kd->vmst; + offset = va & RISCV_PAGE_MASK; + + if (va >= vm->hdr.dmapbase && va < vm->hdr.dmapend) { + a = (va - vm->hdr.dmapbase + vm->hdr.dmapphys) & + ~RISCV_PAGE_MASK; + ofs = _kvm_pt_find(kd, a, RISCV_PAGE_SIZE); + if (ofs == -1) { + _kvm_err(kd, kd->program, "_riscv_minidump_vatop: " + "direct map address 0x%jx not in minidump", + (uintmax_t)va); + goto invalid; + } + *pa = ofs + offset; + return (RISCV_PAGE_SIZE - offset); + } else if (va >= vm->hdr.kernbase) { + l3_index = (va - vm->hdr.kernbase) >> RISCV_L3_SHIFT; + if (l3_index >= vm->hdr.pmapsize / sizeof(l3)) + goto invalid; + l3 = _riscv_pte_get(kd, l3_index); + if ((l3 & RISCV_PTE_V) == 0 || (l3 & RISCV_PTE_RWX) == 0) { + _kvm_err(kd, kd->program, + "_riscv_minidump_vatop: pte not valid"); + goto invalid; + } + a = (l3 >> RISCV_PTE_PPN0_S) << RISCV_L3_SHIFT; + ofs = _kvm_pt_find(kd, a, RISCV_PAGE_SIZE); + if (ofs == -1) { + _kvm_err(kd, kd->program, "_riscv_minidump_vatop: " + "physical address 0x%jx not in minidump", + (uintmax_t)a); + goto invalid; + } + *pa = ofs + offset; + return (RISCV_PAGE_SIZE - offset); + } else { + _kvm_err(kd, kd->program, + "_riscv_minidump_vatop: virtual address 0x%jx not minidumped", + (uintmax_t)va); + goto invalid; + } + +invalid: + _kvm_err(kd, 0, "invalid address (0x%jx)", (uintmax_t)va); + return (0); +} + +static int +_riscv_minidump_kvatop(kvm_t *kd, kvaddr_t va, off_t *pa) +{ + + if (ISALIVE(kd)) { + _kvm_err(kd, 0, + "_riscv_minidump_kvatop called in live kernel!"); + return (0); + } + return (_riscv_minidump_vatop(kd, va, pa)); +} + +static int +_riscv_native(kvm_t *kd __unused) +{ + +#ifdef __riscv + return (1); +#else + return (0); +#endif +} + +static vm_prot_t +_riscv_entry_to_prot(riscv_pt_entry_t pte) +{ + vm_prot_t prot = VM_PROT_READ; + + if ((pte & RISCV_PTE_W) != 0) + prot |= VM_PROT_WRITE; + if ((pte & RISCV_PTE_X) != 0) + prot |= VM_PROT_EXECUTE; + return prot; +} + +static int +_riscv_minidump_walk_pages(kvm_t *kd, kvm_walk_pages_cb_t *cb, void *arg) +{ + struct vmstate *vm = kd->vmst; + u_long nptes = vm->hdr.pmapsize / sizeof(riscv_pt_entry_t); + u_long bmindex, dva, pa, pteindex, va; + struct kvm_bitmap bm; + vm_prot_t prot; + int ret = 0; + + if (!_kvm_bitmap_init(&bm, vm->hdr.bitmapsize, &bmindex)) + return (0); + + for (pteindex = 0; pteindex < nptes; pteindex++) { + riscv_pt_entry_t pte = _riscv_pte_get(kd, pteindex); + + if (((pte & RISCV_PTE_V) == 0) || + ((pte & RISCV_PTE_RWX) == 0)) + continue; + + va = vm->hdr.kernbase + (pteindex << RISCV_L3_SHIFT); + pa = (pte >> RISCV_PTE_PPN0_S) << RISCV_L3_SHIFT; + dva = vm->hdr.dmapbase + pa; + if (!_kvm_visit_cb(kd, cb, arg, pa, va, dva, + _riscv_entry_to_prot(pte), RISCV_PAGE_SIZE, 0)) { + goto out; + } + } + + while (_kvm_bitmap_next(&bm, &bmindex)) { + pa = bmindex * RISCV_PAGE_SIZE; + dva = vm->hdr.dmapbase + pa; + if (vm->hdr.dmapend < (dva + RISCV_PAGE_SIZE)) + break; + va = 0; + prot = VM_PROT_READ | VM_PROT_WRITE; + if (!_kvm_visit_cb(kd, cb, arg, pa, va, dva, + prot, RISCV_PAGE_SIZE, 0)) { + goto out; + } + } + ret = 1; + +out: + _kvm_bitmap_deinit(&bm); + return (ret); +} + +static struct kvm_arch kvm_riscv_minidump = { + .ka_probe = _riscv_minidump_probe, + .ka_initvtop = _riscv_minidump_initvtop, + .ka_freevtop = _riscv_minidump_freevtop, + .ka_kvatop = _riscv_minidump_kvatop, + .ka_native = _riscv_native, + .ka_walk_pages = _riscv_minidump_walk_pages, +}; + +KVM_ARCH(kvm_riscv_minidump); Added: head/lib/libkvm/kvm_riscv.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libkvm/kvm_riscv.h Tue Mar 5 23:59:55 2019 (r344829) @@ -0,0 +1,90 @@ +/*- + * Copyright (c) 2015 John H. Baldwin + * Copyright (c) 2019 Mitchell Horne + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef __KVM_RISCV_H__ +#define __KVM_RISCV_H__ + +#ifdef __riscv +#include +#endif + +typedef uint64_t riscv_physaddr_t; +typedef uint64_t riscv_pt_entry_t; + +#define RISCV_PAGE_SHIFT 12 +#define RISCV_PAGE_SIZE (1 << RISCV_PAGE_SHIFT) +#define RISCV_PAGE_MASK (RISCV_PAGE_SIZE - 1) + +/* Source: sys/riscv/include/pte.h */ +#define RISCV_L3_SHIFT 12 +#define RISCV_L3_SIZE (1 << L3_SHIFT) +#define RISCV_L3_OFFSET (L3_SIZE - 1) + +#define RISCV_PTE_SW_MANAGED (1 << 9) +#define RISCV_PTE_SW_WIRED (1 << 8) +#define RISCV_PTE_D (1 << 7) /* Dirty */ +#define RISCV_PTE_A (1 << 6) /* Accessed */ +#define RISCV_PTE_G (1 << 5) /* Global */ +#define RISCV_PTE_U (1 << 4) /* User */ +#define RISCV_PTE_X (1 << 3) /* Execute */ +#define RISCV_PTE_W (1 << 2) /* Write */ +#define RISCV_PTE_R (1 << 1) /* Read */ +#define RISCV_PTE_V (1 << 0) /* Valid */ +#define RISCV_PTE_RWX (RISCV_PTE_R | RISCV_PTE_W | RISCV_PTE_X) + +#define RISCV_PTE_PPN0_S 10 + +#ifdef __riscv +_Static_assert(sizeof(pt_entry_t) == sizeof(riscv_pt_entry_t), + "pt_entry_t size mismatch"); + +_Static_assert(PAGE_SHIFT == RISCV_PAGE_SHIFT, "PAGE_SHIFT mismatch"); +_Static_assert(PAGE_SIZE == RISCV_PAGE_SIZE, "PAGE_SIZE mismatch"); +_Static_assert(PAGE_MASK == RISCV_PAGE_MASK, "PAGE_MASK mismatch"); + +_Static_assert(L3_SHIFT == RISCV_L3_SHIFT, "L3_SHIFT mismatch"); +_Static_assert(L3_SIZE == RISCV_L3_SIZE, "L3_SIZE mismatch"); +_Static_assert(L3_OFFSET == RISCV_L3_OFFSET, "L3_OFFSET mismatch"); +_Static_assert(PTE_PPN0_S == RISCV_PTE_PPN0_S, "PTE_PPN0_S mismatch"); + +_Static_assert(PTE_SW_MANAGED == RISCV_PTE_SW_MANAGED, + "PTE_SW_MANAGED mismatch"); +_Static_assert(PTE_SW_WIRED == RISCV_PTE_SW_WIRED, "PTE_SW_WIRED mismatch"); +_Static_assert(PTE_D == RISCV_PTE_D, "PTE_D mismatch"); +_Static_assert(PTE_A == RISCV_PTE_A, "PTE_A mismatch"); +_Static_assert(PTE_G == RISCV_PTE_G, "PTE_G mismatch"); +_Static_assert(PTE_U == RISCV_PTE_U, "PTE_U mismatch"); +_Static_assert(PTE_X == RISCV_PTE_X, "PTE_X mismatch"); +_Static_assert(PTE_W == RISCV_PTE_W, "PTE_W mismatch"); +_Static_assert(PTE_R == RISCV_PTE_R, "PTE_R mismatch"); +_Static_assert(PTE_V == RISCV_PTE_V, "PTE_V mismatch"); +_Static_assert(PTE_RWX == RISCV_PTE_RWX, "PTE_RWX mismatch"); +#endif + +#endif /* !__KVM_RISCV_H__ */ From owner-svn-src-head@freebsd.org Wed Mar 6 00:01:07 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 89340151C593; Wed, 6 Mar 2019 00:01: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 27FDE8F573; Wed, 6 Mar 2019 00:01: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 1E981236D2; Wed, 6 Mar 2019 00:01: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 x26017a3020852; Wed, 6 Mar 2019 00:01:07 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x26016FM020846; Wed, 6 Mar 2019 00:01:06 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201903060001.x26016FM020846@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 6 Mar 2019 00:01:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344830 - in head/sys: riscv/riscv vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head/sys: riscv/riscv vm X-SVN-Commit-Revision: 344830 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 27FDE8F573 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.96)[-0.957,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Mar 2019 00:01:07 -0000 Author: markj Date: Wed Mar 6 00:01:06 2019 New Revision: 344830 URL: https://svnweb.freebsd.org/changeset/base/344830 Log: Implement minidump support for RISC-V. Submitted by: Mitchell Horne Differential Revision: https://reviews.freebsd.org/D18320 Modified: head/sys/riscv/riscv/minidump_machdep.c head/sys/riscv/riscv/pmap.c head/sys/riscv/riscv/uma_machdep.c head/sys/vm/vm_page.c Modified: head/sys/riscv/riscv/minidump_machdep.c ============================================================================== --- head/sys/riscv/riscv/minidump_machdep.c Tue Mar 5 23:59:55 2019 (r344829) +++ head/sys/riscv/riscv/minidump_machdep.c Wed Mar 6 00:01:06 2019 (r344830) @@ -1,5 +1,7 @@ /*- * Copyright (c) 2006 Peter Wemm + * Copyright (c) 2015 The FreeBSD Foundation + * Copyright (c) 2019 Mitchell Horne * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -53,9 +55,381 @@ __FBSDID("$FreeBSD$"); CTASSERT(sizeof(struct kerneldumpheader) == 512); CTASSERT(sizeof(*vm_page_dump) == 8); +uint64_t *vm_page_dump; +int vm_page_dump_size; + +static struct kerneldumpheader kdh; + +/* Handle chunked writes. */ +static size_t fragsz; +static void *dump_va; +static size_t counter, progress, dumpsize; + +static uint64_t tmpbuffer[PAGE_SIZE / sizeof(uint64_t)]; + +static struct { + int min_per; + int max_per; + int visited; +} progress_track[10] = { + { 0, 10, 0}, + { 10, 20, 0}, + { 20, 30, 0}, + { 30, 40, 0}, + { 40, 50, 0}, + { 50, 60, 0}, + { 60, 70, 0}, + { 70, 80, 0}, + { 80, 90, 0}, + { 90, 100, 0} +}; + +static void +report_progress(size_t progress, size_t dumpsize) +{ + int sofar, i; + + sofar = 100 - ((progress * 100) / dumpsize); + for (i = 0; i < nitems(progress_track); i++) { + if (sofar < progress_track[i].min_per || + sofar > progress_track[i].max_per) + continue; + if (progress_track[i].visited) + return; + progress_track[i].visited = 1; + printf("..%d%%", sofar); + return; + } +} + +static bool +is_dumpable(vm_paddr_t pa) +{ + vm_page_t m; + int i; + + if ((m = vm_phys_paddr_to_vm_page(pa)) != NULL) + return ((m->flags & PG_NODUMP) == 0); + + for (i = 0; dump_avail[i] != 0 || dump_avail[i + 1] != 0; i += 2) { + if (pa >= dump_avail[i] && pa < dump_avail[i + 1]) + return (true); + } + return (false); +} + +static int +blk_flush(struct dumperinfo *di) +{ + int error; + + if (fragsz == 0) + return (0); + + error = dump_append(di, dump_va, 0, fragsz); + fragsz = 0; + return (error); +} + +/* + * Write a block of data to the dump file. + * + * Caller can provide data through a pointer or by specifying its + * physical address. + * + * XXX writes using pa should be no larger than PAGE_SIZE. + */ +static int +blk_write(struct dumperinfo *di, char *ptr, vm_paddr_t pa, size_t sz) +{ + size_t len; + int error, c; + u_int maxdumpsz; + + maxdumpsz = min(di->maxiosize, MAXDUMPPGS * PAGE_SIZE); + if (maxdumpsz == 0) /* seatbelt */ + maxdumpsz = PAGE_SIZE; + error = 0; + if ((sz % PAGE_SIZE) != 0) { + printf("size not page aligned\n"); + return (EINVAL); + } + if (ptr != NULL && pa != 0) { + printf("cant have both va and pa!\n"); + return (EINVAL); + } + if ((((uintptr_t)pa) % PAGE_SIZE) != 0) { + printf("address not page aligned %#lx\n", (uintptr_t)pa); + return (EINVAL); + } + if (ptr != NULL) { + /* + * If we're doing a virtual dump, flush any + * pre-existing pa pages. + */ + error = blk_flush(di); + if (error != 0) + return (error); + } + while (sz) { + len = maxdumpsz - fragsz; + if (len > sz) + len = sz; + counter += len; + progress -= len; + if (counter >> 22) { + report_progress(progress, dumpsize); + counter &= (1 << 22) - 1; + } + + wdog_kern_pat(WD_LASTVAL); + + if (ptr) { + error = dump_append(di, ptr, 0, len); + if (error != 0) + return (error); + ptr += len; + sz -= len; + } else { + dump_va = (void *)PHYS_TO_DMAP(pa); + fragsz += len; + pa += len; + sz -= len; + error = blk_flush(di); + if (error != 0) + return (error); + } + + /* Check for user abort */ + c = cncheckc(); + if (c == 0x03) + return (ECANCELED); + if (c != -1) + printf(" (CTRL-C to abort) "); + } + + return (0); +} + int minidumpsys(struct dumperinfo *di) { + pd_entry_t *l1, *l2; + pt_entry_t *l3; + struct minidumphdr mdhdr; + uint32_t pmapsize; + vm_offset_t va; + vm_paddr_t pa; + int error; + uint64_t bits; + int i, bit; + int retry_count; - panic("minidumpsys"); + retry_count = 0; +retry: + retry_count++; + error = 0; + pmapsize = 0; + + /* Build set of dumpable pages from kernel pmap */ + for (va = VM_MIN_KERNEL_ADDRESS; va < kernel_vm_end; va += L2_SIZE) { + pmapsize += PAGE_SIZE; + if (!pmap_get_tables(pmap_kernel(), va, &l1, &l2, &l3)) + continue; + + /* We should always be using the l2 table for kvm */ + if (l2 == NULL) + continue; + + /* l2 may be a superpage */ + if ((*l2 & PTE_RWX) != 0) { + pa = (*l2 >> PTE_PPN1_S) << L2_SHIFT; + for (i = 0; i < Ln_ENTRIES; i++, pa += PAGE_SIZE) { + if (is_dumpable(pa)) + dump_add_page(pa); + } + } else { + for (i = 0; i < Ln_ENTRIES; i++) { + if ((l3[i] & PTE_V) == 0) + continue; + pa = (l3[i] >> PTE_PPN0_S) * PAGE_SIZE; + if (is_dumpable(pa)) + dump_add_page(pa); + } + } + } + + /* Calculate dump size */ + dumpsize = pmapsize; + dumpsize += round_page(msgbufp->msg_size); + dumpsize += round_page(vm_page_dump_size); + for (i = 0; i < vm_page_dump_size / sizeof(*vm_page_dump); i++) { + bits = vm_page_dump[i]; + while (bits) { + bit = ffsl(bits) - 1; + pa = (((uint64_t)i * sizeof(*vm_page_dump) * NBBY) + + bit) * PAGE_SIZE; + /* Clear out undumpable pages now if needed */ + if (is_dumpable(pa)) + dumpsize += PAGE_SIZE; + else + dump_drop_page(pa); + bits &= ~(1ul << bit); + } + } + dumpsize += PAGE_SIZE; + + progress = dumpsize; + + /* Initialize mdhdr */ + bzero(&mdhdr, sizeof(mdhdr)); + strcpy(mdhdr.magic, MINIDUMP_MAGIC); + mdhdr.version = MINIDUMP_VERSION; + mdhdr.msgbufsize = msgbufp->msg_size; + mdhdr.bitmapsize = vm_page_dump_size; + mdhdr.pmapsize = pmapsize; + mdhdr.kernbase = KERNBASE; + mdhdr.dmapphys = DMAP_MIN_PHYSADDR; + mdhdr.dmapbase = DMAP_MIN_ADDRESS; + mdhdr.dmapend = DMAP_MAX_ADDRESS; + + dump_init_header(di, &kdh, KERNELDUMPMAGIC, KERNELDUMP_RISCV_VERSION, + dumpsize); + + error = dump_start(di, &kdh); + if (error != 0) + goto fail; + + printf("Dumping %llu out of %ju MB:", (long long)dumpsize >> 20, + ptoa((uintmax_t)physmem) / 1048576); + + /* Dump minidump header */ + bzero(&tmpbuffer, sizeof(tmpbuffer)); + bcopy(&mdhdr, &tmpbuffer, sizeof(mdhdr)); + error = blk_write(di, (char *)&tmpbuffer, 0, PAGE_SIZE); + if (error) + goto fail; + + /* Dump msgbuf up front */ + error = blk_write(di, (char *)msgbufp->msg_ptr, 0, + round_page(msgbufp->msg_size)); + if (error) + goto fail; + + /* Dump bitmap */ + error = blk_write(di, (char *)vm_page_dump, 0, + round_page(vm_page_dump_size)); + if (error) + goto fail; + + /* Dump kernel page directory pages */ + bzero(&tmpbuffer, sizeof(tmpbuffer)); + for (va = VM_MIN_KERNEL_ADDRESS; va < kernel_vm_end; va += L2_SIZE) { + if (!pmap_get_tables(pmap_kernel(), va, &l1, &l2, &l3)) { + /* We always write a page, even if it is zero */ + error = blk_write(di, (char *)&tmpbuffer, 0, PAGE_SIZE); + if (error) + goto fail; + /* Flush, in case we reuse tmpbuffer in the same block */ + error = blk_flush(di); + if (error) + goto fail; + } else if ((*l2 & PTE_RWX) != 0) { + /* Generate fake l3 entries based on the l2 superpage */ + for (i = 0; i < Ln_ENTRIES; i++) { + tmpbuffer[i] = (*l2 | (i << PTE_PPN0_S)); + } + /* We always write a page, even if it is zero */ + error = blk_write(di, (char *)&tmpbuffer, 0, PAGE_SIZE); + if (error) + goto fail; + /* Flush, in case we reuse tmpbuffer in the same block */ + error = blk_flush(di); + if (error) + goto fail; + bzero(&tmpbuffer, sizeof(tmpbuffer)); + } else { + pa = (*l2 >> PTE_PPN0_S) * PAGE_SIZE; + + /* We always write a page, even if it is zero */ + error = blk_write(di, NULL, pa, PAGE_SIZE); + if (error) + goto fail; + } + } + + /* Dump memory chunks */ + /* XXX cluster it up and use blk_dump() */ + for (i = 0; i < vm_page_dump_size / sizeof(*vm_page_dump); i++) { + bits = vm_page_dump[i]; + while (bits) { + bit = ffsl(bits) - 1; + pa = (((uint64_t)i * sizeof(*vm_page_dump) * NBBY) + + bit) * PAGE_SIZE; + error = blk_write(di, 0, pa, PAGE_SIZE); + if (error) + goto fail; + bits &= ~(1ul << bit); + } + } + + error = blk_flush(di); + if (error) + goto fail; + + error = dump_finish(di, &kdh); + if (error != 0) + goto fail; + + printf("\nDump complete\n"); + return (0); + +fail: + if (error < 0) + error = -error; + + printf("\n"); + if (error == ENOSPC) { + printf("Dump map grown while dumping. "); + if (retry_count < 5) { + printf("Retrying...\n"); + goto retry; + } + printf("Dump failed.\n"); + } + else if (error == ECANCELED) + printf("Dump aborted\n"); + else if (error == E2BIG) + printf("Dump failed. Partition too small.\n"); + else + printf("** DUMP FAILED (ERROR %d) **\n", error); + return (error); +} + +/* + * Add a page to the minidump bitmap. + */ +void +dump_add_page(vm_paddr_t pa) +{ + int idx, bit; + + pa >>= PAGE_SHIFT; + idx = pa >> 6; /* 2^6 = 64 */ + bit = pa & 63; + atomic_set_long(&vm_page_dump[idx], 1ul << bit); +} + +/* + * Remove page from the minidump bitmap. + */ +void +dump_drop_page(vm_paddr_t pa) +{ + int idx, bit; + + pa >>= PAGE_SHIFT; + idx = pa >> 6; /* 2^6 = 64 */ + bit = pa & 63; + atomic_clear_long(&vm_page_dump[idx], 1ul << bit); } Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Tue Mar 5 23:59:55 2019 (r344829) +++ head/sys/riscv/riscv/pmap.c Wed Mar 6 00:01:06 2019 (r344830) @@ -1645,9 +1645,7 @@ free_pv_chunk(struct pv_chunk *pc) PV_STAT(atomic_add_int(&pc_chunk_frees, 1)); /* entire chunk is free, return it */ m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); -#if 0 /* TODO: For minidump */ dump_drop_page(m->phys_addr); -#endif vm_page_unwire(m, PQ_NONE); vm_page_free(m); } @@ -1709,9 +1707,7 @@ retry: } PV_STAT(atomic_add_int(&pc_chunk_count, 1)); PV_STAT(atomic_add_int(&pc_chunk_allocs, 1)); -#if 0 /* TODO: This is for minidump */ dump_add_page(m->phys_addr); -#endif pc = (void *)PHYS_TO_DMAP(m->phys_addr); pc->pc_pmap = pmap; pc->pc_map[0] = PC_FREE0 & ~1ul; /* preallocated bit 0 */ Modified: head/sys/riscv/riscv/uma_machdep.c ============================================================================== --- head/sys/riscv/riscv/uma_machdep.c Tue Mar 5 23:59:55 2019 (r344829) +++ head/sys/riscv/riscv/uma_machdep.c Wed Mar 6 00:01:06 2019 (r344830) @@ -55,11 +55,8 @@ uma_small_alloc(uma_zone_t zone, vm_size_t bytes, int if (m == NULL) return (NULL); pa = m->phys_addr; -#if 0 - /* RISCVTODO: minidump */ if ((wait & M_NODUMP) == 0) dump_add_page(pa); -#endif va = (void *)PHYS_TO_DMAP(pa); if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) bzero(va, PAGE_SIZE); @@ -73,10 +70,7 @@ uma_small_free(void *mem, vm_size_t size, u_int8_t fla vm_paddr_t pa; pa = DMAP_TO_PHYS((vm_offset_t)mem); -#if 0 - /* RISCVTODO: minidump */ dump_drop_page(pa); -#endif m = PHYS_TO_VM_PAGE(pa); vm_page_unwire_noq(m); vm_page_free(m); Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Tue Mar 5 23:59:55 2019 (r344829) +++ head/sys/vm/vm_page.c Wed Mar 6 00:01:06 2019 (r344830) @@ -633,7 +633,7 @@ vm_page_startup(vm_offset_t vaddr) #endif #if defined(__aarch64__) || defined(__amd64__) || defined(__arm__) || \ - defined(__i386__) || defined(__mips__) + defined(__i386__) || defined(__mips__) || defined(__riscv) /* * Allocate a bitmap to indicate that a random physical page * needs to be included in a minidump. @@ -658,7 +658,8 @@ vm_page_startup(vm_offset_t vaddr) #else (void)last_pa; #endif -#if defined(__aarch64__) || defined(__amd64__) || defined(__mips__) +#if defined(__aarch64__) || defined(__amd64__) || defined(__mips__) || \ + defined(__riscv) /* * Include the UMA bootstrap pages, witness pages and vm_page_dump * in a crash dump. When pmap_map() uses the direct map, they are @@ -773,7 +774,8 @@ vm_page_startup(vm_offset_t vaddr) high_avail = new_end; new_end = vm_reserv_startup(&vaddr, new_end, high_avail); #endif -#if defined(__aarch64__) || defined(__amd64__) || defined(__mips__) +#if defined(__aarch64__) || defined(__amd64__) || defined(__mips__) || \ + defined(__riscv) /* * Include vm_page_array and vm_reserv_array in a crash dump. */ From owner-svn-src-head@freebsd.org Wed Mar 6 02:31:14 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 334F21521CBC; Wed, 6 Mar 2019 02:31:14 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 879446D466; Wed, 6 Mar 2019 02:31:13 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id x262VA5Q083585; Tue, 5 Mar 2019 18:31:10 -0800 (PST) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id x262V9Zn083584; Tue, 5 Mar 2019 18:31:09 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201903060231.x262V9Zn083584@ gndrsh.dnsmgr.net> Subject: Re: svn commit: r344829 - head/lib/libkvm In-Reply-To: <201903052359.x25Nxtm3019756@repo.freebsd.org> To: Mark Johnston Date: Tue, 5 Mar 2019 18:31:09 -0800 (PST) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 879446D466 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.97 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.968,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Mar 2019 02:31:14 -0000 [ Charset UTF-8 unsupported, converting... ] > Author: markj > Date: Tue Mar 5 23:59:55 2019 > New Revision: 344829 > URL: https://svnweb.freebsd.org/changeset/base/344829 > > Log: > Add riscv minidump support to libkvm. > > Submitted by: Mitchell Horne > Differential Revision: https://reviews.freebsd.org/D19171 > > Added: > head/lib/libkvm/kvm_minidump_riscv.c (contents, props changed) > head/lib/libkvm/kvm_riscv.h (contents, props changed) > Modified: > head/lib/libkvm/Makefile > > Modified: head/lib/libkvm/Makefile > ============================================================================== > --- head/lib/libkvm/Makefile Tue Mar 5 23:58:16 2019 (r344828) > +++ head/lib/libkvm/Makefile Tue Mar 5 23:59:55 2019 (r344829) > @@ -18,6 +18,7 @@ SRCS= kvm.c kvm_cptime.c kvm_getloadavg.c \ > kvm_i386.c kvm_minidump_i386.c \ > kvm_minidump_mips.c \ > kvm_powerpc.c kvm_powerpc64.c \ > + kvm_minidump_riscv.c \ > kvm_sparc64.c > INCS= kvm.h > > > Added: head/lib/libkvm/kvm_minidump_riscv.c > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/lib/libkvm/kvm_minidump_riscv.c Tue Mar 5 23:59:55 2019 (r344829) > @@ -0,0 +1,288 @@ > +/*- > + * Copyright (c) 2006 Peter Wemm > + * Copyright (c) 2019 Mitchell Horne > + * > + * 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. > + * > + * From: FreeBSD: src/lib/libkvm/kvm_minidump_amd64.c r261799 > + */ > + > +#include > +__FBSDID("$FreeBSD$"); > + > +/* > + * RISC-V machine dependent routines for kvm and minidumps. > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include "../../sys/riscv/include/minidump.h" > + > +#include > + > +#include "kvm_private.h" > +#include "kvm_riscv.h" > + > +#define riscv_round_page(x) roundup2((kvaddr_t)(x), RISCV_PAGE_SIZE) > + > +struct vmstate { > + struct minidumphdr hdr; > +}; > + > +static riscv_pt_entry_t > +_riscv_pte_get(kvm_t *kd, u_long pteindex) > +{ > + riscv_pt_entry_t *pte = _kvm_pmap_get(kd, pteindex, sizeof(*pte)); > + > + return le64toh(*pte); > +} > + > +static int > +_riscv_minidump_probe(kvm_t *kd) > +{ > + > + return (_kvm_probe_elf_kernel(kd, ELFCLASS64, EM_RISCV) && > + _kvm_is_minidump(kd)); > +} > + > +static void > +_riscv_minidump_freevtop(kvm_t *kd) > +{ > + struct vmstate *vm = kd->vmst; > + > + free(vm); > + kd->vmst = NULL; > +} > + > +static int > +_riscv_minidump_initvtop(kvm_t *kd) > +{ > + struct vmstate *vmst; > + off_t off, sparse_off; > + > + vmst = _kvm_malloc(kd, sizeof(*vmst)); > + if (vmst == NULL) { > + _kvm_err(kd, kd->program, "cannot allocate vm"); > + return (-1); > + } > + kd->vmst = vmst; > + if (pread(kd->pmfd, &vmst->hdr, sizeof(vmst->hdr), 0) != > + sizeof(vmst->hdr)) { > + _kvm_err(kd, kd->program, "cannot read dump header"); > + return (-1); > + } > + if (strncmp(MINIDUMP_MAGIC, vmst->hdr.magic, > + sizeof(vmst->hdr.magic)) != 0) { > + _kvm_err(kd, kd->program, "not a minidump for this platform"); > + return (-1); > + } > + > + vmst->hdr.version = le32toh(vmst->hdr.version); > + if (vmst->hdr.version != MINIDUMP_VERSION) { > + _kvm_err(kd, kd->program, "wrong minidump version. " > + "Expected %d got %d", MINIDUMP_VERSION, vmst->hdr.version); > + return (-1); > + } > + vmst->hdr.msgbufsize = le32toh(vmst->hdr.msgbufsize); > + vmst->hdr.bitmapsize = le32toh(vmst->hdr.bitmapsize); > + vmst->hdr.pmapsize = le32toh(vmst->hdr.pmapsize); > + vmst->hdr.kernbase = le64toh(vmst->hdr.kernbase); > + vmst->hdr.dmapphys = le64toh(vmst->hdr.dmapphys); > + vmst->hdr.dmapbase = le64toh(vmst->hdr.dmapbase); > + vmst->hdr.dmapend = le64toh(vmst->hdr.dmapend); > + > + /* Skip header and msgbuf */ > + off = RISCV_PAGE_SIZE + riscv_round_page(vmst->hdr.msgbufsize); > + > + /* build physical address lookup table for sparse pages */ > + sparse_off = off + riscv_round_page(vmst->hdr.bitmapsize) + > + riscv_round_page(vmst->hdr.pmapsize); > + if (_kvm_pt_init(kd, vmst->hdr.bitmapsize, off, sparse_off, > + RISCV_PAGE_SIZE, sizeof(uint64_t)) == -1) { > + return (-1); > + } > + off += riscv_round_page(vmst->hdr.bitmapsize); > + > + if (_kvm_pmap_init(kd, vmst->hdr.pmapsize, off) == -1) { > + return (-1); > + } > + off += riscv_round_page(vmst->hdr.pmapsize); > + > + return (0); > +} > + > +static int > +_riscv_minidump_vatop(kvm_t *kd, kvaddr_t va, off_t *pa) > +{ > + struct vmstate *vm; > + riscv_physaddr_t offset; > + riscv_pt_entry_t l3; > + kvaddr_t l3_index; > + riscv_physaddr_t a; > + off_t ofs; > + > + vm = kd->vmst; > + offset = va & RISCV_PAGE_MASK; > + > + if (va >= vm->hdr.dmapbase && va < vm->hdr.dmapend) { > + a = (va - vm->hdr.dmapbase + vm->hdr.dmapphys) & > + ~RISCV_PAGE_MASK; > + ofs = _kvm_pt_find(kd, a, RISCV_PAGE_SIZE); > + if (ofs == -1) { > + _kvm_err(kd, kd->program, "_riscv_minidump_vatop: " > + "direct map address 0x%jx not in minidump", > + (uintmax_t)va); > + goto invalid; > + } > + *pa = ofs + offset; > + return (RISCV_PAGE_SIZE - offset); > + } else if (va >= vm->hdr.kernbase) { > + l3_index = (va - vm->hdr.kernbase) >> RISCV_L3_SHIFT; > + if (l3_index >= vm->hdr.pmapsize / sizeof(l3)) > + goto invalid; > + l3 = _riscv_pte_get(kd, l3_index); > + if ((l3 & RISCV_PTE_V) == 0 || (l3 & RISCV_PTE_RWX) == 0) { > + _kvm_err(kd, kd->program, > + "_riscv_minidump_vatop: pte not valid"); > + goto invalid; > + } > + a = (l3 >> RISCV_PTE_PPN0_S) << RISCV_L3_SHIFT; > + ofs = _kvm_pt_find(kd, a, RISCV_PAGE_SIZE); > + if (ofs == -1) { > + _kvm_err(kd, kd->program, "_riscv_minidump_vatop: " > + "physical address 0x%jx not in minidump", > + (uintmax_t)a); > + goto invalid; > + } > + *pa = ofs + offset; > + return (RISCV_PAGE_SIZE - offset); > + } else { > + _kvm_err(kd, kd->program, > + "_riscv_minidump_vatop: virtual address 0x%jx not minidumped", > + (uintmax_t)va); > + goto invalid; > + } > + > +invalid: > + _kvm_err(kd, 0, "invalid address (0x%jx)", (uintmax_t)va); > + return (0); > +} > + > +static int > +_riscv_minidump_kvatop(kvm_t *kd, kvaddr_t va, off_t *pa) > +{ > + > + if (ISALIVE(kd)) { > + _kvm_err(kd, 0, > + "_riscv_minidump_kvatop called in live kernel!"); > + return (0); > + } > + return (_riscv_minidump_vatop(kd, va, pa)); > +} > + > +static int > +_riscv_native(kvm_t *kd __unused) > +{ > + > +#ifdef __riscv > + return (1); > +#else > + return (0); > +#endif > +} > + > +static vm_prot_t > +_riscv_entry_to_prot(riscv_pt_entry_t pte) > +{ > + vm_prot_t prot = VM_PROT_READ; > + > + if ((pte & RISCV_PTE_W) != 0) > + prot |= VM_PROT_WRITE; > + if ((pte & RISCV_PTE_X) != 0) > + prot |= VM_PROT_EXECUTE; > + return prot; > +} > + > +static int > +_riscv_minidump_walk_pages(kvm_t *kd, kvm_walk_pages_cb_t *cb, void *arg) > +{ > + struct vmstate *vm = kd->vmst; > + u_long nptes = vm->hdr.pmapsize / sizeof(riscv_pt_entry_t); > + u_long bmindex, dva, pa, pteindex, va; > + struct kvm_bitmap bm; > + vm_prot_t prot; > + int ret = 0; > + > + if (!_kvm_bitmap_init(&bm, vm->hdr.bitmapsize, &bmindex)) > + return (0); > + > + for (pteindex = 0; pteindex < nptes; pteindex++) { > + riscv_pt_entry_t pte = _riscv_pte_get(kd, pteindex); > + > + if (((pte & RISCV_PTE_V) == 0) || > + ((pte & RISCV_PTE_RWX) == 0)) > + continue; > + > + va = vm->hdr.kernbase + (pteindex << RISCV_L3_SHIFT); > + pa = (pte >> RISCV_PTE_PPN0_S) << RISCV_L3_SHIFT; > + dva = vm->hdr.dmapbase + pa; > + if (!_kvm_visit_cb(kd, cb, arg, pa, va, dva, > + _riscv_entry_to_prot(pte), RISCV_PAGE_SIZE, 0)) { > + goto out; > + } > + } > + > + while (_kvm_bitmap_next(&bm, &bmindex)) { > + pa = bmindex * RISCV_PAGE_SIZE; > + dva = vm->hdr.dmapbase + pa; > + if (vm->hdr.dmapend < (dva + RISCV_PAGE_SIZE)) > + break; > + va = 0; > + prot = VM_PROT_READ | VM_PROT_WRITE; > + if (!_kvm_visit_cb(kd, cb, arg, pa, va, dva, > + prot, RISCV_PAGE_SIZE, 0)) { > + goto out; > + } > + } > + ret = 1; > + > +out: > + _kvm_bitmap_deinit(&bm); > + return (ret); > +} > + > +static struct kvm_arch kvm_riscv_minidump = { > + .ka_probe = _riscv_minidump_probe, > + .ka_initvtop = _riscv_minidump_initvtop, > + .ka_freevtop = _riscv_minidump_freevtop, > + .ka_kvatop = _riscv_minidump_kvatop, > + .ka_native = _riscv_native, > + .ka_walk_pages = _riscv_minidump_walk_pages, > +}; > + > +KVM_ARCH(kvm_riscv_minidump); > > Added: head/lib/libkvm/kvm_riscv.h > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/lib/libkvm/kvm_riscv.h Tue Mar 5 23:59:55 2019 (r344829) > @@ -0,0 +1,90 @@ > +/*- > + * Copyright (c) 2015 John H. Baldwin > + * Copyright (c) 2019 Mitchell Horne > + * All rights reserved. It appears as if Mitchell Horne has removed John Baldwin's All rights reserved by the way he has inserted his copyright into the middle of Johns. > + * 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. > + * Where did this file come from that it has Jhb copyright? Shouldnt a cp, then patch been done rather than a new file? > + * $FreeBSD$ > + */ > + > +#ifndef __KVM_RISCV_H__ > +#define __KVM_RISCV_H__ > + > +#ifdef __riscv > +#include > +#endif > + > +typedef uint64_t riscv_physaddr_t; > +typedef uint64_t riscv_pt_entry_t; > + > +#define RISCV_PAGE_SHIFT 12 > +#define RISCV_PAGE_SIZE (1 << RISCV_PAGE_SHIFT) > +#define RISCV_PAGE_MASK (RISCV_PAGE_SIZE - 1) > + > +/* Source: sys/riscv/include/pte.h */ > +#define RISCV_L3_SHIFT 12 > +#define RISCV_L3_SIZE (1 << L3_SHIFT) > +#define RISCV_L3_OFFSET (L3_SIZE - 1) > + > +#define RISCV_PTE_SW_MANAGED (1 << 9) > +#define RISCV_PTE_SW_WIRED (1 << 8) > +#define RISCV_PTE_D (1 << 7) /* Dirty */ > +#define RISCV_PTE_A (1 << 6) /* Accessed */ > +#define RISCV_PTE_G (1 << 5) /* Global */ > +#define RISCV_PTE_U (1 << 4) /* User */ > +#define RISCV_PTE_X (1 << 3) /* Execute */ > +#define RISCV_PTE_W (1 << 2) /* Write */ > +#define RISCV_PTE_R (1 << 1) /* Read */ > +#define RISCV_PTE_V (1 << 0) /* Valid */ > +#define RISCV_PTE_RWX (RISCV_PTE_R | RISCV_PTE_W | RISCV_PTE_X) > + > +#define RISCV_PTE_PPN0_S 10 > + > +#ifdef __riscv > +_Static_assert(sizeof(pt_entry_t) == sizeof(riscv_pt_entry_t), > + "pt_entry_t size mismatch"); > + > +_Static_assert(PAGE_SHIFT == RISCV_PAGE_SHIFT, "PAGE_SHIFT mismatch"); > +_Static_assert(PAGE_SIZE == RISCV_PAGE_SIZE, "PAGE_SIZE mismatch"); > +_Static_assert(PAGE_MASK == RISCV_PAGE_MASK, "PAGE_MASK mismatch"); > + > +_Static_assert(L3_SHIFT == RISCV_L3_SHIFT, "L3_SHIFT mismatch"); > +_Static_assert(L3_SIZE == RISCV_L3_SIZE, "L3_SIZE mismatch"); > +_Static_assert(L3_OFFSET == RISCV_L3_OFFSET, "L3_OFFSET mismatch"); > +_Static_assert(PTE_PPN0_S == RISCV_PTE_PPN0_S, "PTE_PPN0_S mismatch"); > + > +_Static_assert(PTE_SW_MANAGED == RISCV_PTE_SW_MANAGED, > + "PTE_SW_MANAGED mismatch"); > +_Static_assert(PTE_SW_WIRED == RISCV_PTE_SW_WIRED, "PTE_SW_WIRED mismatch"); > +_Static_assert(PTE_D == RISCV_PTE_D, "PTE_D mismatch"); > +_Static_assert(PTE_A == RISCV_PTE_A, "PTE_A mismatch"); > +_Static_assert(PTE_G == RISCV_PTE_G, "PTE_G mismatch"); > +_Static_assert(PTE_U == RISCV_PTE_U, "PTE_U mismatch"); > +_Static_assert(PTE_X == RISCV_PTE_X, "PTE_X mismatch"); > +_Static_assert(PTE_W == RISCV_PTE_W, "PTE_W mismatch"); > +_Static_assert(PTE_R == RISCV_PTE_R, "PTE_R mismatch"); > +_Static_assert(PTE_V == RISCV_PTE_V, "PTE_V mismatch"); > +_Static_assert(PTE_RWX == RISCV_PTE_RWX, "PTE_RWX mismatch"); > +#endif > + > +#endif /* !__KVM_RISCV_H__ */ > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Wed Mar 6 02:34:26 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8DDD31521F60; Wed, 6 Mar 2019 02:34:26 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BD57A6D816; Wed, 6 Mar 2019 02:34:25 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id x262YNG9083612; Tue, 5 Mar 2019 18:34:23 -0800 (PST) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id x262YNGH083611; Tue, 5 Mar 2019 18:34:23 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201903060234.x262YNGH083611@ gndrsh.dnsmgr.net> Subject: Re: svn commit: r344830 - in head/sys: riscv/riscv vm In-Reply-To: <201903060001.x26016FM020846@repo.freebsd.org> To: Mark Johnston Date: Tue, 5 Mar 2019 18:34:23 -0800 (PST) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: BD57A6D816 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.93 / 15.00]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.93)[-0.933,0]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Mar 2019 02:34:27 -0000 > Author: markj > Date: Wed Mar 6 00:01:06 2019 > New Revision: 344830 > URL: https://svnweb.freebsd.org/changeset/base/344830 > > Log: > Implement minidump support for RISC-V. > > Submitted by: Mitchell Horne > Differential Revision: https://reviews.freebsd.org/D18320 > > Modified: > head/sys/riscv/riscv/minidump_machdep.c > head/sys/riscv/riscv/pmap.c > head/sys/riscv/riscv/uma_machdep.c > head/sys/vm/vm_page.c > > Modified: head/sys/riscv/riscv/minidump_machdep.c > ============================================================================== > --- head/sys/riscv/riscv/minidump_machdep.c Tue Mar 5 23:59:55 2019 (r344829) > +++ head/sys/riscv/riscv/minidump_machdep.c Wed Mar 6 00:01:06 2019 (r344830) > @@ -1,5 +1,7 @@ > /*- > * Copyright (c) 2006 Peter Wemm > + * Copyright (c) 2015 The FreeBSD Foundation > + * Copyright (c) 2019 Mitchell Horne We must please stop this practice of inserting a new copyright line between an existing one and the all rights reserved clause. Also see other email that the foundation does not want ot assert this any longer. Correction would be to move these 2 lines after the All rights reserved line. We can probably get Peter Wemm to later deassert his reservation. As it is commited only Mitchell Horne is asserting all rights. > * All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > @@ -53,9 +55,381 @@ __FBSDID("$FreeBSD$"); > CTASSERT(sizeof(struct kerneldumpheader) == 512); > CTASSERT(sizeof(*vm_page_dump) == 8); > > +uint64_t *vm_page_dump; > +int vm_page_dump_size; > + > +static struct kerneldumpheader kdh; > + > +/* Handle chunked writes. */ > +static size_t fragsz; > +static void *dump_va; > +static size_t counter, progress, dumpsize; > + > +static uint64_t tmpbuffer[PAGE_SIZE / sizeof(uint64_t)]; > + > +static struct { > + int min_per; > + int max_per; > + int visited; > +} progress_track[10] = { > + { 0, 10, 0}, > + { 10, 20, 0}, > + { 20, 30, 0}, > + { 30, 40, 0}, > + { 40, 50, 0}, > + { 50, 60, 0}, > + { 60, 70, 0}, > + { 70, 80, 0}, > + { 80, 90, 0}, > + { 90, 100, 0} > +}; > + > +static void > +report_progress(size_t progress, size_t dumpsize) > +{ > + int sofar, i; > + > + sofar = 100 - ((progress * 100) / dumpsize); > + for (i = 0; i < nitems(progress_track); i++) { > + if (sofar < progress_track[i].min_per || > + sofar > progress_track[i].max_per) > + continue; > + if (progress_track[i].visited) > + return; > + progress_track[i].visited = 1; > + printf("..%d%%", sofar); > + return; > + } > +} > + > +static bool > +is_dumpable(vm_paddr_t pa) > +{ > + vm_page_t m; > + int i; > + > + if ((m = vm_phys_paddr_to_vm_page(pa)) != NULL) > + return ((m->flags & PG_NODUMP) == 0); > + > + for (i = 0; dump_avail[i] != 0 || dump_avail[i + 1] != 0; i += 2) { > + if (pa >= dump_avail[i] && pa < dump_avail[i + 1]) > + return (true); > + } > + return (false); > +} > + > +static int > +blk_flush(struct dumperinfo *di) > +{ > + int error; > + > + if (fragsz == 0) > + return (0); > + > + error = dump_append(di, dump_va, 0, fragsz); > + fragsz = 0; > + return (error); > +} > + > +/* > + * Write a block of data to the dump file. > + * > + * Caller can provide data through a pointer or by specifying its > + * physical address. > + * > + * XXX writes using pa should be no larger than PAGE_SIZE. > + */ > +static int > +blk_write(struct dumperinfo *di, char *ptr, vm_paddr_t pa, size_t sz) > +{ > + size_t len; > + int error, c; > + u_int maxdumpsz; > + > + maxdumpsz = min(di->maxiosize, MAXDUMPPGS * PAGE_SIZE); > + if (maxdumpsz == 0) /* seatbelt */ > + maxdumpsz = PAGE_SIZE; > + error = 0; > + if ((sz % PAGE_SIZE) != 0) { > + printf("size not page aligned\n"); > + return (EINVAL); > + } > + if (ptr != NULL && pa != 0) { > + printf("cant have both va and pa!\n"); > + return (EINVAL); > + } > + if ((((uintptr_t)pa) % PAGE_SIZE) != 0) { > + printf("address not page aligned %#lx\n", (uintptr_t)pa); > + return (EINVAL); > + } > + if (ptr != NULL) { > + /* > + * If we're doing a virtual dump, flush any > + * pre-existing pa pages. > + */ > + error = blk_flush(di); > + if (error != 0) > + return (error); > + } > + while (sz) { > + len = maxdumpsz - fragsz; > + if (len > sz) > + len = sz; > + counter += len; > + progress -= len; > + if (counter >> 22) { > + report_progress(progress, dumpsize); > + counter &= (1 << 22) - 1; > + } > + > + wdog_kern_pat(WD_LASTVAL); > + > + if (ptr) { > + error = dump_append(di, ptr, 0, len); > + if (error != 0) > + return (error); > + ptr += len; > + sz -= len; > + } else { > + dump_va = (void *)PHYS_TO_DMAP(pa); > + fragsz += len; > + pa += len; > + sz -= len; > + error = blk_flush(di); > + if (error != 0) > + return (error); > + } > + > + /* Check for user abort */ > + c = cncheckc(); > + if (c == 0x03) > + return (ECANCELED); > + if (c != -1) > + printf(" (CTRL-C to abort) "); > + } > + > + return (0); > +} > + > int > minidumpsys(struct dumperinfo *di) > { > + pd_entry_t *l1, *l2; > + pt_entry_t *l3; > + struct minidumphdr mdhdr; > + uint32_t pmapsize; > + vm_offset_t va; > + vm_paddr_t pa; > + int error; > + uint64_t bits; > + int i, bit; > + int retry_count; > > - panic("minidumpsys"); > + retry_count = 0; > +retry: > + retry_count++; > + error = 0; > + pmapsize = 0; > + > + /* Build set of dumpable pages from kernel pmap */ > + for (va = VM_MIN_KERNEL_ADDRESS; va < kernel_vm_end; va += L2_SIZE) { > + pmapsize += PAGE_SIZE; > + if (!pmap_get_tables(pmap_kernel(), va, &l1, &l2, &l3)) > + continue; > + > + /* We should always be using the l2 table for kvm */ > + if (l2 == NULL) > + continue; > + > + /* l2 may be a superpage */ > + if ((*l2 & PTE_RWX) != 0) { > + pa = (*l2 >> PTE_PPN1_S) << L2_SHIFT; > + for (i = 0; i < Ln_ENTRIES; i++, pa += PAGE_SIZE) { > + if (is_dumpable(pa)) > + dump_add_page(pa); > + } > + } else { > + for (i = 0; i < Ln_ENTRIES; i++) { > + if ((l3[i] & PTE_V) == 0) > + continue; > + pa = (l3[i] >> PTE_PPN0_S) * PAGE_SIZE; > + if (is_dumpable(pa)) > + dump_add_page(pa); > + } > + } > + } > + > + /* Calculate dump size */ > + dumpsize = pmapsize; > + dumpsize += round_page(msgbufp->msg_size); > + dumpsize += round_page(vm_page_dump_size); > + for (i = 0; i < vm_page_dump_size / sizeof(*vm_page_dump); i++) { > + bits = vm_page_dump[i]; > + while (bits) { > + bit = ffsl(bits) - 1; > + pa = (((uint64_t)i * sizeof(*vm_page_dump) * NBBY) + > + bit) * PAGE_SIZE; > + /* Clear out undumpable pages now if needed */ > + if (is_dumpable(pa)) > + dumpsize += PAGE_SIZE; > + else > + dump_drop_page(pa); > + bits &= ~(1ul << bit); > + } > + } > + dumpsize += PAGE_SIZE; > + > + progress = dumpsize; > + > + /* Initialize mdhdr */ > + bzero(&mdhdr, sizeof(mdhdr)); > + strcpy(mdhdr.magic, MINIDUMP_MAGIC); > + mdhdr.version = MINIDUMP_VERSION; > + mdhdr.msgbufsize = msgbufp->msg_size; > + mdhdr.bitmapsize = vm_page_dump_size; > + mdhdr.pmapsize = pmapsize; > + mdhdr.kernbase = KERNBASE; > + mdhdr.dmapphys = DMAP_MIN_PHYSADDR; > + mdhdr.dmapbase = DMAP_MIN_ADDRESS; > + mdhdr.dmapend = DMAP_MAX_ADDRESS; > + > + dump_init_header(di, &kdh, KERNELDUMPMAGIC, KERNELDUMP_RISCV_VERSION, > + dumpsize); > + > + error = dump_start(di, &kdh); > + if (error != 0) > + goto fail; > + > + printf("Dumping %llu out of %ju MB:", (long long)dumpsize >> 20, > + ptoa((uintmax_t)physmem) / 1048576); > + > + /* Dump minidump header */ > + bzero(&tmpbuffer, sizeof(tmpbuffer)); > + bcopy(&mdhdr, &tmpbuffer, sizeof(mdhdr)); > + error = blk_write(di, (char *)&tmpbuffer, 0, PAGE_SIZE); > + if (error) > + goto fail; > + > + /* Dump msgbuf up front */ > + error = blk_write(di, (char *)msgbufp->msg_ptr, 0, > + round_page(msgbufp->msg_size)); > + if (error) > + goto fail; > + > + /* Dump bitmap */ > + error = blk_write(di, (char *)vm_page_dump, 0, > + round_page(vm_page_dump_size)); > + if (error) > + goto fail; > + > + /* Dump kernel page directory pages */ > + bzero(&tmpbuffer, sizeof(tmpbuffer)); > + for (va = VM_MIN_KERNEL_ADDRESS; va < kernel_vm_end; va += L2_SIZE) { > + if (!pmap_get_tables(pmap_kernel(), va, &l1, &l2, &l3)) { > + /* We always write a page, even if it is zero */ > + error = blk_write(di, (char *)&tmpbuffer, 0, PAGE_SIZE); > + if (error) > + goto fail; > + /* Flush, in case we reuse tmpbuffer in the same block */ > + error = blk_flush(di); > + if (error) > + goto fail; > + } else if ((*l2 & PTE_RWX) != 0) { > + /* Generate fake l3 entries based on the l2 superpage */ > + for (i = 0; i < Ln_ENTRIES; i++) { > + tmpbuffer[i] = (*l2 | (i << PTE_PPN0_S)); > + } > + /* We always write a page, even if it is zero */ > + error = blk_write(di, (char *)&tmpbuffer, 0, PAGE_SIZE); > + if (error) > + goto fail; > + /* Flush, in case we reuse tmpbuffer in the same block */ > + error = blk_flush(di); > + if (error) > + goto fail; > + bzero(&tmpbuffer, sizeof(tmpbuffer)); > + } else { > + pa = (*l2 >> PTE_PPN0_S) * PAGE_SIZE; > + > + /* We always write a page, even if it is zero */ > + error = blk_write(di, NULL, pa, PAGE_SIZE); > + if (error) > + goto fail; > + } > + } > + > + /* Dump memory chunks */ > + /* XXX cluster it up and use blk_dump() */ > + for (i = 0; i < vm_page_dump_size / sizeof(*vm_page_dump); i++) { > + bits = vm_page_dump[i]; > + while (bits) { > + bit = ffsl(bits) - 1; > + pa = (((uint64_t)i * sizeof(*vm_page_dump) * NBBY) + > + bit) * PAGE_SIZE; > + error = blk_write(di, 0, pa, PAGE_SIZE); > + if (error) > + goto fail; > + bits &= ~(1ul << bit); > + } > + } > + > + error = blk_flush(di); > + if (error) > + goto fail; > + > + error = dump_finish(di, &kdh); > + if (error != 0) > + goto fail; > + > + printf("\nDump complete\n"); > + return (0); > + > +fail: > + if (error < 0) > + error = -error; > + > + printf("\n"); > + if (error == ENOSPC) { > + printf("Dump map grown while dumping. "); > + if (retry_count < 5) { > + printf("Retrying...\n"); > + goto retry; > + } > + printf("Dump failed.\n"); > + } > + else if (error == ECANCELED) > + printf("Dump aborted\n"); > + else if (error == E2BIG) > + printf("Dump failed. Partition too small.\n"); > + else > + printf("** DUMP FAILED (ERROR %d) **\n", error); > + return (error); > +} > + > +/* > + * Add a page to the minidump bitmap. > + */ > +void > +dump_add_page(vm_paddr_t pa) > +{ > + int idx, bit; > + > + pa >>= PAGE_SHIFT; > + idx = pa >> 6; /* 2^6 = 64 */ > + bit = pa & 63; > + atomic_set_long(&vm_page_dump[idx], 1ul << bit); > +} > + > +/* > + * Remove page from the minidump bitmap. > + */ > +void > +dump_drop_page(vm_paddr_t pa) > +{ > + int idx, bit; > + > + pa >>= PAGE_SHIFT; > + idx = pa >> 6; /* 2^6 = 64 */ > + bit = pa & 63; > + atomic_clear_long(&vm_page_dump[idx], 1ul << bit); > } > > Modified: head/sys/riscv/riscv/pmap.c > ============================================================================== > --- head/sys/riscv/riscv/pmap.c Tue Mar 5 23:59:55 2019 (r344829) > +++ head/sys/riscv/riscv/pmap.c Wed Mar 6 00:01:06 2019 (r344830) > @@ -1645,9 +1645,7 @@ free_pv_chunk(struct pv_chunk *pc) > PV_STAT(atomic_add_int(&pc_chunk_frees, 1)); > /* entire chunk is free, return it */ > m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); > -#if 0 /* TODO: For minidump */ > dump_drop_page(m->phys_addr); > -#endif > vm_page_unwire(m, PQ_NONE); > vm_page_free(m); > } > @@ -1709,9 +1707,7 @@ retry: > } > PV_STAT(atomic_add_int(&pc_chunk_count, 1)); > PV_STAT(atomic_add_int(&pc_chunk_allocs, 1)); > -#if 0 /* TODO: This is for minidump */ > dump_add_page(m->phys_addr); > -#endif > pc = (void *)PHYS_TO_DMAP(m->phys_addr); > pc->pc_pmap = pmap; > pc->pc_map[0] = PC_FREE0 & ~1ul; /* preallocated bit 0 */ > > Modified: head/sys/riscv/riscv/uma_machdep.c > ============================================================================== > --- head/sys/riscv/riscv/uma_machdep.c Tue Mar 5 23:59:55 2019 (r344829) > +++ head/sys/riscv/riscv/uma_machdep.c Wed Mar 6 00:01:06 2019 (r344830) > @@ -55,11 +55,8 @@ uma_small_alloc(uma_zone_t zone, vm_size_t bytes, int > if (m == NULL) > return (NULL); > pa = m->phys_addr; > -#if 0 > - /* RISCVTODO: minidump */ > if ((wait & M_NODUMP) == 0) > dump_add_page(pa); > -#endif > va = (void *)PHYS_TO_DMAP(pa); > if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) > bzero(va, PAGE_SIZE); > @@ -73,10 +70,7 @@ uma_small_free(void *mem, vm_size_t size, u_int8_t fla > vm_paddr_t pa; > > pa = DMAP_TO_PHYS((vm_offset_t)mem); > -#if 0 > - /* RISCVTODO: minidump */ > dump_drop_page(pa); > -#endif > m = PHYS_TO_VM_PAGE(pa); > vm_page_unwire_noq(m); > vm_page_free(m); > > Modified: head/sys/vm/vm_page.c > ============================================================================== > --- head/sys/vm/vm_page.c Tue Mar 5 23:59:55 2019 (r344829) > +++ head/sys/vm/vm_page.c Wed Mar 6 00:01:06 2019 (r344830) > @@ -633,7 +633,7 @@ vm_page_startup(vm_offset_t vaddr) > #endif > > #if defined(__aarch64__) || defined(__amd64__) || defined(__arm__) || \ > - defined(__i386__) || defined(__mips__) > + defined(__i386__) || defined(__mips__) || defined(__riscv) > /* > * Allocate a bitmap to indicate that a random physical page > * needs to be included in a minidump. > @@ -658,7 +658,8 @@ vm_page_startup(vm_offset_t vaddr) > #else > (void)last_pa; > #endif > -#if defined(__aarch64__) || defined(__amd64__) || defined(__mips__) > +#if defined(__aarch64__) || defined(__amd64__) || defined(__mips__) || \ > + defined(__riscv) > /* > * Include the UMA bootstrap pages, witness pages and vm_page_dump > * in a crash dump. When pmap_map() uses the direct map, they are > @@ -773,7 +774,8 @@ vm_page_startup(vm_offset_t vaddr) > high_avail = new_end; > new_end = vm_reserv_startup(&vaddr, new_end, high_avail); > #endif > -#if defined(__aarch64__) || defined(__amd64__) || defined(__mips__) > +#if defined(__aarch64__) || defined(__amd64__) || defined(__mips__) || \ > + defined(__riscv) > /* > * Include vm_page_array and vm_reserv_array in a crash dump. > */ > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Wed Mar 6 02:52:59 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 87F2615229CB; Wed, 6 Mar 2019 02:52:59 +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 2696F6ECF8; Wed, 6 Mar 2019 02:52:59 +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 F1BC2254E1; Wed, 6 Mar 2019 02:52:58 +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 x262qwZ2014253; Wed, 6 Mar 2019 02:52:58 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x262qw1N014252; Wed, 6 Mar 2019 02:52:58 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201903060252.x262qw1N014252@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Wed, 6 Mar 2019 02:52:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344838 - head/contrib/ipfilter/ipsend/.OLD X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/contrib/ipfilter/ipsend/.OLD X-SVN-Commit-Revision: 344838 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 2696F6ECF8 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.946,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Mar 2019 02:52:59 -0000 Author: cy Date: Wed Mar 6 02:52:58 2019 New Revision: 344838 URL: https://svnweb.freebsd.org/changeset/base/344838 Log: Remove an empty directory emptied by r343702. MFC after: 3 days Deleted: head/contrib/ipfilter/ipsend/.OLD/ From owner-svn-src-head@freebsd.org Wed Mar 6 05:39:41 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B50A1529440; Wed, 6 Mar 2019 05:39:41 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B5E7974E1F; Wed, 6 Mar 2019 05:39:40 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A90A82707C; Wed, 6 Mar 2019 05:39:40 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x265dekl000798; Wed, 6 Mar 2019 05:39:40 GMT (envelope-from bcran@FreeBSD.org) Received: (from bcran@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x265denn000796; Wed, 6 Mar 2019 05:39:40 GMT (envelope-from bcran@FreeBSD.org) Message-Id: <201903060539.x265denn000796@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bcran set sender to bcran@FreeBSD.org using -f From: Rebecca Cran Date: Wed, 6 Mar 2019 05:39:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344839 - head/stand/efi/loader X-SVN-Group: head X-SVN-Commit-Author: bcran X-SVN-Commit-Paths: head/stand/efi/loader X-SVN-Commit-Revision: 344839 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: B5E7974E1F X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.983,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Mar 2019 05:39:41 -0000 Author: bcran Date: Wed Mar 6 05:39:40 2019 New Revision: 344839 URL: https://svnweb.freebsd.org/changeset/base/344839 Log: Add retry loop around GetMemoryMap call to fix fragmentation bug The call to BS->AllocatePages can cause the memory map to become framented, causing BS->GetMemoryMap to return EFI_BUFFER_TOO_SMALL more than once. For example this can happen on the MinnowBoard Turbot, causing the boot to stop with an error. Avoid this by calling GetMemoryMap in a loop. Reviewed by: imp, tsoome, kevans Differential Revision: https://reviews.freebsd.org/D19341 Modified: head/stand/efi/loader/bootinfo.c head/stand/efi/loader/copy.c Modified: head/stand/efi/loader/bootinfo.c ============================================================================== --- head/stand/efi/loader/bootinfo.c Wed Mar 6 02:52:58 2019 (r344838) +++ head/stand/efi/loader/bootinfo.c Wed Mar 6 05:39:40 2019 (r344839) @@ -287,12 +287,12 @@ static int bi_load_efi_data(struct preloaded_file *kfp) { EFI_MEMORY_DESCRIPTOR *mm; - EFI_PHYSICAL_ADDRESS addr; + EFI_PHYSICAL_ADDRESS addr = 0; EFI_STATUS status; const char *efi_novmap; size_t efisz; UINTN efi_mapkey; - UINTN mmsz, pages, retry, sz; + UINTN dsz, pages, retry, sz; UINT32 mmver; struct efi_map_header *efihdr; bool do_vmap; @@ -323,76 +323,94 @@ bi_load_efi_data(struct preloaded_file *kfp) efisz = (sizeof(struct efi_map_header) + 0xf) & ~0xf; /* - * Assgin size of EFI_MEMORY_DESCRIPTOR to keep compatible with + * Assign size of EFI_MEMORY_DESCRIPTOR to keep compatible with * u-boot which doesn't fill this value when buffer for memory * descriptors is too small (eg. 0 to obtain memory map size) */ - mmsz = sizeof(EFI_MEMORY_DESCRIPTOR); + dsz = sizeof(EFI_MEMORY_DESCRIPTOR); /* - * It is possible that the first call to ExitBootServices may change - * the map key. Fetch a new map key and retry ExitBootServices in that - * case. + * Allocate enough pages to hold the bootinfo block and the + * memory map EFI will return to us. The memory map has an + * unknown size, so we have to determine that first. Note that + * the AllocatePages call can itself modify the memory map, so + * we have to take that into account as well. The changes to + * the memory map are caused by splitting a range of free + * memory into two, so that one is marked as being loader + * data. */ + + sz = 0; + + /* + * Matthew Garrett has observed at least one system changing the + * memory map when calling ExitBootServices, causing it to return an + * error, probably because callbacks are allocating memory. + * So we need to retry calling it at least once. + */ for (retry = 2; retry > 0; retry--) { - /* - * Allocate enough pages to hold the bootinfo block and the - * memory map EFI will return to us. The memory map has an - * unknown size, so we have to determine that first. Note that - * the AllocatePages call can itself modify the memory map, so - * we have to take that into account as well. The changes to - * the memory map are caused by splitting a range of free - * memory into two (AFAICT), so that one is marked as being - * loader data. - */ - sz = 0; - BS->GetMemoryMap(&sz, NULL, &efi_mapkey, &mmsz, &mmver); - sz += mmsz; - sz = (sz + 0xf) & ~0xf; - pages = EFI_SIZE_TO_PAGES(sz + efisz); - status = BS->AllocatePages(AllocateAnyPages, EfiLoaderData, - pages, &addr); - if (EFI_ERROR(status)) { - printf("%s: AllocatePages error %lu\n", __func__, - EFI_ERROR_CODE(status)); - return (ENOMEM); - } + for (;;) { + status = BS->GetMemoryMap(&sz, mm, &efi_mapkey, &dsz, &mmver); + if (!EFI_ERROR(status)) + break; - /* - * Read the memory map and stash it after bootinfo. Align the - * memory map on a 16-byte boundary (the bootinfo block is page - * aligned). - */ - efihdr = (struct efi_map_header *)(uintptr_t)addr; - mm = (void *)((uint8_t *)efihdr + efisz); - sz = (EFI_PAGE_SIZE * pages) - efisz; + if (status != EFI_BUFFER_TOO_SMALL) { + printf("%s: GetMemoryMap error %lu\n", __func__, + EFI_ERROR_CODE(status)); + return (EINVAL); + } - status = BS->GetMemoryMap(&sz, mm, &efi_mapkey, &mmsz, &mmver); - if (EFI_ERROR(status)) { - printf("%s: GetMemoryMap error %lu\n", __func__, - EFI_ERROR_CODE(status)); - return (EINVAL); - } - status = BS->ExitBootServices(IH, efi_mapkey); - if (EFI_ERROR(status) == 0) { + if (addr != 0) + BS->FreePages(addr, pages); + + /* Add 10 descriptors to the size to allow for + * fragmentation caused by calling AllocatePages */ + sz += (10 * dsz); + pages = EFI_SIZE_TO_PAGES(sz + efisz); + status = BS->AllocatePages(AllocateAnyPages, EfiLoaderData, + pages, &addr); + if (EFI_ERROR(status)) { + printf("%s: AllocatePages error %lu\n", __func__, + EFI_ERROR_CODE(status)); + return (ENOMEM); + } + /* - * This may be disabled by setting efi_disable_vmap in - * loader.conf(5). By default we will setup the virtual - * map entries. + * Read the memory map and stash it after bootinfo. Align the + * memory map on a 16-byte boundary (the bootinfo block is page + * aligned). */ - if (do_vmap) - efi_do_vmap(mm, sz, mmsz, mmver); - efihdr->memory_size = sz; - efihdr->descriptor_size = mmsz; - efihdr->descriptor_version = mmver; - file_addmetadata(kfp, MODINFOMD_EFI_MAP, efisz + sz, - efihdr); - return (0); + efihdr = (struct efi_map_header *)(uintptr_t)addr; + mm = (void *)((uint8_t *)efihdr + efisz); + sz = (EFI_PAGE_SIZE * pages) - efisz; } + + status = BS->ExitBootServices(IH, efi_mapkey); + if (!EFI_ERROR(status)) + break; + } + + if (retry == 0) { BS->FreePages(addr, pages); + printf("ExitBootServices error %lu\n", EFI_ERROR_CODE(status)); + return (EINVAL); } - printf("ExitBootServices error %lu\n", EFI_ERROR_CODE(status)); - return (EINVAL); + + /* + * This may be disabled by setting efi_disable_vmap in + * loader.conf(5). By default we will setup the virtual + * map entries. + */ + + if (do_vmap) + efi_do_vmap(mm, sz, dsz, mmver); + efihdr->memory_size = sz; + efihdr->descriptor_size = dsz; + efihdr->descriptor_version = mmver; + file_addmetadata(kfp, MODINFOMD_EFI_MAP, efisz + sz, + efihdr); + + return (0); } /* Modified: head/stand/efi/loader/copy.c ============================================================================== --- head/stand/efi/loader/copy.c Wed Mar 6 02:52:58 2019 (r344838) +++ head/stand/efi/loader/copy.c Wed Mar 6 05:39:40 2019 (r344839) @@ -95,7 +95,7 @@ static void efi_verify_staging_size(unsigned long *nr_pages) { UINTN sz; - EFI_MEMORY_DESCRIPTOR *map, *p; + EFI_MEMORY_DESCRIPTOR *map = NULL, *p; EFI_PHYSICAL_ADDRESS start, end; UINTN key, dsz; UINT32 dver; @@ -104,17 +104,28 @@ efi_verify_staging_size(unsigned long *nr_pages) unsigned long available_pages = 0; sz = 0; - status = BS->GetMemoryMap(&sz, 0, &key, &dsz, &dver); - if (status != EFI_BUFFER_TOO_SMALL) { - printf("Can't determine memory map size\n"); - return; - } - map = malloc(sz); - status = BS->GetMemoryMap(&sz, map, &key, &dsz, &dver); - if (EFI_ERROR(status)) { - printf("Can't read memory map\n"); - goto out; + for (;;) { + status = BS->GetMemoryMap(&sz, map, &key, &dsz, &dver); + if (!EFI_ERROR(status)) + break; + + if (status != EFI_BUFFER_TOO_SMALL) { + printf("Can't read memory map: %lu\n", + EFI_ERROR_CODE(status)); + goto out; + } + + free(map); + + /* Allocate 10 descriptors more than the size reported, + * to allow for any fragmentation caused by calling + * malloc */ + map = malloc(sz + (10 * dsz)); + if (map == NULL) { + printf("Unable to allocate memory\n"); + goto out; + } } ndesc = sz / dsz; From owner-svn-src-head@freebsd.org Wed Mar 6 06:39:44 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83C80152BCE8; Wed, 6 Mar 2019 06:39:44 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3041976BEB; Wed, 6 Mar 2019 06:39:44 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 23AFC27ABF; Wed, 6 Mar 2019 06:39:44 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x266dil7031857; Wed, 6 Mar 2019 06:39:44 GMT (envelope-from mw@FreeBSD.org) Received: (from mw@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x266dgXo031850; Wed, 6 Mar 2019 06:39:42 GMT (envelope-from mw@FreeBSD.org) Message-Id: <201903060639.x266dgXo031850@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mw set sender to mw@FreeBSD.org using -f From: Marcin Wojtas Date: Wed, 6 Mar 2019 06:39:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344840 - in head: lib/libsecureboot lib/libsecureboot/efi lib/libsecureboot/efi/include lib/libsecureboot/efi/include/Guid lib/libsecureboot/efi/include/Protocol lib/libsecureboot/h sh... X-SVN-Group: head X-SVN-Commit-Author: mw X-SVN-Commit-Paths: in head: lib/libsecureboot lib/libsecureboot/efi lib/libsecureboot/efi/include lib/libsecureboot/efi/include/Guid lib/libsecureboot/efi/include/Protocol lib/libsecureboot/h share/mk stand/efi/loader t... X-SVN-Commit-Revision: 344840 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 3041976BEB X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.94 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.945,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Mar 2019 06:39:44 -0000 Author: mw Date: Wed Mar 6 06:39:42 2019 New Revision: 344840 URL: https://svnweb.freebsd.org/changeset/base/344840 Log: Extend libsecureboot(old libve) to obtain trusted certificates from UEFI and implement revocation UEFI related headers were copied from edk2. A new build option "MK_LOADER_EFI_SECUREBOOT" was added to allow loading of trusted anchors from UEFI. Certificate revocation support is also introduced. The forbidden certificates are loaded from dbx variable. Verification fails in two cases: There is a direct match between cert in dbx and the one in the chain. The CA used to sign the chain is found in dbx. One can also insert a hash of TBS section of a certificate into dbx. In this case verifications fails only if a direct match with a certificate in chain is found. Submitted by: Kornel Duleba Reviewed by: sjg Obtained from: Semihalf Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D19093 Added: head/lib/libsecureboot/efi/ head/lib/libsecureboot/efi/efi_init.c (contents, props changed) head/lib/libsecureboot/efi/efi_variables.c (contents, props changed) head/lib/libsecureboot/efi/include/ head/lib/libsecureboot/efi/include/Guid/ head/lib/libsecureboot/efi/include/Guid/GlobalVariable.h (contents, props changed) head/lib/libsecureboot/efi/include/Guid/ImageAuthentication.h (contents, props changed) head/lib/libsecureboot/efi/include/Protocol/ head/lib/libsecureboot/efi/include/Protocol/Hash.h (contents, props changed) head/tools/build/options/WITH_LOADER_EFI_SECUREBOOT (contents, props changed) Modified: head/lib/libsecureboot/Makefile.inc head/lib/libsecureboot/Makefile.libsa.inc head/lib/libsecureboot/h/verify_file.h head/lib/libsecureboot/libsecureboot-priv.h head/lib/libsecureboot/local.trust.mk head/lib/libsecureboot/verify_file.c head/lib/libsecureboot/vets.c head/share/mk/src.opts.mk head/stand/efi/loader/Makefile head/stand/efi/loader/main.c Modified: head/lib/libsecureboot/Makefile.inc ============================================================================== --- head/lib/libsecureboot/Makefile.inc Wed Mar 6 05:39:40 2019 (r344839) +++ head/lib/libsecureboot/Makefile.inc Wed Mar 6 06:39:42 2019 (r344840) @@ -31,6 +31,17 @@ BRSSL_SRCS+= \ ${BEARSSL}/tools/xmem.c \ ${BEARSSL}/tools/vector.c +BRSSL_DEPS= \ + brf.c \ + vets.c \ + veta.c + +.if ${MK_LOADER_EFI_SECUREBOOT} != "no" +BRSSL_DEPS+= \ + efi_init.c \ + efi_variables.c +.endif + # we do not need/want nested objdirs OBJS_SRCS_FILTER = T R @@ -134,7 +145,7 @@ vse.h: echo 'NULL };' ) > ${.TARGET} -.for s in ${BRSSL_SRCS} brf.c vets.c veta.c +.for s in ${BRSSL_SRCS} ${BRSSL_DEPS} .ifdef BRSSL_SED $s: brssl.h .endif Modified: head/lib/libsecureboot/Makefile.libsa.inc ============================================================================== --- head/lib/libsecureboot/Makefile.libsa.inc Wed Mar 6 05:39:40 2019 (r344839) +++ head/lib/libsecureboot/Makefile.libsa.inc Wed Mar 6 06:39:42 2019 (r344840) @@ -16,6 +16,19 @@ SRCS+= \ vepcr.c \ verify_file.c \ +# Build library with support for the UEFI based authentication +.if ${MK_LOADER_EFI_SECUREBOOT} == "yes" +SRCS+= \ + efi/efi_variables.c \ + efi/efi_init.c + +# Add includes required by efi part +CFLAGS+= \ + -I${SRCTOP}/stand/efi/include \ + -I${SRCTOP}/lib/libsecureboot/efi/include \ + -I${SRCTOP}/stand/efi/include/${MACHINE} +.endif + # this is the list of paths (relative to a file # that we need to verify) used to find a signed manifest. # the signature extensions in VE_SIGNATURE_EXT_LIST Added: head/lib/libsecureboot/efi/efi_init.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libsecureboot/efi/efi_init.c Wed Mar 6 06:39:42 2019 (r344840) @@ -0,0 +1,74 @@ +/*- + * Copyright (c) 2019 Stormshield. + * Copyright (c) 2019 Semihalf. + * + * 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 ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +#define NEED_BRSSL_H +#include "../libsecureboot-priv.h" +#include + +void +ve_efi_init(void) +{ + br_x509_certificate *xcs; + hash_data *digests; + size_t num; + int result; + static int once = 0; + + if (once > 0) + return; + + once = 1; + + result = efi_secure_boot_enabled(); + if (result <= 0) + return; + + xcs = efi_get_trusted_certs(&num); + if (num > 0 && xcs != NULL) { + num = ve_trust_anchors_add(xcs, num); + free_certificates(xcs, num); + } + xcs = efi_get_forbidden_certs(&num); + if (num > 0 && xcs != NULL) { + num = ve_forbidden_anchors_add(xcs, num); + free_certificates(xcs, num); + } + digests = efi_get_forbidden_digests(&num); + if (num > 0 && digests != NULL) { + ve_forbidden_digest_add(digests, num); + /* + * Don't free the buffors for digests, + * since they are shallow copied. + */ + xfree(digests); + } + + return; +} Added: head/lib/libsecureboot/efi/efi_variables.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libsecureboot/efi/efi_variables.c Wed Mar 6 06:39:42 2019 (r344840) @@ -0,0 +1,278 @@ +/*- + * Copyright (c) 2019 Stormshield. + * Copyright (c) 2019 Semihalf. + * + * 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 ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#include +#include +#include + +#define NEED_BRSSL_H +#include "../libsecureboot-priv.h" +#include + +static EFI_GUID ImageSecurityDatabaseGUID = EFI_IMAGE_SECURITY_DATABASE_GUID; + +static EFI_GUID efiCertX509GUID = EFI_CERT_X509_GUID; +static EFI_GUID efiCertX509Sha256GUID = EFI_CERT_X509_SHA256_GUID; +static EFI_GUID efiCertX509Sha384GUID = EFI_CERT_X509_SHA384_GUID; +static EFI_GUID efiCertX509Sha5122UID = EFI_CERT_X509_SHA512_GUID; + +/* + * Check if Secure Boot is enabled in firmware. + * We evaluate two variables - Secure Boot and Setup Mode. + * Secure Boot is enforced only if the first one equals 1 and the other 0. + */ +int +efi_secure_boot_enabled(void) +{ + UINT8 SecureBoot; + UINT8 SetupMode; + size_t length; + EFI_STATUS status; + + length = sizeof(SecureBoot); + status = efi_global_getenv("SecureBoot", &SecureBoot, &length); + if (status != EFI_SUCCESS) { + if (status == EFI_NOT_FOUND) + return (0); + + printf("Failed to read \"SecureBoot\" variable\n"); + return (-efi_status_to_errno(status)); + } + + length = sizeof(SetupMode); + status = efi_global_getenv("SetupMode", &SetupMode, &length); + if (status != EFI_SUCCESS) + SetupMode = 0; + + printf(" SecureBoot: %d, SetupMode: %d\n", SecureBoot, SetupMode); + + return (SecureBoot == 1 && SetupMode == 0); +} + +/* + * Iterate through UEFI variable and extract X509 certificates from it. + * The EFI_* structures and related guids are defined in UEFI standard. + */ +static br_x509_certificate* +efi_get_certs(const char *name, size_t *count) +{ + br_x509_certificate *certs; + UINT8 *database; + EFI_SIGNATURE_LIST *list; + EFI_SIGNATURE_DATA *entry; + size_t db_size; + ssize_t cert_count; + EFI_STATUS status; + + database = NULL; + certs = NULL; + db_size = 0; + cert_count = 0; + + /* + * Read variable length and allocate memory for it + */ + status = efi_getenv(&ImageSecurityDatabaseGUID, name, database, &db_size); + if (status != EFI_BUFFER_TOO_SMALL) + return (NULL); + + database = malloc(db_size); + if (database == NULL) + return (NULL); + + status = efi_getenv(&ImageSecurityDatabaseGUID, name, database, &db_size); + if (status != EFI_SUCCESS) + goto fail; + + for (list = (EFI_SIGNATURE_LIST*) database; + db_size >= list->SignatureListSize && db_size > 0; + db_size -= list->SignatureListSize, + list = (EFI_SIGNATURE_LIST*) + ((UINT8*)list + list->SignatureListSize)) { + + /* We are only interested in entries containing X509 certs. */ + if (memcmp(&efiCertX509GUID, + &list->SignatureType, + sizeof(EFI_GUID)) != 0) { + continue; + } + + entry = (EFI_SIGNATURE_DATA*) + ((UINT8*)list + + sizeof(EFI_SIGNATURE_LIST) + + list->SignatureHeaderSize); + + certs = realloc(certs, + (cert_count + 1) * sizeof(br_x509_certificate)); + if (certs == NULL) { + cert_count = 0; + goto fail; + } + + certs[cert_count].data_len = list->SignatureSize - sizeof(EFI_GUID); + certs[cert_count].data = malloc(certs[cert_count].data_len); + if (certs[cert_count].data == NULL) + goto fail; + + memcpy(certs[cert_count].data, + entry->SignatureData, + certs[cert_count].data_len); + + cert_count++; + } + + *count = cert_count; + + xfree(database); + return (certs); + +fail: + free_certificates(certs, cert_count); + xfree(database); + return (NULL); + +} + +/* + * Extract digests from UEFI "dbx" variable. + * UEFI standard specifies three types of digest - sha256, sha386, sha512. + */ +hash_data* +efi_get_forbidden_digests(size_t *count) +{ + UINT8 *database; + hash_data *digests; + EFI_SIGNATURE_LIST *list; + EFI_SIGNATURE_DATA *entry; + size_t db_size, header_size, hash_size; + int digest_count, entry_count; + EFI_STATUS status; + + db_size = 0; + digest_count = 0; + database = NULL; + digests = NULL; + + status = efi_getenv(&ImageSecurityDatabaseGUID, "dbx", database, &db_size); + if (status != EFI_BUFFER_TOO_SMALL) + return (NULL); + + database = malloc(db_size); + if (database == NULL) + return (NULL); + + status = efi_getenv(&ImageSecurityDatabaseGUID, "dbx", database, &db_size); + if (status != EFI_SUCCESS) + goto fail; + + + for (list = (EFI_SIGNATURE_LIST*) database; + db_size >= list->SignatureListSize && db_size > 0; + db_size -= list->SignatureListSize, + list = (EFI_SIGNATURE_LIST*) + ((UINT8*)list + list->SignatureListSize)) { + + /* We are only interested in entries that contain digests. */ + if (memcmp(&efiCertX509Sha256GUID, &list->SignatureType, + sizeof(EFI_GUID)) == 0) { + hash_size = br_sha256_SIZE; + } else if (memcmp(&efiCertX509Sha384GUID, &list->SignatureType, + sizeof(EFI_GUID)) == 0) { + hash_size = br_sha384_SIZE; + } else if (memcmp(&efiCertX509Sha5122UID, &list->SignatureType, + sizeof(EFI_GUID)) == 0) { + hash_size = br_sha512_SIZE; + } else { + continue; + } + + /* + * A single entry can have multiple digests + * of the same type for some reason. + */ + header_size = sizeof(EFI_SIGNATURE_LIST) + list->SignatureHeaderSize; + + /* Calculate the number of entries basing on structure size */ + entry_count = list->SignatureListSize - header_size; + entry_count /= list->SignatureSize; + entry = (EFI_SIGNATURE_DATA*)((UINT8*)list + header_size); + while (entry_count-- > 0) { + digests = realloc(digests, + (digest_count + 1) * sizeof(hash_data)); + if (digests == NULL) { + digest_count = 0; + goto fail; + } + + digests[digest_count].data = malloc(hash_size); + if (digests[digest_count].data == NULL) + goto fail; + + memcpy(digests[digest_count].data, + entry->SignatureData, + hash_size); + digests[digest_count].hash_size = hash_size; + + entry = (EFI_SIGNATURE_DATA*)(entry + list->SignatureSize); + digest_count++; + } + } + xfree(database); + if (count != NULL) + *count = digest_count; + + return (digests); + +fail: + while (digest_count--) + xfree(digests[digest_count].data); + + xfree(database); + xfree(digests); + return (NULL); +} + +/* Copy x509 certificates from db */ +br_x509_certificate* +efi_get_trusted_certs(size_t *count) +{ + return (efi_get_certs("db", count)); +} + +/* Copy forbidden certificates from dbx */ +br_x509_certificate* +efi_get_forbidden_certs(size_t *count) +{ + return (efi_get_certs("dbx", count)); +} Added: head/lib/libsecureboot/efi/include/Guid/GlobalVariable.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libsecureboot/efi/include/Guid/GlobalVariable.h Wed Mar 6 06:39:42 2019 (r344840) @@ -0,0 +1,194 @@ +/** @file + GUID for EFI (NVRAM) Variables. + Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
+ This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + @par Revision Reference: + GUID defined in UEFI 2.1 +**/ + +#ifndef __GLOBAL_VARIABLE_GUID_H__ +#define __GLOBAL_VARIABLE_GUID_H__ + +#include +__FBSDID("$FreeBSD$"); + +#ifndef EFI_GLOBAL_VARIABLE +#define EFI_GLOBAL_VARIABLE \ + { \ + 0x8BE4DF61, 0x93CA, 0x11d2, {0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C } \ + } +#endif /* EFI_GLOBAL_VARIABLE */ + +extern EFI_GUID gEfiGlobalVariableGuid; + +// +// Follow UEFI 2.4 spec: +// To prevent name collisions with possible future globally defined variables, +// other internal firmware data variables that are not defined here must be +// saved with a unique VendorGuid other than EFI_GLOBAL_VARIABLE or +// any other GUID defined by the UEFI Specification. Implementations must +// only permit the creation of variables with a UEFI Specification-defined +// VendorGuid when these variables are documented in the UEFI Specification. +// +// Note: except the globally defined variables defined below, the spec also defines +// L"Boot####" - A boot load option. +// L"Driver####" - A driver load option. +// L"SysPrep####" - A System Prep application load option. +// L"Key####" - Describes hot key relationship with a Boot#### load option. +// The attribute for them is NV+BS+RT, #### is a printed hex value, and no 0x or h +// is included in the hex value. They can not be expressed as a #define like other globally +// defined variables, it is because we can not list the Boot0000, Boot0001, etc one by one. +// + +/// +/// The language codes that the firmware supports. This value is deprecated. +/// Its attribute is BS+RT. +/// +#define EFI_LANG_CODES_VARIABLE_NAME L"LangCodes" +/// +/// The language code that the system is configured for. This value is deprecated. +/// Its attribute is NV+BS+RT. +/// +#define EFI_LANG_VARIABLE_NAME L"Lang" +/// +/// The firmware's boot managers timeout, in seconds, before initiating the default boot selection. +/// Its attribute is NV+BS+RT. +/// +#define EFI_TIME_OUT_VARIABLE_NAME L"Timeout" +/// +/// The language codes that the firmware supports. +/// Its attribute is BS+RT. +/// +#define EFI_PLATFORM_LANG_CODES_VARIABLE_NAME L"PlatformLangCodes" +/// +/// The language code that the system is configured for. +/// Its attribute is NV+BS+RT. +/// +#define EFI_PLATFORM_LANG_VARIABLE_NAME L"PlatformLang" +/// +/// The device path of the default input/output/error output console. +/// Its attribute is NV+BS+RT. +/// +#define EFI_CON_IN_VARIABLE_NAME L"ConIn" +#define EFI_CON_OUT_VARIABLE_NAME L"ConOut" +#define EFI_ERR_OUT_VARIABLE_NAME L"ErrOut" +/// +/// The device path of all possible input/output/error output devices. +/// Its attribute is BS+RT. +/// +#define EFI_CON_IN_DEV_VARIABLE_NAME L"ConInDev" +#define EFI_CON_OUT_DEV_VARIABLE_NAME L"ConOutDev" +#define EFI_ERR_OUT_DEV_VARIABLE_NAME L"ErrOutDev" +/// +/// The ordered boot option load list. +/// Its attribute is NV+BS+RT. +/// +#define EFI_BOOT_ORDER_VARIABLE_NAME L"BootOrder" +/// +/// The boot option for the next boot only. +/// Its attribute is NV+BS+RT. +/// +#define EFI_BOOT_NEXT_VARIABLE_NAME L"BootNext" +/// +/// The boot option that was selected for the current boot. +/// Its attribute is BS+RT. +/// +#define EFI_BOOT_CURRENT_VARIABLE_NAME L"BootCurrent" +/// +/// The types of boot options supported by the boot manager. Should be treated as read-only. +/// Its attribute is BS+RT. +/// +#define EFI_BOOT_OPTION_SUPPORT_VARIABLE_NAME L"BootOptionSupport" +/// +/// The ordered driver load option list. +/// Its attribute is NV+BS+RT. +/// +#define EFI_DRIVER_ORDER_VARIABLE_NAME L"DriverOrder" +/// +/// The ordered System Prep Application load option list. +/// Its attribute is NV+BS+RT. +/// +#define EFI_SYS_PREP_ORDER_VARIABLE_NAME L"SysPrepOrder" +/// +/// Identifies the level of hardware error record persistence +/// support implemented by the platform. This variable is +/// only modified by firmware and is read-only to the OS. +/// Its attribute is NV+BS+RT. +/// +#define EFI_HW_ERR_REC_SUPPORT_VARIABLE_NAME L"HwErrRecSupport" +/// +/// Whether the system is operating in setup mode (1) or not (0). +/// All other values are reserved. Should be treated as read-only. +/// Its attribute is BS+RT. +/// +#define EFI_SETUP_MODE_NAME L"SetupMode" +/// +/// The Key Exchange Key Signature Database. +/// Its attribute is NV+BS+RT+AT. +/// +#define EFI_KEY_EXCHANGE_KEY_NAME L"KEK" +/// +/// The public Platform Key. +/// Its attribute is NV+BS+RT+AT. +/// +#define EFI_PLATFORM_KEY_NAME L"PK" +/// +/// Array of GUIDs representing the type of signatures supported +/// by the platform firmware. Should be treated as read-only. +/// Its attribute is BS+RT. +/// +#define EFI_SIGNATURE_SUPPORT_NAME L"SignatureSupport" +/// +/// Whether the platform firmware is operating in Secure boot mode (1) or not (0). +/// All other values are reserved. Should be treated as read-only. +/// Its attribute is BS+RT. +/// +#define EFI_SECURE_BOOT_MODE_NAME L"SecureBoot" +/// +/// The OEM's default Key Exchange Key Signature Database. Should be treated as read-only. +/// Its attribute is BS+RT. +/// +#define EFI_KEK_DEFAULT_VARIABLE_NAME L"KEKDefault" +/// +/// The OEM's default public Platform Key. Should be treated as read-only. +/// Its attribute is BS+RT. +/// +#define EFI_PK_DEFAULT_VARIABLE_NAME L"PKDefault" +/// +/// The OEM's default secure boot signature store. Should be treated as read-only. +/// Its attribute is BS+RT. +/// +#define EFI_DB_DEFAULT_VARIABLE_NAME L"dbDefault" +/// +/// The OEM's default secure boot blacklist signature store. Should be treated as read-only. +/// Its attribute is BS+RT. +/// +#define EFI_DBX_DEFAULT_VARIABLE_NAME L"dbxDefault" +/// +/// The OEM's default secure boot timestamp signature store. Should be treated as read-only. +/// Its attribute is BS+RT. +/// +#define EFI_DBT_DEFAULT_VARIABLE_NAME L"dbtDefault" +/// +/// Allows the firmware to indicate supported features and actions to the OS. +/// Its attribute is BS+RT. +/// +#define EFI_OS_INDICATIONS_SUPPORT_VARIABLE_NAME L"OsIndicationsSupported" +/// +/// Allows the OS to request the firmware to enable certain features and to take certain actions. +/// Its attribute is NV+BS+RT. +/// +#define EFI_OS_INDICATIONS_VARIABLE_NAME L"OsIndications" +/// +/// Whether the system is configured to use only vendor provided +/// keys or not. Should be treated as read-only. +/// Its attribute is BS+RT. +/// +#define EFI_VENDOR_KEYS_VARIABLE_NAME L"VendorKeys" + +#endif Added: head/lib/libsecureboot/efi/include/Guid/ImageAuthentication.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libsecureboot/efi/include/Guid/ImageAuthentication.h Wed Mar 6 06:39:42 2019 (r344840) @@ -0,0 +1,352 @@ +/** @file + Image signature database are defined for the signed image validation. + Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
+ This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + @par Revision Reference: + GUIDs defined in UEFI 2.5 spec. +**/ + +#ifndef __IMAGE_AUTHTICATION_H__ +#define __IMAGE_AUTHTICATION_H__ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#define EFI_IMAGE_SECURITY_DATABASE_GUID \ + { \ + 0xd719b2cb, 0x3d3a, 0x4596, { 0xa3, 0xbc, 0xda, 0xd0, 0xe, 0x67, 0x65, 0x6f } \ + } + +/// +/// Varialbe name with guid EFI_IMAGE_SECURITY_DATABASE_GUID +/// for the authorized signature database. +/// +#define EFI_IMAGE_SECURITY_DATABASE L"db" +/// +/// Varialbe name with guid EFI_IMAGE_SECURITY_DATABASE_GUID +/// for the forbidden signature database. +/// +#define EFI_IMAGE_SECURITY_DATABASE1 L"dbx" +/// +/// Variable name with guid EFI_IMAGE_SECURITY_DATABASE_GUID +/// for the timestamp signature database. +/// +#define EFI_IMAGE_SECURITY_DATABASE2 L"dbt" + +#define SECURE_BOOT_MODE_ENABLE 1 +#define SECURE_BOOT_MODE_DISABLE 0 + +#define SETUP_MODE 1 +#define USER_MODE 0 + +//*********************************************************************** +// Signature Database +//*********************************************************************** +/// +/// The format of a signature database. +/// +#pragma pack(1) + +typedef struct { + /// + /// An identifier which identifies the agent which added the signature to the list. + /// + EFI_GUID SignatureOwner; + /// + /// The format of the signature is defined by the SignatureType. + /// + UINT8 SignatureData[1]; +} EFI_SIGNATURE_DATA; + +typedef struct { + /// + /// Type of the signature. GUID signature types are defined in below. + /// + EFI_GUID SignatureType; + /// + /// Total size of the signature list, including this header. + /// + UINT32 SignatureListSize; + /// + /// Size of the signature header which precedes the array of signatures. + /// + UINT32 SignatureHeaderSize; + /// + /// Size of each signature. + /// + UINT32 SignatureSize; + /// + /// Header before the array of signatures. The format of this header is specified + /// by the SignatureType. + /// UINT8 SignatureHeader[SignatureHeaderSize]; + /// + /// An array of signatures. Each signature is SignatureSize bytes in length. + /// EFI_SIGNATURE_DATA Signatures[][SignatureSize]; + /// +} EFI_SIGNATURE_LIST; + +typedef struct { + /// + /// The SHA256 hash of an X.509 certificate's To-Be-Signed contents. + /// + EFI_SHA256_HASH ToBeSignedHash; + /// + /// The time that the certificate shall be considered to be revoked. + /// + EFI_TIME TimeOfRevocation; +} EFI_CERT_X509_SHA256; + +typedef struct { + /// + /// The SHA384 hash of an X.509 certificate's To-Be-Signed contents. + /// + EFI_SHA384_HASH ToBeSignedHash; + /// + /// The time that the certificate shall be considered to be revoked. + /// + EFI_TIME TimeOfRevocation; +} EFI_CERT_X509_SHA384; + +typedef struct { + /// + /// The SHA512 hash of an X.509 certificate's To-Be-Signed contents. + /// + EFI_SHA512_HASH ToBeSignedHash; + /// + /// The time that the certificate shall be considered to be revoked. + /// + EFI_TIME TimeOfRevocation; +} EFI_CERT_X509_SHA512; + +#pragma pack() + +/// +/// This identifies a signature containing a SHA-256 hash. The SignatureHeader size shall +/// always be 0. The SignatureSize shall always be 16 (size of SignatureOwner component) + +/// 32 bytes. +/// +#define EFI_CERT_SHA256_GUID \ + { \ + 0xc1c41626, 0x504c, 0x4092, {0xac, 0xa9, 0x41, 0xf9, 0x36, 0x93, 0x43, 0x28} \ + } + +/// +/// This identifies a signature containing an RSA-2048 key. The key (only the modulus +/// since the public key exponent is known to be 0x10001) shall be stored in big-endian +/// order. +/// The SignatureHeader size shall always be 0. The SignatureSize shall always be 16 (size +/// of SignatureOwner component) + 256 bytes. +/// +#define EFI_CERT_RSA2048_GUID \ + { \ + 0x3c5766e8, 0x269c, 0x4e34, {0xaa, 0x14, 0xed, 0x77, 0x6e, 0x85, 0xb3, 0xb6} \ + } + +/// +/// This identifies a signature containing a RSA-2048 signature of a SHA-256 hash. The +/// SignatureHeader size shall always be 0. The SignatureSize shall always be 16 (size of +/// SignatureOwner component) + 256 bytes. +/// +#define EFI_CERT_RSA2048_SHA256_GUID \ + { \ + 0xe2b36190, 0x879b, 0x4a3d, {0xad, 0x8d, 0xf2, 0xe7, 0xbb, 0xa3, 0x27, 0x84} \ + } + +/// +/// This identifies a signature containing a SHA-1 hash. The SignatureSize shall always +/// be 16 (size of SignatureOwner component) + 20 bytes. +/// +#define EFI_CERT_SHA1_GUID \ + { \ + 0x826ca512, 0xcf10, 0x4ac9, {0xb1, 0x87, 0xbe, 0x1, 0x49, 0x66, 0x31, 0xbd} \ + } + +/// +/// TThis identifies a signature containing a RSA-2048 signature of a SHA-1 hash. The +/// SignatureHeader size shall always be 0. The SignatureSize shall always be 16 (size of +/// SignatureOwner component) + 256 bytes. +/// +#define EFI_CERT_RSA2048_SHA1_GUID \ + { \ + 0x67f8444f, 0x8743, 0x48f1, {0xa3, 0x28, 0x1e, 0xaa, 0xb8, 0x73, 0x60, 0x80} \ + } + +/// +/// This identifies a signature based on an X.509 certificate. If the signature is an X.509 +/// certificate then verification of the signature of an image should validate the public +/// key certificate in the image using certificate path verification, up to this X.509 +/// certificate as a trusted root. The SignatureHeader size shall always be 0. The +/// SignatureSize may vary but shall always be 16 (size of the SignatureOwner component) + +/// the size of the certificate itself. +/// Note: This means that each certificate will normally be in a separate EFI_SIGNATURE_LIST. +/// +#define EFI_CERT_X509_GUID \ + { \ + 0xa5c059a1, 0x94e4, 0x4aa7, {0x87, 0xb5, 0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72} \ + } + +/// +/// This identifies a signature containing a SHA-224 hash. The SignatureHeader size shall +/// always be 0. The SignatureSize shall always be 16 (size of SignatureOwner component) + +/// 28 bytes. +/// +#define EFI_CERT_SHA224_GUID \ + { \ + 0xb6e5233, 0xa65c, 0x44c9, {0x94, 0x7, 0xd9, 0xab, 0x83, 0xbf, 0xc8, 0xbd} \ + } + +/// +/// This identifies a signature containing a SHA-384 hash. The SignatureHeader size shall +/// always be 0. The SignatureSize shall always be 16 (size of SignatureOwner component) + +/// 48 bytes. +/// +#define EFI_CERT_SHA384_GUID \ + { \ + 0xff3e5307, 0x9fd0, 0x48c9, {0x85, 0xf1, 0x8a, 0xd5, 0x6c, 0x70, 0x1e, 0x1} \ + } + +/// +/// This identifies a signature containing a SHA-512 hash. The SignatureHeader size shall +/// always be 0. The SignatureSize shall always be 16 (size of SignatureOwner component) + +/// 64 bytes. +/// +#define EFI_CERT_SHA512_GUID \ + { \ + 0x93e0fae, 0xa6c4, 0x4f50, {0x9f, 0x1b, 0xd4, 0x1e, 0x2b, 0x89, 0xc1, 0x9a} \ + } + +/// +/// This identifies a signature containing the SHA256 hash of an X.509 certificate's +/// To-Be-Signed contents, and a time of revocation. The SignatureHeader size shall +/// always be 0. The SignatureSize shall always be 16 (size of the SignatureOwner component) +/// + 48 bytes for an EFI_CERT_X509_SHA256 structure. If the TimeOfRevocation is non-zero, +/// the certificate should be considered to be revoked from that time and onwards, and +/// otherwise the certificate shall be considered to always be revoked. +/// +#define EFI_CERT_X509_SHA256_GUID \ + { \ + 0x3bd2a492, 0x96c0, 0x4079, {0xb4, 0x20, 0xfc, 0xf9, 0x8e, 0xf1, 0x03, 0xed } \ + } + +/// +/// This identifies a signature containing the SHA384 hash of an X.509 certificate's +/// To-Be-Signed contents, and a time of revocation. The SignatureHeader size shall +/// always be 0. The SignatureSize shall always be 16 (size of the SignatureOwner component) +/// + 64 bytes for an EFI_CERT_X509_SHA384 structure. If the TimeOfRevocation is non-zero, +/// the certificate should be considered to be revoked from that time and onwards, and +/// otherwise the certificate shall be considered to always be revoked. +/// +#define EFI_CERT_X509_SHA384_GUID \ + { \ + 0x7076876e, 0x80c2, 0x4ee6, {0xaa, 0xd2, 0x28, 0xb3, 0x49, 0xa6, 0x86, 0x5b } \ + } + +/// +/// This identifies a signature containing the SHA512 hash of an X.509 certificate's +/// To-Be-Signed contents, and a time of revocation. The SignatureHeader size shall +/// always be 0. The SignatureSize shall always be 16 (size of the SignatureOwner component) +/// + 80 bytes for an EFI_CERT_X509_SHA512 structure. If the TimeOfRevocation is non-zero, +/// the certificate should be considered to be revoked from that time and onwards, and +/// otherwise the certificate shall be considered to always be revoked. +/// +#define EFI_CERT_X509_SHA512_GUID \ + { \ + 0x446dbf63, 0x2502, 0x4cda, {0xbc, 0xfa, 0x24, 0x65, 0xd2, 0xb0, 0xfe, 0x9d } \ + } + +/// +/// This identifies a signature containing a DER-encoded PKCS #7 version 1.5 [RFC2315] +/// SignedData value. +/// +#define EFI_CERT_TYPE_PKCS7_GUID \ + { \ + 0x4aafd29d, 0x68df, 0x49ee, {0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7} \ + } + +//*********************************************************************** +// Image Execution Information Table Definition +//*********************************************************************** +typedef UINT32 EFI_IMAGE_EXECUTION_ACTION; + +#define EFI_IMAGE_EXECUTION_AUTHENTICATION 0x00000007 +#define EFI_IMAGE_EXECUTION_AUTH_UNTESTED 0x00000000 +#define EFI_IMAGE_EXECUTION_AUTH_SIG_FAILED 0x00000001 +#define EFI_IMAGE_EXECUTION_AUTH_SIG_PASSED 0x00000002 +#define EFI_IMAGE_EXECUTION_AUTH_SIG_NOT_FOUND 0x00000003 +#define EFI_IMAGE_EXECUTION_AUTH_SIG_FOUND 0x00000004 +#define EFI_IMAGE_EXECUTION_POLICY_FAILED 0x00000005 +#define EFI_IMAGE_EXECUTION_INITIALIZED 0x00000008 + +// +// EFI_IMAGE_EXECUTION_INFO is added to EFI System Configuration Table +// and assigned the GUID EFI_IMAGE_SECURITY_DATABASE_GUID. +// +typedef struct { + /// + /// Describes the action taken by the firmware regarding this image. + /// + EFI_IMAGE_EXECUTION_ACTION Action; + /// + /// Size of all of the entire structure. + /// + UINT32 InfoSize; + /// + /// If this image was a UEFI device driver (for option ROM, for example) this is the + /// null-terminated, user-friendly name for the device. If the image was for an application, + /// then this is the name of the application. If this cannot be determined, then a simple + /// NULL character should be put in this position. + /// CHAR16 Name[]; + /// + + /// + /// For device drivers, this is the device path of the device for which this device driver + /// was intended. In some cases, the driver itself may be stored as part of the system + /// firmware, but this field should record the device's path, not the firmware path. For + /// applications, this is the device path of the application. If this cannot be determined, + /// a simple end-of-path device node should be put in this position. + /// EFI_DEVICE_PATH_PROTOCOL DevicePath; + /// + + /// + /// Zero or more image signatures. If the image contained no signatures, + /// then this field is empty. + /// EFI_SIGNATURE_LIST Signature; + /// +} EFI_IMAGE_EXECUTION_INFO; + + +typedef struct { + /// + /// Number of EFI_IMAGE_EXECUTION_INFO structures. + /// + UINTN NumberOfImages; + /// + /// Number of image instances of EFI_IMAGE_EXECUTION_INFO structures. + /// + // EFI_IMAGE_EXECUTION_INFO InformationInfo[] +} EFI_IMAGE_EXECUTION_INFO_TABLE; + +extern EFI_GUID gEfiImageSecurityDatabaseGuid; +extern EFI_GUID gEfiCertSha256Guid; +extern EFI_GUID gEfiCertRsa2048Guid; +extern EFI_GUID gEfiCertRsa2048Sha256Guid; +extern EFI_GUID gEfiCertSha1Guid; +extern EFI_GUID gEfiCertRsa2048Sha1Guid; +extern EFI_GUID gEfiCertX509Guid; +extern EFI_GUID gEfiCertSha224Guid; +extern EFI_GUID gEfiCertSha384Guid; +extern EFI_GUID gEfiCertSha512Guid; +extern EFI_GUID gEfiCertX509Sha256Guid; +extern EFI_GUID gEfiCertX509Sha384Guid; +extern EFI_GUID gEfiCertX509Sha512Guid; +extern EFI_GUID gEfiCertPkcs7Guid; + +#endif Added: head/lib/libsecureboot/efi/include/Protocol/Hash.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libsecureboot/efi/include/Protocol/Hash.h Wed Mar 6 06:39:42 2019 (r344840) @@ -0,0 +1,171 @@ +/** @file + EFI_HASH_SERVICE_BINDING_PROTOCOL as defined in UEFI 2.0. + EFI_HASH_PROTOCOL as defined in UEFI 2.0. + The EFI Hash Service Binding Protocol is used to locate hashing services support + provided by a driver and to create and destroy instances of the EFI Hash Protocol + so that a multiple drivers can use the underlying hashing services. +Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
+This program and the accompanying materials are licensed and made available under +the terms and conditions of the BSD License that accompanies this distribution. +The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php. +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +**/ + +#ifndef __EFI_HASH_PROTOCOL_H__ +#define __EFI_HASH_PROTOCOL_H__ + +#include +__FBSDID("$FreeBSD$"); + +#define CONST const + +#define EFI_HASH_SERVICE_BINDING_PROTOCOL_GUID \ + { \ + 0x42881c98, 0xa4f3, 0x44b0, {0xa3, 0x9d, 0xdf, 0xa1, 0x86, 0x67, 0xd8, 0xcd } \ + } + +#define EFI_HASH_PROTOCOL_GUID \ + { \ + 0xc5184932, 0xdba5, 0x46db, {0xa5, 0xba, 0xcc, 0x0b, 0xda, 0x9c, 0x14, 0x35 } \ + } + +#define EFI_HASH_ALGORITHM_SHA1_GUID \ + { \ + 0x2ae9d80f, 0x3fb2, 0x4095, {0xb7, 0xb1, 0xe9, 0x31, 0x57, 0xb9, 0x46, 0xb6 } \ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Wed Mar 6 07:54:30 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 359F515077CC; Wed, 6 Mar 2019 07:54:30 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CD10881860; Wed, 6 Mar 2019 07:54:29 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A412388C; Wed, 6 Mar 2019 07:54:29 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x267sTnX073397; Wed, 6 Mar 2019 07:54:29 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x267sTHE073396; Wed, 6 Mar 2019 07:54:29 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201903060754.x267sTHE073396@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Wed, 6 Mar 2019 07:54:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344841 - head/sys/dev/ath/ath_hal X-SVN-Group: head X-SVN-Commit-Author: adrian X-SVN-Commit-Paths: head/sys/dev/ath/ath_hal X-SVN-Commit-Revision: 344841 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: CD10881860 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Mar 2019 07:54:30 -0000 Author: adrian Date: Wed Mar 6 07:54:29 2019 New Revision: 344841 URL: https://svnweb.freebsd.org/changeset/base/344841 Log: [ath_hal] [ath_hal_ar9300] ANI fixes and preparation for userland control. * The ani function bitmap was being badly used when determining if a command could be used. In hostap modes only a couple of the ANI control parameters are enabled. * The ani function bitmap was not being reset to HAL_ANI_ALL if transitioning from AP -> STA. * Change mrcCckOff to mrcCck - 1 == on, rather than 1 == off. This matches the API used to set the value from userland via the diagnostic API. * Handle OFDM/CCK noise immunity level commands in ar9300_ani_control(). These will only come from userland and it will go and program the rest of the ANI control parameters with the values in the ANI table. * Ensure all of the ANI parameters can be tweaked at runtime, even if they're disabled. Tested: * carambola2 (AR9331), STA/AP modes Modified: head/sys/dev/ath/ath_hal/ah.h Modified: head/sys/dev/ath/ath_hal/ah.h ============================================================================== --- head/sys/dev/ath/ath_hal/ah.h Wed Mar 6 06:39:42 2019 (r344840) +++ head/sys/dev/ath/ath_hal/ah.h Wed Mar 6 07:54:29 2019 (r344841) @@ -893,13 +893,13 @@ typedef struct { } HAL_ANI_STATS; typedef struct { - uint8_t noiseImmunityLevel; /* OFDM */ - uint8_t cckNoiseImmunityLevel; + uint8_t noiseImmunityLevel; /* Global for pre-AR9380; OFDM later*/ + uint8_t cckNoiseImmunityLevel; /* AR9380: CCK specific NI */ uint8_t spurImmunityLevel; uint8_t firstepLevel; uint8_t ofdmWeakSigDetectOff; uint8_t cckWeakSigThreshold; - uint8_t mrcCckOff; + uint8_t mrcCck; /* MRC CCK is enabled */ uint32_t listenTime; /* NB: intentionally ordered so data exported to user space is first */ @@ -958,7 +958,7 @@ typedef struct { */ typedef enum { HAL_ANI_PRESENT = 0, /* is ANI support present */ - HAL_ANI_NOISE_IMMUNITY_LEVEL = 1, /* set level */ + HAL_ANI_NOISE_IMMUNITY_LEVEL = 1, /* set level (global or ofdm) */ HAL_ANI_OFDM_WEAK_SIGNAL_DETECTION = 2, /* enable/disable */ HAL_ANI_CCK_WEAK_SIGNAL_THR = 3, /* enable/disable */ HAL_ANI_FIRSTEP_LEVEL = 4, /* set level */ @@ -966,6 +966,7 @@ typedef enum { HAL_ANI_MODE = 6, /* 0 => manual, 1 => auto (XXX do not change) */ HAL_ANI_PHYERR_RESET = 7, /* reset phy error stats */ HAL_ANI_MRC_CCK = 8, + HAL_ANI_CCK_NOISE_IMMUNITY_LEVEL = 9, /* set level (cck) */ } HAL_ANI_CMD; #define HAL_ANI_ALL 0xffffffff From owner-svn-src-head@freebsd.org Wed Mar 6 07:58:20 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8770B15078BD; Wed, 6 Mar 2019 07:58:20 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2EE9B81AC4; Wed, 6 Mar 2019 07:58:20 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 247CD891; Wed, 6 Mar 2019 07:58:20 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x267wJ5h073630; Wed, 6 Mar 2019 07:58:19 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x267wJcP073627; Wed, 6 Mar 2019 07:58:19 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201903060758.x267wJcP073627@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Wed, 6 Mar 2019 07:58:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344842 - in head/tools/tools/ath: . athani X-SVN-Group: head X-SVN-Commit-Author: adrian X-SVN-Commit-Paths: in head/tools/tools/ath: . athani X-SVN-Commit-Revision: 344842 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 2EE9B81AC4 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.977,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Mar 2019 07:58:20 -0000 Author: adrian Date: Wed Mar 6 07:58:19 2019 New Revision: 344842 URL: https://svnweb.freebsd.org/changeset/base/344842 Log: [athani] Add a simple tool to list and control ANI parameters. This is a WIP tool I'm using to figure out why ANI is weirdly busted in my home FreeBSD AP/STA setup. Although athstats (mostly) gets the ANI statistics correct, ANI is making the radio deaf it doesn't recover without being disabled. It's very WIP. Tested: * Carambola 2, (AR9331), AP/STA mode. Added: head/tools/tools/ath/athani/ head/tools/tools/ath/athani/Makefile (contents, props changed) head/tools/tools/ath/athani/main.c (contents, props changed) Modified: head/tools/tools/ath/Makefile Modified: head/tools/tools/ath/Makefile ============================================================================== --- head/tools/tools/ath/Makefile Wed Mar 6 07:54:29 2019 (r344841) +++ head/tools/tools/ath/Makefile Wed Mar 6 07:58:19 2019 (r344842) @@ -3,6 +3,6 @@ SUBDIR= arcode athdebug athdecode athkey athpoke athprom athrd athregs athalq SUBDIR+= athstats ath_prom_read athradar athaggrstats SUBDIR+= ath_ee_v14_print ath_ee_v4k_print ath_ee_9287_print ath_ee_9300_print -SUBDIR+= athsurvey athratestats athspectral +SUBDIR+= athsurvey athratestats athspectral athani .include Added: head/tools/tools/ath/athani/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/tools/ath/athani/Makefile Wed Mar 6 07:58:19 2019 (r344842) @@ -0,0 +1,23 @@ +# $FreeBSD$ + +PROG= athani +MAN= + +CFLAGS+= -I../../../../sys/contrib + +SRCS= main.c + +.include <../Makefile.inc> + +CFLAGS+= -I${.CURDIR}/../common/ +.PATH.c: ${.CURDIR}/../common/ +SRCS+= ctrl.c + +CLEANFILES+= opt_ah.h + +opt_ah.h: + echo "#define AH_DEBUG 1" > opt_ah.h + echo "#define AH_DEBUG_COUNTRY 1" >> opt_ah.h + echo "#define AH_SUPPORT_AR5416 1" >> opt_ah.h + +.include Added: head/tools/tools/ath/athani/main.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/tools/ath/athani/main.c Wed Mar 6 07:58:19 2019 (r344842) @@ -0,0 +1,226 @@ +/*- + * Copyright (c) 2019 Adrian Chadd . + * 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, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. + * + * $FreeBSD$ + */ +#include "diag.h" + +#include "ah.h" +#include "ah_internal.h" + +#include +#include +#include +#include +#include + +#include "../common/ctrl.h" + +/* + * This is a simple wrapper program around the ANI diagnostic interface. + * It is for fetching and setting the live ANI configuration when trying + * to diagnose a noisy environment. + */ + +/* + * HAL_DIAG_ANI_CMD is used to set the ANI configuration. + * HAL_DIAG_ANI_CURRENT is used to fetch the current ANI configuration. + */ + +struct ani_var { + const char *name; + int id; +}; + +static struct ani_var ani_labels[] = { + { "ofdm_noise_immunity_level", 1, }, + { "noise_immunity_level", 1, }, + { "ofdm_weak_signal_detect", 2, }, + { "cck_weak_signal_threshold", 3, }, + { "firstep_level", 4, }, + { "spur_immunity_level", 5, }, + { "mrc_cck", 8, }, + { "cck_noise_immunity_level", 9, }, + { NULL, -1, }, +}; + +static void +usage(void) +{ + fprintf(stderr, "usage: athani [-i interface] [-l]\n"); + fprintf(stderr, " -i: interface\n"); + fprintf(stderr, " -l: list ANI labels\n"); + fprintf(stderr, " If no args are given after flags, the ANI state will be listed.\n"); + fprintf(stderr, " To set, use '