From owner-svn-src-projects@freebsd.org Sun Sep 6 12:02:31 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0F0C49CBD66 for ; Sun, 6 Sep 2015 12:02:31 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EEAFC1863; Sun, 6 Sep 2015 12:02:30 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t86C2UK3023008; Sun, 6 Sep 2015 12:02:30 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t86C2TTB023001; Sun, 6 Sep 2015 12:02:29 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201509061202.t86C2TTB023001@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 6 Sep 2015 12:02:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287502 - in projects/clang-trunk: contrib/llvm/tools/lldb sys/cam/ctl sys/dev/drm2/i915 sys/dev/e1000 sys/kern sys/sys usr.bin/procstat usr.sbin/ctladm usr.sbin/ctld usr.sbin/sesutil X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Sep 2015 12:02:31 -0000 Author: dim Date: Sun Sep 6 12:02:28 2015 New Revision: 287502 URL: https://svnweb.freebsd.org/changeset/base/287502 Log: Merge ^/head r287490 through r287501. Modified: projects/clang-trunk/contrib/llvm/tools/lldb/FREEBSD-Xlist projects/clang-trunk/sys/cam/ctl/ctl.c projects/clang-trunk/sys/cam/ctl/ctl.h projects/clang-trunk/sys/cam/ctl/ctl_backend.c projects/clang-trunk/sys/cam/ctl/ctl_backend.h projects/clang-trunk/sys/cam/ctl/ctl_backend_block.c projects/clang-trunk/sys/cam/ctl/ctl_backend_ramdisk.c projects/clang-trunk/sys/cam/ctl/ctl_private.h projects/clang-trunk/sys/dev/drm2/i915/intel_drv.h projects/clang-trunk/sys/dev/drm2/i915/intel_ringbuffer.h projects/clang-trunk/sys/dev/drm2/i915/intel_sdvo_regs.h projects/clang-trunk/sys/dev/e1000/e1000_80003es2lan.c projects/clang-trunk/sys/dev/e1000/e1000_82540.c projects/clang-trunk/sys/dev/e1000/e1000_82541.c projects/clang-trunk/sys/dev/e1000/e1000_82542.c projects/clang-trunk/sys/dev/e1000/e1000_82543.c projects/clang-trunk/sys/dev/e1000/e1000_82571.h projects/clang-trunk/sys/dev/e1000/e1000_82575.c projects/clang-trunk/sys/dev/e1000/e1000_82575.h projects/clang-trunk/sys/dev/e1000/e1000_api.c projects/clang-trunk/sys/dev/e1000/e1000_api.h projects/clang-trunk/sys/dev/e1000/e1000_defines.h projects/clang-trunk/sys/dev/e1000/e1000_hw.h projects/clang-trunk/sys/dev/e1000/e1000_i210.c projects/clang-trunk/sys/dev/e1000/e1000_i210.h projects/clang-trunk/sys/dev/e1000/e1000_ich8lan.c projects/clang-trunk/sys/dev/e1000/e1000_ich8lan.h projects/clang-trunk/sys/dev/e1000/e1000_mac.c projects/clang-trunk/sys/dev/e1000/e1000_mac.h projects/clang-trunk/sys/dev/e1000/e1000_nvm.c projects/clang-trunk/sys/dev/e1000/e1000_nvm.h projects/clang-trunk/sys/dev/e1000/e1000_osdep.h projects/clang-trunk/sys/dev/e1000/e1000_phy.c projects/clang-trunk/sys/dev/e1000/e1000_regs.h projects/clang-trunk/sys/dev/e1000/if_em.c projects/clang-trunk/sys/dev/e1000/if_em.h projects/clang-trunk/sys/dev/e1000/if_igb.c projects/clang-trunk/sys/kern/vfs_cache.c projects/clang-trunk/sys/kern/vfs_hash.c projects/clang-trunk/sys/kern/vfs_subr.c projects/clang-trunk/sys/sys/vnode.h projects/clang-trunk/usr.bin/procstat/procstat_kstack.c projects/clang-trunk/usr.sbin/ctladm/ctladm.8 projects/clang-trunk/usr.sbin/ctladm/ctladm.c projects/clang-trunk/usr.sbin/ctld/ctld.c projects/clang-trunk/usr.sbin/ctld/ctld.h projects/clang-trunk/usr.sbin/ctld/kernel.c projects/clang-trunk/usr.sbin/sesutil/sesutil.c Directory Properties: projects/clang-trunk/ (props changed) projects/clang-trunk/contrib/llvm/ (props changed) projects/clang-trunk/contrib/llvm/tools/lldb/ (props changed) projects/clang-trunk/sys/ (props changed) projects/clang-trunk/usr.bin/procstat/ (props changed) Modified: projects/clang-trunk/contrib/llvm/tools/lldb/FREEBSD-Xlist ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/FREEBSD-Xlist Sun Sep 6 11:48:50 2015 (r287501) +++ projects/clang-trunk/contrib/llvm/tools/lldb/FREEBSD-Xlist Sun Sep 6 12:02:28 2015 (r287502) @@ -3,6 +3,7 @@ .clang-format .gitignore CMakeLists.txt +CODE_OWNERS.txt INSTALL.txt Makefile cmake/ @@ -27,6 +28,7 @@ include/lldb/Host/msvc/ include/lldb/Host/windows/ include/lldb/Makefile lib/ +lit/ lldb.xcodeproj/ lldb.xcworkspace/ resources/ @@ -46,12 +48,15 @@ source/Expression/CMakeLists.txt source/Expression/Makefile source/Host/CMakeLists.txt source/Host/Makefile +source/Host/android/ source/Host/common/Makefile source/Host/freebsd/Makefile source/Host/linux/ source/Host/macosx/ source/Host/posix/Makefile source/Host/windows/ +source/Initialization/CMakeLists.txt +source/Initialization/Makefile source/Interpreter/CMakeLists.txt source/Interpreter/Makefile source/Makefile @@ -62,8 +67,18 @@ source/Plugins/ABI/MacOSX-arm64/CMakeLis source/Plugins/ABI/MacOSX-arm64/Makefile source/Plugins/ABI/MacOSX-i386/CMakeLists.txt source/Plugins/ABI/MacOSX-i386/Makefile +source/Plugins/ABI/SysV-arm/CMakeLists.txt +source/Plugins/ABI/SysV-arm/Makefile +source/Plugins/ABI/SysV-arm64/CMakeLists.txt +source/Plugins/ABI/SysV-arm64/Makefile source/Plugins/ABI/SysV-hexagon/CMakeLists.txt source/Plugins/ABI/SysV-hexagon/Makefile +source/Plugins/ABI/SysV-i386/CMakeLists.txt +source/Plugins/ABI/SysV-i386/Makefile +source/Plugins/ABI/SysV-mips/CMakeLists.txt +source/Plugins/ABI/SysV-mips/Makefile +source/Plugins/ABI/SysV-mips64/CMakeLists.txt +source/Plugins/ABI/SysV-mips64/Makefile source/Plugins/ABI/SysV-ppc/CMakeLists.txt source/Plugins/ABI/SysV-ppc/Makefile source/Plugins/ABI/SysV-ppc64/CMakeLists.txt @@ -88,6 +103,10 @@ source/Plugins/Instruction/ARM/Makefile source/Plugins/Instruction/ARM64/CMakeLists.txt source/Plugins/Instruction/ARM64/Makefile source/Plugins/Instruction/CMakeLists.txt +source/Plugins/Instruction/MIPS/CMakeLists.txt +source/Plugins/Instruction/MIPS/Makefile +source/Plugins/Instruction/MIPS64/CMakeLists.txt +source/Plugins/Instruction/MIPS64/Makefile source/Plugins/InstrumentationRuntime/AddressSanitizer/CMakeLists.txt source/Plugins/InstrumentationRuntime/AddressSanitizer/Makefile source/Plugins/InstrumentationRuntime/CMakeLists.txt @@ -99,6 +118,9 @@ source/Plugins/LanguageRuntime/CPlusPlus source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/CMakeLists.txt source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/Makefile source/Plugins/LanguageRuntime/ObjC/ +source/Plugins/LanguageRuntime/RenderScript/CMakeLists.txt +source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/CMakeLists.txt +source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/Makefile source/Plugins/Makefile source/Plugins/MemoryHistory/CMakeLists.txt source/Plugins/MemoryHistory/asan/CMakeLists.txt @@ -117,6 +139,7 @@ source/Plugins/ObjectFile/PECOFF/ source/Plugins/OperatingSystem/CMakeLists.txt source/Plugins/OperatingSystem/Python/CMakeLists.txt source/Plugins/OperatingSystem/Python/Makefile +source/Plugins/Platform/Android/ source/Plugins/Platform/CMakeLists.txt source/Plugins/Platform/FreeBSD/CMakeLists.txt source/Plugins/Platform/FreeBSD/Makefile @@ -168,6 +191,7 @@ source/Utility/Makefile test/ tools/CMakeLists.txt tools/Makefile +tools/argdumper/CMakeLists.txt tools/darwin-debug/ tools/darwin-threads/ tools/debugserver/ @@ -180,7 +204,9 @@ tools/lldb-mi/CMakeLists.txt tools/lldb-mi/Makefile tools/lldb-mi/lldb-Info.plist tools/lldb-perf/ -tools/lldb-platform/CMakeLists.txt -tools/lldb-platform/Makefile +tools/lldb-platform/ +tools/lldb-server/CMakeLists.txt +tools/lldb-server/Makefile +unittests/ utils/ www/ Modified: projects/clang-trunk/sys/cam/ctl/ctl.c ============================================================================== --- projects/clang-trunk/sys/cam/ctl/ctl.c Sun Sep 6 11:48:50 2015 (r287501) +++ projects/clang-trunk/sys/cam/ctl/ctl.c Sun Sep 6 12:02:28 2015 (r287502) @@ -4001,7 +4001,7 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft struct ctl_lun *nlun, *lun; struct scsi_vpd_id_descriptor *desc; struct scsi_vpd_id_t10 *t10id; - const char *eui, *naa, *scsiname, *vendor, *value; + const char *eui, *naa, *scsiname, *vendor; int lun_number, i, lun_malloced; int devidlen, idlen1, idlen2 = 0, len; @@ -4167,21 +4167,6 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft if (be_lun->flags & CTL_LUN_FLAG_PRIMARY) lun->flags |= CTL_LUN_PRIMARY_SC; - value = ctl_get_opt(&be_lun->options, "readonly"); - if (value != NULL && strcmp(value, "on") == 0) - lun->flags |= CTL_LUN_READONLY; - - lun->serseq = CTL_LUN_SERSEQ_OFF; - if (be_lun->flags & CTL_LUN_FLAG_SERSEQ_READ) - lun->serseq = CTL_LUN_SERSEQ_READ; - value = ctl_get_opt(&be_lun->options, "serseq"); - if (value != NULL && strcmp(value, "on") == 0) - lun->serseq = CTL_LUN_SERSEQ_ON; - else if (value != NULL && strcmp(value, "read") == 0) - lun->serseq = CTL_LUN_SERSEQ_READ; - else if (value != NULL && strcmp(value, "off") == 0) - lun->serseq = CTL_LUN_SERSEQ_OFF; - lun->ctl_softc = ctl_softc; #ifdef CTL_TIME_IO lun->last_busy = getsbinuptime(); @@ -6274,7 +6259,7 @@ ctl_mode_sense(struct ctl_scsiio *ctsio) header->datalen = MIN(total_len - 1, 254); if (control_dev == 0) { header->dev_specific = 0x10; /* DPOFUA */ - if ((lun->flags & CTL_LUN_READONLY) || + if ((lun->be_lun->flags & CTL_LUN_FLAG_READONLY) || (lun->mode_pages.control_page[CTL_PAGE_CURRENT] .eca_and_aen & SCP_SWP) != 0) header->dev_specific |= 0x80; /* WP */ @@ -6297,7 +6282,7 @@ ctl_mode_sense(struct ctl_scsiio *ctsio) scsi_ulto2b(datalen, header->datalen); if (control_dev == 0) { header->dev_specific = 0x10; /* DPOFUA */ - if ((lun->flags & CTL_LUN_READONLY) || + if ((lun->be_lun->flags & CTL_LUN_FLAG_READONLY) || (lun->mode_pages.control_page[CTL_PAGE_CURRENT] .eca_and_aen & SCP_SWP) != 0) header->dev_specific |= 0x80; /* WP */ @@ -10530,15 +10515,16 @@ ctl_check_for_blockage(struct ctl_lun *l return (CTL_ACTION_BLOCK); case CTL_SER_EXTENT: return (ctl_extent_check(ooa_io, pending_io, - (lun->serseq == CTL_LUN_SERSEQ_ON))); + (lun->be_lun && lun->be_lun->serseq == CTL_LUN_SERSEQ_ON))); case CTL_SER_EXTENTOPT: if ((lun->mode_pages.control_page[CTL_PAGE_CURRENT].queue_flags & SCP_QUEUE_ALG_MASK) != SCP_QUEUE_ALG_UNRESTRICTED) return (ctl_extent_check(ooa_io, pending_io, - (lun->serseq == CTL_LUN_SERSEQ_ON))); + (lun->be_lun && + lun->be_lun->serseq == CTL_LUN_SERSEQ_ON))); return (CTL_ACTION_PASS); case CTL_SER_EXTENTSEQ: - if (lun->serseq != CTL_LUN_SERSEQ_OFF) + if (lun->be_lun && lun->be_lun->serseq != CTL_LUN_SERSEQ_OFF) return (ctl_extent_check_seq(ooa_io, pending_io)); return (CTL_ACTION_PASS); case CTL_SER_PASS: @@ -10765,7 +10751,8 @@ ctl_scsiio_lun_check(struct ctl_lun *lun } if (entry->pattern & CTL_LUN_PAT_WRITE) { - if (lun->flags & CTL_LUN_READONLY) { + if (lun->be_lun && + lun->be_lun->flags & CTL_LUN_FLAG_READONLY) { ctl_set_sense(ctsio, /*current_error*/ 1, /*sense_key*/ SSD_KEY_DATA_PROTECT, /*asc*/ 0x27, /*ascq*/ 0x01, SSD_ELEM_NONE); Modified: projects/clang-trunk/sys/cam/ctl/ctl.h ============================================================================== --- projects/clang-trunk/sys/cam/ctl/ctl.h Sun Sep 6 11:48:50 2015 (r287501) +++ projects/clang-trunk/sys/cam/ctl/ctl.h Sun Sep 6 12:02:28 2015 (r287502) @@ -208,6 +208,8 @@ typedef STAILQ_HEAD(ctl_options, ctl_opt struct ctl_be_arg; void ctl_init_opts(ctl_options_t *opts, int num_args, struct ctl_be_arg *args); +void ctl_update_opts(ctl_options_t *opts, int num_args, + struct ctl_be_arg *args); void ctl_free_opts(ctl_options_t *opts); char * ctl_get_opt(ctl_options_t *opts, const char *name); int ctl_expand_number(const char *buf, uint64_t *num); Modified: projects/clang-trunk/sys/cam/ctl/ctl_backend.c ============================================================================== --- projects/clang-trunk/sys/cam/ctl/ctl_backend.c Sun Sep 6 11:48:50 2015 (r287501) +++ projects/clang-trunk/sys/cam/ctl/ctl_backend.c Sun Sep 6 12:02:28 2015 (r287502) @@ -185,15 +185,48 @@ ctl_init_opts(ctl_options_t *opts, int n if ((args[i].flags & CTL_BEARG_ASCII) == 0) continue; opt = malloc(sizeof(*opt), M_CTL, M_WAITOK); - opt->name = malloc(strlen(args[i].kname) + 1, M_CTL, M_WAITOK); - strcpy(opt->name, args[i].kname); - opt->value = malloc(strlen(args[i].kvalue) + 1, M_CTL, M_WAITOK); - strcpy(opt->value, args[i].kvalue); + opt->name = strdup(args[i].kname, M_CTL); + opt->value = strdup(args[i].kvalue, M_CTL); STAILQ_INSERT_TAIL(opts, opt, links); } } void +ctl_update_opts(ctl_options_t *opts, int num_args, struct ctl_be_arg *args) +{ + struct ctl_option *opt; + int i; + + for (i = 0; i < num_args; i++) { + if ((args[i].flags & CTL_BEARG_RD) == 0) + continue; + if ((args[i].flags & CTL_BEARG_ASCII) == 0) + continue; + STAILQ_FOREACH(opt, opts, links) { + if (strcmp(opt->name, args[i].kname) == 0) + break; + } + if (args[i].kvalue != NULL && + ((char *)args[i].kvalue)[0] != 0) { + if (opt) { + free(opt->value, M_CTL); + opt->value = strdup(args[i].kvalue, M_CTL); + } else { + opt = malloc(sizeof(*opt), M_CTL, M_WAITOK); + opt->name = strdup(args[i].kname, M_CTL); + opt->value = strdup(args[i].kvalue, M_CTL); + STAILQ_INSERT_TAIL(opts, opt, links); + } + } else if (opt) { + STAILQ_REMOVE(opts, opt, ctl_option, links); + free(opt->name, M_CTL); + free(opt->value, M_CTL); + free(opt, M_CTL); + } + } +} + +void ctl_free_opts(ctl_options_t *opts) { struct ctl_option *opt; Modified: projects/clang-trunk/sys/cam/ctl/ctl_backend.h ============================================================================== --- projects/clang-trunk/sys/cam/ctl/ctl_backend.h Sun Sep 6 11:48:50 2015 (r287501) +++ projects/clang-trunk/sys/cam/ctl/ctl_backend.h Sun Sep 6 12:02:28 2015 (r287502) @@ -86,9 +86,15 @@ typedef enum { CTL_LUN_FLAG_DEV_TYPE = 0x40, CTL_LUN_FLAG_UNMAP = 0x80, CTL_LUN_FLAG_OFFLINE = 0x100, - CTL_LUN_FLAG_SERSEQ_READ = 0x200 + CTL_LUN_FLAG_READONLY = 0x200 } ctl_backend_lun_flags; +typedef enum { + CTL_LUN_SERSEQ_OFF, + CTL_LUN_SERSEQ_READ, + CTL_LUN_SERSEQ_ON +} ctl_lun_serseq; + #ifdef _KERNEL #define CTL_BACKEND_DECLARE(name, driver) \ @@ -195,6 +201,7 @@ typedef void (*be_lun_config_t)(void *be struct ctl_be_lun { uint8_t lun_type; /* passed to CTL */ ctl_backend_lun_flags flags; /* passed to CTL */ + ctl_lun_serseq serseq; /* passed to CTL */ void *be_lun; /* passed to CTL */ uint64_t maxlba; /* passed to CTL */ uint32_t blocksize; /* passed to CTL */ Modified: projects/clang-trunk/sys/cam/ctl/ctl_backend_block.c ============================================================================== --- projects/clang-trunk/sys/cam/ctl/ctl_backend_block.c Sun Sep 6 11:48:50 2015 (r287501) +++ projects/clang-trunk/sys/cam/ctl/ctl_backend_block.c Sun Sep 6 12:02:28 2015 (r287502) @@ -116,7 +116,6 @@ typedef enum { CTL_BE_BLOCK_LUN_UNCONFIGURED = 0x01, CTL_BE_BLOCK_LUN_CONFIG_ERR = 0x02, CTL_BE_BLOCK_LUN_WAITING = 0x04, - CTL_BE_BLOCK_LUN_MULTI_THREAD = 0x08 } ctl_be_block_lun_flags; typedef enum { @@ -167,18 +166,11 @@ struct ctl_be_block_lun { uma_zone_t lun_zone; uint64_t size_blocks; uint64_t size_bytes; - uint32_t blocksize; - uint16_t pblockexp; - uint16_t pblockoff; - uint16_t ublockexp; - uint16_t ublockoff; - uint32_t atomicblock; - uint32_t opttxferlen; struct ctl_be_block_softc *softc; struct devstat *disk_stats; ctl_be_block_lun_flags flags; STAILQ_ENTRY(ctl_be_block_lun) links; - struct ctl_be_lun ctl_be_lun; + struct ctl_be_lun cbe_lun; struct taskqueue *io_taskqueue; struct task io_task; int num_threads; @@ -768,7 +760,7 @@ ctl_be_block_gls_file(struct ctl_be_bloc DPRINTF("entered\n"); - off = roff = ((off_t)lbalen->lba) * be_lun->blocksize; + off = roff = ((off_t)lbalen->lba) * be_lun->cbe_lun.blocksize; vn_lock(be_lun->vn, LK_SHARED | LK_RETRY); error = VOP_IOCTL(be_lun->vn, FIOSEEKHOLE, &off, 0, curthread->td_ucred, curthread); @@ -788,8 +780,8 @@ ctl_be_block_gls_file(struct ctl_be_bloc data = (struct scsi_get_lba_status_data *)io->scsiio.kern_data_ptr; scsi_u64to8b(lbalen->lba, data->descr[0].addr); - scsi_ulto4b(MIN(UINT32_MAX, off / be_lun->blocksize - lbalen->lba), - data->descr[0].length); + scsi_ulto4b(MIN(UINT32_MAX, off / be_lun->cbe_lun.blocksize - + lbalen->lba), data->descr[0].length); data->descr[0].status = status; ctl_complete_beio(beio); @@ -810,14 +802,14 @@ ctl_be_block_getattr_file(struct ctl_be_ if (strcmp(attrname, "blocksused") == 0) { error = VOP_GETATTR(be_lun->vn, &vattr, curthread->td_ucred); if (error == 0) - val = vattr.va_bytes / be_lun->blocksize; + val = vattr.va_bytes / be_lun->cbe_lun.blocksize; } if (strcmp(attrname, "blocksavail") == 0 && (be_lun->vn->v_iflag & VI_DOOMED) == 0) { error = VFS_STATFS(be_lun->vn->v_mount, &statfs); if (error == 0) val = statfs.f_bavail * statfs.f_bsize / - be_lun->blocksize; + be_lun->cbe_lun.blocksize; } VOP_UNLOCK(be_lun->vn, 0); return (val); @@ -928,7 +920,7 @@ ctl_be_block_gls_zvol(struct ctl_be_bloc DPRINTF("entered\n"); - off = roff = ((off_t)lbalen->lba) * be_lun->blocksize; + off = roff = ((off_t)lbalen->lba) * be_lun->cbe_lun.blocksize; error = (*dev_data->csw->d_ioctl)(dev_data->cdev, FIOSEEKHOLE, (caddr_t)&off, FREAD, curthread); if (error == 0 && off > roff) @@ -946,8 +938,8 @@ ctl_be_block_gls_zvol(struct ctl_be_bloc data = (struct scsi_get_lba_status_data *)io->scsiio.kern_data_ptr; scsi_u64to8b(lbalen->lba, data->descr[0].addr); - scsi_ulto4b(MIN(UINT32_MAX, off / be_lun->blocksize - lbalen->lba), - data->descr[0].length); + scsi_ulto4b(MIN(UINT32_MAX, off / be_lun->cbe_lun.blocksize - + lbalen->lba), data->descr[0].length); data->descr[0].status = status; ctl_complete_beio(beio); @@ -1003,7 +995,7 @@ ctl_be_block_unmap_dev_range(struct ctl_ uint64_t maxlen; dev_data = &be_lun->backend.dev; - maxlen = LONG_MAX - (LONG_MAX % be_lun->blocksize); + maxlen = LONG_MAX - (LONG_MAX % be_lun->cbe_lun.blocksize); while (len > 0) { bio = g_alloc_bio(); bio->bio_cmd = BIO_DELETE; @@ -1013,7 +1005,7 @@ ctl_be_block_unmap_dev_range(struct ctl_ bio->bio_data = 0; bio->bio_done = ctl_be_block_biodone; bio->bio_caller1 = beio; - bio->bio_pblkno = off / be_lun->blocksize; + bio->bio_pblkno = off / be_lun->cbe_lun.blocksize; off += bio->bio_length; len -= bio->bio_length; @@ -1055,11 +1047,11 @@ ctl_be_block_unmap_dev(struct ctl_be_blo end = buf + ptrlen->len / sizeof(*buf); for (; buf < end; buf++) { len = (uint64_t)scsi_4btoul(buf->length) * - be_lun->blocksize; + be_lun->cbe_lun.blocksize; beio->io_len += len; ctl_be_block_unmap_dev_range(be_lun, beio, - scsi_8btou64(buf->lba) * be_lun->blocksize, len, - (end - buf < 2) ? TRUE : FALSE); + scsi_8btou64(buf->lba) * be_lun->cbe_lun.blocksize, + len, (end - buf < 2) ? TRUE : FALSE); } } else ctl_be_block_unmap_dev_range(be_lun, beio, @@ -1111,7 +1103,7 @@ ctl_be_block_dispatch_dev(struct ctl_be_ bio->bio_offset = cur_offset; bio->bio_data = cur_ptr; bio->bio_done = ctl_be_block_biodone; - bio->bio_pblkno = cur_offset / be_lun->blocksize; + bio->bio_pblkno = cur_offset / be_lun->cbe_lun.blocksize; cur_offset += bio->bio_length; cur_ptr += bio->bio_length; @@ -1158,6 +1150,7 @@ static void ctl_be_block_cw_dispatch_sync(struct ctl_be_block_lun *be_lun, union ctl_io *io) { + struct ctl_be_lun *cbe_lun = &be_lun->cbe_lun; struct ctl_be_block_io *beio; struct ctl_lba_len_flags *lbalen; @@ -1165,8 +1158,8 @@ ctl_be_block_cw_dispatch_sync(struct ctl beio = (struct ctl_be_block_io *)PRIV(io)->ptr; lbalen = (struct ctl_lba_len_flags *)&io->io_hdr.ctl_private[CTL_PRIV_LBA_LEN]; - beio->io_len = lbalen->len * be_lun->blocksize; - beio->io_offset = lbalen->lba * be_lun->blocksize; + beio->io_len = lbalen->len * cbe_lun->blocksize; + beio->io_offset = lbalen->lba * cbe_lun->blocksize; beio->io_arg = (lbalen->flags & SSC_IMMED) != 0; beio->bio_cmd = BIO_FLUSH; beio->ds_trans_type = DEVSTAT_NO_DATA; @@ -1195,6 +1188,7 @@ static void ctl_be_block_cw_dispatch_ws(struct ctl_be_block_lun *be_lun, union ctl_io *io) { + struct ctl_be_lun *cbe_lun = &be_lun->cbe_lun; struct ctl_be_block_io *beio; struct ctl_lba_len_flags *lbalen; uint64_t len_left, lba; @@ -1221,8 +1215,8 @@ ctl_be_block_cw_dispatch_ws(struct ctl_b } if (lbalen->flags & (SWS_UNMAP | SWS_ANCHOR)) { - beio->io_offset = lbalen->lba * be_lun->blocksize; - beio->io_len = (uint64_t)lbalen->len * be_lun->blocksize; + beio->io_offset = lbalen->lba * cbe_lun->blocksize; + beio->io_len = (uint64_t)lbalen->len * cbe_lun->blocksize; beio->bio_cmd = BIO_DELETE; beio->ds_trans_type = DEVSTAT_FREE; @@ -1236,27 +1230,27 @@ ctl_be_block_cw_dispatch_ws(struct ctl_b DPRINTF("WRITE SAME at LBA %jx len %u\n", (uintmax_t)lbalen->lba, lbalen->len); - pb = be_lun->blocksize << be_lun->pblockexp; - if (be_lun->pblockoff > 0) - pbo = pb - be_lun->blocksize * be_lun->pblockoff; + pb = cbe_lun->blocksize << be_lun->cbe_lun.pblockexp; + if (be_lun->cbe_lun.pblockoff > 0) + pbo = pb - cbe_lun->blocksize * be_lun->cbe_lun.pblockoff; else pbo = 0; - len_left = (uint64_t)lbalen->len * be_lun->blocksize; + len_left = (uint64_t)lbalen->len * cbe_lun->blocksize; for (i = 0, lba = 0; i < CTLBLK_MAX_SEGS && len_left > 0; i++) { /* * Setup the S/G entry for this chunk. */ seglen = MIN(CTLBLK_MAX_SEG, len_left); - if (pb > be_lun->blocksize) { - adj = ((lbalen->lba + lba) * be_lun->blocksize + + if (pb > cbe_lun->blocksize) { + adj = ((lbalen->lba + lba) * cbe_lun->blocksize + seglen - pbo) % pb; if (seglen > adj) seglen -= adj; else - seglen -= seglen % be_lun->blocksize; + seglen -= seglen % cbe_lun->blocksize; } else - seglen -= seglen % be_lun->blocksize; + seglen -= seglen % cbe_lun->blocksize; beio->sg_segs[i].len = seglen; beio->sg_segs[i].addr = uma_zalloc(be_lun->lun_zone, M_WAITOK); @@ -1268,16 +1262,16 @@ ctl_be_block_cw_dispatch_ws(struct ctl_b buf = beio->sg_segs[i].addr; end = buf + seglen; - for (; buf < end; buf += be_lun->blocksize) { - memcpy(buf, io->scsiio.kern_data_ptr, be_lun->blocksize); + for (; buf < end; buf += cbe_lun->blocksize) { + memcpy(buf, io->scsiio.kern_data_ptr, cbe_lun->blocksize); if (lbalen->flags & SWS_LBDATA) scsi_ulto4b(lbalen->lba + lba, buf); lba++; } } - beio->io_offset = lbalen->lba * be_lun->blocksize; - beio->io_len = lba * be_lun->blocksize; + beio->io_offset = lbalen->lba * cbe_lun->blocksize; + beio->io_len = lba * cbe_lun->blocksize; /* We can not do all in one run. Correct and schedule rerun. */ if (len_left > 0) { @@ -1462,6 +1456,7 @@ static void ctl_be_block_dispatch(struct ctl_be_block_lun *be_lun, union ctl_io *io) { + struct ctl_be_lun *cbe_lun = &be_lun->cbe_lun; struct ctl_be_block_io *beio; struct ctl_be_block_softc *softc; struct ctl_lba_len_flags *lbalen; @@ -1516,9 +1511,9 @@ ctl_be_block_dispatch(struct ctl_be_bloc lbas = CTLBLK_HALF_IO_SIZE; else lbas = CTLBLK_MAX_IO_SIZE; - lbas = MIN(lbalen->len - bptrlen->len, lbas / be_lun->blocksize); - beio->io_offset = (lbalen->lba + bptrlen->len) * be_lun->blocksize; - beio->io_len = lbas * be_lun->blocksize; + lbas = MIN(lbalen->len - bptrlen->len, lbas / cbe_lun->blocksize); + beio->io_offset = (lbalen->lba + bptrlen->len) * cbe_lun->blocksize; + beio->io_len = lbas * cbe_lun->blocksize; bptrlen->len += lbas; for (i = 0, len_left = beio->io_len; len_left > 0; i++) { @@ -1663,13 +1658,13 @@ static int ctl_be_block_submit(union ctl_io *io) { struct ctl_be_block_lun *be_lun; - struct ctl_be_lun *ctl_be_lun; + struct ctl_be_lun *cbe_lun; DPRINTF("entered\n"); - ctl_be_lun = (struct ctl_be_lun *)io->io_hdr.ctl_private[ + cbe_lun = (struct ctl_be_lun *)io->io_hdr.ctl_private[ CTL_PRIV_BACKEND_LUN].ptr; - be_lun = (struct ctl_be_block_lun *)ctl_be_lun->be_lun; + be_lun = (struct ctl_be_block_lun *)cbe_lun->be_lun; /* * Make sure we only get SCSI I/O. @@ -1739,6 +1734,7 @@ ctl_be_block_ioctl(struct cdev *dev, u_l static int ctl_be_block_open_file(struct ctl_be_block_lun *be_lun, struct ctl_lun_req *req) { + struct ctl_be_lun *cbe_lun; struct ctl_be_block_filedata *file_data; struct ctl_lun_create_params *params; char *value; @@ -1747,6 +1743,7 @@ ctl_be_block_open_file(struct ctl_be_blo int error; error = 0; + cbe_lun = &be_lun->cbe_lun; file_data = &be_lun->backend.file; params = &be_lun->params; @@ -1755,6 +1752,8 @@ ctl_be_block_open_file(struct ctl_be_blo be_lun->lun_flush = ctl_be_block_flush_file; be_lun->get_lba_status = ctl_be_block_gls_file; be_lun->getattr = ctl_be_block_getattr_file; + be_lun->unmap = NULL; + cbe_lun->flags &= ~CTL_LUN_FLAG_UNMAP; error = VOP_GETATTR(be_lun->vn, &vattr, curthread->td_ucred); if (error != 0) { @@ -1779,19 +1778,11 @@ ctl_be_block_open_file(struct ctl_be_blo } } - file_data->cred = crhold(curthread->td_ucred); if (params->lun_size_bytes != 0) be_lun->size_bytes = params->lun_size_bytes; else be_lun->size_bytes = vattr.va_size; - /* - * We set the multi thread flag for file operations because all - * filesystems (in theory) are capable of allowing multiple readers - * of a file at once. So we want to get the maximum possible - * concurrency. - */ - be_lun->flags |= CTL_BE_BLOCK_LUN_MULTI_THREAD; /* * For files we can use any logical block size. Prefer 512 bytes @@ -1800,59 +1791,63 @@ ctl_be_block_open_file(struct ctl_be_blo * logical block size -- report it as physical block size. */ if (params->blocksize_bytes != 0) - be_lun->blocksize = params->blocksize_bytes; + cbe_lun->blocksize = params->blocksize_bytes; else - be_lun->blocksize = 512; + cbe_lun->blocksize = 512; + be_lun->size_blocks = be_lun->size_bytes / cbe_lun->blocksize; + cbe_lun->maxlba = (be_lun->size_blocks == 0) ? + 0 : (be_lun->size_blocks - 1); us = ps = vattr.va_blocksize; uo = po = 0; - value = ctl_get_opt(&be_lun->ctl_be_lun.options, "pblocksize"); + value = ctl_get_opt(&cbe_lun->options, "pblocksize"); if (value != NULL) ctl_expand_number(value, &ps); - value = ctl_get_opt(&be_lun->ctl_be_lun.options, "pblockoffset"); + value = ctl_get_opt(&cbe_lun->options, "pblockoffset"); if (value != NULL) ctl_expand_number(value, &po); - pss = ps / be_lun->blocksize; - pos = po / be_lun->blocksize; - if ((pss > 0) && (pss * be_lun->blocksize == ps) && (pss >= pos) && - ((pss & (pss - 1)) == 0) && (pos * be_lun->blocksize == po)) { - be_lun->pblockexp = fls(pss) - 1; - be_lun->pblockoff = (pss - pos) % pss; + pss = ps / cbe_lun->blocksize; + pos = po / cbe_lun->blocksize; + if ((pss > 0) && (pss * cbe_lun->blocksize == ps) && (pss >= pos) && + ((pss & (pss - 1)) == 0) && (pos * cbe_lun->blocksize == po)) { + cbe_lun->pblockexp = fls(pss) - 1; + cbe_lun->pblockoff = (pss - pos) % pss; } - value = ctl_get_opt(&be_lun->ctl_be_lun.options, "ublocksize"); + value = ctl_get_opt(&cbe_lun->options, "ublocksize"); if (value != NULL) ctl_expand_number(value, &us); - value = ctl_get_opt(&be_lun->ctl_be_lun.options, "ublockoffset"); + value = ctl_get_opt(&cbe_lun->options, "ublockoffset"); if (value != NULL) ctl_expand_number(value, &uo); - uss = us / be_lun->blocksize; - uos = uo / be_lun->blocksize; - if ((uss > 0) && (uss * be_lun->blocksize == us) && (uss >= uos) && - ((uss & (uss - 1)) == 0) && (uos * be_lun->blocksize == uo)) { - be_lun->ublockexp = fls(uss) - 1; - be_lun->ublockoff = (uss - uos) % uss; + uss = us / cbe_lun->blocksize; + uos = uo / cbe_lun->blocksize; + if ((uss > 0) && (uss * cbe_lun->blocksize == us) && (uss >= uos) && + ((uss & (uss - 1)) == 0) && (uos * cbe_lun->blocksize == uo)) { + cbe_lun->ublockexp = fls(uss) - 1; + cbe_lun->ublockoff = (uss - uos) % uss; } /* * Sanity check. The media size has to be at least one * sector long. */ - if (be_lun->size_bytes < be_lun->blocksize) { + if (be_lun->size_bytes < cbe_lun->blocksize) { error = EINVAL; snprintf(req->error_str, sizeof(req->error_str), "file %s size %ju < block size %u", be_lun->dev_path, - (uintmax_t)be_lun->size_bytes, be_lun->blocksize); + (uintmax_t)be_lun->size_bytes, cbe_lun->blocksize); } - be_lun->opttxferlen = CTLBLK_MAX_IO_SIZE / be_lun->blocksize; + cbe_lun->opttxferlen = CTLBLK_MAX_IO_SIZE / cbe_lun->blocksize; return (error); } static int ctl_be_block_open_dev(struct ctl_be_block_lun *be_lun, struct ctl_lun_req *req) { + struct ctl_be_lun *cbe_lun = &be_lun->cbe_lun; struct ctl_lun_create_params *params; struct vattr vattr; struct cdev *dev; @@ -1875,6 +1870,7 @@ ctl_be_block_open_dev(struct ctl_be_bloc atomic = maxio = CTLBLK_MAX_IO_SIZE; } else { be_lun->dispatch = ctl_be_block_dispatch_dev; + be_lun->get_lba_status = NULL; atomic = 0; maxio = be_lun->backend.dev.cdev->si_iosize_max; if (maxio <= 0) @@ -1884,6 +1880,7 @@ ctl_be_block_open_dev(struct ctl_be_bloc } be_lun->lun_flush = ctl_be_block_flush_dev; be_lun->getattr = ctl_be_block_getattr_dev; + be_lun->unmap = ctl_be_block_unmap_dev; error = VOP_GETATTR(be_lun->vn, &vattr, NOCRED); if (error) { @@ -1920,7 +1917,7 @@ ctl_be_block_open_dev(struct ctl_be_bloc if ((params->blocksize_bytes != 0) && (params->blocksize_bytes >= tmp)) { if (params->blocksize_bytes % tmp == 0) { - be_lun->blocksize = params->blocksize_bytes; + cbe_lun->blocksize = params->blocksize_bytes; } else { snprintf(req->error_str, sizeof(req->error_str), "requested blocksize %u is not an even " @@ -1935,7 +1932,7 @@ ctl_be_block_open_dev(struct ctl_be_bloc "blocksize %u", params->blocksize_bytes, tmp); return (EINVAL); } else - be_lun->blocksize = tmp; + cbe_lun->blocksize = tmp; error = devsw->d_ioctl(dev, DIOCGMEDIASIZE, (caddr_t)&otmp, FREAD, curthread); @@ -1960,6 +1957,9 @@ ctl_be_block_open_dev(struct ctl_be_bloc be_lun->size_bytes = params->lun_size_bytes; } else be_lun->size_bytes = otmp; + be_lun->size_blocks = be_lun->size_bytes / cbe_lun->blocksize; + cbe_lun->maxlba = (be_lun->size_blocks == 0) ? + 0 : (be_lun->size_blocks - 1); error = devsw->d_ioctl(dev, DIOCGSTRIPESIZE, (caddr_t)&ps, FREAD, curthread); @@ -1974,36 +1974,36 @@ ctl_be_block_open_dev(struct ctl_be_bloc us = ps; uo = po; - value = ctl_get_opt(&be_lun->ctl_be_lun.options, "pblocksize"); + value = ctl_get_opt(&cbe_lun->options, "pblocksize"); if (value != NULL) ctl_expand_number(value, &ps); - value = ctl_get_opt(&be_lun->ctl_be_lun.options, "pblockoffset"); + value = ctl_get_opt(&cbe_lun->options, "pblockoffset"); if (value != NULL) ctl_expand_number(value, &po); - pss = ps / be_lun->blocksize; - pos = po / be_lun->blocksize; - if ((pss > 0) && (pss * be_lun->blocksize == ps) && (pss >= pos) && - ((pss & (pss - 1)) == 0) && (pos * be_lun->blocksize == po)) { - be_lun->pblockexp = fls(pss) - 1; - be_lun->pblockoff = (pss - pos) % pss; + pss = ps / cbe_lun->blocksize; + pos = po / cbe_lun->blocksize; + if ((pss > 0) && (pss * cbe_lun->blocksize == ps) && (pss >= pos) && + ((pss & (pss - 1)) == 0) && (pos * cbe_lun->blocksize == po)) { + cbe_lun->pblockexp = fls(pss) - 1; + cbe_lun->pblockoff = (pss - pos) % pss; } - value = ctl_get_opt(&be_lun->ctl_be_lun.options, "ublocksize"); + value = ctl_get_opt(&cbe_lun->options, "ublocksize"); if (value != NULL) ctl_expand_number(value, &us); - value = ctl_get_opt(&be_lun->ctl_be_lun.options, "ublockoffset"); + value = ctl_get_opt(&cbe_lun->options, "ublockoffset"); if (value != NULL) ctl_expand_number(value, &uo); - uss = us / be_lun->blocksize; - uos = uo / be_lun->blocksize; - if ((uss > 0) && (uss * be_lun->blocksize == us) && (uss >= uos) && - ((uss & (uss - 1)) == 0) && (uos * be_lun->blocksize == uo)) { - be_lun->ublockexp = fls(uss) - 1; - be_lun->ublockoff = (uss - uos) % uss; + uss = us / cbe_lun->blocksize; + uos = uo / cbe_lun->blocksize; + if ((uss > 0) && (uss * cbe_lun->blocksize == us) && (uss >= uos) && + ((uss & (uss - 1)) == 0) && (uos * cbe_lun->blocksize == uo)) { + cbe_lun->ublockexp = fls(uss) - 1; + cbe_lun->ublockoff = (uss - uos) % uss; } - be_lun->atomicblock = atomic / be_lun->blocksize; - be_lun->opttxferlen = maxio / be_lun->blocksize; + cbe_lun->atomicblock = atomic / cbe_lun->blocksize; + cbe_lun->opttxferlen = maxio / cbe_lun->blocksize; if (be_lun->dispatch == ctl_be_block_dispatch_zvol) { unmap = 1; @@ -2016,11 +2016,13 @@ ctl_be_block_open_dev(struct ctl_be_bloc (caddr_t)&arg, FREAD, curthread); unmap = (error == 0) ? arg.value.i : 0; } - value = ctl_get_opt(&be_lun->ctl_be_lun.options, "unmap"); + value = ctl_get_opt(&cbe_lun->options, "unmap"); if (value != NULL) unmap = (strcmp(value, "on") == 0); if (unmap) - be_lun->unmap = ctl_be_block_unmap_dev; + cbe_lun->flags |= CTL_LUN_FLAG_UNMAP; + else + cbe_lun->flags &= ~CTL_LUN_FLAG_UNMAP; return (0); } @@ -2028,10 +2030,10 @@ ctl_be_block_open_dev(struct ctl_be_bloc static int ctl_be_block_close(struct ctl_be_block_lun *be_lun) { - DROP_GIANT(); - if (be_lun->vn) { - int flags = FREAD | FWRITE; + struct ctl_be_lun *cbe_lun = &be_lun->cbe_lun; + int flags; + if (be_lun->vn) { switch (be_lun->dev_type) { case CTL_BE_BLOCK_DEV: if (be_lun->backend.dev.csw) { @@ -2050,6 +2052,9 @@ ctl_be_block_close(struct ctl_be_block_l break; } + flags = FREAD; + if ((cbe_lun->flags & CTL_LUN_FLAG_READONLY) == 0) + flags |= FWRITE; (void)vn_close(be_lun->vn, flags, NOCRED, curthread); be_lun->vn = NULL; @@ -2070,36 +2075,47 @@ ctl_be_block_close(struct ctl_be_block_l } be_lun->dev_type = CTL_BE_BLOCK_NONE; } - PICKUP_GIANT(); - return (0); } static int ctl_be_block_open(struct ctl_be_block_softc *softc, - struct ctl_be_block_lun *be_lun, struct ctl_lun_req *req) + struct ctl_be_block_lun *be_lun, struct ctl_lun_req *req) { + struct ctl_be_lun *cbe_lun = &be_lun->cbe_lun; struct nameidata nd; - int flags; - int error; + char *value; + int error, flags; - /* - * XXX KDM allow a read-only option? - */ - flags = FREAD | FWRITE; error = 0; - if (rootvnode == NULL) { snprintf(req->error_str, sizeof(req->error_str), "Root filesystem is not mounted"); return (1); } - pwd_ensure_dirs(); - again: + value = ctl_get_opt(&cbe_lun->options, "file"); + if (value == NULL) { + snprintf(req->error_str, sizeof(req->error_str), + "no file argument specified"); + return (1); + } + free(be_lun->dev_path, M_CTLBLK); + be_lun->dev_path = strdup(value, M_CTLBLK); + + flags = FREAD; + value = ctl_get_opt(&cbe_lun->options, "readonly"); + if (value == NULL || strcmp(value, "on") != 0) + flags |= FWRITE; + +again: NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, be_lun->dev_path, curthread); error = vn_open(&nd, &flags, 0, NULL); + if ((error == EROFS || error == EACCES) && (flags & FWRITE)) { + flags &= ~FWRITE; + goto again; + } if (error) { /* * This is the only reasonable guess we can make as far as @@ -2108,28 +2124,24 @@ ctl_be_block_open(struct ctl_be_block_so * full path. */ if (be_lun->dev_path[0] != '/') { - char *dev_path = "/dev/"; char *dev_name; - /* Try adding device path at beginning of name */ - dev_name = malloc(strlen(be_lun->dev_path) - + strlen(dev_path) + 1, - M_CTLBLK, M_WAITOK); - if (dev_name) { - sprintf(dev_name, "%s%s", dev_path, - be_lun->dev_path); - free(be_lun->dev_path, M_CTLBLK); - be_lun->dev_path = dev_name; - goto again; - } + asprintf(&dev_name, M_CTLBLK, "/dev/%s", + be_lun->dev_path); + free(be_lun->dev_path, M_CTLBLK); + be_lun->dev_path = dev_name; + goto again; } snprintf(req->error_str, sizeof(req->error_str), "error opening %s: %d", be_lun->dev_path, error); return (error); } + if (flags & FWRITE) + cbe_lun->flags &= ~CTL_LUN_FLAG_READONLY; + else + cbe_lun->flags |= CTL_LUN_FLAG_READONLY; NDFREE(&nd, NDF_ONLY_PNBUF); - be_lun->vn = nd.ni_vp; /* We only support disks and files. */ @@ -2146,12 +2158,23 @@ ctl_be_block_open(struct ctl_be_block_so if (error != 0) ctl_be_block_close(be_lun); + cbe_lun->serseq = CTL_LUN_SERSEQ_OFF; + if (be_lun->dispatch != ctl_be_block_dispatch_dev) + cbe_lun->serseq = CTL_LUN_SERSEQ_READ; + value = ctl_get_opt(&cbe_lun->options, "serseq"); + if (value != NULL && strcmp(value, "on") == 0) + cbe_lun->serseq = CTL_LUN_SERSEQ_ON; + else if (value != NULL && strcmp(value, "read") == 0) + cbe_lun->serseq = CTL_LUN_SERSEQ_READ; + else if (value != NULL && strcmp(value, "off") == 0) + cbe_lun->serseq = CTL_LUN_SERSEQ_OFF; return (0); } static int ctl_be_block_create(struct ctl_be_block_softc *softc, struct ctl_lun_req *req) { + struct ctl_be_lun *cbe_lun; struct ctl_be_block_lun *be_lun; struct ctl_lun_create_params *params; char num_thread_str[16]; @@ -2164,10 +2187,9 @@ ctl_be_block_create(struct ctl_be_block_ retval = 0; req->status = CTL_LUN_OK; - num_threads = cbb_num_threads; - be_lun = malloc(sizeof(*be_lun), M_CTLBLK, M_ZERO | M_WAITOK); - + cbe_lun = &be_lun->cbe_lun; + cbe_lun->be_lun = be_lun; be_lun->params = req->reqdata.create; be_lun->softc = softc; STAILQ_INIT(&be_lun->input_queue); @@ -2177,12 +2199,10 @@ ctl_be_block_create(struct ctl_be_block_ sprintf(be_lun->lunname, "cblk%d", softc->num_luns); mtx_init(&be_lun->io_lock, "cblk io lock", NULL, MTX_DEF); mtx_init(&be_lun->queue_lock, "cblk queue lock", NULL, MTX_DEF); - ctl_init_opts(&be_lun->ctl_be_lun.options, + ctl_init_opts(&cbe_lun->options, req->num_be_args, req->kern_be_args); - be_lun->lun_zone = uma_zcreate(be_lun->lunname, CTLBLK_MAX_SEG, NULL, NULL, NULL, NULL, /*align*/ 0, /*flags*/0); - if (be_lun->lun_zone == NULL) { snprintf(req->error_str, sizeof(req->error_str), "error allocating UMA zone"); @@ -2190,46 +2210,29 @@ ctl_be_block_create(struct ctl_be_block_ } if (params->flags & CTL_LUN_FLAG_DEV_TYPE) - be_lun->ctl_be_lun.lun_type = params->device_type; + cbe_lun->lun_type = params->device_type; else - be_lun->ctl_be_lun.lun_type = T_DIRECT; + cbe_lun->lun_type = T_DIRECT; + be_lun->flags = CTL_BE_BLOCK_LUN_UNCONFIGURED; + cbe_lun->flags = CTL_LUN_FLAG_PRIMARY; - if (be_lun->ctl_be_lun.lun_type == T_DIRECT) { - value = ctl_get_opt(&be_lun->ctl_be_lun.options, "file"); - if (value == NULL) { - snprintf(req->error_str, sizeof(req->error_str), - "no file argument specified"); - goto bailout_error; - } - be_lun->dev_path = strdup(value, M_CTLBLK); + if (cbe_lun->lun_type == T_DIRECT) { be_lun->size_bytes = params->lun_size_bytes; if (params->blocksize_bytes != 0) - be_lun->blocksize = params->blocksize_bytes; + cbe_lun->blocksize = params->blocksize_bytes; else - be_lun->blocksize = 512; + cbe_lun->blocksize = 512; + be_lun->size_blocks = be_lun->size_bytes / cbe_lun->blocksize; + cbe_lun->maxlba = (be_lun->size_blocks == 0) ? + 0 : (be_lun->size_blocks - 1); retval = ctl_be_block_open(softc, be_lun, req); - be_lun->size_blocks = be_lun->size_bytes / be_lun->blocksize; if (retval != 0) { retval = 0; req->status = CTL_LUN_WARNING; } + num_threads = cbb_num_threads; } else { - /* - * For processor devices, we don't have any size. - */ - be_lun->blocksize = 0; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Sep 6 15:21:56 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C32C9CC2A0 for ; Sun, 6 Sep 2015 15:21:56 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 199F8144D; Sun, 6 Sep 2015 15:21:56 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t86FLuep005093; Sun, 6 Sep 2015 15:21:56 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t86FLmDS005064; Sun, 6 Sep 2015 15:21:48 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201509061521.t86FLmDS005064@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 6 Sep 2015 15:21:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287505 - in projects/clang-trunk: contrib/llvm/tools/lldb contrib/llvm/tools/lldb/include/lldb contrib/llvm/tools/lldb/include/lldb/API contrib/llvm/tools/lldb/include/lldb/Core contri... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Sep 2015 15:21:56 -0000 Author: dim Date: Sun Sep 6 15:21:47 2015 New Revision: 287505 URL: https://svnweb.freebsd.org/changeset/base/287505 Log: Update lldb to upstream trunk r242221. Added: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/MainLoop.h - copied unchanged from r287504, vendor/lldb/dist/include/lldb/Host/MainLoop.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/MainLoopBase.h - copied unchanged from r287504, vendor/lldb/dist/include/lldb/Host/MainLoopBase.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/posix/MainLoopPosix.h - copied unchanged from r287504, vendor/lldb/dist/include/lldb/Host/posix/MainLoopPosix.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunctionUsingABI.h - copied unchanged from r287504, vendor/lldb/dist/include/lldb/Target/ThreadPlanCallFunctionUsingABI.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractor.h - copied unchanged from r287504, vendor/lldb/dist/include/lldb/Utility/StringExtractor.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Host/posix/MainLoopPosix.cpp - copied unchanged from r287504, vendor/lldb/dist/source/Host/posix/MainLoopPosix.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/ - copied from r287504, vendor/lldb/dist/source/Plugins/DynamicLoader/Windows-DYLD/ projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.cpp - copied unchanged from r287504, vendor/lldb/dist/source/Plugins/Process/Utility/GDBRemoteSignals.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.h - copied unchanged from r287504, vendor/lldb/dist/source/Plugins/Process/Utility/GDBRemoteSignals.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp - copied unchanged from r287504, vendor/lldb/dist/source/Target/ThreadPlanCallFunctionUsingABI.cpp Deleted: projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/POSIXThread.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_arm64.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_mips64.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Utility/StringExtractor.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-platform/ Modified: projects/clang-trunk/contrib/llvm/tools/lldb/FREEBSD-Xlist projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBFunction.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBPlatform.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBSymbol.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBUnixSignals.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Core/Connection.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Core/Mangled.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFormatterFunctions.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorType.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Expression/ClangUserExpression.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Expression/IRInterpreter.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Expression/IRMemoryMap.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/Host.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/StringConvert.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Symbol/Function.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Symbol/Symbol.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Symbol/Variable.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Target/ABI.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Target/Platform.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Target/Process.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunction.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Target/UnixSignals.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Utility/JSON.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h projects/clang-trunk/contrib/llvm/tools/lldb/source/API/SBBlock.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/API/SBFrame.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/API/SBFunction.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/API/SBPlatform.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/API/SBProcess.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/API/SBSymbol.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/API/SBTarget.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/API/SBThread.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/API/SBUnixSignals.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocation.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Core/ArchSpec.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Core/DataExtractor.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Core/Mangled.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Core/StructuredData.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/DataFormatters/FormatManager.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/DataFormatters/VectorType.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Expression/ClangExpressionDeclMap.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Expression/ClangExpressionParser.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Expression/ClangModulesDeclVendor.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Expression/ClangUserExpression.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Expression/IRForTarget.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Expression/IRInterpreter.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Expression/IRMemoryMap.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Host/common/Host.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Host/common/StringConvert.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessPOSIX.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Symbol/ClangASTImporter.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Symbol/ClangASTType.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Symbol/Function.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Symbol/Symbol.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Symbol/SymbolContext.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Target/Platform.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Target/Process.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverRange.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Target/UnixSignals.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Utility/JSON.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Utility/StringExtractor.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp projects/clang-trunk/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/driver/Driver.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/driver/Driver.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValPrintValues.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSymbol.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIDataTypes.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonBase.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonHelper.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemLinux.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemOsx.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemWindows.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.h projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp projects/clang-trunk/contrib/llvm/tools/lldb/tools/lldb-server/lldb-platform.cpp projects/clang-trunk/lib/clang/liblldbPluginProcessUtility/Makefile projects/clang-trunk/lib/clang/liblldbTarget/Makefile Directory Properties: projects/clang-trunk/contrib/llvm/tools/lldb/ (props changed) Modified: projects/clang-trunk/contrib/llvm/tools/lldb/FREEBSD-Xlist ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/FREEBSD-Xlist Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/FREEBSD-Xlist Sun Sep 6 15:21:47 2015 (r287505) @@ -49,11 +49,8 @@ source/Expression/Makefile source/Host/CMakeLists.txt source/Host/Makefile source/Host/android/ -source/Host/common/Makefile -source/Host/freebsd/Makefile source/Host/linux/ source/Host/macosx/ -source/Host/posix/Makefile source/Host/windows/ source/Initialization/CMakeLists.txt source/Initialization/Makefile @@ -98,6 +95,8 @@ source/Plugins/DynamicLoader/POSIX-DYLD/ source/Plugins/DynamicLoader/POSIX-DYLD/Makefile source/Plugins/DynamicLoader/Static/CMakeLists.txt source/Plugins/DynamicLoader/Static/Makefile +source/Plugins/DynamicLoader/Windows-DYLD/CMakeLists.txt +source/Plugins/DynamicLoader/Windows-DYLD/Makefile source/Plugins/Instruction/ARM/CMakeLists.txt source/Plugins/Instruction/ARM/Makefile source/Plugins/Instruction/ARM64/CMakeLists.txt Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h Sun Sep 6 15:21:47 2015 (r287505) @@ -90,6 +90,10 @@ public: /// See also IsInlined(). const char * GetFunctionName(); + + // Get an appropriate function name for this frame that is suitable for display to a user + const char * + GetDisplayFunctionName (); const char * GetFunctionName() const; Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBFunction.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBFunction.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBFunction.h Sun Sep 6 15:21:47 2015 (r287505) @@ -36,6 +36,9 @@ public: GetName() const; const char * + GetDisplayName() const; + + const char * GetMangledName () const; lldb::SBInstructionList Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBPlatform.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBPlatform.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBPlatform.h Sun Sep 6 15:21:47 2015 (r287505) @@ -189,6 +189,9 @@ namespace lldb { SBError SetFilePermissions (const char *path, uint32_t file_permissions); + SBUnixSignals + GetUnixSignals() const; + protected: friend class SBDebugger; Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBSymbol.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBSymbol.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBSymbol.h Sun Sep 6 15:21:47 2015 (r287505) @@ -38,6 +38,9 @@ public: GetName() const; const char * + GetDisplayName() const; + + const char * GetMangledName () const; lldb::SBInstructionList Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h Sun Sep 6 15:21:47 2015 (r287505) @@ -769,6 +769,9 @@ public: GetDescription (lldb::SBStream &description, lldb::DescriptionLevel description_level); lldb::SBValue + EvaluateExpression (const char *expr); + + lldb::SBValue EvaluateExpression (const char *expr, const SBExpressionOptions &options); lldb::addr_t Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBUnixSignals.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBUnixSignals.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/API/SBUnixSignals.h Sun Sep 6 15:21:47 2015 (r287505) @@ -65,17 +65,20 @@ public: protected: friend class SBProcess; + friend class SBPlatform; - SBUnixSignals (lldb::ProcessSP &process_sp); + SBUnixSignals(lldb::ProcessSP &process_sp); - lldb::ProcessSP + SBUnixSignals(lldb::PlatformSP &platform_sp); + + lldb::UnixSignalsSP GetSP() const; void - SetSP (const lldb::ProcessSP &process_sp); + SetSP(const lldb::UnixSignalsSP &signals_sp); private: - lldb::ProcessWP m_opaque_wp; + lldb::UnixSignalsWP m_opaque_wp; }; Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Core/Connection.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Core/Connection.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Core/Connection.h Sun Sep 6 15:21:47 2015 (r287505) @@ -187,6 +187,20 @@ public: virtual bool InterruptRead() = 0; + //------------------------------------------------------------------ + /// Returns the underlying IOObject used by the Connection. + /// + /// The IOObject can be used to wait for data to become available + /// on the connection. If the Connection does not use IOObjects (and + /// hence does not support waiting) this function should return a + /// null pointer. + /// + /// @return + /// The underlying IOObject used for reading. + //------------------------------------------------------------------ + virtual lldb::IOObjectSP + GetReadObject() { return lldb::IOObjectSP(); } + private: //------------------------------------------------------------------ // For Connection only Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Core/Mangled.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Core/Mangled.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Core/Mangled.h Sun Sep 6 15:21:47 2015 (r287505) @@ -182,8 +182,17 @@ public: /// A const reference to the demangled name string object. //---------------------------------------------------------------------- const ConstString& - GetDemangledName () const; + GetDemangledName (lldb::LanguageType language) const; + //---------------------------------------------------------------------- + /// Display demangled name get accessor. + /// + /// @return + /// A const reference to the display demangled name string object. + //---------------------------------------------------------------------- + ConstString + GetDisplayDemangledName (lldb::LanguageType language) const; + void SetDemangledName (const ConstString &name) { @@ -231,8 +240,8 @@ public: /// object has a valid name of that kind, else a const reference to the /// other name is returned. //---------------------------------------------------------------------- - const ConstString& - GetName (NamePreference preference = ePreferDemangled) const; + ConstString + GetName (lldb::LanguageType language, NamePreference preference = ePreferDemangled) const; //---------------------------------------------------------------------- /// Check if "name" matches either the mangled or demangled name. @@ -244,15 +253,15 @@ public: /// \b True if \a name matches either name, \b false otherwise. //---------------------------------------------------------------------- bool - NameMatches (const ConstString &name) const + NameMatches (const ConstString &name, lldb::LanguageType language) const { if (m_mangled == name) return true; - return GetDemangledName () == name; + return GetDemangledName (language) == name; } bool - NameMatches (const RegularExpression& regex) const; + NameMatches (const RegularExpression& regex, lldb::LanguageType language) const; //---------------------------------------------------------------------- /// Get the memory cost of this object. Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h Sun Sep 6 15:21:47 2015 (r287505) @@ -238,14 +238,15 @@ public: { } - void + bool ForEach (std::function const &foreach_callback) const { for (const auto &object_sp : m_items) { if (foreach_callback(object_sp.get()) == false) - break; + return false; } + return true; } Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFormatterFunctions.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFormatterFunctions.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFormatterFunctions.h Sun Sep 6 15:21:47 2015 (r287505) @@ -18,6 +18,7 @@ #include "lldb/Core/ConstString.h" #include "lldb/DataFormatters/FormatClasses.h" #include "lldb/DataFormatters/TypeSynthetic.h" +#include "lldb/DataFormatters/VectorType.h" #include "lldb/Target/ExecutionContext.h" #include "lldb/Target/ObjCLanguageRuntime.h" #include "lldb/Target/Target.h" Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorType.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorType.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorType.h Sun Sep 6 15:21:47 2015 (r287505) @@ -0,0 +1,28 @@ +//===-- VectorType.h ------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef liblldb_VectorType_h_ +#define liblldb_VectorType_h_ + +#include "lldb/lldb-forward.h" + +namespace lldb_private { + namespace formatters + { + bool + VectorTypeSummaryProvider (ValueObject&, + Stream&, + const TypeSummaryOptions&); + + SyntheticChildrenFrontEnd* + VectorTypeSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP); + } // namespace formatters +} // namespace lldb_private + +#endif // liblldb_VectorType_h_ Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Expression/ClangUserExpression.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Expression/ClangUserExpression.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Expression/ClangUserExpression.h Sun Sep 6 15:21:47 2015 (r287505) @@ -30,7 +30,7 @@ #include "lldb/Symbol/TaggedASTType.h" #include "lldb/Target/ExecutionContext.h" -namespace lldb_private +namespace lldb_private { //---------------------------------------------------------------------- @@ -45,7 +45,7 @@ namespace lldb_private class ClangUserExpression : public ClangExpression { public: - + enum { kDefaultTimeout = 500000u }; //------------------------------------------------------------------ /// Constructor @@ -59,7 +59,7 @@ public: /// /// @param[in] language /// If not eLanguageTypeUnknown, a language to use when parsing - /// the expression. Currently restricted to those languages + /// the expression. Currently restricted to those languages /// supported by Clang. /// /// @param[in] desired_type @@ -70,13 +70,13 @@ public: const char *expr_prefix, lldb::LanguageType language, ResultType desired_type); - + //------------------------------------------------------------------ /// Destructor //------------------------------------------------------------------ - virtual + virtual ~ClangUserExpression (); - + //------------------------------------------------------------------ /// Parse the expression /// @@ -92,28 +92,28 @@ public: /// Determines whether interpretation is possible or mandatory. /// /// @param[in] keep_result_in_memory - /// True if the resulting persistent variable should reside in + /// True if the resulting persistent variable should reside in /// target memory, if applicable. /// /// @return /// True on success (no errors); false otherwise. //------------------------------------------------------------------ bool - Parse (Stream &error_stream, + Parse (Stream &error_stream, ExecutionContext &exe_ctx, lldb_private::ExecutionPolicy execution_policy, bool keep_result_in_memory, bool generate_debug_info); - + bool CanInterpret () { return m_can_interpret; } - + bool MatchesContext (ExecutionContext &exe_ctx); - + //------------------------------------------------------------------ /// Execute the parsed expression /// @@ -131,9 +131,9 @@ public: /// This is a shared pointer to this ClangUserExpression. This is /// needed because Execute can push a thread plan that will hold onto /// the ClangUserExpression for an unbounded period of time. So you - /// need to give the thread plan a reference to this object that can + /// need to give the thread plan a reference to this object that can /// keep it alive. - /// + /// /// @param[in] result /// A pointer to direct at the persistent variable in which the /// expression's result is stored. @@ -147,7 +147,7 @@ public: const EvaluateExpressionOptions& options, lldb::ClangUserExpressionSP &shared_ptr_to_me, lldb::ClangExpressionVariableSP &result); - + //------------------------------------------------------------------ /// Apply the side effects of the function to program state. /// @@ -157,7 +157,7 @@ public: /// @param[in] exe_ctx /// The execution context to use when looking up entities that /// are needed for parsing (locations of variables, etc.) - /// + /// /// @param[in] result /// A pointer to direct at the persistent variable in which the /// expression's result is stored. @@ -177,7 +177,7 @@ public: lldb::ClangExpressionVariableSP &result, lldb::addr_t function_stack_bottom = LLDB_INVALID_ADDRESS, lldb::addr_t function_stack_top = LLDB_INVALID_ADDRESS); - + //------------------------------------------------------------------ /// Return the string that the parser should parse. Must be a full /// translation unit. @@ -187,7 +187,7 @@ public: { return m_transformed_text.c_str(); } - + //------------------------------------------------------------------ /// Return the string that the user typed. //------------------------------------------------------------------ @@ -196,7 +196,7 @@ public: { return m_expr_text.c_str(); } - + //------------------------------------------------------------------ /// Return the function name that should be used for executing the /// expression. Text() should contain the definition of this @@ -207,7 +207,7 @@ public: { return "$__lldb_expr"; } - + //------------------------------------------------------------------ /// Return the language that should be used when parsing. To use /// the default, return eLanguageTypeUnknown. @@ -217,7 +217,7 @@ public: { return m_language; } - + //------------------------------------------------------------------ /// Return the object that the parser should use when resolving external /// values. May be NULL if everything should be self-contained. @@ -227,7 +227,7 @@ public: { return m_expr_decl_map.get(); } - + //------------------------------------------------------------------ /// Return the object that the parser should allow to access ASTs. /// May be NULL if the ASTs do not need to be transformed. @@ -238,9 +238,9 @@ public: //------------------------------------------------------------------ clang::ASTConsumer * ASTTransformer (clang::ASTConsumer *passthrough); - + //------------------------------------------------------------------ - /// Return the desired result type of the function, or + /// Return the desired result type of the function, or /// eResultTypeAny if indifferent. //------------------------------------------------------------------ virtual ResultType @@ -248,7 +248,7 @@ public: { return m_desired_type; } - + //------------------------------------------------------------------ /// Return true if validation code should be inserted into the /// expression. @@ -258,7 +258,7 @@ public: { return true; } - + //------------------------------------------------------------------ /// Return true if external variables in the expression should be /// resolved. @@ -302,15 +302,15 @@ public: const char *expr_prefix, lldb::ValueObjectSP &result_valobj_sp, Error &error); - + static const Error::ValueType kNoResult = 0x1001; ///< ValueObject::GetError() returns this if there is no result from the expression. private: //------------------------------------------------------------------ /// Populate m_in_cplusplus_method and m_in_objectivec_method based on the environment. //------------------------------------------------------------------ - + void - ScanContext (ExecutionContext &exe_ctx, + ScanContext (ExecutionContext &exe_ctx, lldb_private::Error &err); bool @@ -319,21 +319,21 @@ private: lldb::addr_t &struct_address, lldb::addr_t &object_ptr, lldb::addr_t &cmd_ptr); - + void InstallContext (ExecutionContext &exe_ctx); - + bool LockAndCheckContext (ExecutionContext &exe_ctx, lldb::TargetSP &target_sp, lldb::ProcessSP &process_sp, lldb::StackFrameSP &frame_sp); - + lldb::ProcessWP m_process_wp; ///< The process used as the context for the expression. Address m_address; ///< The address the process is stopped in. lldb::addr_t m_stack_frame_bottom; ///< The bottom of the allocated stack frame. lldb::addr_t m_stack_frame_top; ///< The top of the allocated stack frame. - + std::string m_expr_text; ///< The text of the expression, as typed by the user std::string m_expr_prefix; ///< The text of the translation-level definitions, as provided by the user lldb::LanguageType m_language; ///< The language to use when parsing (eLanguageTypeUnknown means use defaults) @@ -341,7 +341,7 @@ private: bool m_allow_objc; ///< True if the language allows Objective-C. std::string m_transformed_text; ///< The text of the expression, as send to the parser ResultType m_desired_type; ///< The type to coerce the expression's result to. If eResultTypeAny, inferred from the expression. - + std::unique_ptr m_expr_decl_map; ///< The map to use when parsing the expression. std::shared_ptr m_execution_unit_sp; ///< The execution unit the expression is stored in. std::unique_ptr m_materializer_ap; ///< The materializer to use when running the expression. @@ -354,12 +354,12 @@ private: bool m_needs_object_ptr; ///< True if "this" or "self" must be looked up and passed in. False if the expression doesn't really use them and they can be NULL. bool m_const_object; ///< True if "this" is const. Target *m_target; ///< The target for storing persistent data like types and variables. - + bool m_can_interpret; ///< True if the expression could be evaluated statically; false otherwise. lldb::addr_t m_materialized_address; ///< The address at which the arguments to the expression have been materialized. Materializer::DematerializerSP m_dematerializer_sp; ///< The dematerializer. }; - + } // namespace lldb_private #endif // liblldb_ClangUserExpression_h_ Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Expression/IRInterpreter.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Expression/IRInterpreter.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Expression/IRInterpreter.h Sun Sep 6 15:21:47 2015 (r287505) @@ -44,7 +44,8 @@ public: static bool CanInterpret (llvm::Module &module, llvm::Function &function, - lldb_private::Error &error); + lldb_private::Error &error, + const bool support_function_calls); static bool Interpret (llvm::Module &module, @@ -53,7 +54,8 @@ public: lldb_private::IRMemoryMap &memory_map, lldb_private::Error &error, lldb::addr_t stack_frame_bottom, - lldb::addr_t stack_frame_top); + lldb::addr_t stack_frame_top, + lldb_private::ExecutionContext &exe_ctx); private: static bool Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Expression/IRMemoryMap.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Expression/IRMemoryMap.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Expression/IRMemoryMap.h Sun Sep 6 15:21:47 2015 (r287505) @@ -60,7 +60,7 @@ public: void ReadMemory (uint8_t *bytes, lldb::addr_t process_address, size_t size, Error &error); void ReadScalarFromMemory (Scalar &scalar, lldb::addr_t process_address, size_t size, Error &error); void ReadPointerFromMemory (lldb::addr_t *address, lldb::addr_t process_address, Error &error); - + bool GetAllocSize(lldb::addr_t address, size_t &size); void GetMemoryData (DataExtractor &extractor, lldb::addr_t process_address, size_t size, Error &error); lldb::ByteOrder GetByteOrder(); Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/Host.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/Host.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/Host.h Sun Sep 6 15:21:47 2015 (r287505) @@ -244,8 +244,8 @@ public: #endif // !defined(__ANDROID__) && !defined(__ANDROID_NDK__) #endif // defined (__APPLE__) || defined (__linux__) || defined (__FreeBSD__) || defined (__GLIBC__) || defined(__NetBSD__) - static const lldb_private::UnixSignalsSP& - GetUnixSignals (); + static const lldb::UnixSignalsSP & + GetUnixSignals(); static Error LaunchProcess (ProcessLaunchInfo &launch_info); Copied: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/MainLoop.h (from r287504, vendor/lldb/dist/include/lldb/Host/MainLoop.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/MainLoop.h Sun Sep 6 15:21:47 2015 (r287505, copy of r287504, vendor/lldb/dist/include/lldb/Host/MainLoop.h) @@ -0,0 +1,27 @@ +//===-- MainLoop.h ----------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef lldb_Host_MainLoop_h_ +#define lldb_Host_MainLoop_h_ + +#ifdef _WIN32 +#include "lldb/Host/MainLoopBase.h" +namespace lldb_private +{ +typedef MainLoopBase MainLoop; +} +#else +#include "lldb/Host/posix/MainLoopPosix.h" +namespace lldb_private +{ +typedef MainLoopPosix MainLoop; +} +#endif + +#endif // lldb_Host_MainLoop_h_ Copied: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/MainLoopBase.h (from r287504, vendor/lldb/dist/include/lldb/Host/MainLoopBase.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/MainLoopBase.h Sun Sep 6 15:21:47 2015 (r287505, copy of r287504, vendor/lldb/dist/include/lldb/Host/MainLoopBase.h) @@ -0,0 +1,94 @@ +//===-- MainLoopBase.h ------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef lldb_Host_posix_MainLoopBase_h_ +#define lldb_Host_posix_MainLoopBase_h_ + +#include + +#include "llvm/Support/ErrorHandling.h" + +#include "lldb/Core/Error.h" +#include "lldb/Host/IOObject.h" + +namespace lldb_private { + +// The purpose of this class is to enable multiplexed processing of data from different sources +// without resorting to multi-threading. Clients can register IOObjects, which will be monitored +// for readability, and when they become ready, the specified callback will be invoked. +// Monitoring for writability is not supported, but can be easily added if needed. +// +// The RegisterReadObject function return a handle, which controls the duration of the monitoring. When +// this handle is destroyed, the callback is deregistered. +// +// This class simply defines the interface common for all platforms, actual implementations are +// platform-specific. +class MainLoopBase +{ +private: + class ReadHandle; + +public: + MainLoopBase() { } + virtual ~MainLoopBase() { } + + typedef std::unique_ptr ReadHandleUP; + + typedef std::function Callback; + + virtual ReadHandleUP + RegisterReadObject(const lldb::IOObjectSP &object_sp, const Callback &callback, Error &error) + { llvm_unreachable("Not implemented"); } + + // Waits for registered events and invoke the proper callbacks. Returns when all callbacks + // deregister themselves or when someone requests termination. + virtual Error + Run() + { llvm_unreachable("Not implemented"); } + + // Requests the exit of the Run() function. + virtual void + RequestTermination() + { llvm_unreachable("Not implemented"); } + +protected: + ReadHandleUP + CreateReadHandle(const lldb::IOObjectSP &object_sp) + { return ReadHandleUP(new ReadHandle(*this, object_sp)); } + + virtual void + UnregisterReadObject(const lldb::IOObjectSP &object_sp) + { llvm_unreachable("Not implemented"); } + +private: + class ReadHandle + { + public: + ~ReadHandle() { m_mainloop.UnregisterReadObject(m_object_sp); } + + private: + ReadHandle(MainLoopBase &mainloop, const lldb::IOObjectSP &object_sp) + : m_mainloop(mainloop), m_object_sp(object_sp) + { } + + MainLoopBase &m_mainloop; + lldb::IOObjectSP m_object_sp; + + friend class MainLoopBase; + DISALLOW_COPY_AND_ASSIGN(ReadHandle); + }; + +private: + DISALLOW_COPY_AND_ASSIGN(MainLoopBase); +}; + +} // namespace lldb_private + + +#endif // lldb_Host_posix_MainLoopBase_h_ Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/StringConvert.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/StringConvert.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/StringConvert.h Sun Sep 6 15:21:47 2015 (r287505) @@ -39,6 +39,8 @@ ToSInt64 (const char *s, int64_t fail_va uint64_t ToUInt64 (const char *s, uint64_t fail_value = 0, int base = 0, bool *success_ptr = nullptr); +double +ToDouble (const char *s, double fail_value = 0.0, bool *success_ptr = nullptr); } // namespace StringConvert } // namespace lldb_private Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h Sun Sep 6 15:21:47 2015 (r287505) @@ -35,8 +35,6 @@ namespace lldb_private friend class SoftwareBreakpoint; public: - static NativeProcessProtocol * - CreateInstance (lldb::pid_t pid); // lldb_private::Host calls should be used to launch a process for debugging, and // then the process should be attached to. When attaching to a process @@ -44,7 +42,6 @@ namespace lldb_private // and then this function should be called. NativeProcessProtocol (lldb::pid_t pid); - public: virtual ~NativeProcessProtocol () { } @@ -297,6 +294,62 @@ namespace lldb_private virtual Error GetFileLoadAddress(const llvm::StringRef& file_name, lldb::addr_t& load_addr) = 0; + //------------------------------------------------------------------ + /// Launch a process for debugging. This method will create an concrete + /// instance of NativeProcessProtocol, based on the host platform. + /// (e.g. NativeProcessLinux on linux, etc.) + /// + /// @param[in] launch_info + /// Information required to launch the process. + /// + /// @param[in] native_delegate + /// The delegate that will receive messages regarding the + /// inferior. Must outlive the NativeProcessProtocol + /// instance. + /// + /// @param[out] process_sp + /// On successful return from the method, this parameter + /// contains the shared pointer to the + /// NativeProcessProtocol that can be used to manipulate + /// the native process. + /// + /// @return + /// An error object indicating if the operation succeeded, + /// and if not, what error occurred. + //------------------------------------------------------------------ + static Error + Launch (ProcessLaunchInfo &launch_info, + NativeDelegate &native_delegate, + NativeProcessProtocolSP &process_sp); + + //------------------------------------------------------------------ + /// Attach to an existing process. This method will create an concrete + /// instance of NativeProcessProtocol, based on the host platform. + /// (e.g. NativeProcessLinux on linux, etc.) + /// + /// @param[in] pid + /// pid of the process locatable + /// + /// @param[in] native_delegate + /// The delegate that will receive messages regarding the + /// inferior. Must outlive the NativeProcessProtocol + /// instance. + /// + /// @param[out] process_sp + /// On successful return from the method, this parameter + /// contains the shared pointer to the + /// NativeProcessProtocol that can be used to manipulate + /// the native process. + /// + /// @return + /// An error object indicating if the operation succeeded, + /// and if not, what error occurred. + //------------------------------------------------------------------ + static Error + Attach (lldb::pid_t pid, + NativeDelegate &native_delegate, + NativeProcessProtocolSP &process_sp); + protected: lldb::pid_t m_pid; Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h Sun Sep 6 15:21:47 2015 (r287505) @@ -59,12 +59,7 @@ class ConnectionFileDescriptor : public bool InterruptRead() override; lldb::IOObjectSP - GetReadObject() - { - return m_read_sp; - } - const lldb::IOObjectSP - GetReadObject() const + GetReadObject() override { return m_read_sp; } Copied: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/posix/MainLoopPosix.h (from r287504, vendor/lldb/dist/include/lldb/Host/posix/MainLoopPosix.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Host/posix/MainLoopPosix.h Sun Sep 6 15:21:47 2015 (r287505, copy of r287504, vendor/lldb/dist/include/lldb/Host/posix/MainLoopPosix.h) @@ -0,0 +1,100 @@ +//===-- MainLoopPosix.h -----------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef lldb_Host_posix_MainLoopPosix_h_ +#define lldb_Host_posix_MainLoopPosix_h_ + +#include "lldb/Host/MainLoopBase.h" + +#include "llvm/ADT/DenseMap.h" + +namespace lldb_private { + +// Posix implementation of the MainLoopBase class. It can monitor file descriptors for +// readability using pselect. In addition to the common base, this class provides the ability to +// invoke a given handler when a signal is received. +// +// Since this class is primarily intended to be used for single-threaded processing, it does not +// attempt to perform any internal synchronisation and any concurrent accesses must be protected +// externally. However, it is perfectly legitimate to have more than one instance of this class +// running on separate threads, or even a single thread (with some limitations on signal +// monitoring). +// TODO: Add locking if this class is to be used in a multi-threaded context. +class MainLoopPosix: public MainLoopBase +{ +private: + class SignalHandle; + +public: + typedef std::unique_ptr SignalHandleUP; + + ~MainLoopPosix() override; + + ReadHandleUP + RegisterReadObject(const lldb::IOObjectSP &object_sp, const Callback &callback, Error &error) override; + + // Listening for signals from multiple MainLoopPosix instances is perfectly safe as long as they + // don't try to listen for the same signal. The callback function is invoked when the control + // returns to the Run() function, not when the hander is executed. This means that you can + // treat the callback as a normal function and perform things which would not be safe in a + // signal handler. However, since the callback is not invoked synchronously, you cannot use + // this mechanism to handle SIGSEGV and the like. + SignalHandleUP + RegisterSignal(int signo, const Callback &callback, Error &error); + + Error + Run() override; + + // This should only be performed from a callback. Do not attempt to terminate the processing + // from another thread. + // TODO: Add synchronization if we want to be terminated from another thread. + void + RequestTermination() override + { m_terminate_request = true; } + +protected: + void + UnregisterReadObject(const lldb::IOObjectSP &object_sp) override; + + void + UnregisterSignal(int signo); + +private: + class SignalHandle + { + public: + ~SignalHandle() { m_mainloop.UnregisterSignal(m_signo); } + + private: + SignalHandle(MainLoopPosix &mainloop, int signo) : m_mainloop(mainloop), m_signo(signo) { } + + MainLoopPosix &m_mainloop; + int m_signo; + + friend class MainLoopPosix; + DISALLOW_COPY_AND_ASSIGN(SignalHandle); + }; + + struct SignalInfo + { + Callback callback; + struct sigaction old_action; + bool was_blocked : 1; + }; + + llvm::DenseMap m_read_fds; + llvm::DenseMap m_signals; + bool m_terminate_request : 1; +}; + +} // namespace lldb_private + + +#endif // lldb_Host_posix_MainLoopPosix_h_ + Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h Sun Sep 6 15:21:47 2015 (r287505) @@ -161,6 +161,9 @@ public: } void + FormatLongHelpText (Stream &output_strm, const char *long_help); + + void GenerateHelpText (CommandReturnObject &result); virtual void Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Symbol/Function.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Symbol/Function.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Symbol/Function.h Sun Sep 6 15:21:47 2015 (r287505) @@ -123,7 +123,7 @@ public: /// @return /// A const reference to the method name object. //------------------------------------------------------------------ - const ConstString& + ConstString GetName () const; //------------------------------------------------------------------ @@ -240,11 +240,14 @@ public: Dump(Stream *s, bool show_fullpaths) const; void - DumpStopContext (Stream *s) const; + DumpStopContext (Stream *s, lldb::LanguageType language) const; - const ConstString & - GetName () const; + ConstString + GetName (lldb::LanguageType language) const; + ConstString + GetDisplayName (lldb::LanguageType language) const; + //------------------------------------------------------------------ /// Get accessor for the call site declaration information. /// @@ -437,6 +440,8 @@ public: return m_range; } + lldb::LanguageType + GetLanguage() const; //------------------------------------------------------------------ /// Find the file and line number of the source location of the start /// of the function. This will use the declaration if present and fall @@ -524,11 +529,14 @@ public: return m_frame_base; } - const ConstString & - GetName() const - { - return m_mangled.GetName(); - } + ConstString + GetName() const; + + ConstString + GetNameNoArguments () const; + + ConstString + GetDisplayName () const; const Mangled & GetMangled() const Modified: projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Symbol/Symbol.h ============================================================================== --- projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Symbol/Symbol.h Sun Sep 6 14:33:57 2015 (r287504) +++ projects/clang-trunk/contrib/llvm/tools/lldb/include/lldb/Symbol/Symbol.h Sun Sep 6 15:21:47 2015 (r287505) @@ -152,18 +152,28 @@ public: lldb::addr_t ResolveCallableAddress(Target &target) const; - const ConstString & - GetName () const - { - return m_mangled.GetName(); - } + ConstString + GetName () const; + + ConstString + GetNameNoArguments () const; + ConstString + GetDisplayName () const; + uint32_t GetID() const { return m_uid; } + lldb::LanguageType + GetLanguage() const + { + // TODO: See if there is a way to determine the language for a symbol somehow, for now just return our best guess + return m_mangled.GuessLanguage(); + } + void SetID(uint32_t uid) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Sep 6 16:17:15 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0DAA19CBCE9 for ; Sun, 6 Sep 2015 16:17:15 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D9BB1122A; Sun, 6 Sep 2015 16:17:14 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t86GHEUP026261; Sun, 6 Sep 2015 16:17:14 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t86GHE08026260; Sun, 6 Sep 2015 16:17:14 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201509061617.t86GHE08026260@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 6 Sep 2015 16:17:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287506 - projects/clang370-import X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Sep 2015 16:17:15 -0000 Author: dim Date: Sun Sep 6 16:17:14 2015 New Revision: 287506 URL: https://svnweb.freebsd.org/changeset/base/287506 Log: Create a branch for working on the clang/llvm/lldb 3.7.0 import. (Copied from projects/clang-trunk, since that is now at the last revision before upstream branched off 3.7.0.) Added: - copied from r287505, projects/clang-trunk/ Directory Properties: projects/clang370-import/ (props changed) From owner-svn-src-projects@freebsd.org Sun Sep 6 19:59:00 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B18B9CB806 for ; Sun, 6 Sep 2015 19:59:00 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 17A987B9; Sun, 6 Sep 2015 19:59:00 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t86Jx0vE017031; Sun, 6 Sep 2015 19:59:00 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t86Jwnmi016987; Sun, 6 Sep 2015 19:58:49 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201509061958.t86Jwnmi016987@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 6 Sep 2015 19:58:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287521 - in projects/clang370-import: contrib/llvm/include/llvm-c contrib/llvm/include/llvm/ADT contrib/llvm/include/llvm/CodeGen contrib/llvm/include/llvm/Target contrib/llvm/lib/Anal... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Sep 2015 19:59:00 -0000 Author: dim Date: Sun Sep 6 19:58:48 2015 New Revision: 287521 URL: https://svnweb.freebsd.org/changeset/base/287521 Log: Update llvm, clang and lldb to 3.7.0 release. Added: projects/clang370-import/contrib/llvm/tools/clang/lib/Headers/vecintrin.h - copied unchanged from r287519, vendor/clang/dist/lib/Headers/vecintrin.h projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips.h - copied unchanged from r287519, vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContext_mips.h projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-mips-freebsd-register-enums.h - copied unchanged from r287519, vendor/lldb/dist/source/Plugins/Process/Utility/lldb-mips-freebsd-register-enums.h projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-mips-linux-register-enums.h - copied unchanged from r287519, vendor/lldb/dist/source/Plugins/Process/Utility/lldb-mips-linux-register-enums.h Deleted: projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips64.h projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-mips64-register-enums.h Modified: projects/clang370-import/contrib/llvm/include/llvm-c/TargetMachine.h projects/clang370-import/contrib/llvm/include/llvm/ADT/SmallVector.h projects/clang370-import/contrib/llvm/include/llvm/ADT/StringMap.h projects/clang370-import/contrib/llvm/include/llvm/CodeGen/LiveRegMatrix.h projects/clang370-import/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h projects/clang370-import/contrib/llvm/include/llvm/Target/TargetMachine.h projects/clang370-import/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp projects/clang370-import/contrib/llvm/lib/Analysis/IPA/GlobalsModRef.cpp projects/clang370-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp projects/clang370-import/contrib/llvm/lib/Analysis/PHITransAddr.cpp projects/clang370-import/contrib/llvm/lib/Analysis/VectorUtils.cpp projects/clang370-import/contrib/llvm/lib/CodeGen/ExecutionDepsFix.cpp projects/clang370-import/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp projects/clang370-import/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp projects/clang370-import/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp projects/clang370-import/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp projects/clang370-import/contrib/llvm/lib/CodeGen/RegAllocFast.cpp projects/clang370-import/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp projects/clang370-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp projects/clang370-import/contrib/llvm/lib/CodeGen/VirtRegMap.cpp projects/clang370-import/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp projects/clang370-import/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp projects/clang370-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp projects/clang370-import/contrib/llvm/lib/IR/Type.cpp projects/clang370-import/contrib/llvm/lib/Support/MemoryBuffer.cpp projects/clang370-import/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp projects/clang370-import/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/Processors.td projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIPrepareScratchRegs.cpp projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/VIInstructions.td projects/clang370-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp projects/clang370-import/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp projects/clang370-import/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp projects/clang370-import/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp projects/clang370-import/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td projects/clang370-import/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp projects/clang370-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp projects/clang370-import/contrib/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp projects/clang370-import/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp projects/clang370-import/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp projects/clang370-import/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp projects/clang370-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp projects/clang370-import/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.cpp projects/clang370-import/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.td projects/clang370-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp projects/clang370-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h projects/clang370-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp projects/clang370-import/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp projects/clang370-import/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp projects/clang370-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clang370-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp projects/clang370-import/contrib/llvm/lib/Target/X86/X86InstrSSE.td projects/clang370-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp projects/clang370-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp projects/clang370-import/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp projects/clang370-import/contrib/llvm/lib/Transforms/Scalar/SROA.cpp projects/clang370-import/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp projects/clang370-import/contrib/llvm/tools/clang/include/clang/AST/ASTVector.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/AST/NSAPI.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Analysis/Support/BumpVector.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Basic/Attr.td projects/clang370-import/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td projects/clang370-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td projects/clang370-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td projects/clang370-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td projects/clang370-import/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def projects/clang370-import/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def projects/clang370-import/contrib/llvm/tools/clang/include/clang/CodeGen/ObjectFilePCHContainerOperations.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td projects/clang370-import/contrib/llvm/tools/clang/include/clang/Driver/Options.td projects/clang370-import/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Frontend/PCHContainerOperations.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearchOptions.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Parse/Parser.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Serialization/GlobalModuleIndex.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring.h projects/clang370-import/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h projects/clang370-import/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/AST/Stmt.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Basic/Module.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Basic/Targets.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h projects/clang370-import/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Driver/MinGWToolChain.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Driver/ToolChains.h projects/clang370-import/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Driver/Tools.h projects/clang370-import/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Frontend/PCHContainerOperations.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Headers/altivec.h projects/clang370-import/contrib/llvm/tools/clang/lib/Headers/module.modulemap projects/clang370-import/contrib/llvm/tools/clang/lib/Headers/s390intrin.h projects/clang370-import/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Parse/Parser.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp projects/clang370-import/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp projects/clang370-import/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp projects/clang370-import/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp projects/clang370-import/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp projects/clang370-import/contrib/llvm/tools/lldb/include/lldb/Core/ArchSpec.h projects/clang370-import/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeRegisterContext.h projects/clang370-import/contrib/llvm/tools/lldb/include/lldb/Target/StopInfo.h projects/clang370-import/contrib/llvm/tools/lldb/source/Core/ArchSpec.cpp projects/clang370-import/contrib/llvm/tools/lldb/source/Host/common/NativeRegisterContext.cpp projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.h projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.h projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.h projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips.h projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h projects/clang370-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp projects/clang370-import/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp projects/clang370-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.cpp projects/clang370-import/lib/clang/include/Makefile projects/clang370-import/lib/clang/include/clang/Basic/Version.inc projects/clang370-import/lib/clang/include/clang/Config/config.h projects/clang370-import/lib/clang/include/llvm/Config/config.h projects/clang370-import/lib/clang/include/llvm/Config/llvm-config.h projects/clang370-import/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: projects/clang370-import/contrib/llvm/ (props changed) projects/clang370-import/contrib/llvm/tools/clang/ (props changed) projects/clang370-import/contrib/llvm/tools/lldb/ (props changed) Modified: projects/clang370-import/contrib/llvm/include/llvm-c/TargetMachine.h ============================================================================== --- projects/clang370-import/contrib/llvm/include/llvm-c/TargetMachine.h Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/include/llvm-c/TargetMachine.h Sun Sep 6 19:58:48 2015 (r287521) @@ -115,7 +115,7 @@ char *LLVMGetTargetMachineCPU(LLVMTarget LLVMDisposeMessage. */ char *LLVMGetTargetMachineFeatureString(LLVMTargetMachineRef T); -/** Returns the llvm::DataLayout used for this llvm:TargetMachine. */ +/** Deprecated: use LLVMGetDataLayout(LLVMModuleRef M) instead. */ LLVMTargetDataRef LLVMGetTargetMachineData(LLVMTargetMachineRef T); /** Set the target machine's ASM verbosity. */ Modified: projects/clang370-import/contrib/llvm/include/llvm/ADT/SmallVector.h ============================================================================== --- projects/clang370-import/contrib/llvm/include/llvm/ADT/SmallVector.h Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/include/llvm/ADT/SmallVector.h Sun Sep 6 19:58:48 2015 (r287521) @@ -315,8 +315,10 @@ protected: T2>::value>::type * = nullptr) { // Use memcpy for PODs iterated by pointers (which includes SmallVector // iterators): std::uninitialized_copy optimizes to memmove, but we can - // use memcpy here. - memcpy(Dest, I, (E-I)*sizeof(T)); + // use memcpy here. Note that I and E are iterators and thus might be + // invalid for memcpy if they are equal. + if (I != E) + memcpy(Dest, I, (E - I) * sizeof(T)); } /// Double the size of the allocated memory, guaranteeing space for at Modified: projects/clang370-import/contrib/llvm/include/llvm/ADT/StringMap.h ============================================================================== --- projects/clang370-import/contrib/llvm/include/llvm/ADT/StringMap.h Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/include/llvm/ADT/StringMap.h Sun Sep 6 19:58:48 2015 (r287521) @@ -158,7 +158,8 @@ public: // Copy the string information. char *StrBuffer = const_cast(NewItem->getKeyData()); - memcpy(StrBuffer, Key.data(), KeyLength); + if (KeyLength > 0) + memcpy(StrBuffer, Key.data(), KeyLength); StrBuffer[KeyLength] = 0; // Null terminate for convenience of clients. return NewItem; } Modified: projects/clang370-import/contrib/llvm/include/llvm/CodeGen/LiveRegMatrix.h ============================================================================== --- projects/clang370-import/contrib/llvm/include/llvm/CodeGen/LiveRegMatrix.h Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/include/llvm/CodeGen/LiveRegMatrix.h Sun Sep 6 19:58:48 2015 (r287521) @@ -32,11 +32,13 @@ namespace llvm { class LiveInterval; class LiveIntervalAnalysis; +class MachineRegisterInfo; class TargetRegisterInfo; class VirtRegMap; class LiveRegMatrix : public MachineFunctionPass { const TargetRegisterInfo *TRI; + MachineRegisterInfo *MRI; LiveIntervals *LIS; VirtRegMap *VRM; Modified: projects/clang370-import/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h ============================================================================== --- projects/clang370-import/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h Sun Sep 6 19:58:48 2015 (r287521) @@ -95,8 +95,20 @@ private: return MO->Contents.Reg.Next; } + /// UsedRegUnits - This is a bit vector that is computed and set by the + /// register allocator, and must be kept up to date by passes that run after + /// register allocation (though most don't modify this). This is used + /// so that the code generator knows which callee save registers to save and + /// for other target specific uses. + /// This vector has bits set for register units that are modified in the + /// current function. It doesn't include registers clobbered by function + /// calls with register mask operands. + BitVector UsedRegUnits; + /// UsedPhysRegMask - Additional used physregs including aliases. /// This bit vector represents all the registers clobbered by function calls. + /// It can model things that UsedRegUnits can't, such as function calls that + /// clobber ymm7 but preserve the low half in xmm7. BitVector UsedPhysRegMask; /// ReservedRegs - This is a bit vector of reserved registers. The target @@ -641,12 +653,55 @@ public: /// ignored. bool isPhysRegModified(unsigned PhysReg) const; + //===--------------------------------------------------------------------===// + // Physical Register Use Info + //===--------------------------------------------------------------------===// + + /// isPhysRegUsed - Return true if the specified register is used in this + /// function. Also check for clobbered aliases and registers clobbered by + /// function calls with register mask operands. + /// + /// This only works after register allocation. + bool isPhysRegUsed(unsigned Reg) const { + if (UsedPhysRegMask.test(Reg)) + return true; + for (MCRegUnitIterator Units(Reg, getTargetRegisterInfo()); + Units.isValid(); ++Units) + if (UsedRegUnits.test(*Units)) + return true; + return false; + } + + /// Mark the specified register unit as used in this function. + /// This should only be called during and after register allocation. + void setRegUnitUsed(unsigned RegUnit) { + UsedRegUnits.set(RegUnit); + } + + /// setPhysRegUsed - Mark the specified register used in this function. + /// This should only be called during and after register allocation. + void setPhysRegUsed(unsigned Reg) { + for (MCRegUnitIterator Units(Reg, getTargetRegisterInfo()); + Units.isValid(); ++Units) + UsedRegUnits.set(*Units); + } + /// addPhysRegsUsedFromRegMask - Mark any registers not in RegMask as used. /// This corresponds to the bit mask attached to register mask operands. void addPhysRegsUsedFromRegMask(const uint32_t *RegMask) { UsedPhysRegMask.setBitsNotInMask(RegMask); } + /// setPhysRegUnused - Mark the specified register unused in this function. + /// This should only be called during and after register allocation. + void setPhysRegUnused(unsigned Reg) { + UsedPhysRegMask.reset(Reg); + for (MCRegUnitIterator Units(Reg, getTargetRegisterInfo()); + Units.isValid(); ++Units) + UsedRegUnits.reset(*Units); + } + + //===--------------------------------------------------------------------===// // Reserved Register Info //===--------------------------------------------------------------------===// Modified: projects/clang370-import/contrib/llvm/include/llvm/Target/TargetMachine.h ============================================================================== --- projects/clang370-import/contrib/llvm/include/llvm/Target/TargetMachine.h Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/include/llvm/Target/TargetMachine.h Sun Sep 6 19:58:48 2015 (r287521) @@ -125,10 +125,15 @@ public: return *static_cast(getSubtargetImpl(F)); } + /// Deprecated in 3.7, will be removed in 3.8. Use createDataLayout() instead. + /// /// This method returns a pointer to the DataLayout for the target. It should /// be unchanging for every subtarget. const DataLayout *getDataLayout() const { return &DL; } + /// Create a DataLayout. + const DataLayout createDataLayout() const { return DL; } + /// \brief Reset the target options based on the function's attributes. // FIXME: Remove TargetOptions that affect per-function code generation // from TargetMachine. Modified: projects/clang370-import/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -206,14 +206,6 @@ static Value *GetLinearExpression(Value return V; } - if (ConstantInt *Const = dyn_cast(V)) { - // if it's a constant, just convert it to an offset - // and remove the variable. - Offset += Const->getValue(); - assert(Scale == 0 && "Constant values don't have a scale"); - return V; - } - if (BinaryOperator *BOp = dyn_cast(V)) { if (ConstantInt *RHSC = dyn_cast(BOp->getOperand(1))) { switch (BOp->getOpcode()) { @@ -261,10 +253,7 @@ static Value *GetLinearExpression(Value Value *Result = GetLinearExpression(CastOp, Scale, Offset, Extension, DL, Depth + 1, AC, DT); Scale = Scale.zext(OldWidth); - - // We have to sign-extend even if Extension == EK_ZeroExt as we can't - // decompose a sign extension (i.e. zext(x - 1) != zext(x) - zext(-1)). - Offset = Offset.sext(OldWidth); + Offset = Offset.zext(OldWidth); return Result; } @@ -1135,43 +1124,12 @@ AliasResult BasicAliasAnalysis::aliasGEP } } + // Try to distinguish something like &A[i][1] against &A[42][0]. + // Grab the least significant bit set in any of the scales. if (!GEP1VariableIndices.empty()) { uint64_t Modulo = 0; - bool AllPositive = true; - for (unsigned i = 0, e = GEP1VariableIndices.size(); i != e; ++i) { - - // Try to distinguish something like &A[i][1] against &A[42][0]. - // Grab the least significant bit set in any of the scales. We - // don't need std::abs here (even if the scale's negative) as we'll - // be ^'ing Modulo with itself later. + for (unsigned i = 0, e = GEP1VariableIndices.size(); i != e; ++i) Modulo |= (uint64_t) GEP1VariableIndices[i].Scale; - - if (AllPositive) { - // If the Value could change between cycles, then any reasoning about - // the Value this cycle may not hold in the next cycle. We'll just - // give up if we can't determine conditions that hold for every cycle: - const Value *V = GEP1VariableIndices[i].V; - - bool SignKnownZero, SignKnownOne; - ComputeSignBit(const_cast(V), SignKnownZero, SignKnownOne, *DL, - 0, AC1, nullptr, DT); - - // Zero-extension widens the variable, and so forces the sign - // bit to zero. - bool IsZExt = GEP1VariableIndices[i].Extension == EK_ZeroExt; - SignKnownZero |= IsZExt; - SignKnownOne &= !IsZExt; - - // If the variable begins with a zero then we know it's - // positive, regardless of whether the value is signed or - // unsigned. - int64_t Scale = GEP1VariableIndices[i].Scale; - AllPositive = - (SignKnownZero && Scale >= 0) || - (SignKnownOne && Scale < 0); - } - } - Modulo = Modulo ^ (Modulo & (Modulo - 1)); // We can compute the difference between the two addresses @@ -1182,12 +1140,6 @@ AliasResult BasicAliasAnalysis::aliasGEP V2Size != MemoryLocation::UnknownSize && ModOffset >= V2Size && V1Size <= Modulo - ModOffset) return NoAlias; - - // If we know all the variables are positive, then GEP1 >= GEP1BasePtr. - // If GEP1BasePtr > V2 (GEP1BaseOffset > 0) then we know the pointers - // don't alias if V2Size can fit in the gap between V2 and GEP1BasePtr. - if (AllPositive && GEP1BaseOffset > 0 && V2Size <= (uint64_t) GEP1BaseOffset) - return NoAlias; } // Statically, we can see that the base objects are the same, but the Modified: projects/clang370-import/contrib/llvm/lib/Analysis/IPA/GlobalsModRef.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Analysis/IPA/GlobalsModRef.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Analysis/IPA/GlobalsModRef.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -440,30 +440,39 @@ void GlobalsModRef::AnalyzeCallGraph(Cal } // Scan the function bodies for explicit loads or stores. - for (unsigned i = 0, e = SCC.size(); i != e && FunctionEffect != ModRef; - ++i) - for (inst_iterator II = inst_begin(SCC[i]->getFunction()), - E = inst_end(SCC[i]->getFunction()); - II != E && FunctionEffect != ModRef; ++II) - if (LoadInst *LI = dyn_cast(&*II)) { + for (auto *Node : SCC) { + if (FunctionEffect == ModRef) + break; // The mod/ref lattice saturates here. + for (Instruction &I : inst_range(Node->getFunction())) { + if (FunctionEffect == ModRef) + break; // The mod/ref lattice saturates here. + + // We handle calls specially because the graph-relevant aspects are + // handled above. + if (auto CS = CallSite(&I)) { + if (isAllocationFn(&I, TLI) || isFreeCall(&I, TLI)) { + // FIXME: It is completely unclear why this is necessary and not + // handled by the above graph code. + FunctionEffect |= ModRef; + } else if (Function *Callee = CS.getCalledFunction()) { + // The callgraph doesn't include intrinsic calls. + if (Callee->isIntrinsic()) { + ModRefBehavior Behaviour = + AliasAnalysis::getModRefBehavior(Callee); + FunctionEffect |= (Behaviour & ModRef); + } + } + continue; + } + + // All non-call instructions we use the primary predicates for whether + // thay read or write memory. + if (I.mayReadFromMemory()) FunctionEffect |= Ref; - if (LI->isVolatile()) - // Volatile loads may have side-effects, so mark them as writing - // memory (for example, a flag inside the processor). - FunctionEffect |= Mod; - } else if (StoreInst *SI = dyn_cast(&*II)) { + if (I.mayWriteToMemory()) FunctionEffect |= Mod; - if (SI->isVolatile()) - // Treat volatile stores as reading memory somewhere. - FunctionEffect |= Ref; - } else if (isAllocationFn(&*II, TLI) || isFreeCall(&*II, TLI)) { - FunctionEffect |= ModRef; - } else if (IntrinsicInst *Intrinsic = dyn_cast(&*II)) { - // The callgraph doesn't include intrinsic calls. - Function *Callee = Intrinsic->getCalledFunction(); - ModRefBehavior Behaviour = AliasAnalysis::getModRefBehavior(Callee); - FunctionEffect |= (Behaviour & ModRef); - } + } + } if ((FunctionEffect & Mod) == 0) ++NumReadMemFunctions; Modified: projects/clang370-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -3574,18 +3574,9 @@ static Value *SimplifyExtractElementInst // If extracting a specified index from the vector, see if we can recursively // find a previously computed scalar that was inserted into the vector. - if (auto *IdxC = dyn_cast(Idx)) { - unsigned IndexVal = IdxC->getZExtValue(); - unsigned VectorWidth = Vec->getType()->getVectorNumElements(); - - // If this is extracting an invalid index, turn this into undef, to avoid - // crashing the code below. - if (IndexVal >= VectorWidth) - return UndefValue::get(Vec->getType()->getVectorElementType()); - - if (Value *Elt = findScalarElement(Vec, IndexVal)) + if (auto *IdxC = dyn_cast(Idx)) + if (Value *Elt = findScalarElement(Vec, IdxC->getZExtValue())) return Elt; - } return nullptr; } Modified: projects/clang370-import/contrib/llvm/lib/Analysis/PHITransAddr.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Analysis/PHITransAddr.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Analysis/PHITransAddr.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -374,9 +374,10 @@ InsertPHITranslatedSubExpr(Value *InVal, if (!Tmp.PHITranslateValue(CurBB, PredBB, &DT, /*MustDominate=*/true)) return Tmp.getAddr(); - // If we don't have an available version of this value, it must be an - // instruction. - Instruction *Inst = cast(InVal); + // We don't need to PHI translate values which aren't instructions. + auto *Inst = dyn_cast(InVal); + if (!Inst) + return nullptr; // Handle cast of PHI translatable value. if (CastInst *Cast = dyn_cast(Inst)) { Modified: projects/clang370-import/contrib/llvm/lib/Analysis/VectorUtils.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Analysis/VectorUtils.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Analysis/VectorUtils.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -402,8 +402,9 @@ llvm::Value *llvm::findScalarElement(llv if (match(V, llvm::PatternMatch::m_Add(llvm::PatternMatch::m_Value(Val), llvm::PatternMatch::m_Constant(Con)))) { - if (Con->getAggregateElement(EltNo)->isNullValue()) - return findScalarElement(Val, EltNo); + if (Constant *Elt = Con->getAggregateElement(EltNo)) + if (Elt->isNullValue()) + return findScalarElement(Val, EltNo); } // Otherwise, we don't know. Modified: projects/clang370-import/contrib/llvm/lib/CodeGen/ExecutionDepsFix.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/CodeGen/ExecutionDepsFix.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/CodeGen/ExecutionDepsFix.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -733,14 +733,12 @@ bool ExeDepsFix::runOnMachineFunction(Ma // If no relevant registers are used in the function, we can skip it // completely. bool anyregs = false; - const MachineRegisterInfo &MRI = mf.getRegInfo(); for (TargetRegisterClass::const_iterator I = RC->begin(), E = RC->end(); - I != E && !anyregs; ++I) - for (MCRegAliasIterator AI(*I, TRI, true); AI.isValid(); ++AI) - if (!MRI.reg_nodbg_empty(*AI)) { - anyregs = true; - break; - } + I != E; ++I) + if (MF->getRegInfo().isPhysRegUsed(*I)) { + anyregs = true; + break; + } if (!anyregs) return false; // Initialize the AliasMap on the first use. Modified: projects/clang370-import/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -15,12 +15,12 @@ #include "RegisterCoalescer.h" #include "llvm/ADT/Statistic.h" #include "llvm/CodeGen/LiveIntervalAnalysis.h" +#include "llvm/CodeGen/MachineRegisterInfo.h" #include "llvm/CodeGen/VirtRegMap.h" #include "llvm/Support/Debug.h" #include "llvm/Support/Format.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Target/TargetRegisterInfo.h" -#include "llvm/Target/TargetSubtargetInfo.h" using namespace llvm; @@ -49,6 +49,7 @@ void LiveRegMatrix::getAnalysisUsage(Ana bool LiveRegMatrix::runOnMachineFunction(MachineFunction &MF) { TRI = MF.getSubtarget().getRegisterInfo(); + MRI = &MF.getRegInfo(); LIS = &getAnalysis(); VRM = &getAnalysis(); @@ -100,6 +101,7 @@ void LiveRegMatrix::assign(LiveInterval << " to " << PrintReg(PhysReg, TRI) << ':'); assert(!VRM->hasPhys(VirtReg.reg) && "Duplicate VirtReg assignment"); VRM->assignVirt2Phys(VirtReg.reg, PhysReg); + MRI->setPhysRegUsed(PhysReg); foreachUnit(TRI, VirtReg, PhysReg, [&](unsigned Unit, const LiveRange &Range) { Modified: projects/clang370-import/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -29,6 +29,7 @@ MachineRegisterInfo::MachineRegisterInfo TracksSubRegLiveness(false) { VRegInfo.reserve(256); RegAllocHints.reserve(256); + UsedRegUnits.resize(getTargetRegisterInfo()->getNumRegUnits()); UsedPhysRegMask.resize(getTargetRegisterInfo()->getNumRegs()); // Create the physreg use/def lists. Modified: projects/clang370-import/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -624,6 +624,10 @@ struct DataDep { static bool getDataDeps(const MachineInstr *UseMI, SmallVectorImpl &Deps, const MachineRegisterInfo *MRI) { + // Debug values should not be included in any calculations. + if (UseMI->isDebugValue()) + return false; + bool HasPhysRegs = false; for (MachineInstr::const_mop_iterator I = UseMI->operands_begin(), E = UseMI->operands_end(); I != E; ++I) { Modified: projects/clang370-import/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -1026,8 +1026,12 @@ PEI::scavengeFrameVirtualRegs(MachineFun // Replace this reference to the virtual register with the // scratch register. assert (ScratchReg && "Missing scratch register!"); + MachineRegisterInfo &MRI = Fn.getRegInfo(); Fn.getRegInfo().replaceRegWith(Reg, ScratchReg); + // Make sure MRI now accounts this register as used. + MRI.setPhysRegUsed(ScratchReg); + // Because this instruction was processed by the RS before this // register was allocated, make sure that the RS now records the // register as being used. Modified: projects/clang370-import/contrib/llvm/lib/CodeGen/RegAllocFast.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/CodeGen/RegAllocFast.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/CodeGen/RegAllocFast.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -986,6 +986,10 @@ void RAFast::AllocateBasicBlock() { } } + for (UsedInInstrSet::iterator + I = UsedInInstr.begin(), E = UsedInInstr.end(); I != E; ++I) + MRI->setRegUnitUsed(*I); + // Track registers defined by instruction - early clobbers and tied uses at // this point. UsedInInstr.clear(); @@ -1046,6 +1050,10 @@ void RAFast::AllocateBasicBlock() { killVirtReg(VirtDead[i]); VirtDead.clear(); + for (UsedInInstrSet::iterator + I = UsedInInstr.begin(), E = UsedInInstr.end(); I != E; ++I) + MRI->setRegUnitUsed(*I); + if (CopyDst && CopyDst == CopySrc && CopyDstSub == CopySrcSub) { DEBUG(dbgs() << "-- coalescing: " << *MI); Coalesced.push_back(MI); @@ -1095,6 +1103,12 @@ bool RAFast::runOnMachineFunction(Machin AllocateBasicBlock(); } + // Add the clobber lists for all the instructions we skipped earlier. + for (const MCInstrDesc *Desc : SkippedInstrs) + if (const uint16_t *Defs = Desc->getImplicitDefs()) + while (*Defs) + MRI->setPhysRegUsed(*Defs++); + // All machine operands and other references to virtual registers have been // replaced. Remove the virtual registers. MRI->clearVirtRegs(); Modified: projects/clang370-import/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -1531,6 +1531,14 @@ bool RegisterCoalescer::joinReservedPhys DEBUG(dbgs() << "\t\tInterference (read): " << *MI); return false; } + + // We must also check for clobbers caused by regmasks. + for (const auto &MO : MI->operands()) { + if (MO.isRegMask() && MO.clobbersPhysReg(DstReg)) { + DEBUG(dbgs() << "\t\tInterference (regmask clobber): " << *MI); + return false; + } + } } // We're going to remove the copy which defines a physical reserved Modified: projects/clang370-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -8365,12 +8365,12 @@ SDValue DAGCombiner::visitFDIV(SDNode *N if (N0CFP && N0CFP->isExactlyValue(1.0)) return SDValue(); - SmallVector Users; // Find all FDIV users of the same divisor. - for (auto *U : N1->uses()) { + // Use a set because duplicates may be present in the user list. + SetVector Users; + for (auto *U : N1->uses()) if (U->getOpcode() == ISD::FDIV && U->getOperand(1) == N1) - Users.push_back(U); - } + Users.insert(U); if (TLI.combineRepeatedFPDivisors(Users.size())) { SDValue FPOne = DAG.getConstantFP(1.0, DL, VT); Modified: projects/clang370-import/contrib/llvm/lib/CodeGen/VirtRegMap.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/CodeGen/VirtRegMap.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/CodeGen/VirtRegMap.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -163,6 +163,7 @@ class VirtRegRewriter : public MachineFu SlotIndexes *Indexes; LiveIntervals *LIS; VirtRegMap *VRM; + SparseSet PhysRegs; void rewrite(); void addMBBLiveIns(); @@ -318,15 +319,54 @@ void VirtRegRewriter::rewrite() { SmallVector SuperDeads; SmallVector SuperDefs; SmallVector SuperKills; + SmallPtrSet NoReturnInsts; + + // Here we have a SparseSet to hold which PhysRegs are actually encountered + // in the MF we are about to iterate over so that later when we call + // setPhysRegUsed, we are only doing it for physRegs that were actually found + // in the program and not for all of the possible physRegs for the given + // target architecture. If the target has a lot of physRegs, then for a small + // program there will be a significant compile time reduction here. + PhysRegs.clear(); + PhysRegs.setUniverse(TRI->getNumRegs()); + + // The function with uwtable should guarantee that the stack unwinder + // can unwind the stack to the previous frame. Thus, we can't apply the + // noreturn optimization if the caller function has uwtable attribute. + bool HasUWTable = MF->getFunction()->hasFnAttribute(Attribute::UWTable); for (MachineFunction::iterator MBBI = MF->begin(), MBBE = MF->end(); MBBI != MBBE; ++MBBI) { DEBUG(MBBI->print(dbgs(), Indexes)); + bool IsExitBB = MBBI->succ_empty(); for (MachineBasicBlock::instr_iterator MII = MBBI->instr_begin(), MIE = MBBI->instr_end(); MII != MIE;) { MachineInstr *MI = MII; ++MII; + // Check if this instruction is a call to a noreturn function. If this + // is a call to noreturn function and we don't need the stack unwinding + // functionality (i.e. this function does not have uwtable attribute and + // the callee function has the nounwind attribute), then we can ignore + // the definitions set by this instruction. + if (!HasUWTable && IsExitBB && MI->isCall()) { + for (MachineInstr::mop_iterator MOI = MI->operands_begin(), + MOE = MI->operands_end(); MOI != MOE; ++MOI) { + MachineOperand &MO = *MOI; + if (!MO.isGlobal()) + continue; + const Function *Func = dyn_cast(MO.getGlobal()); + if (!Func || !Func->hasFnAttribute(Attribute::NoReturn) || + // We need to keep correct unwind information + // even if the function will not return, since the + // runtime may need it. + !Func->hasFnAttribute(Attribute::NoUnwind)) + continue; + NoReturnInsts.insert(MI); + break; + } + } + for (MachineInstr::mop_iterator MOI = MI->operands_begin(), MOE = MI->operands_end(); MOI != MOE; ++MOI) { MachineOperand &MO = *MOI; @@ -335,6 +375,15 @@ void VirtRegRewriter::rewrite() { if (MO.isRegMask()) MRI->addPhysRegsUsedFromRegMask(MO.getRegMask()); + // If we encounter a VirtReg or PhysReg then get at the PhysReg and add + // it to the physreg bitset. Later we use only the PhysRegs that were + // actually encountered in the MF to populate the MRI's used physregs. + if (MO.isReg() && MO.getReg()) + PhysRegs.insert( + TargetRegisterInfo::isVirtualRegister(MO.getReg()) ? + VRM->getPhys(MO.getReg()) : + MO.getReg()); + if (!MO.isReg() || !TargetRegisterInfo::isVirtualRegister(MO.getReg())) continue; unsigned VirtReg = MO.getReg(); @@ -421,5 +470,29 @@ void VirtRegRewriter::rewrite() { } } } + + // Tell MRI about physical registers in use. + if (NoReturnInsts.empty()) { + for (SparseSet::iterator + RegI = PhysRegs.begin(), E = PhysRegs.end(); RegI != E; ++RegI) + if (!MRI->reg_nodbg_empty(*RegI)) + MRI->setPhysRegUsed(*RegI); + } else { + for (SparseSet::iterator + I = PhysRegs.begin(), E = PhysRegs.end(); I != E; ++I) { + unsigned Reg = *I; + if (MRI->reg_nodbg_empty(Reg)) + continue; + // Check if this register has a use that will impact the rest of the + // code. Uses in debug and noreturn instructions do not impact the + // generated code. + for (MachineInstr &It : MRI->reg_nodbg_instructions(Reg)) { + if (!NoReturnInsts.count(&It)) { + MRI->setPhysRegUsed(Reg); + break; + } + } + } + } } Modified: projects/clang370-import/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -180,10 +180,17 @@ uint64_t ExecutionEngineState::RemoveMap } std::string ExecutionEngine::getMangledName(const GlobalValue *GV) { + assert(GV->hasName() && "Global must have name."); + MutexGuard locked(lock); - Mangler Mang; SmallString<128> FullName; - Mang.getNameWithPrefix(FullName, GV, false); + + const DataLayout &DL = + GV->getParent()->getDataLayout().isDefault() + ? *getDataLayout() + : GV->getParent()->getDataLayout(); + + Mangler::getNameWithPrefix(FullName, GV->getName(), DL); return FullName.str(); } Modified: projects/clang370-import/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -266,6 +266,12 @@ void MCJIT::finalizeModule(Module *M) { RuntimeDyld::SymbolInfo MCJIT::findExistingSymbol(const std::string &Name) { SmallString<128> FullName; Mangler::getNameWithPrefix(FullName, Name, *TM->getDataLayout()); + + if (void *Addr = getPointerToGlobalIfAvailable(FullName)) + return RuntimeDyld::SymbolInfo(static_cast( + reinterpret_cast(Addr)), + JITSymbolFlags::Exported); + return Dyld.getSymbol(FullName); } Modified: projects/clang370-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -98,7 +98,7 @@ void RTDyldMemoryManager::registerEHFram uint64_t LoadAddr, size_t Size) { // On OS X OS X __register_frame takes a single FDE as an argument. - // See http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-April/061768.html + // See http://lists.llvm.org/pipermail/llvm-dev/2013-April/061768.html const char *P = (const char *)Addr; const char *End = P + Size; do { Modified: projects/clang370-import/contrib/llvm/lib/IR/Type.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/IR/Type.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/IR/Type.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -613,6 +613,9 @@ bool StructType::isLayoutIdentical(Struc if (isPacked() != Other->isPacked() || getNumElements() != Other->getNumElements()) return false; + + if (!getNumElements()) + return true; return std::equal(element_begin(), element_end(), Other->element_begin()); } Modified: projects/clang370-import/contrib/llvm/lib/Support/MemoryBuffer.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Support/MemoryBuffer.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Support/MemoryBuffer.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -57,7 +57,8 @@ void MemoryBuffer::init(const char *BufS /// CopyStringRef - Copies contents of a StringRef into a block of memory and /// null-terminates it. static void CopyStringRef(char *Memory, StringRef Data) { - memcpy(Memory, Data.data(), Data.size()); + if (!Data.empty()) + memcpy(Memory, Data.data(), Data.size()); Memory[Data.size()] = 0; // Null terminate string. } Modified: projects/clang370-import/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -593,6 +593,7 @@ bool AArch64A57FPLoadBalancing::colorCha if (Change) { Substs[MO.getReg()] = Reg; MO.setReg(Reg); + MRI->setPhysRegUsed(Reg); Changed = true; } Modified: projects/clang370-import/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -354,6 +354,7 @@ void AArch64FrameLowering::emitPrologue( if (NumBytes && NeedsRealignment) { // Use the first callee-saved register as a scratch register. scratchSPReg = AArch64::X9; + MF.getRegInfo().setPhysRegUsed(scratchSPReg); } // If we're a leaf function, try using the red zone. Modified: projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td Sun Sep 6 19:58:48 2015 (r287521) @@ -123,6 +123,11 @@ def FeatureSGPRInitBug : SubtargetFeatur "true", "VI SGPR initilization bug requiring a fixed SGPR allocation size">; +def FeatureEnableHugeScratchBuffer : SubtargetFeature<"huge-scratch-buffer", + "EnableHugeScratchBuffer", + "true", + "Enable scratch buffer sizes greater than 128 GB">; + class SubtargetFeatureFetchLimit : SubtargetFeature <"fetch"#Value, "TexVTXClauseSize", Modified: projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -1029,6 +1029,10 @@ bool AMDGPUDAGToDAGISel::SelectMUBUFAddr SDValue &SLC, SDValue &TFE) const { SDValue Ptr, Offen, Idxen, Addr64; + // addr64 bit was removed for volcanic islands. + if (Subtarget->getGeneration() >= AMDGPUSubtarget::VOLCANIC_ISLANDS) + return false; + SelectMUBUF(Addr, Ptr, VAddr, SOffset, Offset, Offen, Idxen, Addr64, GLC, SLC, TFE); @@ -1095,13 +1099,16 @@ bool AMDGPUDAGToDAGISel::SelectMUBUFScra // (add n0, c1) if (CurDAG->isBaseWithConstantOffset(Addr)) { + SDValue N0 = Addr.getOperand(0); SDValue N1 = Addr.getOperand(1); - ConstantSDNode *C1 = cast(N1); - - if (isLegalMUBUFImmOffset(C1)) { - VAddr = Addr.getOperand(0); - ImmOffset = CurDAG->getTargetConstant(C1->getZExtValue(), DL, MVT::i16); - return true; + // Offsets in vaddr must be positive. + if (CurDAG->SignBitIsZero(N0)) { + ConstantSDNode *C1 = cast(N1); + if (isLegalMUBUFImmOffset(C1)) { + VAddr = N0; + ImmOffset = CurDAG->getTargetConstant(C1->getZExtValue(), DL, MVT::i16); + return true; + } } } Modified: projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -73,7 +73,7 @@ AMDGPUSubtarget::AMDGPUSubtarget(const T WavefrontSize(0), CFALUBug(false), LocalMemorySize(0), EnableVGPRSpilling(false), SGPRInitBug(false), IsGCN(false), GCN1Encoding(false), GCN3Encoding(false), CIInsts(false), LDSBankCount(0), - IsaVersion(ISAVersion0_0_0), + IsaVersion(ISAVersion0_0_0), EnableHugeScratchBuffer(false), FrameLowering(TargetFrameLowering::StackGrowsUp, 64 * 16, // Maximum stack alignment (long16) 0), Modified: projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h Sun Sep 6 19:58:48 2015 (r287521) @@ -89,6 +89,7 @@ private: bool FeatureDisable; int LDSBankCount; unsigned IsaVersion; + bool EnableHugeScratchBuffer; AMDGPUFrameLowering FrameLowering; std::unique_ptr TLInfo; @@ -271,6 +272,10 @@ public: return DevName; } + bool enableHugeScratchBuffer() const { + return EnableHugeScratchBuffer; + } + bool dumpCode() const { return DumpCode; } Modified: projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -1719,7 +1719,6 @@ MachineBasicBlock * AMDGPUCFGStructurizer::normalizeInfiniteLoopExit(MachineLoop* LoopRep) { MachineBasicBlock *LoopHeader = LoopRep->getHeader(); MachineBasicBlock *LoopLatch = LoopRep->getLoopLatch(); - const TargetRegisterClass * I32RC = TRI->getCFGStructurizerRegClass(MVT::i32); if (!LoopHeader || !LoopLatch) return nullptr; @@ -1732,18 +1731,9 @@ AMDGPUCFGStructurizer::normalizeInfinite FuncRep->push_back(DummyExitBlk); //insert to function SHOWNEWBLK(DummyExitBlk, "DummyExitBlock to normalize infiniteLoop: "); DEBUG(dbgs() << "Old branch instr: " << *BranchMI << "\n";); - MachineBasicBlock::iterator I = BranchMI; - unsigned ImmReg = FuncRep->getRegInfo().createVirtualRegister(I32RC); - llvm_unreachable("Extra register needed to handle CFG"); - MachineInstr *NewMI = insertInstrBefore(I, AMDGPU::BRANCH_COND_i32); - MachineInstrBuilder MIB(*FuncRep, NewMI); - MIB.addMBB(LoopHeader); - MIB.addReg(ImmReg, false); - SHOWNEWINSTR(NewMI); - BranchMI->eraseFromParent(); - LoopLatch->addSuccessor(DummyExitBlk); - - return DummyExitBlk; + LLVMContext &Ctx = LoopHeader->getParent()->getFunction()->getContext(); + Ctx.emitError("Extra register needed to handle CFG"); + return nullptr; } void AMDGPUCFGStructurizer::removeUnconditionalBranch(MachineBasicBlock *MBB) { Modified: projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/Processors.td ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/Processors.td Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/Processors.td Sun Sep 6 19:58:48 2015 (r287521) @@ -138,3 +138,7 @@ def : ProcessorModel<"iceland", SIQuarte def : ProcessorModel<"carrizo", SIQuarterSpeedModel, [FeatureVolcanicIslands, FeatureISAVersion8_0_1] >; + +def : ProcessorModel<"fiji", SIQuarterSpeedModel, + [FeatureVolcanicIslands, FeatureISAVersion8_0_1] +>; Modified: projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp Sun Sep 6 19:58:48 2015 (r287521) @@ -254,6 +254,12 @@ bool SITargetLowering::isShuffleMaskLega return false; } +bool SITargetLowering::isLegalFlatAddressingMode(const AddrMode &AM) const { + // Flat instructions do not have offsets, and only have the register + // address. + return AM.BaseOffs == 0 && (AM.Scale == 0 || AM.Scale == 1); +} + bool SITargetLowering::isLegalAddressingMode(const DataLayout &DL, const AddrMode &AM, Type *Ty, unsigned AS) const { @@ -263,8 +269,21 @@ bool SITargetLowering::isLegalAddressing switch (AS) { case AMDGPUAS::GLOBAL_ADDRESS: - case AMDGPUAS::CONSTANT_ADDRESS: // XXX - Should we assume SMRD instructions? + if (Subtarget->getGeneration() >= AMDGPUSubtarget::VOLCANIC_ISLANDS) { + // Assume the we will use FLAT for all global memory accesses + // on VI. + // FIXME: This assumption is currently wrong. On VI we still use + // MUBUF instructions for the r + i addressing mode. As currently + // implemented, the MUBUF instructions only work on buffer < 4GB. + // It may be possible to support > 4GB buffers with MUBUF instructions, + // by setting the stride value in the resource descriptor which would + // increase the size limit to (stride * 4GB). However, this is risky, + // because it has never been validated. + return isLegalFlatAddressingMode(AM); + } + // fall-through case AMDGPUAS::PRIVATE_ADDRESS: + case AMDGPUAS::CONSTANT_ADDRESS: // XXX - Should we assume SMRD instructions? case AMDGPUAS::UNKNOWN_ADDRESS_SPACE: { // MUBUF / MTBUF instructions have a 12-bit unsigned byte offset, and // additionally can do r + r + i with addr64. 32-bit has more addressing @@ -324,11 +343,9 @@ bool SITargetLowering::isLegalAddressing return false; } - case AMDGPUAS::FLAT_ADDRESS: { - // Flat instructions do not have offsets, and only have the register - // address. - return AM.BaseOffs == 0 && (AM.Scale == 0 || AM.Scale == 1); - } + case AMDGPUAS::FLAT_ADDRESS: + return isLegalFlatAddressingMode(AM); + default: llvm_unreachable("unhandled address space"); } @@ -812,10 +829,29 @@ static SDNode *findUser(SDValue Value, u SDValue SITargetLowering::LowerFrameIndex(SDValue Op, SelectionDAG &DAG) const { + SDLoc SL(Op); FrameIndexSDNode *FINode = cast(Op); unsigned FrameIndex = FINode->getIndex(); - return DAG.getTargetFrameIndex(FrameIndex, MVT::i32); + // A FrameIndex node represents a 32-bit offset into scratch memory. If + // the high bit of a frame index offset were to be set, this would mean + // that it represented an offset of ~2GB * 64 = ~128GB from the start of the + // scratch buffer, with 64 being the number of threads per wave. + // + // If we know the machine uses less than 128GB of scratch, then we can + // amrk the high bit of the FrameIndex node as known zero, + // which is important, because it means in most situations we can + // prove that values derived from FrameIndex nodes are non-negative. + // This enables us to take advantage of more addressing modes when + // accessing scratch buffers, since for scratch reads/writes, the register + // offset must always be positive. + + SDValue TFI = DAG.getTargetFrameIndex(FrameIndex, MVT::i32); + if (Subtarget->enableHugeScratchBuffer()) + return TFI; + + return DAG.getNode(ISD::AssertZext, SL, MVT::i32, TFI, + DAG.getValueType(EVT::getIntegerVT(*DAG.getContext(), 31))); } /// This transforms the control flow intrinsics to get the branch destination as @@ -2034,6 +2070,13 @@ void SITargetLowering::adjustWritemask(M } } +static bool isFrameIndexOp(SDValue Op) { + if (Op.getOpcode() == ISD::AssertZext) + Op = Op.getOperand(0); + + return isa(Op); +} + /// \brief Legalize target independent instructions (e.g. INSERT_SUBREG) /// with frame index operands. /// LLVM assumes that inputs are to these instructions are registers. @@ -2042,7 +2085,7 @@ void SITargetLowering::legalizeTargetInd SmallVector Ops; for (unsigned i = 0; i < Node->getNumOperands(); ++i) { - if (!isa(Node->getOperand(i))) { + if (!isFrameIndexOp(Node->getOperand(i))) { Ops.push_back(Node->getOperand(i)); continue; } Modified: projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h Sun Sep 6 19:58:48 2015 (r287521) @@ -56,6 +56,7 @@ class SITargetLowering : public AMDGPUTa SDValue performMin3Max3Combine(SDNode *N, DAGCombinerInfo &DCI) const; SDValue performSetCCCombine(SDNode *N, DAGCombinerInfo &DCI) const; + bool isLegalFlatAddressingMode(const AddrMode &AM) const; public: SITargetLowering(TargetMachine &tm, const AMDGPUSubtarget &STI); Modified: projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td Sun Sep 6 19:58:48 2015 (r287521) @@ -1600,12 +1600,14 @@ multiclass VOPC_m { let Defs = !if(DefExec, [EXEC], []); let hasSideEffects = DefExec; + let AssemblerPredicates = [isSICI]; } def _vi : VOPC, SIMCInstr { let Defs = !if(DefExec, [EXEC], []); let hasSideEffects = DefExec; + let AssemblerPredicates = [isVI]; } } Modified: projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td ============================================================================== --- projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td Sun Sep 6 18:58:33 2015 (r287520) +++ projects/clang370-import/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td Sun Sep 6 19:58:48 2015 (r287521) @@ -2910,9 +2910,6 @@ defm : MUBUFLoad_Pattern ; defm : MUBUFLoad_Pattern ; defm : MUBUFLoad_Pattern ; -defm : MUBUFLoad_Pattern ; -defm : MUBUFLoad_Pattern ; -defm : MUBUFLoad_Pattern ; } // End Predicates = [isSICI] class MUBUFScratchLoadPat : Pat < @@ -3273,13 +3270,13 @@ def : Pat < (f64 (fadd (f64 (VOP3Mods f64:$x, i32:$mods)), (f64 (fneg (f64 (ffloor (f64 (VOP3Mods f64:$x, i32:$mods)))))))), (V_CNDMASK_B64_PSEUDO - $x, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Sep 6 22:02:19 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 293AE9CB8C0 for ; Sun, 6 Sep 2015 22:02:19 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 17C03D07; Sun, 6 Sep 2015 22:02:19 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t86M2Jbx071786; Sun, 6 Sep 2015 22:02:19 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t86M2EoS071767; Sun, 6 Sep 2015 22:02:14 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201509062202.t86M2EoS071767@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 6 Sep 2015 22:02:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287526 - in projects/clang370-import: lib/clang lib/clang/libclanganalysis lib/clang/libclangstaticanalyzercheckers lib/clang/libllvmanalysis lib/clang/libllvmbitwriter lib/clang/libll... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Sep 2015 22:02:19 -0000 Author: dim Date: Sun Sep 6 22:02:13 2015 New Revision: 287526 URL: https://svnweb.freebsd.org/changeset/base/287526 Log: Minimize the number of files compiled for clang only (e.g. when neither WITH_CLANG_EXTRAS nor WITH_LLDB is in effect). Modified: projects/clang370-import/lib/clang/Makefile projects/clang370-import/lib/clang/libclanganalysis/Makefile projects/clang370-import/lib/clang/libclangstaticanalyzercheckers/Makefile projects/clang370-import/lib/clang/libllvmanalysis/Makefile projects/clang370-import/lib/clang/libllvmbitwriter/Makefile projects/clang370-import/lib/clang/libllvmcodegen/Makefile projects/clang370-import/lib/clang/libllvmcore/Makefile projects/clang370-import/lib/clang/libllvminstrumentation/Makefile projects/clang370-import/lib/clang/libllvmmc/Makefile projects/clang370-import/lib/clang/libllvmmcdisassembler/Makefile projects/clang370-import/lib/clang/libllvmmirparser/Makefile projects/clang370-import/lib/clang/libllvmobject/Makefile projects/clang370-import/lib/clang/libllvmprofiledata/Makefile projects/clang370-import/lib/clang/libllvmsupport/Makefile projects/clang370-import/lib/clang/libllvmtarget/Makefile projects/clang370-import/lib/clang/libllvmvectorize/Makefile projects/clang370-import/usr.bin/clang/clang/Makefile Modified: projects/clang370-import/lib/clang/Makefile ============================================================================== --- projects/clang370-import/lib/clang/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -62,7 +62,6 @@ SUBDIR= libclanganalysis \ libllvmaarch64asmparser \ libllvmaarch64codegen \ libllvmaarch64desc \ - libllvmaarch64disassembler \ libllvmaarch64info \ libllvmaarch64instprinter \ libllvmaarch64utils \ @@ -75,7 +74,6 @@ SUBDIR= libclanganalysis \ libllvmmipsasmparser \ libllvmmipscodegen \ libllvmmipsdesc \ - libllvmmipsdisassembler \ libllvmmipsinfo \ libllvmmipsinstprinter \ libllvmpowerpcasmparser \ @@ -87,13 +85,11 @@ SUBDIR= libclanganalysis \ libllvmsparcasmparser \ libllvmsparccodegen \ libllvmsparcdesc \ - libllvmsparcdisassembler \ libllvmsparcinfo \ libllvmsparcinstprinter \ libllvmx86asmparser \ libllvmx86codegen \ libllvmx86desc \ - libllvmx86disassembler \ libllvmx86info \ libllvmx86instprinter \ libllvmx86utils @@ -106,10 +102,14 @@ SUBDIR+=libllvmdebuginfodwarf \ libllvmpasses .endif # MK_CLANG_EXTRAS .if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no" -SUBDIR+=libllvmexecutionengine \ +SUBDIR+=libllvmaarch64disassembler \ + libllvmexecutionengine \ libllvminterpreter \ libllvmmcjit \ - libllvmruntimedyld + libllvmmipsdisassembler \ + libllvmruntimedyld \ + libllvmsparcdisassembler \ + libllvmx86disassembler .endif # MK_CLANG_EXTRAS | LLDB .if ${MK_LLDB} != "no" Modified: projects/clang370-import/lib/clang/libclanganalysis/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libclanganalysis/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libclanganalysis/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -1,6 +1,6 @@ # $FreeBSD$ -.include +.include LIB= clanganalysis @@ -26,10 +26,13 @@ SRCS= AnalysisDeclContext.cpp \ ScanfFormatString.cpp \ ThreadSafety.cpp \ ThreadSafetyCommon.cpp \ - ThreadSafetyLogical.cpp \ ThreadSafetyTIL.cpp \ UninitializedValues.cpp +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= ThreadSafetyLogical.cpp +.endif + TGHDRS= AttrList \ AttrVisitor \ Attrs \ Modified: projects/clang370-import/lib/clang/libclangstaticanalyzercheckers/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libclangstaticanalyzercheckers/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libclangstaticanalyzercheckers/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -1,6 +1,6 @@ # $FreeBSD$ -.include +.include LIB= clangstaticanalyzercheckers @@ -21,7 +21,6 @@ SRCS= AllocationDiagnostics.cpp \ CheckObjCInstMethSignature.cpp \ CheckSecuritySyntaxOnly.cpp \ CheckSizeofPointer.cpp \ - CheckerDocumentation.cpp \ ChrootChecker.cpp \ ClangCheckers.cpp \ DeadStoresChecker.cpp \ @@ -73,6 +72,10 @@ SRCS= AllocationDiagnostics.cpp \ VLASizeChecker.cpp \ VirtualCallChecker.cpp +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= CheckerDocumentation.cpp +.endif + TGHDRS= AttrList \ AttrVisitor \ Attrs \ Modified: projects/clang370-import/lib/clang/libllvmanalysis/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvmanalysis/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvmanalysis/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -10,7 +10,6 @@ SRCS= AliasAnalysis.cpp \ AliasAnalysisEvaluator.cpp \ AliasDebugger.cpp \ AliasSetTracker.cpp \ - Analysis.cpp \ AssumptionCache.cpp \ BasicAliasAnalysis.cpp \ BlockFrequencyInfo.cpp \ @@ -19,7 +18,6 @@ SRCS= AliasAnalysis.cpp \ CFG.cpp \ CFGPrinter.cpp \ CFLAliasAnalysis.cpp \ - CGSCCPassManager.cpp \ CaptureTracking.cpp \ CodeMetrics.cpp \ ConstantFolding.cpp \ @@ -65,11 +63,16 @@ SRCS= AliasAnalysis.cpp \ SparsePropagation.cpp \ TargetLibraryInfo.cpp \ TargetTransformInfo.cpp \ - Trace.cpp \ TypeBasedAliasAnalysis.cpp \ ValueTracking.cpp \ VectorUtils.cpp +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= Analysis.cpp \ + CGSCCPassManager.cpp \ + Trace.cpp +.endif + TGHDRS= Intrinsics .include "../clang.lib.mk" Modified: projects/clang370-import/lib/clang/libllvmbitwriter/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvmbitwriter/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvmbitwriter/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -1,13 +1,16 @@ # $FreeBSD$ -.include +.include LIB= llvmbitwriter SRCDIR= lib/Bitcode/Writer -SRCS= BitWriter.cpp \ - BitcodeWriter.cpp \ +SRCS= BitcodeWriter.cpp \ BitcodeWriterPass.cpp \ ValueEnumerator.cpp +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= BitWriter.cpp +.endif + .include "../clang.lib.mk" Modified: projects/clang370-import/lib/clang/libllvmcodegen/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvmcodegen/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvmcodegen/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -1,6 +1,6 @@ # $FreeBSD$ -.include +.include LIB= llvmcodegen @@ -28,9 +28,7 @@ SRCS= AggressiveAntiDepBreaker.cpp \ ExpandPostRAPseudos.cpp \ FaultMaps.cpp \ GCMetadata.cpp \ - GCMetadataPrinter.cpp \ GCRootLowering.cpp \ - GCStrategy.cpp \ GlobalMerge.cpp \ IfConversion.cpp \ ImplicitNullChecks.cpp \ @@ -131,6 +129,11 @@ SRCS= AggressiveAntiDepBreaker.cpp \ VirtRegMap.cpp \ WinEHPrepare.cpp +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= GCMetadataPrinter.cpp \ + GCStrategy.cpp +.endif + TGHDRS= Intrinsics .include "../clang.lib.mk" Modified: projects/clang370-import/lib/clang/libllvmcore/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvmcore/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvmcore/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -1,6 +1,6 @@ # $FreeBSD$ -.include +.include LIB= llvmcore @@ -42,7 +42,6 @@ SRCS= AsmWriter.cpp \ Module.cpp \ Operator.cpp \ Pass.cpp \ - PassManager.cpp \ PassRegistry.cpp \ Statepoint.cpp \ Type.cpp \ @@ -54,6 +53,10 @@ SRCS= AsmWriter.cpp \ ValueTypes.cpp \ Verifier.cpp +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= PassManager.cpp +.endif + TGHDRS= Intrinsics .include "../clang.lib.mk" Modified: projects/clang370-import/lib/clang/libllvminstrumentation/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvminstrumentation/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvminstrumentation/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -1,6 +1,6 @@ # $FreeBSD$ -.include +.include LIB= llvminstrumentation @@ -10,12 +10,15 @@ SRCS= AddressSanitizer.cpp \ DataFlowSanitizer.cpp \ GCOVProfiling.cpp \ MemorySanitizer.cpp \ - Instrumentation.cpp \ InstrProfiling.cpp \ SafeStack.cpp \ SanitizerCoverage.cpp \ ThreadSanitizer.cpp +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= Instrumentation.cpp +.endif + TGHDRS= Intrinsics .include "../clang.lib.mk" Modified: projects/clang370-import/lib/clang/libllvmmc/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvmmc/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvmmc/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -25,7 +25,6 @@ SRCS= ConstantPools.cpp \ MCInstPrinter.cpp \ MCInstrAnalysis.cpp \ MCInstrDesc.cpp \ - MCLabel.cpp \ MCLinkerOptimizationHint.cpp \ MCMachOStreamer.cpp \ MCMachObjectTargetWriter.cpp \ @@ -43,7 +42,6 @@ SRCS= ConstantPools.cpp \ MCSubtargetInfo.cpp \ MCSymbol.cpp \ MCSymbolELF.cpp \ - MCSymbolizer.cpp \ MCTargetOptions.cpp \ MCValue.cpp \ MCWin64EH.cpp \ @@ -52,7 +50,15 @@ SRCS= ConstantPools.cpp \ StringTableBuilder.cpp \ SubtargetFeature.cpp \ WinCOFFObjectWriter.cpp \ - WinCOFFStreamer.cpp \ + WinCOFFStreamer.cpp + +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= MCLabel.cpp \ YAML.cpp +.endif + +.if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no" +SRCS+= MCSymbolizer.cpp +.endif .include "../clang.lib.mk" Modified: projects/clang370-import/lib/clang/libllvmmcdisassembler/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvmmcdisassembler/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvmmcdisassembler/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -1,13 +1,16 @@ # $FreeBSD$ -.include +.include LIB= llvmmcdisassembler SRCDIR= lib/MC/MCDisassembler SRCS= Disassembler.cpp \ - MCDisassembler.cpp \ - MCExternalSymbolizer.cpp \ MCRelocationInfo.cpp +.if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no" +SRCS+= MCDisassembler.cpp \ + MCExternalSymbolizer.cpp +.endif + .include "../clang.lib.mk" Modified: projects/clang370-import/lib/clang/libllvmmirparser/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvmmirparser/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvmmirparser/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -1,12 +1,15 @@ # $FreeBSD$ -.include +.include LIB= llvmmirparser SRCDIR= lib/CodeGen/MIRParser -SRCS= MILexer.cpp \ - MIParser.cpp \ +SRCS= MIParser.cpp \ MIRParser.cpp +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= MILexer.cpp +.endif + .include "../clang.lib.mk" Modified: projects/clang370-import/lib/clang/libllvmobject/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvmobject/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvmobject/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -1,6 +1,6 @@ # $FreeBSD$ -.include +.include LIB= llvmobject @@ -17,10 +17,13 @@ SRCS= Archive.cpp \ IRObjectFile.cpp \ MachOObjectFile.cpp \ MachOUniversal.cpp \ - Object.cpp \ ObjectFile.cpp \ RecordStreamer.cpp \ - SymbolSize.cpp \ SymbolicFile.cpp +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= Object.cpp \ + SymbolSize.cpp +.endif + .include "../clang.lib.mk" Modified: projects/clang370-import/lib/clang/libllvmprofiledata/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvmprofiledata/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvmprofiledata/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -1,6 +1,6 @@ # $FreeBSD$ -.include +.include LIB= llvmprofiledata @@ -12,7 +12,10 @@ SRCS= CoverageMapping.cpp \ InstrProfReader.cpp \ InstrProfWriter.cpp \ SampleProf.cpp \ - SampleProfReader.cpp \ - SampleProfWriter.cpp + SampleProfReader.cpp + +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= SampleProfWriter.cpp +.endif .include "../clang.lib.mk" Modified: projects/clang370-import/lib/clang/libllvmsupport/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvmsupport/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvmsupport/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -9,12 +9,10 @@ SRCS= APFloat.cpp \ APInt.cpp \ APSInt.cpp \ ARMBuildAttrs.cpp \ - ARMWinEH.cpp \ Allocator.cpp \ Atomic.cpp \ BlockFrequency.cpp \ BranchProbability.cpp \ - COM.cpp \ CommandLine.cpp \ Compression.cpp \ ConvertUTF.c \ @@ -28,7 +26,6 @@ SRCS= APFloat.cpp \ DynamicLibrary.cpp \ Errno.cpp \ ErrorHandling.cpp \ - FileOutputBuffer.cpp \ FoldingSet.cpp \ FormattedStream.cpp \ GraphWriter.cpp \ @@ -44,7 +41,6 @@ SRCS= APFloat.cpp \ MD5.cpp \ ManagedStatic.cpp \ MathExtras.cpp \ - Memory.cpp \ MemoryBuffer.cpp \ MemoryObject.cpp \ Mutex.cpp \ @@ -82,7 +78,6 @@ SRCS= APFloat.cpp \ Twine.cpp \ Unicode.cpp \ Valgrind.cpp \ - Watchdog.cpp \ YAMLParser.cpp \ YAMLTraits.cpp \ circular_raw_ostream.cpp \ @@ -95,9 +90,17 @@ SRCS= APFloat.cpp \ regstrlcpy.c .if ${MK_CLANG_EXTRAS} != "no" -SRCS+= DataStream.cpp \ +SRCS+= ARMWinEH.cpp \ + COM.cpp \ + DataStream.cpp \ + FileOutputBuffer.cpp \ FileUtilities.cpp \ - SystemUtils.cpp + SystemUtils.cpp \ + Watchdog.cpp +.endif + +.if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no" +SRCS+= Memory.cpp .endif .include "../clang.lib.mk" Modified: projects/clang370-import/lib/clang/libllvmtarget/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvmtarget/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvmtarget/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -1,18 +1,21 @@ # $FreeBSD$ -.include +.include LIB= llvmtarget SRCDIR= lib/Target SRCS= Target.cpp \ - TargetIntrinsicInfo.cpp \ TargetLoweringObjectFile.cpp \ TargetMachine.cpp \ TargetMachineC.cpp \ TargetRecip.cpp \ TargetSubtargetInfo.cpp +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= TargetIntrinsicInfo.cpp +.endif + TGHDRS= Intrinsics .include "../clang.lib.mk" Modified: projects/clang370-import/lib/clang/libllvmvectorize/Makefile ============================================================================== --- projects/clang370-import/lib/clang/libllvmvectorize/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/lib/clang/libllvmvectorize/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -1,14 +1,17 @@ # $FreeBSD$ -.include +.include LIB= llvmvectorize SRCDIR= lib/Transforms/Vectorize SRCS= BBVectorize.cpp \ LoopVectorize.cpp \ - SLPVectorizer.cpp \ - Vectorize.cpp + SLPVectorizer.cpp + +.if ${MK_CLANG_EXTRAS} != "no" +SRCS+= Vectorize.cpp +.endif TGHDRS= Intrinsics Modified: projects/clang370-import/usr.bin/clang/clang/Makefile ============================================================================== --- projects/clang370-import/usr.bin/clang/clang/Makefile Sun Sep 6 20:57:57 2015 (r287525) +++ projects/clang370-import/usr.bin/clang/clang/Makefile Sun Sep 6 22:02:13 2015 (r287526) @@ -68,7 +68,6 @@ LIBDEPS=clangfrontendtool \ llvmvectorize \ llvmbitwriter \ llvmasmparser \ - llvmaarch64disassembler \ llvmaarch64codegen \ llvmaarch64asmparser \ llvmaarch64desc \ @@ -81,7 +80,6 @@ LIBDEPS=clangfrontendtool \ llvmarmdesc \ llvmarminfo \ llvmarminstprinter \ - llvmmipsdisassembler \ llvmmipscodegen \ llvmmipsasmparser \ llvmmipsdesc \ @@ -93,13 +91,11 @@ LIBDEPS=clangfrontendtool \ llvmpowerpcdesc \ llvmpowerpcinfo \ llvmpowerpcinstprinter \ - llvmsparcdisassembler \ llvmsparccodegen \ llvmsparcasmparser \ llvmsparcdesc \ llvmsparcinfo \ llvmsparcinstprinter \ - llvmx86disassembler \ llvmx86asmparser \ llvmx86codegen \ llvmselectiondag \ From owner-svn-src-projects@freebsd.org Sun Sep 6 22:05:59 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 17BE99CBADB for ; Sun, 6 Sep 2015 22:05:59 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0779EE4A; Sun, 6 Sep 2015 22:05:59 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t86M5wX4072037; Sun, 6 Sep 2015 22:05:58 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t86M5uRD072025; Sun, 6 Sep 2015 22:05:56 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201509062205.t86M5uRD072025@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 6 Sep 2015 22:05:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287527 - in projects/clang370-import: share/mk sys/netinet sys/netinet6 usr.bin/procstat usr.sbin/ntp usr.sbin/pciconf X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Sep 2015 22:05:59 -0000 Author: dim Date: Sun Sep 6 22:05:55 2015 New Revision: 287527 URL: https://svnweb.freebsd.org/changeset/base/287527 Log: Merge ^/head r287502 through r287526. Modified: projects/clang370-import/share/mk/src.libnames.mk projects/clang370-import/sys/netinet/ip_input.c projects/clang370-import/sys/netinet6/in6.h projects/clang370-import/sys/netinet6/ip6_input.c projects/clang370-import/sys/netinet6/ip6_output.c projects/clang370-import/usr.bin/procstat/procstat_auxv.c projects/clang370-import/usr.sbin/ntp/Makefile projects/clang370-import/usr.sbin/pciconf/pathnames.h projects/clang370-import/usr.sbin/pciconf/pciconf.8 projects/clang370-import/usr.sbin/pciconf/pciconf.c Directory Properties: projects/clang370-import/ (props changed) projects/clang370-import/share/ (props changed) projects/clang370-import/sys/ (props changed) projects/clang370-import/usr.bin/procstat/ (props changed) Modified: projects/clang370-import/share/mk/src.libnames.mk ============================================================================== --- projects/clang370-import/share/mk/src.libnames.mk Sun Sep 6 22:02:13 2015 (r287526) +++ projects/clang370-import/share/mk/src.libnames.mk Sun Sep 6 22:05:55 2015 (r287527) @@ -298,9 +298,6 @@ DPADD_gssapi_krb5+= ${DPADD_pthread} LDADD_gssapi_krb5+= ${LDADD_pthread} .for _l in ${LIBADD} -.if ${_PRIVATELIBS:M${_l}} -USEPRIVATELIB+= ${_l} -.endif DPADD+= ${DPADD_${_l}:Umissing-dpadd_${_l}} LDADD+= ${LDADD_${_l}} .endfor Modified: projects/clang370-import/sys/netinet/ip_input.c ============================================================================== --- projects/clang370-import/sys/netinet/ip_input.c Sun Sep 6 22:02:13 2015 (r287526) +++ projects/clang370-import/sys/netinet/ip_input.c Sun Sep 6 22:05:55 2015 (r287527) @@ -160,7 +160,7 @@ static struct netisr_handler ip_direct_n .nh_name = "ip_direct", .nh_handler = ip_direct_input, .nh_proto = NETISR_IP_DIRECT, - .nh_m2cpuid = rss_m2cpuid, + .nh_m2cpuid = rss_soft_m2cpuid_v4, .nh_policy = NETISR_POLICY_CPU, .nh_dispatch = NETISR_DISPATCH_HYBRID, }; Modified: projects/clang370-import/sys/netinet6/in6.h ============================================================================== --- projects/clang370-import/sys/netinet6/in6.h Sun Sep 6 22:02:13 2015 (r287526) +++ projects/clang370-import/sys/netinet6/in6.h Sun Sep 6 22:05:55 2015 (r287527) @@ -485,6 +485,8 @@ struct route_in6 { #define IPV6_FLOWID 67 /* int; flowid of given socket */ #define IPV6_FLOWTYPE 68 /* int; flowtype of given socket */ #define IPV6_RSSBUCKETID 69 /* int; RSS bucket ID of given socket */ +#define IPV6_RECVFLOWID 70 /* bool; receive IP6 flowid/flowtype w/ datagram */ +#define IPV6_RECVRSSBUCKETID 71 /* bool; receive IP6 RSS bucket id w/ datagram */ /* * The following option is private; do not use it from user applications. Modified: projects/clang370-import/sys/netinet6/ip6_input.c ============================================================================== --- projects/clang370-import/sys/netinet6/ip6_input.c Sun Sep 6 22:02:13 2015 (r287526) +++ projects/clang370-import/sys/netinet6/ip6_input.c Sun Sep 6 22:05:55 2015 (r287527) @@ -93,6 +93,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -1349,6 +1350,44 @@ ip6_savecontrol(struct inpcb *in6p, stru loopend: ; } + + if (in6p->inp_flags2 & INP_RECVFLOWID) { + uint32_t flowid, flow_type; + + flowid = m->m_pkthdr.flowid; + flow_type = M_HASHTYPE_GET(m); + + /* + * XXX should handle the failure of one or the + * other - don't populate both? + */ + *mp = sbcreatecontrol((caddr_t) &flowid, + sizeof(uint32_t), IPV6_FLOWID, IPPROTO_IPV6); + if (*mp) + mp = &(*mp)->m_next; + *mp = sbcreatecontrol((caddr_t) &flow_type, + sizeof(uint32_t), IPV6_FLOWTYPE, IPPROTO_IPV6); + if (*mp) + mp = &(*mp)->m_next; + } + +#ifdef RSS + if (in6p->inp_flags2 & INP_RECVRSSBUCKETID) { + uint32_t flowid, flow_type; + uint32_t rss_bucketid; + + flowid = m->m_pkthdr.flowid; + flow_type = M_HASHTYPE_GET(m); + + if (rss_hash2bucket(flowid, flow_type, &rss_bucketid) == 0) { + *mp = sbcreatecontrol((caddr_t) &rss_bucketid, + sizeof(uint32_t), IPV6_RSSBUCKETID, IPPROTO_IPV6); + if (*mp) + mp = &(*mp)->m_next; + } + } +#endif + } #undef IS2292 Modified: projects/clang370-import/sys/netinet6/ip6_output.c ============================================================================== --- projects/clang370-import/sys/netinet6/ip6_output.c Sun Sep 6 22:02:13 2015 (r287526) +++ projects/clang370-import/sys/netinet6/ip6_output.c Sun Sep 6 22:05:55 2015 (r287527) @@ -1400,6 +1400,10 @@ ip6_ctloutput(struct socket *so, struct case IPV6_RECVRTHDR: case IPV6_RECVPATHMTU: case IPV6_RECVTCLASS: + case IPV6_RECVFLOWID: +#ifdef RSS + case IPV6_RECVRSSBUCKETID: +#endif case IPV6_V6ONLY: case IPV6_AUTOFLOWLABEL: case IPV6_BINDANY: @@ -1548,6 +1552,16 @@ do { \ OPTSET(IN6P_MTU); break; + case IPV6_RECVFLOWID: + OPTSET2(INP_RECVFLOWID, optval); + break; + +#ifdef RSS + case IPV6_RECVRSSBUCKETID: + OPTSET2(INP_RECVRSSBUCKETID, optval); + break; +#endif + case IPV6_V6ONLY: /* * make setsockopt(IPV6_V6ONLY) @@ -1811,8 +1825,10 @@ do { \ case IPV6_BINDANY: case IPV6_FLOWID: case IPV6_FLOWTYPE: + case IPV6_RECVFLOWID: #ifdef RSS case IPV6_RSSBUCKETID: + case IPV6_RECVRSSBUCKETID: #endif switch (optname) { @@ -1883,6 +1899,10 @@ do { \ case IPV6_FLOWTYPE: optval = in6p->inp_flowtype; break; + + case IPV6_RECVFLOWID: + optval = OPTBIT2(INP_RECVFLOWID); + break; #ifdef RSS case IPV6_RSSBUCKETID: retval = @@ -1894,6 +1914,10 @@ do { \ else error = EINVAL; break; + + case IPV6_RECVRSSBUCKETID: + optval = OPTBIT2(INP_RECVRSSBUCKETID); + break; #endif case IPV6_BINDMULTI: Modified: projects/clang370-import/usr.bin/procstat/procstat_auxv.c ============================================================================== --- projects/clang370-import/usr.bin/procstat/procstat_auxv.c Sun Sep 6 22:02:13 2015 (r287526) +++ projects/clang370-import/usr.bin/procstat/procstat_auxv.c Sun Sep 6 22:05:55 2015 (r287527) @@ -165,11 +165,11 @@ procstat_auxv(struct procstat *procstat, if ((auxv[i].a_un.a_val & VM_PROT_EXECUTE) != 0) xo_emit("{dw:/%s}{Lw:/%-16s/%s}" "{:AT_STACKPROT/%s}\n", prefix, - "AT_STACKPROT", "NONEXECUTABLE"); + "AT_STACKPROT", "EXECUTABLE"); else xo_emit("{dw:/%s}{Lw:/%-16s/%s}" "{:AT_STACKPROT/%s}\n", prefix, - "AT_STACKPROT", "EXECUTABLE"); + "AT_STACKPROT", "NONEXECUTABLE"); break; #ifdef AT_TIMEKEEP case AT_TIMEKEEP: Modified: projects/clang370-import/usr.sbin/ntp/Makefile ============================================================================== --- projects/clang370-import/usr.sbin/ntp/Makefile Sun Sep 6 22:02:13 2015 (r287526) +++ projects/clang370-import/usr.sbin/ntp/Makefile Sun Sep 6 22:05:55 2015 (r287527) @@ -5,4 +5,14 @@ SUBDIR= libopts libntp libntpevent libpa ntptime ntp-keygen sntp SUBDIR+= doc +SUBDIR_DEPEND_ntpd= libntp libopts libparse +SUBDIR_DEPEND_ntpdate= libntp +SUBDIR_DEPEND_ntpdc= libntp libopts +SUBDIR_DEPEND_ntpq= libntp libopts +SUBDIR_DEPEND_ntptime= libntp +SUBDIR_DEPEND_ntp-keygen= libntp libopts +SUBDIR_DEPEND_sntp= libntp libntpevent libopts + +SUBDIR_PARALLEL= + .include Modified: projects/clang370-import/usr.sbin/pciconf/pathnames.h ============================================================================== --- projects/clang370-import/usr.sbin/pciconf/pathnames.h Sun Sep 6 22:02:13 2015 (r287526) +++ projects/clang370-import/usr.sbin/pciconf/pathnames.h Sun Sep 6 22:05:55 2015 (r287527) @@ -1,3 +1,4 @@ /* $FreeBSD$ */ #define _PATH_DEVPCI "/dev/pci" #define _PATH_PCIVDB "/usr/share/misc/pci_vendors" +#define _PATH_LPCIVDB "/usr/local/share/pciids/pci.ids" Modified: projects/clang370-import/usr.sbin/pciconf/pciconf.8 ============================================================================== --- projects/clang370-import/usr.sbin/pciconf/pciconf.8 Sun Sep 6 22:02:13 2015 (r287526) +++ projects/clang370-import/usr.sbin/pciconf/pciconf.8 Sun Sep 6 22:05:55 2015 (r287527) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 20, 2014 +.Dd September 06, 2015 .Dt PCICONF 8 .Os .Sh NAME @@ -281,7 +281,9 @@ indicates a halfword (two-byte) operatio The default is to read or write a longword (four bytes). .Sh ENVIRONMENT -The PCI vendor/device information database is normally read from +PCI vendor and device information is read from +.Pa /usr/local/share/pciids/pci.ids . +If that file is not present, it is read from .Pa /usr/share/misc/pci_vendors . This path can be overridden by setting the environment variable .Ev PCICONF_VENDOR_DATABASE . Modified: projects/clang370-import/usr.sbin/pciconf/pciconf.c ============================================================================== --- projects/clang370-import/usr.sbin/pciconf/pciconf.c Sun Sep 6 22:02:13 2015 (r287526) +++ projects/clang370-import/usr.sbin/pciconf/pciconf.c Sun Sep 6 22:05:55 2015 (r287527) @@ -549,9 +549,12 @@ load_vendors(void) */ TAILQ_INIT(&pci_vendors); if ((dbf = getenv("PCICONF_VENDOR_DATABASE")) == NULL) + dbf = _PATH_LPCIVDB; + if ((db = fopen(dbf, "r")) == NULL) { dbf = _PATH_PCIVDB; - if ((db = fopen(dbf, "r")) == NULL) - return(1); + if ((db = fopen(dbf, "r")) == NULL) + return(1); + } cv = NULL; cd = NULL; error = 0; From owner-svn-src-projects@freebsd.org Mon Sep 7 07:03:44 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C21D9CC975 for ; Mon, 7 Sep 2015 07:03:44 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 498021234; Mon, 7 Sep 2015 07:03:44 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t8773iek096240; Mon, 7 Sep 2015 07:03:44 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t8773f1w096223; Mon, 7 Sep 2015 07:03:41 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <201509070703.t8773f1w096223@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Mon, 7 Sep 2015 07:03:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287530 - in projects/routing/sys: conf contrib/ipfilter/netinet dev/cxgb/ulp/iw_cxgb dev/cxgb/ulp/tom dev/cxgbe/iw_cxgbe dev/cxgbe/tom fs/nfsclient net netgraph/netflow netinet netinet... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Sep 2015 07:03:44 -0000 Author: melifaro Date: Mon Sep 7 07:03:40 2015 New Revision: 287530 URL: https://svnweb.freebsd.org/changeset/base/287530 Log: Move fib[46] from rt_nhops.[ch] to netinet/in_fib.[ch] and netinet6/in6_fib.[ch] Retain rt_nhops.c as a placeholder for future single/multipath nexthops construction. Added: projects/routing/sys/netinet/in_fib.c (contents, props changed) projects/routing/sys/netinet/in_fib.h (contents, props changed) projects/routing/sys/netinet6/in6_fib.c (contents, props changed) projects/routing/sys/netinet6/in6_fib.h (contents, props changed) Modified: projects/routing/sys/conf/files projects/routing/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c projects/routing/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c projects/routing/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c projects/routing/sys/dev/cxgb/ulp/tom/cxgb_listen.c projects/routing/sys/dev/cxgbe/iw_cxgbe/cm.c projects/routing/sys/dev/cxgbe/tom/t4_connect.c projects/routing/sys/dev/cxgbe/tom/t4_listen.c projects/routing/sys/fs/nfsclient/nfs_clport.c projects/routing/sys/net/if_stf.c projects/routing/sys/net/rt_nhops.c projects/routing/sys/net/rt_nhops.h projects/routing/sys/netgraph/netflow/netflow.c projects/routing/sys/netinet/if_ether.c projects/routing/sys/netinet/in.c projects/routing/sys/netinet/in_gif.c projects/routing/sys/netinet/in_mcast.c projects/routing/sys/netinet/in_pcb.c projects/routing/sys/netinet/ip_fastfwd.c projects/routing/sys/netinet/ip_icmp.c projects/routing/sys/netinet/ip_input.c projects/routing/sys/netinet/ip_options.c projects/routing/sys/netinet/ip_output.c projects/routing/sys/netinet/tcp_offload.c projects/routing/sys/netinet/tcp_output.c projects/routing/sys/netinet/tcp_subr.c projects/routing/sys/netinet6/icmp6.c projects/routing/sys/netinet6/in6.c projects/routing/sys/netinet6/in6_gif.c projects/routing/sys/netinet6/in6_mcast.c projects/routing/sys/netinet6/in6_src.c projects/routing/sys/netinet6/ip6_output.c projects/routing/sys/netpfil/ipfw/ip_fw2.c projects/routing/sys/netpfil/pf/pf.c Modified: projects/routing/sys/conf/files ============================================================================== --- projects/routing/sys/conf/files Mon Sep 7 02:00:05 2015 (r287529) +++ projects/routing/sys/conf/files Mon Sep 7 07:03:40 2015 (r287530) @@ -3636,6 +3636,7 @@ netinet/in.c optional inet netinet/in_debug.c optional inet ddb netinet/in_kdtrace.c optional inet | inet6 netinet/ip_carp.c optional inet carp | inet6 carp +netinet/in_fib.c optional inet netinet/in_gif.c optional gif inet | netgraph_gif inet netinet/ip_gre.c optional gre inet netinet/ip_id.c optional inet @@ -3643,6 +3644,7 @@ netinet/in_mcast.c optional inet netinet/in_pcb.c optional inet | inet6 netinet/in_pcbgroup.c optional inet pcbgroup | inet6 pcbgroup netinet/in_proto.c optional inet | inet6 +netinet/in_fib.c optional inet netinet/in_rmx.c optional inet netinet/in_rss.c optional inet rss netinet/ip_divert.c optional inet ipdivert ipfirewall @@ -3701,6 +3703,7 @@ netinet6/frag6.c optional inet6 netinet6/icmp6.c optional inet6 netinet6/in6.c optional inet6 netinet6/in6_cksum.c optional inet6 +netinet6/in6_fib.c optional inet6 netinet6/in6_gif.c optional gif inet6 | netgraph_gif inet6 netinet6/in6_ifattach.c optional inet6 netinet6/in6_mcast.c optional inet6 Modified: projects/routing/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c ============================================================================== --- projects/routing/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c Mon Sep 7 02:00:05 2015 (r287529) +++ projects/routing/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c Mon Sep 7 07:03:40 2015 (r287530) @@ -53,6 +53,7 @@ static const char rcsid[] = "@(#)$Id$"; #include #include #include +#include #include #include #if defined(__FreeBSD_version) && (__FreeBSD_version >= 800000) @@ -71,7 +72,6 @@ static const char rcsid[] = "@(#)$Id$"; #ifdef USE_INET6 # include #endif -#include #include "netinet/ip_fil.h" #include "netinet/ip_nat.h" #include "netinet/ip_frag.h" Modified: projects/routing/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c ============================================================================== --- projects/routing/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c Mon Sep 7 02:00:05 2015 (r287529) +++ projects/routing/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c Mon Sep 7 07:03:40 2015 (r287530) @@ -63,13 +63,12 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include -#include - #include #include #include Modified: projects/routing/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c ============================================================================== --- projects/routing/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c Mon Sep 7 02:00:05 2015 (r287529) +++ projects/routing/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c Mon Sep 7 07:03:40 2015 (r287530) @@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #define TCPSTATES #include @@ -69,7 +70,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include "cxgb_include.h" #include "ulp/tom/cxgb_l2t.h" Modified: projects/routing/sys/dev/cxgb/ulp/tom/cxgb_listen.c ============================================================================== --- projects/routing/sys/dev/cxgb/ulp/tom/cxgb_listen.c Mon Sep 7 02:00:05 2015 (r287529) +++ projects/routing/sys/dev/cxgb/ulp/tom/cxgb_listen.c Mon Sep 7 07:03:40 2015 (r287530) @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -47,7 +48,6 @@ __FBSDID("$FreeBSD$"); #define TCPSTATES #include #include -#include #include "cxgb_include.h" #include "ulp/tom/cxgb_tom.h" Modified: projects/routing/sys/dev/cxgbe/iw_cxgbe/cm.c ============================================================================== --- projects/routing/sys/dev/cxgbe/iw_cxgbe/cm.c Mon Sep 7 02:00:05 2015 (r287529) +++ projects/routing/sys/dev/cxgbe/iw_cxgbe/cm.c Mon Sep 7 07:03:40 2015 (r287530) @@ -47,13 +47,12 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include -#include - #include struct sge_iq; Modified: projects/routing/sys/dev/cxgbe/tom/t4_connect.c ============================================================================== --- projects/routing/sys/dev/cxgbe/tom/t4_connect.c Mon Sep 7 02:00:05 2015 (r287529) +++ projects/routing/sys/dev/cxgbe/tom/t4_connect.c Mon Sep 7 07:03:40 2015 (r287530) @@ -49,11 +49,11 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #define TCPSTATES #include #include -#include #include "common/common.h" #include "common/t4_msg.h" Modified: projects/routing/sys/dev/cxgbe/tom/t4_listen.c ============================================================================== --- projects/routing/sys/dev/cxgbe/tom/t4_listen.c Mon Sep 7 02:00:05 2015 (r287529) +++ projects/routing/sys/dev/cxgbe/tom/t4_listen.c Mon Sep 7 07:03:40 2015 (r287530) @@ -51,6 +51,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include #include @@ -58,7 +60,6 @@ __FBSDID("$FreeBSD$"); #define TCPSTATES #include #include -#include #include "common/common.h" #include "common/t4_msg.h" Modified: projects/routing/sys/fs/nfsclient/nfs_clport.c ============================================================================== --- projects/routing/sys/fs/nfsclient/nfs_clport.c Mon Sep 7 02:00:05 2015 (r287529) +++ projects/routing/sys/fs/nfsclient/nfs_clport.c Mon Sep 7 07:03:40 2015 (r287530) @@ -47,10 +47,10 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include -#include #include Modified: projects/routing/sys/net/if_stf.c ============================================================================== --- projects/routing/sys/net/if_stf.c Mon Sep 7 02:00:05 2015 (r287529) +++ projects/routing/sys/net/if_stf.c Mon Sep 7 07:03:40 2015 (r287530) @@ -104,6 +104,7 @@ #include #include #include +#include #include #include @@ -114,8 +115,6 @@ #include -#include - #include #include Modified: projects/routing/sys/net/rt_nhops.c ============================================================================== --- projects/routing/sys/net/rt_nhops.c Mon Sep 7 02:00:05 2015 (r287529) +++ projects/routing/sys/net/rt_nhops.c Mon Sep 7 07:03:40 2015 (r287530) @@ -27,11 +27,6 @@ * SUCH DAMAGE. */ -/* - * Temporary file. In future it should be split between net/route.c - * and per-AF files like netinet/in_rmx.c | netinet6/in6_rmx.c - */ - #include "opt_inet.h" #include "opt_inet6.h" #include "opt_route.h" @@ -119,29 +114,6 @@ int fwd_destroy_fib(struct fwd_module *f #endif static inline uint16_t fib_rte_to_nh_flags(int rt_flags); -#ifdef INET -static void rib4_rte_to_nh_extended(struct rtentry *rte, struct in_addr dst, - struct rt4_extended *prt4); -static void fib4_rte_to_nh_extended(struct rtentry *rte, struct in_addr dst, - struct nhop4_extended *pnh4); -static void fib4_rte_to_nh_basic(struct rtentry *rte, struct in_addr dst, - struct nhop4_basic *pnh4); -#endif -#ifdef INET6 -static void fib6_rte_to_nh_extended(struct rtentry *rte, struct in6_addr *dst, - struct nhop6_extended *pnh6); -static void fib6_rte_to_nh_basic(struct rtentry *rte, const struct in6_addr *dst, - struct nhop6_basic *pnh6); -static int fib6_storelladdr(struct ifnet *ifp, struct in6_addr *dst, - int mm_flags, u_char *desten); -static uint16_t fib6_get_ifa(struct rtentry *rte); -static int fib6_lla_to_nh_basic(const struct in6_addr *dst, uint32_t scopeid, - struct nhop6_basic *pnh6); -static int fib6_lla_to_nh_extended(struct in6_addr *dst, uint32_t scopeid, - struct nhop6_extended *pnh6); -static int fib6_lla_to_nh(struct in6_addr *dst, uint32_t scopeid, - struct nhop_prepend *nh, struct ifnet **lifp); -#endif MALLOC_DEFINE(M_RTFIB, "rtfib", "routing fwd"); @@ -169,1183 +141,17 @@ MALLOC_DEFINE(M_RTFIB, "rtfib", "routing */ //#define NHOP_DIRECT -#define RNTORT(p) ((struct rtentry *)(p)) -/* - * Copies proper nexthop data based on @nh_src nexthop. - * - * For non-ECMP nexthop function simply copies @nh_src. - * For ECMP nexthops flowid is used to select proper - * nexthop. - * - */ -static inline void -fib_choose_prepend(uint32_t fibnum, struct nhop_prepend *nh_src, - uint32_t flowid, struct nhop_prepend *nh, int af) -{ - struct nhop_multi *nh_multi; - int idx; - - if ((nh_src->nh_flags & NHF_RECURSE) != 0) { - - /* - * Recursive nexthop. Choose direct nexthop - * based on flowid. - */ - nh_multi = (struct nhop_multi *)nh_src; - idx = nh_multi->nh_nhops[flowid % nh_multi->nh_count]; #if 0 - KASSERT((fibnum < rt_numfibs), ("fib4_lookup_prepend§: bad fibnum")); - rh = rt_tables_get_rnh(fibnum, AF_INET); - //nh_src = &rh->nhops[i]; -#endif - } - - *nh = *nh_src; - /* TODO: Do some light-weight refcounting on egress ifp's */ -} - static inline void fib_free_nh_prepend(uint32_t fibnum, struct nhop_prepend *nh, int af) { /* TODO: Do some light-weight refcounting on egress ifp's */ } - -#ifdef INET -void -fib4_free_nh_prepend(uint32_t fibnum, struct nhop_prepend *nh) -{ - - fib_free_nh_prepend(fibnum, nh, AF_INET); -} - -void -fib4_choose_prepend(uint32_t fibnum, struct nhop_prepend *nh_src, - uint32_t flowid, struct nhop_prepend *nh, struct nhop4_extended *nh_ext) -{ - - fib_choose_prepend(fibnum, nh_src, flowid, nh, AF_INET); - if (nh_ext == NULL) - return; - - nh_ext->nh_ifp = NH_LIFP(nh); - nh_ext->nh_mtu = nh->nh_mtu; - nh_ext->nh_flags = nh->nh_flags; -#if 0 - /* TODO: copy source/gw address from extended nexthop data */ - nh_ext->nh_addr = ; - nh_ext->nh_src= ; #endif -} - -/* - * Function performs lookup in IPv4 table fib @fibnum. - * - * In case of successful lookup @nh header is filled with - * appropriate interface info and full L2 header to prepend. - * - * If no valid ARP record is present, NHF_L2_INCOMPLETE flag - * is set and gateway address is stored into nh->d.gw4 - * - * If @nh_ext is not NULL, additional nexthop data is stored there. - * - * Returns 0 on success. - * - */ -int -fib4_lookup_prepend(uint32_t fibnum, struct in_addr dst, struct mbuf *m, - struct nhop_prepend *nh, struct nhop4_extended *nh_ext) -{ - struct rib_head *rh; - struct radix_node *rn; - struct sockaddr_in *gw_sa, sin; - struct ifnet *lifp; - struct in_addr gw; - struct ether_header *eh; - int error, flags; - struct rtentry *rte; - RIB_LOCK_READER; - - KASSERT((fibnum < rt_numfibs), ("fib4_lookup_prepend: bad fibnum")); - rh = rt_tables_get_rnh(fibnum, AF_INET); - if (rh == NULL) - return (EHOSTUNREACH); - - /* Prepare lookup key */ - memset(&sin, 0, sizeof(sin)); - sin.sin_len = sizeof(struct sockaddr_in); - sin.sin_addr = dst; - - RIB_RLOCK(rh); - rn = rh->rnh_matchaddr((void *)&sin, &rh->head); - rte = RNTORT(rn); - if (rn == NULL || ((rn->rn_flags & RNF_ROOT) != 0) || - RT_LINK_IS_UP(rte->rt_ifp) == 0) { - RIB_RUNLOCK(rh); - return (EHOSTUNREACH); - } - - /* - * Currently we fill in @nh ourselves. - * In near future rte will have nhop index to copy from. - */ - - /* Calculate L3 info */ - flags = 0; - nh->nh_mtu = min(rte->rt_mtu, rte->rt_ifp->if_mtu); - if (rte->rt_flags & RTF_GATEWAY) { - gw_sa = (struct sockaddr_in *)rte->rt_gateway; - gw = gw_sa->sin_addr; - } else - gw = dst; - /* Set flags */ - flags = fib_rte_to_nh_flags(rte->rt_flags); - gw_sa = (struct sockaddr_in *)rt_key(rte); - if (gw_sa->sin_addr.s_addr == 0) - flags |= NHF_DEFAULT; - - /* - * TODO: nh L2/L3 resolve. - * Currently all we have is rte ifp. - * Simply use it. - */ - /* Save interface address ifp */ - lifp = rte->rt_ifa->ifa_ifp; - nh->aifp_idx = lifp->if_index; - /* Save both logical and transmit interface indexes */ - lifp = rte->rt_ifp; - nh->lifp_idx = lifp->if_index; - nh->i.ifp_idx = nh->lifp_idx; - - if (nh_ext != NULL) { - /* Fill in extended info */ - fib4_rte_to_nh_extended(rte, dst, nh_ext); - } - - RIB_RUNLOCK(rh); - - nh->nh_flags = flags; - /* - * Try to lookup L2 info. - * Do this using separate LLE locks. - * TODO: move this under radix lock. - */ - if (lifp->if_type == IFT_ETHER) { - eh = (struct ether_header *)nh->d.data; - - /* - * Fill in ethernet header. - * It should be already presented if we're - * sending data via known gateway. - */ - error = arpresolve_fast(lifp, gw, m ? m->m_flags : 0, - eh->ether_dhost); - printf("Resolve for ifp %s returned %d\n", lifp->if_xname, error); - if (error == 0) { - memcpy(&eh->ether_shost, IF_LLADDR(lifp), ETHER_ADDR_LEN); - eh->ether_type = htons(ETHERTYPE_IP); - nh->nh_count = ETHER_HDR_LEN; - return (0); - } - } - - printf("Incomplete for ifp %s ()\n", lifp->if_xname); - /* Notify caller that no L2 info is linked */ - nh->nh_count = 0; - nh->nh_flags |= NHF_L2_INCOMPLETE; - /* ..And save gateway address */ - nh->d.gw4 = gw; - return (0); -} - -int -fib4_sendmbuf(struct ifnet *ifp, struct mbuf *m, struct nhop_prepend *nh, - struct in_addr dst) -{ - int error; - - if (nh != NULL && (nh->nh_flags & NHF_L2_INCOMPLETE) == 0) { - - /* - * Fast path case. Most packets should - * be sent from here. - * TODO: Make special ifnet - * 'if_output_frame' handler for that. - */ - struct nhop_info ni; - struct ether_header *eh; - bzero(&ni, sizeof(ni)); - ni.ni_flags = RT_NHOP; - ni.ni_family = AF_INET; - ni.ni_nh = nh; - - M_PREPEND(m, nh->nh_count, M_NOWAIT); - if (m == NULL) - return (ENOBUFS); - eh = mtod(m, struct ether_header *); - memcpy(eh, nh->d.data, nh->nh_count); - printf("FP %s\n", ifp->if_xname); - error = (*ifp->if_output)(ifp, m, NULL, &ni); - } else { - struct sockaddr_in gw_out; - memset(&gw_out, 0, sizeof(gw_out)); - gw_out.sin_len = sizeof(gw_out); - gw_out.sin_family = AF_INET; - gw_out.sin_addr = nh ? nh->d.gw4 : dst; - printf("SLOW %s\n", ifp->if_xname); - error = (*ifp->if_output)(ifp, m, - (const struct sockaddr *)&gw_out, NULL); - } - - return (error); -} - -static inline uint16_t -fib_rte_to_nh_flags(int rt_flags) -{ - uint16_t res; - - res = (rt_flags & RTF_REJECT) ? NHF_REJECT : 0; - res |= (rt_flags & RTF_BLACKHOLE) ? NHF_BLACKHOLE : 0; - res |= (rt_flags & (RTF_DYNAMIC|RTF_MODIFIED)) ? NHF_REDIRECT : 0; - res |= (rt_flags & RTF_BROADCAST) ? NHF_BROADCAST : 0; - res |= (rt_flags & RTF_GATEWAY) ? NHF_GATEWAY : 0; - - return (res); -} - -static void -fib4_rte_to_nh_basic(struct rtentry *rte, struct in_addr dst, - struct nhop4_basic *pnh4) -{ - struct sockaddr_in *gw; - - pnh4->nh_ifp = rte->rt_ifa->ifa_ifp; - pnh4->nh_mtu = min(rte->rt_mtu, rte->rt_ifp->if_mtu); - if (rte->rt_flags & RTF_GATEWAY) { - gw = (struct sockaddr_in *)rte->rt_gateway; - pnh4->nh_addr = gw->sin_addr; - } else - pnh4->nh_addr = dst; - /* Set flags */ - pnh4->nh_flags = fib_rte_to_nh_flags(rte->rt_flags); - gw = (struct sockaddr_in *)rt_key(rte); - if (gw->sin_addr.s_addr == 0) - pnh4->nh_flags |= NHF_DEFAULT; - /* XXX: Set RTF_BROADCAST if GW address is broadcast */ -} - -static void -fib4_rte_to_nh_extended(struct rtentry *rte, struct in_addr dst, - struct nhop4_extended *pnh4) -{ - struct sockaddr_in *gw; - struct in_ifaddr *ia; - - pnh4->nh_ifp = rte->rt_ifa->ifa_ifp; - pnh4->nh_mtu = min(rte->rt_mtu, rte->rt_ifp->if_mtu); - if (rte->rt_flags & RTF_GATEWAY) { - gw = (struct sockaddr_in *)rte->rt_gateway; - pnh4->nh_addr = gw->sin_addr; - } else - pnh4->nh_addr = dst; - /* Set flags */ - pnh4->nh_flags = fib_rte_to_nh_flags(rte->rt_flags); - gw = (struct sockaddr_in *)rt_key(rte); - if (gw->sin_addr.s_addr == 0) - pnh4->nh_flags |= NHF_DEFAULT; - /* XXX: Set RTF_BROADCAST if GW address is broadcast */ - - ia = ifatoia(rte->rt_ifa); - pnh4->nh_src = IA_SIN(ia)->sin_addr; -} - -static void -rib4_rte_to_nh_extended(struct rtentry *rte, struct in_addr dst, - struct rt4_extended *prt4) -{ - struct sockaddr_in *gw; - struct in_ifaddr *ia; - - /* Do explicit nexthop zero unless we're copying it */ - memset(prt4, 0, sizeof(*prt4)); - - gw = ((struct sockaddr_in *)rt_key(rte)); - prt4->rt_addr = gw->sin_addr; - gw = ((struct sockaddr_in *)rt_mask(rte)); - prt4->rt_mask.s_addr = (gw != NULL) ? - gw->sin_addr.s_addr : INADDR_BROADCAST; - - if (rte->rt_flags & RTF_GATEWAY) { - gw = (struct sockaddr_in *)rte->rt_gateway; - prt4->rt_gateway = gw->sin_addr; - } else - prt4->rt_gateway = dst; - - prt4->rt_lifp = rte->rt_ifp; - prt4->rt_aifp = rte->rt_ifa->ifa_ifp; - prt4->rt_flags = rte->rt_flags; - prt4->rt_mtu = min(rte->rt_mtu, rte->rt_ifp->if_mtu); - - prt4->rt_nhop = 0; /* XXX: fill real nexthop */ - - ia = ifatoia(rte->rt_ifa); - prt4->rt_src = IA_SIN(ia)->sin_addr; -} - -/* - * Performs IPv4 route table lookup on @dst. Returns 0 on success. - * Stores nexthop info provided @pnh4 structure. - * Note that - * - nh_ifp cannot be safely dereferenced - * - nh_ifp represents ifaddr ifp (e.g. if looking up address on - * interface "ix0" pointer to "ix0" interface will be returned instead - * of "lo0") - * - howewer mtu from "transmit" interface will be returned. - */ -int -fib4_lookup_nh_basic(uint32_t fibnum, struct in_addr dst, uint32_t flowid, - struct nhop4_basic *pnh4) -{ - struct rib_head *rh; - struct radix_node *rn; - struct sockaddr_in sin; - struct rtentry *rte; - RIB_LOCK_READER; - - KASSERT((fibnum < rt_numfibs), ("fib4_lookup_nh_basic: bad fibnum")); - rh = rt_tables_get_rnh(fibnum, AF_INET); - if (rh == NULL) - return (ENOENT); - - /* Prepare lookup key */ - memset(&sin, 0, sizeof(sin)); - sin.sin_len = sizeof(struct sockaddr_in); - sin.sin_addr = dst; - - RIB_RLOCK(rh); - rn = rh->rnh_matchaddr((void *)&sin, &rh->head); - if (rn != NULL && ((rn->rn_flags & RNF_ROOT) == 0)) { - rte = RNTORT(rn); - /* Ensure route & ifp is UP */ - if (RT_LINK_IS_UP(rte->rt_ifp)) { - fib4_rte_to_nh_basic(rte, dst, pnh4); - RIB_RUNLOCK(rh); - - return (0); - } - } - RIB_RUNLOCK(rh); - - return (ENOENT); -} - -int -fib4_lookup_nh_ifp(uint32_t fibnum, struct in_addr dst, uint32_t flowid, - struct nhop4_basic *pnh4) -{ - struct rib_head *rh; - struct radix_node *rn; - struct sockaddr_in sin; - struct rtentry *rte; - RIB_LOCK_READER; - - KASSERT((fibnum < rt_numfibs), ("fib4_lookup_nh_ifp: bad fibnum")); - rh = rt_tables_get_rnh(fibnum, AF_INET); - if (rh == NULL) - return (ENOENT); - - /* Prepare lookup key */ - memset(&sin, 0, sizeof(sin)); - sin.sin_len = sizeof(struct sockaddr_in); - sin.sin_addr = dst; - - RIB_RLOCK(rh); - rn = rh->rnh_matchaddr((void *)&sin, &rh->head); - if (rn != NULL && ((rn->rn_flags & RNF_ROOT) == 0)) { - rte = RNTORT(rn); - /* Ensure route & ifp is UP */ - if (RT_LINK_IS_UP(rte->rt_ifp)) { - fib4_rte_to_nh_basic(rte, dst, pnh4); - RIB_RUNLOCK(rh); - pnh4->nh_ifp = rte->rt_ifp; - return (0); - } - } - RIB_RUNLOCK(rh); - - return (ENOENT); -} - -/* - * Performs IPv4 route table lookup on @dst. Returns 0 on success. - * Stores extende nexthop info provided @pnh4 structure. - * Note that - * - nh_ifp cannot be safely dereferenced unless NHOP_LOOKUP_REF is specified. - * - in that case you need to call fib4_free_nh_ext() - * - nh_ifp represents logical transmit interface (rt_ifp) - * - mtu from logical transmit interface will be returned. - */ -int -fib4_lookup_nh_ext(uint32_t fibnum, struct in_addr dst, uint32_t flowid, - uint32_t flags, struct nhop4_extended *pnh4) -{ - struct rib_head *rh; - struct radix_node *rn; - struct sockaddr_in sin; - struct rtentry *rte; - RIB_LOCK_READER; - - KASSERT((fibnum < rt_numfibs), ("fib4_lookup_nh_ext: bad fibnum")); - rh = rt_tables_get_rnh(fibnum, AF_INET); - if (rh == NULL) - return (ENOENT); - - /* Prepare lookup key */ - memset(&sin, 0, sizeof(sin)); - sin.sin_len = sizeof(struct sockaddr_in); - sin.sin_addr = dst; - - RIB_RLOCK(rh); - rn = rh->rnh_matchaddr((void *)&sin, &rh->head); - if (rn != NULL && ((rn->rn_flags & RNF_ROOT) == 0)) { - rte = RNTORT(rn); - /* Ensure route & ifp is UP */ - if (RT_LINK_IS_UP(rte->rt_ifp)) { - fib4_rte_to_nh_extended(rte, dst, pnh4); - if ((flags & NHOP_LOOKUP_REF) != 0) { - /* TODO: Do lwref on egress ifp's */ - } - RIB_RUNLOCK(rh); - - return (0); - } - } - RIB_RUNLOCK(rh); - - return (ENOENT); -} - -void -fib4_free_nh_ext(uint32_t fibnum, struct nhop4_extended *pnh4) -{ - -} - -void -fib4_source_to_sa_ext(const struct nhopu_extended *pnhu, struct sockaddr_in *sin) -{ - - sin->sin_family = AF_INET; - sin->sin_len = sizeof(*sin); - sin->sin_addr = pnhu->u.nh4.nh_src; -} - -int -rib4_lookup_nh_ext(uint32_t fibnum, struct in_addr dst, uint32_t flowid, - uint32_t flags, struct rt4_extended *prt4) -{ - struct rib_head *rh; - struct radix_node *rn; - struct sockaddr_in sin; - struct rtentry *rte; - RIB_LOCK_READER; - - KASSERT((fibnum < rt_numfibs), ("rib4_lookup_nh_ext: bad fibnum")); - rh = rt_tables_get_rnh(fibnum, AF_INET); - if (rh == NULL) - return (ENOENT); - - /* Prepare lookup key */ - memset(&sin, 0, sizeof(sin)); - sin.sin_len = sizeof(struct sockaddr_in); - sin.sin_addr = dst; - - RIB_RLOCK(rh); - rn = rh->rnh_matchaddr((void *)&sin, &rh->head); - if (rn != NULL && ((rn->rn_flags & RNF_ROOT) == 0)) { - rte = RNTORT(rn); - /* Ensure route & ifp is UP */ - if (RT_LINK_IS_UP(rte->rt_ifp)) { - rib4_rte_to_nh_extended(rte, dst, prt4); - if ((flags & NHOP_LOOKUP_REF) != 0) { - /* TODO: Do lwref on egress ifp's */ - } - RIB_RUNLOCK(rh); - return (0); - } - } - RIB_RUNLOCK(rh); - - return (ENOENT); -} - -void -rib4_free_nh_ext(uint32_t fibnum, struct rt4_extended *prt4) -{ - -} - -#endif - -#ifdef INET6 -void -fib6_free_nh_prepend(uint32_t fibnum, struct nhop_prepend *nh) -{ - fib_free_nh_prepend(fibnum, nh, AF_INET6); -} - -void -fib6_choose_prepend(uint32_t fibnum, struct nhop_prepend *nh_src, - uint32_t flowid, struct nhop_prepend *nh, struct nhop6_extended *nh_ext) -{ - - fib_choose_prepend(fibnum, nh_src, flowid, nh, AF_INET6); - if (nh_ext == NULL) - return; - - nh_ext->nh_ifp = NH_LIFP(nh); - nh_ext->nh_mtu = nh->nh_mtu; - nh_ext->nh_flags = nh->nh_flags; -/* - nh_ext->nh_addr = ; - nh_ext->nh_src= ; -*/ -} - -/* - * Temporary function to copy ethernet address from valid lle - */ -static int -fib6_storelladdr(struct ifnet *ifp, struct in6_addr *dst, int mm_flags, - u_char *desten) -{ - struct llentry *ln; - struct sockaddr_in6 dst_sa; - - if (mm_flags & M_MCAST) { - ETHER_MAP_IPV6_MULTICAST(&dst, desten); - return (0); - } - - memset(&dst_sa, 0, sizeof(dst_sa)); - dst_sa.sin6_family = AF_INET6; - dst_sa.sin6_len = sizeof(dst_sa); - dst_sa.sin6_addr = *dst; - dst_sa.sin6_scope_id = ifp->if_index; - - - /* - * the entry should have been created in nd6_store_lladdr - */ - IF_AFDATA_RLOCK(ifp); - ln = lla_lookup(LLTABLE6(ifp), 0, (struct sockaddr *)&dst_sa); - - /* - * Perform fast path for the following cases: - * 1) lle state is REACHABLE - * 2) lle state is DELAY (NS message sentNS message sent) - * - * Every other case involves lle modification, so we handle - * them separately. - */ - if (ln == NULL || (ln->ln_state != ND6_LLINFO_REACHABLE && - ln->ln_state != ND6_LLINFO_DELAY)) { - if (ln != NULL) - LLE_RUNLOCK(ln); - IF_AFDATA_RUNLOCK(ifp); - return (1); - } - bcopy(&ln->ll_addr, desten, ifp->if_addrlen); - LLE_RUNLOCK(ln); - IF_AFDATA_RUNLOCK(ifp); - - return (0); -} - -int -fib6_lookup_prepend(uint32_t fibnum, struct in6_addr *dst, uint32_t scopeid, - struct mbuf *m, struct nhop_prepend *nh, struct nhop6_extended *nh_ext) -{ - struct rib_head *rh; - struct radix_node *rn; - struct sockaddr_in6 sin6, *gw_sa; - struct in6_addr gw6; - struct rtentry *rte; - struct ifnet *lifp; - struct ether_header *eh; - RIB_LOCK_READER; - uint32_t flags; - int error; - - if (IN6_IS_SCOPE_LINKLOCAL(dst)) { - /* Do not lookup link-local addresses in rtable */ - error = fib6_lla_to_nh(dst, scopeid, nh, &lifp); - if (error != 0) - return (error); - /* */ - gw6 = *dst; - goto do_l2; - } - - - KASSERT((fibnum < rt_numfibs), ("fib6_lookup_prepend: bad fibnum")); - rh = rt_tables_get_rnh(fibnum, AF_INET6); - if (rh == NULL) - return (ENOENT); - - /* Prepare lookup key */ - memset(&sin6, 0, sizeof(sin6)); - sin6.sin6_len = sizeof(struct sockaddr_in6); - sin6.sin6_addr = *dst; - sin6.sin6_scope_id = scopeid; - sa6_embedscope(&sin6, 0); - - - RIB_RLOCK(rh); - rn = rh->rnh_matchaddr((void *)&sin6, &rh->head); - rte = RNTORT(rn); - if (rn == NULL || ((rn->rn_flags & RNF_ROOT) != 0) || - RT_LINK_IS_UP(rte->rt_ifp) == 0) { - RIB_RUNLOCK(rh); - return (EHOSTUNREACH); - } - - /* Explicitly zero nexthop */ - memset(nh, 0, sizeof(*nh)); - flags = 0; - nh->nh_mtu = min(rte->rt_mtu, IN6_LINKMTU(rte->rt_ifp)); - if (rte->rt_flags & RTF_GATEWAY) { - gw_sa = (struct sockaddr_in6 *)rte->rt_gateway; - gw6 = gw_sa->sin6_addr; - in6_clearscope(&gw6); - } else - gw6 = *dst; - /* Set flags */ - flags = fib_rte_to_nh_flags(rte->rt_flags); - gw_sa = (struct sockaddr_in6 *)rt_key(rte); - if (IN6_IS_ADDR_UNSPECIFIED(&gw_sa->sin6_addr)) - flags |= NHF_DEFAULT; - - /* - * TODO: nh L2/L3 resolve. - * Currently all we have is rte ifp. - * Simply use it. - */ - /* Save interface address ifp */ - nh->aifp_idx = fib6_get_ifa(rte); - /* Save both logical and transmit interface indexes */ - lifp = rte->rt_ifp; - nh->lifp_idx = lifp->if_index; - nh->i.ifp_idx = nh->lifp_idx; - - RIB_RUNLOCK(rh); - - nh->nh_flags = flags; -do_l2: - /* - * Try to lookup L2 info. - * Do this using separate LLE locks. - * TODO: move this under radix lock. - */ - if (lifp->if_type == IFT_ETHER) { - eh = (struct ether_header *)nh->d.data; - - /* - * Fill in ethernet header. - * It should be already presented if we're - * sending data via known gateway. - */ - error = fib6_storelladdr(lifp, &gw6, m ? m->m_flags : 0, - eh->ether_dhost); - if (error == 0) { - memcpy(&eh->ether_shost, IF_LLADDR(lifp), ETHER_ADDR_LEN); - eh->ether_type = htons(ETHERTYPE_IPV6); - nh->nh_count = ETHER_HDR_LEN; - return (0); - } - } - - /* Notify caller that no L2 info is linked */ - nh->nh_count = 0; - nh->nh_flags |= NHF_L2_INCOMPLETE; - /* ..And save gateway address */ - nh->d.gw6 = gw6; - return (0); -} - -int -fib6_sendmbuf(struct ifnet *ifp, struct ifnet *origifp, struct mbuf *m, - struct nhop_prepend *nh) -{ - int error; - - if (nh != NULL && (nh->nh_flags & NHF_L2_INCOMPLETE) == 0) { - - /* - * Fast path case. Most packets should - * be sent from here. - * TODO: Make special ifnet - * 'if_output_frame' handler for that. - */ - struct nhop_info ni; - struct ether_header *eh; - bzero(&ni, sizeof(ni)); - ni.ni_family = AF_INET6; - ni.ni_flags = RT_NHOP; - ni.ni_nh = nh; - - M_PREPEND(m, nh->nh_count, M_NOWAIT); - if (m == NULL) - return (ENOBUFS); - eh = mtod(m, struct ether_header *); - memcpy(eh, nh->d.data, nh->nh_count); - error = (*ifp->if_output)(ifp, m, NULL, &ni); - } else { - /* We need to perform ND lookup */ - struct sockaddr_in6 gw_out; - - memset(&gw_out, 0, sizeof(gw_out)); - gw_out.sin6_family = AF_INET6; - gw_out.sin6_len = sizeof(gw_out); - gw_out.sin6_addr = nh->d.gw6; - gw_out.sin6_scope_id = ifp->if_index; - sa6_embedscope(&gw_out, 0); - - error = nd6_output(ifp, origifp, m, &gw_out, NULL); - } - - return (error); -} - -static uint16_t -fib6_get_ifa(struct rtentry *rte) -{ - struct ifnet *ifp; - struct sockaddr_dl *sdl; - - ifp = rte->rt_ifp; - if ((ifp->if_flags & IFF_LOOPBACK) && - rte->rt_gateway->sa_family == AF_LINK) { - sdl = (struct sockaddr_dl *)rte->rt_gateway; - return (sdl->sdl_index); - } - - return (ifp->if_index); -#if 0 - /* IPv6 case */ - /* Alternative way to get interface address ifp */ - /* - * Adjust the "outgoing" interface. If we're going to loop *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Mon Sep 7 07:22:39 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 015329CB407 for ; Mon, 7 Sep 2015 07:22:39 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E58031FAA; Mon, 7 Sep 2015 07:22:38 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t877Mc54004977; Mon, 7 Sep 2015 07:22:38 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t877MZKL004963; Mon, 7 Sep 2015 07:22:35 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <201509070722.t877MZKL004963@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Mon, 7 Sep 2015 07:22:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287531 - in projects/routing/sys: net netinet netinet6 X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Sep 2015 07:22:39 -0000 Author: melifaro Date: Mon Sep 7 07:22:35 2015 New Revision: 287531 URL: https://svnweb.freebsd.org/changeset/base/287531 Log: Convert AFDATA lock to rmlock. Modified: projects/routing/sys/net/if.c projects/routing/sys/net/if_llatbl.c projects/routing/sys/net/if_var.h projects/routing/sys/netinet/if_ether.c projects/routing/sys/netinet/toecore.c projects/routing/sys/netinet6/icmp6.c projects/routing/sys/netinet6/in6_fib.c projects/routing/sys/netinet6/nd6.c projects/routing/sys/netinet6/nd6_nbr.c projects/routing/sys/netinet6/nd6_rtr.c projects/routing/sys/netinet6/scope6.c Modified: projects/routing/sys/net/if.c ============================================================================== --- projects/routing/sys/net/if.c Mon Sep 7 07:03:40 2015 (r287530) +++ projects/routing/sys/net/if.c Mon Sep 7 07:22:35 2015 (r287531) @@ -52,6 +52,7 @@ #include #include #include +#include #include #include #include @@ -790,8 +791,7 @@ if_attachdomain1(struct ifnet *ifp) * Since dp->dom_ifattach calls malloc() with M_WAITOK, we * cannot lock ifp->if_afdata initialization, entirely. */ - if (IF_AFDATA_TRYLOCK(ifp) == 0) - return; + IF_AFDATA_LOCK(ifp); if (ifp->if_afdata_initialized >= domain_init_status) { IF_AFDATA_UNLOCK(ifp); log(LOG_WARNING, "%s called more than once on %s\n", @@ -1453,6 +1453,20 @@ if_data_copy(struct ifnet *ifp, struct i ifd->ifi_noproto = ifp->if_get_counter(ifp, IFCOUNTER_NOPROTO); } +void +if_afdata_wlock(struct ifnet *ifp) +{ + + IF_AFDATA_WLOCK(ifp); +} + +void +if_afdata_wunlock(struct ifnet *ifp) +{ + + IF_AFDATA_WUNLOCK(ifp); +} + /* * Wrapper functions for struct ifnet address list locking macros. These are * used by kernel modules to avoid encoding programming interface or binary Modified: projects/routing/sys/net/if_llatbl.c ============================================================================== --- projects/routing/sys/net/if_llatbl.c Mon Sep 7 07:03:40 2015 (r287530) +++ projects/routing/sys/net/if_llatbl.c Mon Sep 7 07:22:35 2015 (r287531) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #ifdef DDB #include @@ -85,6 +86,7 @@ static int lltable_dump_af(struct lltable *llt, struct sysctl_req *wr) { int error; + struct rm_priotracker if_afdata_tracker; LLTABLE_LOCK_ASSERT(); @@ -320,6 +322,7 @@ llentry_alloc(struct ifnet *ifp, struct struct sockaddr_storage *dst) { struct llentry *la, *la_tmp; + struct rm_priotracker if_afdata_tracker; IF_AFDATA_RLOCK(ifp); la = lla_lookup(lt, LLE_EXCLUSIVE, (struct sockaddr *)dst); Modified: projects/routing/sys/net/if_var.h ============================================================================== --- projects/routing/sys/net/if_var.h Mon Sep 7 07:03:40 2015 (r287530) +++ projects/routing/sys/net/if_var.h Mon Sep 7 07:22:35 2015 (r287531) @@ -192,7 +192,7 @@ struct ifnet { int if_amcount; /* number of all-multicast requests */ struct ifaddr *if_addr; /* pointer to link-level address */ const u_int8_t *if_broadcastaddr; /* linklevel broadcast bytestring */ - struct rwlock if_afdata_lock; + struct rmlock if_afdata_lock; void *if_afdata[AF_MAX]; int if_afdata_initialized; @@ -340,21 +340,24 @@ EVENTHANDLER_DECLARE(group_change_event, #endif /* _SYS_EVENTHANDLER_H_ */ #define IF_AFDATA_LOCK_INIT(ifp) \ - rw_init(&(ifp)->if_afdata_lock, "if_afdata") + rm_init(&(ifp)->if_afdata_lock, "if_afdata") -#define IF_AFDATA_WLOCK(ifp) rw_wlock(&(ifp)->if_afdata_lock) -#define IF_AFDATA_RLOCK(ifp) rw_rlock(&(ifp)->if_afdata_lock) -#define IF_AFDATA_WUNLOCK(ifp) rw_wunlock(&(ifp)->if_afdata_lock) -#define IF_AFDATA_RUNLOCK(ifp) rw_runlock(&(ifp)->if_afdata_lock) +#define IF_AFDATA_WLOCK(ifp) rm_wlock(&(ifp)->if_afdata_lock) +#define IF_AFDATA_RLOCK(ifp) rm_rlock(&(ifp)->if_afdata_lock, &if_afdata_tracker) +#define IF_AFDATA_WUNLOCK(ifp) rm_wunlock(&(ifp)->if_afdata_lock) +#define IF_AFDATA_RUNLOCK(ifp) rm_runlock(&(ifp)->if_afdata_lock, &if_afdata_tracker) #define IF_AFDATA_LOCK(ifp) IF_AFDATA_WLOCK(ifp) #define IF_AFDATA_UNLOCK(ifp) IF_AFDATA_WUNLOCK(ifp) -#define IF_AFDATA_TRYLOCK(ifp) rw_try_wlock(&(ifp)->if_afdata_lock) -#define IF_AFDATA_DESTROY(ifp) rw_destroy(&(ifp)->if_afdata_lock) +#define IF_AFDATA_TRYLOCK(ifp) rm_try_wlock(&(ifp)->if_afdata_lock) +#define IF_AFDATA_DESTROY(ifp) rm_destroy(&(ifp)->if_afdata_lock) -#define IF_AFDATA_LOCK_ASSERT(ifp) rw_assert(&(ifp)->if_afdata_lock, RA_LOCKED) -#define IF_AFDATA_RLOCK_ASSERT(ifp) rw_assert(&(ifp)->if_afdata_lock, RA_RLOCKED) -#define IF_AFDATA_WLOCK_ASSERT(ifp) rw_assert(&(ifp)->if_afdata_lock, RA_WLOCKED) -#define IF_AFDATA_UNLOCK_ASSERT(ifp) rw_assert(&(ifp)->if_afdata_lock, RA_UNLOCKED) +#define IF_AFDATA_LOCK_ASSERT(ifp) rm_assert(&(ifp)->if_afdata_lock, RA_LOCKED) +#define IF_AFDATA_RLOCK_ASSERT(ifp) rm_assert(&(ifp)->if_afdata_lock, RA_RLOCKED) +#define IF_AFDATA_WLOCK_ASSERT(ifp) rm_assert(&(ifp)->if_afdata_lock, RA_WLOCKED) +#define IF_AFDATA_UNLOCK_ASSERT(ifp) rm_assert(&(ifp)->if_afdata_lock, RA_UNLOCKED) + +void if_afdata_wlock(struct ifnet *); +void if_afdata_wunlock(struct ifnet *); /* * 72 was chosen below because it is the size of a TCP/IP Modified: projects/routing/sys/netinet/if_ether.c ============================================================================== --- projects/routing/sys/netinet/if_ether.c Mon Sep 7 07:03:40 2015 (r287530) +++ projects/routing/sys/netinet/if_ether.c Mon Sep 7 07:22:35 2015 (r287531) @@ -375,6 +375,7 @@ arpresolve_fast(struct ifnet *ifp, struc int error; struct llentry *la; struct sockaddr_in sin; + struct rm_priotracker if_afdata_tracker; if (mflags & M_BCAST) { memcpy(dst_addr, ifp->if_broadcastaddr, ifp->if_addrlen); @@ -431,6 +432,7 @@ arpresolve_full(struct ifnet *ifp, int i struct mbuf *curr = NULL; struct mbuf *next = NULL; int error, renew; + struct rm_priotracker if_afdata_tracker; if (pflags != NULL) *pflags = 0; @@ -556,6 +558,7 @@ arpresolve(struct ifnet *ifp, int is_gw, const struct sockaddr *dst, u_char *desten, uint32_t *pflags) { struct llentry *la = 0; + struct rm_priotracker if_afdata_tracker; if (pflags != NULL) *pflags = 0; @@ -707,6 +710,7 @@ in_arpinput(struct mbuf *m) struct nhop4_extended nh_ext; struct sockaddr_in sin; struct sockaddr *dst; + struct rm_priotracker if_afdata_tracker; sin.sin_len = sizeof(struct sockaddr_in); sin.sin_family = AF_INET; sin.sin_addr.s_addr = 0; Modified: projects/routing/sys/netinet/toecore.c ============================================================================== --- projects/routing/sys/netinet/toecore.c Mon Sep 7 07:03:40 2015 (r287530) +++ projects/routing/sys/netinet/toecore.c Mon Sep 7 07:22:35 2015 (r287531) @@ -36,6 +36,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include #include @@ -459,6 +461,7 @@ toe_nd6_resolve(struct ifnet *ifp, struc struct llentry *lle, *lle_tmp; struct sockaddr_in6 *sin6 = (void *)sa; int rc, flags = 0; + struct rm_priotracker if_afdata_tracker; restart: IF_AFDATA_RLOCK(ifp); Modified: projects/routing/sys/netinet6/icmp6.c ============================================================================== --- projects/routing/sys/netinet6/icmp6.c Mon Sep 7 07:03:40 2015 (r287530) +++ projects/routing/sys/netinet6/icmp6.c Mon Sep 7 07:22:35 2015 (r287531) @@ -73,6 +73,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -2505,6 +2506,7 @@ icmp6_redirect_output(struct mbuf *m0, s struct route_info ri; struct nhop6_basic nh6; int e; + struct rm_priotracker if_afdata_tracker; icmp6_errcount(ND_REDIRECT, 0); Modified: projects/routing/sys/netinet6/in6_fib.c ============================================================================== --- projects/routing/sys/netinet6/in6_fib.c Mon Sep 7 07:03:40 2015 (r287530) +++ projects/routing/sys/netinet6/in6_fib.c Mon Sep 7 07:22:35 2015 (r287531) @@ -129,6 +129,7 @@ fib6_storelladdr(struct ifnet *ifp, stru { struct llentry *ln; struct sockaddr_in6 dst_sa; + struct rm_priotracker if_afdata_tracker; if (mm_flags & M_MCAST) { ETHER_MAP_IPV6_MULTICAST(&dst, desten); Modified: projects/routing/sys/netinet6/nd6.c ============================================================================== --- projects/routing/sys/netinet6/nd6.c Mon Sep 7 07:03:40 2015 (r287530) +++ projects/routing/sys/netinet6/nd6.c Mon Sep 7 07:22:35 2015 (r287531) @@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1101,6 +1102,7 @@ nd6_is_addr_neighbor(struct sockaddr_in6 { struct llentry *lle; int rc = 0; + struct rm_priotracker if_afdata_tracker; IF_AFDATA_UNLOCK_ASSERT(ifp); if (nd6_is_new_addr_neighbor(addr, ifp)) @@ -1266,6 +1268,7 @@ nd6_nud_hint(struct rtentry *rt, struct { struct llentry *ln; struct ifnet *ifp; + struct rm_priotracker if_afdata_tracker; if ((dst6 == NULL) || (rt == NULL)) return; @@ -1353,6 +1356,7 @@ nd6_ioctl(u_long cmd, caddr_t data, stru struct nd_defrouter *dr; struct nd_prefix *pr; int i = 0, error = 0; + struct rm_priotracker if_afdata_tracker; if (ifp->if_afdata[AF_INET6] == NULL) return (EPFNOSUPPORT); @@ -1678,6 +1682,7 @@ nd6_cache_lladdr(struct ifnet *ifp, stru struct sockaddr_in6 sin6; struct mbuf *chain = NULL; int static_route = 0; + struct rm_priotracker if_afdata_tracker; IF_AFDATA_UNLOCK_ASSERT(ifp); @@ -2016,6 +2021,7 @@ nd6_output(struct ifnet *ifp, struct ifn struct sockaddr_in6 *dst, struct rtentry *rt0) { struct llentry *ln = NULL; + struct rm_priotracker if_afdata_tracker; /* discard the packet if IPv6 operation is disabled on the interface */ if ((ND_IFINFO(ifp)->flags & ND6_IFF_IFDISABLED)) { @@ -2071,6 +2077,7 @@ nd6_output_lle(struct ifnet *ifp, struct struct sockaddr_in6 *dst) { struct llentry *lle = NULL, *lle_tmp; + struct rm_priotracker if_afdata_tracker; KASSERT(m != NULL, ("NULL mbuf, nothing to send")); /* discard the packet if IPv6 operation is disabled on the interface */ @@ -2359,6 +2366,7 @@ nd6_storelladdr(struct ifnet *ifp, struc const struct sockaddr *dst, u_char *desten, uint32_t *pflags) { struct llentry *ln; + struct rm_priotracker if_afdata_tracker; if (pflags != NULL) *pflags = 0; Modified: projects/routing/sys/netinet6/nd6_nbr.c ============================================================================== --- projects/routing/sys/netinet6/nd6_nbr.c Mon Sep 7 07:03:40 2015 (r287530) +++ projects/routing/sys/netinet6/nd6_nbr.c Mon Sep 7 07:22:35 2015 (r287531) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -626,6 +627,7 @@ nd6_na_input(struct mbuf *m, int off, in union nd_opts ndopts; struct mbuf *chain = NULL; struct sockaddr_in6 sin6; + struct rm_priotracker if_afdata_tracker; char ip6bufs[INET6_ADDRSTRLEN], ip6bufd[INET6_ADDRSTRLEN]; if (ip6->ip6_hlim != 255) { Modified: projects/routing/sys/netinet6/nd6_rtr.c ============================================================================== --- projects/routing/sys/netinet6/nd6_rtr.c Mon Sep 7 07:03:40 2015 (r287530) +++ projects/routing/sys/netinet6/nd6_rtr.c Mon Sep 7 07:22:35 2015 (r287531) @@ -634,6 +634,7 @@ defrouter_select(void) { struct nd_defrouter *dr, *selected_dr = NULL, *installed_dr = NULL; struct llentry *ln = NULL; + struct rm_priotracker if_afdata_tracker; /* * Let's handle easy case (3) first: @@ -1307,6 +1308,7 @@ find_pfxlist_reachable_router(struct nd_ struct nd_pfxrouter *pfxrtr; struct llentry *ln; int canreach; + struct rm_priotracker if_afdata_tracker; LIST_FOREACH(pfxrtr, &pr->ndpr_advrtrs, pfr_entry) { IF_AFDATA_RLOCK(pfxrtr->router->ifp); Modified: projects/routing/sys/netinet6/scope6.c ============================================================================== --- projects/routing/sys/netinet6/scope6.c Mon Sep 7 07:03:40 2015 (r287530) +++ projects/routing/sys/netinet6/scope6.c Mon Sep 7 07:22:35 2015 (r287531) @@ -33,6 +33,8 @@ __FBSDID("$FreeBSD$"); #include +#include +#include #include #include #include @@ -148,11 +150,11 @@ scope6_set(struct ifnet *ifp, struct sco int error = 0; struct scope6_id *sid = NULL; - IF_AFDATA_WLOCK(ifp); + if_afdata_wlock(ifp); sid = SID(ifp); if (!sid) { /* paranoid? */ - IF_AFDATA_WUNLOCK(ifp); + if_afdata_wunlock(ifp); return (EINVAL); } @@ -175,7 +177,7 @@ scope6_set(struct ifnet *ifp, struct sco */ if (i == IPV6_ADDR_SCOPE_INTFACELOCAL && idlist->s6id_list[i] != ifp->if_index) { - IF_AFDATA_WUNLOCK(ifp); + if_afdata_wunlock(ifp); return (EINVAL); } @@ -187,7 +189,7 @@ scope6_set(struct ifnet *ifp, struct sco * IDs, but we check the consistency for * safety in later use. */ - IF_AFDATA_WUNLOCK(ifp); + if_afdata_wunlock(ifp); return (EINVAL); } @@ -199,7 +201,7 @@ scope6_set(struct ifnet *ifp, struct sco sid->s6id_list[i] = idlist->s6id_list[i]; } } - IF_AFDATA_WUNLOCK(ifp); + if_afdata_wunlock(ifp); return (error); } @@ -208,6 +210,7 @@ static int scope6_get(struct ifnet *ifp, struct scope6_id *idlist) { struct scope6_id *sid; + struct rm_priotracker if_afdata_tracker; /* We only need to lock the interface's afdata for SID() to work. */ IF_AFDATA_RLOCK(ifp); @@ -410,6 +413,7 @@ in6_setscope(struct in6_addr *in6, struc int scope; u_int32_t zoneid = 0; struct scope6_id *sid; + struct rm_priotracker if_afdata_tracker; /* * special case: the loopback address can only belong to a loopback From owner-svn-src-projects@freebsd.org Mon Sep 7 13:02:26 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C7B99CB9EA for ; Mon, 7 Sep 2015 13:02:26 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4D29E1642; Mon, 7 Sep 2015 13:02:26 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t87D2Q3p043599; Mon, 7 Sep 2015 13:02:26 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t87D2QAg043598; Mon, 7 Sep 2015 13:02:26 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201509071302.t87D2QAg043598@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 7 Sep 2015 13:02:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287533 - projects/ifnet/sys/net X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Sep 2015 13:02:26 -0000 Author: glebius Date: Mon Sep 7 13:02:25 2015 New Revision: 287533 URL: https://svnweb.freebsd.org/changeset/base/287533 Log: Sort if.h to reduce ifdef mess: - POSIX declarations go first, then go BSD_VISIBLE ones: userland ones first, kernel ones the last. - Move IFCOUNTER enum into userland part, we plan to provide API to query particular counters. - Use C11 anonymous unions in if_data, to remove ifdefs. Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/net/if.h Modified: projects/ifnet/sys/net/if.h ============================================================================== --- projects/ifnet/sys/net/if.h Mon Sep 7 10:13:14 2015 (r287532) +++ projects/ifnet/sys/net/if.h Mon Sep 7 13:02:25 2015 (r287533) @@ -35,6 +35,24 @@ #include +/* + * Length of interface external name, including terminating '\0'. + * Note: this is the same size as a generic device's external name. + */ +#define IF_NAMESIZE 16 + +struct if_nameindex { + unsigned int if_index; /* 1, 2, ... */ + char *if_name; /* null terminated name: "le0", ... */ +}; + +__BEGIN_DECLS +void if_freenameindex(struct if_nameindex *); +char *if_indextoname(unsigned int, char *); +struct if_nameindex *if_nameindex(void); +unsigned int if_nametoindex(const char *); +__END_DECLS + #if __BSD_VISIBLE /* * does not depend on on most other systems. This @@ -45,23 +63,13 @@ #include #include #endif -#endif -/* - * Length of interface external name, including terminating '\0'. - * Note: this is the same size as a generic device's external name. - */ -#define IF_NAMESIZE 16 -#if __BSD_VISIBLE #define IFNAMSIZ IF_NAMESIZE #define IF_MAXUNIT 0x7fff /* historical value */ -#endif -#if __BSD_VISIBLE /* * Structure used to query names of interface cloners. */ - struct if_clonereq { int ifcr_total; /* total cloners (out) */ int ifcr_count; /* room for this many in user buffer */ @@ -101,21 +109,19 @@ struct if_data { /* Unions are here to make sizes MI. */ union { /* uptime at attach or stat reset */ - time_t tt; + time_t ifi_epoch; uint64_t ph; - } __ifi_epoch; -#define ifi_epoch __ifi_epoch.tt + }; union { /* time of last administrative change */ - struct timeval tv; + struct timeval ifi_lastchange; struct { uint64_t ph1; uint64_t ph2; - } ph; - } __ifi_lastchange; -#define ifi_lastchange __ifi_lastchange.tv + }; + }; }; -/*- +/* * Interface flags are of two types: network stack owned flags, and driver * owned flags. Historically, these values were stored in the same ifnet * flags field, but with the advent of fine-grained locking, they have been @@ -521,21 +527,21 @@ struct ifi2creq { uint8_t data[8]; /* read buffer */ }; -#endif /* __BSD_VISIBLE */ - -#ifndef _KERNEL -struct if_nameindex { - unsigned int if_index; /* 1, 2, ... */ - char *if_name; /* null terminated name: "le0", ... */ -}; - -__BEGIN_DECLS -void if_freenameindex(struct if_nameindex *); -char *if_indextoname(unsigned int, char *); -struct if_nameindex *if_nameindex(void); -unsigned int if_nametoindex(const char *); -__END_DECLS -#endif +typedef enum { + IFCOUNTER_IPACKETS = 0, + IFCOUNTER_IERRORS, + IFCOUNTER_OPACKETS, + IFCOUNTER_OERRORS, + IFCOUNTER_COLLISIONS, + IFCOUNTER_IBYTES, + IFCOUNTER_OBYTES, + IFCOUNTER_IMCASTS, + IFCOUNTER_OMCASTS, + IFCOUNTER_IQDROPS, + IFCOUNTER_OQDROPS, + IFCOUNTER_NOPROTO, + IFCOUNTERS /* Array size (used internally). */ +} ift_counter; #ifdef _KERNEL #include @@ -557,22 +563,6 @@ MALLOC_DECLARE(M_IFMADDR); #endif typedef enum { - IFCOUNTER_IPACKETS = 0, - IFCOUNTER_IERRORS, - IFCOUNTER_OPACKETS, - IFCOUNTER_OERRORS, - IFCOUNTER_COLLISIONS, - IFCOUNTER_IBYTES, - IFCOUNTER_OBYTES, - IFCOUNTER_IMCASTS, - IFCOUNTER_OMCASTS, - IFCOUNTER_IQDROPS, - IFCOUNTER_OQDROPS, - IFCOUNTER_NOPROTO, - IFCOUNTERS /* Array size (used internally). */ -} ift_counter; - -typedef enum { IF_NO_SOFTC = 0, IF_DRIVER_SOFTC, IF_LLADDR, @@ -799,4 +789,5 @@ if_name(if_t ifp) return ((char *)(if_getsoftc(ifp, IF_NAME))); } #endif /* _KERNEL */ +#endif /* __BSD_VISIBLE_ */ #endif /* !_NET_IF_H_ */ From owner-svn-src-projects@freebsd.org Mon Sep 7 13:08:35 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ACB929CBD03 for ; Mon, 7 Sep 2015 13:08:35 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebius.int.ru", Issuer "cell.glebius.int.ru" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 339541A69; Mon, 7 Sep 2015 13:08:34 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.15.2/8.15.2) with ESMTPS id t87D8VW0043793 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 7 Sep 2015 16:08:31 +0300 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.15.2/8.15.2/Submit) id t87D8V5v043792; Mon, 7 Sep 2015 16:08:31 +0300 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Mon, 7 Sep 2015 16:08:31 +0300 From: Gleb Smirnoff To: "Alexander V. Chernikov" Cc: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r287531 - in projects/routing/sys: net netinet netinet6 Message-ID: <20150907130831.GO1023@FreeBSD.org> References: <201509070722.t877MZKL004963@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201509070722.t877MZKL004963@repo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Sep 2015 13:08:35 -0000 On Mon, Sep 07, 2015 at 07:22:35AM +0000, Alexander V. Chernikov wrote: A> Author: melifaro A> Date: Mon Sep 7 07:22:35 2015 A> New Revision: 287531 A> URL: https://svnweb.freebsd.org/changeset/base/287531 A> A> Log: A> Convert AFDATA lock to rmlock. This doesn't look related to the branch initial targer: routing. And quite conflicts with what's going on in projects/ifnet. -- Totus tuus, Glebius. From owner-svn-src-projects@freebsd.org Wed Sep 9 03:05:26 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6DE5CA0017B for ; Wed, 9 Sep 2015 03:05:26 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5A4661371; Wed, 9 Sep 2015 03:05:26 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t8935QHL044001; Wed, 9 Sep 2015 03:05:26 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t8935GtA043963; Wed, 9 Sep 2015 03:05:16 GMT (envelope-from np@FreeBSD.org) Message-Id: <201509090305.t8935GtA043963@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Wed, 9 Sep 2015 03:05:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287585 - in projects/cxl_iscsi: . bin/df bin/ls bin/pkill bin/pkill/tests bin/ps bin/rm bin/setfacl bin/sh bin/sh/tests/builtins bin/sh/tests/errors bin/sh/tests/parser cddl/contrib/op... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Sep 2015 03:05:26 -0000 Author: np Date: Wed Sep 9 03:05:13 2015 New Revision: 287585 URL: https://svnweb.freebsd.org/changeset/base/287585 Log: Merge r286744-r287584 from head. Added: projects/cxl_iscsi/bin/sh/tests/builtins/case20.0 - copied unchanged from r287584, head/bin/sh/tests/builtins/case20.0 projects/cxl_iscsi/bin/sh/tests/builtins/read8.0 - copied unchanged from r287584, head/bin/sh/tests/builtins/read8.0 projects/cxl_iscsi/bin/sh/tests/builtins/read9.0 - copied unchanged from r287584, head/bin/sh/tests/builtins/read9.0 projects/cxl_iscsi/bin/sh/tests/errors/bad-parm-exp7.0 - copied unchanged from r287584, head/bin/sh/tests/errors/bad-parm-exp7.0 projects/cxl_iscsi/bin/sh/tests/errors/bad-parm-exp8.0 - copied unchanged from r287584, head/bin/sh/tests/errors/bad-parm-exp8.0 projects/cxl_iscsi/bin/sh/tests/parser/dollar-quote12.0 - copied unchanged from r287584, head/bin/sh/tests/parser/dollar-quote12.0 projects/cxl_iscsi/bin/sh/tests/parser/dollar-quote13.0 - copied unchanged from r287584, head/bin/sh/tests/parser/dollar-quote13.0 projects/cxl_iscsi/bin/sh/tests/parser/heredoc13.0 - copied unchanged from r287584, head/bin/sh/tests/parser/heredoc13.0 projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_decls.h - copied unchanged from r287584, head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_decls.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/pages.h - copied unchanged from r287584, head/contrib/jemalloc/include/jemalloc/internal/pages.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/valgrind.h - copied unchanged from r287584, head/contrib/jemalloc/include/jemalloc/internal/valgrind.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/jemalloc_typedefs.h - copied unchanged from r287584, head/contrib/jemalloc/include/jemalloc/jemalloc_typedefs.h projects/cxl_iscsi/contrib/jemalloc/src/pages.c - copied unchanged from r287584, head/contrib/jemalloc/src/pages.c projects/cxl_iscsi/contrib/libxo/INSTALL.md - copied unchanged from r287584, head/contrib/libxo/INSTALL.md projects/cxl_iscsi/contrib/libxo/encoder/ - copied from r287584, head/contrib/libxo/encoder/ projects/cxl_iscsi/contrib/libxo/libxo/add.man - copied unchanged from r287584, head/contrib/libxo/libxo/add.man projects/cxl_iscsi/contrib/libxo/libxo/add.man.in - copied unchanged from r287584, head/contrib/libxo/libxo/add.man.in projects/cxl_iscsi/contrib/libxo/libxo/xo_buf.h - copied unchanged from r287584, head/contrib/libxo/libxo/xo_buf.h projects/cxl_iscsi/contrib/libxo/libxo/xo_config.h - copied unchanged from r287584, head/contrib/libxo/libxo/xo_config.h projects/cxl_iscsi/contrib/libxo/libxo/xo_emit_err.3 - copied unchanged from r287584, head/contrib/libxo/libxo/xo_emit_err.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_encoder.c - copied unchanged from r287584, head/contrib/libxo/libxo/xo_encoder.c projects/cxl_iscsi/contrib/libxo/libxo/xo_encoder.h - copied unchanged from r287584, head/contrib/libxo/libxo/xo_encoder.h projects/cxl_iscsi/contrib/libxo/libxo/xo_humanize.h - copied unchanged from r287584, head/contrib/libxo/libxo/xo_humanize.h projects/cxl_iscsi/contrib/libxo/libxo/xo_message.3 - copied unchanged from r287584, head/contrib/libxo/libxo/xo_message.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_set_syslog_enterprise_id.3 - copied unchanged from r287584, head/contrib/libxo/libxo/xo_set_syslog_enterprise_id.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_syslog.3 - copied unchanged from r287584, head/contrib/libxo/libxo/xo_syslog.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_syslog.c - copied unchanged from r287584, head/contrib/libxo/libxo/xo_syslog.c projects/cxl_iscsi/contrib/libxo/libxo/xo_wcwidth.h - copied unchanged from r287584, head/contrib/libxo/libxo/xo_wcwidth.h projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_01.E.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_01.E.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_01.E.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_01.E.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_02.E.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_02.E.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_02.E.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_02.E.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_03.E.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_03.E.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_03.E.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_03.E.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_04.E.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_04.E.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_04.E.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_04.E.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_05.E.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_05.E.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_05.E.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_05.E.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_06.E.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_06.E.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_06.E.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_06.E.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_07.E.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_07.E.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_07.E.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_07.E.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.E.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_08.E.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.E.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_08.E.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_09.E.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_09.E.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_09.E.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_09.E.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_10.E.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_10.E.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_10.E.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_10.E.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.E.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.E.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.E.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.E.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.H.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.H.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.H.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.H.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.HIPx.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.HIPx.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.HIPx.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.HIPx.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.HP.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.HP.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.HP.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.HP.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.J.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.J.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.J.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.J.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.JP.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.JP.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.JP.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.JP.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.T.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.T.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.T.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.T.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.X.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.X.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.X.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.X.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.XP.err - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.XP.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_11.XP.out - copied unchanged from r287584, head/contrib/libxo/tests/core/saved/test_11.XP.out projects/cxl_iscsi/contrib/libxo/tests/core/test_11.c - copied unchanged from r287584, head/contrib/libxo/tests/core/test_11.c projects/cxl_iscsi/contrib/libxo/tests/gettext/ - copied from r287584, head/contrib/libxo/tests/gettext/ projects/cxl_iscsi/contrib/libxo/xopo/ - copied from r287584, head/contrib/libxo/xopo/ projects/cxl_iscsi/lib/libc/aarch64/gen/infinity.c - copied unchanged from r287584, head/lib/libc/aarch64/gen/infinity.c projects/cxl_iscsi/lib/libc/secure/ - copied from r287584, head/lib/libc/secure/ projects/cxl_iscsi/lib/libkvm/kvm_minidump_aarch64.c - copied unchanged from r287584, head/lib/libkvm/kvm_minidump_aarch64.c projects/cxl_iscsi/lib/libnv/tests/nv_array_tests.cc - copied unchanged from r287584, head/lib/libnv/tests/nv_array_tests.cc projects/cxl_iscsi/share/doc/papers/bsdreferences.bib - copied unchanged from r287584, head/share/doc/papers/bsdreferences.bib projects/cxl_iscsi/share/man/man4/ioat.4 - copied unchanged from r287584, head/share/man/man4/ioat.4 projects/cxl_iscsi/share/man/man4/ow.4 - copied unchanged from r287584, head/share/man/man4/ow.4 projects/cxl_iscsi/share/man/man4/ow_temp.4 - copied unchanged from r287584, head/share/man/man4/ow_temp.4 projects/cxl_iscsi/share/man/man4/owc.4 - copied unchanged from r287584, head/share/man/man4/owc.4 projects/cxl_iscsi/share/man/man4/rccgpio.4 - copied unchanged from r287584, head/share/man/man4/rccgpio.4 projects/cxl_iscsi/share/man/man9/owll.9 - copied unchanged from r287584, head/share/man/man9/owll.9 projects/cxl_iscsi/share/man/man9/own.9 - copied unchanged from r287584, head/share/man/man9/own.9 projects/cxl_iscsi/share/mk/bsd.stand.mk - copied unchanged from r287584, head/share/mk/bsd.stand.mk projects/cxl_iscsi/sys/arm/conf/A20 - copied unchanged from r287584, head/sys/arm/conf/A20 projects/cxl_iscsi/sys/arm64/include/minidump.h - copied unchanged from r287584, head/sys/arm64/include/minidump.h projects/cxl_iscsi/sys/boot/efi/include/efipciio.h - copied unchanged from r287584, head/sys/boot/efi/include/efipciio.h projects/cxl_iscsi/sys/boot/efi/include/efiuga.h - copied unchanged from r287584, head/sys/boot/efi/include/efiuga.h projects/cxl_iscsi/sys/cam/ctl/ctl_frontend_ioctl.c - copied unchanged from r287584, head/sys/cam/ctl/ctl_frontend_ioctl.c projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/multilist.c - copied unchanged from r287584, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/multilist.c projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/multilist.h - copied unchanged from r287584, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/multilist.h projects/cxl_iscsi/sys/dev/ioat/ - copied from r287584, head/sys/dev/ioat/ projects/cxl_iscsi/sys/dev/mmc/host/dwmmc_hisi.c - copied unchanged from r287584, head/sys/dev/mmc/host/dwmmc_hisi.c projects/cxl_iscsi/sys/dev/mmc/host/dwmmc_reg.h - copied unchanged from r287584, head/sys/dev/mmc/host/dwmmc_reg.h projects/cxl_iscsi/sys/dev/mmc/host/dwmmc_var.h - copied unchanged from r287584, head/sys/dev/mmc/host/dwmmc_var.h projects/cxl_iscsi/sys/dev/ow/ - copied from r287584, head/sys/dev/ow/ projects/cxl_iscsi/sys/dev/random/other_algorithm.c - copied unchanged from r287584, head/sys/dev/random/other_algorithm.c projects/cxl_iscsi/sys/dev/random/other_algorithm.h - copied unchanged from r287584, head/sys/dev/random/other_algorithm.h projects/cxl_iscsi/sys/dev/random/random_infra.c - copied unchanged from r287584, head/sys/dev/random/random_infra.c projects/cxl_iscsi/sys/dev/rccgpio/ - copied from r287584, head/sys/dev/rccgpio/ projects/cxl_iscsi/sys/dev/usb/controller/dwc_otg_hisi.c - copied unchanged from r287584, head/sys/dev/usb/controller/dwc_otg_hisi.c projects/cxl_iscsi/sys/modules/ioat/ - copied from r287584, head/sys/modules/ioat/ projects/cxl_iscsi/sys/modules/ow/ - copied from r287584, head/sys/modules/ow/ projects/cxl_iscsi/sys/modules/random_fortuna/ - copied from r287584, head/sys/modules/random_fortuna/ projects/cxl_iscsi/sys/modules/random_other/ - copied from r287584, head/sys/modules/random_other/ projects/cxl_iscsi/sys/modules/random_yarrow/ - copied from r287584, head/sys/modules/random_yarrow/ projects/cxl_iscsi/sys/modules/rccgpio/ - copied from r287584, head/sys/modules/rccgpio/ projects/cxl_iscsi/sys/net/altq/altq_codel.c - copied unchanged from r287584, head/sys/net/altq/altq_codel.c projects/cxl_iscsi/sys/net/altq/altq_codel.h - copied unchanged from r287584, head/sys/net/altq/altq_codel.h projects/cxl_iscsi/sys/pc98/include/ofw_machdep.h - copied unchanged from r287584, head/sys/pc98/include/ofw_machdep.h projects/cxl_iscsi/sys/powerpc/mikrotik/ - copied from r287584, head/sys/powerpc/mikrotik/ projects/cxl_iscsi/tools/tools/ioat/ - copied from r287584, head/tools/tools/ioat/ projects/cxl_iscsi/usr.bin/netstat/nlist_symbols - copied unchanged from r287584, head/usr.bin/netstat/nlist_symbols projects/cxl_iscsi/usr.sbin/fstyp/tests/ - copied from r287584, head/usr.sbin/fstyp/tests/ projects/cxl_iscsi/usr.sbin/sesutil/ - copied from r287584, head/usr.sbin/sesutil/ projects/cxl_iscsi/usr.sbin/ypserv/common/ - copied from r287584, head/usr.sbin/ypserv/common/ Deleted: projects/cxl_iscsi/contrib/libxo/libxo/xoconfig.h projects/cxl_iscsi/contrib/libxo/libxo/xoconfig.h.in projects/cxl_iscsi/contrib/libxo/libxo/xoversion.h projects/cxl_iscsi/contrib/libxo/libxo/xoversion.h.in projects/cxl_iscsi/lib/libc/sys/stack_protector.c projects/cxl_iscsi/lib/libc/sys/stack_protector_compat.c projects/cxl_iscsi/sys/arm/conf/CUBIEBOARD2 projects/cxl_iscsi/sys/cam/ctl/ctl_backend_block.h projects/cxl_iscsi/sys/cam/ctl/ctl_frontend_internal.c projects/cxl_iscsi/sys/cam/ctl/ctl_frontend_internal.h projects/cxl_iscsi/sys/dev/mmc/host/dwmmc.h projects/cxl_iscsi/sys/dev/random/randomdev_none.c projects/cxl_iscsi/sys/mips/rmi/dev/xlr/rge.c projects/cxl_iscsi/sys/mips/rmi/dev/xlr/rge.h projects/cxl_iscsi/tools/build/options/WITHOUT_SYSINSTALL Modified: projects/cxl_iscsi/Makefile.inc1 projects/cxl_iscsi/ObsoleteFiles.inc projects/cxl_iscsi/UPDATING projects/cxl_iscsi/bin/df/df.c projects/cxl_iscsi/bin/ls/Makefile projects/cxl_iscsi/bin/pkill/Makefile projects/cxl_iscsi/bin/pkill/Makefile.depend projects/cxl_iscsi/bin/pkill/pkill.1 projects/cxl_iscsi/bin/pkill/pkill.c projects/cxl_iscsi/bin/pkill/tests/pgrep-j_test.sh projects/cxl_iscsi/bin/pkill/tests/pkill-j_test.sh projects/cxl_iscsi/bin/ps/Makefile projects/cxl_iscsi/bin/rm/rm.c projects/cxl_iscsi/bin/setfacl/setfacl.1 projects/cxl_iscsi/bin/sh/expand.c projects/cxl_iscsi/bin/sh/miscbltin.c projects/cxl_iscsi/bin/sh/options.c projects/cxl_iscsi/bin/sh/options.h projects/cxl_iscsi/bin/sh/parser.c projects/cxl_iscsi/bin/sh/sh.1 projects/cxl_iscsi/bin/sh/tests/builtins/Makefile projects/cxl_iscsi/bin/sh/tests/errors/Makefile projects/cxl_iscsi/bin/sh/tests/parser/Makefile projects/cxl_iscsi/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h projects/cxl_iscsi/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c projects/cxl_iscsi/cddl/lib/Makefile projects/cxl_iscsi/contrib/compiler-rt/lib/builtins/floatditf.c projects/cxl_iscsi/contrib/compiler-rt/lib/builtins/floatunditf.c projects/cxl_iscsi/contrib/compiler-rt/lib/builtins/multc3.c projects/cxl_iscsi/contrib/expat/lib/xmlparse.c projects/cxl_iscsi/contrib/file/ChangeLog projects/cxl_iscsi/contrib/file/configure projects/cxl_iscsi/contrib/file/configure.ac projects/cxl_iscsi/contrib/file/magic/Magdir/database projects/cxl_iscsi/contrib/file/magic/Magdir/elf projects/cxl_iscsi/contrib/file/magic/Magdir/fortran projects/cxl_iscsi/contrib/file/magic/Magdir/mail.news projects/cxl_iscsi/contrib/file/magic/Magdir/make projects/cxl_iscsi/contrib/file/magic/Magdir/map projects/cxl_iscsi/contrib/file/src/file.c projects/cxl_iscsi/contrib/file/src/funcs.c projects/cxl_iscsi/contrib/file/src/readelf.c projects/cxl_iscsi/contrib/hyperv/tools/hv_kvp_daemon.c projects/cxl_iscsi/contrib/jemalloc/COPYING projects/cxl_iscsi/contrib/jemalloc/ChangeLog projects/cxl_iscsi/contrib/jemalloc/FREEBSD-Xlist projects/cxl_iscsi/contrib/jemalloc/FREEBSD-diffs projects/cxl_iscsi/contrib/jemalloc/FREEBSD-upgrade projects/cxl_iscsi/contrib/jemalloc/VERSION projects/cxl_iscsi/contrib/jemalloc/doc/jemalloc.3 projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/arena.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/atomic.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/base.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/bitmap.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/chunk.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/chunk_dss.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/chunk_mmap.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/ckh.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/ctl.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/extent.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/hash.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/huge.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_defs.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_macros.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/mutex.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/private_namespace.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/prng.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/prof.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/public_namespace.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/ql.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/qr.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/quarantine.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/rb.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/rtree.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/size_classes.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/stats.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/tcache.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/tsd.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/internal/util.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/jemalloc.h projects/cxl_iscsi/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h projects/cxl_iscsi/contrib/jemalloc/src/arena.c projects/cxl_iscsi/contrib/jemalloc/src/base.c projects/cxl_iscsi/contrib/jemalloc/src/bitmap.c projects/cxl_iscsi/contrib/jemalloc/src/chunk.c projects/cxl_iscsi/contrib/jemalloc/src/chunk_dss.c projects/cxl_iscsi/contrib/jemalloc/src/chunk_mmap.c projects/cxl_iscsi/contrib/jemalloc/src/ckh.c projects/cxl_iscsi/contrib/jemalloc/src/ctl.c projects/cxl_iscsi/contrib/jemalloc/src/extent.c projects/cxl_iscsi/contrib/jemalloc/src/huge.c projects/cxl_iscsi/contrib/jemalloc/src/jemalloc.c projects/cxl_iscsi/contrib/jemalloc/src/mutex.c projects/cxl_iscsi/contrib/jemalloc/src/prof.c projects/cxl_iscsi/contrib/jemalloc/src/quarantine.c projects/cxl_iscsi/contrib/jemalloc/src/rtree.c projects/cxl_iscsi/contrib/jemalloc/src/stats.c projects/cxl_iscsi/contrib/jemalloc/src/tcache.c projects/cxl_iscsi/contrib/jemalloc/src/tsd.c projects/cxl_iscsi/contrib/jemalloc/src/util.c projects/cxl_iscsi/contrib/libxo/.gitignore projects/cxl_iscsi/contrib/libxo/.travis.yml projects/cxl_iscsi/contrib/libxo/Makefile.am projects/cxl_iscsi/contrib/libxo/bin/Zaliases projects/cxl_iscsi/contrib/libxo/bin/setup.sh projects/cxl_iscsi/contrib/libxo/configure.ac projects/cxl_iscsi/contrib/libxo/doc/Makefile.am projects/cxl_iscsi/contrib/libxo/doc/libxo.txt projects/cxl_iscsi/contrib/libxo/libxo/Makefile.am projects/cxl_iscsi/contrib/libxo/libxo/libxo.3 projects/cxl_iscsi/contrib/libxo/libxo/libxo.c projects/cxl_iscsi/contrib/libxo/libxo/xo.h projects/cxl_iscsi/contrib/libxo/libxo/xo_attr.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_create.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_emit.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_err.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_error.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_finish.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_flush.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_format.5 projects/cxl_iscsi/contrib/libxo/libxo/xo_no_setlocale.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_open_container.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_open_list.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_open_marker.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_parse_args.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_set_allocator.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_set_flags.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_set_info.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_set_options.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_set_style.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_set_version.3 projects/cxl_iscsi/contrib/libxo/libxo/xo_set_writer.3 projects/cxl_iscsi/contrib/libxo/tests/Makefile.am projects/cxl_iscsi/contrib/libxo/tests/core/Makefile.am projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_01.H.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_01.HIPx.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_01.HP.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_01.J.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_01.JP.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_01.T.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_01.X.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_01.XP.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_02.H.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_02.HIPx.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_02.HP.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_02.J.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_02.JP.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_02.T.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_02.X.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_02.XP.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_05.H.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_05.HIPx.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_05.HP.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_05.J.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_05.JP.out (contents, props changed) projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_05.T.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_05.X.out (contents, props changed) projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_05.XP.out (contents, props changed) projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.H.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.HIPx.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.HIPx.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.HP.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.J.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.J.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.JP.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.JP.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.T.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.X.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.X.out projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.XP.err projects/cxl_iscsi/contrib/libxo/tests/core/saved/test_08.XP.out projects/cxl_iscsi/contrib/libxo/tests/core/test_01.c projects/cxl_iscsi/contrib/libxo/tests/core/test_02.c projects/cxl_iscsi/contrib/libxo/tests/core/test_05.c projects/cxl_iscsi/contrib/libxo/tests/core/test_08.c projects/cxl_iscsi/contrib/libxo/xo/Makefile.am projects/cxl_iscsi/contrib/libxo/xo/xo.1 projects/cxl_iscsi/contrib/libxo/xo/xo.c projects/cxl_iscsi/contrib/libxo/xohtml/Makefile.am projects/cxl_iscsi/contrib/libxo/xohtml/xohtml.1 projects/cxl_iscsi/contrib/libxo/xolint/Makefile.am projects/cxl_iscsi/contrib/libxo/xolint/xolint.1 projects/cxl_iscsi/contrib/libxo/xolint/xolint.pl projects/cxl_iscsi/contrib/llvm/tools/lldb/FREEBSD-Xlist projects/cxl_iscsi/contrib/ncurses/ncurses/base/MKlib_gen.sh projects/cxl_iscsi/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_spawnattr.c projects/cxl_iscsi/contrib/subversion/subversion/svn/util.c projects/cxl_iscsi/contrib/tzdata/africa projects/cxl_iscsi/contrib/tzdata/asia projects/cxl_iscsi/contrib/tzdata/europe projects/cxl_iscsi/contrib/tzdata/leap-seconds.list projects/cxl_iscsi/contrib/tzdata/leapseconds projects/cxl_iscsi/contrib/tzdata/northamerica projects/cxl_iscsi/contrib/tzdata/southamerica projects/cxl_iscsi/contrib/tzdata/zone.tab projects/cxl_iscsi/contrib/tzdata/zone1970.tab projects/cxl_iscsi/crypto/openssh/monitor.c projects/cxl_iscsi/crypto/openssh/monitor_wrap.c projects/cxl_iscsi/crypto/openssh/mux.c projects/cxl_iscsi/etc/devd.conf projects/cxl_iscsi/etc/mtree/BSD.tests.dist projects/cxl_iscsi/etc/mtree/BSD.usr.dist projects/cxl_iscsi/etc/network.subr projects/cxl_iscsi/etc/pccard_ether projects/cxl_iscsi/etc/rc.d/jail projects/cxl_iscsi/etc/rc.d/netif projects/cxl_iscsi/games/fortune/datfiles/freebsd-tips projects/cxl_iscsi/gnu/usr.bin/binutils/Makefile projects/cxl_iscsi/include/malloc_np.h projects/cxl_iscsi/kerberos5/Makefile.inc projects/cxl_iscsi/kerberos5/lib/libhdb/Makefile projects/cxl_iscsi/kerberos5/libexec/digest-service/Makefile projects/cxl_iscsi/kerberos5/libexec/kdc/Makefile projects/cxl_iscsi/kerberos5/usr.bin/kpasswd/Makefile projects/cxl_iscsi/kerberos5/usr.sbin/iprop-log/Makefile projects/cxl_iscsi/lib/libc/Makefile projects/cxl_iscsi/lib/libc/aarch64/Symbol.map projects/cxl_iscsi/lib/libc/aarch64/gen/Makefile.inc projects/cxl_iscsi/lib/libc/amd64/gen/setjmp.S projects/cxl_iscsi/lib/libc/amd64/gen/sigsetjmp.S projects/cxl_iscsi/lib/libc/compat-43/sigcompat.c projects/cxl_iscsi/lib/libc/db/btree/bt_open.c projects/cxl_iscsi/lib/libc/db/hash/hash_page.c projects/cxl_iscsi/lib/libc/gen/daemon.c projects/cxl_iscsi/lib/libc/gen/devname.c projects/cxl_iscsi/lib/libc/gen/posix_spawn.c projects/cxl_iscsi/lib/libc/gen/readpassphrase.c projects/cxl_iscsi/lib/libc/gen/setmode.c projects/cxl_iscsi/lib/libc/gen/siginterrupt.c projects/cxl_iscsi/lib/libc/gen/signal.c projects/cxl_iscsi/lib/libc/gen/tls.c projects/cxl_iscsi/lib/libc/gen/wordexp.3 projects/cxl_iscsi/lib/libc/gen/wordexp.c projects/cxl_iscsi/lib/libc/i386/gen/setjmp.S projects/cxl_iscsi/lib/libc/i386/gen/sigsetjmp.S projects/cxl_iscsi/lib/libc/include/libc_private.h projects/cxl_iscsi/lib/libc/locale/utf8.c projects/cxl_iscsi/lib/libc/net/getnameinfo.c projects/cxl_iscsi/lib/libc/net/rcmd.c projects/cxl_iscsi/lib/libc/net/rcmdsh.c projects/cxl_iscsi/lib/libc/posix1e/acl_add_flag_np.3 projects/cxl_iscsi/lib/libc/posix1e/acl_entry.c projects/cxl_iscsi/lib/libc/posix1e/acl_flag.c projects/cxl_iscsi/lib/libc/posix1e/acl_init.c projects/cxl_iscsi/lib/libc/posix1e/acl_strip.c projects/cxl_iscsi/lib/libc/posix1e/acl_support_nfs4.c projects/cxl_iscsi/lib/libc/rpc/auth_des.c projects/cxl_iscsi/lib/libc/rpc/auth_none.c projects/cxl_iscsi/lib/libc/rpc/auth_time.c projects/cxl_iscsi/lib/libc/rpc/clnt_bcast.c projects/cxl_iscsi/lib/libc/rpc/clnt_dg.c projects/cxl_iscsi/lib/libc/rpc/crypt_client.c projects/cxl_iscsi/lib/libc/rpc/des_crypt.c projects/cxl_iscsi/lib/libc/rpc/des_soft.c projects/cxl_iscsi/lib/libc/rpc/getpublickey.c projects/cxl_iscsi/lib/libc/rpc/key_call.c projects/cxl_iscsi/lib/libc/rpc/rpc_prot.c projects/cxl_iscsi/lib/libc/rpc/rpc_soc.c projects/cxl_iscsi/lib/libc/rpc/rpcb_clnt.c projects/cxl_iscsi/lib/libc/rpc/rpcdname.c projects/cxl_iscsi/lib/libc/rpc/rtime.c projects/cxl_iscsi/lib/libc/rpc/svc_auth.c projects/cxl_iscsi/lib/libc/rpc/svc_auth_des.c projects/cxl_iscsi/lib/libc/rpc/svc_dg.c projects/cxl_iscsi/lib/libc/rpc/svc_vc.c projects/cxl_iscsi/lib/libc/stdio/tmpfile.c projects/cxl_iscsi/lib/libc/stdlib/abort.c projects/cxl_iscsi/lib/libc/stdlib/jemalloc/Makefile.inc projects/cxl_iscsi/lib/libc/stdlib/jemalloc/Symbol.map projects/cxl_iscsi/lib/libc/stdlib/system.c projects/cxl_iscsi/lib/libc/string/bcopy.3 projects/cxl_iscsi/lib/libc/string/bzero.3 projects/cxl_iscsi/lib/libc/string/strndup.c projects/cxl_iscsi/lib/libc/sys/Makefile.inc projects/cxl_iscsi/lib/libc/sys/Symbol.map projects/cxl_iscsi/lib/libc/sys/getrlimit.2 projects/cxl_iscsi/lib/libc/sys/procctl.2 projects/cxl_iscsi/lib/libc/sys/sigaction.c projects/cxl_iscsi/lib/libc/sys/sigprocmask.c projects/cxl_iscsi/lib/libc/sys/sigsuspend.c projects/cxl_iscsi/lib/libc/tests/gen/posix_spawn/Makefile projects/cxl_iscsi/lib/libgeom/geom_xml2tree.c projects/cxl_iscsi/lib/libkvm/kvm_aarch64.c projects/cxl_iscsi/lib/libkvm/kvm_private.h projects/cxl_iscsi/lib/libmagic/config.h projects/cxl_iscsi/lib/libnv/tests/Makefile projects/cxl_iscsi/lib/libproc/proc_bkpt.c projects/cxl_iscsi/lib/libprocstat/libprocstat.c projects/cxl_iscsi/lib/libstand/Makefile projects/cxl_iscsi/lib/libthr/thread/thr_once.c projects/cxl_iscsi/lib/libusb/Makefile projects/cxl_iscsi/lib/libutil/kinfo_getfile.c projects/cxl_iscsi/lib/libutil/tests/Makefile projects/cxl_iscsi/lib/libxo/Makefile projects/cxl_iscsi/lib/libz/inflate.c projects/cxl_iscsi/libexec/ftpd/Makefile projects/cxl_iscsi/libexec/rtld-elf/aarch64/reloc.c projects/cxl_iscsi/libexec/rtld-elf/aarch64/rtld_machdep.h projects/cxl_iscsi/libexec/rtld-elf/rtld.c projects/cxl_iscsi/libexec/talkd/table.c projects/cxl_iscsi/release/Makefile.vagrant projects/cxl_iscsi/release/doc/en_US.ISO8859-1/errata/article.xml projects/cxl_iscsi/sbin/bsdlabel/bsdlabel.8 projects/cxl_iscsi/sbin/camcontrol/camcontrol.8 projects/cxl_iscsi/sbin/camcontrol/camcontrol.c projects/cxl_iscsi/sbin/camcontrol/camcontrol.h projects/cxl_iscsi/sbin/camcontrol/fwdownload.c projects/cxl_iscsi/sbin/camcontrol/progress.c projects/cxl_iscsi/sbin/dumpfs/dumpfs.8 projects/cxl_iscsi/sbin/fdisk/fdisk.8 projects/cxl_iscsi/sbin/ffsinfo/ffsinfo.8 projects/cxl_iscsi/sbin/ipfw/ipfw2.c projects/cxl_iscsi/sbin/ipfw/nat.c projects/cxl_iscsi/sbin/ipfw/tables.c projects/cxl_iscsi/sbin/mdconfig/mdconfig.8 projects/cxl_iscsi/sbin/mount_unionfs/mount_unionfs.8 projects/cxl_iscsi/sbin/newfs/newfs.8 projects/cxl_iscsi/sbin/newfs/newfs.c projects/cxl_iscsi/sbin/newfs_msdos/newfs_msdos.8 projects/cxl_iscsi/sbin/newfs_nandfs/newfs_nandfs.8 projects/cxl_iscsi/sbin/pfctl/parse.y projects/cxl_iscsi/sbin/pfctl/pfctl_altq.c projects/cxl_iscsi/sbin/pfctl/pfctl_parser.c projects/cxl_iscsi/sbin/pfctl/pfctl_parser.h projects/cxl_iscsi/sbin/pfctl/pfctl_qstats.c projects/cxl_iscsi/sbin/ping6/Makefile projects/cxl_iscsi/sbin/ping6/ping6.c projects/cxl_iscsi/sbin/reboot/boot_i386.8 projects/cxl_iscsi/sbin/savecore/Makefile projects/cxl_iscsi/secure/libexec/sftp-server/Makefile projects/cxl_iscsi/secure/libexec/ssh-keysign/Makefile projects/cxl_iscsi/secure/libexec/ssh-pkcs11-helper/Makefile projects/cxl_iscsi/secure/usr.bin/scp/Makefile projects/cxl_iscsi/secure/usr.bin/sftp/Makefile projects/cxl_iscsi/secure/usr.bin/ssh-add/Makefile projects/cxl_iscsi/secure/usr.bin/ssh-agent/Makefile projects/cxl_iscsi/secure/usr.bin/ssh-keyscan/Makefile projects/cxl_iscsi/secure/usr.sbin/sshd/Makefile projects/cxl_iscsi/share/dtrace/nfsattrstats projects/cxl_iscsi/share/dtrace/nfsclienttime projects/cxl_iscsi/share/man/man4/Makefile projects/cxl_iscsi/share/man/man4/altq.4 projects/cxl_iscsi/share/man/man4/blackhole.4 projects/cxl_iscsi/share/man/man4/da.4 projects/cxl_iscsi/share/man/man4/em.4 projects/cxl_iscsi/share/man/man4/md.4 projects/cxl_iscsi/share/man/man4/random.4 projects/cxl_iscsi/share/man/man4/rights.4 projects/cxl_iscsi/share/man/man4/ses.4 projects/cxl_iscsi/share/man/man4/vpo.4 projects/cxl_iscsi/share/man/man5/core.5 projects/cxl_iscsi/share/man/man5/pf.conf.5 projects/cxl_iscsi/share/man/man5/rc.conf.5 projects/cxl_iscsi/share/man/man5/src.conf.5 projects/cxl_iscsi/share/man/man7/tuning.7 projects/cxl_iscsi/share/man/man8/picobsd.8 projects/cxl_iscsi/share/man/man9/Makefile projects/cxl_iscsi/share/man/man9/acl.9 projects/cxl_iscsi/share/man/man9/atomic.9 projects/cxl_iscsi/share/man/man9/devfs_set_cdevpriv.9 projects/cxl_iscsi/share/man/man9/nv.9 projects/cxl_iscsi/share/misc/organization.dot projects/cxl_iscsi/share/misc/pci_vendors projects/cxl_iscsi/share/mk/bsd.README projects/cxl_iscsi/share/mk/bsd.cpu.mk projects/cxl_iscsi/share/mk/bsd.files.mk projects/cxl_iscsi/share/mk/bsd.lib.mk projects/cxl_iscsi/share/mk/bsd.own.mk projects/cxl_iscsi/share/mk/bsd.port.mk projects/cxl_iscsi/share/mk/bsd.port.subdir.mk projects/cxl_iscsi/share/mk/bsd.subdir.mk projects/cxl_iscsi/share/mk/src.libnames.mk projects/cxl_iscsi/share/mk/src.opts.mk projects/cxl_iscsi/share/mk/sys.mk projects/cxl_iscsi/share/zoneinfo/Makefile projects/cxl_iscsi/sys/amd64/amd64/exception.S projects/cxl_iscsi/sys/amd64/amd64/machdep.c projects/cxl_iscsi/sys/amd64/amd64/pmap.c projects/cxl_iscsi/sys/amd64/cloudabi64/cloudabi64_sysvec.c projects/cxl_iscsi/sys/amd64/conf/NOTES projects/cxl_iscsi/sys/arm/allwinner/a10_gpio.c projects/cxl_iscsi/sys/arm/arm/busdma_machdep-v6.c projects/cxl_iscsi/sys/arm/arm/locore-v6.S projects/cxl_iscsi/sys/arm/arm/machdep.c projects/cxl_iscsi/sys/arm/arm/pmap-v6-new.c projects/cxl_iscsi/sys/arm/broadcom/bcm2835/bcm2835_systimer.c projects/cxl_iscsi/sys/arm/conf/BEAGLEBONE projects/cxl_iscsi/sys/arm/conf/IMX6 projects/cxl_iscsi/sys/arm/conf/std.armv6 projects/cxl_iscsi/sys/arm/freescale/imx/imx_wdog.c projects/cxl_iscsi/sys/arm/freescale/imx/imx_wdogreg.h projects/cxl_iscsi/sys/arm/include/proc.h projects/cxl_iscsi/sys/arm/versatile/sp804.c projects/cxl_iscsi/sys/arm64/arm64/bus_machdep.c projects/cxl_iscsi/sys/arm64/arm64/bus_space_asm.S projects/cxl_iscsi/sys/arm64/arm64/db_interface.c projects/cxl_iscsi/sys/arm64/arm64/gic_v3.c projects/cxl_iscsi/sys/arm64/arm64/gic_v3_its.c projects/cxl_iscsi/sys/arm64/arm64/gic_v3_reg.h projects/cxl_iscsi/sys/arm64/arm64/gic_v3_var.h projects/cxl_iscsi/sys/arm64/arm64/locore.S projects/cxl_iscsi/sys/arm64/arm64/machdep.c projects/cxl_iscsi/sys/arm64/arm64/minidump_machdep.c projects/cxl_iscsi/sys/arm64/arm64/mp_machdep.c projects/cxl_iscsi/sys/arm64/arm64/pmap.c projects/cxl_iscsi/sys/arm64/arm64/support.S projects/cxl_iscsi/sys/arm64/arm64/swtch.S projects/cxl_iscsi/sys/arm64/arm64/trap.c projects/cxl_iscsi/sys/arm64/arm64/uma_machdep.c projects/cxl_iscsi/sys/arm64/arm64/unwind.c projects/cxl_iscsi/sys/arm64/conf/GENERIC projects/cxl_iscsi/sys/arm64/include/cpu.h projects/cxl_iscsi/sys/arm64/include/md_var.h projects/cxl_iscsi/sys/arm64/include/param.h projects/cxl_iscsi/sys/arm64/include/pmap.h projects/cxl_iscsi/sys/boot/efi/Makefile.inc projects/cxl_iscsi/sys/boot/efi/loader/Makefile projects/cxl_iscsi/sys/boot/efi/loader/arch/amd64/framebuffer.c projects/cxl_iscsi/sys/boot/efi/loader/arch/arm64/Makefile.inc projects/cxl_iscsi/sys/boot/fdt/dts/arm/bananapi.dts projects/cxl_iscsi/sys/boot/fdt/dts/arm/beaglebone-black.dts projects/cxl_iscsi/sys/boot/fdt/dts/arm/cubieboard2.dts projects/cxl_iscsi/sys/boot/fdt/dts/arm/sun7i-a20.dtsi projects/cxl_iscsi/sys/boot/ficl/Makefile projects/cxl_iscsi/sys/boot/i386/Makefile.inc projects/cxl_iscsi/sys/boot/kshim/bsd_kernel.h projects/cxl_iscsi/sys/boot/libstand32/Makefile projects/cxl_iscsi/sys/boot/pc98/Makefile.inc projects/cxl_iscsi/sys/boot/uboot/fdt/uboot_fdt.c projects/cxl_iscsi/sys/boot/userboot/ficl/Makefile projects/cxl_iscsi/sys/boot/userboot/libstand/Makefile projects/cxl_iscsi/sys/boot/zfs/Makefile projects/cxl_iscsi/sys/cam/ata/ata_da.c projects/cxl_iscsi/sys/cam/ata/ata_xpt.c projects/cxl_iscsi/sys/cam/ctl/README.ctl.txt projects/cxl_iscsi/sys/cam/ctl/ctl.c projects/cxl_iscsi/sys/cam/ctl/ctl.h projects/cxl_iscsi/sys/cam/ctl/ctl_backend.c projects/cxl_iscsi/sys/cam/ctl/ctl_backend.h projects/cxl_iscsi/sys/cam/ctl/ctl_backend_block.c projects/cxl_iscsi/sys/cam/ctl/ctl_backend_ramdisk.c projects/cxl_iscsi/sys/cam/ctl/ctl_cmd_table.c projects/cxl_iscsi/sys/cam/ctl/ctl_error.c projects/cxl_iscsi/sys/cam/ctl/ctl_frontend.c projects/cxl_iscsi/sys/cam/ctl/ctl_frontend_cam_sim.c projects/cxl_iscsi/sys/cam/ctl/ctl_frontend_iscsi.c projects/cxl_iscsi/sys/cam/ctl/ctl_io.h projects/cxl_iscsi/sys/cam/ctl/ctl_ioctl.h projects/cxl_iscsi/sys/cam/ctl/ctl_private.h projects/cxl_iscsi/sys/cam/ctl/ctl_tpc.c projects/cxl_iscsi/sys/cam/ctl/ctl_tpc_local.c projects/cxl_iscsi/sys/cam/ctl/scsi_ctl.c projects/cxl_iscsi/sys/cam/scsi/scsi_all.c projects/cxl_iscsi/sys/cam/scsi/scsi_all.h projects/cxl_iscsi/sys/cam/scsi/scsi_cd.c projects/cxl_iscsi/sys/cam/scsi/scsi_ch.c projects/cxl_iscsi/sys/cam/scsi/scsi_da.c projects/cxl_iscsi/sys/cam/scsi/scsi_pt.c projects/cxl_iscsi/sys/cam/scsi/scsi_sa.c projects/cxl_iscsi/sys/cam/scsi/scsi_xpt.c projects/cxl_iscsi/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c projects/cxl_iscsi/sys/cddl/compat/opensolaris/sys/nvpair.h projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/Makefile.files projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c projects/cxl_iscsi/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h projects/cxl_iscsi/sys/compat/cloudabi/cloudabi_fd.c projects/cxl_iscsi/sys/compat/cloudabi/cloudabi_proc.c projects/cxl_iscsi/sys/compat/linux/linux_fork.c projects/cxl_iscsi/sys/conf/NOTES projects/cxl_iscsi/sys/conf/files projects/cxl_iscsi/sys/conf/files.amd64 projects/cxl_iscsi/sys/conf/files.arm64 projects/cxl_iscsi/sys/conf/files.powerpc projects/cxl_iscsi/sys/conf/kern.post.mk projects/cxl_iscsi/sys/conf/kmod.mk projects/cxl_iscsi/sys/conf/options projects/cxl_iscsi/sys/conf/options.arm64 projects/cxl_iscsi/sys/conf/options.powerpc projects/cxl_iscsi/sys/contrib/dev/acpica/changes.txt projects/cxl_iscsi/sys/contrib/dev/acpica/common/adisasm.c projects/cxl_iscsi/sys/contrib/dev/acpica/common/dmtable.c projects/cxl_iscsi/sys/contrib/dev/acpica/compiler/aslmain.c projects/cxl_iscsi/sys/contrib/dev/acpica/compiler/asloperands.c projects/cxl_iscsi/sys/contrib/dev/acpica/compiler/asloptions.c projects/cxl_iscsi/sys/contrib/dev/acpica/compiler/aslstartup.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbcmds.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbconvert.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbdisply.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbexec.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbfileio.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbhistry.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbinput.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbmethod.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbnames.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbobject.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbstats.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbtest.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbutils.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/debugger/dbxface.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/disassembler/dmcstyle.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/disassembler/dmnames.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/disassembler/dmopcode.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/disassembler/dmresrc.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/disassembler/dmresrcs.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/disassembler/dmutils.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/disassembler/dmwalk.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/dispatcher/dscontrol.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/dispatcher/dsdebug.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/dispatcher/dsinit.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/events/evregion.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/executer/exconfig.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/executer/exdump.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/executer/exresnte.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/executer/exresolv.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/namespace/nseval.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/namespace/nsload.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/namespace/nsutils.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/parser/psloop.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/resources/rsdump.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/tables/tbfadt.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/tables/tbfind.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/tables/tbinstal.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/tables/tbutils.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/tables/tbxfload.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/utilities/utfileio.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/utilities/utinit.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/utilities/utmisc.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/utilities/utnonansi.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/utilities/utxface.c projects/cxl_iscsi/sys/contrib/dev/acpica/components/utilities/utxfinit.c projects/cxl_iscsi/sys/contrib/dev/acpica/include/acbuffer.h projects/cxl_iscsi/sys/contrib/dev/acpica/include/acconfig.h projects/cxl_iscsi/sys/contrib/dev/acpica/include/acdebug.h projects/cxl_iscsi/sys/contrib/dev/acpica/include/acdisasm.h projects/cxl_iscsi/sys/contrib/dev/acpica/include/acexcep.h projects/cxl_iscsi/sys/contrib/dev/acpica/include/acglobal.h projects/cxl_iscsi/sys/contrib/dev/acpica/include/aclocal.h projects/cxl_iscsi/sys/contrib/dev/acpica/include/acpixf.h projects/cxl_iscsi/sys/contrib/dev/acpica/include/actables.h projects/cxl_iscsi/sys/contrib/dev/acpica/include/actypes.h projects/cxl_iscsi/sys/contrib/dev/acpica/include/acutils.h projects/cxl_iscsi/sys/contrib/dev/acpica/include/platform/acenv.h projects/cxl_iscsi/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_ani.c projects/cxl_iscsi/sys/contrib/libnv/nv_impl.h projects/cxl_iscsi/sys/contrib/libnv/nvlist.c projects/cxl_iscsi/sys/contrib/libnv/nvlist_impl.h projects/cxl_iscsi/sys/contrib/libnv/nvpair.c projects/cxl_iscsi/sys/contrib/libnv/nvpair_impl.h projects/cxl_iscsi/sys/dev/acpica/Osd/OsdDebug.c projects/cxl_iscsi/sys/dev/ata/ata-all.c projects/cxl_iscsi/sys/dev/ata/ata-all.h projects/cxl_iscsi/sys/dev/ath/ath_rate/sample/sample.c projects/cxl_iscsi/sys/dev/ath/ath_rate/sample/sample.h projects/cxl_iscsi/sys/dev/ath/if_ath.c projects/cxl_iscsi/sys/dev/ath/if_ath_beacon.c projects/cxl_iscsi/sys/dev/ath/if_ath_debug.h projects/cxl_iscsi/sys/dev/ath/if_ath_keycache.c projects/cxl_iscsi/sys/dev/ath/if_ath_misc.h projects/cxl_iscsi/sys/dev/ath/if_ath_rx.c projects/cxl_iscsi/sys/dev/ath/if_ath_rx_edma.c projects/cxl_iscsi/sys/dev/ath/if_ath_sysctl.c projects/cxl_iscsi/sys/dev/ath/if_ath_tdma.c projects/cxl_iscsi/sys/dev/ath/if_ath_tx.c projects/cxl_iscsi/sys/dev/ath/if_ath_tx_edma.c projects/cxl_iscsi/sys/dev/ath/if_athvar.h projects/cxl_iscsi/sys/dev/bwi/bwimac.c projects/cxl_iscsi/sys/dev/bwi/bwiphy.c projects/cxl_iscsi/sys/dev/bwi/bwirf.c projects/cxl_iscsi/sys/dev/bwi/if_bwi.c projects/cxl_iscsi/sys/dev/bwi/if_bwivar.h projects/cxl_iscsi/sys/dev/bwn/if_bwn.c projects/cxl_iscsi/sys/dev/bwn/if_bwnvar.h projects/cxl_iscsi/sys/dev/ciss/ciss.c projects/cxl_iscsi/sys/dev/cxgbe/adapter.h projects/cxl_iscsi/sys/dev/cxgbe/t4_main.c projects/cxl_iscsi/sys/dev/cyapa/cyapa.c projects/cxl_iscsi/sys/dev/drm2/drmP.h projects/cxl_iscsi/sys/dev/drm2/i915/i915_dma.c projects/cxl_iscsi/sys/dev/drm2/i915/i915_drv.c projects/cxl_iscsi/sys/dev/drm2/i915/i915_drv.h projects/cxl_iscsi/sys/dev/drm2/i915/i915_gem.c projects/cxl_iscsi/sys/dev/drm2/i915/i915_gem_execbuffer.c projects/cxl_iscsi/sys/dev/drm2/i915/i915_gem_gtt.c projects/cxl_iscsi/sys/dev/drm2/i915/i915_gem_tiling.c projects/cxl_iscsi/sys/dev/drm2/i915/i915_reg.h projects/cxl_iscsi/sys/dev/drm2/i915/intel_ddi.c projects/cxl_iscsi/sys/dev/drm2/i915/intel_display.c projects/cxl_iscsi/sys/dev/drm2/i915/intel_drv.h projects/cxl_iscsi/sys/dev/drm2/i915/intel_pm.c projects/cxl_iscsi/sys/dev/drm2/i915/intel_ringbuffer.h projects/cxl_iscsi/sys/dev/drm2/i915/intel_sdvo_regs.h projects/cxl_iscsi/sys/dev/drm2/ttm/ttm_bo.c projects/cxl_iscsi/sys/dev/e1000/e1000_80003es2lan.c projects/cxl_iscsi/sys/dev/e1000/e1000_80003es2lan.h projects/cxl_iscsi/sys/dev/e1000/e1000_82540.c projects/cxl_iscsi/sys/dev/e1000/e1000_82541.c projects/cxl_iscsi/sys/dev/e1000/e1000_82541.h projects/cxl_iscsi/sys/dev/e1000/e1000_82542.c projects/cxl_iscsi/sys/dev/e1000/e1000_82543.c projects/cxl_iscsi/sys/dev/e1000/e1000_82543.h projects/cxl_iscsi/sys/dev/e1000/e1000_82571.c projects/cxl_iscsi/sys/dev/e1000/e1000_82571.h projects/cxl_iscsi/sys/dev/e1000/e1000_82575.c projects/cxl_iscsi/sys/dev/e1000/e1000_82575.h projects/cxl_iscsi/sys/dev/e1000/e1000_api.c projects/cxl_iscsi/sys/dev/e1000/e1000_api.h projects/cxl_iscsi/sys/dev/e1000/e1000_defines.h projects/cxl_iscsi/sys/dev/e1000/e1000_hw.h projects/cxl_iscsi/sys/dev/e1000/e1000_i210.c projects/cxl_iscsi/sys/dev/e1000/e1000_i210.h projects/cxl_iscsi/sys/dev/e1000/e1000_ich8lan.c projects/cxl_iscsi/sys/dev/e1000/e1000_ich8lan.h projects/cxl_iscsi/sys/dev/e1000/e1000_mac.c projects/cxl_iscsi/sys/dev/e1000/e1000_mac.h projects/cxl_iscsi/sys/dev/e1000/e1000_manage.c projects/cxl_iscsi/sys/dev/e1000/e1000_manage.h projects/cxl_iscsi/sys/dev/e1000/e1000_mbx.c projects/cxl_iscsi/sys/dev/e1000/e1000_mbx.h projects/cxl_iscsi/sys/dev/e1000/e1000_nvm.c projects/cxl_iscsi/sys/dev/e1000/e1000_nvm.h projects/cxl_iscsi/sys/dev/e1000/e1000_osdep.c projects/cxl_iscsi/sys/dev/e1000/e1000_osdep.h projects/cxl_iscsi/sys/dev/e1000/e1000_phy.c projects/cxl_iscsi/sys/dev/e1000/e1000_phy.h projects/cxl_iscsi/sys/dev/e1000/e1000_regs.h projects/cxl_iscsi/sys/dev/e1000/e1000_vf.c projects/cxl_iscsi/sys/dev/e1000/e1000_vf.h projects/cxl_iscsi/sys/dev/e1000/if_em.c projects/cxl_iscsi/sys/dev/e1000/if_em.h projects/cxl_iscsi/sys/dev/e1000/if_igb.c projects/cxl_iscsi/sys/dev/e1000/if_igb.h projects/cxl_iscsi/sys/dev/e1000/if_lem.c projects/cxl_iscsi/sys/dev/e1000/if_lem.h projects/cxl_iscsi/sys/dev/fdt/fdt_slicer.c projects/cxl_iscsi/sys/dev/filemon/filemon.c projects/cxl_iscsi/sys/dev/filemon/filemon_lock.c projects/cxl_iscsi/sys/dev/filemon/filemon_wrapper.c projects/cxl_iscsi/sys/dev/gpio/gpiobus.c projects/cxl_iscsi/sys/dev/gpio/gpioled.c projects/cxl_iscsi/sys/dev/hwpmc/hwpmc_mod.c projects/cxl_iscsi/sys/dev/ichiic/ig4_iic.c projects/cxl_iscsi/sys/dev/ichwd/ichwd.c projects/cxl_iscsi/sys/dev/ichwd/ichwd.h projects/cxl_iscsi/sys/dev/if_ndis/if_ndis.c projects/cxl_iscsi/sys/dev/if_ndis/if_ndisvar.h projects/cxl_iscsi/sys/dev/ipmi/ipmi_smbios.c projects/cxl_iscsi/sys/dev/ipmi/ipmivars.h projects/cxl_iscsi/sys/dev/ipw/if_ipw.c projects/cxl_iscsi/sys/dev/ipw/if_ipwvar.h projects/cxl_iscsi/sys/dev/isci/isci.c projects/cxl_iscsi/sys/dev/isci/isci_interrupt.c projects/cxl_iscsi/sys/dev/isl/isl.c projects/cxl_iscsi/sys/dev/iwi/if_iwi.c projects/cxl_iscsi/sys/dev/iwi/if_iwivar.h projects/cxl_iscsi/sys/dev/iwm/if_iwm.c projects/cxl_iscsi/sys/dev/iwm/if_iwm_mac_ctxt.c projects/cxl_iscsi/sys/dev/iwm/if_iwm_phy_ctxt.c projects/cxl_iscsi/sys/dev/iwm/if_iwm_power.c projects/cxl_iscsi/sys/dev/iwm/if_iwm_scan.c projects/cxl_iscsi/sys/dev/iwm/if_iwmvar.h projects/cxl_iscsi/sys/dev/iwn/if_iwn.c projects/cxl_iscsi/sys/dev/iwn/if_iwn_ioctl.h projects/cxl_iscsi/sys/dev/iwn/if_iwnvar.h projects/cxl_iscsi/sys/dev/malo/if_malo.c projects/cxl_iscsi/sys/dev/malo/if_malo.h projects/cxl_iscsi/sys/dev/mii/brgphy.c projects/cxl_iscsi/sys/dev/mii/miidevs projects/cxl_iscsi/sys/dev/mmc/host/dwmmc.c projects/cxl_iscsi/sys/dev/mmc/mmc.c projects/cxl_iscsi/sys/dev/msk/if_mskreg.h projects/cxl_iscsi/sys/dev/mwl/if_mwl.c projects/cxl_iscsi/sys/dev/mwl/if_mwl_pci.c projects/cxl_iscsi/sys/dev/mwl/if_mwlvar.h projects/cxl_iscsi/sys/dev/netmap/netmap.c projects/cxl_iscsi/sys/dev/pccbb/pccbb.c projects/cxl_iscsi/sys/dev/ral/if_ral_pci.c projects/cxl_iscsi/sys/dev/ral/rt2560.c projects/cxl_iscsi/sys/dev/ral/rt2560var.h projects/cxl_iscsi/sys/dev/ral/rt2661.c projects/cxl_iscsi/sys/dev/ral/rt2661var.h projects/cxl_iscsi/sys/dev/ral/rt2860.c projects/cxl_iscsi/sys/dev/ral/rt2860var.h projects/cxl_iscsi/sys/dev/random/build.sh projects/cxl_iscsi/sys/dev/random/fortuna.c projects/cxl_iscsi/sys/dev/random/random_harvestq.c projects/cxl_iscsi/sys/dev/random/random_harvestq.h projects/cxl_iscsi/sys/dev/random/randomdev.c projects/cxl_iscsi/sys/dev/random/randomdev.h projects/cxl_iscsi/sys/dev/random/unit_test.c projects/cxl_iscsi/sys/dev/random/yarrow.c projects/cxl_iscsi/sys/dev/sound/midi/midi.c projects/cxl_iscsi/sys/dev/uart/uart_cpu_fdt.c projects/cxl_iscsi/sys/dev/usb/controller/dwc_otg.c projects/cxl_iscsi/sys/dev/usb/controller/dwc_otg.h projects/cxl_iscsi/sys/dev/usb/controller/uhci_pci.c projects/cxl_iscsi/sys/dev/usb/controller/usb_controller.c projects/cxl_iscsi/sys/dev/usb/quirk/usb_quirk.c projects/cxl_iscsi/sys/dev/usb/serial/u3g.c projects/cxl_iscsi/sys/dev/usb/usb_bus.h projects/cxl_iscsi/sys/dev/usb/usb_device.c projects/cxl_iscsi/sys/dev/usb/usb_hub.c projects/cxl_iscsi/sys/dev/usb/usb_pf.c projects/cxl_iscsi/sys/dev/usb/usb_process.h projects/cxl_iscsi/sys/dev/usb/usb_transfer.c projects/cxl_iscsi/sys/dev/usb/usbdevs projects/cxl_iscsi/sys/dev/usb/usbdi.h projects/cxl_iscsi/sys/dev/usb/wlan/if_rsu.c projects/cxl_iscsi/sys/dev/usb/wlan/if_rsureg.h projects/cxl_iscsi/sys/dev/usb/wlan/if_rum.c projects/cxl_iscsi/sys/dev/usb/wlan/if_rumvar.h projects/cxl_iscsi/sys/dev/usb/wlan/if_run.c projects/cxl_iscsi/sys/dev/usb/wlan/if_runvar.h projects/cxl_iscsi/sys/dev/usb/wlan/if_uath.c projects/cxl_iscsi/sys/dev/usb/wlan/if_uathvar.h projects/cxl_iscsi/sys/dev/usb/wlan/if_upgt.c projects/cxl_iscsi/sys/dev/usb/wlan/if_upgtvar.h projects/cxl_iscsi/sys/dev/usb/wlan/if_ural.c projects/cxl_iscsi/sys/dev/usb/wlan/if_uralvar.h projects/cxl_iscsi/sys/dev/usb/wlan/if_urtw.c projects/cxl_iscsi/sys/dev/usb/wlan/if_urtwn.c projects/cxl_iscsi/sys/dev/usb/wlan/if_urtwnreg.h projects/cxl_iscsi/sys/dev/usb/wlan/if_urtwvar.h projects/cxl_iscsi/sys/dev/usb/wlan/if_zyd.c projects/cxl_iscsi/sys/dev/usb/wlan/if_zydreg.h projects/cxl_iscsi/sys/dev/virtio/network/if_vtnet.c projects/cxl_iscsi/sys/dev/vt/hw/efifb/efifb.c projects/cxl_iscsi/sys/dev/vt/hw/fb/vt_fb.c projects/cxl_iscsi/sys/dev/vt/vt.h projects/cxl_iscsi/sys/dev/vt/vt_core.c projects/cxl_iscsi/sys/dev/vt/vt_cpulogos.c projects/cxl_iscsi/sys/dev/wi/if_wi.c projects/cxl_iscsi/sys/dev/wi/if_wi_macio.c projects/cxl_iscsi/sys/dev/wi/if_wi_pccard.c projects/cxl_iscsi/sys/dev/wi/if_wi_pci.c projects/cxl_iscsi/sys/dev/wi/if_wivar.h projects/cxl_iscsi/sys/dev/wpi/if_wpi.c projects/cxl_iscsi/sys/dev/wpi/if_wpivar.h projects/cxl_iscsi/sys/dev/wtap/if_wtap.c projects/cxl_iscsi/sys/dev/wtap/if_wtapvar.h projects/cxl_iscsi/sys/dev/xen/blkback/blkback.c projects/cxl_iscsi/sys/dev/xen/blkfront/blkfront.c projects/cxl_iscsi/sys/dev/xen/netfront/netfront.c projects/cxl_iscsi/sys/dev/xen/xenstore/xenstore.c projects/cxl_iscsi/sys/fs/devfs/devfs_vfsops.c projects/cxl_iscsi/sys/fs/devfs/devfs_vnops.c projects/cxl_iscsi/sys/fs/nfs/nfs_commonacl.c projects/cxl_iscsi/sys/fs/nfsserver/nfs_nfsdstate.c projects/cxl_iscsi/sys/geom/geom_flashmap.c projects/cxl_iscsi/sys/geom/geom_io.c projects/cxl_iscsi/sys/gnu/fs/reiserfs/reiserfs_vfsops.c projects/cxl_iscsi/sys/i386/i386/machdep.c projects/cxl_iscsi/sys/kern/genassym.sh projects/cxl_iscsi/sys/kern/imgact_elf.c projects/cxl_iscsi/sys/kern/init_main.c projects/cxl_iscsi/sys/kern/kern_descrip.c projects/cxl_iscsi/sys/kern/kern_event.c projects/cxl_iscsi/sys/kern/kern_exec.c projects/cxl_iscsi/sys/kern/kern_procctl.c projects/cxl_iscsi/sys/kern/kern_timeout.c projects/cxl_iscsi/sys/kern/ksched.c projects/cxl_iscsi/sys/kern/link_elf.c projects/cxl_iscsi/sys/kern/sched_ule.c projects/cxl_iscsi/sys/kern/subr_acl_nfs4.c projects/cxl_iscsi/sys/kern/subr_module.c projects/cxl_iscsi/sys/kern/subr_syscall.c projects/cxl_iscsi/sys/kern/sys_process.c projects/cxl_iscsi/sys/kern/uipc_usrreq.c projects/cxl_iscsi/sys/kern/vfs_cache.c projects/cxl_iscsi/sys/kern/vfs_hash.c projects/cxl_iscsi/sys/kern/vfs_mount.c projects/cxl_iscsi/sys/kern/vfs_mountroot.c projects/cxl_iscsi/sys/kern/vfs_subr.c projects/cxl_iscsi/sys/kern/vfs_syscalls.c projects/cxl_iscsi/sys/kern/vfs_vnops.c projects/cxl_iscsi/sys/mips/beri/beri_machdep.c projects/cxl_iscsi/sys/mips/mips/fp.S projects/cxl_iscsi/sys/mips/rmi/dev/nlge/if_nlge.c projects/cxl_iscsi/sys/mips/rmi/files.xlr projects/cxl_iscsi/sys/mips/rmi/iodi.c projects/cxl_iscsi/sys/modules/Makefile projects/cxl_iscsi/sys/modules/am335x_dmtpps/Makefile projects/cxl_iscsi/sys/modules/ctl/Makefile projects/cxl_iscsi/sys/modules/gpio/gpiobus/Makefile projects/cxl_iscsi/sys/net/altq/altq.h projects/cxl_iscsi/sys/net/altq/altq_cbq.c projects/cxl_iscsi/sys/net/altq/altq_cbq.h projects/cxl_iscsi/sys/net/altq/altq_classq.h projects/cxl_iscsi/sys/net/altq/altq_fairq.c projects/cxl_iscsi/sys/net/altq/altq_fairq.h projects/cxl_iscsi/sys/net/altq/altq_hfsc.c projects/cxl_iscsi/sys/net/altq/altq_hfsc.h projects/cxl_iscsi/sys/net/altq/altq_priq.c projects/cxl_iscsi/sys/net/altq/altq_priq.h projects/cxl_iscsi/sys/net/altq/altq_rmclass.c projects/cxl_iscsi/sys/net/altq/altq_rmclass.h projects/cxl_iscsi/sys/net/altq/altq_subr.c projects/cxl_iscsi/sys/net/altq/altq_var.h projects/cxl_iscsi/sys/net/if.c projects/cxl_iscsi/sys/net/if_dl.h projects/cxl_iscsi/sys/net/if_epair.c projects/cxl_iscsi/sys/net/if_llatbl.c projects/cxl_iscsi/sys/net/if_llatbl.h projects/cxl_iscsi/sys/net/if_var.h projects/cxl_iscsi/sys/net/pfvar.h projects/cxl_iscsi/sys/net/route.c projects/cxl_iscsi/sys/net/route.h projects/cxl_iscsi/sys/net/rss_config.c projects/cxl_iscsi/sys/net/rss_config.h projects/cxl_iscsi/sys/net80211/ieee80211.c projects/cxl_iscsi/sys/net80211/ieee80211_ddb.c projects/cxl_iscsi/sys/net80211/ieee80211_freebsd.c projects/cxl_iscsi/sys/net80211/ieee80211_ioctl.c projects/cxl_iscsi/sys/net80211/ieee80211_output.c projects/cxl_iscsi/sys/net80211/ieee80211_power.c projects/cxl_iscsi/sys/net80211/ieee80211_proto.c projects/cxl_iscsi/sys/net80211/ieee80211_proto.h projects/cxl_iscsi/sys/net80211/ieee80211_regdomain.c projects/cxl_iscsi/sys/net80211/ieee80211_scan_sta.c projects/cxl_iscsi/sys/net80211/ieee80211_var.h projects/cxl_iscsi/sys/netinet/if_ether.c projects/cxl_iscsi/sys/netinet/in.c projects/cxl_iscsi/sys/netinet/in_pcb.h projects/cxl_iscsi/sys/netinet/in_rss.c projects/cxl_iscsi/sys/netinet/in_rss.h projects/cxl_iscsi/sys/netinet/ip_input.c projects/cxl_iscsi/sys/netinet/sctp_constants.h projects/cxl_iscsi/sys/netinet/sctp_input.c projects/cxl_iscsi/sys/netinet/sctp_output.c projects/cxl_iscsi/sys/netinet/sctp_sysctl.c projects/cxl_iscsi/sys/netinet/sctp_sysctl.h projects/cxl_iscsi/sys/netinet/sctp_timer.c projects/cxl_iscsi/sys/netinet/sctp_usrreq.c projects/cxl_iscsi/sys/netinet/sctputil.c projects/cxl_iscsi/sys/netinet/sctputil.h projects/cxl_iscsi/sys/netinet/tcp_subr.c projects/cxl_iscsi/sys/netinet/tcp_syncache.c projects/cxl_iscsi/sys/netinet/tcp_syncache.h projects/cxl_iscsi/sys/netinet/tcp_timer.c projects/cxl_iscsi/sys/netinet/tcp_var.h projects/cxl_iscsi/sys/netinet/toecore.c projects/cxl_iscsi/sys/netinet/udp_usrreq.c projects/cxl_iscsi/sys/netinet/udp_var.h projects/cxl_iscsi/sys/netinet6/in6.c projects/cxl_iscsi/sys/netinet6/in6.h projects/cxl_iscsi/sys/netinet6/in6_ifattach.c projects/cxl_iscsi/sys/netinet6/in6_rss.c projects/cxl_iscsi/sys/netinet6/in6_rss.h projects/cxl_iscsi/sys/netinet6/in6_var.h projects/cxl_iscsi/sys/netinet6/ip6_input.c projects/cxl_iscsi/sys/netinet6/ip6_output.c projects/cxl_iscsi/sys/netinet6/ip6_var.h projects/cxl_iscsi/sys/netinet6/nd6.c projects/cxl_iscsi/sys/netinet6/nd6.h projects/cxl_iscsi/sys/netinet6/nd6_nbr.c projects/cxl_iscsi/sys/netinet6/udp6_usrreq.c projects/cxl_iscsi/sys/netpfil/ipfw/ip_fw_private.h projects/cxl_iscsi/sys/netpfil/pf/pf.c projects/cxl_iscsi/sys/netpfil/pf/pf_altq.h projects/cxl_iscsi/sys/netpfil/pf/pf_if.c projects/cxl_iscsi/sys/netpfil/pf/pf_ioctl.c projects/cxl_iscsi/sys/netpfil/pf/pf_norm.c projects/cxl_iscsi/sys/ofed/include/linux/linux_compat.c projects/cxl_iscsi/sys/ofed/include/linux/mm.h projects/cxl_iscsi/sys/powerpc/booke/locore.S projects/cxl_iscsi/sys/powerpc/booke/pmap.c projects/cxl_iscsi/sys/powerpc/booke/trap_subr.S projects/cxl_iscsi/sys/powerpc/include/_types.h projects/cxl_iscsi/sys/powerpc/include/pmap.h projects/cxl_iscsi/sys/powerpc/include/pte.h projects/cxl_iscsi/sys/powerpc/include/tlb.h projects/cxl_iscsi/sys/powerpc/mpc85xx/fsl_sdhc.c projects/cxl_iscsi/sys/powerpc/mpc85xx/mpc85xx.h projects/cxl_iscsi/sys/powerpc/mpc85xx/pci_mpc85xx.c projects/cxl_iscsi/sys/powerpc/mpc85xx/pci_mpc85xx_pcib.c projects/cxl_iscsi/sys/powerpc/mpc85xx/platform_mpc85xx.c projects/cxl_iscsi/sys/powerpc/ofw/ofw_machdep.c projects/cxl_iscsi/sys/powerpc/powerpc/pmap_dispatch.c projects/cxl_iscsi/sys/powerpc/powerpc/trap.c projects/cxl_iscsi/sys/powerpc/powerpc/uma_machdep.c projects/cxl_iscsi/sys/rpc/rpc_generic.c projects/cxl_iscsi/sys/rpc/svc_vc.c projects/cxl_iscsi/sys/sys/acl.h projects/cxl_iscsi/sys/sys/ata.h projects/cxl_iscsi/sys/sys/capsicum.h projects/cxl_iscsi/sys/sys/cdefs.h projects/cxl_iscsi/sys/sys/exec.h projects/cxl_iscsi/sys/sys/filedesc.h projects/cxl_iscsi/sys/sys/nv.h projects/cxl_iscsi/sys/sys/param.h projects/cxl_iscsi/sys/sys/pcpu.h projects/cxl_iscsi/sys/sys/posix4.h projects/cxl_iscsi/sys/sys/proc.h projects/cxl_iscsi/sys/sys/ptrace.h projects/cxl_iscsi/sys/sys/random.h projects/cxl_iscsi/sys/sys/slicer.h projects/cxl_iscsi/sys/sys/socketvar.h projects/cxl_iscsi/sys/sys/user.h projects/cxl_iscsi/sys/sys/vnode.h projects/cxl_iscsi/sys/teken/demo/teken_demo.c projects/cxl_iscsi/sys/teken/teken.c projects/cxl_iscsi/sys/teken/teken_subr.h projects/cxl_iscsi/sys/ufs/ffs/ffs_softdep.c projects/cxl_iscsi/sys/vm/swap_pager.c projects/cxl_iscsi/sys/vm/uma_core.c projects/cxl_iscsi/sys/vm/vm_page.c projects/cxl_iscsi/sys/vm/vm_pageout.c projects/cxl_iscsi/sys/x86/acpica/madt.c projects/cxl_iscsi/sys/x86/include/ofw_machdep.h projects/cxl_iscsi/sys/x86/iommu/intel_idpgtbl.c projects/cxl_iscsi/sys/x86/x86/busdma_bounce.c projects/cxl_iscsi/sys/x86/x86/fdt_machdep.c projects/cxl_iscsi/sys/x86/x86/nexus.c projects/cxl_iscsi/sys/x86/xen/hvm.c projects/cxl_iscsi/sys/xen/gnttab.h projects/cxl_iscsi/sys/xen/xen-os.h projects/cxl_iscsi/tests/sys/vm/mmap_test.c projects/cxl_iscsi/tools/build/mk/OptionalObsoleteFiles.inc projects/cxl_iscsi/tools/regression/acltools/tools-crossfs.test projects/cxl_iscsi/tools/regression/acltools/tools-nfs4-psarc.test projects/cxl_iscsi/tools/regression/acltools/tools-nfs4-trivial.test projects/cxl_iscsi/tools/regression/acltools/tools-nfs4.test projects/cxl_iscsi/tools/regression/lib/libc/gen/test-wordexp.c projects/cxl_iscsi/tools/regression/lib/msun/test-cexp.c projects/cxl_iscsi/tools/regression/lib/msun/test-csqrt.c projects/cxl_iscsi/tools/regression/lib/msun/test-invtrig.c projects/cxl_iscsi/tools/regression/lib/msun/test-trig.c projects/cxl_iscsi/tools/regression/p1003_1b/main.c projects/cxl_iscsi/tools/tools/ath/athaggrstats/athaggrstats.c projects/cxl_iscsi/tools/tools/ath/athaggrstats/main.c projects/cxl_iscsi/tools/tools/ath/athdebug/athdebug.c projects/cxl_iscsi/tools/tools/ath/athrd/athrd.c projects/cxl_iscsi/tools/tools/ath/athstats/athstats.c projects/cxl_iscsi/tools/tools/ath/athstats/main.c projects/cxl_iscsi/tools/tools/ath/common/ah_osdep.h projects/cxl_iscsi/tools/tools/ath/common/dumpregs_5210.c projects/cxl_iscsi/tools/tools/ath/common/dumpregs_5211.c projects/cxl_iscsi/tools/tools/ath/common/dumpregs_5212.c projects/cxl_iscsi/tools/tools/ath/common/dumpregs_5416.c projects/cxl_iscsi/tools/tools/crypto/cryptostats.c projects/cxl_iscsi/tools/tools/crypto/cryptotest.c projects/cxl_iscsi/tools/tools/crypto/hifnstats.c projects/cxl_iscsi/tools/tools/crypto/ipsecstats.c projects/cxl_iscsi/tools/tools/crypto/safestats.c projects/cxl_iscsi/tools/tools/crypto/ubsecstats.c projects/cxl_iscsi/tools/tools/cxgbetool/cxgbetool.c projects/cxl_iscsi/tools/tools/iwn/iwnstats/iwn_ioctl.c projects/cxl_iscsi/tools/tools/iwn/iwnstats/iwn_ioctl.h projects/cxl_iscsi/tools/tools/iwn/iwnstats/iwnstats.h projects/cxl_iscsi/tools/tools/iwn/iwnstats/main.c projects/cxl_iscsi/tools/tools/mwl/mwldebug/mwldebug.c projects/cxl_iscsi/tools/tools/mwl/mwlstats/mwlstats.c projects/cxl_iscsi/tools/tools/nanobsd/defaults.sh projects/cxl_iscsi/tools/tools/nanobsd/gateworks/common projects/cxl_iscsi/tools/tools/nanobsd/pcengines/common.conf projects/cxl_iscsi/tools/tools/nanobsd/rescue/common projects/cxl_iscsi/tools/tools/net80211/wlanstats/main.c projects/cxl_iscsi/tools/tools/net80211/wlanstats/wlanstats.c projects/cxl_iscsi/tools/tools/net80211/wlantxtime/wlantxtime.c projects/cxl_iscsi/tools/tools/npe/npestats/main.c projects/cxl_iscsi/tools/tools/npe/npestats/npestats.c projects/cxl_iscsi/tools/tools/sysbuild/sysbuild.sh projects/cxl_iscsi/usr.bin/ar/ar.c projects/cxl_iscsi/usr.bin/at/Makefile.inc projects/cxl_iscsi/usr.bin/bluetooth/btsockstat/btsockstat.c projects/cxl_iscsi/usr.bin/calendar/calendars/calendar.christian projects/cxl_iscsi/usr.bin/calendar/calendars/calendar.freebsd projects/cxl_iscsi/usr.bin/ctlstat/ctlstat.c projects/cxl_iscsi/usr.bin/iconv/iconv.c projects/cxl_iscsi/usr.bin/iscsictl/Makefile projects/cxl_iscsi/usr.bin/lorder/lorder.1 projects/cxl_iscsi/usr.bin/lorder/lorder.sh projects/cxl_iscsi/usr.bin/netstat/Makefile projects/cxl_iscsi/usr.bin/netstat/if.c projects/cxl_iscsi/usr.bin/netstat/inet.c projects/cxl_iscsi/usr.bin/netstat/inet6.c projects/cxl_iscsi/usr.bin/netstat/main.c projects/cxl_iscsi/usr.bin/netstat/mroute.c projects/cxl_iscsi/usr.bin/netstat/mroute6.c projects/cxl_iscsi/usr.bin/netstat/netgraph.c projects/cxl_iscsi/usr.bin/netstat/netisr.c projects/cxl_iscsi/usr.bin/netstat/netstat.1 projects/cxl_iscsi/usr.bin/netstat/netstat.h projects/cxl_iscsi/usr.bin/netstat/route.c projects/cxl_iscsi/usr.bin/netstat/sctp.c projects/cxl_iscsi/usr.bin/patch/common.h projects/cxl_iscsi/usr.bin/patch/inp.c projects/cxl_iscsi/usr.bin/patch/patch.1 projects/cxl_iscsi/usr.bin/patch/pch.c projects/cxl_iscsi/usr.bin/patch/util.c projects/cxl_iscsi/usr.bin/patch/util.h projects/cxl_iscsi/usr.bin/procstat/Makefile projects/cxl_iscsi/usr.bin/procstat/procstat.1 projects/cxl_iscsi/usr.bin/procstat/procstat.c projects/cxl_iscsi/usr.bin/procstat/procstat.h projects/cxl_iscsi/usr.bin/procstat/procstat_args.c projects/cxl_iscsi/usr.bin/procstat/procstat_auxv.c projects/cxl_iscsi/usr.bin/procstat/procstat_basic.c projects/cxl_iscsi/usr.bin/procstat/procstat_bin.c projects/cxl_iscsi/usr.bin/procstat/procstat_cred.c projects/cxl_iscsi/usr.bin/procstat/procstat_cs.c projects/cxl_iscsi/usr.bin/procstat/procstat_files.c projects/cxl_iscsi/usr.bin/procstat/procstat_kstack.c projects/cxl_iscsi/usr.bin/procstat/procstat_rlimit.c projects/cxl_iscsi/usr.bin/procstat/procstat_rusage.c projects/cxl_iscsi/usr.bin/procstat/procstat_sigs.c projects/cxl_iscsi/usr.bin/procstat/procstat_threads.c projects/cxl_iscsi/usr.bin/procstat/procstat_vm.c projects/cxl_iscsi/usr.bin/script/script.1 projects/cxl_iscsi/usr.bin/sockstat/sockstat.1 projects/cxl_iscsi/usr.bin/sockstat/sockstat.c projects/cxl_iscsi/usr.bin/tftp/main.c projects/cxl_iscsi/usr.bin/truss/amd64-fbsd.c projects/cxl_iscsi/usr.bin/truss/amd64-fbsd32.c projects/cxl_iscsi/usr.bin/truss/amd64-linux32.c projects/cxl_iscsi/usr.bin/truss/arm-fbsd.c projects/cxl_iscsi/usr.bin/truss/i386-fbsd.c projects/cxl_iscsi/usr.bin/truss/i386-linux.c projects/cxl_iscsi/usr.bin/truss/main.c projects/cxl_iscsi/usr.bin/truss/mips-fbsd.c projects/cxl_iscsi/usr.bin/truss/powerpc-fbsd.c projects/cxl_iscsi/usr.bin/truss/powerpc64-fbsd.c projects/cxl_iscsi/usr.bin/truss/sparc64-fbsd.c projects/cxl_iscsi/usr.bin/truss/syscall.h projects/cxl_iscsi/usr.bin/truss/syscalls.c projects/cxl_iscsi/usr.bin/vi/catalog/Makefile projects/cxl_iscsi/usr.bin/vtfontcvt/vtfontcvt.c projects/cxl_iscsi/usr.bin/w/Makefile projects/cxl_iscsi/usr.bin/wc/Makefile projects/cxl_iscsi/usr.bin/whois/whois.c projects/cxl_iscsi/usr.bin/xargs/tests/regress.n2P0.out projects/cxl_iscsi/usr.bin/xargs/tests/regress.sh projects/cxl_iscsi/usr.bin/xo/Makefile projects/cxl_iscsi/usr.bin/ypcat/ypcat.1 projects/cxl_iscsi/usr.bin/ypmatch/ypmatch.1 projects/cxl_iscsi/usr.bin/ypwhich/Makefile projects/cxl_iscsi/usr.bin/ypwhich/ypwhich.1 projects/cxl_iscsi/usr.bin/ypwhich/ypwhich.c projects/cxl_iscsi/usr.sbin/Makefile projects/cxl_iscsi/usr.sbin/acpi/acpidb/acpidb.c projects/cxl_iscsi/usr.sbin/bhyve/pci_ahci.c projects/cxl_iscsi/usr.sbin/boot0cfg/boot0cfg.8 projects/cxl_iscsi/usr.sbin/config/main.c projects/cxl_iscsi/usr.sbin/ctladm/ctladm.8 projects/cxl_iscsi/usr.sbin/ctladm/ctladm.c projects/cxl_iscsi/usr.sbin/ctld/ctl.conf.5 projects/cxl_iscsi/usr.sbin/ctld/ctld.8 projects/cxl_iscsi/usr.sbin/ctld/ctld.c projects/cxl_iscsi/usr.sbin/ctld/ctld.h projects/cxl_iscsi/usr.sbin/ctld/kernel.c projects/cxl_iscsi/usr.sbin/ctld/parse.y projects/cxl_iscsi/usr.sbin/ctld/token.l projects/cxl_iscsi/usr.sbin/fstyp/Makefile projects/cxl_iscsi/usr.sbin/hyperv/Makefile.inc projects/cxl_iscsi/usr.sbin/iscsid/iscsid.8 projects/cxl_iscsi/usr.sbin/makefs/mtree.c projects/cxl_iscsi/usr.sbin/ndp/ndp.c projects/cxl_iscsi/usr.sbin/ntp/Makefile projects/cxl_iscsi/usr.sbin/ntp/config.h projects/cxl_iscsi/usr.sbin/pciconf/pathnames.h projects/cxl_iscsi/usr.sbin/pciconf/pciconf.8 projects/cxl_iscsi/usr.sbin/pciconf/pciconf.c projects/cxl_iscsi/usr.sbin/pkg/Makefile projects/cxl_iscsi/usr.sbin/pkg/config.c projects/cxl_iscsi/usr.sbin/pkg/config.h projects/cxl_iscsi/usr.sbin/pkg/dns_utils.c projects/cxl_iscsi/usr.sbin/pkg/pkg.c projects/cxl_iscsi/usr.sbin/pmcstat/pmcstat.c projects/cxl_iscsi/usr.sbin/pw/pw_user.c projects/cxl_iscsi/usr.sbin/pw/strtounum.c projects/cxl_iscsi/usr.sbin/pw/tests/pw_useradd.sh projects/cxl_iscsi/usr.sbin/service/service.sh projects/cxl_iscsi/usr.sbin/syslogd/syslogd.c projects/cxl_iscsi/usr.sbin/sysrc/sysrc projects/cxl_iscsi/usr.sbin/sysrc/sysrc.8 projects/cxl_iscsi/usr.sbin/trpt/trpt.c projects/cxl_iscsi/usr.sbin/watchdogd/watchdogd.8 projects/cxl_iscsi/usr.sbin/watchdogd/watchdogd.c projects/cxl_iscsi/usr.sbin/wlandebug/wlandebug.8 projects/cxl_iscsi/usr.sbin/wpa/hostapd/Makefile projects/cxl_iscsi/usr.sbin/wpa/wpa_supplicant/Makefile projects/cxl_iscsi/usr.sbin/yppoll/yppoll.8 projects/cxl_iscsi/usr.sbin/yppoll/yppoll.c projects/cxl_iscsi/usr.sbin/ypserv/Makefile projects/cxl_iscsi/usr.sbin/ypserv/Makefile.yp projects/cxl_iscsi/usr.sbin/ypserv/ypinit.8 projects/cxl_iscsi/usr.sbin/ypserv/ypinit.sh projects/cxl_iscsi/usr.sbin/ypset/ypset.8 Directory Properties: projects/cxl_iscsi/ (props changed) projects/cxl_iscsi/cddl/ (props changed) projects/cxl_iscsi/cddl/contrib/opensolaris/ (props changed) projects/cxl_iscsi/contrib/compiler-rt/ (props changed) projects/cxl_iscsi/contrib/expat/ (props changed) projects/cxl_iscsi/contrib/file/ (props changed) projects/cxl_iscsi/contrib/llvm/ (props changed) projects/cxl_iscsi/contrib/llvm/tools/lldb/ (props changed) projects/cxl_iscsi/contrib/ncurses/ (props changed) projects/cxl_iscsi/contrib/subversion/ (props changed) projects/cxl_iscsi/contrib/tzdata/ (props changed) projects/cxl_iscsi/crypto/openssh/ (props changed) projects/cxl_iscsi/etc/ (props changed) projects/cxl_iscsi/gnu/usr.bin/binutils/ (props changed) projects/cxl_iscsi/include/ (props changed) projects/cxl_iscsi/lib/libc/ (props changed) projects/cxl_iscsi/lib/libutil/ (props changed) projects/cxl_iscsi/lib/libz/ (props changed) projects/cxl_iscsi/sbin/ (props changed) projects/cxl_iscsi/sbin/ipfw/ (props changed) projects/cxl_iscsi/share/ (props changed) projects/cxl_iscsi/share/man/man4/ (props changed) projects/cxl_iscsi/share/zoneinfo/ (props changed) projects/cxl_iscsi/sys/ (props changed) projects/cxl_iscsi/sys/boot/ (props changed) projects/cxl_iscsi/sys/cddl/contrib/opensolaris/ (props changed) projects/cxl_iscsi/sys/conf/ (props changed) projects/cxl_iscsi/sys/contrib/dev/acpica/ (props changed) projects/cxl_iscsi/usr.bin/calendar/ (props changed) projects/cxl_iscsi/usr.bin/procstat/ (props changed) projects/cxl_iscsi/usr.sbin/bhyve/ (props changed) Modified: projects/cxl_iscsi/Makefile.inc1 ============================================================================== --- projects/cxl_iscsi/Makefile.inc1 Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/Makefile.inc1 Wed Sep 9 03:05:13 2015 (r287585) @@ -220,7 +220,7 @@ INSTALLTMP!= /usr/bin/mktemp -d -u -t in # This stage is responsible for creating the object # tree and building any tools that are needed during # the build process. Some programs are listed during -# this phase because they build binaires to generate +# this phase because they build binaries to generate # files needed to build these programs. This stage also # builds the 'build-tools' target rather than 'all'. # 3. cross-tools stage [XMAKE] @@ -449,7 +449,6 @@ LIB32WMAKEENV+= MAKEOBJDIRPREFIX=${LIB32 PATH=${TMPPATH} \ LIBDIR=/usr/lib32 \ SHLIBDIR=/usr/lib32 \ - LIBPRIVATEDIR=/usr/lib32/private \ DTRACE="${DTRACE} -32" LIB32WMAKEFLAGS+= CC="${XCC} ${LIB32FLAGS}" \ CXX="${XCXX} ${LIB32FLAGS}" \ @@ -1128,6 +1127,16 @@ reinstallkernel reinstallkernel.debug: _ cd ${KRNLOBJDIR}/${INSTALLKERNEL}; \ ${CROSSENV} PATH=${TMPPATH} \ ${MAKE} ${IMAKE_INSTALL} KERNEL=${INSTKERNNAME} ${.TARGET:S/kernel//} +.if ${BUILDKERNELS:[#]} > 1 +.for _kernel in ${BUILDKERNELS:[2..-1]} + @echo "--------------------------------------------------------------" + @echo ">>> Installing kernel ${_kernel}" + @echo "--------------------------------------------------------------" + cd ${KRNLOBJDIR}/${_kernel}; \ + ${CROSSENV} PATH=${TMPPATH} \ + ${MAKE} ${IMAKE_INSTALL} KERNEL=${INSTKERNNAME}.${_kernel} ${.TARGET:S/kernel//} +.endfor +.endif distributekernel distributekernel.debug: .if empty(INSTALLKERNEL) @@ -1147,7 +1156,8 @@ distributekernel distributekernel.debug: sed -e 's|^./kernel|.|' ${DESTDIR}/${DISTDIR}/kernel.premeta > \ ${DESTDIR}/${DISTDIR}/kernel.meta .endif -.for _kernel in ${BUILDKERNELS:S/${INSTALLKERNEL}//} +.if ${BUILDKERNELS:[#]} > 1 +.for _kernel in ${BUILDKERNELS:[2..-1]} .if defined(NO_ROOT) echo "#${MTREE_MAGIC}" > ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.premeta .endif @@ -1163,27 +1173,32 @@ distributekernel distributekernel.debug: ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta .endif .endfor +.endif packagekernel: .if defined(NO_ROOT) cd ${DESTDIR}/${DISTDIR}/kernel; \ tar cvf - @${DESTDIR}/${DISTDIR}/kernel.meta | \ ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.txz -.for _kernel in ${BUILDKERNELS:S/${INSTALLKERNEL}//} +.if ${BUILDKERNELS:[#]} > 1 +.for _kernel in ${BUILDKERNELS:[2..-1]} cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \ tar cvf - @${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta | \ ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.txz .endfor +.endif .else cd ${DESTDIR}/${DISTDIR}/kernel; \ tar cvf - . | \ ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.txz -.for _kernel in ${BUILDKERNELS:S/${INSTALLKERNEL}//} +.if ${BUILDKERNELS:[#]} > 1 +.for _kernel in ${BUILDKERNELS:[2..-1]} cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \ tar cvf - . | \ ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.txz .endfor .endif +.endif # # doxygen @@ -1493,6 +1508,8 @@ _btxld= usr.sbin/btxld .if ${XAS:M/*} == "" .if ${MK_BINUTILS_BOOTSTRAP} != "no" _binutils= gnu/usr.bin/binutils +.endif +.if ${MK_ELFTOOLCHAIN_BOOTSTRAP} != "no" _elftctools= lib/libelftc \ usr.bin/elfcopy \ usr.bin/nm \ @@ -1502,7 +1519,7 @@ _elftctools= lib/libelftc \ # cross-build on a FreeBSD 10 host: _elftctools+= usr.bin/addr2line .endif -.elif ${TARGET_ARCH} != ${MACHINE_ARCH} && ${MK_BINUTILS_BOOTSTRAP} != "no" +.elif ${TARGET_ARCH} != ${MACHINE_ARCH} && ${MK_ELFTOOLCHAIN_BOOTSTRAP} != "no" # If cross-building with an external binutils we still need to build strip for # the target (for at least crunchide). _elftctools= lib/libelftc \ @@ -1776,9 +1793,7 @@ cddl/lib/libctf__L: lib/libz__L .endif # cddl/lib/libdtrace requires lib/libproc and lib/librtld_db; it's only built # on select architectures though (see cddl/lib/Makefile) -.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_ARCH} == "amd64" || \ - ${MACHINE_CPUARCH} == "arm" || ${MACHINE_ARCH} == "i386" || \ - ${MACHINE_CPUARCH} == "mips" || ${MACHINE_CPUARCH} == "powerpc" +.if ${MACHINE_CPUARCH} != "sparc64" _prebuild_libs+= lib/libproc lib/librtld_db .endif Modified: projects/cxl_iscsi/ObsoleteFiles.inc ============================================================================== --- projects/cxl_iscsi/ObsoleteFiles.inc Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/ObsoleteFiles.inc Wed Sep 9 03:05:13 2015 (r287585) @@ -38,6 +38,12 @@ # xargs -n1 | sort | uniq -d; # done +# 20150818: *allocm() are gone in jemalloc 4.0.0 +OLD_FILES+=usr/share/man/man3/allocm.3.gz +OLD_FILES+=usr/share/man/man3/dallocm.3.gz +OLD_FILES+=usr/share/man/man3/nallocm.3.gz +OLD_FILES+=usr/share/man/man3/rallocm.3.gz +OLD_FILES+=usr/share/man/man3/sallocm.3.gz # 20150802: Remove netbsd's test on pw(8) OLD_FILES+=usr/tests/usr.sbin/pw/pw_test # 20150719: Remove libarchive.pc @@ -49,6 +55,9 @@ OLD_FILES+=usr/share/man/man4/dtrace-pro OLD_FILES+=usr/share/man/man4/dtrace-sched.4.gz OLD_FILES+=usr/share/man/man4/dtrace-tcp.4.gz OLD_FILES+=usr/share/man/man4/dtrace-udp.4.gz +# 20150624 +OLD_LIBS+=usr/lib/libugidfw.so.4 +OLD_LIBS+=usr/lib32/libugidfw.so.4 # 20150604: Move nvlist man pages to section 9. OLD_FILES+=usr/share/man/man3/libnv.3.gz OLD_FILES+=usr/share/man/man3/nvlist.3.gz Modified: projects/cxl_iscsi/UPDATING ============================================================================== --- projects/cxl_iscsi/UPDATING Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/UPDATING Wed Sep 9 03:05:13 2015 (r287585) @@ -31,6 +31,34 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20150827: + The wireless drivers had undergone changes that remove the 'parent + interface' from the ifconfig -l output. The rc.d network scripts + used to check presence of a parent interface in the list, so old + scripts would fail to start wireless networking. Thus, etcupdate(3) + or mergemaster(8) run is required after kernel update, to update your + rc.d scripts in /etc. + +20150827: + pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl' + These configurations are now automatically interpreted as + 'scrub fragment reassemble'. + +20150817: + Kernel-loadable modules for the random(4) device are back. To use + them, the kernel must have + + device random + options RANDOM_LOADABLE + + kldload(8) can then be used to load random_fortuna.ko + or random_yarrow.ko. Please note that due to the indirect + function calls that the loadable modules need to provide, + the build-in variants will be slightly more efficient. + + The random(4) kernel option RANDOM_DUMMY has been retired due to + unpopularity. It was not all that useful anyway. + 20150813: The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired. Control over building the ELF Tool Chain tools is now provided by Modified: projects/cxl_iscsi/bin/df/df.c ============================================================================== --- projects/cxl_iscsi/bin/df/df.c Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/df/df.c Wed Sep 9 03:05:13 2015 (r287585) @@ -311,7 +311,7 @@ main(int argc, char *argv[]) xo_close_container("storage-system-information"); xo_finish(); - return (rv); + exit(rv); } static char * Modified: projects/cxl_iscsi/bin/ls/Makefile ============================================================================== --- projects/cxl_iscsi/bin/ls/Makefile Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/ls/Makefile Wed Sep 9 03:05:13 2015 (r287585) @@ -5,7 +5,7 @@ PROG= ls SRCS= cmp.c ls.c print.c util.c -LIBADD= util xo +LIBADD= xo util .if !defined(RELEASE_CRUNCH) && \ ${MK_LS_COLORS} != no Modified: projects/cxl_iscsi/bin/pkill/Makefile ============================================================================== --- projects/cxl_iscsi/bin/pkill/Makefile Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/pkill/Makefile Wed Sep 9 03:05:13 2015 (r287585) @@ -5,7 +5,7 @@ PROG= pkill -LIBADD= kvm +LIBADD= kvm jail LINKS= ${BINDIR}/pkill ${BINDIR}/pgrep MLINKS= pkill.1 pgrep.1 Modified: projects/cxl_iscsi/bin/pkill/Makefile.depend ============================================================================== --- projects/cxl_iscsi/bin/pkill/Makefile.depend Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/pkill/Makefile.depend Wed Sep 9 03:05:13 2015 (r287585) @@ -9,6 +9,7 @@ DIRDEPS = \ lib/${CSU_DIR} \ lib/libc \ lib/libcompiler_rt \ + lib/libjail \ lib/libkvm \ Modified: projects/cxl_iscsi/bin/pkill/pkill.1 ============================================================================== --- projects/cxl_iscsi/bin/pkill/pkill.1 Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/pkill/pkill.1 Wed Sep 9 03:05:13 2015 (r287585) @@ -29,7 +29,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd August 9, 2013 +.Dd August 21, 2015 .Dt PKILL 1 .Os .Sh NAME @@ -47,7 +47,7 @@ .Op Fl c Ar class .Op Fl d Ar delim .Op Fl g Ar pgrp -.Op Fl j Ar jid +.Op Fl j Ar jail .Op Fl s Ar sid .Op Fl t Ar tty .Op Fl u Ar euid @@ -63,7 +63,7 @@ .Op Fl U Ar uid .Op Fl c Ar class .Op Fl g Ar pgrp -.Op Fl j Ar jid +.Op Fl j Ar jail .Op Fl s Ar sid .Op Fl t Ar tty .Op Fl u Ar euid @@ -149,16 +149,16 @@ or command. .It Fl i Ignore case distinctions in both the process table and the supplied pattern. -.It Fl j Ar jid -Restrict matches to processes inside jails with a jail ID in the comma-separated -list -.Ar jid . -The value +.It Fl j Ar jail +Restrict matches to processes inside the specified jails. +The argument +.Ar jail +may be .Dq Li any -matches processes in any jail. -The value +to match processes in any jail, .Dq Li none -matches processes not in jail. +to match processes not in jail, +or a comma-separated list of jail IDs or names. .It Fl l Long output. For Modified: projects/cxl_iscsi/bin/pkill/pkill.c ============================================================================== --- projects/cxl_iscsi/bin/pkill/pkill.c Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/pkill/pkill.c Wed Sep 9 03:05:13 2015 (r287585) @@ -59,6 +59,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #define STATUS_MATCH 0 #define STATUS_NOMATCH 1 @@ -78,7 +79,7 @@ enum listtype { LT_GROUP, LT_TTY, LT_PGRP, - LT_JID, + LT_JAIL, LT_SID, LT_CLASS }; @@ -245,7 +246,7 @@ main(int argc, char **argv) cflags |= REG_ICASE; break; case 'j': - makelist(&jidlist, LT_JID, optarg); + makelist(&jidlist, LT_JAIL, optarg); criteria = 1; break; case 'l': @@ -585,7 +586,7 @@ usage(void) fprintf(stderr, "usage: %s %s [-F pidfile] [-G gid] [-M core] [-N system]\n" - " [-P ppid] [-U uid] [-c class] [-g pgrp] [-j jid]\n" + " [-P ppid] [-U uid] [-c class] [-g pgrp] [-j jail]\n" " [-s sid] [-t tty] [-u euid] pattern ...\n", getprogname(), ustr); @@ -700,7 +701,7 @@ makelist(struct listhead *head, enum lis if (li->li_number == 0) li->li_number = getsid(mypid); break; - case LT_JID: + case LT_JAIL: if (li->li_number < 0) errx(STATUS_BADUSAGE, "Negative jail ID `%s'", sp); @@ -766,15 +767,20 @@ foundtty: if ((st.st_mode & S_IFCHR) == li->li_number = st.st_rdev; break; - case LT_JID: + case LT_JAIL: { + int jid; + if (strcmp(sp, "none") == 0) li->li_number = 0; else if (strcmp(sp, "any") == 0) li->li_number = -1; + else if ((jid = jail_getid(sp)) != -1) + li->li_number = jid; else if (*ep != '\0') errx(STATUS_BADUSAGE, - "Invalid jail ID `%s'", sp); + "Invalid jail ID or name `%s'", sp); break; + } case LT_CLASS: li->li_number = -1; li->li_name = strdup(sp); Modified: projects/cxl_iscsi/bin/pkill/tests/pgrep-j_test.sh ============================================================================== --- projects/cxl_iscsi/bin/pkill/tests/pgrep-j_test.sh Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/pkill/tests/pgrep-j_test.sh Wed Sep 9 03:05:13 2015 (r287585) @@ -14,7 +14,7 @@ if [ `id -u` -ne 0 ]; then exit 0 fi -echo "1..3" +echo "1..4" sleep=$(pwd)/sleep.txt ln -sf /bin/sleep $sleep @@ -87,5 +87,30 @@ else fi [ -f ${PWD}/${base}_3_1.pid ] && kill $(cat $PWD/${base}_3_1.pid) [ -f ${PWD}/${base}_3_2.pid ] && kill $(cat $PWD/${base}_3_2.pid) +wait + +# test 4 is like test 1 except with jname instead of jid. +name="pgrep -j " +sleep_amount=8 +jail -c path=/ name=${base}_4_1 ip4.addr=127.0.0.1 \ + command=daemon -p ${PWD}/${base}_4_1.pid $sleep $sleep_amount & + +jail -c path=/ name=${base}_4_2 ip4.addr=127.0.0.1 \ + command=daemon -p ${PWD}/${base}_4_2.pid $sleep $sleep_amount & + +sleep 0.5 + +jname="${base}_4_1,${base}_4_2" +pid1="$(pgrep -f -x -j "$jname" "$sleep $sleep_amount" | sort)" +pid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_4_1.pid)" \ + $(cat ${PWD}/${base}_4_2.pid) | sort) +if [ "$pid1" = "$pid2" ]; then + echo "ok 4 - $name" +else + echo "not ok 4 - $name # pgrep output: '$(echo $pid1)', pidfile output: '$(echo $pid2)'" +fi +[ -f ${PWD}/${base}_4_1.pid ] && kill $(cat ${PWD}/${base}_4_1.pid) +[ -f ${PWD}/${base}_4_2.pid ] && kill $(cat ${PWD}/${base}_4_2.pid) +wait rm -f $sleep Modified: projects/cxl_iscsi/bin/pkill/tests/pkill-j_test.sh ============================================================================== --- projects/cxl_iscsi/bin/pkill/tests/pkill-j_test.sh Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/pkill/tests/pkill-j_test.sh Wed Sep 9 03:05:13 2015 (r287585) @@ -14,7 +14,7 @@ if [ `id -u` -ne 0 ]; then exit 0 fi -echo "1..3" +echo "1..4" sleep=$(pwd)/sleep.txt ln -sf /bin/sleep $sleep @@ -90,5 +90,31 @@ else fi 2>/dev/null [ -f ${PWD}/${base}_3_1.pid ] && kill $(cat ${base}_3_1.pid) [ -f ${PWD}/${base}_3_2.pid ] && kill $(cat ${base}_3_2.pid) +wait + +# test 4 is like test 1 except with jname instead of jid. +name="pkill -j " +sleep_amount=8 +jail -c path=/ name=${base}_4_1 ip4.addr=127.0.0.1 \ + command=daemon -p ${PWD}/${base}_4_1.pid $sleep $sleep_amount & + +jail -c path=/ name=${base}_4_2 ip4.addr=127.0.0.1 \ + command=daemon -p ${PWD}/${base}_4_2.pid $sleep $sleep_amount & + +$sleep $sleep_amount & + +sleep 0.5 + +jname="${base}_4_1,${base}_4_2" +if pkill -f -j "$jname" $sleep && sleep 0.5 && + ! -f ${PWD}/${base}_4_1.pid && + ! -f ${PWD}/${base}_4_2.pid ; then + echo "ok 4 - $name" +else + echo "not ok 4 - $name" +fi 2>/dev/null +[ -f ${PWD}/${base}_4_1.pid ] && kill $(cat ${PWD}/${base}_4_1.pid) +[ -f ${PWD}/${base}_4_2.pid ] && kill $(cat ${PWD}/${base}_4_2.pid) +wait rm -f $sleep Modified: projects/cxl_iscsi/bin/ps/Makefile ============================================================================== --- projects/cxl_iscsi/bin/ps/Makefile Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/ps/Makefile Wed Sep 9 03:05:13 2015 (r287585) @@ -11,6 +11,6 @@ SRCS= fmt.c keyword.c nlist.c print.c ps # on large systems. # CFLAGS+=-DLAZY_PS -LIBADD= m kvm jail xo +LIBADD= m kvm jail xo util .include Modified: projects/cxl_iscsi/bin/rm/rm.c ============================================================================== --- projects/cxl_iscsi/bin/rm/rm.c Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/rm/rm.c Wed Sep 9 03:05:13 2015 (r287585) @@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -86,6 +87,8 @@ main(int argc, char *argv[]) int ch; char *p; + (void)setlocale(LC_ALL, ""); + /* * Test for the special case where the utility is called as * "unlink", for which the functionality provided is greatly Modified: projects/cxl_iscsi/bin/setfacl/setfacl.1 ============================================================================== --- projects/cxl_iscsi/bin/setfacl/setfacl.1 Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/setfacl/setfacl.1 Wed Sep 9 03:05:13 2015 (r287585) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 1, 2013 +.Dd September 4, 2015 .Dt SETFACL 1 .Os .Sh NAME @@ -378,9 +378,11 @@ dir_inherit inherit_only .It n no_propagate +.It I +inherited .El .Pp -Inheritance flags may be only set on directories. +Other than the "inherited" flag, inheritance flags may be only set on directories. .It Ar "ACL type" The ACL type field is either .Dq Li allow Modified: projects/cxl_iscsi/bin/sh/expand.c ============================================================================== --- projects/cxl_iscsi/bin/sh/expand.c Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/sh/expand.c Wed Sep 9 03:05:13 2015 (r287585) @@ -886,7 +886,7 @@ varvalue(const char *name, int quoted, i num = backgndpidval(); break; case '-': - for (i = 0 ; i < NOPTS ; i++) { + for (i = 0 ; i < NSHORTOPTS ; i++) { if (optlist[i].val) STPUTC(optlist[i].letter, expdest); } @@ -1464,21 +1464,11 @@ patmatch(const char *pattern, const char bt_q = q; break; case '[': { - const char *endp; + const char *savep, *saveq; int invert, found; wchar_t chr; - endp = p; - if (*endp == '!' || *endp == '^') - endp++; - do { - while (*endp == CTLQUOTEMARK) - endp++; - if (*endp == 0) - goto dft; /* no matching ] */ - if (*endp == CTLESC) - endp++; - } while (*++endp != ']'); + savep = p, saveq = q; invert = 0; if (*p == '!' || *p == '^') { invert++; @@ -1497,6 +1487,11 @@ patmatch(const char *pattern, const char chr = (unsigned char)*q++; c = *p++; do { + if (c == '\0') { + p = savep, q = saveq; + c = '['; + goto dft; + } if (c == CTLQUOTEMARK) continue; if (c == '[' && *p == ':') { Modified: projects/cxl_iscsi/bin/sh/miscbltin.c ============================================================================== --- projects/cxl_iscsi/bin/sh/miscbltin.c Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/sh/miscbltin.c Wed Sep 9 03:05:13 2015 (r287585) @@ -100,6 +100,7 @@ readcmd(int argc __unused, char **argv _ int i; int is_ifs; int saveall = 0; + ptrdiff_t lastnonifs, lastnonifsws; struct timeval tv; char *tvptr; fd_set ifds; @@ -169,6 +170,7 @@ readcmd(int argc __unused, char **argv _ startword = 2; backslash = 0; STARTSTACKSTR(p); + lastnonifs = lastnonifsws = -1; for (;;) { nread = read(STDIN_FILENO, &c, 1); if (nread == -1) { @@ -191,9 +193,11 @@ readcmd(int argc __unused, char **argv _ CHECKSTRSPACE(1, p); if (backslash) { backslash = 0; - startword = 0; - if (c != '\n') + if (c != '\n') { + startword = 0; + lastnonifs = lastnonifsws = p - stackblock(); USTPUTC(c, p); + } continue; } if (!rflag && c == '\\') { @@ -217,8 +221,10 @@ readcmd(int argc __unused, char **argv _ if (is_ifs == 2 && startword == 1) { /* Only one non-whitespace IFS per word */ startword = 2; - if (saveall) + if (saveall) { + lastnonifsws = p - stackblock(); USTPUTC(c, p); + } continue; } } @@ -229,6 +235,7 @@ readcmd(int argc __unused, char **argv _ if (saveall) /* Not just a spare terminator */ saveall++; + lastnonifs = lastnonifsws = p - stackblock(); USTPUTC(c, p); continue; } @@ -239,6 +246,8 @@ readcmd(int argc __unused, char **argv _ if (ap[1] == NULL) { /* Last variable needs all IFS chars */ saveall++; + if (is_ifs == 2) + lastnonifsws = p - stackblock(); USTPUTC(c, p); continue; } @@ -247,20 +256,17 @@ readcmd(int argc __unused, char **argv _ setvar(*ap, stackblock(), 0); ap++; STARTSTACKSTR(p); + lastnonifs = lastnonifsws = -1; } STACKSTRNUL(p); - /* Remove trailing IFS chars */ - for (; stackblock() <= --p; *p = 0) { - if (!strchr(ifs, *p)) - break; - if (strchr(" \t\n", *p)) - /* Always remove whitespace */ - continue; - if (saveall > 1) - /* Don't remove non-whitespace unless it was naked */ - break; - } + /* + * Remove trailing IFS chars: always remove whitespace, don't remove + * non-whitespace unless it was naked + */ + if (saveall <= 1) + lastnonifsws = lastnonifs; + stackblock()[lastnonifsws + 1] = '\0'; setvar(*ap, stackblock(), 0); /* Set any remaining args to "" */ Modified: projects/cxl_iscsi/bin/sh/options.c ============================================================================== --- projects/cxl_iscsi/bin/sh/options.c Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/sh/options.c Wed Sep 9 03:05:13 2015 (r287585) @@ -73,6 +73,7 @@ char *minusc; /* argument to -c option static void options(int); static void minus_o(char *, int); static void setoption(int, int); +static void setoptionbyindex(int, int); static int getopts(char *, char *, char **, char ***, char **); @@ -269,7 +270,7 @@ minus_o(char *name, int val) } else { for (i = 0; i < NOPTS; i++) if (equal(name, optlist[i].name)) { - setoption(optlist[i].letter, val); + setoptionbyindex(i, val); return; } error("Illegal option -o %s", name); @@ -278,26 +279,32 @@ minus_o(char *name, int val) static void -setoption(int flag, int val) +setoptionbyindex(int idx, int val) { - int i; - - if (flag == 'p' && !val && privileged) { + if (optlist[idx].letter == 'p' && !val && privileged) { if (setgid(getgid()) == -1) error("setgid"); if (setuid(getuid()) == -1) error("setuid"); } - for (i = 0; i < NOPTS; i++) + optlist[idx].val = val; + if (val) { + /* #%$ hack for ksh semantics */ + if (optlist[idx].letter == 'V') + Eflag = 0; + else if (optlist[idx].letter == 'E') + Vflag = 0; + } +} + +static void +setoption(int flag, int val) +{ + int i; + + for (i = 0; i < NSHORTOPTS; i++) if (optlist[i].letter == flag) { - optlist[i].val = val; - if (val) { - /* #%$ hack for ksh semantics */ - if (flag == 'V') - Eflag = 0; - else if (flag == 'E') - Vflag = 0; - } + setoptionbyindex(i, val); return; } error("Illegal option -%c", flag); Modified: projects/cxl_iscsi/bin/sh/options.h ============================================================================== --- projects/cxl_iscsi/bin/sh/options.h Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/sh/options.h Wed Sep 9 03:05:13 2015 (r287585) @@ -64,8 +64,10 @@ struct shparam { #define Tflag optlist[16].val #define Pflag optlist[17].val #define hflag optlist[18].val +#define nologflag optlist[19].val -#define NOPTS 19 +#define NSHORTOPTS 19 +#define NOPTS 20 struct optent { const char *name; @@ -95,6 +97,7 @@ struct optent optlist[NOPTS] = { { "trapsasync", 'T', 0 }, { "physical", 'P', 0 }, { "trackall", 'h', 0 }, + { "nolog", '\0', 0 }, }; #endif Modified: projects/cxl_iscsi/bin/sh/parser.c ============================================================================== --- projects/cxl_iscsi/bin/sh/parser.c Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/sh/parser.c Wed Sep 9 03:05:13 2015 (r287585) @@ -106,6 +106,8 @@ static int startlinno; /* line # where static int funclinno; /* line # where the current function started */ static struct parser_temp *parser_temp; +#define NOEOFMARK ((const char *)&heredoclist) + static union node *list(int); static union node *andor(void); @@ -972,6 +974,10 @@ checkend(int c, const char *eofmark, int pungetc(); pushstring(eofmark + 1, q - (eofmark + 1), NULL); } + } else if (c == '\n' && *eofmark == '\0') { + c = PEOF; + plinno++; + needprompt = doprompt; } return (c); } @@ -1195,7 +1201,8 @@ parsebackq(char *out, struct nodelist ** static char * readcstyleesc(char *out) { - int c, v, i, n; + int c, vc, i, n; + unsigned int v; c = pgetc(); switch (c) { @@ -1310,12 +1317,12 @@ readcstyleesc(char *out) default: synerror("Bad escape sequence"); } - v = (char)v; + vc = (char)v; /* * We can't handle NUL bytes. * POSIX says we should skip till the closing quote. */ - if (v == '\0') { + if (vc == '\0') { while ((c = pgetc()) != '\'') { if (c == '\\') c = pgetc(); @@ -1332,9 +1339,9 @@ readcstyleesc(char *out) pungetc(); return out; } - if (SQSYNTAX[v] == CCTL) + if (SQSYNTAX[vc] == CCTL) USTPUTC(CTLESC, out); - USTPUTC(v, out); + USTPUTC(vc, out); return out; } @@ -1382,7 +1389,7 @@ readtoken1(int firstc, char const *initi STARTSTACKSTR(out); loop: { /* for each line, until end of word */ - if (eofmark) + if (eofmark && eofmark != NOEOFMARK) /* set c to PEOF if at end of here document */ c = checkend(c, eofmark, striptabs); for (;;) { /* until end of line or end of word */ @@ -1661,7 +1668,7 @@ varname: pungetc(); else if (c == '\n' || c == PEOF) synerror("Unexpected end of line in substitution"); - else + else if (BASESYNTAX[c] != CCTL) USTPUTC(c, out); } if (subtype == 0) { @@ -1677,7 +1684,8 @@ varname: synerror("Unexpected end of line in substitution"); if (flags == VSNUL) STPUTC(':', out); - STPUTC(c, out); + if (BASESYNTAX[c] != CCTL) + STPUTC(c, out); subtype = VSERROR; } else subtype = p - types + VSNORMAL; @@ -2044,7 +2052,7 @@ expandstr(const char *ps) parser_temp = NULL; setinputstring(ps, 1); doprompt = 0; - readtoken1(pgetc(), DQSYNTAX, "", 0); + readtoken1(pgetc(), DQSYNTAX, NOEOFMARK, 0); if (backquotelist != NULL) error("Command substitution not allowed here"); Modified: projects/cxl_iscsi/bin/sh/sh.1 ============================================================================== --- projects/cxl_iscsi/bin/sh/sh.1 Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/sh/sh.1 Wed Sep 9 03:05:13 2015 (r287585) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd July 11, 2015 +.Dd August 29, 2015 .Dt SH 1 .Os .Sh NAME @@ -343,6 +343,11 @@ Write each command variable subjected to parameter expansion and arithmetic expansion) to standard error before it is executed. Useful for debugging. +.It nolog +Another do-nothing option for +.Tn POSIX +compliance. +It only has a long name. .El .Pp The @@ -1173,7 +1178,9 @@ The only special parameter that can be m .Ql - . Making .Ql - -local causes any shell options that are +local causes any shell options +(including those that only have long names) +that are changed via the .Ic set command inside the function to be Modified: projects/cxl_iscsi/bin/sh/tests/builtins/Makefile ============================================================================== --- projects/cxl_iscsi/bin/sh/tests/builtins/Makefile Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/bin/sh/tests/builtins/Makefile Wed Sep 9 03:05:13 2015 (r287585) @@ -39,6 +39,7 @@ FILES+= case16.0 FILES+= case17.0 FILES+= case18.0 FILES+= case19.0 +FILES+= case20.0 FILES+= cd1.0 FILES+= cd2.0 FILES+= cd3.0 @@ -121,6 +122,8 @@ FILES+= read4.0 read4.0.stdout FILES+= read5.0 FILES+= read6.0 FILES+= read7.0 +FILES+= read8.0 +FILES+= read9.0 FILES+= return1.0 FILES+= return2.1 FILES+= return3.1 Copied: projects/cxl_iscsi/bin/sh/tests/builtins/case20.0 (from r287584, head/bin/sh/tests/builtins/case20.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/cxl_iscsi/bin/sh/tests/builtins/case20.0 Wed Sep 9 03:05:13 2015 (r287585, copy of r287584, head/bin/sh/tests/builtins/case20.0) @@ -0,0 +1,9 @@ +# $FreeBSD$ + +# Shells do not agree about what this pattern should match, but it is +# certain that it must not crash and the missing close bracket must not +# be simply ignored. + +case B in +[[:alpha:]) echo bad ;; +esac Copied: projects/cxl_iscsi/bin/sh/tests/builtins/read8.0 (from r287584, head/bin/sh/tests/builtins/read8.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/cxl_iscsi/bin/sh/tests/builtins/read8.0 Wed Sep 9 03:05:13 2015 (r287585, copy of r287584, head/bin/sh/tests/builtins/read8.0) @@ -0,0 +1,17 @@ +# $FreeBSD$ + +read a b c <<\EOF +\ +A\ + \ + \ + \ +B\ + \ + \ +C\ + \ + \ + \ +EOF +[ "$a.$b.$c" = "A.B.C" ] Copied: projects/cxl_iscsi/bin/sh/tests/builtins/read9.0 (from r287584, head/bin/sh/tests/builtins/read9.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/cxl_iscsi/bin/sh/tests/builtins/read9.0 Wed Sep 9 03:05:13 2015 (r287585, copy of r287584, head/bin/sh/tests/builtins/read9.0) @@ -0,0 +1,10 @@ +# $FreeBSD$ + +empty='' +read a b c <&1 >/dev/null) +[ $? -ne 0 ] && [ -n "$v" ] Copied: projects/cxl_iscsi/bin/sh/tests/parser/dollar-quote13.0 (from r287584, head/bin/sh/tests/parser/dollar-quote13.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/cxl_iscsi/bin/sh/tests/parser/dollar-quote13.0 Wed Sep 9 03:05:13 2015 (r287585, copy of r287584, head/bin/sh/tests/parser/dollar-quote13.0) @@ -0,0 +1,8 @@ +# $FreeBSD$ + +# This Unicode escape sequence that has never been in range should either +# fail to expand or expand to a fallback. + +c=$(eval printf %s \$\'\\Uffffff41\' 2>/dev/null) +r=$(($? != 0)) +[ "$r.$c" = '1.' ] || [ "$r.$c" = '0.?' ] || [ "$r.$c" = $'0.\u2222' ] Copied: projects/cxl_iscsi/bin/sh/tests/parser/heredoc13.0 (from r287584, head/bin/sh/tests/parser/heredoc13.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/cxl_iscsi/bin/sh/tests/parser/heredoc13.0 Wed Sep 9 03:05:13 2015 (r287585, copy of r287584, head/bin/sh/tests/parser/heredoc13.0) @@ -0,0 +1,21 @@ +# $FreeBSD$ + +failures=0 + +check() { + if ! eval "[ $* ]"; then + echo "Failed: $*" + : $((failures += 1)) + fi +} + +check '"$(cat <<"" + +echo yes)" = "yes"' + +check '"$(cat <<"" +yes + +)" = "yes"' + +exit $((failures != 0)) Modified: projects/cxl_iscsi/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h ============================================================================== --- projects/cxl_iscsi/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h Wed Sep 9 01:51:38 2015 (r287584) +++ projects/cxl_iscsi/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h Wed Sep 9 03:05:13 2015 (r287585) @@ -655,13 +655,6 @@ extern int zfs_secpolicy_rename_perms(co extern int zfs_secpolicy_destroy_perms(const char *name, cred_t *cr); extern zoneid_t getzoneid(void); /* Random compatibility stuff. */ -#define lbolt (gethrtime() >> 23) -#define lbolt64 (gethrtime() >> 23) - -extern uint64_t physmem; - -#define gethrestime_sec() time(NULL) - #define pwrite64(d, p, n, o) pwrite(d, p, n, o) #define readdir64(d) readdir(d) #define SIGPENDING(td) (0) Modified: projects/cxl_iscsi/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c ============================================================================== --- projects/cxl_iscsi/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c Wed Sep 9 01:51:38 2015 (r287584) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Wed Sep 9 04:34:55 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DAE199CC120 for ; Wed, 9 Sep 2015 04:34:55 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CC2F41F0F; Wed, 9 Sep 2015 04:34:55 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t894Ytqv081008; Wed, 9 Sep 2015 04:34:55 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t894Ytx8081007; Wed, 9 Sep 2015 04:34:55 GMT (envelope-from np@FreeBSD.org) Message-Id: <201509090434.t894Ytx8081007@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Wed, 9 Sep 2015 04:34:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287589 - projects/cxl_iscsi/sys/dev/cxgbe/cxgbei X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Sep 2015 04:34:55 -0000 Author: np Date: Wed Sep 9 04:34:55 2015 New Revision: 287589 URL: https://svnweb.freebsd.org/changeset/base/287589 Log: Catch up with r286806. Modified: projects/cxl_iscsi/sys/dev/cxgbe/cxgbei/cxgbei.c Modified: projects/cxl_iscsi/sys/dev/cxgbe/cxgbei/cxgbei.c ============================================================================== --- projects/cxl_iscsi/sys/dev/cxgbe/cxgbei/cxgbei.c Wed Sep 9 04:16:55 2015 (r287588) +++ projects/cxl_iscsi/sys/dev/cxgbe/cxgbei/cxgbei.c Wed Sep 9 04:34:55 2015 (r287589) @@ -70,7 +70,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include From owner-svn-src-projects@freebsd.org Thu Sep 10 20:35:52 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BD5CDA00469 for ; Thu, 10 Sep 2015 20:35:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AAD481A22; Thu, 10 Sep 2015 20:35:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t8AKZqUq082886; Thu, 10 Sep 2015 20:35:52 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t8AKZm4J082868; Thu, 10 Sep 2015 20:35:48 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201509102035.t8AKZm4J082868@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 10 Sep 2015 20:35:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r287626 - in projects/clang370-import: contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/asan/scripts contrib/compiler-rt/li... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Sep 2015 20:35:52 -0000 Author: dim Date: Thu Sep 10 20:35:47 2015 New Revision: 287626 URL: https://svnweb.freebsd.org/changeset/base/287626 Log: Update compiler-rt to 3.7.0 release. This also includes the sanitizer and profile libraries. Added: projects/clang370-import/contrib/compiler-rt/lib/builtins/atomic_flag_clear.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/atomic_flag_clear.c projects/clang370-import/contrib/compiler-rt/lib/builtins/atomic_flag_clear_explicit.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/atomic_flag_clear_explicit.c projects/clang370-import/contrib/compiler-rt/lib/builtins/atomic_flag_test_and_set.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/atomic_flag_test_and_set.c projects/clang370-import/contrib/compiler-rt/lib/builtins/atomic_flag_test_and_set_explicit.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/atomic_flag_test_and_set_explicit.c projects/clang370-import/contrib/compiler-rt/lib/builtins/atomic_signal_fence.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/atomic_signal_fence.c projects/clang370-import/contrib/compiler-rt/lib/builtins/atomic_thread_fence.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/atomic_thread_fence.c projects/clang370-import/contrib/compiler-rt/lib/builtins/extendhfsf2.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/extendhfsf2.c projects/clang370-import/contrib/compiler-rt/lib/builtins/i386/chkstk.S - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/i386/chkstk.S projects/clang370-import/contrib/compiler-rt/lib/builtins/truncdfhf2.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/truncdfhf2.c projects/clang370-import/contrib/compiler-rt/lib/builtins/truncsfhf2.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/truncsfhf2.c projects/clang370-import/contrib/compiler-rt/lib/builtins/x86_64/chkstk.S - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/x86_64/chkstk.S projects/clang370-import/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/profile/InstrProfilingUtil.c projects/clang370-import/contrib/compiler-rt/lib/profile/InstrProfilingUtil.h - copied unchanged from r287599, vendor/compiler-rt/dist/lib/profile/InstrProfilingUtil.h projects/clang370-import/contrib/compiler-rt/lib/safestack/ - copied from r287599, vendor/compiler-rt/dist/lib/safestack/ projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.h - copied unchanged from r287599, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h - copied unchanged from r287599, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_internal.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc - copied unchanged from r287599, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_mac.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.h - copied unchanged from r287599, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_mac.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_process_libcdep.cc - copied unchanged from r287599, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_process_libcdep.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.h - copied unchanged from r287599, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_win.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc - copied unchanged from r287599, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc - copied unchanged from r287599, vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.h - copied unchanged from r287599, vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors.h projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc - copied unchanged from r287599, vendor/compiler-rt/dist/lib/tsan/rtl/tsan_new_delete.cc projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_init_standalone.cc - copied unchanged from r287599, vendor/compiler-rt/dist/lib/ubsan/ubsan_init_standalone.cc projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_platform.h - copied unchanged from r287599, vendor/compiler-rt/dist/lib/ubsan/ubsan_platform.h projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc - copied unchanged from r287599, vendor/compiler-rt/dist/lib/ubsan/ubsan_type_hash_itanium.cc projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_win.cc - copied unchanged from r287599, vendor/compiler-rt/dist/lib/ubsan/ubsan_type_hash_win.cc projects/clang370-import/lib/libclang_rt/asan-preinit/ projects/clang370-import/lib/libclang_rt/asan-preinit/Makefile (contents, props changed) projects/clang370-import/lib/libclang_rt/ubsan_standalone/ - copied from r287599, projects/clang370-import/lib/libclang_rt/ubsan/ projects/clang370-import/lib/libclang_rt/ubsan_standalone_cxx/ - copied from r287599, projects/clang370-import/lib/libclang_rt/ubsan_cxx/ Replaced: projects/clang370-import/contrib/compiler-rt/lib/builtins/fixtfdi.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/fixtfdi.c projects/clang370-import/contrib/compiler-rt/lib/builtins/fixtfsi.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/fixtfsi.c projects/clang370-import/contrib/compiler-rt/lib/builtins/fixtfti.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/fixtfti.c projects/clang370-import/contrib/compiler-rt/lib/builtins/fixunstfdi.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/fixunstfdi.c projects/clang370-import/contrib/compiler-rt/lib/builtins/fixunstfsi.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/fixunstfsi.c projects/clang370-import/contrib/compiler-rt/lib/builtins/fixunstfti.c - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/fixunstfti.c projects/clang370-import/contrib/compiler-rt/lib/builtins/fp_fixint_impl.inc - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/fp_fixint_impl.inc projects/clang370-import/contrib/compiler-rt/lib/builtins/fp_fixuint_impl.inc - copied unchanged from r287599, vendor/compiler-rt/dist/lib/builtins/fp_fixuint_impl.inc Deleted: projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_posix_libcdep.cc projects/clang370-import/lib/libclang_rt/san/ projects/clang370-import/lib/libclang_rt/ubsan/ projects/clang370-import/lib/libclang_rt/ubsan_cxx/ Modified: projects/clang370-import/contrib/compiler-rt/LICENSE.TXT projects/clang370-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h projects/clang370-import/contrib/compiler-rt/include/sanitizer/dfsan_interface.h projects/clang370-import/contrib/compiler-rt/include/sanitizer/lsan_interface.h projects/clang370-import/contrib/compiler-rt/include/sanitizer/msan_interface.h projects/clang370-import/contrib/compiler-rt/lib/asan/asan_allocator.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_allocator.h projects/clang370-import/contrib/compiler-rt/lib/asan/asan_fake_stack.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_flags.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_globals.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_interceptors.h projects/clang370-import/contrib/compiler-rt/lib/asan/asan_interface_internal.h projects/clang370-import/contrib/compiler-rt/lib/asan/asan_internal.h projects/clang370-import/contrib/compiler-rt/lib/asan/asan_linux.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_mac.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_mapping.h projects/clang370-import/contrib/compiler-rt/lib/asan/asan_poisoning.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_poisoning.h projects/clang370-import/contrib/compiler-rt/lib/asan/asan_posix.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_report.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_report.h projects/clang370-import/contrib/compiler-rt/lib/asan/asan_rtl.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_stats.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_stats.h projects/clang370-import/contrib/compiler-rt/lib/asan/asan_suppressions.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_suppressions.h projects/clang370-import/contrib/compiler-rt/lib/asan/asan_thread.h projects/clang370-import/contrib/compiler-rt/lib/asan/asan_win.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc projects/clang370-import/contrib/compiler-rt/lib/asan/asan_win_dynamic_runtime_thunk.cc projects/clang370-import/contrib/compiler-rt/lib/asan/scripts/asan_symbolize.py projects/clang370-import/contrib/compiler-rt/lib/asan/tests/asan_asm_test.cc projects/clang370-import/contrib/compiler-rt/lib/asan/tests/asan_str_test.cc projects/clang370-import/contrib/compiler-rt/lib/asan/tests/asan_test.cc projects/clang370-import/contrib/compiler-rt/lib/builtins/clear_cache.c projects/clang370-import/contrib/compiler-rt/lib/builtins/enable_execute_stack.c projects/clang370-import/contrib/compiler-rt/lib/builtins/fixdfdi.c projects/clang370-import/contrib/compiler-rt/lib/builtins/fixsfdi.c projects/clang370-import/contrib/compiler-rt/lib/builtins/fixunsdfdi.c projects/clang370-import/contrib/compiler-rt/lib/builtins/fixunsdfti.c projects/clang370-import/contrib/compiler-rt/lib/builtins/fixunssfdi.c projects/clang370-import/contrib/compiler-rt/lib/builtins/fp_extend.h projects/clang370-import/contrib/compiler-rt/lib/builtins/fp_extend_impl.inc projects/clang370-import/contrib/compiler-rt/lib/builtins/fp_trunc.h projects/clang370-import/contrib/compiler-rt/lib/builtins/fp_trunc_impl.inc projects/clang370-import/contrib/compiler-rt/lib/builtins/int_endianness.h projects/clang370-import/contrib/compiler-rt/lib/builtins/int_lib.h projects/clang370-import/contrib/compiler-rt/lib/dfsan/dfsan.cc projects/clang370-import/contrib/compiler-rt/lib/dfsan/dfsan_custom.cc projects/clang370-import/contrib/compiler-rt/lib/dfsan/done_abilist.txt projects/clang370-import/contrib/compiler-rt/lib/dfsan/scripts/check_custom_wrappers.sh projects/clang370-import/contrib/compiler-rt/lib/interception/interception.h projects/clang370-import/contrib/compiler-rt/lib/interception/interception_win.cc projects/clang370-import/contrib/compiler-rt/lib/lsan/lsan_common.cc projects/clang370-import/contrib/compiler-rt/lib/lsan/lsan_common.h projects/clang370-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc projects/clang370-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc projects/clang370-import/contrib/compiler-rt/lib/lsan/lsan_thread.h projects/clang370-import/contrib/compiler-rt/lib/msan/msan.cc projects/clang370-import/contrib/compiler-rt/lib/msan/msan.h projects/clang370-import/contrib/compiler-rt/lib/msan/msan.syms.extra projects/clang370-import/contrib/compiler-rt/lib/msan/msan_allocator.cc projects/clang370-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc projects/clang370-import/contrib/compiler-rt/lib/msan/msan_interface_internal.h projects/clang370-import/contrib/compiler-rt/lib/msan/msan_linux.cc projects/clang370-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc projects/clang370-import/contrib/compiler-rt/lib/msan/msan_origin.h projects/clang370-import/contrib/compiler-rt/lib/msan/msan_poisoning.cc projects/clang370-import/contrib/compiler-rt/lib/msan/msan_report.cc projects/clang370-import/contrib/compiler-rt/lib/msan/msan_thread.cc projects/clang370-import/contrib/compiler-rt/lib/msan/tests/msan_test.cc projects/clang370-import/contrib/compiler-rt/lib/profile/GCDAProfiling.c projects/clang370-import/contrib/compiler-rt/lib/profile/InstrProfiling.h projects/clang370-import/contrib/compiler-rt/lib/profile/InstrProfilingFile.c projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_msvc.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_mapping_libcdep.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.h projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/scripts/check_lint.sh projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/scripts/cpplint.py projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/scripts/gen_dynamic_list.py projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/scripts/litlint.py projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/scripts/sancov.py projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/tests/sanitizer_libc_test.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/tests/sanitizer_posix_test.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/tests/sanitizer_procmaps_test.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_printer_test.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_test.cc projects/clang370-import/contrib/compiler-rt/lib/sanitizer_common/tests/sanitizer_stoptheworld_test.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/dd/dd_rtl.h projects/clang370-import/contrib/compiler-rt/lib/tsan/go/buildgo.sh projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan.syms.extra projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_defs.h projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_fd.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_fd.h projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.h projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_inl.h projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.h projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.h projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_symbolize.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_symbolize.h projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.cc projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h projects/clang370-import/contrib/compiler-rt/lib/tsan/rtl/tsan_update_shadow_word_inl.h projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_diag.h projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_flags.cc projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_flags.h projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.h projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_init.cc projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_init.h projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash.cc projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash.h projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_value.cc projects/clang370-import/contrib/compiler-rt/lib/ubsan/ubsan_value.h projects/clang370-import/lib/libclang_rt/Makefile projects/clang370-import/lib/libclang_rt/Makefile.inc projects/clang370-import/lib/libclang_rt/asan/Makefile projects/clang370-import/lib/libclang_rt/asan_cxx/Makefile projects/clang370-import/lib/libclang_rt/profile/Makefile projects/clang370-import/lib/libclang_rt/ubsan_standalone/Makefile projects/clang370-import/lib/libclang_rt/ubsan_standalone_cxx/Makefile projects/clang370-import/lib/libcompiler_rt/Makefile Directory Properties: projects/clang370-import/contrib/compiler-rt/ (props changed) Modified: projects/clang370-import/contrib/compiler-rt/LICENSE.TXT ============================================================================== --- projects/clang370-import/contrib/compiler-rt/LICENSE.TXT Thu Sep 10 17:46:48 2015 (r287625) +++ projects/clang370-import/contrib/compiler-rt/LICENSE.TXT Thu Sep 10 20:35:47 2015 (r287626) @@ -14,7 +14,7 @@ Full text of the relevant licenses is in University of Illinois/NCSA Open Source License -Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT +Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT All rights reserved. @@ -55,7 +55,7 @@ SOFTWARE. ============================================================================== -Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT +Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal Modified: projects/clang370-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h ============================================================================== --- projects/clang370-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h Thu Sep 10 17:46:48 2015 (r287625) +++ projects/clang370-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h Thu Sep 10 20:35:47 2015 (r287626) @@ -39,6 +39,23 @@ extern "C" { // Some of the entries in *data will be zero. uintptr_t __sanitizer_get_coverage_guards(uintptr_t **data); + // The coverage instrumentation may optionally provide imprecise counters. + // Rather than exposing the counter values to the user we instead map + // the counters to a bitset. + // Every counter is associated with 8 bits in the bitset. + // We define 8 value ranges: 1, 2, 3, 4-7, 8-15, 16-31, 32-127, 128+ + // The i-th bit is set to 1 if the counter value is in the i-th range. + // This counter-based coverage implementation is *not* thread-safe. + + // Returns the number of registered coverage counters. + uintptr_t __sanitizer_get_number_of_counters(); + // Updates the counter 'bitset', clears the counters and returns the number of + // new bits in 'bitset'. + // If 'bitset' is nullptr, only clears the counters. + // Otherwise 'bitset' should be at least + // __sanitizer_get_number_of_counters bytes long and 8-aligned. + uintptr_t + __sanitizer_update_counter_bitset_and_clear_counters(uint8_t *bitset); #ifdef __cplusplus } // extern "C" #endif Modified: projects/clang370-import/contrib/compiler-rt/include/sanitizer/dfsan_interface.h ============================================================================== --- projects/clang370-import/contrib/compiler-rt/include/sanitizer/dfsan_interface.h Thu Sep 10 17:46:48 2015 (r287625) +++ projects/clang370-import/contrib/compiler-rt/include/sanitizer/dfsan_interface.h Thu Sep 10 20:35:47 2015 (r287626) @@ -91,6 +91,16 @@ void dfsan_set_write_callback(dfsan_writ ///