From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 00:08:51 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6876710B; Sun, 20 Jul 2014 00:08:51 +0000 (UTC) Received: from svn.freebsd.org (svn.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 558B92BF1; Sun, 20 Jul 2014 00:08:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K08pOZ064212; Sun, 20 Jul 2014 00:08:51 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K08pZV064211; Sun, 20 Jul 2014 00:08:51 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201407200008.s6K08pZV064211@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 20 Jul 2014 00:08:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268898 - head/sys/powerpc/ps3 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 00:08:51 -0000 Author: nwhitehorn Date: Sun Jul 20 00:08:50 2014 New Revision: 268898 URL: http://svnweb.freebsd.org/changeset/base/268898 Log: Fix allocation of 128MB extended memory region, broken since some careless modifications in December. MFC after: 3 days Modified: head/sys/powerpc/ps3/platform_ps3.c Modified: head/sys/powerpc/ps3/platform_ps3.c ============================================================================== --- head/sys/powerpc/ps3/platform_ps3.c Sat Jul 19 23:57:36 2014 (r268897) +++ head/sys/powerpc/ps3/platform_ps3.c Sun Jul 20 00:08:50 2014 (r268898) @@ -110,14 +110,6 @@ ps3_probe(platform_t plat) static int ps3_attach(platform_t plat) { - uint64_t junk; - int count; - struct mem_region avail_regions[2]; - - ps3_mem_regions(plat, NULL, NULL, avail_regions, &count); - - lv1_allocate_memory(avail_regions[1].mr_size, 24 /* 16 MB pages */, - 0, 0x04 /* any address */, &avail_regions[1].mr_start, &junk); pmap_mmu_install("mmu_ps3", BUS_PROBE_SPECIFIC); cpu_idle_hook = ps3_cpu_idle; @@ -152,6 +144,11 @@ ps3_mem_regions(platform_t plat, struct /* Convert to maximum amount we can allocate in 16 MB pages */ avail_regions[1].mr_size -= avail_regions[0].mr_size; avail_regions[1].mr_size -= avail_regions[1].mr_size % (16*1024*1024); + + /* Allocate extended memory region */ + lv1_allocate_memory(avail_regions[1].mr_size, 24 /* 16 MB pages */, + 0, 0x04 /* any address */, &avail_regions[1].mr_start, &junk); + *availsz = 2; if (phys != NULL) { From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 00:21:39 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 85D3545A; Sun, 20 Jul 2014 00:21:39 +0000 (UTC) Received: from svn.freebsd.org (svn.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 6CEBA2D1B; Sun, 20 Jul 2014 00:21:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K0LdEV070274; Sun, 20 Jul 2014 00:21:39 GMT (envelope-from bapt@svn.freebsd.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K0LduN070272; Sun, 20 Jul 2014 00:21:39 GMT (envelope-from bapt@svn.freebsd.org) Message-Id: <201407200021.s6K0LduN070272@svn.freebsd.org> From: Baptiste Daroussin Date: Sun, 20 Jul 2014 00:21:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r268899 - in stable/10: contrib/byacc contrib/byacc/package contrib/byacc/package/debian contrib/byacc/package/pkgsrc contrib/byacc/test contrib/byacc/test/btyacc contrib/byacc/test/yac... X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 00:21:39 -0000 Author: bapt Date: Sun Jul 20 00:21:38 2014 New Revision: 268899 URL: http://svnweb.freebsd.org/changeset/base/268899 Log: MFC: r257315, r260445, r264803 Update byacc to 20140422 Added: stable/10/contrib/byacc/MANIFEST - copied, changed from r264803, head/contrib/byacc/MANIFEST stable/10/contrib/byacc/NOTES-btyacc-Changes - copied unchanged from r264803, head/contrib/byacc/NOTES-btyacc-Changes stable/10/contrib/byacc/NOTES-btyacc-Disposition - copied unchanged from r264803, head/contrib/byacc/NOTES-btyacc-Disposition stable/10/contrib/byacc/README.BTYACC - copied, changed from r264803, head/contrib/byacc/README.BTYACC stable/10/contrib/byacc/btyaccpar.c - copied unchanged from r264803, head/contrib/byacc/btyaccpar.c stable/10/contrib/byacc/btyaccpar.skel - copied unchanged from r264803, head/contrib/byacc/btyaccpar.skel stable/10/contrib/byacc/mstring.c - copied, changed from r264803, head/contrib/byacc/mstring.c stable/10/contrib/byacc/package/mingw-byacc.spec - copied, changed from r257315, head/contrib/byacc/package/mingw-byacc.spec stable/10/contrib/byacc/skel2c - copied unchanged from r264803, head/contrib/byacc/skel2c stable/10/contrib/byacc/test/btyacc/ - copied from r264803, head/contrib/byacc/test/btyacc/ stable/10/contrib/byacc/test/btyacc_calc1.y - copied unchanged from r264803, head/contrib/byacc/test/btyacc_calc1.y stable/10/contrib/byacc/test/btyacc_demo.y - copied unchanged from r264803, head/contrib/byacc/test/btyacc_demo.y stable/10/contrib/byacc/test/code_debug.y - copied unchanged from r264803, head/contrib/byacc/test/code_debug.y stable/10/contrib/byacc/test/empty.y - copied unchanged from r264803, head/contrib/byacc/test/empty.y stable/10/contrib/byacc/test/err_inherit1.y - copied unchanged from r264803, head/contrib/byacc/test/err_inherit1.y stable/10/contrib/byacc/test/err_inherit2.y - copied unchanged from r264803, head/contrib/byacc/test/err_inherit2.y stable/10/contrib/byacc/test/err_inherit3.y - copied unchanged from r264803, head/contrib/byacc/test/err_inherit3.y stable/10/contrib/byacc/test/err_inherit4.y - copied unchanged from r264803, head/contrib/byacc/test/err_inherit4.y stable/10/contrib/byacc/test/err_inherit5.y - copied unchanged from r264803, head/contrib/byacc/test/err_inherit5.y stable/10/contrib/byacc/test/err_syntax1.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax1.y stable/10/contrib/byacc/test/err_syntax10.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax10.y stable/10/contrib/byacc/test/err_syntax11.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax11.y stable/10/contrib/byacc/test/err_syntax12.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax12.y stable/10/contrib/byacc/test/err_syntax13.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax13.y stable/10/contrib/byacc/test/err_syntax14.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax14.y stable/10/contrib/byacc/test/err_syntax15.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax15.y stable/10/contrib/byacc/test/err_syntax16.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax16.y stable/10/contrib/byacc/test/err_syntax17.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax17.y stable/10/contrib/byacc/test/err_syntax18.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax18.y stable/10/contrib/byacc/test/err_syntax19.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax19.y stable/10/contrib/byacc/test/err_syntax2.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax2.y stable/10/contrib/byacc/test/err_syntax20.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax20.y stable/10/contrib/byacc/test/err_syntax21.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax21.y stable/10/contrib/byacc/test/err_syntax22.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax22.y stable/10/contrib/byacc/test/err_syntax23.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax23.y stable/10/contrib/byacc/test/err_syntax24.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax24.y stable/10/contrib/byacc/test/err_syntax25.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax25.y stable/10/contrib/byacc/test/err_syntax26.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax26.y stable/10/contrib/byacc/test/err_syntax27.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax27.y stable/10/contrib/byacc/test/err_syntax3.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax3.y stable/10/contrib/byacc/test/err_syntax4.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax4.y stable/10/contrib/byacc/test/err_syntax5.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax5.y stable/10/contrib/byacc/test/err_syntax6.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax6.y stable/10/contrib/byacc/test/err_syntax7.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax7.y stable/10/contrib/byacc/test/err_syntax7a.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax7a.y stable/10/contrib/byacc/test/err_syntax7b.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax7b.y stable/10/contrib/byacc/test/err_syntax8.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax8.y stable/10/contrib/byacc/test/err_syntax8a.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax8a.y stable/10/contrib/byacc/test/err_syntax9.y - copied unchanged from r264803, head/contrib/byacc/test/err_syntax9.y stable/10/contrib/byacc/test/inherit0.y - copied unchanged from r264803, head/contrib/byacc/test/inherit0.y stable/10/contrib/byacc/test/inherit1.y - copied unchanged from r264803, head/contrib/byacc/test/inherit1.y stable/10/contrib/byacc/test/inherit2.y - copied unchanged from r264803, head/contrib/byacc/test/inherit2.y stable/10/contrib/byacc/test/ok_syntax1.y - copied unchanged from r264803, head/contrib/byacc/test/ok_syntax1.y stable/10/contrib/byacc/test/varsyntax_calc1.y - copied unchanged from r264803, head/contrib/byacc/test/varsyntax_calc1.y stable/10/contrib/byacc/test/yacc/ - copied from r264803, head/contrib/byacc/test/yacc/ stable/10/contrib/byacc/yaccpar.c - copied unchanged from r264803, head/contrib/byacc/yaccpar.c stable/10/contrib/byacc/yaccpar.skel - copied unchanged from r264803, head/contrib/byacc/yaccpar.skel Deleted: stable/10/contrib/byacc/skeleton.c stable/10/contrib/byacc/test/calc.output stable/10/contrib/byacc/test/calc.tab.c stable/10/contrib/byacc/test/calc.tab.h stable/10/contrib/byacc/test/calc1.output stable/10/contrib/byacc/test/calc1.tab.c stable/10/contrib/byacc/test/calc1.tab.h stable/10/contrib/byacc/test/calc2.output stable/10/contrib/byacc/test/calc2.tab.c stable/10/contrib/byacc/test/calc2.tab.h stable/10/contrib/byacc/test/calc3.output stable/10/contrib/byacc/test/calc3.tab.c stable/10/contrib/byacc/test/calc3.tab.h stable/10/contrib/byacc/test/code_calc.code.c stable/10/contrib/byacc/test/code_calc.output stable/10/contrib/byacc/test/code_calc.tab.c stable/10/contrib/byacc/test/code_calc.tab.h stable/10/contrib/byacc/test/code_error.code.c stable/10/contrib/byacc/test/code_error.output stable/10/contrib/byacc/test/code_error.tab.c stable/10/contrib/byacc/test/code_error.tab.h stable/10/contrib/byacc/test/error.output stable/10/contrib/byacc/test/error.tab.c stable/10/contrib/byacc/test/error.tab.h stable/10/contrib/byacc/test/ftp.output stable/10/contrib/byacc/test/ftp.tab.c stable/10/contrib/byacc/test/ftp.tab.h stable/10/contrib/byacc/test/ftp.y stable/10/contrib/byacc/test/grammar.output stable/10/contrib/byacc/test/grammar.tab.c stable/10/contrib/byacc/test/grammar.tab.h stable/10/contrib/byacc/test/pure_calc.output stable/10/contrib/byacc/test/pure_calc.tab.c stable/10/contrib/byacc/test/pure_calc.tab.h stable/10/contrib/byacc/test/pure_error.output stable/10/contrib/byacc/test/pure_error.tab.c stable/10/contrib/byacc/test/pure_error.tab.h stable/10/contrib/byacc/test/quote_calc-s.output stable/10/contrib/byacc/test/quote_calc-s.tab.c stable/10/contrib/byacc/test/quote_calc-s.tab.h stable/10/contrib/byacc/test/quote_calc.output stable/10/contrib/byacc/test/quote_calc.tab.c stable/10/contrib/byacc/test/quote_calc.tab.h stable/10/contrib/byacc/test/quote_calc2-s.output stable/10/contrib/byacc/test/quote_calc2-s.tab.c stable/10/contrib/byacc/test/quote_calc2-s.tab.h stable/10/contrib/byacc/test/quote_calc2.output stable/10/contrib/byacc/test/quote_calc2.tab.c stable/10/contrib/byacc/test/quote_calc2.tab.h stable/10/contrib/byacc/test/quote_calc3-s.output stable/10/contrib/byacc/test/quote_calc3-s.tab.c stable/10/contrib/byacc/test/quote_calc3-s.tab.h stable/10/contrib/byacc/test/quote_calc3.output stable/10/contrib/byacc/test/quote_calc3.tab.c stable/10/contrib/byacc/test/quote_calc3.tab.h stable/10/contrib/byacc/test/quote_calc4-s.output stable/10/contrib/byacc/test/quote_calc4-s.tab.c stable/10/contrib/byacc/test/quote_calc4-s.tab.h stable/10/contrib/byacc/test/quote_calc4.output stable/10/contrib/byacc/test/quote_calc4.tab.c stable/10/contrib/byacc/test/quote_calc4.tab.h Modified: stable/10/contrib/byacc/CHANGES stable/10/contrib/byacc/VERSION stable/10/contrib/byacc/aclocal.m4 stable/10/contrib/byacc/closure.c stable/10/contrib/byacc/config.guess stable/10/contrib/byacc/config.sub stable/10/contrib/byacc/config_h.in stable/10/contrib/byacc/configure stable/10/contrib/byacc/configure.in stable/10/contrib/byacc/defs.h stable/10/contrib/byacc/descrip.mms stable/10/contrib/byacc/error.c stable/10/contrib/byacc/graph.c stable/10/contrib/byacc/lalr.c stable/10/contrib/byacc/lr0.c stable/10/contrib/byacc/main.c stable/10/contrib/byacc/makefile.in stable/10/contrib/byacc/mkpar.c stable/10/contrib/byacc/output.c stable/10/contrib/byacc/package/byacc.spec stable/10/contrib/byacc/package/debian/changelog stable/10/contrib/byacc/package/pkgsrc/Makefile stable/10/contrib/byacc/reader.c stable/10/contrib/byacc/symtab.c stable/10/contrib/byacc/test/calc2.y stable/10/contrib/byacc/test/calc3.y stable/10/contrib/byacc/test/run_lint.sh stable/10/contrib/byacc/test/run_make.sh stable/10/contrib/byacc/test/run_test.sh stable/10/contrib/byacc/verbose.c stable/10/contrib/byacc/vmsbuild.com stable/10/contrib/byacc/yacc.1 stable/10/usr.bin/yacc/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/byacc/CHANGES ============================================================================== --- stable/10/contrib/byacc/CHANGES Sun Jul 20 00:08:50 2014 (r268898) +++ stable/10/contrib/byacc/CHANGES Sun Jul 20 00:21:38 2014 (r268899) @@ -1,3 +1,767 @@ +2014-04-22 Thomas E. Dickey + + * mstring.c: + use vsnprintf() to ensure that msprintf's buffer is large enough. + + * main.c, defs.h: add mstring_leaks() + + * configure: regen + + * output.c: fix a complementary warning + + * mstring.c: introduce vsnprintf + + * configure.in, config_h.in: add check for vsnprintf + + * output.c: quiet a type-conversion warning + + * mstring.c: fix a potential memory leak on ENOMEM + quiet a couple of type-conversion warnings + + * defs.h: add/use GCC_PRINTFLIKE for msprintf() + +2014-04-22 Tom.Shields + + * README.BTYACC: + drop "NOTES-btyacc-Changes" and "NOTES-btyacc-Disposition", merging relevant + content into README.BTYACC + +2014-04-22 Thomas E. Dickey + + * package/pkgsrc/Makefile, VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec: + bump + +2014-04-19 Thomas E. Dickey + + * config.sub: 2014-04-03 + + * config.guess: 2014-03-23 + +2014-04-09 Rick.Spates + + * main.c, defs.h: patch to allow DEBUG build with WIN32 system + +2014-04-09 Thomas E. Dickey + + * output.c, reader.c: gcc warnings + + * reader.c: fix const-cast warnings + + * test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/code_error.tab.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/error.tab.c, test/btyacc/rename_debug.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.tab.c, output.c: + fix a few clang --analyze warnings; one was a case where output_ctable emitted + an empty table (which should be an error). + + * reader.c: appease clang --analyze + + * defs.h: mark two functions as no-return. + + * package/debian/changelog: reason for release + + * VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile: + bump + + * makefile.in: use $LINT_OPTS from environment via configure script + + * test/btyacc/ok_syntax1.output, test/btyacc/ok_syntax1.tab.c, test/yacc/ok_syntax1.tab.c, test/ok_syntax1.y, test/yacc/ok_syntax1.output: + tweaks to make generated files from ok_syntax1.y compile with check_make rule + + * test/btyacc/rename_debug.c, test/btyacc/rename_debug.error, test/btyacc/rename_debug.h, test/btyacc/rename_debug.i, test/btyacc/rename_debug.output, test/yacc/rename_debug.c: + reference output for testing + + * test/run_test.sh: + retain the renaming done for code_debug.y so that check_make will work. + + * test/yacc/rename_debug.error, test/yacc/rename_debug.h, test/yacc/rename_debug.i, test/yacc/rename_debug.output: + reference output for testing + + * test/btyacc/ok_syntax1.error: RCS_BASE + + * test/yacc/quote_calc4-s.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/ok_syntax1.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, yaccpar.c: + regen + + * yacc.1: + clarify relationship of btyacc features to default configuration. + +2014-04-08 Thomas E. Dickey + + * test/yacc/ok_syntax1.output, test/yacc/ok_syntax1.tab.c, test/yacc/ok_syntax1.tab.h, test/btyacc/ok_syntax1.output, test/btyacc/ok_syntax1.tab.c, test/btyacc/ok_syntax1.tab.h: + reference output for testing + + * test/ok_syntax1.y: RCS_BASE + + * test/yacc/ok_syntax1.error: reference output for testing + + * test/yacc/big_b.error, test/yacc/big_b.output, test/yacc/big_l.error, test/yacc/big_l.output, test/btyacc/big_b.error, test/btyacc/big_b.output, test/btyacc/big_l.error, test/btyacc/big_l.output, test/run_test.sh: + exercise -L/-B options + + * test/yacc/code_debug.c, test/btyacc/code_debug.c, test/yacc/err_syntax15.tab.c, test/yacc/err_syntax16.tab.c, test/yacc/err_syntax17.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax19.tab.c, test/yacc/err_syntax2.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/err_syntax21.tab.c, test/yacc/err_syntax22.tab.c, test/yacc/err_syntax23.tab.c, test/yacc/err_syntax24.tab.c, test/yacc/err_syntax25.tab.c, test/yacc/err_syntax26.tab.c, test/yacc/err_syntax27.tab.c, test/yacc/err_syntax3.tab.c, test/yacc/err_syntax4.tab.c, test/yacc/err_syntax5.tab.c, test/yacc/err_syntax6.tab.c, test/yacc/err_syntax7.tab.c, test/yacc/err_syntax7a.tab.c, test/yacc/err_syntax7b.tab.c, test/yacc/err_syntax8.tab.c, test/yacc/err_syntax8a.tab.c, test/yacc/err_syntax9.tab.c, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/q uote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax1.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax13.tab.c, test/yacc/err_syntax14.tab.c, test/btyacc/err_syntax13.tab.c, test/btyacc/err_syntax14.tab.c, test/btyacc/err_syntax15.tab.c, test/btyacc/err_syntax16.tab.c, test/btyacc/err_syntax17.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax19.tab.c, test/btyacc/err_syntax2.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/err_syntax21.tab.c, test/btyacc/err_syntax22.tab.c, test/btyacc/err_syntax23.tab.c, test/btyacc/err_syntax24.tab.c, test/btyacc/err_syntax25.tab.c, test/btyacc/err_syntax26.tab.c, test/btyacc/err_syntax27.t ab.c, test/btyacc/err_syntax3.tab.c, test/bt! yacc/err_syntax4.tab.c, test/btyacc/err_syntax5.tab.c, test/btyacc/err_syntax6.tab.c, test/btyacc/err_syntax7.tab.c, test/btyacc/err_syntax7a.tab.c, test/btyacc/err_syntax7b.tab.c, test/btyacc/err_syntax8.tab.c, test/btyacc/err_syntax8a.tab.c, test/btyacc/err_syntax9.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit1.tab.c, test/btyacc/err_inherit2.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_inherit5.tab.c, test/btyacc/err_syntax1.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.t ab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/run_test.sh, test/yacc/no_b_opt1.output: + use a better renaming of the YYPATCH definition (none of the test-cases rely + upon it, but redefinition in the "make check_make" rule is a problem). + + * test/btyacc/err_syntax1.tab.c, test/btyacc/err_syntax13.tab.c, test/btyacc/err_syntax2.tab.c, test/btyacc/err_syntax25.tab.c, test/btyacc/err_syntax26.tab.c, test/btyacc/err_syntax27.tab.c, test/btyacc/err_syntax3.tab.c, test/btyacc/err_syntax4.tab.c, test/btyacc/err_syntax5.tab.c, test/btyacc/err_syntax6.tab.c, test/btyacc/err_syntax7.tab.c, test/btyacc/err_syntax7a.tab.c, test/btyacc/err_syntax7b.tab.c, test/btyacc/err_syntax8.tab.c, test/btyacc/err_syntax8a.tab.c, test/btyacc/err_syntax9.tab.c, test/btyacc/varsyntax_calc1.tab.c: + undid temporary reordering in reader() by Tom Shields to align with byacc outputs + + * test/run_test.sh: remove a repeated test-case + + * mstring.c: minor reformatting to make coverage analysis simpler + +2014-04-07 Thomas E. Dickey + + * test/run_test.sh: tidy + + * test/yacc/help.error, test/yacc/help.output, test/yacc/no_b_opt.error, test/yacc/no_b_opt.output, test/yacc/no_b_opt1.error, test/yacc/no_b_opt1.output, test/yacc/no_code_c.error, test/yacc/no_code_c.output, test/yacc/no_defines.error, test/yacc/no_defines.output, test/yacc/no_graph.error, test/yacc/no_graph.output, test/yacc/no_include.error, test/yacc/no_include.output, test/yacc/no_opts.error, test/yacc/no_opts.output, test/yacc/no_output.error, test/yacc/no_output.output, test/yacc/no_output1.error, test/yacc/no_output1.output, test/yacc/no_output2.error, test/yacc/no_output2.output, test/yacc/no_p_opt.error, test/yacc/no_p_opt.output, test/yacc/no_p_opt1.error, test/yacc/no_p_opt1.output, test/yacc/no_verbose.error, test/yacc/no_verbose.output, test/yacc/nostdin.error, test/yacc/nostdin.output, test/yacc/test-no_b_opt1.output: + reference output for testing + + * test/run_test.sh: + add special checks for flags which depend on writable/existing files + + * test/btyacc/no_b_opt1.output, test/btyacc/no_p_opt1.output, test/btyacc/no_b_opt.error, test/btyacc/no_b_opt.output, test/btyacc/no_b_opt1.error, test/btyacc/no_code_c.output, test/btyacc/no_p_opt.error, test/btyacc/no_p_opt.output, test/btyacc/no_p_opt1.error, test/btyacc/no_output2.output, test/btyacc/no_code_c.error, test/btyacc/no_output2.error, test/btyacc/no_include.error, test/btyacc/no_include.output, test/btyacc/no_defines.output, test/btyacc/no_defines.error, test/btyacc/no_verbose.output, test/btyacc/no_graph.output, test/btyacc/no_graph.error, test/btyacc/no_opts.error, test/btyacc/no_opts.output, test/btyacc/no_verbose.error, test/btyacc/nostdin.error, test/btyacc/nostdin.output, test/btyacc/no_output.error, test/btyacc/no_output.output, test/btyacc/no_output1.error, test/btyacc/no_output1.output: + reference output for testing + + * main.c: + change CREATE_FILE_NAMES() to use local function rather than inline code, + to simplify coverage analysis. + + * test/btyacc/err_syntax27.error, test/btyacc/err_syntax27.output, test/btyacc/err_syntax27.tab.c, test/btyacc/err_syntax27.tab.h, test/btyacc/help.error, test/btyacc/help.output, test/yacc/err_syntax27.error, test/yacc/err_syntax27.output, test/yacc/err_syntax27.tab.c, test/yacc/err_syntax27.tab.h: + reference output for testing + + * test/err_syntax27.y: testcase for missing_brace() + + * error.c: ifdef'd non-btyacc function + + * lr0.c: ifdef'd debug-code + + * yaccpar.skel: use YYINT's to replace short's as in btyaccpar.skel + + * test/btyacc/code_debug.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax14.tab.c, test/btyacc/err_syntax15.tab.c, test/btyacc/err_syntax16.tab.c, test/btyacc/err_syntax17.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax19.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/err_syntax21.tab.c, test/btyacc/err_syntax22.tab.c, test/btyacc/err_syntax23.tab.c, test/btyacc/err_syntax24.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/calc.tab.c, test/btyacc/c alc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit1.tab.c, test/btyacc/err_inherit2.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_inherit5.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/co de_debug.c, test/yacc/code_error.code.c, tes! t/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, output.c, test/yacc/err_syntax1.tab.c, test/yacc/err_syntax13.tab.c, test/yacc/err_syntax14.tab.c, test/yacc/err_syntax15.tab.c, test/yacc/err_syntax16.tab.c, test/yacc/err_syntax17.tab.c, test/yacc/err_syntax19.tab.c, test/yacc/err_syntax2.tab.c, test/yacc/err_syntax21.tab.c, test/yacc/err_syntax22.tab.c, test/yacc/err_syntax23.tab.c, test/yacc/err_syntax24.tab.c, test/yacc/err_syntax25.tab.c, test/yacc/err_syntax26.tab.c, test/yacc/err_syntax3.tab.c, test/yacc/err_syntax4.tab.c, test/yacc/err_syntax5.tab.c, test/yacc/err_syntax6.tab.c, test/yacc/err_syntax7.tab.c, test/yacc/err_syntax7a.tab.c, test/yacc/err_syntax7b.tab.c, test/yacc/err_syntax8.tab.c, test/yacc/err_syntax8a.tab.c, test/yacc/err_syntax9.tab.c, test/run_test.sh: + 2010/11/26 simplification of output.c using putc_code() and putl_code() + omitted an adjustment of the #line value used for code-file. Fix that. + Also, amend 2005/05/04 change to run_test.sh to retain a dummy line for + YYPATCH #define's to make test-outputs easier to compare #line's (report + by Tom Shields) + +2014-04-06 Thomas E. Dickey + + * reader.c: fix for valgrind + (the calloc's are intentional - valgrind reported use of uninitialized memory) + + * lr0.c, output.c: fix for valgrind + + * test/btyacc/code_debug.c, test/btyacc/code_debug.error, test/btyacc/code_debug.h, test/btyacc/code_debug.i, test/btyacc/code_debug.output: + RCS_BASE + + * test/yacc/code_debug.c, test/yacc/code_debug.h: + exercise the -i option + + * test/yacc/code_debug.i: reference output for testing + + * test/run_test.sh: exercise the -i option + + * test/yacc/code_debug.c: reference output for testing + + * test/run_test.sh: exercise the "-o" option + + * test/yacc/code_debug.error, test/yacc/code_debug.h, test/yacc/code_debug.output: + reference output for testing + + * output.c: don't call exit() without giving a chance to cleanup. + + * mstring.c: ifdef'd functions not used in byacc + + * btyaccpar.c: generated from btyaccpar.skel + + * yaccpar.c: generated from yaccpar.skel + + * skel2c: + change the generated-by comment to show which version of this script (and + which version of the given skeleton file) were used to produce the C-file. + + * configure: regen + + * makefile.in: + add rules to generate byacc and btyacc parser skeleton files independently + + * aclocal.m4: CF_PROG_AWK - add to byacc's configure script + CF_INTEL_COMPILER + cleanup the -no-gcc option which was leftover from testing - prcs does + not build with this option. + CF_MAKE_DOCS + protect $2 from substitution, for luit's "$(manext)" + CF_XOPEN_SOURCE + for Solaris (tested with gcc/g++ 3.4.3 on Solaris 10 and gcc/g++ 4.5.2 + on Solaris 11), suppress the followup check for defining _XOPEN_SOURCE + because it is not needed, as well as because g++ 4.7.3 (no package, + used in Sage for Solaris 10) has some unspecified header breakage which + is triggered by the duplicate definition. + + * configure.in: + modify so skeleton-source is determined by configure options rather than by + having developer rename yaccpar.skel.old to yaccpar.skel + + * descrip.mms: rename skeleton + + * vmsbuild.com: + fwiw, renamed the skeleton for consistency with makefile + + * skel2c, skeleton.c: resync skeleton and its generating files + + * yaccpar.skel: + renamed yaccpar.skel.old to yaccpar.skel, to allow using makefile suffix rules + + * yaccpar.skel.old: resync skeleton and its generating files + + * test/run_make.sh: improve cleanup after error recovery + + * test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, output.c, skeleton.c, defs.h: + use improvement from Tom Shield's btyacc changes, getting rid of special cases for generating two yyerror calls in skeleton + + * output.c: simplify output_yyerror_decl() + + * test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.tab.c, test/yacc/code_error.tab.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/pure_calc.tab.c, output.c: + add second "const" to string-table declarations, from Tom Shield's btyacc changes + + * test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c: + discard unnecessary call on write_code_lineno() from Tom Shield's changes + + * test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_calc.tab.c, test/yacc/code_error.code.c, test/yacc/code_error.tab.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax20.tab.c, output.c: + use YYINT typedef from Tom Shield's btyacc changes to replace explicit "short" + + * test/yacc/code_calc.code.c, test/yacc/code_error.code.c, output.c: + use fix from Tom Shield's btyacc changes: remove redundant extern-declaration for YYPARSE_DECL() + + * test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c: + discard unnecessary call on write_code_lineno() from Tom Shield's changes + + * output.c, test/yacc/code_calc.code.c, test/yacc/code_error.code.c, test/yacc/code_calc.tab.c, test/yacc/code_error.tab.c: + use fix from Tom Shield's btyacc changes: prefix-definitions went to the + output (.tab.c) file in a case where they should have gone to the code + (.code.c) file. Remove now-redundant call to output_prefix(). + + * main.c: do the same for help-message + + * main.c: use OUTPUT_SUFFIX symbol in an overlooked case + + * test/run_make.sh: + modify to avoid use of VPATH, which has no standard implementation + +2014-04-05 Thomas E. Dickey + + * test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c: + discard a change which merged CountLines() with explicit comparisons against + code_file because that adds extra to the #line values + + * test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/calc.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/error.tab.c, output.c: + add Tom Shield's change to allow definition of YYSTYPE_IS_DECLARED symbol to + override fallback typedef for YYSTYPE when that symbol is undefined + + * test/btyacc/error.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c: + minor tweak to coding style - use parenthesis for "defined" operator's parameter + + * test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c: + regen to make YYMAXTOKEN and YYUNDFTOKEN adjacent + + * test/yacc/err_syntax20.tab.c, test/yacc/grammar.tab.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_calc.tab.c, test/yacc/code_error.code.c, test/yacc/code_error.tab.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c: + regen after adding the YYUNDFTOKEN symbol + + * output.c: + integrate Tom Shield's btyacc changes which introduce the YYUNDFTOKEN symbol + (I changed order of output to keep this adjacent to YYMAXTOKEN) + + * reader.c: + merge all but one small change from Tom Shield's btyacc changes - that + changes the order of code-file in the tests. + + * test/btyacc/btyacc_demo.tab.c: regen + + * test/btyacc_demo.y: fix prototypes + +2014-04-04 Thomas E. Dickey + + * reader.c, defs.h, main.c: + more merging of Tom Shield's btyacc changes. In the merge, I moved the + symbol_pval inside the btyacc ifdef's and added some more btyacc ifdefs + +2014-04-03 Thomas E. Dickey + + * reader.c: + merge-in 3/4 of btyacc's changes, deferring those which change test-outputs. + Tom Shield's changes split-out copy_string() and copy_comment() functions + to simplify some logic, as well as adding btyacc-only chunks + + * makefile.in: build mstring.o, needed for changes in reader.c + + * output.c: + merge-in all of btyacc's changes which do not change byacc's test-output. + Some of the merge uses ifdef-changes which I applied to ongoing resync, + e.g., the introduction of PER_STATE. + +2014-04-02 Thomas E. Dickey + + * test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c: regen + + * output.c: fix typo + + * output.c, reader.c: + merge in some chunks of reader and output files which do not affect byacc tests + + * test/yacc/calc2.tab.c, test/yacc/calc3.tab.c: regen + + * test/yacc/err_syntax6.tab.c, test/yacc/err_syntax7.tab.c, test/yacc/err_syntax7a.tab.c, test/yacc/err_syntax7b.tab.c, test/yacc/err_syntax8.tab.c, test/yacc/err_syntax8a.tab.c, test/yacc/err_syntax9.tab.c, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax1.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax13.tab.c, test/yacc/err_syntax14.tab.c, test/yacc/err_syntax15.tab.c, test/yacc/err_syntax16.tab.c, test /yacc/err_syntax17.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax19.tab.c, test/yacc/err_syntax2.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/err_syntax21.tab.c, test/yacc/err_syntax22.tab.c, test/yacc/err_syntax23.tab.c, test/yacc/err_syntax24.tab.c, test/yacc/err_syntax25.tab.c, test/yacc/err_syntax26.tab.c, test/yacc/err_syntax3.tab.c, test/yacc/err_syntax4.tab.c, test/yacc/err_syntax5.tab.c, skeleton.c: + incorporate YYENOMEM and YYEOF symbols from btyacc + + * output.c: merge chunk from btyacc changes for header-guards + + * btyaccpar.skel: RCS_BASE + + * yaccpar.skel: comment-out yysccsid[], for FreeBSD build-issues + remove GCC_UNUSED to reduce name-pollution as well as being simpler + + * main.c: + move a btyacc symbol outside ifdef to work around current state of merge + + * defs.h: + add USE_HEADER_GUARDS to defer whether to modify byacc's header-output + + * test/run_make.sh: + do not try to compile files used for testing syntax-errors, since they are + likely to be incomplete + +2014-04-02 Tom.Shields + + * main.c: changes for btyacc + +2014-04-01 Thomas E. Dickey + + * reader.c: + integrate change by Tom Shields to use bsearch rather than successive + calls to matchec() + + * defs.h: typedef __compar_fn_t is unnecessary + + * test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c: + omit the GCC_UNUSED, as noted by Tom Shields not really essential + +2014-04-01 Tom.Shields + + * verbose.c: changes for btyacc, ifdef'd + +2014-04-01 Thomas E. Dickey + + * mkpar.c: eliminate most of the ifdef's using macros + +2014-04-01 Tom.Shields + + * mkpar.c: merge btyacc changes (ifdef'd - no change to byacc) + + * error.c: + new functions used for reporting errors from the btyacc configuration + (I reordered some, and ifdef'd the new ones -TD) + +2014-03-31 Thomas E. Dickey + + * test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c: + omit the GCC_UNUSED, as noted by Tom Shields not really essential + + * test/btyacc/empty.tab.c, test/btyacc/err_inherit1.tab.c, test/btyacc/err_inherit2.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_inherit5.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax14.tab.c, test/btyacc/err_syntax15.tab.c, test/btyacc/err_syntax16.tab.c, test/btyacc/err_syntax17.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax19.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/err_syntax21.tab.c, test/btyacc/err_syntax22.tab.c, test/btyacc/err_syntax23.tab.c, test/btyacc/err_syntax24.tab.c: + regen + +2014-03-29 Thomas E. Dickey + + * test/yacc/err_syntax22.tab.c, test/yacc/err_syntax23.tab.c, test/yacc/err_syntax24.tab.c, test/yacc/err_syntax25.tab.c, test/yacc/err_syntax26.tab.c, test/yacc/err_syntax3.tab.c, test/yacc/err_syntax4.tab.c, test/yacc/err_syntax5.tab.c, test/yacc/err_syntax6.tab.c, test/yacc/err_syntax7.tab.c, test/yacc/err_syntax7a.tab.c, test/yacc/err_syntax7b.tab.c, test/yacc/err_syntax8.tab.c, test/yacc/err_syntax8a.tab.c, test/yacc/err_syntax9.tab.c, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/y acc/err_syntax1.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax13.tab.c, test/yacc/err_syntax14.tab.c, test/yacc/err_syntax15.tab.c, test/yacc/err_syntax16.tab.c, test/yacc/err_syntax17.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax19.tab.c, test/yacc/err_syntax2.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/err_syntax21.tab.c, skeleton.c: + comment-out yysccsid in the banner because it produces unnecessary compiler + warnings. The suggested alternative (using #pragma ident) in the preceding + comment is also obsolete; remove that comment (request by Gleb Smirnoff). + + * test/run_test.sh: + for yacc, ignore the inherit testcases, since they are btyacc-specific + +2014-03-28 Thomas E. Dickey + + * test/yacc/varsyntax_calc1.error, test/yacc/varsyntax_calc1.output, test/yacc/varsyntax_calc1.tab.c, test/yacc/varsyntax_calc1.tab.h, test/yacc/err_inherit3.error, test/yacc/err_inherit3.output, test/yacc/err_inherit3.tab.c, test/yacc/err_inherit3.tab.h, test/yacc/err_inherit4.error, test/yacc/err_inherit4.output, test/yacc/err_inherit4.tab.c, test/yacc/err_inherit4.tab.h, test/yacc/err_inherit5.error, test/yacc/err_inherit5.output, test/yacc/err_inherit5.tab.c, test/yacc/err_inherit5.tab.h, test/yacc/inherit0.error, test/yacc/inherit0.output, test/yacc/inherit0.tab.c, test/yacc/inherit0.tab.h, test/yacc/inherit1.error, test/yacc/inherit1.output, test/yacc/inherit1.tab.c, test/yacc/inherit1.tab.h, test/yacc/inherit2.error, test/yacc/inherit2.output, test/yacc/inherit2.tab.c, test/yacc/inherit2.tab.h, test/yacc/empty.error, test/yacc/empty.output, test/yacc/empty.tab.c, test/yacc/empty.tab.h, test/yacc/err_inherit1.error, test/yacc/err_inherit1.output, test/yacc/err_inherit1.tab.c, test/yacc/err_inherit1.tab.h, test/yacc/err_inherit2.error, test/yacc/err_inherit2.output, test/yacc/err_inherit2.tab.c, test/yacc/err_inherit2.tab.h: + reference output for testing + + * test/run_lint.sh, test/run_make.sh, test/run_test.sh: + moving #define's out of makefile broke check for yacc vs btyacc (fix) + +2014-03-28 Tom.Shields + + * test/btyacc/btyacc_demo.tab.c, test/btyacc/err_inherit3.error, test/btyacc/err_inherit3.output, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit3.tab.h, test/btyacc/err_inherit2.error, test/btyacc/err_inherit2.output, test/btyacc/err_inherit2.tab.c, test/btyacc/err_inherit2.tab.h, test/btyacc/err_inherit4.error, test/btyacc/err_inherit4.output, test/btyacc/err_inherit4.tab.c, test/btyacc/err_inherit4.tab.h, test/btyacc/err_inherit5.error, test/btyacc/err_inherit5.output, test/btyacc/err_inherit5.tab.c, test/btyacc/err_inherit5.tab.h, test/btyacc/inherit0.error, test/btyacc/inherit0.output, test/btyacc/inherit0.tab.c, test/btyacc/inherit0.tab.h, test/btyacc/inherit1.error, test/btyacc/inherit1.output, test/btyacc/inherit1.tab.c, test/btyacc/inherit1.tab.h, test/btyacc/inherit2.error, test/btyacc/inherit2.output, test/btyacc/inherit2.tab.c, test/btyacc/inherit2.tab.h, test/btyacc/calc.error, test/btyacc/err_inherit1.error, test/btyacc/err_inherit1.output, test/btyacc/err_inh erit1.tab.c, test/btyacc/err_inherit1.tab.h: + reference output for testing + + * defs.h: new functions/variables for btyacc + (I reordered and ifdef'd -TD) + + * test/inherit0.y, test/inherit1.y: testcase for btyacc + +2014-03-27 Tom.Shields + + * test/err_inherit5.y, test/err_inherit4.y, test/err_inherit3.y, test/err_inherit2.y, test/err_inherit1.y, test/inherit2.y: + testcase for btyacc + +2014-03-25 Tom.Shields + + * symtab.c: extra initialization needed for btyacc + (I ifdef'd -TD) + + * yacc.1: document -L/-B features from btyacc + +2014-03-25 Thomas E. Dickey + + * yacc.1: typo + + * configure: regen + + * configure.in: + modified new options to act like those in my other configure-scripts, e.g., + showing what option is being tested, and the resulting value. Put the + definitions in config.h rather than in the makefile. + +2014-03-25 Tom.Shields + + * makefile.in: add/use LINTFLAGS variable + make all of the objects (not just skeleton) rebuild if makefile changes + modify check-rule to reflect updates to run_test.sh vs subdirectory + + * mstring.c: byacc-btyacc-20140323 + +2014-03-25 Thomas E. Dickey + + * test/btyacc/RCS, test/yacc/RCS: PERMIT FILE + + * config_h.in: updated with autoheader-252 + +2014-03-25 Tom.Shields + + * README.BTYACC: byacc-btyacc-20140323 + +2014-03-24 Tom.Shields + + * test/btyacc/err_syntax1.output, test/btyacc/err_syntax1.tab.c, test/btyacc/err_syntax1.tab.h, test/btyacc/err_syntax10.error, test/btyacc/err_syntax10.output, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax10.tab.h, test/btyacc/err_syntax11.error, test/btyacc/err_syntax11.output, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax11.tab.h, test/btyacc/err_syntax12.error, test/btyacc/err_syntax12.output, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax12.tab.h, test/btyacc/err_syntax13.error, test/btyacc/err_syntax13.output, test/btyacc/err_syntax13.tab.c, test/btyacc/err_syntax13.tab.h, test/btyacc/err_syntax14.error, test/btyacc/err_syntax14.output, test/btyacc/err_syntax14.tab.c, test/btyacc/err_syntax14.tab.h, test/btyacc/err_syntax15.error, test/btyacc/err_syntax15.output, test/btyacc/err_syntax15.tab.c, test/btyacc/err_syntax15.tab.h, test/btyacc/err_syntax16.error, test/btyacc/err_syntax16.output, test/btyacc/err_syntax16.tab.c, test/btyacc/err_syntax16.tab. h, test/btyacc/err_syntax17.error, test/btyacc/err_syntax17.output, test/btyacc/err_syntax17.tab.c, test/btyacc/err_syntax17.tab.h, test/btyacc/err_syntax18.error, test/btyacc/err_syntax18.output, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax18.tab.h, test/btyacc/err_syntax19.error, test/btyacc/err_syntax19.output, test/btyacc/err_syntax19.tab.c, test/btyacc/err_syntax19.tab.h, test/btyacc/err_syntax2.output, test/btyacc/err_syntax2.tab.c, test/btyacc/err_syntax2.tab.h, test/btyacc/err_syntax20.error, test/btyacc/err_syntax20.output, test/btyacc/err_syntax20.tab.c, test/btyacc/err_syntax20.tab.h, test/btyacc/err_syntax21.error, test/btyacc/err_syntax21.output, test/btyacc/err_syntax21.tab.c, test/btyacc/err_syntax21.tab.h, test/btyacc/err_syntax22.error, test/btyacc/err_syntax22.output, test/btyacc/err_syntax22.tab.c, test/btyacc/err_syntax22.tab.h, test/btyacc/err_syntax23.error, test/btyacc/err_syntax23.output, test/btyacc/err_syntax23.tab.c, test/btyacc/err_syntax23.tab. h, test/btyacc/err_syntax24.error, test/btya! cc/err_syntax24.output, test/btyacc/err_syntax24.tab.c, test/btyacc/err_syntax24.tab.h, test/btyacc/err_syntax25.error, test/btyacc/err_syntax25.output, test/btyacc/err_syntax25.tab.c, test/btyacc/err_syntax25.tab.h, test/btyacc/err_syntax26.error, test/btyacc/err_syntax26.output, test/btyacc/err_syntax26.tab.c, test/btyacc/err_syntax26.tab.h, test/btyacc/err_syntax3.output, test/btyacc/err_syntax3.tab.c, test/btyacc/err_syntax3.tab.h, test/btyacc/err_syntax4.output, test/btyacc/err_syntax4.tab.c, test/btyacc/err_syntax4.tab.h, test/btyacc/err_syntax5.output, test/btyacc/err_syntax5.tab.c, test/btyacc/err_syntax5.tab.h, test/btyacc/err_syntax6.output, test/btyacc/err_syntax6.tab.c, test/btyacc/err_syntax6.tab.h, test/btyacc/err_syntax7.output, test/btyacc/err_syntax7.tab.c, test/btyacc/err_syntax7.tab.h, test/btyacc/err_syntax7a.output, test/btyacc/err_syntax7a.tab.c, test/btyacc/err_syntax7a.tab.h, test/btyacc/err_syntax7b.output, test/btyacc/err_syntax7b.tab.c, test/btyacc/err_syn tax7b.tab.h, test/btyacc/err_syntax8.output, test/btyacc/err_syntax8.tab.c, test/btyacc/err_syntax8.tab.h, test/btyacc/err_syntax8a.output, test/btyacc/err_syntax8a.tab.c, test/btyacc/err_syntax8a.tab.h, test/btyacc/err_syntax9.output, test/btyacc/err_syntax9.tab.c, test/btyacc/err_syntax9.tab.h: + reference output for testing + +2014-03-24 Thomas E. Dickey + + * defs.h: fix compiler warnings due to mputc() + +2014-03-23 Tom.Shields + + * test/btyacc_demo.y: testcase for btyacc + + * test/btyacc/varsyntax_calc1.error, test/btyacc/varsyntax_calc1.output, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/varsyntax_calc1.tab.h: + reference output for testing + + * test/varsyntax_calc1.y, test/btyacc_calc1.y: testcase for btyacc + +2014-03-23 Thomas E. Dickey + + * test/err_syntax26.error, test/err_syntax26.output, test/err_syntax26.tab.c, test/err_syntax26.tab.h, test/yacc/err_syntax26.error, test/yacc/err_syntax26.output, test/yacc/err_syntax26.tab.c, test/yacc/err_syntax26.tab.h: + reference output for testing + + * test/err_syntax26.y: testcase for missing_brace() + + * test/err_syntax25.error, test/err_syntax25.output, test/err_syntax25.tab.c, test/err_syntax25.tab.h, test/yacc/err_syntax25.error, test/yacc/err_syntax25.output, test/yacc/err_syntax25.tab.c, test/yacc/err_syntax25.tab.h: + reference output for testing + + * test/err_syntax25.y: testcase for over_unionized() + + * test/err_syntax24.error, test/err_syntax24.output, test/err_syntax24.tab.c, test/err_syntax24.tab.h, test/yacc/err_syntax24.error, test/yacc/err_syntax24.output, test/yacc/err_syntax24.tab.c, test/yacc/err_syntax24.tab.h: + reference output for testing + + * test/err_syntax24.y: testcase for default_action_warning() + +2014-03-23 Tom.Shields + + * test/btyacc/quote_calc3-s.error, test/btyacc/quote_calc4-s.error, test/btyacc/quote_calc4.error, test/btyacc/grammar.dot, test/btyacc/grammar.error, test/btyacc/pure_calc.error, test/btyacc/pure_error.error, test/btyacc/quote_calc-s.error, test/btyacc/quote_calc.error, test/btyacc/quote_calc2-s.error, test/btyacc/quote_calc2.error, test/btyacc/quote_calc3.error, test/btyacc/err_syntax2.error, test/btyacc/err_syntax3.error, test/btyacc/err_syntax4.error, test/btyacc/err_syntax5.error, test/btyacc/err_syntax6.error, test/btyacc/err_syntax7.error, test/btyacc/err_syntax7a.error, test/btyacc/err_syntax7b.error, test/btyacc/err_syntax8.error, test/btyacc/err_syntax8a.error, test/btyacc/err_syntax9.error, test/btyacc/error.error, test/btyacc/calc1.error, test/btyacc/calc2.error, test/btyacc/calc3.error, test/btyacc/code_calc.error, test/btyacc/code_error.error, test/btyacc/empty.error, test/btyacc/err_syntax1.error, test/btyacc/btyacc_calc1.error, test/btyacc/btyacc_demo.error: + reference output for testing + +2014-03-23 Thomas E. Dickey + + * test/err_syntax23.error, test/err_syntax23.output, test/err_syntax23.tab.c, test/err_syntax23.tab.h, test/yacc/err_syntax23.error, test/yacc/err_syntax23.output, test/yacc/err_syntax23.tab.c, test/yacc/err_syntax23.tab.h: + reference output for testing + + * test/err_syntax23.y: testcase for untyped_lhs() + +2014-03-23 Tom.Shields + + * test/run_test.sh: + move test-outputs into subdirectories to keep btyacc/yacc results separate + +2014-03-23 Thomas E. Dickey + + * test/err_syntax22.error, test/err_syntax22.output, test/err_syntax22.tab.c, test/err_syntax22.tab.h, test/yacc/err_syntax22.error, test/yacc/err_syntax22.output, test/yacc/err_syntax22.tab.c, test/yacc/err_syntax22.tab.h: + reference output for testing + + * test/err_syntax22.y: testcase for untyped_rhs() + + * test/err_syntax21.error, test/err_syntax21.output, test/err_syntax21.tab.c, test/err_syntax21.tab.h, test/yacc/err_syntax21.error, test/yacc/err_syntax21.output, test/yacc/err_syntax21.tab.c, test/yacc/err_syntax21.tab.h, test/err_syntax20.error, test/err_syntax20.output, test/err_syntax20.tab.c, test/err_syntax20.tab.h, test/yacc/err_syntax20.error, test/yacc/err_syntax20.output, test/yacc/err_syntax20.tab.c, test/yacc/err_syntax20.tab.h: + reference output for testing + + * test/err_syntax20.y: testcase for undefined_symbol_warning() + + * test/err_syntax21.y: testcase for unknown_rhs() + + * test/err_syntax19.error, test/err_syntax19.output, test/err_syntax19.tab.c, test/err_syntax19.tab.h, test/yacc/err_syntax19.error, test/yacc/err_syntax19.output, test/yacc/err_syntax19.tab.c, test/yacc/err_syntax19.tab.h: + reference output for testing + + * test/err_syntax19.y: testcase for dollar_error() + + * test/err_syntax18.error, test/err_syntax18.output, test/err_syntax18.tab.c, test/err_syntax18.tab.h, test/yacc/err_syntax18.error, test/yacc/err_syntax18.output, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax18.tab.h: + reference output for testing + + * test/err_syntax18.y: testcase for dollar_warning() + + * test/err_syntax17.error, test/err_syntax17.output, test/err_syntax17.tab.c, test/err_syntax17.tab.h, test/yacc/err_syntax17.error, test/yacc/err_syntax17.output, test/yacc/err_syntax17.tab.c, test/yacc/err_syntax17.tab.h: + reference output for testing + + * test/err_syntax17.y: testcase for unterminated_action() + +2014-03-22 Thomas E. Dickey + + * test/err_syntax16.error, test/err_syntax16.output, test/err_syntax16.tab.c, test/err_syntax16.tab.h, test/yacc/err_syntax16.error, test/yacc/err_syntax16.output, test/yacc/err_syntax16.tab.c, test/yacc/err_syntax16.tab.h: + reference output for testing + + * test/err_syntax16.y: testcase for terminal_lhs() + + * test/err_syntax15.error, test/err_syntax15.output, test/err_syntax15.tab.c, test/err_syntax15.tab.h, test/yacc/err_syntax15.error, test/yacc/err_syntax15.output, test/yacc/err_syntax15.tab.c, test/yacc/err_syntax15.tab.h: + reference output for testing + + * test/err_syntax15.y: testcase for no_grammar() + + * test/err_syntax14.error, test/err_syntax14.output, test/err_syntax14.tab.c, test/err_syntax14.tab.h, test/yacc/err_syntax14.error, test/yacc/err_syntax14.output, test/yacc/err_syntax14.tab.c, test/yacc/err_syntax14.tab.h: + reference output for testing + + * test/err_syntax14.y: + testcase for restarted_warning() and undefined_goal() + + * test/err_syntax13.error, test/err_syntax13.output, test/err_syntax13.tab.c, test/err_syntax13.tab.h, test/yacc/err_syntax13.error, test/yacc/err_syntax13.output, test/yacc/err_syntax13.tab.c, test/yacc/err_syntax13.tab.h: + reference output for testing + + * test/err_syntax13.y: testcase for terminal_start() + + * test/err_syntax12.error, test/err_syntax12.output, test/err_syntax12.tab.c, test/err_syntax12.tab.h, test/yacc/err_syntax12.error, test/yacc/err_syntax12.output, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax12.tab.h: + reference output for testing + + * test/err_syntax12.y: testcase for revalued_warning() + + * test/err_syntax11.error, test/err_syntax11.output, test/err_syntax11.tab.c, test/err_syntax11.tab.h, test/yacc/err_syntax11.error, test/yacc/err_syntax11.output, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax11.tab.h: + reference output for testing + + * test/err_syntax11.y: testcase for reprec_warning() + + * test/err_syntax10.error, test/err_syntax10.output, test/err_syntax10.tab.c, test/err_syntax10.tab.h, test/yacc/err_syntax10.error, test/yacc/err_syntax10.output, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax10.tab.h: + reference output for testing + + * test/err_syntax10.y: testcase for retyped_warning() + +2014-03-21 Thomas E. Dickey + + * test/err_syntax9.error, test/err_syntax9.output, test/err_syntax9.tab.c, test/err_syntax9.tab.h, test/yacc/err_syntax9.error, test/yacc/err_syntax9.output, test/yacc/err_syntax9.tab.c, test/yacc/err_syntax9.tab.h: + reference output for testing + + * test/err_syntax9.y: testcase for tokenized_start() + + * test/err_syntax8.error, test/err_syntax8.output, test/err_syntax8.tab.c, test/err_syntax8.tab.h, test/err_syntax8a.error, test/err_syntax8a.output, test/err_syntax8a.tab.c, test/err_syntax8a.tab.h, test/yacc/err_syntax8.error, test/yacc/err_syntax8.output, test/yacc/err_syntax8.tab.c, test/yacc/err_syntax8.tab.h, test/yacc/err_syntax8a.error, test/yacc/err_syntax8a.output, test/yacc/err_syntax8a.tab.c, test/yacc/err_syntax8a.tab.h: + reference output for testing + + * test/err_syntax8a.y, test/err_syntax8.y: testcase for used_reserved() + + * test/err_syntax7.error, test/err_syntax7.output, test/err_syntax7.tab.c, test/err_syntax7.tab.h, test/err_syntax7a.error, test/err_syntax7a.output, test/err_syntax7a.tab.c, test/err_syntax7a.tab.h, test/err_syntax7b.error, test/err_syntax7b.output, test/err_syntax7b.tab.c, test/err_syntax7b.tab.h, test/yacc/err_syntax7.error, test/yacc/err_syntax7.output, test/yacc/err_syntax7.tab.c, test/yacc/err_syntax7.tab.h, test/yacc/err_syntax7a.error, test/yacc/err_syntax7a.output, test/yacc/err_syntax7a.tab.c, test/yacc/err_syntax7a.tab.h, test/yacc/err_syntax7b.error, test/yacc/err_syntax7b.output, test/yacc/err_syntax7b.tab.c, test/yacc/err_syntax7b.tab.h: + reference output for testing + + * test/err_syntax7b.y, test/err_syntax7a.y, test/err_syntax7.y: + testcase for illegal_character() + + * test/err_syntax6.error, test/err_syntax6.output, test/err_syntax6.tab.c, test/err_syntax6.tab.h, test/yacc/err_syntax6.error, test/yacc/err_syntax6.output, test/yacc/err_syntax6.tab.c, test/yacc/err_syntax6.tab.h: + reference output for testing + + * test/err_syntax6.y: testcase for illegal_tag() + + * test/err_syntax5.error, test/err_syntax5.output, test/err_syntax5.tab.c, test/err_syntax5.tab.h, test/yacc/err_syntax5.error, test/yacc/err_syntax5.output, test/yacc/err_syntax5.tab.c, test/yacc/err_syntax5.tab.h: + reference output for testing + + * test/err_syntax5.y: testcase for unterminated_union() + + * test/err_syntax4.error, test/err_syntax4.output, test/err_syntax4.tab.c, test/err_syntax4.tab.h, test/yacc/err_syntax4.error, test/yacc/err_syntax4.output, test/yacc/err_syntax4.tab.c, test/yacc/err_syntax4.tab.h: + reference output for testing + + * test/err_syntax4.y: testcase for unterminated_text() + + * test/err_syntax3.error, test/err_syntax3.output, test/err_syntax3.tab.c, test/err_syntax3.tab.h, test/yacc/err_syntax3.error, test/yacc/err_syntax3.output, test/yacc/err_syntax3.tab.c, test/yacc/err_syntax3.tab.h: + reference output for testing + + * test/err_syntax3.y: testcase for unterminated_string() + + * test/err_syntax2.error, test/err_syntax2.output, test/err_syntax2.tab.c, test/err_syntax2.tab.h, test/yacc/err_syntax2.error, test/yacc/err_syntax2.output, test/yacc/err_syntax2.tab.c, test/yacc/err_syntax2.tab.h: + reference output for testing + + * test/err_syntax2.y: testcase for unterminated_comment() + + * test/err_syntax1.error, test/yacc/err_syntax1.error: + reference output for testing + + * test/err_syntax1.y: + test-case with syntax error (and nonprinting character) + + * test/calc.error, test/calc1.error, test/calc2.error, test/calc3.error, test/code_calc.error, test/code_error.error, test/err_syntax1.error, test/error.error, test/grammar.error, test/pure_calc.error, test/pure_error.error, test/quote_calc-s.error, test/quote_calc.error, test/quote_calc2-s.error, test/quote_calc2.error, test/quote_calc3-s.error, test/quote_calc3.error, test/quote_calc4-s.error, test/quote_calc4.error, test/yacc/calc.error, test/yacc/calc1.error, test/yacc/calc2.error, test/yacc/calc3.error, test/yacc/code_calc.error, test/yacc/code_error.error, test/yacc/error.error, test/yacc/grammar.error, test/yacc/pure_calc.error, test/yacc/pure_error.error, test/yacc/quote_calc-s.error, test/yacc/quote_calc.error, test/yacc/quote_calc2-s.error, test/yacc/quote_calc2.error, test/yacc/quote_calc3-s.error, test/yacc/quote_calc3.error, test/yacc/quote_calc4-s.error, test/yacc/quote_calc4.error: + reference output for testing + + * test/run_test.sh: + save stderr to reference files, to capture shift/reduce messages as well + as syntax-error messages + + * test/err_syntax1.output, test/err_syntax1.tab.c, test/err_syntax1.tab.h, test/yacc/err_syntax1.output, test/yacc/err_syntax1.tab.c, test/yacc/err_syntax1.tab.h: + reference output for testing + + * test/run_test.sh: generate a ".dot" file for the grammar file + + * test/grammar.dot: RCS_BASE + + * test/yacc/grammar.dot: reference output for testing + +2014-03-19 Tom.Shields + + * output.c: rename MAXSHORT to MAXYYINT + +2014-03-18 Tom.Shields + + * yaccpar.skel: skeleton with btyacc additions + + * NOTES-btyacc-Changes: byacc-btyacc-20140323 + + * test/btyacc/btyacc_calc1.output, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_calc1.tab.h: + reference output for testing + + * test/run_make.sh: + move test-outputs into subdirectories to keep btyacc/yacc results separate + + * test/btyacc/pure_calc.tab.c, test/btyacc/pure_calc.tab.h, test/btyacc/pure_error.output, test/btyacc/pure_error.tab.c, test/btyacc/pure_error.tab.h, test/btyacc/quote_calc-s.output, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc-s.tab.h, test/btyacc/quote_calc.output, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc.tab.h, test/btyacc/quote_calc2-s.output, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2-s.tab.h, test/btyacc/quote_calc2.output, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc2.tab.h, test/btyacc/quote_calc3-s.output, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3-s.tab.h, test/btyacc/quote_calc3.output, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc3.tab.h, test/btyacc/quote_calc4-s.output, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4-s.tab.h, test/btyacc/quote_calc4.output, test/btyacc/quote_calc4.tab.c, test/btyacc/quote_calc4.tab.h, test/btyacc/calc1.output, test/btyacc/calc1.tab.c, test/btyacc/calc1.tab.h, test/btyacc/calc2.output, test/btyacc/calc2.tab.c, test/btyacc/calc2.tab.h, test/btyacc/calc3.output, test/btyacc/calc3.tab.c, test/btyacc/calc3.tab.h, test/btyacc/code_calc.code.c, test/btyacc/code_calc.output, test/btyacc/code_calc.tab.c, test/btyacc/code_calc.tab.h, test/btyacc/code_error.code.c, test/btyacc/code_error.output, test/btyacc/code_error.tab.c, test/btyacc/code_error.tab.h, test/btyacc/empty.output, test/btyacc/empty.tab.c, test/btyacc/empty.tab.h, test/btyacc/error.output, test/btyacc/error.tab.c, test/btyacc/error.tab.h, test/btyacc/grammar.output, test/btyacc/grammar.tab.c, test/btyacc/grammar.tab.h, test/btyacc/pure_calc.output, test/btyacc/btyacc_demo.output, test/btyacc/btyacc_demo.tab.h, test/btyacc/calc.output, test/btyacc/calc.tab.c, test/btyacc/calc.tab.h: + reference output for testing + + * defs.h: + several changes to help decouple the use of 'short' as the type of value + used in yacc parsers. + + * NOTES-btyacc-Disposition: byacc-btyacc-20140323 + +2014-03-17 Tom.Shields + + * skel2c, yaccpar.skel, yaccpar.skel.old: RCS_BASE + + * test/run_lint.sh: + move test-outputs into subdirectories to keep btyacc/yacc results separate + + * configure.in: add --with-max-table-size and --enable-btyacc options + +2014-03-16 Tom.Shields + + * main.c: use Value_t rather than short + +2014-03-11 Tom.Shields + + * test/empty.y: testcase for btyacc + +2014-03-10 Tom.Shields + + * test/calc3.y, test/calc2.y: fix unused-variable warning + +2014-02-18 Tom.Shields + + * lr0.c, graph.c: use Value_t rather than short + + * closure.c: use Value_t rather than short + ifdef'd forward-reference prototypes to match ifdef'ing of the actual functions + + * lalr.c: rename MAXSHORT to MAXYYINT + +2014-01-01 Thomas E. Dickey + + * yacc.1: document %token-table, improve presentation of double-quotes + + * VERSION, package/byacc.spec, package/debian/changelog: bump + + * test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_calc.tab.c, test/yacc/code_error.code.c, test/yacc/code_error.tab.c, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c: + reference output for testing + + * test/calc.tab.c, test/calc1.tab.c, test/calc2.tab.c, test/calc3.tab.c, test/code_calc.code.c, test/code_calc.tab.c, test/code_error.code.c, test/code_error.tab.c, test/error.tab.c, test/ftp.tab.c, test/grammar.tab.c, test/pure_calc.tab.c, test/pure_error.tab.c, test/quote_calc-s.tab.c, test/quote_calc.tab.c, test/quote_calc2-s.tab.c, test/quote_calc2.tab.c, test/quote_calc3-s.tab.c, test/quote_calc3.tab.c, test/quote_calc4-s.tab.c, test/quote_calc4.tab.c: + regen + + * output.c, skeleton.c: + amend the last change so that yytname is #define'd as needed rather than + permanent - to avoid breaking cproto for instance. + +2014-01-01 Christos.Zoulas + + * output.c, defs.h, main.c, reader.c, skeleton.c: + changes to build ntpd using byacc: + - rename yyname[] to yytname[] + - add YYTRANSLATE() macro + - recognize bison's %token-table declaration + +2014-01-01 Thomas E. Dickey + + * configure: regen + + * yacc.1: s/EE/XE/ to work around groff bug on Debian 6 + + * makefile.in: use CF_MAKE_DOCS + + * aclocal.m4: add CF_MAKE_DOCS + + * configure.in: use CF_MAKE_DOCS + +2013-12-26 Thomas E. Dickey + + * config.guess: 2013-11-29 + +2013-11-19 Thomas E. Dickey + + * aclocal.m4: resync with my-autoconf (fixes for clang and mingw) + +2013-10-25 Thomas E. Dickey + + * config.sub: 2013-10-01 + +2013-09-25 Thomas E. Dickey + + * reader.c: fix two loop-limits found by clang 3.3 --analyze + + * configure: regen + + * aclocal.m4: + tweaks to CF_MIXEDCASE_FILENAMES and CF_XOPEN_SOURCE for msys from ncurses + + * package/mingw-byacc.spec: RCS_BASE + + * test/calc.tab.c, test/calc1.tab.c, test/calc2.tab.c, test/calc3.tab.c, test/code_calc.code.c, test/code_error.code.c, test/error.tab.c, test/ftp.tab.c, test/grammar.tab.c, test/pure_calc.tab.c, test/pure_error.tab.c, test/quote_calc-s.tab.c, test/quote_calc.tab.c, test/quote_calc2-s.tab.c, test/quote_calc2.tab.c, test/quote_calc3-s.tab.c, test/quote_calc3.tab.c, test/quote_calc4-s.tab.c, test/quote_calc4.tab.c: + regen + + * skeleton.c: + Increase default stack-size to match FreeBSD version noted as from + "BSD 4.4 Lite Usr.bin Sources". See + + http://svnweb.freebsd.org/base/vendor/CSRG/dist/usr.bin/yacc/ + http://svnweb.freebsd.org/base/head/usr.bin/yacc/ + http://svnweb.freebsd.org/base/vendor/byacc/ + + The original 1.9 sources (on which I based development) used 500 for + stacksize; the BSD Lite sources (a year or two later) used 10000. + + This is a change to default values; the YYMAXDEPTH and YYSTACKSIZE + symbols have "always" been overridable by applications, but rarely + needed to do this. RedHat began using the FreeBSD source in 2000, + and switched to this source in 2007 using the 20050813 snapshot. + + RedHat #743343 misattributed the change in default stacksize to + a regression in byacc, but did not report the issue upstream. + + * package/debian/changelog, VERSION, package/byacc.spec: bump + +2013-09-07 Thomas E. Dickey + + * config.sub: update to 2013-09-15 + + * config.guess: update to 2013-06-10 + 2013-03-04 Thomas E. Dickey * package/debian/changelog, VERSION, package/byacc.spec: bump @@ -30,7 +794,7 @@ 2013-02-10 Thomas E. Dickey - * config.sub, config.guess: 2013-02-04 + * config.sub, config.guess: update to 2013-02-04 2012-10-03 Thomas E. Dickey @@ -162,6 +926,8 @@ * VERSION, package/debian/changelog, package/byacc.spec: bump + * test/yacc/calc1.output: reference output for testing + * test/calc1.output, test/calc1.tab.c: regen * test/calc1.y: @@ -181,6 +947,8 @@ * test/calc2.tab.c, test/calc3.tab.c, test/code_error.code.c, test/ftp.tab.c, test/pure_calc.tab.c, test/pure_error.tab.c: regen + * test/code_debug.y: RCS_BASE + * test/calc2.y, test/calc3.y, test/code_error.y, test/ftp.y: byacc already declares yyerror @@ -273,6 +1041,9 @@ * test/quote_calc-s.output, test/quote_calc-s.tab.c, test/quote_calc-s.tab.h, test/quote_calc2-s.output, test/quote_calc2-s.tab.c, test/quote_calc2-s.tab.h, test/quote_calc3-s.output, test/quote_calc3-s.tab.c, test/quote_calc3-s.tab.h, test/quote_calc4-s.output, test/quote_calc4-s.tab.c, test/quote_calc4-s.tab.h: RCS_BASE + * test/yacc/quote_calc-s.output, test/yacc/quote_calc-s.tab.h, test/yacc/quote_calc2-s.output, test/yacc/quote_calc2-s.tab.h, test/yacc/quote_calc3-s.output, test/yacc/quote_calc3-s.tab.h, test/yacc/quote_calc4-s.output, test/yacc/quote_calc4-s.tab.h: + reference output for testing + * test/run_test.sh: generate/test with "-s" option applied. 2012-01-13 Thomas E. Dickey @@ -285,9 +1056,24 @@ * main.c: add -s option to usage message. - * test/quote_calc3.output, test/quote_calc3.tab.c, test/quote_calc4.output, test/quote_calc4.tab.c, test/quote_calc4.tab.h, test/quote_calc3.y, test/quote_calc.tab.h, test/quote_calc.output, test/quote_calc.tab.c, test/quote_calc2.output, test/quote_calc2.tab.c, test/quote_calc2.tab.h, test/quote_calc3.tab.h, test/quote_calc4.y, test/quote_calc.y, test/quote_calc2.y: + * test/quote_calc3.output, test/quote_calc3.tab.c, test/quote_calc4.output, test/quote_calc4.tab.c, test/quote_calc4.tab.h: + RCS_BASE + + * test/yacc/quote_calc3.output, test/yacc/quote_calc4.output, test/yacc/quote_calc4.tab.h: + reference output for testing + + * test/quote_calc3.y, test/quote_calc.tab.h: RCS_BASE + + * test/yacc/quote_calc.tab.h: reference output for testing + + * test/quote_calc.output, test/quote_calc.tab.c, test/quote_calc2.output, test/quote_calc2.tab.c, test/quote_calc2.tab.h, test/quote_calc3.tab.h: RCS_BASE + * test/yacc/quote_calc.output, test/yacc/quote_calc2.output, test/yacc/quote_calc2.tab.h, test/yacc/quote_calc3.tab.h: + reference output for testing + + * test/quote_calc4.y, test/quote_calc.y, test/quote_calc2.y: RCS_BASE + * configure: regen * aclocal.m4: resync with my-autoconf, i.e., fixes for CF_XOPEN_SOURCE @@ -348,11 +1134,11 @@ 2011-04-01 Thomas E. Dickey - * config.sub: 2011-04-01 + * config.sub: update to 2011-04-01 2011-02-02 Thomas E. Dickey - * config.guess: 2011-01-01 + * config.guess: update to 2011-01-01 2010-12-29 Thomas E. Dickey @@ -470,6 +1256,8 @@ * output.c: simplified a little, using putc_code() and putl_code() + * test/yacc/calc1.tab.h: reference output for testing + * test/calc1.tab.h: regen * reader.c: @@ -530,11 +1318,11 @@ 2010-09-28 Thomas E. Dickey - * config.guess: 2010-09-24 + * config.guess: update to 2010-09-24 2010-09-10 Thomas E. Dickey - * config.sub: 2010-09-11 + * config.sub: update to 2010-09-11 2010-06-10 Thomas E. Dickey @@ -551,9 +1339,20 @@ improve %lex-param / %parse-param implementation by allowing for arrays to be passed as parameters, e.g., "int regs[26]". - * test/calc3.tab.c, test/calc3.y, test/calc3.output, test/calc3.tab.h, test/calc2.tab.c, test/calc2.y, test/calc2.tab.h, test/calc2.output: + * test/calc3.tab.c, test/calc3.y, test/calc3.output, test/calc3.tab.h: RCS_BASE + * test/yacc/calc3.output, test/yacc/calc3.tab.h: + reference output for testing + + * test/calc2.tab.c, test/calc2.y, test/calc2.tab.h: RCS_BASE + + * test/yacc/calc2.tab.h: reference output for testing + + * test/calc2.output: RCS_BASE + + * test/yacc/calc2.output: reference output for testing + * output.c: improve %lex-param / %parse-param implementation by allowing for arrays to be passed as parameters, e.g., "int regs[26]". @@ -613,9 +1412,27 @@ provide for testing -r and -P options by checking if the ".y" filename begins with "code_" or "pure_", respectively. - * test/code_error.code.c, test/code_error.tab.c, test/code_error.tab.h, test/code_calc.code.c, test/code_calc.tab.c, test/code_calc.tab.h, test/pure_calc.output, test/pure_calc.tab.h, test/pure_error.output, test/pure_error.tab.h, test/code_calc.output, test/code_error.output: + * test/code_error.code.c, test/code_error.tab.c, test/code_error.tab.h: + RCS_BASE + + * test/yacc/code_error.tab.h: reference output for testing + + * test/code_calc.code.c, test/code_calc.tab.c, test/code_calc.tab.h: RCS_BASE + * test/yacc/code_calc.tab.h: reference output for testing + + * test/pure_calc.output, test/pure_calc.tab.h, test/pure_error.output, test/pure_error.tab.h: + RCS_BASE + + * test/yacc/pure_calc.output, test/yacc/pure_calc.tab.h, test/yacc/pure_error.output, test/yacc/pure_error.tab.h: + reference output for testing + + * test/code_calc.output, test/code_error.output: RCS_BASE + + * test/yacc/code_calc.output, test/yacc/code_error.output: + reference output for testing + * test/error.tab.c, test/ftp.tab.c, test/grammar.tab.c: regen * test/run_test.sh: @@ -770,9 +1587,9 @@ 2009-12-31 Thomas E. Dickey - * config.guess: 2009-12-30 + * config.guess: update to 2009-12-30 - * config.sub: 2009-12-31 + * config.sub: update to 2009-12-31 2009-10-27 Thomas E. Dickey @@ -798,7 +1615,7 @@ 2009-08-25 Thomas E. Dickey - * config.guess, config.sub: 2009-08-19 + * config.guess, config.sub: update to 2009-08-19 2009-02-21 Thomas E. Dickey @@ -979,11 +1796,11 @@ 2006-12-22 Thomas E. Dickey - * config.guess: 2006/12/22 + * config.guess: update to 2006/12/22 2006-12-08 Thomas E. Dickey - * config.sub: 2006/12/08 + * config.sub: update to 2006/12/08 2005-08-13 Thomas E. Dickey @@ -1012,9 +1829,9 @@ 2005-06-25 Thomas E. Dickey - * config.sub: 2005/6/2 + * config.sub: update to 2005/6/2 - * config.guess: 2005/5/27 + * config.guess: update to 2005/5/27 2005-05-05 Thomas E. Dickey @@ -1108,9 +1925,9 @@ 2005-04-16 Thomas E. Dickey - * config.sub: 2005/2/10 + * config.sub: update to 2005/2/10 - * config.guess: 2005/3/24 + * config.guess: update to 2005/3/24 2005-04-13 Thomas E. Dickey @@ -1164,9 +1981,18 @@ * test/grammar.output, test/grammar.tab.c, test/grammar.tab.h: RCS_BASE + * test/yacc/grammar.output, test/yacc/grammar.tab.h: + reference output for testing + * makefile.in: turn on "make check" rule - * test/calc.output, test/run_test.sh, test/calc.tab.h: RCS_BASE + * test/calc.output: RCS_BASE + + * test/yacc/calc.output: reference output for testing + + * test/run_test.sh, test/calc.tab.h: RCS_BASE + + * test/yacc/calc.tab.h: reference output for testing * test/ftp.tab.c: yyparse() is now yyparse(void) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 00:29:43 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0E92A67A; Sun, 20 Jul 2014 00:29:43 +0000 (UTC) Received: from svn.freebsd.org (svn.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 EEE452D6F; Sun, 20 Jul 2014 00:29:42 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K0Tgs8074175; Sun, 20 Jul 2014 00:29:42 GMT (envelope-from bapt@svn.freebsd.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K0TgEU074162; Sun, 20 Jul 2014 00:29:42 GMT (envelope-from bapt@svn.freebsd.org) Message-Id: <201407200029.s6K0TgEU074162@svn.freebsd.org> From: Baptiste Daroussin Date: Sun, 20 Jul 2014 00:29:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r268900 - stable/10/lib/libfetch X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 00:29:43 -0000 Author: bapt Date: Sun Jul 20 00:29:41 2014 New Revision: 268900 URL: http://svnweb.freebsd.org/changeset/base/268900 Log: MFC: r267131, r267132, r267133, r268493, r268671 Use NULL instead of 0 (Patch by Sascha Wildner for Dragonfly) Remove unnecessary semicolons (Patch by Sascha Wildner for Dragonfly) Add support for arbitrary http requests [1] Support EAGAIN in fetch_writev Submitted by: Alex Hornung [1] Reviewed by: des Modified: stable/10/lib/libfetch/common.c stable/10/lib/libfetch/common.h stable/10/lib/libfetch/fetch.h stable/10/lib/libfetch/http.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libfetch/common.c ============================================================================== --- stable/10/lib/libfetch/common.c Sun Jul 20 00:21:38 2014 (r268899) +++ stable/10/lib/libfetch/common.c Sun Jul 20 00:29:41 2014 (r268900) @@ -1110,6 +1110,9 @@ fetch_writev(conn_t *conn, struct iovec errno = 0; pfd.revents = 0; if (poll(&pfd, 1, deltams) < 0) { + /* POSIX compliance */ + if (errno == EAGAIN) + continue; if (errno == EINTR && fetchRestartCalls) continue; return (-1); Modified: stable/10/lib/libfetch/common.h ============================================================================== --- stable/10/lib/libfetch/common.h Sun Jul 20 00:21:38 2014 (r268899) +++ stable/10/lib/libfetch/common.h Sun Jul 20 00:29:41 2014 (r268900) @@ -117,6 +117,9 @@ int fetch_no_proxy_match(const char *) */ FILE *http_request(struct url *, const char *, struct url_stat *, struct url *, const char *); +FILE *http_request_body(struct url *, const char *, + struct url_stat *, struct url *, const char *, + const char *, const char *); FILE *ftp_request(struct url *, const char *, struct url_stat *, struct url *, const char *); Modified: stable/10/lib/libfetch/fetch.h ============================================================================== --- stable/10/lib/libfetch/fetch.h Sun Jul 20 00:21:38 2014 (r268899) +++ stable/10/lib/libfetch/fetch.h Sun Jul 20 00:29:41 2014 (r268900) @@ -102,6 +102,8 @@ FILE *fetchGetHTTP(struct url *, const FILE *fetchPutHTTP(struct url *, const char *); int fetchStatHTTP(struct url *, struct url_stat *, const char *); struct url_ent *fetchListHTTP(struct url *, const char *); +FILE *fetchReqHTTP(struct url *, const char *, const char *, + const char *, const char *); /* FTP-specific functions */ FILE *fetchXGetFTP(struct url *, struct url_stat *, const char *); Modified: stable/10/lib/libfetch/http.c ============================================================================== --- stable/10/lib/libfetch/http.c Sun Jul 20 00:21:38 2014 (r268899) +++ stable/10/lib/libfetch/http.c Sun Jul 20 00:29:41 2014 (r268900) @@ -1030,7 +1030,7 @@ typedef struct { static void init_http_auth_params(http_auth_params_t *s) { - s->scheme = s->realm = s->user = s->password = 0; + s->scheme = s->realm = s->user = s->password = NULL; } static void @@ -1129,7 +1129,7 @@ CvtHex(IN HASH Bin, OUT HASHHEX Hex) Hex[i*2] = hexchars[j]; j = Bin[i] & 0xf; Hex[i*2+1] = hexchars[j]; - }; + } Hex[HASHHEXLEN] = '\0'; }; @@ -1164,7 +1164,7 @@ DigestCalcHA1( MD5Update(&Md5Ctx, ":", 1); MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce)); MD5Final(HA1, &Md5Ctx); - }; + } CvtHex(HA1, SessionKey); } @@ -1198,7 +1198,7 @@ DigestCalcResponse( if (strcasecmp(pszQop, "auth-int") == 0) { MD5Update(&Md5Ctx, ":", 1); MD5Update(&Md5Ctx, HEntity, HASHHEXLEN); - }; + } MD5Final(HA2, &Md5Ctx); CvtHex(HA2, HA2Hex); @@ -1215,7 +1215,7 @@ DigestCalcResponse( MD5Update(&Md5Ctx, ":", 1); MD5Update(&Md5Ctx, pszQop, strlen(pszQop)); MD5Update(&Md5Ctx, ":", 1); - }; + } MD5Update(&Md5Ctx, HA2Hex, HASHHEXLEN); MD5Final(RespHash, &Md5Ctx); CvtHex(RespHash, Response); @@ -1249,7 +1249,7 @@ http_digest_auth(conn_t *conn, const cha int r; char noncecount[10]; char cnonce[40]; - char *options = 0; + char *options = NULL; if (!c->realm || !c->nonce) { DEBUG(fprintf(stderr, "realm/nonce not set in challenge\n")); @@ -1494,6 +1494,14 @@ http_print_html(FILE *out, FILE *in) * Core */ +FILE * +http_request(struct url *URL, const char *op, struct url_stat *us, + struct url *purl, const char *flags) +{ + + return (http_request_body(URL, op, us, purl, flags, NULL, NULL)); +} + /* * Send a request and process the reply * @@ -1501,8 +1509,9 @@ http_print_html(FILE *out, FILE *in) * XXX off into a separate function. */ FILE * -http_request(struct url *URL, const char *op, struct url_stat *us, - struct url *purl, const char *flags) +http_request_body(struct url *URL, const char *op, struct url_stat *us, + struct url *purl, const char *flags, const char *content_type, + const char *body) { char timebuf[80]; char hbuf[MAXHOSTNAMELEN + 7], *host; @@ -1519,6 +1528,7 @@ http_request(struct url *URL, const char http_headerbuf_t headerbuf; http_auth_challenges_t server_challenges; http_auth_challenges_t proxy_challenges; + size_t body_len; /* The following calls don't allocate anything */ init_http_headerbuf(&headerbuf); @@ -1690,8 +1700,19 @@ http_request(struct url *URL, const char if (url->offset > 0) http_cmd(conn, "Range: bytes=%lld-", (long long)url->offset); http_cmd(conn, "Connection: close"); + + if (body) { + body_len = strlen(body); + http_cmd(conn, "Content-Length: %zu", body_len); + if (content_type != NULL) + http_cmd(conn, "Content-Type: %s", content_type); + } + http_cmd(conn, ""); + if (body) + fetch_write(conn, body, body_len); + /* * Force the queued request to be dispatched. Normally, one * would do this with shutdown(2) but squid proxies can be @@ -2042,3 +2063,12 @@ fetchListHTTP(struct url *url __unused, warnx("fetchListHTTP(): not implemented"); return (NULL); } + +FILE * +fetchReqHTTP(struct url *URL, const char *method, const char *flags, + const char *content_type, const char *body) +{ + + return (http_request_body(URL, method, NULL, http_get_proxy(URL, flags), + flags, content_type, body)); +} From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 00:30:30 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 14B7D7CA; Sun, 20 Jul 2014 00:30:30 +0000 (UTC) Received: from svn.freebsd.org (svn.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 012692DE5; Sun, 20 Jul 2014 00:30:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K0UT2d075375; Sun, 20 Jul 2014 00:30:29 GMT (envelope-from bapt@svn.freebsd.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K0UTO1075370; Sun, 20 Jul 2014 00:30:29 GMT (envelope-from bapt@svn.freebsd.org) Message-Id: <201407200030.s6K0UTO1075370@svn.freebsd.org> From: Baptiste Daroussin Date: Sun, 20 Jul 2014 00:30:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r268901 - stable/9/lib/libfetch X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 00:30:30 -0000 Author: bapt Date: Sun Jul 20 00:30:28 2014 New Revision: 268901 URL: http://svnweb.freebsd.org/changeset/base/268901 Log: MFC: r267131, r267132, r267133, r268493, r268671 Use NULL instead of 0 (Patch by Sascha Wildner for Dragonfly) Remove unnecessary semicolons (Patch by Sascha Wildner for Dragonfly) Add support for arbitrary http requests [1] Support EAGAIN in fetch_writev Submitted by: Alex Hornung [1] Reviewed by: des Modified: stable/9/lib/libfetch/common.c stable/9/lib/libfetch/common.h stable/9/lib/libfetch/fetch.h stable/9/lib/libfetch/http.c Directory Properties: stable/9/lib/libfetch/ (props changed) Modified: stable/9/lib/libfetch/common.c ============================================================================== --- stable/9/lib/libfetch/common.c Sun Jul 20 00:29:41 2014 (r268900) +++ stable/9/lib/libfetch/common.c Sun Jul 20 00:30:28 2014 (r268901) @@ -1110,6 +1110,9 @@ fetch_writev(conn_t *conn, struct iovec errno = 0; pfd.revents = 0; if (poll(&pfd, 1, deltams) < 0) { + /* POSIX compliance */ + if (errno == EAGAIN) + continue; if (errno == EINTR && fetchRestartCalls) continue; return (-1); Modified: stable/9/lib/libfetch/common.h ============================================================================== --- stable/9/lib/libfetch/common.h Sun Jul 20 00:29:41 2014 (r268900) +++ stable/9/lib/libfetch/common.h Sun Jul 20 00:30:28 2014 (r268901) @@ -117,6 +117,9 @@ int fetch_no_proxy_match(const char *) */ FILE *http_request(struct url *, const char *, struct url_stat *, struct url *, const char *); +FILE *http_request_body(struct url *, const char *, + struct url_stat *, struct url *, const char *, + const char *, const char *); FILE *ftp_request(struct url *, const char *, struct url_stat *, struct url *, const char *); Modified: stable/9/lib/libfetch/fetch.h ============================================================================== --- stable/9/lib/libfetch/fetch.h Sun Jul 20 00:29:41 2014 (r268900) +++ stable/9/lib/libfetch/fetch.h Sun Jul 20 00:30:28 2014 (r268901) @@ -102,6 +102,8 @@ FILE *fetchGetHTTP(struct url *, const FILE *fetchPutHTTP(struct url *, const char *); int fetchStatHTTP(struct url *, struct url_stat *, const char *); struct url_ent *fetchListHTTP(struct url *, const char *); +FILE *fetchReqHTTP(struct url *, const char *, const char *, + const char *, const char *); /* FTP-specific functions */ FILE *fetchXGetFTP(struct url *, struct url_stat *, const char *); Modified: stable/9/lib/libfetch/http.c ============================================================================== --- stable/9/lib/libfetch/http.c Sun Jul 20 00:29:41 2014 (r268900) +++ stable/9/lib/libfetch/http.c Sun Jul 20 00:30:28 2014 (r268901) @@ -1030,7 +1030,7 @@ typedef struct { static void init_http_auth_params(http_auth_params_t *s) { - s->scheme = s->realm = s->user = s->password = 0; + s->scheme = s->realm = s->user = s->password = NULL; } static void @@ -1129,7 +1129,7 @@ CvtHex(IN HASH Bin, OUT HASHHEX Hex) Hex[i*2] = hexchars[j]; j = Bin[i] & 0xf; Hex[i*2+1] = hexchars[j]; - }; + } Hex[HASHHEXLEN] = '\0'; }; @@ -1164,7 +1164,7 @@ DigestCalcHA1( MD5Update(&Md5Ctx, ":", 1); MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce)); MD5Final(HA1, &Md5Ctx); - }; + } CvtHex(HA1, SessionKey); } @@ -1198,7 +1198,7 @@ DigestCalcResponse( if (strcasecmp(pszQop, "auth-int") == 0) { MD5Update(&Md5Ctx, ":", 1); MD5Update(&Md5Ctx, HEntity, HASHHEXLEN); - }; + } MD5Final(HA2, &Md5Ctx); CvtHex(HA2, HA2Hex); @@ -1215,7 +1215,7 @@ DigestCalcResponse( MD5Update(&Md5Ctx, ":", 1); MD5Update(&Md5Ctx, pszQop, strlen(pszQop)); MD5Update(&Md5Ctx, ":", 1); - }; + } MD5Update(&Md5Ctx, HA2Hex, HASHHEXLEN); MD5Final(RespHash, &Md5Ctx); CvtHex(RespHash, Response); @@ -1249,7 +1249,7 @@ http_digest_auth(conn_t *conn, const cha int r; char noncecount[10]; char cnonce[40]; - char *options = 0; + char *options = NULL; if (!c->realm || !c->nonce) { DEBUG(fprintf(stderr, "realm/nonce not set in challenge\n")); @@ -1494,6 +1494,14 @@ http_print_html(FILE *out, FILE *in) * Core */ +FILE * +http_request(struct url *URL, const char *op, struct url_stat *us, + struct url *purl, const char *flags) +{ + + return (http_request_body(URL, op, us, purl, flags, NULL, NULL)); +} + /* * Send a request and process the reply * @@ -1501,8 +1509,9 @@ http_print_html(FILE *out, FILE *in) * XXX off into a separate function. */ FILE * -http_request(struct url *URL, const char *op, struct url_stat *us, - struct url *purl, const char *flags) +http_request_body(struct url *URL, const char *op, struct url_stat *us, + struct url *purl, const char *flags, const char *content_type, + const char *body) { char timebuf[80]; char hbuf[MAXHOSTNAMELEN + 7], *host; @@ -1519,6 +1528,7 @@ http_request(struct url *URL, const char http_headerbuf_t headerbuf; http_auth_challenges_t server_challenges; http_auth_challenges_t proxy_challenges; + size_t body_len; /* The following calls don't allocate anything */ init_http_headerbuf(&headerbuf); @@ -1690,8 +1700,19 @@ http_request(struct url *URL, const char if (url->offset > 0) http_cmd(conn, "Range: bytes=%lld-", (long long)url->offset); http_cmd(conn, "Connection: close"); + + if (body) { + body_len = strlen(body); + http_cmd(conn, "Content-Length: %zu", body_len); + if (content_type != NULL) + http_cmd(conn, "Content-Type: %s", content_type); + } + http_cmd(conn, ""); + if (body) + fetch_write(conn, body, body_len); + /* * Force the queued request to be dispatched. Normally, one * would do this with shutdown(2) but squid proxies can be @@ -2042,3 +2063,12 @@ fetchListHTTP(struct url *url __unused, warnx("fetchListHTTP(): not implemented"); return (NULL); } + +FILE * +fetchReqHTTP(struct url *URL, const char *method, const char *flags, + const char *content_type, const char *body) +{ + + return (http_request_body(URL, method, NULL, http_get_proxy(URL, flags), + flags, content_type, body)); +} From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 00:32:23 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8A741922; Sun, 20 Jul 2014 00:32:23 +0000 (UTC) Received: from svn.freebsd.org (svn.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 770C22DF3; Sun, 20 Jul 2014 00:32:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K0WNTU077819; Sun, 20 Jul 2014 00:32:23 GMT (envelope-from bapt@svn.freebsd.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K0WNpY077817; Sun, 20 Jul 2014 00:32:23 GMT (envelope-from bapt@svn.freebsd.org) Message-Id: <201407200032.s6K0WNpY077817@svn.freebsd.org> From: Baptiste Daroussin Date: Sun, 20 Jul 2014 00:32:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r268902 - stable/10/lib/libz X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 00:32:23 -0000 Author: bapt Date: Sun Jul 20 00:32:22 2014 New Revision: 268902 URL: http://svnweb.freebsd.org/changeset/base/268902 Log: MFC: r267376 Add a zlib pkg-config file (more and more ports requires it) Approved by: delphij Added: stable/10/lib/libz/zlib.pc - copied unchanged from r267376, head/lib/libz/zlib.pc Modified: stable/10/lib/libz/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libz/Makefile ============================================================================== --- stable/10/lib/libz/Makefile Sun Jul 20 00:30:28 2014 (r268901) +++ stable/10/lib/libz/Makefile Sun Jul 20 00:32:22 2014 (r268902) @@ -68,6 +68,10 @@ test: example minigzip (export LD_LIBRARY_PATH=. ; \ echo hello world | ./minigzip | ./minigzip -d ) +beforeinstall: + ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ + ${.CURDIR}/zlib.pc ${DESTDIR}${LIBDATADIR}/pkgconfig + .include ## XXX: clang integrated-as doesn't grok .intel_syntax directives yet Copied: stable/10/lib/libz/zlib.pc (from r267376, head/lib/libz/zlib.pc) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/lib/libz/zlib.pc Sun Jul 20 00:32:22 2014 (r268902, copy of r267376, head/lib/libz/zlib.pc) @@ -0,0 +1,14 @@ +# $FreeBSD$ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +sharedlibdir=${libdir} +includedir=${prefix}/include + +Name: zlib +Description: zlib compression library +Version: 1.2.8 + +Requires: +Libs: -L${libdir} -L${sharedlibdir} -lz +Cflags: -I${includedir} From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 00:34:55 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0B3E6A63; Sun, 20 Jul 2014 00:34:55 +0000 (UTC) Received: from svn.freebsd.org (svn.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 EC4D52DFF; Sun, 20 Jul 2014 00:34:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K0YsoJ078296; Sun, 20 Jul 2014 00:34:54 GMT (envelope-from bapt@svn.freebsd.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K0YsO6078294; Sun, 20 Jul 2014 00:34:54 GMT (envelope-from bapt@svn.freebsd.org) Message-Id: <201407200034.s6K0YsO6078294@svn.freebsd.org> From: Baptiste Daroussin Date: Sun, 20 Jul 2014 00:34:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r268903 - stable/10/sbin/kldstat X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 00:34:55 -0000 Author: bapt Date: Sun Jul 20 00:34:54 2014 New Revision: 268903 URL: http://svnweb.freebsd.org/changeset/base/268903 Log: MFC: r261032 Add quiet support for kldstat -n PR: bin/180014 Submitted by: Olivier Cochard-Labbé Modified: stable/10/sbin/kldstat/kldstat.8 stable/10/sbin/kldstat/kldstat.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sbin/kldstat/kldstat.8 ============================================================================== --- stable/10/sbin/kldstat/kldstat.8 Sun Jul 20 00:32:22 2014 (r268902) +++ stable/10/sbin/kldstat/kldstat.8 Sun Jul 20 00:34:54 2014 (r268903) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 23, 2005 +.Dd January 22, 2014 .Dt KLDSTAT 8 .Os .Sh NAME @@ -33,6 +33,7 @@ .Nd display status of dynamic kernel linker .Sh SYNOPSIS .Nm +.Op Fl q .Op Fl v .Op Fl i Ar id .Op Fl n Ar filename Modified: stable/10/sbin/kldstat/kldstat.c ============================================================================== --- stable/10/sbin/kldstat/kldstat.c Sun Jul 20 00:32:22 2014 (r268902) +++ stable/10/sbin/kldstat/kldstat.c Sun Jul 20 00:34:54 2014 (r268903) @@ -78,7 +78,7 @@ printfile(int fileid, int verbose) static void usage(void) { - fprintf(stderr, "usage: kldstat [-v] [-i id] [-n filename]\n"); + fprintf(stderr, "usage: kldstat [-q] [-v] [-i id] [-n filename]\n"); fprintf(stderr, " kldstat [-q] [-m modname]\n"); exit(1); } @@ -146,8 +146,13 @@ main(int argc, char** argv) } if (filename != NULL) { - if ((fileid = kldfind(filename)) < 0) - err(1, "can't find file %s", filename); + if ((fileid = kldfind(filename)) < 0) { + if (!quiet) + warn("can't find file %s", filename); + return 1; + } else if (quiet) { + return 0; + } } printf("Id Refs Address%*c Size Name\n", POINTER_WIDTH - 7, ' '); From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 01:03:09 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 632C3E25; Sun, 20 Jul 2014 01:03:09 +0000 (UTC) Received: from smtp1.multiplay.co.uk (smtp1.multiplay.co.uk [85.236.96.35]) by mx1.freebsd.org (Postfix) with ESMTP id A4C972FEA; Sun, 20 Jul 2014 01:03:08 +0000 (UTC) Received: by smtp1.multiplay.co.uk (Postfix, from userid 65534) id 5960520E7088C; Sun, 20 Jul 2014 01:03:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.multiplay.co.uk X-Spam-Level: ** X-Spam-Status: No, score=2.3 required=8.0 tests=AWL,BAYES_00,DOS_OE_TO_MX, FSL_HELO_NON_FQDN_1,HELO_NO_DOMAIN,RDNS_DYNAMIC,STOX_REPLY_TYPE autolearn=no version=3.3.1 Received: from r2d2 (82-69-141-170.dsl.in-addr.zen.co.uk [82.69.141.170]) by smtp1.multiplay.co.uk (Postfix) with ESMTPS id 5A1D620E7088A; Sun, 20 Jul 2014 01:02:57 +0000 (UTC) Message-ID: <32EEE9A6E8FE4D6FBE0E8CD53F2709CE@multiplay.co.uk> From: "Steven Hartland" To: "Baptiste Daroussin" , , , , References: <201407200029.s6K0TgEU074162@svn.freebsd.org> Subject: Re: svn commit: r268900 - stable/10/lib/libfetch Date: Sun, 20 Jul 2014 02:02:48 +0100 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="utf-8"; reply-type=original Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 01:03:09 -0000 poll isnt documented as ever returning EAGAIN, are the docs for poll incorrect or does that part of this patch require reverting? Regards Steve ----- Original Message ----- From: "Baptiste Daroussin" To: ; ; ; Sent: Sunday, July 20, 2014 1:29 AM Subject: svn commit: r268900 - stable/10/lib/libfetch > Author: bapt > Date: Sun Jul 20 00:29:41 2014 > New Revision: 268900 > URL: http://svnweb.freebsd.org/changeset/base/268900 > > Log: > MFC: r267131, r267132, r267133, r268493, r268671 > > Use NULL instead of 0 (Patch by Sascha Wildner for Dragonfly) > Remove unnecessary semicolons (Patch by Sascha Wildner for Dragonfly) > Add support for arbitrary http requests [1] > Support EAGAIN in fetch_writev > > Submitted by: Alex Hornung [1] > Reviewed by: des > > Modified: > stable/10/lib/libfetch/common.c > stable/10/lib/libfetch/common.h > stable/10/lib/libfetch/fetch.h > stable/10/lib/libfetch/http.c > Directory Properties: > stable/10/ (props changed) > > Modified: stable/10/lib/libfetch/common.c > ============================================================================== > --- stable/10/lib/libfetch/common.c Sun Jul 20 00:21:38 2014 (r268899) > +++ stable/10/lib/libfetch/common.c Sun Jul 20 00:29:41 2014 (r268900) > @@ -1110,6 +1110,9 @@ fetch_writev(conn_t *conn, struct iovec > errno = 0; > pfd.revents = 0; > if (poll(&pfd, 1, deltams) < 0) { > + /* POSIX compliance */ > + if (errno == EAGAIN) > + continue; > if (errno == EINTR && fetchRestartCalls) > continue; > return (-1); > > Modified: stable/10/lib/libfetch/common.h > ============================================================================== > --- stable/10/lib/libfetch/common.h Sun Jul 20 00:21:38 2014 (r268899) > +++ stable/10/lib/libfetch/common.h Sun Jul 20 00:29:41 2014 (r268900) > @@ -117,6 +117,9 @@ int fetch_no_proxy_match(const char *) > */ > FILE *http_request(struct url *, const char *, > struct url_stat *, struct url *, const char *); > +FILE *http_request_body(struct url *, const char *, > + struct url_stat *, struct url *, const char *, > + const char *, const char *); > FILE *ftp_request(struct url *, const char *, > struct url_stat *, struct url *, const char *); > > > Modified: stable/10/lib/libfetch/fetch.h > ============================================================================== > --- stable/10/lib/libfetch/fetch.h Sun Jul 20 00:21:38 2014 (r268899) > +++ stable/10/lib/libfetch/fetch.h Sun Jul 20 00:29:41 2014 (r268900) > @@ -102,6 +102,8 @@ FILE *fetchGetHTTP(struct url *, const > FILE *fetchPutHTTP(struct url *, const char *); > int fetchStatHTTP(struct url *, struct url_stat *, const char *); > struct url_ent *fetchListHTTP(struct url *, const char *); > +FILE *fetchReqHTTP(struct url *, const char *, const char *, > + const char *, const char *); > > /* FTP-specific functions */ > FILE *fetchXGetFTP(struct url *, struct url_stat *, const char *); > > Modified: stable/10/lib/libfetch/http.c > ============================================================================== > --- stable/10/lib/libfetch/http.c Sun Jul 20 00:21:38 2014 (r268899) > +++ stable/10/lib/libfetch/http.c Sun Jul 20 00:29:41 2014 (r268900) > @@ -1030,7 +1030,7 @@ typedef struct { > static void > init_http_auth_params(http_auth_params_t *s) > { > - s->scheme = s->realm = s->user = s->password = 0; > + s->scheme = s->realm = s->user = s->password = NULL; > } > > static void > @@ -1129,7 +1129,7 @@ CvtHex(IN HASH Bin, OUT HASHHEX Hex) > Hex[i*2] = hexchars[j]; > j = Bin[i] & 0xf; > Hex[i*2+1] = hexchars[j]; > - }; > + } > Hex[HASHHEXLEN] = '\0'; > }; > > @@ -1164,7 +1164,7 @@ DigestCalcHA1( > MD5Update(&Md5Ctx, ":", 1); > MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce)); > MD5Final(HA1, &Md5Ctx); > - }; > + } > CvtHex(HA1, SessionKey); > } > > @@ -1198,7 +1198,7 @@ DigestCalcResponse( > if (strcasecmp(pszQop, "auth-int") == 0) { > MD5Update(&Md5Ctx, ":", 1); > MD5Update(&Md5Ctx, HEntity, HASHHEXLEN); > - }; > + } > MD5Final(HA2, &Md5Ctx); > CvtHex(HA2, HA2Hex); > > @@ -1215,7 +1215,7 @@ DigestCalcResponse( > MD5Update(&Md5Ctx, ":", 1); > MD5Update(&Md5Ctx, pszQop, strlen(pszQop)); > MD5Update(&Md5Ctx, ":", 1); > - }; > + } > MD5Update(&Md5Ctx, HA2Hex, HASHHEXLEN); > MD5Final(RespHash, &Md5Ctx); > CvtHex(RespHash, Response); > @@ -1249,7 +1249,7 @@ http_digest_auth(conn_t *conn, const cha > int r; > char noncecount[10]; > char cnonce[40]; > - char *options = 0; > + char *options = NULL; > > if (!c->realm || !c->nonce) { > DEBUG(fprintf(stderr, "realm/nonce not set in challenge\n")); > @@ -1494,6 +1494,14 @@ http_print_html(FILE *out, FILE *in) > * Core > */ > > +FILE * > +http_request(struct url *URL, const char *op, struct url_stat *us, > + struct url *purl, const char *flags) > +{ > + > + return (http_request_body(URL, op, us, purl, flags, NULL, NULL)); > +} > + > /* > * Send a request and process the reply > * > @@ -1501,8 +1509,9 @@ http_print_html(FILE *out, FILE *in) > * XXX off into a separate function. > */ > FILE * > -http_request(struct url *URL, const char *op, struct url_stat *us, > - struct url *purl, const char *flags) > +http_request_body(struct url *URL, const char *op, struct url_stat *us, > + struct url *purl, const char *flags, const char *content_type, > + const char *body) > { > char timebuf[80]; > char hbuf[MAXHOSTNAMELEN + 7], *host; > @@ -1519,6 +1528,7 @@ http_request(struct url *URL, const char > http_headerbuf_t headerbuf; > http_auth_challenges_t server_challenges; > http_auth_challenges_t proxy_challenges; > + size_t body_len; > > /* The following calls don't allocate anything */ > init_http_headerbuf(&headerbuf); > @@ -1690,8 +1700,19 @@ http_request(struct url *URL, const char > if (url->offset > 0) > http_cmd(conn, "Range: bytes=%lld-", (long long)url->offset); > http_cmd(conn, "Connection: close"); > + > + if (body) { > + body_len = strlen(body); > + http_cmd(conn, "Content-Length: %zu", body_len); > + if (content_type != NULL) > + http_cmd(conn, "Content-Type: %s", content_type); > + } > + > http_cmd(conn, ""); > > + if (body) > + fetch_write(conn, body, body_len); > + > /* > * Force the queued request to be dispatched. Normally, one > * would do this with shutdown(2) but squid proxies can be > @@ -2042,3 +2063,12 @@ fetchListHTTP(struct url *url __unused, > warnx("fetchListHTTP(): not implemented"); > return (NULL); > } > + > +FILE * > +fetchReqHTTP(struct url *URL, const char *method, const char *flags, > + const char *content_type, const char *body) > +{ > + > + return (http_request_body(URL, method, NULL, http_get_proxy(URL, flags), > + flags, content_type, body)); > +} > > From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 01:15:08 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CE3B0361; Sun, 20 Jul 2014 01:15:08 +0000 (UTC) Received: from mail-oa0-x236.google.com (mail-oa0-x236.google.com [IPv6:2607:f8b0:4003:c02::236]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6483520D6; Sun, 20 Jul 2014 01:15:08 +0000 (UTC) Received: by mail-oa0-f54.google.com with SMTP id n16so5604850oag.27 for ; Sat, 19 Jul 2014 18:15:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=cPEEMB6e1FHr/u+4mW0Rx6ttz45SwQeGDpw3ITtom7s=; b=xj9pR0mDpa7oShgK28mkjry/iht9cs9ExR8rx0fjzJOaCaIBT6Eo5Q/OYxSS7MHkqN 0uhhk3jJenOssBy+0tU1z0pKbmgrXzJMxt0criJLPRFzN9YY9kWZMTzMNZ3CDpvJv1Rl dnnJCyoBGZthnGiJvXSefKYY+wO4RAY+xF+T80PSO6p516jcQRgHfPrq2bE+lIiXZGj5 ZmPaKhD1ZQY0tJX2kiIoVUgf8IqbxziyPSP2uMEXGFr8dAAtMg00OkSM70PYqU8kI/kt vX+AojkZS+tnLd8omUAt5LNdDHF85jo7emQ14XWga4y5soVs+B1Gv2xAyrPkPXzIfo7R HU7A== MIME-Version: 1.0 X-Received: by 10.60.116.166 with SMTP id jx6mr22222190oeb.6.1405818907733; Sat, 19 Jul 2014 18:15:07 -0700 (PDT) Received: by 10.182.142.34 with HTTP; Sat, 19 Jul 2014 18:15:07 -0700 (PDT) In-Reply-To: <32EEE9A6E8FE4D6FBE0E8CD53F2709CE@multiplay.co.uk> References: <201407200029.s6K0TgEU074162@svn.freebsd.org> <32EEE9A6E8FE4D6FBE0E8CD53F2709CE@multiplay.co.uk> Date: Sat, 19 Jul 2014 21:15:07 -0400 Message-ID: Subject: Re: svn commit: r268900 - stable/10/lib/libfetch From: Benjamin Kaduk To: Steven Hartland Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.18 Cc: svn-src-stable@freebsd.org, Baptiste Daroussin , "src-committers@freebsd.org" , svn-src-stable-10@freebsd.org, "svn-src-all@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 01:15:08 -0000 On Sat, Jul 19, 2014 at 9:02 PM, Steven Hartland wrote: > poll isnt documented as ever returning EAGAIN, are the docs for poll > incorrect > or does that part of this patch require reverting? > This was covered after the initial commit to head; see http://lists.freebsd.org/pipermail/svn-src-head/2014-July/060301.html -Ben From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 01:21:21 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8EEE74D3; Sun, 20 Jul 2014 01:21:21 +0000 (UTC) Received: from mail-we0-x230.google.com (mail-we0-x230.google.com [IPv6:2a00:1450:400c:c03::230]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A651F2162; Sun, 20 Jul 2014 01:21:20 +0000 (UTC) Received: by mail-we0-f176.google.com with SMTP id q58so6082291wes.7 for ; Sat, 19 Jul 2014 18:21:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=HJXeUH0mtohUKn3fhMFcCYYZ3teM0w8pjpwH3/fiXI8=; b=q9LEfQ40lveMJ73kAvyDVNqJKKQsKE6H/JTp/VuXni0mz/cWBm5J5oHSnMSZY/oMUc 1sd2TlJfToJRDi1JVDDBxeSIp9msZEykaTKrBUkddQkJuZSJstGYbxzLo8pxHFxbec9j M8OPSawST8B6un4j/sMcFRxK+r7X9ENxaSMTTMcsfVfCpDcD37Nka3Np1afjPv1rZsMR Hs0c6m/Pq25SYm1m/t0tLy29XT9/zFcurdrrbKWBeZkJ4pgK8clEn57OQ1zgMfAUYFTg gB99ORbaRv2VG1px1u544Q75LhazwY5BfOvDN8bSedu4YKXa5g0N4ebn1/awTvRv7uL8 /Kdw== X-Received: by 10.195.11.132 with SMTP id ei4mr868531wjd.95.1405819278775; Sat, 19 Jul 2014 18:21:18 -0700 (PDT) Received: from ivaldir.etoilebsd.net ([2001:41d0:8:db4c::1]) by mx.google.com with ESMTPSA id jy8sm25813740wjc.7.2014.07.19.18.21.17 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 19 Jul 2014 18:21:17 -0700 (PDT) Sender: Baptiste Daroussin Date: Sun, 20 Jul 2014 03:21:15 +0200 From: Baptiste Daroussin To: Steven Hartland Subject: Re: svn commit: r268900 - stable/10/lib/libfetch Message-ID: <20140720012112.GA26778@ivaldir.etoilebsd.net> References: <201407200029.s6K0TgEU074162@svn.freebsd.org> <32EEE9A6E8FE4D6FBE0E8CD53F2709CE@multiplay.co.uk> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="vkogqOf2sHV7VnPd" Content-Disposition: inline In-Reply-To: <32EEE9A6E8FE4D6FBE0E8CD53F2709CE@multiplay.co.uk> User-Agent: Mutt/1.5.23 (2014-03-12) Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-10@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 01:21:21 -0000 --vkogqOf2sHV7VnPd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Jul 20, 2014 at 02:02:48AM +0100, Steven Hartland wrote: > poll isnt documented as ever returning EAGAIN, are the docs for poll inco= rrect > or does that part of this patch require reverting? >=20 > Regards > Steve Hence the comment about the POSIX compatibility, libfetch can work on other operating systems where poll can return EAGAIN according to POSIX: http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html This kib's comment here: http://lists.freebsd.org/pipermail/svn-src-head/2014-July/060314.html regards, Bapt --vkogqOf2sHV7VnPd Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEARECAAYFAlPLGYgACgkQ8kTtMUmk6ExnJQCff0hdClN0s7BJYdwdBw8y/0dp PnoAnjXqs2qKZamx0mCBqo8e5qOUjY9v =7AFv -----END PGP SIGNATURE----- --vkogqOf2sHV7VnPd-- From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 02:15:15 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 53C3AB75; Sun, 20 Jul 2014 02:15:15 +0000 (UTC) Received: from svn.freebsd.org (svn.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 40FA92481; Sun, 20 Jul 2014 02:15:15 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K2FFOp029860; Sun, 20 Jul 2014 02:15:15 GMT (envelope-from hiren@svn.freebsd.org) Received: (from hiren@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K2FF2L029859; Sun, 20 Jul 2014 02:15:15 GMT (envelope-from hiren@svn.freebsd.org) Message-Id: <201407200215.s6K2FF2L029859@svn.freebsd.org> From: Hiren Panchasara Date: Sun, 20 Jul 2014 02:15:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r268904 - stable/10/sys/dev/ixgbe X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 02:15:15 -0000 Author: hiren Date: Sun Jul 20 02:15:14 2014 New Revision: 268904 URL: http://svnweb.freebsd.org/changeset/base/268904 Log: MFC r268790 Fix a typo. Modified: stable/10/sys/dev/ixgbe/ixgbe.c Modified: stable/10/sys/dev/ixgbe/ixgbe.c ============================================================================== --- stable/10/sys/dev/ixgbe/ixgbe.c Sun Jul 20 00:34:54 2014 (r268903) +++ stable/10/sys/dev/ixgbe/ixgbe.c Sun Jul 20 02:15:14 2014 (r268904) @@ -306,7 +306,7 @@ SYSCTL_INT(_hw_ix, OID_AUTO, num_queues, static int ixgbe_txd = PERFORM_TXD; TUNABLE_INT("hw.ixgbe.txd", &ixgbe_txd); SYSCTL_INT(_hw_ix, OID_AUTO, txd, CTLFLAG_RDTUN, &ixgbe_txd, 0, - "Number of receive descriptors per queue"); + "Number of transmit descriptors per queue"); /* Number of RX descriptors per ring */ static int ixgbe_rxd = PERFORM_RXD; From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 02:20:04 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5C804CFF; Sun, 20 Jul 2014 02:20:04 +0000 (UTC) Received: from svn.freebsd.org (svn.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 4964D2496; Sun, 20 Jul 2014 02:20:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K2K4KU030640; Sun, 20 Jul 2014 02:20:04 GMT (envelope-from hiren@svn.freebsd.org) Received: (from hiren@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K2K4ZE030639; Sun, 20 Jul 2014 02:20:04 GMT (envelope-from hiren@svn.freebsd.org) Message-Id: <201407200220.s6K2K4ZE030639@svn.freebsd.org> From: Hiren Panchasara Date: Sun, 20 Jul 2014 02:20:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r268905 - stable/9/sys/dev/ixgbe X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 02:20:04 -0000 Author: hiren Date: Sun Jul 20 02:20:03 2014 New Revision: 268905 URL: http://svnweb.freebsd.org/changeset/base/268905 Log: MFC r268790 Fix a typo. Modified: stable/9/sys/dev/ixgbe/ixgbe.c Modified: stable/9/sys/dev/ixgbe/ixgbe.c ============================================================================== --- stable/9/sys/dev/ixgbe/ixgbe.c Sun Jul 20 02:15:14 2014 (r268904) +++ stable/9/sys/dev/ixgbe/ixgbe.c Sun Jul 20 02:20:03 2014 (r268905) @@ -306,7 +306,7 @@ SYSCTL_INT(_hw_ix, OID_AUTO, num_queues, static int ixgbe_txd = PERFORM_TXD; TUNABLE_INT("hw.ixgbe.txd", &ixgbe_txd); SYSCTL_INT(_hw_ix, OID_AUTO, txd, CTLFLAG_RDTUN, &ixgbe_txd, 0, - "Number of receive descriptors per queue"); + "Number of transmit descriptors per queue"); /* Number of RX descriptors per ring */ static int ixgbe_rxd = PERFORM_RXD; From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 02:38:59 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2FB22183; Sun, 20 Jul 2014 02:38:59 +0000 (UTC) Received: from svn.freebsd.org (svn.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 1C7D925E6; Sun, 20 Jul 2014 02:38:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K2cwfa039649; Sun, 20 Jul 2014 02:38:58 GMT (envelope-from hiren@svn.freebsd.org) Received: (from hiren@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K2cwdd039648; Sun, 20 Jul 2014 02:38:58 GMT (envelope-from hiren@svn.freebsd.org) Message-Id: <201407200238.s6K2cwdd039648@svn.freebsd.org> From: Hiren Panchasara Date: Sun, 20 Jul 2014 02:38:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r268906 - stable/9/sys/net X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 02:38:59 -0000 Author: hiren Date: Sun Jul 20 02:38:58 2014 New Revision: 268906 URL: http://svnweb.freebsd.org/changeset/base/268906 Log: MFC r250764 Fix rte leak introduced in r248070. Modified: stable/9/sys/net/route.c Modified: stable/9/sys/net/route.c ============================================================================== --- stable/9/sys/net/route.c Sun Jul 20 02:20:03 2014 (r268905) +++ stable/9/sys/net/route.c Sun Jul 20 02:38:58 2014 (r268906) @@ -1638,7 +1638,7 @@ rtinit1(struct ifaddr *ifa, int cmd, int info.rti_ifa = NULL; info.rti_flags = RTF_RNH_LOCKED; - error = rtrequest1_fib(RTM_DELETE, &info, &rt, fibnum); + error = rtrequest1_fib(RTM_DELETE, &info, NULL, fibnum); if (error == 0) { info.rti_ifa = ifa; info.rti_flags = flags | RTF_RNH_LOCKED | From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 03:28:44 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6737692B for ; Sun, 20 Jul 2014 03:28:44 +0000 (UTC) Received: from mail-lb0-f180.google.com (mail-lb0-f180.google.com [209.85.217.180]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DAA3B2A17 for ; Sun, 20 Jul 2014 03:28:43 +0000 (UTC) Received: by mail-lb0-f180.google.com with SMTP id v6so3674845lbi.11 for ; Sat, 19 Jul 2014 20:28:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=y8heppdZLvTyYt8ENQOO4NkYq7EOkydV1vD+FfrAuq8=; b=SOOcppPncUJXnn565dF6KHTcnil9mOAJQfguJRPn0obrsq2q1qta/XvvkbjWebrBVD 7zXOle0etj/TyhWtjeuPpPb6b8oaBvbx//iq0/OaK2DS1O1yy3f6w6uIiycCR21gbzXk XAnQySseHdpH8TzOTe0G4Fg769FKv5gnLxnRE71XB1KW9Z5T2FzrWnO69bnNW8Jxe71p AqAfMRPj066Pgt4CqovTJvAepC8sLvz/lkSub28vVtf/uZl3IUs+UpRsiKepT1O/ZmMt ANwldnis7IEBZA8Q25/4tHLK5qOCW0KGFLRQGvY3hKzK5UGWkfHeOTBIsnr2ZVjIrw9Q VPTA== X-Gm-Message-State: ALoCoQnnGPit1uzMLAtMY1PkCKMP9nJsWdfUS7/EH7rMfEB4XPG7haiR4ZmY05bXhxT5/FfGYT6q X-Received: by 10.112.84.199 with SMTP id b7mr14953226lbz.25.1405826915022; Sat, 19 Jul 2014 20:28:35 -0700 (PDT) Received: from [192.168.1.2] ([89.169.173.68]) by mx.google.com with ESMTPSA id q8sm17658470lbr.28.2014.07.19.20.28.33 for (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 19 Jul 2014 20:28:34 -0700 (PDT) Message-ID: <53CB3760.5050008@freebsd.org> Date: Sun, 20 Jul 2014 07:28:32 +0400 From: Andrey Chernov User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Baptiste Daroussin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: Re: svn commit: r268896 - in stable/10: contrib/libucl contrib/libucl/cmake contrib/libucl/doc contrib/libucl/include contrib/libucl/src contrib/libucl/tests contrib/libucl/tests/basic contrib/libucl/t... References: <201407192344.s6JNiwhg052804@svn.freebsd.org> In-Reply-To: <201407192344.s6JNiwhg052804@svn.freebsd.org> Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 03:28:44 -0000 On 20.07.2014 3:44, Baptiste Daroussin wrote: > Adapt pkg(7) to the new libucl API There is no -lm added, as result: cc -O2 -pipe -march=core2 -I/usr/src/usr.sbin/pkg/../../contrib/libucl/include -std=gnu99 -Qunused-arguments -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition -Wmissing-variable-declarations -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -L/usr/lib/private -rpath /usr/lib/private -o pkg pkg.o dns_utils.o config.o -larchive -lelf -lfetch -lucl -lsbuf -lssl -lcrypto /usr/lib/private/libucl.so: undefined reference to `remainder' cc: error: linker command failed with exit code 1 (use -v to see invocation) *** Error code 1 Stop. make: stopped in /usr/src/usr.sbin/pkg -- http://ache.vniz.net/ From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 04:11:18 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BB549C8D; Sun, 20 Jul 2014 04:11:18 +0000 (UTC) Received: from svn.freebsd.org (svn.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 A91022D2A; Sun, 20 Jul 2014 04:11:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K4BICp084818; Sun, 20 Jul 2014 04:11:18 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K4BI3u084817; Sun, 20 Jul 2014 04:11:18 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201407200411.s6K4BI3u084817@svn.freebsd.org> From: Adrian Chadd Date: Sun, 20 Jul 2014 04:11:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268907 - head/sys/dev/ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 04:11:18 -0000 Author: adrian Date: Sun Jul 20 04:11:18 2014 New Revision: 268907 URL: http://svnweb.freebsd.org/changeset/base/268907 Log: Correctly program the RSS redirection table entries. Without this, the RSS bucket assignments aren't correct - they're DCBA instead of ABCD in each DWORD. Tested: 82599EB ixgbe(4), TCP and UDP RSS Modified: head/sys/dev/ixgbe/ixgbe.c Modified: head/sys/dev/ixgbe/ixgbe.c ============================================================================== --- head/sys/dev/ixgbe/ixgbe.c Sun Jul 20 02:38:58 2014 (r268906) +++ head/sys/dev/ixgbe/ixgbe.c Sun Jul 20 04:11:18 2014 (r268907) @@ -4230,10 +4230,16 @@ ixgbe_initialise_rss_mapping(struct adap #else queue_id = (j * 0x11); #endif - /* XXX endian? */ - reta = (reta << 8) | queue_id; - if ((i & 3) == 3) + /* + * The low 8 bits are for hash value (n+0); + * The next 8 bits are for hash value (n+1), etc. + */ + reta = reta >> 8; + reta = reta | ( ((uint32_t) queue_id) << 24); + if ((i & 3) == 3) { IXGBE_WRITE_REG(hw, IXGBE_RETA(i >> 2), reta); + reta = 0; + } } /* Now fill our hash function seeds */ From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 06:03:53 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 71003B45; Sun, 20 Jul 2014 06:03:53 +0000 (UTC) Received: from svn.freebsd.org (svn.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 5286024E9; Sun, 20 Jul 2014 06:03:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K63rde040455; Sun, 20 Jul 2014 06:03:53 GMT (envelope-from truckman@svn.freebsd.org) Received: (from truckman@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K63rwQ040454; Sun, 20 Jul 2014 06:03:53 GMT (envelope-from truckman@svn.freebsd.org) Message-Id: <201407200603.s6K63rwQ040454@svn.freebsd.org> From: Don Lewis Date: Sun, 20 Jul 2014 06:03:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r268908 - stable/8/sys/kern X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 06:03:53 -0000 Author: truckman Date: Sun Jul 20 06:03:52 2014 New Revision: 268908 URL: http://svnweb.freebsd.org/changeset/base/268908 Log: MFC r268373 Declaration whitespace changes for style(9). Modified: stable/8/sys/kern/subr_rman.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/kern/ (props changed) Modified: stable/8/sys/kern/subr_rman.c ============================================================================== --- stable/8/sys/kern/subr_rman.c Sun Jul 20 04:11:18 2014 (r268907) +++ stable/8/sys/kern/subr_rman.c Sun Jul 20 06:03:52 2014 (r268908) @@ -94,12 +94,12 @@ struct resource_i { u_long r_end; /* index of the last entry (inclusive) */ u_int r_flags; void *r_virtual; /* virtual address of this resource */ - struct device *r_dev; /* device which has allocated this resource */ - struct rman *r_rm; /* resource manager from whence this came */ + struct device *r_dev; /* device which has allocated this resource */ + struct rman *r_rm; /* resource manager from whence this came */ int r_rid; /* optional rid for this resource. */ }; -static int rman_debug = 0; +static int rman_debug = 0; TUNABLE_INT("debug.rman_debug", &rman_debug); SYSCTL_INT(_debug, OID_AUTO, rman_debug, CTLFLAG_RW, &rman_debug, 0, "rman debug"); @@ -108,12 +108,12 @@ SYSCTL_INT(_debug, OID_AUTO, rman_debug, static MALLOC_DEFINE(M_RMAN, "rman", "Resource manager"); -struct rman_head rman_head; -static struct mtx rman_mtx; /* mutex to protect rman_head */ -static int int_rman_activate_resource(struct rman *rm, struct resource_i *r, +struct rman_head rman_head; +static struct mtx rman_mtx; /* mutex to protect rman_head */ +static int int_rman_activate_resource(struct rman *rm, struct resource_i *r, struct resource_i **whohas); -static int int_rman_deactivate_resource(struct resource_i *r); -static int int_rman_release_resource(struct rman *rm, struct resource_i *r); +static int int_rman_deactivate_resource(struct resource_i *r); +static int int_rman_release_resource(struct rman *rm, struct resource_i *r); static __inline struct resource_i * int_alloc_resource(int malloc_flag) @@ -312,8 +312,8 @@ rman_last_free_region(struct rman *rm, u int rman_adjust_resource(struct resource *rr, u_long start, u_long end) { - struct resource_i *r, *s, *t, *new; - struct rman *rm; + struct resource_i *r, *s, *t, *new; + struct rman *rm; /* Not supported for shared resources. */ r = rr->__r_i; @@ -434,12 +434,12 @@ rman_adjust_resource(struct resource *rr struct resource * rman_reserve_resource_bound(struct rman *rm, u_long start, u_long end, - u_long count, u_long bound, u_int flags, - struct device *dev) + u_long count, u_long bound, u_int flags, + struct device *dev) { - u_int new_rflags; - struct resource_i *r, *s, *rv; - u_long rstart, rend, amask, bmask; + u_int new_rflags; + struct resource_i *r, *s, *rv; + u_long rstart, rend, amask, bmask; rv = NULL; @@ -716,9 +716,9 @@ rman_activate_resource(struct resource * int rman_await_resource(struct resource *re, int pri, int timo) { - int rv; - struct resource_i *r, *whohas; - struct rman *rm; + int rv; + struct resource_i *r, *whohas; + struct rman *rm; r = re->__r_i; rm = r->r_rm; @@ -754,7 +754,7 @@ int_rman_deactivate_resource(struct reso int rman_deactivate_resource(struct resource *r) { - struct rman *rm; + struct rman *rm; rm = r->__r_i->r_rm; mtx_lock(rm->rm_mtx); @@ -766,7 +766,7 @@ rman_deactivate_resource(struct resource static int int_rman_release_resource(struct rman *rm, struct resource_i *r) { - struct resource_i *s, *t; + struct resource_i *s, *t; if (r->r_flags & RF_ACTIVE) int_rman_deactivate_resource(r); @@ -860,9 +860,9 @@ out: int rman_release_resource(struct resource *re) { - int rv; - struct resource_i *r; - struct rman *rm; + int rv; + struct resource_i *r; + struct rman *rm; r = re->__r_i; rm = r->r_rm; @@ -875,7 +875,7 @@ rman_release_resource(struct resource *r uint32_t rman_make_alignment_flags(uint32_t size) { - int i; + int i; /* * Find the hightest bit set, and add one if more than one bit @@ -893,96 +893,112 @@ rman_make_alignment_flags(uint32_t size) void rman_set_start(struct resource *r, u_long start) { + r->__r_i->r_start = start; } u_long rman_get_start(struct resource *r) { + return (r->__r_i->r_start); } void rman_set_end(struct resource *r, u_long end) { + r->__r_i->r_end = end; } u_long rman_get_end(struct resource *r) { + return (r->__r_i->r_end); } u_long rman_get_size(struct resource *r) { + return (r->__r_i->r_end - r->__r_i->r_start + 1); } u_int rman_get_flags(struct resource *r) { + return (r->__r_i->r_flags); } void rman_set_virtual(struct resource *r, void *v) { + r->__r_i->r_virtual = v; } void * rman_get_virtual(struct resource *r) { + return (r->__r_i->r_virtual); } void rman_set_bustag(struct resource *r, bus_space_tag_t t) { + r->r_bustag = t; } bus_space_tag_t rman_get_bustag(struct resource *r) { + return (r->r_bustag); } void rman_set_bushandle(struct resource *r, bus_space_handle_t h) { + r->r_bushandle = h; } bus_space_handle_t rman_get_bushandle(struct resource *r) { + return (r->r_bushandle); } void rman_set_rid(struct resource *r, int rid) { + r->__r_i->r_rid = rid; } int rman_get_rid(struct resource *r) { + return (r->__r_i->r_rid); } void rman_set_device(struct resource *r, struct device *dev) { + r->__r_i->r_dev = dev; } struct device * rman_get_device(struct resource *r) { + return (r->__r_i->r_dev); } From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 06:30:47 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3BEF5F28; Sun, 20 Jul 2014 06:30:47 +0000 (UTC) Received: from mail-qc0-x22b.google.com (mail-qc0-x22b.google.com [IPv6:2607:f8b0:400d:c01::22b]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B8BEB26D5; Sun, 20 Jul 2014 06:30:46 +0000 (UTC) Received: by mail-qc0-f171.google.com with SMTP id i17so4623219qcy.2 for ; Sat, 19 Jul 2014 23:30:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=UzKHSALb5RAsA6XJFmv42EppQtYKy0W447Z/2El7Zvw=; b=HwCCSebgqXzz7CJZmso7GceL9M+yl1DlYYex/kh8jL9dB6htVdcRWD0d5Rsrpbd2+P 0IFejwYxV0PHxe5vqbYx4iTlFNUaQP6GZwFk6O6fWPpn1rExzV6XA3J9xZr5pU/RQDqK gtudEophyLZUo0AMEHwC363CZpjahmClTzHc+q1IHUaPJK9pGLwEbvMkj9y01drgGg5s aJ0+mLPCtI053KzHh5gTbcqxhpB9qeVFb7ILakT9D1kS12Pv/bErPUy2ztiNeHlqplLf iVTqP8HhLEk8RI0i5FCHW+izFYNsD2JL3W/ir5HeDV6vf1YoZTVHeKCCz3P1DQdS0vSf x5og== MIME-Version: 1.0 X-Received: by 10.224.71.198 with SMTP id i6mr27194791qaj.76.1405837845600; Sat, 19 Jul 2014 23:30:45 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.224.1.6 with HTTP; Sat, 19 Jul 2014 23:30:45 -0700 (PDT) In-Reply-To: <201407192059.s6JKx8un072543@svn.freebsd.org> References: <201407192059.s6JKx8un072543@svn.freebsd.org> Date: Sat, 19 Jul 2014 23:30:45 -0700 X-Google-Sender-Auth: QXZuCMbAHfRxwibbkylEwGh2DJU Message-ID: Subject: Re: svn commit: r268889 - in head: lib/libvmmapi sys/amd64/include sys/amd64/vmm sys/amd64/vmm/intel usr.sbin/bhyve usr.sbin/bhyvectl From: Adrian Chadd To: Neel Natu Content-Type: text/plain; charset=UTF-8 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 06:30:47 -0000 Hi! This broke -HEAD. 'exc' in vmx_inject_interrupts() is no longer initialised before use /and/ it's part of a KASSERT() output. Thanks! -a On 19 July 2014 13:59, Neel Natu wrote: > Author: neel > Date: Sat Jul 19 20:59:08 2014 > New Revision: 268889 > URL: http://svnweb.freebsd.org/changeset/base/268889 > > Log: > Handle nested exceptions in bhyve. > > A nested exception condition arises when a second exception is triggered while > delivering the first exception. Most nested exceptions can be handled serially > but some are converted into a double fault. If an exception is generated during > delivery of a double fault then the virtual machine shuts down as a result of > a triple fault. > > vm_exit_intinfo() is used to record that a VM-exit happened while an event was > being delivered through the IDT. If an exception is triggered while handling > the VM-exit it will be treated like a nested exception. > > vm_entry_intinfo() is used by processor-specific code to get the event to be > injected into the guest on the next VM-entry. This function is responsible for > deciding the disposition of nested exceptions. > > Modified: > head/lib/libvmmapi/vmmapi.c > head/lib/libvmmapi/vmmapi.h > head/sys/amd64/include/vmm.h > head/sys/amd64/include/vmm_dev.h > head/sys/amd64/vmm/intel/vmx.c > head/sys/amd64/vmm/vmm.c > head/sys/amd64/vmm/vmm_dev.c > head/usr.sbin/bhyve/bhyverun.c > head/usr.sbin/bhyve/task_switch.c > head/usr.sbin/bhyvectl/bhyvectl.c > > Modified: head/lib/libvmmapi/vmmapi.c > ============================================================================== > --- head/lib/libvmmapi/vmmapi.c Sat Jul 19 20:55:13 2014 (r268888) > +++ head/lib/libvmmapi/vmmapi.c Sat Jul 19 20:59:08 2014 (r268889) > @@ -1106,3 +1106,32 @@ vm_activate_cpu(struct vmctx *ctx, int v > error = ioctl(ctx->fd, VM_ACTIVATE_CPU, &ac); > return (error); > } > + > +int > +vm_get_intinfo(struct vmctx *ctx, int vcpu, uint64_t *info1, uint64_t *info2) > +{ > + struct vm_intinfo vmii; > + int error; > + > + bzero(&vmii, sizeof(struct vm_intinfo)); > + vmii.vcpuid = vcpu; > + error = ioctl(ctx->fd, VM_GET_INTINFO, &vmii); > + if (error == 0) { > + *info1 = vmii.info1; > + *info2 = vmii.info2; > + } > + return (error); > +} > + > +int > +vm_set_intinfo(struct vmctx *ctx, int vcpu, uint64_t info1) > +{ > + struct vm_intinfo vmii; > + int error; > + > + bzero(&vmii, sizeof(struct vm_intinfo)); > + vmii.vcpuid = vcpu; > + vmii.info1 = info1; > + error = ioctl(ctx->fd, VM_SET_INTINFO, &vmii); > + return (error); > +} > > Modified: head/lib/libvmmapi/vmmapi.h > ============================================================================== > --- head/lib/libvmmapi/vmmapi.h Sat Jul 19 20:55:13 2014 (r268888) > +++ head/lib/libvmmapi/vmmapi.h Sat Jul 19 20:59:08 2014 (r268889) > @@ -104,6 +104,9 @@ int vm_setup_pptdev_msix(struct vmctx *c > int func, int idx, uint64_t addr, uint64_t msg, > uint32_t vector_control); > > +int vm_get_intinfo(struct vmctx *ctx, int vcpu, uint64_t *i1, uint64_t *i2); > +int vm_set_intinfo(struct vmctx *ctx, int vcpu, uint64_t exit_intinfo); > + > /* > * Return a pointer to the statistics buffer. Note that this is not MT-safe. > */ > > Modified: head/sys/amd64/include/vmm.h > ============================================================================== > --- head/sys/amd64/include/vmm.h Sat Jul 19 20:55:13 2014 (r268888) > +++ head/sys/amd64/include/vmm.h Sat Jul 19 20:59:08 2014 (r268889) > @@ -34,6 +34,7 @@ enum vm_suspend_how { > VM_SUSPEND_RESET, > VM_SUSPEND_POWEROFF, > VM_SUSPEND_HALT, > + VM_SUSPEND_TRIPLEFAULT, > VM_SUSPEND_LAST > }; > > @@ -88,6 +89,16 @@ enum x2apic_state { > X2APIC_STATE_LAST > }; > > +#define VM_INTINFO_VECTOR(info) ((info) & 0xff) > +#define VM_INTINFO_DEL_ERRCODE 0x800 > +#define VM_INTINFO_RSVD 0x7ffff000 > +#define VM_INTINFO_VALID 0x80000000 > +#define VM_INTINFO_TYPE 0x700 > +#define VM_INTINFO_HWINTR (0 << 8) > +#define VM_INTINFO_NMI (2 << 8) > +#define VM_INTINFO_HWEXCEPTION (3 << 8) > +#define VM_INTINFO_SWINTR (4 << 8) > + > #ifdef _KERNEL > > #define VM_MAX_NAMELEN 32 > @@ -278,14 +289,31 @@ struct vatpit *vm_atpit(struct vm *vm); > int vm_inject_exception(struct vm *vm, int vcpuid, struct vm_exception *vme); > > /* > - * Returns 0 if there is no exception pending for this vcpu. Returns 1 if an > - * exception is pending and also updates 'vme'. The pending exception is > - * cleared when this function returns. > + * This function is called after a VM-exit that occurred during exception or > + * interrupt delivery through the IDT. The format of 'intinfo' is described > + * in Figure 15-1, "EXITINTINFO for All Intercepts", APM, Vol 2. > * > - * This function should only be called in the context of the thread that is > - * executing this vcpu. > + * If a VM-exit handler completes the event delivery successfully then it > + * should call vm_exit_intinfo() to extinguish the pending event. For e.g., > + * if the task switch emulation is triggered via a task gate then it should > + * call this function with 'intinfo=0' to indicate that the external event > + * is not pending anymore. > + * > + * Return value is 0 on success and non-zero on failure. > */ > -int vm_exception_pending(struct vm *vm, int vcpuid, struct vm_exception *vme); > +int vm_exit_intinfo(struct vm *vm, int vcpuid, uint64_t intinfo); > + > +/* > + * This function is called before every VM-entry to retrieve a pending > + * event that should be injected into the guest. This function combines > + * nested events into a double or triple fault. > + * > + * Returns 0 if there are no events that need to be injected into the guest > + * and non-zero otherwise. > + */ > +int vm_entry_intinfo(struct vm *vm, int vcpuid, uint64_t *info); > + > +int vm_get_intinfo(struct vm *vm, int vcpuid, uint64_t *info1, uint64_t *info2); > > void vm_inject_gp(struct vm *vm, int vcpuid); /* general protection fault */ > void vm_inject_ud(struct vm *vm, int vcpuid); /* undefined instruction fault */ > > Modified: head/sys/amd64/include/vmm_dev.h > ============================================================================== > --- head/sys/amd64/include/vmm_dev.h Sat Jul 19 20:55:13 2014 (r268888) > +++ head/sys/amd64/include/vmm_dev.h Sat Jul 19 20:59:08 2014 (r268889) > @@ -189,6 +189,12 @@ struct vm_cpuset { > #define VM_ACTIVE_CPUS 0 > #define VM_SUSPENDED_CPUS 1 > > +struct vm_intinfo { > + int vcpuid; > + uint64_t info1; > + uint64_t info2; > +}; > + > enum { > /* general routines */ > IOCNUM_ABIVERS = 0, > @@ -211,6 +217,8 @@ enum { > IOCNUM_GET_SEGMENT_DESCRIPTOR = 23, > > /* interrupt injection */ > + IOCNUM_GET_INTINFO = 28, > + IOCNUM_SET_INTINFO = 29, > IOCNUM_INJECT_EXCEPTION = 30, > IOCNUM_LAPIC_IRQ = 31, > IOCNUM_INJECT_NMI = 32, > @@ -324,4 +332,8 @@ enum { > _IOW('v', IOCNUM_ACTIVATE_CPU, struct vm_activate_cpu) > #define VM_GET_CPUS \ > _IOW('v', IOCNUM_GET_CPUSET, struct vm_cpuset) > +#define VM_SET_INTINFO \ > + _IOW('v', IOCNUM_SET_INTINFO, struct vm_intinfo) > +#define VM_GET_INTINFO \ > + _IOWR('v', IOCNUM_GET_INTINFO, struct vm_intinfo) > #endif > > Modified: head/sys/amd64/vmm/intel/vmx.c > ============================================================================== > --- head/sys/amd64/vmm/intel/vmx.c Sat Jul 19 20:55:13 2014 (r268888) > +++ head/sys/amd64/vmm/intel/vmx.c Sat Jul 19 20:59:08 2014 (r268889) > @@ -1213,22 +1213,31 @@ vmx_inject_interrupts(struct vmx *vmx, i > { > struct vm_exception exc; > int vector, need_nmi_exiting, extint_pending; > - uint64_t rflags; > + uint64_t rflags, entryinfo; > uint32_t gi, info; > > - if (vm_exception_pending(vmx->vm, vcpu, &exc)) { > - KASSERT(exc.vector >= 0 && exc.vector < 32, > - ("%s: invalid exception vector %d", __func__, exc.vector)); > + if (vm_entry_intinfo(vmx->vm, vcpu, &entryinfo)) { > + KASSERT((entryinfo & VMCS_INTR_VALID) != 0, ("%s: entry " > + "intinfo is not valid: %#lx", __func__, entryinfo)); > > info = vmcs_read(VMCS_ENTRY_INTR_INFO); > KASSERT((info & VMCS_INTR_VALID) == 0, ("%s: cannot inject " > "pending exception %d: %#x", __func__, exc.vector, info)); > > - info = exc.vector | VMCS_INTR_T_HWEXCEPTION | VMCS_INTR_VALID; > - if (exc.error_code_valid) { > - info |= VMCS_INTR_DEL_ERRCODE; > - vmcs_write(VMCS_ENTRY_EXCEPTION_ERROR, exc.error_code); > + info = entryinfo; > + vector = info & 0xff; > + if (vector == IDT_BP || vector == IDT_OF) { > + /* > + * VT-x requires #BP and #OF to be injected as software > + * exceptions. > + */ > + info &= ~VMCS_INTR_T_MASK; > + info |= VMCS_INTR_T_SWEXCEPTION; > } > + > + if (info & VMCS_INTR_DEL_ERRCODE) > + vmcs_write(VMCS_ENTRY_EXCEPTION_ERROR, entryinfo >> 32); > + > vmcs_write(VMCS_ENTRY_INTR_INFO, info); > } > > @@ -1407,6 +1416,16 @@ vmx_clear_nmi_blocking(struct vmx *vmx, > vmcs_write(VMCS_GUEST_INTERRUPTIBILITY, gi); > } > > +static void > +vmx_assert_nmi_blocking(struct vmx *vmx, int vcpuid) > +{ > + uint32_t gi; > + > + gi = vmcs_read(VMCS_GUEST_INTERRUPTIBILITY); > + KASSERT(gi & VMCS_INTERRUPTIBILITY_NMI_BLOCKING, > + ("NMI blocking is not in effect %#x", gi)); > +} > + > static int > vmx_emulate_xsetbv(struct vmx *vmx, int vcpu, struct vm_exit *vmexit) > { > @@ -2050,7 +2069,7 @@ vmx_exit_process(struct vmx *vmx, int vc > struct vm_task_switch *ts; > uint32_t eax, ecx, edx, idtvec_info, idtvec_err, intr_info, inst_info; > uint32_t intr_type, reason; > - uint64_t qual, gpa; > + uint64_t exitintinfo, qual, gpa; > bool retu; > > CTASSERT((PINBASED_CTLS_ONE_SETTING & PINBASED_VIRTUAL_NMI) != 0); > @@ -2070,47 +2089,49 @@ vmx_exit_process(struct vmx *vmx, int vc > * be handled specially by re-injecting the event if the IDT > * vectoring information field's valid bit is set. > * > - * If the VM-exit is due to a task gate in the IDT then we don't > - * reinject the event because emulating the task switch also > - * completes the event delivery. > - * > * See "Information for VM Exits During Event Delivery" in Intel SDM > * for details. > */ > - switch (reason) { > - case EXIT_REASON_EPT_FAULT: > - case EXIT_REASON_EPT_MISCONFIG: > - case EXIT_REASON_APIC_ACCESS: > - case EXIT_REASON_TASK_SWITCH: > - case EXIT_REASON_EXCEPTION: > - idtvec_info = vmcs_idt_vectoring_info(); > - VCPU_CTR2(vmx->vm, vcpu, "vm exit %s: idtvec_info 0x%08x", > - exit_reason_to_str(reason), idtvec_info); > - if ((idtvec_info & VMCS_IDT_VEC_VALID) && > - (reason != EXIT_REASON_TASK_SWITCH)) { > - idtvec_info &= ~(1 << 12); /* clear undefined bit */ > - vmcs_write(VMCS_ENTRY_INTR_INFO, idtvec_info); > - if (idtvec_info & VMCS_IDT_VEC_ERRCODE_VALID) { > - idtvec_err = vmcs_idt_vectoring_err(); > - vmcs_write(VMCS_ENTRY_EXCEPTION_ERROR, > - idtvec_err); > - } > - /* > - * If 'virtual NMIs' are being used and the VM-exit > - * happened while injecting an NMI during the previous > - * VM-entry, then clear "blocking by NMI" in the Guest > - * Interruptibility-state. > - */ > - if ((idtvec_info & VMCS_INTR_T_MASK) == > - VMCS_INTR_T_NMI) { > - vmx_clear_nmi_blocking(vmx, vcpu); > - } > + idtvec_info = vmcs_idt_vectoring_info(); > + if (idtvec_info & VMCS_IDT_VEC_VALID) { > + idtvec_info &= ~(1 << 12); /* clear undefined bit */ > + exitintinfo = idtvec_info; > + if (idtvec_info & VMCS_IDT_VEC_ERRCODE_VALID) { > + idtvec_err = vmcs_idt_vectoring_err(); > + exitintinfo |= (uint64_t)idtvec_err << 32; > + } > + error = vm_exit_intinfo(vmx->vm, vcpu, exitintinfo); > + KASSERT(error == 0, ("%s: vm_set_intinfo error %d", > + __func__, error)); > + > + /* > + * If 'virtual NMIs' are being used and the VM-exit > + * happened while injecting an NMI during the previous > + * VM-entry, then clear "blocking by NMI" in the > + * Guest Interruptibility-State so the NMI can be > + * reinjected on the subsequent VM-entry. > + * > + * However, if the NMI was being delivered through a task > + * gate, then the new task must start execution with NMIs > + * blocked so don't clear NMI blocking in this case. > + */ > + intr_type = idtvec_info & VMCS_INTR_T_MASK; > + if (intr_type == VMCS_INTR_T_NMI) { > + if (reason != EXIT_REASON_TASK_SWITCH) > + vmx_clear_nmi_blocking(vmx, vcpu); > + else > + vmx_assert_nmi_blocking(vmx, vcpu); > + } > + > + /* > + * Update VM-entry instruction length if the event being > + * delivered was a software interrupt or software exception. > + */ > + if (intr_type == VMCS_INTR_T_SWINTR || > + intr_type == VMCS_INTR_T_PRIV_SWEXCEPTION || > + intr_type == VMCS_INTR_T_SWEXCEPTION) { > vmcs_write(VMCS_ENTRY_INST_LENGTH, vmexit->inst_length); > } > - break; > - default: > - idtvec_info = 0; > - break; > } > > switch (reason) { > @@ -2136,7 +2157,7 @@ vmx_exit_process(struct vmx *vmx, int vc > */ > if (ts->reason == TSR_IDT_GATE) { > KASSERT(idtvec_info & VMCS_IDT_VEC_VALID, > - ("invalid idtvec_info %x for IDT task switch", > + ("invalid idtvec_info %#x for IDT task switch", > idtvec_info)); > intr_type = idtvec_info & VMCS_INTR_T_MASK; > if (intr_type != VMCS_INTR_T_SWINTR && > @@ -2302,6 +2323,7 @@ vmx_exit_process(struct vmx *vmx, int vc > * the guest. > * > * See "Resuming Guest Software after Handling an Exception". > + * See "Information for VM Exits Due to Vectored Events". > */ > if ((idtvec_info & VMCS_IDT_VEC_VALID) == 0 && > (intr_info & 0xff) != IDT_DF && > @@ -2519,6 +2541,13 @@ vmx_run(void *arg, int vcpu, register_t > * pmap_invalidate_ept(). > */ > disable_intr(); > + vmx_inject_interrupts(vmx, vcpu, vlapic); > + > + /* > + * Check for vcpu suspension after injecting events because > + * vmx_inject_interrupts() can suspend the vcpu due to a > + * triple fault. > + */ > if (vcpu_suspended(suspend_cookie)) { > enable_intr(); > vm_exit_suspended(vmx->vm, vcpu, vmcs_guest_rip()); > @@ -2539,7 +2568,6 @@ vmx_run(void *arg, int vcpu, register_t > break; > } > > - vmx_inject_interrupts(vmx, vcpu, vlapic); > vmx_run_trace(vmx, vcpu); > rc = vmx_enter_guest(vmxctx, vmx, launched); > > > Modified: head/sys/amd64/vmm/vmm.c > ============================================================================== > --- head/sys/amd64/vmm/vmm.c Sat Jul 19 20:55:13 2014 (r268888) > +++ head/sys/amd64/vmm/vmm.c Sat Jul 19 20:59:08 2014 (r268889) > @@ -97,6 +97,7 @@ struct vcpu { > int hostcpu; /* (o) vcpu's host cpu */ > struct vlapic *vlapic; /* (i) APIC device model */ > enum x2apic_state x2apic_state; /* (i) APIC mode */ > + uint64_t exitintinfo; /* (i) events pending at VM exit */ > int nmi_pending; /* (i) NMI pending */ > int extint_pending; /* (i) INTR pending */ > struct vm_exception exception; /* (x) exception collateral */ > @@ -241,6 +242,7 @@ vcpu_init(struct vm *vm, int vcpu_id, bo > > vcpu->vlapic = VLAPIC_INIT(vm->cookie, vcpu_id); > vm_set_x2apic_state(vm, vcpu_id, X2APIC_DISABLED); > + vcpu->exitintinfo = 0; > vcpu->nmi_pending = 0; > vcpu->extint_pending = 0; > vcpu->exception_pending = 0; > @@ -1458,6 +1460,202 @@ restart: > } > > int > +vm_exit_intinfo(struct vm *vm, int vcpuid, uint64_t info) > +{ > + struct vcpu *vcpu; > + int type, vector; > + > + if (vcpuid < 0 || vcpuid >= VM_MAXCPU) > + return (EINVAL); > + > + vcpu = &vm->vcpu[vcpuid]; > + > + if (info & VM_INTINFO_VALID) { > + type = info & VM_INTINFO_TYPE; > + vector = info & 0xff; > + if (type == VM_INTINFO_NMI && vector != IDT_NMI) > + return (EINVAL); > + if (type == VM_INTINFO_HWEXCEPTION && vector >= 32) > + return (EINVAL); > + if (info & VM_INTINFO_RSVD) > + return (EINVAL); > + } else { > + info = 0; > + } > + VCPU_CTR2(vm, vcpuid, "%s: info1(%#lx)", __func__, info); > + vcpu->exitintinfo = info; > + return (0); > +} > + > +enum exc_class { > + EXC_BENIGN, > + EXC_CONTRIBUTORY, > + EXC_PAGEFAULT > +}; > + > +#define IDT_VE 20 /* Virtualization Exception (Intel specific) */ > + > +static enum exc_class > +exception_class(uint64_t info) > +{ > + int type, vector; > + > + KASSERT(info & VM_INTINFO_VALID, ("intinfo must be valid: %#lx", info)); > + type = info & VM_INTINFO_TYPE; > + vector = info & 0xff; > + > + /* Table 6-4, "Interrupt and Exception Classes", Intel SDM, Vol 3 */ > + switch (type) { > + case VM_INTINFO_HWINTR: > + case VM_INTINFO_SWINTR: > + case VM_INTINFO_NMI: > + return (EXC_BENIGN); > + default: > + /* > + * Hardware exception. > + * > + * SVM and VT-x use identical type values to represent NMI, > + * hardware interrupt and software interrupt. > + * > + * SVM uses type '3' for all exceptions. VT-x uses type '3' > + * for exceptions except #BP and #OF. #BP and #OF use a type > + * value of '5' or '6'. Therefore we don't check for explicit > + * values of 'type' to classify 'intinfo' into a hardware > + * exception. > + */ > + break; > + } > + > + switch (vector) { > + case IDT_PF: > + case IDT_VE: > + return (EXC_PAGEFAULT); > + case IDT_DE: > + case IDT_TS: > + case IDT_NP: > + case IDT_SS: > + case IDT_GP: > + return (EXC_CONTRIBUTORY); > + default: > + return (EXC_BENIGN); > + } > +} > + > +static int > +nested_fault(struct vm *vm, int vcpuid, uint64_t info1, uint64_t info2, > + uint64_t *retinfo) > +{ > + enum exc_class exc1, exc2; > + int type1, vector1; > + > + KASSERT(info1 & VM_INTINFO_VALID, ("info1 %#lx is not valid", info1)); > + KASSERT(info2 & VM_INTINFO_VALID, ("info2 %#lx is not valid", info2)); > + > + /* > + * If an exception occurs while attempting to call the double-fault > + * handler the processor enters shutdown mode (aka triple fault). > + */ > + type1 = info1 & VM_INTINFO_TYPE; > + vector1 = info1 & 0xff; > + if (type1 == VM_INTINFO_HWEXCEPTION && vector1 == IDT_DF) { > + VCPU_CTR2(vm, vcpuid, "triple fault: info1(%#lx), info2(%#lx)", > + info1, info2); > + vm_suspend(vm, VM_SUSPEND_TRIPLEFAULT); > + *retinfo = 0; > + return (0); > + } > + > + /* > + * Table 6-5 "Conditions for Generating a Double Fault", Intel SDM, Vol3 > + */ > + exc1 = exception_class(info1); > + exc2 = exception_class(info2); > + if ((exc1 == EXC_CONTRIBUTORY && exc2 == EXC_CONTRIBUTORY) || > + (exc1 == EXC_PAGEFAULT && exc2 != EXC_BENIGN)) { > + /* Convert nested fault into a double fault. */ > + *retinfo = IDT_DF; > + *retinfo |= VM_INTINFO_VALID | VM_INTINFO_HWEXCEPTION; > + *retinfo |= VM_INTINFO_DEL_ERRCODE; > + } else { > + /* Handle exceptions serially */ > + *retinfo = info2; > + } > + return (1); > +} > + > +static uint64_t > +vcpu_exception_intinfo(struct vcpu *vcpu) > +{ > + uint64_t info = 0; > + > + if (vcpu->exception_pending) { > + info = vcpu->exception.vector & 0xff; > + info |= VM_INTINFO_VALID | VM_INTINFO_HWEXCEPTION; > + if (vcpu->exception.error_code_valid) { > + info |= VM_INTINFO_DEL_ERRCODE; > + info |= (uint64_t)vcpu->exception.error_code << 32; > + } > + } > + return (info); > +} > + > +int > +vm_entry_intinfo(struct vm *vm, int vcpuid, uint64_t *retinfo) > +{ > + struct vcpu *vcpu; > + uint64_t info1, info2; > + int valid; > + > + KASSERT(vcpuid >= 0 && vcpuid < VM_MAXCPU, ("invalid vcpu %d", vcpuid)); > + > + vcpu = &vm->vcpu[vcpuid]; > + > + info1 = vcpu->exitintinfo; > + vcpu->exitintinfo = 0; > + > + info2 = 0; > + if (vcpu->exception_pending) { > + info2 = vcpu_exception_intinfo(vcpu); > + vcpu->exception_pending = 0; > + VCPU_CTR2(vm, vcpuid, "Exception %d delivered: %#lx", > + vcpu->exception.vector, info2); > + } > + > + if ((info1 & VM_INTINFO_VALID) && (info2 & VM_INTINFO_VALID)) { > + valid = nested_fault(vm, vcpuid, info1, info2, retinfo); > + } else if (info1 & VM_INTINFO_VALID) { > + *retinfo = info1; > + valid = 1; > + } else if (info2 & VM_INTINFO_VALID) { > + *retinfo = info2; > + valid = 1; > + } else { > + valid = 0; > + } > + > + if (valid) { > + VCPU_CTR4(vm, vcpuid, "%s: info1(%#lx), info2(%#lx), " > + "retinfo(%#lx)", __func__, info1, info2, *retinfo); > + } > + > + return (valid); > +} > + > +int > +vm_get_intinfo(struct vm *vm, int vcpuid, uint64_t *info1, uint64_t *info2) > +{ > + struct vcpu *vcpu; > + > + if (vcpuid < 0 || vcpuid >= VM_MAXCPU) > + return (EINVAL); > + > + vcpu = &vm->vcpu[vcpuid]; > + *info1 = vcpu->exitintinfo; > + *info2 = vcpu_exception_intinfo(vcpu); > + return (0); > +} > + > +int > vm_inject_exception(struct vm *vm, int vcpuid, struct vm_exception *exception) > { > struct vcpu *vcpu; > @@ -1468,6 +1666,14 @@ vm_inject_exception(struct vm *vm, int v > if (exception->vector < 0 || exception->vector >= 32) > return (EINVAL); > > + /* > + * A double fault exception should never be injected directly into > + * the guest. It is a derived exception that results from specific > + * combinations of nested faults. > + */ > + if (exception->vector == IDT_DF) > + return (EINVAL); > + > vcpu = &vm->vcpu[vcpuid]; > > if (vcpu->exception_pending) { > @@ -1483,25 +1689,6 @@ vm_inject_exception(struct vm *vm, int v > return (0); > } > > -int > -vm_exception_pending(struct vm *vm, int vcpuid, struct vm_exception *exception) > -{ > - struct vcpu *vcpu; > - int pending; > - > - KASSERT(vcpuid >= 0 && vcpuid < VM_MAXCPU, ("invalid vcpu %d", vcpuid)); > - > - vcpu = &vm->vcpu[vcpuid]; > - pending = vcpu->exception_pending; > - if (pending) { > - vcpu->exception_pending = 0; > - *exception = vcpu->exception; > - VCPU_CTR1(vm, vcpuid, "Exception %d delivered", > - exception->vector); > - } > - return (pending); > -} > - > static void > vm_inject_fault(struct vm *vm, int vcpuid, struct vm_exception *exception) > { > > Modified: head/sys/amd64/vmm/vmm_dev.c > ============================================================================== > --- head/sys/amd64/vmm/vmm_dev.c Sat Jul 19 20:55:13 2014 (r268888) > +++ head/sys/amd64/vmm/vmm_dev.c Sat Jul 19 20:59:08 2014 (r268889) > @@ -173,6 +173,7 @@ vmmdev_ioctl(struct cdev *cdev, u_long c > struct vm_gla2gpa *gg; > struct vm_activate_cpu *vac; > struct vm_cpuset *vm_cpuset; > + struct vm_intinfo *vmii; > > sc = vmmdev_lookup2(cdev); > if (sc == NULL) > @@ -199,6 +200,8 @@ vmmdev_ioctl(struct cdev *cdev, u_long c > case VM_SET_X2APIC_STATE: > case VM_GLA2GPA: > case VM_ACTIVATE_CPU: > + case VM_SET_INTINFO: > + case VM_GET_INTINFO: > /* > * XXX fragile, handle with care > * Assumes that the first field of the ioctl data is the vcpu. > @@ -470,6 +473,15 @@ vmmdev_ioctl(struct cdev *cdev, u_long c > error = copyout(cpuset, vm_cpuset->cpus, size); > free(cpuset, M_TEMP); > break; > + case VM_SET_INTINFO: > + vmii = (struct vm_intinfo *)data; > + error = vm_exit_intinfo(sc->vm, vmii->vcpuid, vmii->info1); > + break; > + case VM_GET_INTINFO: > + vmii = (struct vm_intinfo *)data; > + error = vm_get_intinfo(sc->vm, vmii->vcpuid, &vmii->info1, > + &vmii->info2); > + break; > default: > error = ENOTTY; > break; > > Modified: head/usr.sbin/bhyve/bhyverun.c > ============================================================================== > --- head/usr.sbin/bhyve/bhyverun.c Sat Jul 19 20:55:13 2014 (r268888) > +++ head/usr.sbin/bhyve/bhyverun.c Sat Jul 19 20:59:08 2014 (r268889) > @@ -534,6 +534,8 @@ vmexit_suspend(struct vmctx *ctx, struct > exit(1); > case VM_SUSPEND_HALT: > exit(2); > + case VM_SUSPEND_TRIPLEFAULT: > + exit(3); > default: > fprintf(stderr, "vmexit_suspend: invalid reason %d\n", how); > exit(100); > > Modified: head/usr.sbin/bhyve/task_switch.c > ============================================================================== > --- head/usr.sbin/bhyve/task_switch.c Sat Jul 19 20:55:13 2014 (r268888) > +++ head/usr.sbin/bhyve/task_switch.c Sat Jul 19 20:59:08 2014 (r268889) > @@ -904,10 +904,14 @@ vmexit_task_switch(struct vmctx *ctx, st > */ > > /* > - * XXX is the original task switch was triggered by a hardware > - * exception then do we generate a double-fault if we encounter > - * an exception during the task switch? > + * If the task switch was triggered by an event delivered through > + * the IDT then extinguish the pending event from the vcpu's > + * exitintinfo. > */ > + if (task_switch->reason == TSR_IDT_GATE) { > + error = vm_set_intinfo(ctx, vcpu, 0); > + assert(error == 0); > + } > > /* > * XXX should inject debug exception if 'T' bit is 1 > > Modified: head/usr.sbin/bhyvectl/bhyvectl.c > ============================================================================== > --- head/usr.sbin/bhyvectl/bhyvectl.c Sat Jul 19 20:55:13 2014 (r268888) > +++ head/usr.sbin/bhyvectl/bhyvectl.c Sat Jul 19 20:59:08 2014 (r268889) > @@ -195,7 +195,8 @@ usage(void) > " [--force-reset]\n" > " [--force-poweroff]\n" > " [--get-active-cpus]\n" > - " [--get-suspended-cpus]\n", > + " [--get-suspended-cpus]\n" > + " [--get-intinfo]\n", > progname); > exit(1); > } > @@ -205,6 +206,7 @@ static int inject_nmi, assert_lapic_lvt; > static int force_reset, force_poweroff; > static const char *capname; > static int create, destroy, get_lowmem, get_highmem; > +static int get_intinfo; > static int get_active_cpus, get_suspended_cpus; > static uint64_t memsize; > static int set_cr0, get_cr0, set_cr3, get_cr3, set_cr4, get_cr4; > @@ -412,6 +414,37 @@ print_cpus(const char *banner, const cpu > printf("\n"); > } > > +static void > +print_intinfo(const char *banner, uint64_t info) > +{ > + int type; > + > + printf("%s:\t", banner); > + if (info & VM_INTINFO_VALID) { > + type = info & VM_INTINFO_TYPE; > + switch (type) { > + case VM_INTINFO_HWINTR: > + printf("extint"); > + break; > + case VM_INTINFO_NMI: > + printf("nmi"); > + break; > + case VM_INTINFO_SWINTR: > + printf("swint"); > + break; > + default: > + printf("exception"); > + break; > + } > + printf(" vector %d", (int)VM_INTINFO_VECTOR(info)); > + if (info & VM_INTINFO_DEL_ERRCODE) > + printf(" errcode %#x", (u_int)(info >> 32)); > + } else { > + printf("n/a"); > + } > + printf("\n"); > +} > + > int > main(int argc, char *argv[]) > { > @@ -420,7 +453,7 @@ main(int argc, char *argv[]) > vm_paddr_t gpa, gpa_pmap; > size_t len; > struct vm_exit vmexit; > - uint64_t ctl, eptp, bm, addr, u64, pteval[4], *pte; > + uint64_t ctl, eptp, bm, addr, u64, pteval[4], *pte, info[2]; > struct vmctx *ctx; > int wired; > cpuset_t cpus; > @@ -595,6 +628,7 @@ main(int argc, char *argv[]) > { "force-poweroff", NO_ARG, &force_poweroff, 1 }, > { "get-active-cpus", NO_ARG, &get_active_cpus, 1 }, > { "get-suspended-cpus", NO_ARG, &get_suspended_cpus, 1 }, > + { "get-intinfo", NO_ARG, &get_intinfo, 1 }, > { NULL, 0, NULL, 0 } > }; > > @@ -1566,6 +1600,14 @@ main(int argc, char *argv[]) > print_cpus("suspended cpus", &cpus); > } > > + if (!error && (get_intinfo || get_all)) { > + error = vm_get_intinfo(ctx, vcpu, &info[0], &info[1]); > + if (!error) { > + print_intinfo("pending", info[0]); > + print_intinfo("current", info[1]); > + } > + } > + > if (!error && run) { > error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RIP, &rip); > assert(error == 0); > From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 07:31:56 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4E7EF685; Sun, 20 Jul 2014 07:31:56 +0000 (UTC) Received: from svn.freebsd.org (svn.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 3C0012ADC; Sun, 20 Jul 2014 07:31:56 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K7Vunr082295; Sun, 20 Jul 2014 07:31:56 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K7VuxQ082294; Sun, 20 Jul 2014 07:31:56 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201407200731.s6K7VuxQ082294@svn.freebsd.org> From: Adrian Chadd Date: Sun, 20 Jul 2014 07:31:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268909 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 07:31:56 -0000 Author: adrian Date: Sun Jul 20 07:31:55 2014 New Revision: 268909 URL: http://svnweb.freebsd.org/changeset/base/268909 Log: Update the comment to be more concise. Modified: head/sys/netinet/in_rss.c Modified: head/sys/netinet/in_rss.c ============================================================================== --- head/sys/netinet/in_rss.c Sun Jul 20 06:03:52 2014 (r268908) +++ head/sys/netinet/in_rss.c Sun Jul 20 07:31:55 2014 (r268909) @@ -149,9 +149,8 @@ SYSCTL_INT(_net_inet_rss, OID_AUTO, base * * XXXRW: And that we don't randomize it yet! * - * XXXRW: This default is actually the default key from Chelsio T5 cards, as - * it offers reasonable distribution, unlike all-0 keys which always - * generate a hash of 0 (upsettingly). + * This is the default Microsoft RSS specification key which is also + * the Chelsio T5 firmware default key. */ static uint8_t rss_key[RSS_KEYSIZE] = { 0xbe, 0xac, 0x01, 0xfa, 0x6a, 0x42, 0xb7, 0x3b, From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 07:35:00 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D4C4C7F3; Sun, 20 Jul 2014 07:35:00 +0000 (UTC) Received: from svn.freebsd.org (svn.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 C16B02AEC; Sun, 20 Jul 2014 07:35:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K7Z08F082895; Sun, 20 Jul 2014 07:35:00 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K7Z0qb082892; Sun, 20 Jul 2014 07:35:00 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201407200735.s6K7Z0qb082892@svn.freebsd.org> From: Alexander Motin Date: Sun, 20 Jul 2014 07:35:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r268910 - stable/10/usr.sbin/ctld X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 07:35:00 -0000 Author: mav Date: Sun Jul 20 07:35:00 2014 New Revision: 268910 URL: http://svnweb.freebsd.org/changeset/base/268910 Log: MFC r268795: Fix ctld crash on startup if target alias is not set. Modified: stable/10/usr.sbin/ctld/kernel.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/ctld/kernel.c ============================================================================== --- stable/10/usr.sbin/ctld/kernel.c Sun Jul 20 07:31:55 2014 (r268909) +++ stable/10/usr.sbin/ctld/kernel.c Sun Jul 20 07:35:00 2014 (r268910) @@ -851,9 +851,12 @@ kernel_port_add(struct target *targ) req.args[0].value = &port_id; req.args[0].flags = CTL_BEARG_WR; str_arg(&req.args[1], "cfiscsi_target", targ->t_name); - str_arg(&req.args[2], "cfiscsi_target_alias", targ->t_alias); snprintf(tagstr, sizeof(tagstr), "%d", targ->t_portal_group->pg_tag); - str_arg(&req.args[3], "cfiscsi_portal_group_tag", tagstr); + str_arg(&req.args[2], "cfiscsi_portal_group_tag", tagstr); + if (targ->t_alias) + str_arg(&req.args[3], "cfiscsi_target_alias", targ->t_alias); + else + req.num_args--; error = ioctl(ctl_fd, CTL_PORT_REQ, &req); free(req.args); From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 07:37:00 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 45CE0942; Sun, 20 Jul 2014 07:37:00 +0000 (UTC) Received: from svn.freebsd.org (svn.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 330832AFE; Sun, 20 Jul 2014 07:37:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K7b0LO083215; Sun, 20 Jul 2014 07:37:00 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K7axG6083204; Sun, 20 Jul 2014 07:36:59 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201407200736.s6K7axG6083204@svn.freebsd.org> From: Adrian Chadd Date: Sun, 20 Jul 2014 07:36:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268911 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 07:37:00 -0000 Author: adrian Date: Sun Jul 20 07:36:59 2014 New Revision: 268911 URL: http://svnweb.freebsd.org/changeset/base/268911 Log: Implement rss_gethashconfig() - return the currently supported hash methods by the stack. Right now the stack isn't really setup for RSS with 4-tuple UDP hashing for either IPv4 and IPv6. The specifics: * The UDP init path udp_init() and udplite_init() specify the hash as 2-tuple, so the PCBGROUPS code only tries a 2-tuple check; * The PCBGROUPS and RSS code doesn't know about the UDP hash types just yet, so they're never treated as valid hashes. * For correctness, 4-tuple can't be enabled in the general case because UDP datagrams can be more fragmented than IP datagrams may be. Strictly speaking, TCP datagrams may also be fragmented and this could cause issues with PCBGROUPS/RSS until the IP defragment path grows some code to re-calculate the RSS hash. I'll follow this commit up with awareness of the UDP 4-tuple for those who wish to configure it, but for now it'll stay disabled. No drivers (yet) know to use this function when RSS is enabled. Modified: head/sys/netinet/in_rss.c head/sys/netinet/in_rss.h Modified: head/sys/netinet/in_rss.c ============================================================================== --- head/sys/netinet/in_rss.c Sun Jul 20 07:35:00 2014 (r268910) +++ head/sys/netinet/in_rss.c Sun Jul 20 07:36:59 2014 (r268911) @@ -535,6 +535,40 @@ rss_getnumcpus(void) } /* + * Return the supported RSS hash configuration. + * + * NICs should query this to determine what to configure in their redirection + * matching table. + */ +u_int +rss_gethashconfig(void) +{ + /* Return 4-tuple for TCP; 2-tuple for others */ + /* + * UDP may fragment more often than TCP and thus we'll end up with + * NICs returning 2-tuple fragments. + * udp_init() and udplite_init() both currently initialise things + * as 2-tuple. + * So for now disable UDP 4-tuple hashing until all of the other + * pieces are in place. + */ + return ( + RSS_HASHTYPE_RSS_IPV4 + | RSS_HASHTYPE_RSS_TCP_IPV4 + | RSS_HASHTYPE_RSS_IPV6 + | RSS_HASHTYPE_RSS_TCP_IPV6 + | RSS_HASHTYPE_RSS_IPV6_EX + | RSS_HASHTYPE_RSS_TCP_IPV6_EX +#if 0 + | RSS_HASHTYPE_RSS_UDP_IPV4 + | RSS_HASHTYPE_RSS_UDP_IPV4_EX + | RSS_HASHTYPE_RSS_UDP_IPV6 + | RSS_HASHTYPE_RSS_UDP_IPV6_EX +#endif + ); +} + +/* * XXXRW: Confirm that sysctl -a won't dump this keying material, don't want * it appearing in debugging output unnecessarily. */ Modified: head/sys/netinet/in_rss.h ============================================================================== --- head/sys/netinet/in_rss.h Sun Jul 20 07:35:00 2014 (r268910) +++ head/sys/netinet/in_rss.h Sun Jul 20 07:36:59 2014 (r268911) @@ -52,6 +52,25 @@ #define RSS_HASHFIELDS_2TUPLE 2 /* + * Define RSS representations of the M_HASHTYPE_* values, representing + * which particular bits are supported. The NICs can then use this to + * calculate which hash types to enable and which not to enable. + * + * The fact that these line up with M_HASHTYPE_* is not to be relied + * upon. + */ +#define RSS_HASHTYPE_RSS_IPV4 (1 << 1) /* IPv4 2-tuple */ +#define RSS_HASHTYPE_RSS_TCP_IPV4 (1 << 2) /* TCPv4 4-tuple */ +#define RSS_HASHTYPE_RSS_IPV6 (1 << 3) /* IPv6 2-tuple */ +#define RSS_HASHTYPE_RSS_TCP_IPV6 (1 << 4) /* TCPv6 4-tuple */ +#define RSS_HASHTYPE_RSS_IPV6_EX (1 << 5) /* IPv6 2-tuple + ext hdrs */ +#define RSS_HASHTYPE_RSS_TCP_IPV6_EX (1 << 6) /* TCPv6 4-tiple + ext hdrs */ +#define RSS_HASHTYPE_RSS_UDP_IPV4 (1 << 7) /* IPv4 UDP 4-tuple */ +#define RSS_HASHTYPE_RSS_UDP_IPV4_EX (1 << 8) /* IPv4 UDP 4-tuple + ext hdrs */ +#define RSS_HASHTYPE_RSS_UDP_IPV6 (1 << 9) /* IPv6 UDP 4-tuple */ +#define RSS_HASHTYPE_RSS_UDP_IPV6_EX (1 << 10) /* IPv6 UDP 4-tuple + ext hdrs */ + +/* * Compile-time limits on the size of the indirection table. */ #define RSS_MAXBITS 7 @@ -75,6 +94,7 @@ void rss_getkey(uint8_t *key); u_int rss_gethashalgo(void); u_int rss_getnumbuckets(void); u_int rss_getnumcpus(void); +u_int rss_gethashconfig(void); /* * Network stack interface to generate a hash for a protocol tuple. From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 07:37:48 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5CDC2AA9; Sun, 20 Jul 2014 07:37:48 +0000 (UTC) Received: from svn.freebsd.org (svn.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 4A7D02B18; Sun, 20 Jul 2014 07:37:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K7bmQk083422; Sun, 20 Jul 2014 07:37:48 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K7bmtK083421; Sun, 20 Jul 2014 07:37:48 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201407200737.s6K7bmtK083421@svn.freebsd.org> From: Adrian Chadd Date: Sun, 20 Jul 2014 07:37:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268912 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 07:37:48 -0000 Author: adrian Date: Sun Jul 20 07:37:47 2014 New Revision: 268912 URL: http://svnweb.freebsd.org/changeset/base/268912 Log: Add hash awareness of the IPv4 and IPv6 UDP 4-tuple. Note: it would be nice if the supported hash check would be used here! Modified: head/sys/netinet/in_rss.c Modified: head/sys/netinet/in_rss.c ============================================================================== --- head/sys/netinet/in_rss.c Sun Jul 20 07:36:59 2014 (r268911) +++ head/sys/netinet/in_rss.c Sun Jul 20 07:37:47 2014 (r268912) @@ -436,8 +436,10 @@ rss_hash2cpuid(uint32_t hash_val, uint32 switch (hash_type) { case M_HASHTYPE_RSS_IPV4: case M_HASHTYPE_RSS_TCP_IPV4: + case M_HASHTYPE_RSS_UDP_IPV4: case M_HASHTYPE_RSS_IPV6: case M_HASHTYPE_RSS_TCP_IPV6: + case M_HASHTYPE_RSS_UDP_IPV6: return (rss_getcpu(rss_getbucket(hash_val))); default: return (NETISR_CPUID_NONE); @@ -455,8 +457,10 @@ rss_hash2bucket(uint32_t hash_val, uint3 switch (hash_type) { case M_HASHTYPE_RSS_IPV4: case M_HASHTYPE_RSS_TCP_IPV4: + case M_HASHTYPE_RSS_UDP_IPV4: case M_HASHTYPE_RSS_IPV6: case M_HASHTYPE_RSS_TCP_IPV6: + case M_HASHTYPE_RSS_UDP_IPV6: *bucket_id = rss_getbucket(hash_val); return (0); default: From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 07:38:38 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AF8D7BF1; Sun, 20 Jul 2014 07:38:38 +0000 (UTC) Received: from svn.freebsd.org (svn.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 9D21D2B20; Sun, 20 Jul 2014 07:38:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K7ccdn083613; Sun, 20 Jul 2014 07:38:38 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K7ccYN083612; Sun, 20 Jul 2014 07:38:38 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201407200738.s6K7ccYN083612@svn.freebsd.org> From: Adrian Chadd Date: Sun, 20 Jul 2014 07:38:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268913 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 07:38:38 -0000 Author: adrian Date: Sun Jul 20 07:38:38 2014 New Revision: 268913 URL: http://svnweb.freebsd.org/changeset/base/268913 Log: Make the PCBGROUPS code aware of IPv4 UDP 4-tuple. Modified: head/sys/netinet/in_pcbgroup.c Modified: head/sys/netinet/in_pcbgroup.c ============================================================================== --- head/sys/netinet/in_pcbgroup.c Sun Jul 20 07:37:47 2014 (r268912) +++ head/sys/netinet/in_pcbgroup.c Sun Jul 20 07:38:38 2014 (r268913) @@ -243,6 +243,8 @@ in_pcbgroup_byhash(struct inpcbinfo *pcb #ifdef RSS if ((pcbinfo->ipi_hashfields == IPI_HASHFIELDS_4TUPLE && hashtype == M_HASHTYPE_RSS_TCP_IPV4) || + (pcbinfo->ipi_hashfields == IPI_HASHFIELDS_4TUPLE && + hashtype == M_HASHTYPE_RSS_UDP_IPV4) || (pcbinfo->ipi_hashfields == IPI_HASHFIELDS_2TUPLE && hashtype == M_HASHTYPE_RSS_IPV4)) return (&pcbinfo->ipi_pcbgroups[ From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 07:39:55 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6FAD0D49; Sun, 20 Jul 2014 07:39:55 +0000 (UTC) Received: from svn.freebsd.org (svn.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 5D2562B2E; Sun, 20 Jul 2014 07:39:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K7dtJK083807; Sun, 20 Jul 2014 07:39:55 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K7dtEv083806; Sun, 20 Jul 2014 07:39:55 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201407200739.s6K7dtEv083806@svn.freebsd.org> From: Adrian Chadd Date: Sun, 20 Jul 2014 07:39:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268914 - head/sys/netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 07:39:55 -0000 Author: adrian Date: Sun Jul 20 07:39:54 2014 New Revision: 268914 URL: http://svnweb.freebsd.org/changeset/base/268914 Log: When it's time to do 4-tuple UDP IPv6 hashing, make sure this is a known type. Modified: head/sys/netinet6/in6_pcbgroup.c Modified: head/sys/netinet6/in6_pcbgroup.c ============================================================================== --- head/sys/netinet6/in6_pcbgroup.c Sun Jul 20 07:38:38 2014 (r268913) +++ head/sys/netinet6/in6_pcbgroup.c Sun Jul 20 07:39:54 2014 (r268914) @@ -73,6 +73,8 @@ in6_pcbgroup_byhash(struct inpcbinfo *pc #ifdef RSS if ((pcbinfo->ipi_hashfields == IPI_HASHFIELDS_4TUPLE && hashtype == M_HASHTYPE_RSS_TCP_IPV6) || + (pcbinfo->ipi_hashfields == IPI_HASHFIELDS_4TUPLE && + hashtype == M_HASHTYPE_RSS_UDP_IPV6) || (pcbinfo->ipi_hashfields == IPI_HASHFIELDS_2TUPLE && hashtype == M_HASHTYPE_RSS_IPV6)) return (&pcbinfo->ipi_pcbgroups[ From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 07:43:41 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A04F2ED5; Sun, 20 Jul 2014 07:43:41 +0000 (UTC) Received: from svn.freebsd.org (svn.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 8D4F12BB5; Sun, 20 Jul 2014 07:43:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K7hffZ087497; Sun, 20 Jul 2014 07:43:41 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K7hfkh087496; Sun, 20 Jul 2014 07:43:41 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201407200743.s6K7hfkh087496@svn.freebsd.org> From: Adrian Chadd Date: Sun, 20 Jul 2014 07:43:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268915 - head/sys/dev/ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 07:43:41 -0000 Author: adrian Date: Sun Jul 20 07:43:41 2014 New Revision: 268915 URL: http://svnweb.freebsd.org/changeset/base/268915 Log: Disable the ixgbe(4) UDP 4-tuple hashing for the time being. A mix of fragmented and non-fragmented UDP in a single stream will end up being hashed differently, resulting in out-of-order behaviour in the receive path. This was done in the linux e1000 driver in 2011. Discussed with: jfv Modified: head/sys/dev/ixgbe/ixgbe.c Modified: head/sys/dev/ixgbe/ixgbe.c ============================================================================== --- head/sys/dev/ixgbe/ixgbe.c Sun Jul 20 07:39:54 2014 (r268914) +++ head/sys/dev/ixgbe/ixgbe.c Sun Jul 20 07:43:41 2014 (r268915) @@ -4247,16 +4247,26 @@ ixgbe_initialise_rss_mapping(struct adap IXGBE_WRITE_REG(hw, IXGBE_RSSRK(i), rss_key[i]); /* Perform hash on these packet types */ + /* + * Disable UDP - IP fragments aren't currently being handled + * and so we end up with a mix of 2-tuple and 4-tuple + * traffic. + */ mrqc = IXGBE_MRQC_RSSEN | IXGBE_MRQC_RSS_FIELD_IPV4 | IXGBE_MRQC_RSS_FIELD_IPV4_TCP +#if 0 | IXGBE_MRQC_RSS_FIELD_IPV4_UDP +#endif | IXGBE_MRQC_RSS_FIELD_IPV6_EX_TCP | IXGBE_MRQC_RSS_FIELD_IPV6_EX | IXGBE_MRQC_RSS_FIELD_IPV6 | IXGBE_MRQC_RSS_FIELD_IPV6_TCP +#if 0 | IXGBE_MRQC_RSS_FIELD_IPV6_UDP - | IXGBE_MRQC_RSS_FIELD_IPV6_EX_UDP; + | IXGBE_MRQC_RSS_FIELD_IPV6_EX_UDP +#endif + ; IXGBE_WRITE_REG(hw, IXGBE_MRQC, mrqc); } From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 07:45:49 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 18DEFC7; Sun, 20 Jul 2014 07:45:49 +0000 (UTC) Received: from svn.freebsd.org (svn.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 E0EF22BC3; Sun, 20 Jul 2014 07:45:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K7jmKY087874; Sun, 20 Jul 2014 07:45:48 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K7jmxQ087873; Sun, 20 Jul 2014 07:45:48 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201407200745.s6K7jmxQ087873@svn.freebsd.org> From: Adrian Chadd Date: Sun, 20 Jul 2014 07:45:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268916 - head/sys/dev/ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 07:45:49 -0000 Author: adrian Date: Sun Jul 20 07:45:48 2014 New Revision: 268916 URL: http://svnweb.freebsd.org/changeset/base/268916 Log: Teach ixgbe(4) about rss_gethashconfig(). If RSS is enabled, ixgbe(4) will query the RSS API for the types of hashes which should be used. It'll then only enable hashes that are exposed via the RSS layer. This way it won't try to do things like enable UDP hashing if RSS explicitly states that it isn't supported in lookups. Tested: * 82599EB ixgbe(4) NIC Modified: head/sys/dev/ixgbe/ixgbe.c Modified: head/sys/dev/ixgbe/ixgbe.c ============================================================================== --- head/sys/dev/ixgbe/ixgbe.c Sun Jul 20 07:43:41 2014 (r268915) +++ head/sys/dev/ixgbe/ixgbe.c Sun Jul 20 07:45:48 2014 (r268916) @@ -4204,6 +4204,9 @@ ixgbe_initialise_rss_mapping(struct adap int i, j, queue_id; uint32_t rss_key[10]; uint32_t mrqc; +#ifdef RSS + uint32_t rss_hash_config; +#endif /* Setup RSS */ reta = 0; @@ -4247,6 +4250,32 @@ ixgbe_initialise_rss_mapping(struct adap IXGBE_WRITE_REG(hw, IXGBE_RSSRK(i), rss_key[i]); /* Perform hash on these packet types */ +#ifdef RSS + mrqc = IXGBE_MRQC_RSSEN; + rss_hash_config = rss_gethashconfig(); + if (rss_hash_config & RSS_HASHTYPE_RSS_IPV4) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV4; + if (rss_hash_config & RSS_HASHTYPE_RSS_TCP_IPV4) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV4_TCP; + if (rss_hash_config & RSS_HASHTYPE_RSS_IPV6) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6; + if (rss_hash_config & RSS_HASHTYPE_RSS_TCP_IPV6) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_TCP; + if (rss_hash_config & RSS_HASHTYPE_RSS_IPV6_EX) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_EX; + if (rss_hash_config & RSS_HASHTYPE_RSS_TCP_IPV6_EX) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_EX_TCP; + if (rss_hash_config & RSS_HASHTYPE_RSS_UDP_IPV4) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV4_UDP; + if (rss_hash_config & RSS_HASHTYPE_RSS_UDP_IPV4_EX) + device_printf(adapter->dev, + "%s: RSS_HASHTYPE_RSS_UDP_IPV4_EX defined, " + "but not supported\n", __func__); + if (rss_hash_config & RSS_HASHTYPE_RSS_UDP_IPV6) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_UDP; + if (rss_hash_config & RSS_HASHTYPE_RSS_UDP_IPV6_EX) + mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_EX_UDP; +#else /* * Disable UDP - IP fragments aren't currently being handled * and so we end up with a mix of 2-tuple and 4-tuple @@ -4267,6 +4296,7 @@ ixgbe_initialise_rss_mapping(struct adap | IXGBE_MRQC_RSS_FIELD_IPV6_EX_UDP #endif ; +#endif /* RSS */ IXGBE_WRITE_REG(hw, IXGBE_MRQC, mrqc); } From owner-svn-src-all@FreeBSD.ORG Sun Jul 20 07:47:17 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AEB04225; Sun, 20 Jul 2014 07:47:17 +0000 (UTC) Received: from mail-qg0-x22a.google.com (mail-qg0-x22a.google.com [IPv6:2607:f8b0:400d:c04::22a]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 253262BD3; Sun, 20 Jul 2014 07:47:17 +0000 (UTC) Received: by mail-qg0-f42.google.com with SMTP id j5so4603399qga.29 for ; Sun, 20 Jul 2014 00:47:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=nc/Q96bGcSzP6zdaJ7n3Vab2FGTnW4n+maeyHHQtmgs=; b=JRIAhR83LF3vHQgWJAASgaGUkq+eUQYCwv05yaFRsIClytvr7AEBqznWBa/G+veHKf tPbTsIzSuyjbwxV1C1s59lBysCwvpt6olAcRGY8NSSq9+ZbLHT4F6Y2Lu0JaXUgcqf1L ye8ZhvfM40EAHeNE1zTQ6JfoRX3REWIzQ9S8uai+YphIWfXHltWANtJS7oYm0Qm/ze8y SUo9wjwufxF8KzCxjC15A24Z+66zuGiZ6C8yUxMCwf8rlN+3ZndlKhb1VLP6yJ3txF8c igMnMIAGhtbUHiaW8GLXxq+8A9BeFGpQw/8ws1a12gEvgZixDPRvaPhqHyLI/NxoglmG D4WQ== MIME-Version: 1.0 X-Received: by 10.140.96.229 with SMTP id k92mr25309169qge.38.1405842435763; Sun, 20 Jul 2014 00:47:15 -0700 (PDT) Received: by 10.140.48.37 with HTTP; Sun, 20 Jul 2014 00:47:15 -0700 (PDT) In-Reply-To: References: <201407192059.s6JKx8un072543@svn.freebsd.org> Date: Sun, 20 Jul 2014 00:47:15 -0700 Message-ID: Subject: Re: svn commit: r268889 - in head: lib/libvmmapi sys/amd64/include sys/amd64/vmm sys/amd64/vmm/intel usr.sbin/bhyve usr.sbin/bhyvectl From: Neel Natu To: Adrian Chadd Content-Type: text/plain; charset=UTF-8 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Neel Natu X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 07:47:17 -0000 Hi Adrian, On Sat, Jul 19, 2014 at 11:30 PM, Adrian Chadd wrote: > Hi! > > This broke -HEAD. 'exc' in vmx_inject_interrupts() is no longer > initialised before use /and/ it's part of a KASSERT() output. > Are you building with an external toolchain? best Neel > Thanks! > > > -a > > > On 19 July 2014 13:59, Neel Natu wrote: >> Author: neel >> Date: Sat Jul 19 20:59:08 2014 >> New Revision: 268889 >> URL: http://svnweb.freebsd.org/changeset/base/268889 >> >> Log: >> Handle nested exceptions in bhyve. >> >> A nested exception condition arises when a second exception is triggered while >> delivering the first exception. Most nested exceptions can be handled serially >> but some are converted into a double fault. If an exception is generated during >> delivery of a double fault then the virtual machine shuts down as a result of >> a triple fault. >> >> vm_exit_intinfo() is used to record that a VM-exit happened while an event was >> being delivered through the IDT. If an exception is triggered while handling >> the VM-exit it will be treated like a nested exception. >> >> vm_entry_intinfo() is used by processor-specific code to get the event to be >> injected into the guest on the next VM-entry. This function is responsible for >> deciding the disposition of nested exceptions. >> >> Modified: >> head/lib/libvmmapi/vmmapi.c >> head/lib/libvmmapi/vmmapi.h >> head/sys/amd64/include/vmm.h >> head/sys/amd64/include/vmm_dev.h >> head/sys/amd64/vmm/intel/vmx.c >> head/sys/amd64/vmm/vmm.c >> head/sys/amd64/vmm/vmm_dev.c >> head/usr.sbin/bhyve/bhyverun.c >> head/usr.sbin/bhyve/task_switch.c >> head/usr.sbin/bhyvectl/bhyvectl.c >> >> Modified: head/lib/libvmmapi/vmmapi.c >> ============================================================================== >> --- head/lib/libvmmapi/vmmapi.c Sat Jul 19 20:55:13 2014 (r268888) >> +++ head/lib/libvmmapi/vmmapi.c Sat Jul 19 20:59:08 2014 (r268889) >> @@ -1106,3 +1106,32 @@ vm_activate_cpu(struct vmctx *ctx, int v >> error = ioctl(ctx->fd, VM_ACTIVATE_CPU, &ac); >> return (error); >> } >> + >> +int >> +vm_get_intinfo(struct vmctx *ctx, int vcpu, uint64_t *info1, uint64_t *info2) >> +{ >> + struct vm_intinfo vmii; >> + int error; >> + >> + bzero(&vmii, sizeof(struct vm_intinfo)); >> + vmii.vcpuid = vcpu; >> + error = ioctl(ctx->fd, VM_GET_INTINFO, &vmii); >> + if (error == 0) { >> + *info1 = vmii.info1; >> + *info2 = vmii.info2; >> + } >> + return (error); >> +} >> + >> +int >> +vm_set_intinfo(struct vmctx *ctx, int vcpu, uint64_t info1) >> +{ >> + struct vm_intinfo vmii; >> + int error; >> + >> + bzero(&vmii, sizeof(struct vm_intinfo)); >> + vmii.vcpuid = vcpu; >> + vmii.info1 = info1; >> + error = ioctl(ctx->fd, VM_SET_INTINFO, &vmii); >> + return (error); >> +} >> >> Modified: head/lib/libvmmapi/vmmapi.h >> ============================================================================== >> --- head/lib/libvmmapi/vmmapi.h Sat Jul 19 20:55:13 2014 (r268888) >> +++ head/lib/libvmmapi/vmmapi.h Sat Jul 19 20:59:08 2014 (r268889) >> @@ -104,6 +104,9 @@ int vm_setup_pptdev_msix(struct vmctx *c >> int func, int idx, uint64_t addr, uint64_t msg, >> uint32_t vector_control); >> >> +int vm_get_intinfo(struct vmctx *ctx, int vcpu, uint64_t *i1, uint64_t *i2); >> +int vm_set_intinfo(struct vmctx *ctx, int vcpu, uint64_t exit_intinfo); >> + >> /* >> * Return a pointer to the statistics buffer. Note that this is not MT-safe. >> */ >> >> Modified: head/sys/amd64/include/vmm.h >> ============================================================================== >> --- head/sys/amd64/include/vmm.h Sat Jul 19 20:55:13 2014 (r268888) >> +++ head/sys/amd64/include/vmm.h Sat Jul 19 20:59:08 2014 (r268889) >> @@ -34,6 +34,7 @@ enum vm_suspend_how { >> VM_SUSPEND_RESET, >> VM_SUSPEND_POWEROFF, >> VM_SUSPEND_HALT, >> + VM_SUSPEND_TRIPLEFAULT, >> VM_SUSPEND_LAST >> }; >> >> @@ -88,6 +89,16 @@ enum x2apic_state { >> X2APIC_STATE_LAST >> }; >> >> +#define VM_INTINFO_VECTOR(info) ((info) & 0xff) >> +#define VM_INTINFO_DEL_ERRCODE 0x800 >> +#define VM_INTINFO_RSVD 0x7ffff000 >> +#define VM_INTINFO_VALID 0x80000000 >> +#define VM_INTINFO_TYPE 0x700 >> +#define VM_INTINFO_HWINTR (0 << 8) >> +#define VM_INTINFO_NMI (2 << 8) >> +#define VM_INTINFO_HWEXCEPTION (3 << 8) >> +#define VM_INTINFO_SWINTR (4 << 8) >> + >> #ifdef _KERNEL >> >> #define VM_MAX_NAMELEN 32 >> @@ -278,14 +289,31 @@ struct vatpit *vm_atpit(struct vm *vm); >> int vm_inject_exception(struct vm *vm, int vcpuid, struct vm_exception *vme); >> >> /* >> - * Returns 0 if there is no exception pending for this vcpu. Returns 1 if an >> - * exception is pending and also updates 'vme'. The pending exception is >> - * cleared when this function returns. >> + * This function is called after a VM-exit that occurred during exception or >> + * interrupt delivery through the IDT. The format of 'intinfo' is described >> + * in Figure 15-1, "EXITINTINFO for All Intercepts", APM, Vol 2. >> * >> - * This function should only be called in the context of the thread that is >> - * executing this vcpu. >> + * If a VM-exit handler completes the event delivery successfully then it >> + * should call vm_exit_intinfo() to extinguish the pending event. For e.g., >> + * if the task switch emulation is triggered via a task gate then it should >> + * call this function with 'intinfo=0' to indicate that the external event >> + * is not pending anymore. >> + * >> + * Return value is 0 on success and non-zero on failure. >> */ >> -int vm_exception_pending(struct vm *vm, int vcpuid, struct vm_exception *vme); >> +int vm_exit_intinfo(struct vm *vm, int vcpuid, uint64_t intinfo); >> + >> +/* >> + * This function is called before every VM-entry to retriev